掉帧检测方法和装置

文档序号:970381 发布日期:2020-11-03 浏览:20次 >En<

阅读说明:本技术 掉帧检测方法和装置 (Dropped frame detection method and device ) 是由 程立 王涵 顾云建 于 2020-08-03 设计创作,主要内容包括:本公开是关于一种掉帧检测方法和装置。涉及屏幕显示技术,解决了针对某一环节进行掉帧检测导致结果存在误差的问题。该方法包括:获取应用图像合成显示过程中应用程序发起绘制的时间信息;获取应用图像合成显示过程中实际显示的时间信息;对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。本公开提供的技术方案适用于不同刷新频率下的不同应用屏幕显示,实现了准确、高效、低成本的掉帧检测。(The disclosure relates to a dropped frame detection method and device. The method relates to a screen display technology, and solves the problem that the result has errors due to frame dropping detection in a certain link. The method comprises the following steps: acquiring time information of application program initiated drawing in the process of synthesizing and displaying the application image; acquiring time information actually displayed in an application image synthesis display process; and comparing the time information for initiating drawing with the actually displayed time information to determine the frame dropping quantity. The technical scheme provided by the disclosure is suitable for different application screen displays under different refreshing frequencies, and realizes accurate, efficient and low-cost frame drop detection.)

掉帧检测方法和装置

技术领域

本公开涉及屏幕显示技术,尤其涉及一种掉帧检测方法和装置。

背景技术

Android是当前移动终端主流系统之一,其流畅度一直是各方所关注的重点。而应用(APP)掉帧率是描述其流畅度的重要指标,因此在系统应用或第三方应用迭代更新后,常需要对新版本应用的掉帧率进行评估。在系统运行时可通过显示跟踪记录(FrameTracker)和掉帧跟踪记录(JankTracker)记录了帧信息以描述应用的掉帧率。工程师们通过FrameTracker或JankTracker给出的信息计算应用的丢帧率。然而,随着安卓系统的发展,单纯通过FrameTracker或者JankTracker给出的信息计算出的掉帧率已出现极大误差。

安卓系统运行时会通过JankTracker记录帧的计划同步(IntendedVsync)时间和垂直同步(Vsync)时间,它们分别表示应用程序预期的绘制的时间点和应用实际开始绘制的时间点。方案一通过它们的差值即可描述应用上一帧慢了多久:

Figure BDA0002615341870000011

式(1)中,ceil()为向上取整函数,JankPeriod为上一帧的丢帧数,RefreshPeriod为屏幕刷新周期。

一般的应用图像合成送显过程如图1所示,通常包含四个流程,分别是:APP在界面线程(UIThread)和渲染线程(RenderThread)上向GPU发起绘制命令,GPU硬件(HW)对缓存(Buffer)进行绘制、缓存队列(BufferQuene)流程、在窗口系统(SurfaceFlinger)中合成以及BufferQuene流程、提交到HWComposer以及显示器送显控制(Display Controller)。使用式(1)计算时,主要涉及APP发起绘制命令的流程,缺少了对流程中后续环节的考量,无法评估其他环节发生的掉帧。

同时Android的图形显示方案中引入了如图2所示的黄油计划,即通过增加Buffer来缓解软件绘制慢于实际显示带来的掉帧。这就导致采用方案一评估掉帧情况会出现严重的误差。例如,合成Buffer B和C的时间正常为1个RefreshPeriod,但是本次由于某些原因合成超时,依照方案一,B和C处应当分别丢失1帧。然而如图2所示,B和C是连续显示,并没有出现掉帧。也因此,采用上述方案评估掉帧情况会出现严重的误差。

为了避免上述误差的出现,方案二基于FrameTracker记录的期望显示时间(DesirePresentTime)和帧准备完毕时间(FrameReadyTime)来计算应用在运行过程中的掉帧情况。其中,DesirePresentTime表示应用程序绘制图像的时间点,FrameReadyTime表示SurfaceFlinger将帧提交绘制的时间点。即通过下式(2)有:

其中,JankPeriod用来描述应用的掉帧情况。通常有两种判定方式:一种以JankPeriod为掉帧数;另一种在当前JankPeriod与上一个JankPeriod不同时,则认为发生掉帧。

当系统出现连续均匀掉帧时,使用方案二会出现极大偏差,且方案二亦没有考虑整个图像合成送显流程,因此在计算应用掉帧数时总会出现结果误差。

综上,针对APP提交绘制阶段和针对Surface渲染阶段的掉帧评估方案均没有考虑到整个图像合成送显流程,存在结果误差。

发明内容

为克服相关技术中存在的问题,本公开提供一种掉帧检测方法和装置。

根据本公开实施例的第一方面,提供一种掉帧检测方法,包括:

获取应用图像合成显示过程中应用程序发起绘制的时间信息;

获取应用图像合成显示过程中实际显示的时间信息;

对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

选取基准帧;

查找掉帧跟踪记录,确定所述基准帧和所述基准帧下一帧的计划同步时间;

计算所述基准帧和所述基准帧下一帧的计划同步时间差值作为所述应用程序发起绘制的时间信息。

优选的,所述获取应用图像合成显示过程中实际显示的时间信息的步骤包括:

查找帧显示跟踪记录,确定所述基准帧和所述基准帧下一帧的实际显示时间;

计算所述基准帧和所述基准帧下一帧的实际显示时间差值作为所述应用图像合成显示过程中实际显示的时间信息。

优选的,在计算所述实际显示时间差时使用修正后的所述基准帧和所述基准帧下一帧的实际显示时间,

所述计算实际显示时间差作为所述应用图像合成显示过程中实际显示的时间信息的步骤之前,还包括:

根据实际显示时间与硬件垂直同步时间邻域区间之间的关系,对所述基准帧和所述基准帧下一帧的实际显示时间进行修正。

优选的,对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量的步骤包括:

根据所述计划同步时间差计算计划时间掉帧数,根据所述实际显示时间差计算实际显示掉帧数;

计算所述实际掉示掉帧数与所述计划时间掉帧数之差,作为最终掉帧检测结果。

根据本公开实施例的第二方面,提供了一种掉帧检测装置,包括:

发起绘制时间分析模块,用于获取应用图像合成显示过程中应用程序发起绘制的时间信息;

合成显示时间分析模块,用于获取应用图像合成显示过程中实际显示的时间信息;

掉帧判定模块,用于对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

优选的,所述发起绘制时间分析模块包括:

基准帧选取单元,用于选取基准帧;

掉帧查找单元,用于查找掉帧跟踪记录,确定所述基准帧和所述基准帧下一帧的计划同步时间;

计划同步时间差计算单元,用于计算所述基准帧和所述基准帧下一帧的计划同步时间差值作为所述应用程序发起绘制的时间信息。

优选的,所述合成显示时间分析模块包括:

帧显示查找单元,用于查找帧显示跟踪记录,确定所述基准帧和所述基准帧下一帧的实际显示时间;

实际显示时间差计算单元,用于计算所述基准帧和所述基准帧下一帧的实际显示时间差值作为所述应用图像合成显示过程中实际显示的时间信息。

优选的,所述实际显示时间差计算单元在计算所述实际显示时间差时使用修正后的所述基准帧和所述基准帧下一帧的实际显示时间,

所述合成显示时间分析模块,还包括:

时间修正单元,用于根据实际显示时间与硬件垂直同步时间邻域区间之间的关系,对所述基准帧和所述基准帧下一帧的实际显示时间进行修正。

优选的,所述掉帧判定模块包括:

掉帧数计算单元,用于根据所述计划同步时间差计算计划时间掉帧数,根据所述实际显示时间差计算实际显示掉帧数;

计算所述实际掉示掉帧数与所述计划时间掉帧数之差,作为最终掉帧检测结果。

根据本公开实施例的第三方面,提供了一种计算机装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取应用图像合成显示过程中应用程序发起绘制的时间信息;

获取应用图像合成显示过程中实际显示的时间信息;

对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

根据本公开实施例的第四方面,提供了一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种掉帧检测方法,所述方法包括:

获取应用图像合成显示过程中应用程序发起绘制的时间信息;

获取应用图像合成显示过程中实际显示的时间信息;

对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

本公开的实施例提供的技术方案可以包括以下有益效果:通过对比应用图像合成显示过程中应用程序发起绘制的时间信息和实际显示的时间信息,确定掉帧数量。将应用程序提交数据阶段和显示阶段进行对比分析,涵盖了整个图像合成送显流程,全面考虑了各种能够引起掉帧的因素,解决了针对某一环节进行掉帧检测导致结果存在误差的问题。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本发明的实施例,并与说明书一起用于解释本发明的原理。

图1是一种应用图像合成送显过程的示意图。

图2是黄油计划实现原理示意图。

图3是根据一示例性实施例示出的一种掉帧检测方法的流程图。

图4是根据一示例性实施例示出的图像合成显示过程绘制流程中各环节的时间关系图。

图5是根据一示例性实施例示出的一种掉帧检测方法的流程图。

图6是根据一示例性实施例示出的基准帧与下一帧的各时间点关系示意图

图7是根据一示例性实施例示出的一种掉帧检测方法的流程图。

图8是根据一示例性实施例示出的一种掉帧检测装置的框图。

图9是根据一示例性实施例示出的一种发起绘制时间分析模块801的结构示意图。

图10是根据一示例性实施例示出的一种合成显示时间分析模块802的结构示意图。

图11是根据一示例性实施例示出的一种合成显示时间分析模块802的结构示意图。

图12是根据一示例性实施例示出的一种掉帧判定模块803的结构示意图。

图13是根据一示例性实施例示出的一种装置的框图(移动终端的一般结构)。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。

针对APP提交绘制阶段和针对Surface渲染阶段的掉帧评估方案均没有考虑到整个图像合成送显流程,存在结果误差。

为了解决上述问题,本公开的实施例提供了一种掉帧检测方法和装置,以整个图像合成显示过程作为考察对象,评估整体的掉帧情况,解决了结果误差的问题。基于图像合成显示过程城,充分考虑了缓存以及不同屏幕刷新率对掉帧数计算的影响,适用于各类场景的精确掉帧计算,包括不限于:应用连续及无规律滑动、网页浏览、视频播放等。并适用于市面上不同的机型以及设备使用场景。

本公开的一示例性实施例提供了一种掉帧检测方法,使用该方法进行图像合成显示过程中掉帧检测的流程如图3所示,包括:

步骤301、获取应用图像合成显示过程中应用程序发起绘制的时间信息。

本步骤中,在应用图像合成显示过程的应用程序提交绘制数据阶段,JankTracker记录了各帧的发起绘制时间点(如计划同步时间,IntendedVsync)。通过查找JankTracker,即可获取应用程序发起绘制的时间信息。具体的,获取基准帧和所述基准帧下一帧的发起绘制时间点,将两个时间点之差作为应用程序发起绘制的时间信息。

步骤302、获取应用图像合成显示过程中实际显示的时间信息。

本步骤中,在应用图像合成显示过程的显示控制阶段(Display Controller),FrameTracker中记录了各帧实际显示的时间点(如实际显示时间,ActualPresentTime)。通过查找FrameTracker,即可获取实际显示的时间信息。具体的,获取基准帧和所述基准帧下一帧的实际显示时间点,将两个时间点之差作为实际显示的时间信息。

需要说明的是,上述步骤301及步骤302并无严格时序关系。

如图4所示,为一次正常的图像合成显示过程绘制流程中各环节的时间关系图。以缓存帧1(Buffer 1)为例,其在两个同步周期前由APP提交绘制数据,确定了Buffer 1的IntendedVsync,两周期后在显示环节进行显示确定了Buffer 1的ActualPresentTime。

步骤303、对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

发起绘制的时间信息涉及图像合成显示流程的起始阶段,而实际显示的时间信息涉及图像合成显示流程的最后一阶段。本步骤中,通过对比所述发起绘制的时间信息和所述实际显示的时间信息,能够确定整个图像合成显示流程中发生掉帧的情况,准确判定是否发生掉帧。

本公开的一示例性实施例还提供了一种掉帧检测方法,使用该方法获取应用图像合成显示过程中应用程序发起绘制的时间信息的流程如图5所示,包括:

步骤501、选取基准帧。

本步骤中,确定掉帧检测区间,取此区间中的第一帧作为基准帧,然后选择所述基准帧的下一帧。以基准帧和基准帧的下一帧为分析对象,进行发起绘制的时间信息的获取。

步骤502、查找掉帧跟踪记录,确定所述基准帧和所述基准帧下一帧的计划同步时间。

本步骤中,查找掉帧跟踪记录,具体的,查找JankTracker,以确定所述基准帧和所述基准帧下一帧的计划同步时间。

图6所示为一种基准帧与下一帧的各时间点关系。其中,IntendedVsync1为基准帧的计划同步时间,IntendedVsync2为基准帧下一帧的计划同步时间;ActualPresentTime1为基准帧的实际显示时间,ActualPresentTime2为基准帧下一帧的实际显示时间。

步骤503、计算计划同步时间差值作为所述应用程序发起绘制的时间信息。

本步骤中,根据以下表达式计算计划同步时间差值:

计划同步时间差=所述基准帧下一帧的计划同步时间-所述基准帧的计划同步时间。

具体的,可根据以下表达式计算:

δIV=IntendedVsync2-IntendedVsync1

δIV即为计划同步时间差值。以δIV作为掉帧判定基准,考虑了设备未受到操作时屏幕不刷新的场景。这样就不会将正常的屏幕不刷新算作丢帧,增加了方案的适用场景。

本公开的一示例性实施例还提供了一种掉帧检测方法,使用该方法获取应用图像合成显示过程中实际显示的时间信息的流程如图7所示,包括:

步骤701、查找帧显示跟踪记录,确定所述基准帧和所述基准帧下一帧的实际显示时间。

本步骤中,查找帧显示跟踪记录,具体的,可查找FrameTracker,确定基准帧和基准帧下一帧的实际显示时间。

仍以图6为例,ActualPresentTime1为基准帧的实际显示时间,ActualPresentTime2为基准帧下一帧的实际显示时间。

步骤702、计算实际显示时间差作为所述应用图像合成显示过程中实际显示的时间信息。

本步骤中,根据以下表达式计算实际显示时间差:

实际显示时间差=所述基准帧下一帧的实际显示时间-所述基准帧的实际显示时间。

具体的,根据以下表达式计算实际显示时间差:

δAC=ActualPresentTime2-ActualPresentTime1

δAC即为实际显示时间差。

本公开的一示例性实施例还提供了一种掉帧检测方法,由于实际显示时间不一定和硬件的垂直同步周期完全一致(即ActualPresentTime不一定和硬件Vsync周期完全一致),因此在计算实际显示时间差之前,可先根据实际显示时间与硬件垂直同步时间邻域区间之间的关系,对所述基准帧和所述基准帧下一帧的实际显示时间进行修正,在计算所述实际显示时间差时使用修正后的所述基准帧和所述基准帧下一帧的实际显示时间。

修正流程如下:

根据以下表达式对所述基准帧和所述基准帧下一帧的实际显示时间进行修正:

修正后的实际显示时间=硬件垂直同步时间if实际显示时间∈U(硬件垂直同步时间,Δ),

其中,U表示硬件垂直同步时间(如HWVsync)的Δ邻域,例如,U为1ms。

硬件垂直同步时间为硬件的垂直同步(如Vsync)时间点。

在完成修正后,即可使用修正后的实际显示时间来计算实际显示时间差,可根据以下表达式计算:

实际显示时间差=修正后的所述基准帧下一帧的实际显示时间-修正后的所述基准帧的实际显示时间。

本公开的一示例性实施例还提供了一种掉帧检测方法,根据所述计划同步时间差计算计划时间掉帧数,根据所述实际显示时间差计算实际显示掉帧数;然后计算所述实际掉示掉帧数与所述计划时间掉帧数之差,作为最终掉帧检测结果。具体流程如下:

根据所述计划同步时间差和所述实际显示时间差,通过以下表达式计算掉帧数:

其中,ceil()为向上取整函数。

实际显示时间差涵盖了整个缓存帧绘制、合成与送显等环节,考虑到了整个图像合成显示过程。

具体的,可通过以下表达式计算实际显示时间差:

其中,δIV为计划同步时间差,δAC为实际显示时间差,ceil()为向上取整函数,RefreshPeriod为屏幕刷新周期。

本公开的一示例性实施例还提供了一种掉帧检测装置,其结构如图8所示,包括:

发起绘制时间分析模块801,用于获取应用图像合成显示过程中应用程序发起绘制的时间信息;

合成显示时间分析模块802,用于获取应用图像合成显示过程中实际显示的时间信息;

掉帧判定模块803,用于对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

优选的,所述发起绘制时间分析模块801的结构如图9所示,包括:

基准帧选取单元901,用于选取基准帧;

掉帧查找单元902,用于查找掉帧跟踪记录,确定所述基准帧和所述基准帧下一帧的计划同步时间;

计划同步时间差计算单元903,用于计算所述基准帧和所述基准帧下一帧的计划同步时间差值作为所述应用程序发起绘制的时间信息。

优选的,所述合成显示时间分析模块802的结构如图10所示,包括:

帧显示查找单元1001,用于查找帧显示跟踪记录,确定所述基准帧和所述基准帧下一帧的实际显示时间;

实际显示时间差计算单元1002,用于计算所述基准帧和所述基准帧下一帧的实际显示时间差值作为所述应用图像合成显示过程中实际显示的时间信息。

优选的,所述实际显示时间差计算单元在计算所述实际显示时间差时使用修正后的所述基准帧和所述基准帧下一帧的实际显示时间,

所述合成显示时间分析模块802的结构如图11所示,还包括:

时间修正单元1003,用于根据实际显示时间与硬件垂直同步时间邻域区间之间的关系,对所述基准帧和所述基准帧下一帧的实际显示时间进行修正。

优选的,所述掉帧判定模块803的结构如图12所示,包括:

掉帧数计算单元1201,用于根据所述计划同步时间差计算计划时间掉帧数,根据所述实际显示时间差计算实际显示掉帧数;

计算所述实际掉示掉帧数与所述计划时间掉帧数之差,作为最终掉帧检测结果。

上述装置可集成于具有显示模块的设备中,由设备实现相应功能。关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。

本公开的一示例性实施例还提供了一种计算机装置,包括:

处理器;

用于存储处理器可执行指令的存储器;

其中,所述处理器被配置为:

获取应用图像合成显示过程中应用程序发起绘制的时间信息;

获取应用图像合成显示过程中实际显示的时间信息;

对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

图13是根据一示例性实施例示出的一种用于掉帧检测的装置1300的框图。例如,装置1300可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。

参照图13,装置1300可以包括以下一个或多个组件:处理组件1302,存储器1304,电力组件1306,多媒体组件1308,音频组件1310,输入/输出(I/O)的接口1312,传感器组件1314,以及通信组件1316。

处理组件1302通常控制装置1300的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件1302可以包括一个或多个处理器1320来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件1302可以包括一个或多个模块,便于处理组件1302和其他组件之间的交互。例如,处理组件1302可以包括多媒体模块,以方便多媒体组件1308和处理组件1302之间的交互。

存储器1304被配置为存储各种类型的数据以支持在设备1300的操作。这些数据的示例包括用于在装置1300上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器1304可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。

电力组件1306为装置1300的各种组件提供电力。电力组件1306可以包括电源管理系统,一个或多个电源,及其他与为装置1300生成、管理和分配电力相关联的组件。

多媒体组件1308包括在所述装置1300和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件1308包括一个前置摄像头和/或后置摄像头。当设备1300处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。

音频组件1310被配置为输出和/或输入音频信号。例如,音频组件1310包括一个麦克风(MIC),当装置1300处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器1304或经由通信组件1316发送。在一些实施例中,音频组件1310还包括一个扬声器,用于输出音频信号。

I/O接口1312为处理组件1302和***接口模块之间提供接口,上述***接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。

传感器组件1314包括一个或多个传感器,用于为装置1300提供各个方面的状态评估。例如,传感器组件1314可以检测到设备1300的打开/关闭状态,组件的相对定位,例如所述组件为装置1300的显示器和小键盘,传感器组件1314还可以检测装置1300或装置1300一个组件的位置改变,用户与装置1300接触的存在或不存在,装置1300方位或加速/减速和装置1300的温度变化。传感器组件1314可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件1314还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件1314还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。

通信组件1316被配置为便于装置1300和其他设备之间有线或无线方式的通信。装置1300可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件1316经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件1316还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。

在示例性实施例中,装置1300可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述方法。

在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器1304,上述指令可由装置1300的处理器1320执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。

一种非临时性计算机可读存储介质,当所述存储介质中的指令由移动终端的处理器执行时,使得移动终端能够执行一种掉帧检测方法,所述方法包括:

获取应用图像合成显示过程中应用程序发起绘制的时间信息;

获取应用图像合成显示过程中实际显示的时间信息;

对比所述发起绘制的时间信息和所述实际显示的时间信息,确定掉帧数量。

本公开的实施例提供了一种掉帧检测方法和装置,通过对比应用图像合成显示过程中应用程序发起绘制的时间信息和实际显示的时间信息,确定掉帧数量。将应用程序提交数据阶段和显示阶段进行对比分析,涵盖了整个图像合成送显流程,全面考虑了各种能够引起掉帧的因素,解决了针对某一环节进行掉帧检测导致结果存在误差的问题。

用每个IntendedVsync的间隔和ActualPresentTime间隔描述掉帧数,在迭代计算中自然而然的规避了缓存对最终结果的影响。

本公开的实施例提供的技术方案在实际的运行过程中表现出了良好的精度,计算结果与高速相机拍摄统计结果完全吻合。具有通用性,适用于应用的滑动、网页浏览、视频播放等。同时,还可以应用于不同设备,目前手机终端的刷新率主流为60HZ,但是越来越多高端机已经配置了90和120HZ的屏幕,因此可用于不同刷新频率的适配性也是十分重要的。

本公开的实施例提供的技术这群具备良好的易用性,实现了自动化统计、计算与识别,不需要额外的三方设备或人力,使得实现成本较低,且适用于高持续时长的案例。

本领域技术人员在考虑说明书及实践这里公开的发明后,将容易想到本发明的其它实施方案。本申请旨在涵盖本发明的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本发明的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本发明的真正范围和精神由下面的权利要求指出。

应当理解的是,本发明并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本发明的范围仅由所附的权利要求来限制。

18页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:多机箱反馈结果控制触发同步方法、装置、设备及介质

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!