一种移动设备的帧率探测方法和相关装置制造方法
【专利摘要】本发明实施例公开一种移动设备的帧率探测方法和相关装置,用于实时检测显示帧率。方法可包括:当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值;根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化;若是,将移动设备的帧率统计值增加一个统计步长;判断采样时间段的计时时长是否已经完成,若否,触发按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值再次执行;当采样时间段计时结束时,输出帧率统计值,根据采样时间段和帧率统计值获取移动设备的实时帧率。
【专利说明】一种移动设备的帧率探测方法和相关装置
【技术领域】
[0001]本发明涉及视频控制【技术领域】,尤其涉及一种移动设备的帧率探测方法和相关装置。
【背景技术】
[0002]目前手机终端上安装的应用程序诸如游戏软件、视频通话软件越来越多,为了能够检测软件的流畅度,比如在滑屏时软件的灵敏程度,常常需要精确的知道当前手机终端的帧率,并且还有一些评测软件也常常将手机终端的帧率作为衡量手机性能的一个方面,这同样也需要获知当前手机终端的帧率。
[0003]现有技术中存在一种对手机终端的帧率进行统计的方法,采用通过摄像机对手机终端的屏幕连续拍摄的方式,得到一段视频,然后借助于计算机(PC, Personal Computer)上安装的视频播放软件,基于录制的视频由人工逐帧的进行帧数统计,从而得到手机终端在拍摄时刻的巾贞率。
[0004]但是本发明的发明人在实现本发明的过程中发现:现有的这种借助于摄像机进行拍摄,由人工使用PC进行统计得到帧率的方式,需要完全依赖于人工实现,无法自动完成测试过程,耗时费力;且这种帧率统计方法需要使用摄像机和PC才能实现,统计起来不方便,并且统计出来的是在拍摄时刻手机终端的帧率,不能随时随地了解当前手机终端的帧率,无法获知手机终端的实时帧率。
【发明内容】
[0005]本发明实施例提供了一种移动设备的帧率探测方法和相关装置,用于实时检测移动设备的屏幕显示帧率。
[0006]为解决上述技术问题,本发明实施例提供以下技术方案:
[0007]第一方面,本发明实施例提供一种移动设备的帧率探测方法,包括:
[0008]当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧;
[0009]根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化;
[0010]若是,将所述移动设备的帧率统计值增加一个统计步长;
[0011]判断所述采样时间段的计时时长是否已经完成,若否,触发按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值再次执行;当所述采样时间段计时结束时,输出所述帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
[0012]第二方面,本发明实施例还提供一种移动设备的帧率探测装置,包括:
[0013]像素值获取模块,用于当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧;
[0014]显存判断模块,用于根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化;
[0015]统计模块,用于当所述物理显存发生变化时,将所述移动设备的帧率统计值增加一个统计步长;
[0016]计时模块,用于判断所述采样时间段的计时时长是否已经完成,若否,触发所述像素值获取模块再次执行;
[0017]帧率探测模块,用于当所述采样时间段计时结束时,输出所述移动设备的帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
[0018]从以上技术方案可以看出,本发明实施例具有以下优点:
[0019]在本发明实施例中,预先设置采样时间段和采样时间间隔,然后当采样时间段计时开始时,按照采样时间间隔获取在采样时间间隔之前和之后的采样时间分布采集到的两帧的像素点的像素值,得到第一帧的像素点的像素值和第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化,若是,将移动设备的帧率统计值增加一个统计步长,接下来判断采样时间段的计时时长是否已经完成,若否,按照采样时间间隔继续获取前后个采样时间分布采集到的两帧的像素点的像素值,并继续进行物理显存是否发生变化的判断,直至采样时间段计时结束,输出帧率统计值,根据采样时间段和帧率统计值获取当前移动设备的实时帧率。通过在采样时间段内按照采样时间间隔定时对移动设备的物理显存的数据内容进行提取和比对,从而计算出物理显存的帧率,可以实现随时随地的对移动设备的屏幕显示帧率进行实时探测。
【专利附图】
【附图说明】
[0020]为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域的技术人员来讲,还可以根据这些附图获得其他的附图。
[0021]图1为本发明实施例提供的一种移动设备的帧率探测方法的流程方框示意图;
[0022]图2为本发明实施例提供的另一种移动设备的帧率探测方法的流程方框示意图;
[0023]图3为本发明实施例中将移动设备的物理显存映射到进程的虚拟地址空间并读取出像素点的像素值的实现方式示意图;
[0024]图4为本发明实施例提供的另一种移动设备的帧率探测方法的流程方框示意图;
[0025]图5为本发明实施例中对第一帧的全部像素点和第二帧的全部像素点进行checksum的实现方式示意图;
[0026]图6为本发明实施例中移动设备的实时帧率探测方法的流程示意图;
[0027]图7_a为本发明实施例提供的一种移动设备的实时帧率探测装置的组成结构示意图;
[0028]图7_b为本发明实施例提供的另一种移动设备的实时帧率探测装置的组成结构示意图;
[0029]图7-c为本发明实施例提供的另一种移动设备的实时帧率探测装置的组成结构示意图;
[0030]图7-d为本发明实施例提供的另一种移动设备的实时帧率探测装置的组成结构示意图;
[0031]图8为本发明实施例提供的移动设备的实时帧率探测方法应用于终端的组成结构示意图。
【具体实施方式】
[0032]本发明实施例提供了一种移动设备的帧率探测方法和相关装置,用于实时检测移动设备的屏幕显示帧率。
[0033]为使得本发明的发明目的、特征、优点能够更加的明显和易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,下面所描述的实施例仅仅是本发明一部分实施例,而非全部实施例。基于本发明中的实施例,本领域的技术人员所获得的所有其他实施例,都属于本发明保护的范围。
[0034]本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的术语在适当情况下可以互换,这仅仅是描述本发明的实施例中对相同属性的对象在描述时所采用的区分方式。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,以便包含一系列单元的过程、方法、系统、产品或设备不必限于那些单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它单元。
[0035]以下分别进行详细说明。
[0036]本发明移动设备的实时帧率探测方法的一个实施例,可以包括:当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,上述第一帧为在上述采样时间间隔之前的采样时间采集到的帧,上述第二帧为在上述采样时间间隔之后的采样时间采集到的帧;根据上述第一帧的像素点的像素值和上述第二帧的像素点的像素值判断上述物理显存是否发生变化;若是,将上述移动设备的帧率统计值增加一个统计步长;判断上述采样时间段的计时时长是否已经完成,若否,触发按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值再次执行;当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率。
[0037]请参阅图1所示,本发明一个实施例提供的移动设备的实时帧率探测方法,可以包括:
[0038]101、当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值。
[0039]其中,上述第一帧为在上述采样时间间隔之前的采样时间采集到的帧,上述第二帧为在上述采样时间间隔之后的采样时间采集到的帧。
[0040]在本发明实施例中,为了能够精确的获取移动设备的实时帧率,在每次对移动设备的实时帧率进行探测之前,可以预先设置采样时间段以及采样时间间隔,其中采样时间段指的是选择用于计算实时帧率的时间段,具体可以由用户来指定,当然也可以由移动设备根据自身的硬件结构性能来设定,举例来说,可以根据移动设备的内存的速度和中央处理器(CPU, Central Processing Unit)的频率来设定,另外也可以根据用户通常在对应用程序进行流畅度测试时设定的统计时间段来设定,如用户可以设定采样时间段为I秒(s),或者移动设备根据自己的内存读取速度和CPU的运行频率设定采样时间段为Is。采样时间间隔是指在采样时间段内间隔多长的时间获取一次物理显存当前帧的像素点的像素值,采样时间间隔同样具体可以由用户来指定,当然也可以由移动设备根据自身的硬件结构性能来设定,举例来说,可以根据移动设备的内存的速度和CPU的频率来设定,另外也可以根据用户通常在对应用程序进行流畅度测试时设定的统计时间段内设定的统计次数来设定,如用户可以设定采样时间段为ls,在Is内统计50次,则采样时间间隔可以设定为20毫秒(ms),或者移动设备根据自己的内存读取速度和CPU的运行频率设定采样时间段为Is、在Is内统计50次,则采样时间间隔可以设定为20ms。另外,在本发明实施例中,采样时间段和采样时间间隔的设定还可以采取其他的方式,例如,若探测移动设备的实时帧率是为了能够检测安装在移动设备上的游戏类应用程序的动作流畅度,采样时间段和采样时间间隔可以根据探测移动设备上安装的游戏类应用程序将采样时间段设定为Is、将采样时间间隔设定为10ms,又如,若探测移动设备的实时帧率是为了能够检测安装在移动设备上的视频通话类应用程序的视频画面显示流畅度,采样时间段和采样时间间隔可以根据探测移动设备上安装的视频通话类软件将采样时间段设定为2s、将采样时间间隔设定为40ms,也就是说,采样时间段和采样时间间隔的设定也可以由安装在移动设备上的应用程序来决定,此处仅作说明,不做限定。
[0041]在本发明的一些实施例中,当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在前后两帧的像素点的像素值。为了能够更准确的说明在一个采样时间间隔之前的采样时间和之后的采样时间的两个帧,本发明实施例中将这两个中贞定义为“第一巾贞”和“第二巾贞”,则分别在第一巾贞的米样时间和第二巾贞的米样时间,分别获取到的是物理显存在第一帧的像素点和在第二帧的像素点,这两个像素点分别对应的像素值为:在第一帧的像素点的像素值和在第二帧的像素点的像素值。本发明实施例中某一个像素点的像素值指的是在该像素点的数字图像的亮度值,其中,通过第一帧的像素点的像素值就可以表示移动设备的物理显存在第一帧的采样时间时的数据内容,通过第二帧的像素点的像素值就可以表示移动设备的物理显存在第二帧的采样时间时的数据内容。
[0042]在本发明的一些实施例中,移动设备的物理显存中存贮的数据内容对像是显卡输出到显示器上的每个像素的信息,并且物理显存是显卡的重要组成部分,显示芯片处理完像素数据后会将像素数据保存到物理显存中,然后由数模转换器从物理显存中读取出像素数据并将数字信号转换为模拟信号,最后由移动设备的屏幕显示出来。本发明实施例中,当显示芯片处理完像素数据后会将像素数据保存到物理显存中,故可以通过移动设备的物理缓存在预置的采样时间段内按照预置的采样时间间隔获取到物理显存中像素点的像素值。
[0043]在本发明的一些实施例中,采样时间段的计时方法以及每隔采样时间间隔定时触发步骤101开始执行的方式具体可以通过定时器来定时触发实现,例如,采样时间段为ls,采样时间间隔为20ms,则在采样时间段的计时时刻开始时定时器每隔20ms就触发步骤101执行一次。
[0044]102、根据上述第一帧的像素点的像素值和上述第二帧的像素点的像素值判断上述物理显存是否发生变化。
[0045]其中,当上述物理显存发生变化时执行步骤103。
[0046]在本发明实施例中,通过步骤101统计得到在一个采样时间间隔之前的采样时间采集到移动设备的物理显存中数据内容为第一帧的像素点的像素值、在该采样时间间隔之后的采样时间采集到移动设备的物理显存中数据内容为第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化。其中,本发明实施例中当物理显存发生变化时,数模转换器从物理显存中读取出像素数据并将数字信号转换为模拟信号,最后由移动设备的屏幕显示出来时屏幕画面就会产生变化,故本发明实施例通过物理显存发生变化与否获取到移动设备的屏幕画面显示是否发生变化,从而对移动设备的帧率进行变化次数的统计,并依据采样时间段从而计算出移动设备的实时帧率,详见后续实施例的描述。需要说明的是,在本发明实施例中根据上述第一帧的像素点的像素值和上述第二帧的像素点的像素值判断上述物理显存是否发生变化有多种实现方式,例如,可以对于在一个采样时间间隔之前和之后的两个采样时间分别采集到的像素点的像素值进行逐帧比对,从而获取到物理显存是否发生变化,还可以对于在一个采样时间间隔之前和之后的两个采样时间分别采集到的像素点的像素值进行总和检验码的比对,从而获取到物理显存是否发生变化,在实际应用中具体可以应用场景来灵活设定,此处仅作说明,不做限定。
[0047]需要说明的是,在本发明的一些实施例中,对于步骤102中当上述物理显存发生变化时执行步骤103,详见后续步骤的描述。另外,当上述物理显存没有发生变化时,需要重新触发步骤101再次执行,只是随着计时器的计时时刻的增加获取到的是后一个采样时间间隔之前和之后的采样时间采集到的帧的像素点的像素值。
[0048]103、当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。
[0049]其中,通过对物理显存是否发生变化的判断,从而获取到移动设备的屏幕画面显示是否发生了变化,举例来说,当物理显存发生变化时移动设备的屏幕画面显示发生了变化,当物理显存没有发生变化时移动设备的屏幕画面显示没有发生变化。当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。其中,统计步长指的是帧率统计值的增加幅度,统计步长的取值具体可以由帧率统计值的变化幅度来决定。例如,统计步长设置为I时,每当物理显存发生变化时,就将移动设备的帧率统计值增加1,又如,统计步长设置为2时,每当物理显存发生变化时,就将移动设备的帧率统计值增加2。
[0050]104、判断上述采样时间段的计时时长是否已经完成。
[0051]其中,若上述采样时间段的计时时长还没有完成时,触发步骤101再次执行,当上述采样时间段计时结束时触发步骤105执行。
[0052]在本发明的一些实施例中,在采样时间段计时开始之后,每当一个采样时间间隔过后,都需要触发步骤101开始执行,这在步骤101执行之后会顺序触发后续步骤102至104的执行,从而实现在一个采样时间段内循环往复多次,直至上述采样时间段的计时结束。
[0053]105、当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率。
[0054]在本发明实施例中,步骤101至步骤104会在采样时间段计时开始后,依据采样时间间隔多次循环往复执行,直至上述采样时间段的计时结束。当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率。举例来说,若采样时间段预先设定为ls,输出的帧率统计值为30个统计步长,则通过帧率统计值除以采样时间段就可以或到移动设备的实时帧率为30帧。
[0055]由上可见,预先设置采样时间段和采样时间间隔,然后当采样时间段计时开始时,按照采样时间间隔获取在采样时间间隔之前和之后的采样时间分布采集到的两帧的像素点的像素值,得到第一帧的像素点的像素值和第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化,若是,将移动设备的帧率统计值增加一个统计步长,接下来判断采样时间段的计时时长是否已经完成,若否,按照采样时间间隔继续获取前后个采样时间分布采集到的两帧的像素点的像素值,并继续进行物理显存是否发生变化的判断,直至采样时间段计时结束,输出帧率统计值,根据采样时间段和帧率统计值获取当前移动设备的实时帧率。通过在采样时间段内按照采样时间间隔定时对移动设备的物理显存的数据内容进行提取和比对,从而计算出物理显存的帧率,可以实现随时随地的对移动设备的屏幕显示帧率进行实时探测。
[0056]请参阅图2所示,本发明另一个实施例提供的移动设备的实时帧率探测方法,可以包括:
[0057]201、按照预置的采样时间间隔将上述移动设备在第一帧的物理显存和第二帧的物理显存映射到进程的虚拟地址空间。
[0058]在本发明的一些实施例中,每个进程都有自己的虚拟地址空间,进程的地址空间的大小可以由移动设备的CPU的位数决定。当预置的采样时间段计时开始时,按照预置的采样时间间隔分别将采样时间间隔之前的采样时间采集到的第一帧的物理显存映射到进程的虚拟地址空间、将采样时间间隔之后的采样时间采集到的第二帧的物理显存映射到进程的虚拟地址空间。将物理显存映射到进程的虚拟地址空间具体可以通过_ap的方式实现。其中,mmap将物理显存中的数据内容映射进内存,数据内容被映射到多个页上,如果数据内容的大小不是所有页的大小之和,最后一个页不被使用的空间将会清零。
[0059]202、以数组的方式从上述进程的虚拟地址空间中读取出第一帧的像素点的像素值和第二帧的像素点的像素值。
[0060]其中,将第一帧的物理显存映射到进程的虚拟地址空间之后,就可以通过数组的方式从进程的虚拟地址空间读取出第一帧的像素点的像素值,同样的,将第二帧的物理显存映射到进程的虚拟地址空间之后,就可以通过数组的方式从进程的虚拟地址空间读取出第二帧的像素点的像素值。
[0061]为了详细说明如何将移动设备的物理显存映射到进程的虚拟地址空间并读取出像素点的像素值,请参阅如图3所示,为本发明实施例中将移动设备的物理显存映射到进程的虚拟地址空间并读取出像素点的像素值的实现方式示意图,首先通过_ap方式将物理显存映射到进程的虚拟地址空间,然后通过数组Array[i] [j],通过i和j取值的不断变化,可以从进程的虚拟地址空间中读取出像素点的像素值,从而实现对物理显存的访问。
[0062]另外在本发明的一些实施例中,通过步骤201和步骤202获取到物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值还可以有其它的实现方式,举例来说,可以为如下步骤:访问上述移动设备在第一帧的物理显存,读取上述移动设备在第一帧的物理显存中的文件数据,得到上述第一帧的像素点的像素值;访问上述移动设备在第二帧的物理显存,读取上述移动设备在第二帧的物理显存中的文件数据,得到上述第二帧的像素点的像素值。也就是说,步骤201至202采用映射到进程的虚拟地址空间然后使用数组读像素点的像素值的方式,可以类比于读内存中数据内容的方式,其读取效率较高,前述举例中是直接访问物理显存,是以读取“文件系统”的方式访问了物理显存,将物理显存看成一个“文件系统”,通过读取文件的方式读取到物理显存中的文件数据,这种方式相比于读内存的方式效率稍微低一点,但同样也可以获取到移动设备第一帧的像素点的像素值和第二帧的像素点的像素值。
[0063]203、比较上述第一帧的每个第一像素点与上述第二帧的每个第二像素点各自的像素值是否相同。
[0064]其中,若第一帧的每个第一像素点和第二针的每个第二像素点各自的像素值都相同,则说明上述物理显存没有发生变化,若第一帧的每个第一像素点和第二针的每个第二像素点各自的像素值中存在像素值不相同的像素点,则说明所述物理显存发生变化,上述第一像素点在第一帧中的像素位置和上述第二像素点在第二帧中的像素位置相同。
[0065]也就是说,步骤203通过对像素位置相同的像素点在采样时间间隔之前的采样时间和采样时间间隔之后的采样时间分别采集到第一像素点和第二像素点,通过逐个像素位置比较前后两个采样时间分别采集到的像素点的像素值是否不同,若每个像素位置的前后两个采样时间分别采集到的像素点的像素值都相同,则认为移动设备的物理显存没有发生变化,若所有的像素位置中有前后两个采样时间分别采集到的像素点的像素值不同,则认为移动设备的物理显存发生了变化。
[0066]另外在本发明的一些实施例中,通过步骤203比较上述第一帧的每个第一像素点与上述第二帧的每个第二像素点各自的像素值是否相同还可以有其它的实现方式,举例来说,可以为如下步骤:按照相同的概率抽样方法分别从上述第一帧的全部像素点抽样出第一像素点集合,从上述第二帧的全部像素点抽样出第二像素点集合;比较上述第一像素点集合的每个第三像素点与上述第二像素点集合的每个第四像素点各自的像素值是否相同,若相同,则说明上述物理显存没有发生变化,若不相同,则说明上述物理显存发生变化,其中,上述第三像素点在第一帧中的像素位置和上述第四像素点在第二帧中的像素位置相同。也就是说,相对于步骤203中逐个像素位置都判断采样时间间隔之前和之后的两个采样时间采集到的像素点的像素值是否相同,本发明实施例中还可以对全部的像素位置进行抽样,得到部分像素位置,然后再比较这些部分像素位置中采样时间间隔之前和之后的两个采样时间分别采集到的像素点的像素值是否相同,具体的,可以通过使用相同的概率抽样方法分别从第一帧的全部像素点抽样出第一像素点集合,从第二帧的全部像素点抽样出第二像素点集合,然后比较上述第一像素点集合的每个第三像素点与上述第二像素点集合的每个第四像素点各自的像素值是否相同。
[0067]204、当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。
[0068]其中,通过对物理显存是否发生变化的判断,从而获取到移动设备的屏幕画面显示是否发生了变化,举例来说,当物理显存发生变化时移动设备的屏幕画面显示发生了变化,当物理显存没有发生变化时移动设备的屏幕画面显示没有发生变化。当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。其中,统计步长指的是帧率统计值的增加幅度,统计步长的取值具体可以由帧率统计值来决定。
[0069]205、判断上述采样时间段的计时时长是否已经完成。
[0070]其中,若上述采样时间段的计时时长还没有完成时,触发步骤201再次执行,当上述采样时间段计时结束时触发步骤206执行。
[0071]在本发明的一些实施例中,在采样时间段计时开始之后,每当一个采样时间间隔过后,都需要触发步骤201开始执行,这在步骤201执行之后会顺序触发后续步骤202至205的执行,从而实现在一个采样时间段内循环往复多次,直至上述采样时间段的计时结束。
[0072]206、当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率。
[0073]在本发明实施例中,步骤201至步骤205会在采样时间段计时开始后,依据采样时间间隔多次循环往复执行,直至上述采样时间段的计时结束。当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时中贞率。
[0074]请参阅图4所示,本发明另一个实施例提供的移动设备的实时帧率探测方法,可以包括:
[0075]401、访问上述移动设备在第一帧的物理显存,读取上述移动设备在第一帧的物理显存中的文件数据,得到上述第一帧的像素点的像素值。
[0076]402、访问上述移动设备在第二帧的物理显存,读取上述移动设备在第二帧的物理显存中的文件数据,得到上述第二帧的像素点的像素值。
[0077]在本发明实施例中,前述实施例中步骤201至202采用映射到进程的虚拟地址空间然后使用数组读像素点的像素值的方式,可以类比于读内存中数据内容的方式,其读取效率较高。步骤401和402采样的实现方式是直接访问物理显存,是以读取“文件系统”的方式访问了物理显存,将物理显存看成一个“文件系统”,通过读取文件的方式读取到物理显存中的文件数据,这种方式相比于读内存的方式效率稍微低一点,但同样也可以获取到移动设备第一帧的像素点的像素值和第二帧的像素点的像素值。
[0078]403、分别计算上述第一帧的全部像素点的总和检验码和上述第二帧的全部像素点的总和检验码。
[0079]其中,计算像素点的总和检验码可以通过checksum的方式来实现,checksum中需要计算出每个像素点的像素值的和。
[0080]404、判断上述第一帧的全部像素点的总和检验码和上述第二帧的全部像素点的总和检验码是否相等。
[0081]其中,若上述第一帧的全部像素点的总和检验码和上述第一帧的全部像素点的总和检验码相等,则说明上述物理显存没有发生变化,若不相等,则说明上述物理显存发生变化。
[0082]请参阅图5所示,为本发明实施例中对第一帧的全部像素点和第二帧的全部像素点进行checksum的实现方式示意图。其中,假设物理内存中图像的分辨率为MXN,M和N为自然数,对于像素位置I在第一巾贞的像素点为X1,
[0083]像素位置I在第二帧的像素点为X1',对于像素位置2在第一帧的像素点为X2,像素位置2在第二巾贞的像素点为X2',计算上述第一巾贞的全部像素点的总和检验码为sum',计算出第二巾贞的全部像素点的总和检验码为sum,然后进行校验(check),判断sum'和sum是否相等,若是,则说明上述物理显存没有发生变化,若不相等,则说明上述物理显存发生变化。
[0084]另外在本发明的一些实施例中,通过步骤403和步骤404通过判断上述第一帧的全部像素点的总和检验码和上述第二帧的全部像素点的总和检验码是否相等可以判断出移动设备的物理显存是否发生变化,需要说明的是判断移动设备的物理显存是否发生变化还有其它的实现方式,例如,可以为如下步骤:按照相同的概率抽样方法分别从上述第一帧的全部像素点抽样出第一像素点集合,从上述第二帧的全部像素点抽样出第二像素点集合;分别计算上述第一像素点集合中的全部像素点的总和检验码和上述第二像素点集合中的全部像素点的总和检验码;判断上述第一像素点集合中的全部像素点的总和检验码和上述第二像素点集合中的全部像素点的总和检验码是否相等;若是,则说明上述物理显存没有发生变化,若不相等,则说明上述物理显存发生变化。也就是说,前述实现方式是对全部的像素位置进行抽样,得到部分像素位置,即第一像素点集合和第二像素点集合,接下来分别计算第一像素点集合和第二像素点集合中的全部像素点的总和检验码。通过概率抽样方法对物理显存中的全部像素点进行概率抽样,可以更快速的判断出物理显存是否发生变化。
[0085]405、当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。
[0086]其中,通过对物理显存是否发生变化的判断,从而获取到移动设备的屏幕画面显示是否发生了变化,举例来说,当物理显存发生变化时移动设备的屏幕画面显示发生了变化,当物理显存没有发生变化时移动设备的屏幕画面显示没有发生变化。当上述物理显存发生变化时,将上述移动设备的帧率统计值增加一个统计步长。其中,统计步长指的是帧率统计值的增加幅度,统计步长的取值具体可以由帧率统计值来决定。
[0087]406、判断上述采样时间段的计时时长是否已经完成。
[0088]其中,若上述采样时间段的计时时长还没有完成时,触发步骤401再次执行,当上述采样时间段计时结束时触发步骤407执行。
[0089]在本发明的一些实施例中,在采样时间段计时开始之后,每当一个采样时间间隔过后,都需要触发步骤401开始执行,这在步骤401执行之后会顺序触发后续步骤402至406的执行,从而实现在一个采样时间段内循环往复多次,直至上述采样时间段的计时结束。
[0090]407、当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率。
[0091]在本发明实施例中,步骤401至步骤405会在采样时间段计时开始后,依据采样时间间隔多次循环往复执行,直至上述采样时间段的计时结束。当上述采样时间段计时结束时,输出上述帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时中贞率。
[0092]由上可见,预先设置采样时间段和采样时间间隔,然后当采样时间段计时开始时,按照采样时间间隔获取在采样时间间隔之前和之后的采样时间分布采集到的两帧的像素点的像素值,得到第一帧的像素点的像素值和第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化,若是,将移动设备的帧率统计值增加一个统计步长,接下来判断采样时间段的计时时长是否已经完成,若否,按照采样时间间隔继续获取前后个采样时间分布采集到的两帧的像素点的像素值,并继续进行物理显存是否发生变化的判断,直至采样时间段计时结束,输出帧率统计值,根据采样时间段和帧率统计值获取当前移动设备的实时帧率。通过在采样时间段内按照采样时间间隔定时对移动设备的物理显存的数据内容进行提取和比对,从而计算出物理显存的帧率,可以实现随时随地的对移动设备的屏幕显示帧率进行实时探测。
[0093]为便于更好的理解和实施本发明实施例的上述方案,下面举例相应的应用场景来进行具体说明。
[0094]请参阅如图6所示,为本发明实施例中移动设备的实时帧率探测方法的流程示意图,可以包括:
[0095]601、对预置的计数器Num和帧率寄存器FPS进行初始化,其中设定的采样时间间隔为20ms、采样时间段为ls,则在该采样时间段内计数器的最大取值为50个,最小取值为0,初始化时Num的赋值为50,在图6中用于符号”表示赋值的意思,“Num <— 50" BP表示为Num的赋值为50,后续步骤中出现的“<一”也表示赋值,FPS用于存储移动设备的帧率统计值,FPS可以从小于或等于O开始计数,初始化时FPS的赋值为0,设定统计步长为
1
[0096]602,当采样时间段计时开始时,每隔20ms触发一下后续步骤603至步骤606,为了便于描述,将步骤603至步骤606画入了一个大的虚线框,故可以简化描述为每隔20ms触发一下虚线框内的执行步骤执行一次。
[0097]603、判断Num是否大于0,若Num小于或者等于0,则说明采样时间段的计时结束了,重新触发步骤601和步骤607开始执行,若Num大于0,则说明采样时间段的计时时长还正在进行,触发步骤604开始执行。
[0098]604、对Num进行重新赋值为:Num — I,并读取巾贞缓存(frame buffer),采集到当前的物理显存中像素点的像素值,然后执行步骤605。
[0099]605、判断移动设备的物理显存是否发生变化,其判断物理显存发生变化的方式可参阅前述实施例中的描述,若物理显存发生变化触发步骤606开始执行;
[0100]606、当物理显存发生变化时,对FPS进行重新赋值为:FPS + I。
[0101]607、当采样时间段计时结束时,输出FPS中存储的帧率统计值,根据上述采样时间段和上述帧率统计值获取上述移动设备的实时帧率,若采样时间段为ls,则移动设备的实时帧率即为FPS中存储的帧率统计值。
[0102]由上可见,预先设置采样时间段和采样时间间隔,然后当采样时间段计时开始时,按照采样时间间隔获取在采样时间间隔之前和之后的采样时间分布采集到的两帧的像素点的像素值,得到第一帧的像素点的像素值和第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化,若是,将移动设备的帧率统计值增加一个统计步长,接下来判断采样时间段的计时时长是否已经完成,若否,按照采样时间间隔继续获取前后个采样时间分布采集到的两帧的像素点的像素值,并继续进行物理显存是否发生变化的判断,直至采样时间段计时结束,输出帧率统计值,根据采样时间段和帧率统计值获取当前移动设备的实时帧率。通过在采样时间段内按照采样时间间隔定时对移动设备的物理显存的数据内容进行提取和比对,从而计算出物理显存的帧率,可以实现随时随地的对移动设备的屏幕显示帧率进行实时探测。
[0103]需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0104]为便于更好的实施本发明实施例的上述方案,下面还提供用于实施上述方案的相关装置。
[0105]请参阅图7-a所示,本发明实施例提供的一种移动设备的实时帧率探测装置700,可以包括:像素值获取模块701、显存判断模块702、统计模块703、计时模块704、帧率探测模块705,其中,
[0106]像素值获取模块701,用于当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧;
[0107]显存判断模块702,用于根据像素值获取模块701获取到的所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化;
[0108]统计模块703,用于当显存判断模块702判断得知所述物理显存发生变化时,将所述移动设备的帧率统计值增加一个统计步长;
[0109]计时模块704,用于判断所述采样时间段的计时时长是否已经完成,若否,触发所述像素值获取模块701再次执行;
[0110]帧率探测模块705,用于当所述采样时间段计时结束时,输出统计模块703统计到的所述移动设备的帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
[0111]在本发明的一些实施例中,显存判断模块702,具体用于比较所述第一帧的每个第一像素点与所述第二帧的每个第二像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第一像素点在第一帧中的像素位置和所述第二像素点在第二帧中的像素位置相同。
[0112]请参阅如图7_b所示,在本发明的一些实施例中,移动设备的实时帧率探测装置700,还可以包括:
[0113]设定模块706,用于根据所述移动设备的内存的速度和中央处理器CPU的频率设定所述采样时间段和所述采样时间间隔。
[0114]在本发明的一些实施例中,像素值获取模块701,可以包括:
[0115]映射子模块7011,用于按照预置的采样时间间隔将所述移动设备在第一帧的物理显存和第二帧的物理显存映射到进程的虚拟地址空间;
[0116]第一读取子模块7012,用于以数组的方式从所述进程的虚拟地址空间中读取出第一帧的像素点的像素值和第二帧的像素点的像素值。
[0117]在本发明的一些实施例中,显存判断模块702,可以包括:
[0118]第一计算子模块7021,用于分别计算所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码;
[0119]第一判断子模块7022,用于判断所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
[0120]请参阅如图7-c所示,在本发明的一些实施例中,像素值获取模块701,可以包括:
[0121]显存访问子模块7013,用于访问所述移动设备在第一帧的物理显存,访问所述移动设备在第二帧的物理显存;
[0122]第二读取子模块7014,用于读取所述移动设备在第一帧的物理显存中的文件数据,得到所述第一帧的像素点的像素值;读取所述移动设备在第二帧的物理显存中的文件数据,得到所述第二帧的像素点的像素值。
[0123]在本发明的一些实施例中,显存判断模块702,可以包括:
[0124]抽样子模块7023,用于按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合;
[0125]第二计算子模块7024,用于分别计算所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码;
[0126]第二判断子模块7025,用于判断所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
[0127]请参阅如图7-d所示,在本发明的一些实施例中,像素值获取模块701,可以包括:
[0128]显存访问子模块7013,用于访问所述移动设备在第一帧的物理显存,访问所述移动设备在第二帧的物理显存;
[0129]第二读取子模块7014,用于读取所述移动设备在第一帧的物理显存中的文件数据,得到所述第一帧的像素点的像素值;读取所述移动设备在第二帧的物理显存中的文件数据,得到所述第二帧的像素点的像素值。
[0130]在本发明的一些实施例中,显存判断模块702,可以包括:
[0131]抽样子模块7023,用于按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合;
[0132]比较子模块7026,用于比较所述第一像素点集合的每个第三像素点与所述第二像素点集合的每个第四像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第三像素点在第一帧中的像素位置和所述第四像素点在第二帧中的像素位置相同。
[0133]需要说明的是,上述装置各模块/单元之间的信息交互、执行过程等内容,由于与本发明方法实施例基于同一构思,其带来的技术效果与本发明方法实施例相同,具体内容可参见本发明前述所示的方法实施例中的叙述,此处不再赘述。
[0134]综上,预先设置采样时间段和采样时间间隔,然后当采样时间段计时开始时,按照采样时间间隔获取在采样时间间隔之前和之后的采样时间分布采集到的两帧的像素点的像素值,得到第一帧的像素点的像素值和第二帧的像素点的像素值,然后根据第一帧的像素点的像素值和第二帧的像素点的像素值判断物理显存是否发生变化,若是,将移动设备的帧率统计值增加一个统计步长,接下来判断采样时间段的计时时长是否已经完成,若否,按照采样时间间隔继续获取前后个采样时间分布采集到的两帧的像素点的像素值,并继续进行物理显存是否发生变化的判断,直至采样时间段计时结束,输出帧率统计值,根据采样时间段和帧率统计值获取当前移动设备的实时帧率。通过在采样时间段内按照采样时间间隔定时对移动设备的物理显存的数据内容进行提取和比对,从而计算出物理显存的帧率,可以实现随时随地的对移动设备的屏幕显示帧率进行实时探测。
[0135]以下主要以本发明实施例的移动设备的帧率探测方法应用于终端中来举例说明,该终端可以包括智能手机、平板电脑、电子书阅读器、动态影像专家压缩标准音频层面3(Moving Picture Experts Group Aud1 Layer III,MP3)播放器、动态影像专家压缩标准音频层面 4 (Moving Picture Experts Group Aud1 Layer IV, MP4)播放器、膝上型便携计算机和台式计算机等等。
[0136]请参考图8,其示出了本发明实施例所涉及的终端的结构示意图,具体来讲:
[0137]终端可以包括射频(Rad1 Frequency, RF)电路20、包括有一个或一个以上计算机可读存储介质的存储器21、输入单元22、显示单元23、传感器24、音频电路25、无线保真(wireless fidelity,WiFi)模块26、包括有一个或者一个以上处理核心的处理器27、以及电源28等部件。本领域技术人员可以理解,图8中示出的终端结构并不构成对终端的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。其中:
[0138]RF电路20可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,交由一个或者一个以上处理器27处理;另外,将涉及上行的数据发送给基站。通常,RF电路20包括但不限于天线、至少一个放大器、调谐器、一个或多个振荡器、用户身份模块(SIM)卡、收发信机、耦合器、低噪声放大器(Low Noise Amplifier, LNA)、双工器等。此外,RF电路20还可以通过无线通信与网络和其他设备通信。所述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(Global System of Mobilecommunicat1n, GSM)、通用分组无线服务(General Packet Rad1 Service, GPRS)、码分多址(Code Divis1n Multiple Access, CDMA)、宽带码分多址(Wideband Code Divis1nMultiple Access, WCDMA)、长期演进(Long Term Evolut1n, LTE)、电子邮件、短消息服务(Short Messaging Service, SMS)等。
[0139]存储器21可用于存储软件程序以及模块,处理器27通过运行存储在存储器21的软件程序以及模块,从而执行各种功能应用以及数据处理。存储器21可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据终端的使用所创建的数据匕如音频数据、电话本等)等。此外,存储器21可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。相应地,存储器21还可以包括存储器控制器,以提供处理器27和输入单元22对存储器21的访问。
[0140]输入单元22可用于接收输入的数字或字符信息,以及产生与用户设置以及功能控制有关的键盘、鼠标、操作杆、光学或者轨迹球信号输入。具体地,在一个具体的实施例中,输入单元22可包括触敏表面221以及其他输入设备222。触敏表面221,也称为触摸显示屏或者触控板,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触敏表面221上或在触敏表面221附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触敏表面221可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器27,并能接收处理器27发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触敏表面221。除了触敏表面221,输入单元22还可以包括其他输入设备222。具体地,其他输入设备222可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
[0141]显示单元23可用于显示由用户输入的信息或提供给用户的信息以及终端的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示单元23可包括显示面板231,可选的,可以采用液晶显示器(Liquid Crystal Display,IXD)、有机发光二极管(Organic Light-Emitting D1de, 0LED)等形式来配置显示面板231。进一步的,触敏表面221可覆盖显示面板231,当触敏表面221检测到在其上或附近的触摸操作后,传送给处理器27以确定触摸事件的类型,随后处理器27根据触摸事件的类型在显示面板231上提供相应的视觉输出。虽然在图8中,触敏表面221与显示面板231是作为两个独立的部件来实现输入和输入功能,但是在某些实施例中,可以将触敏表面221与显示面板231集成而实现输入和输出功能。
[0142]终端还可包括至少一种传感器24,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板231的亮度,接近传感器可在终端移动到耳边时,关闭显示面板231和/或背光。作为运动传感器的一种,重力加速度传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
[0143]音频电路25、扬声器251,传声器252可提供用户与终端之间的音频接口。音频电路25可将接收到的音频数据转换后的电信号,传输到扬声器251,由扬声器251转换为声音信号输出;另一方面,传声器252将收集的声音信号转换为电信号,由音频电路25接收后转换为音频数据,再将音频数据输出处理器27处理后,经RF电路20以发送给比如另一终端,或者将音频数据输出至存储器21以便进一步处理。音频电路25还可能包括耳塞插孔,以提供外设耳机与终端的通信。
[0144]WiFi属于短距离无线传输技术,终端通过WiFi模块26可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图8示出了WiFi模块26,但是可以理解的是,其并不属于终端的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
[0145]处理器27是终端的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器21内的软件程序和/或模块,以及调用存储在存储器21内的数据,执行终端的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器27可包括一个或多个处理核心;优选的,处理器27可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器27中。
[0146]终端还包括给各个部件供电的电源28 (比如电池),优选的,电源可以通过电源管理系统与处理器27逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。电源28还可以包括一个或一个以上的直流或交流电源、再充电系统、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
[0147]尽管未示出,终端还可以包括摄像头、蓝牙模块等,在此不再赘述。具体在本实施例中,终端的显示单元是触摸屏显示器,终端的存储器21与上述数据库类似,可以存储采样时间段、采样时间间隔、帧率统计值。
[0148]且本实施例的终端中一个或者一个以上程序存储于存储器21中,且经配置以由一个或者一个以上处理器27执行上述一个或者一个以上程序所包含的以下操作指令:
[0149]当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧;
[0150]根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化;
[0151]若是,将所述移动设备的帧率统计值增加一个统计步长;
[0152]判断所述采样时间段的计时时长是否已经完成,若否,触发按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值再次执行;当所述采样时间段计时结束时,输出所述帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
[0153]具体地,所述按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,包括:
[0154]按照预置的采样时间间隔将所述移动设备在第一帧的物理显存和第二帧的物理显存映射到进程的虚拟地址空间;
[0155]以数组的方式从所述进程的虚拟地址空间中读取出第一帧的像素点的像素值和第二帧的像素点的像素值。
[0156]具体的,所述按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,包括:
[0157]访问所述移动设备在第一帧的物理显存,读取所述移动设备在第一帧的物理显存中的文件数据,得到所述第一帧的像素点的像素值;
[0158]访问所述移动设备在第二帧的物理显存,读取所述移动设备在第二帧的物理显存中的文件数据,得到所述第二帧的像素点的像素值。
[0159]具体的,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括:
[0160]比较所述第一帧的每个第一像素点与所述第二帧的每个第二像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第一像素点在第一帧中的像素位置和所述第二像素点在第二帧中的像素位置相同。
[0161]具体的,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括:
[0162]分别计算所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码;
[0163]判断所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
[0164]具体的,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括:
[0165]按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合;
[0166]分别计算所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码;
[0167]判断所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
[0168]具体的,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括:
[0169]按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合;
[0170]比较所述第一像素点集合的每个第三像素点与所述第二像素点集合的每个第四像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第三像素点在第一帧中的像素位置和所述第四像素点在第二帧中的像素位置相同。
[0171]进一步地,所述采样时间段和所述采样时间间隔根据所述移动设备的内存的速度和中央处理器CPU的频率设定。
[0172]本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:只读存储器(ROM)、随机存取存储器(RAM)、磁盘或光盘等。
[0173]以上对本发明所提供的一种移动设备的帧率探测方法和相关装置进行了详细介绍,对于本领域的一般技术人员,依据本发明实施例的思想,在【具体实施方式】及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本发明的限制。
【权利要求】
1.一种移动设备的实时帧率探测方法,其特征在于,包括: 当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧; 根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化; 若是,将所述移动设备的帧率统计值增加一个统计步长; 判断所述采样时间段的计时时长是否已经完成,若否,触发按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值再次执行;当所述采样时间段计时结束时,输出所述帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
2.根据权利要求1所述的方法,其特征在于,所述按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,包括: 按照预置的采样时间间隔将所述移动设备在第一帧的物理显存和第二帧的物理显存映射到进程的虚拟地址空间; 以数组的方式从所述进程的虚拟地址空间中读取出第一帧的像素点的像素值和第二帧的像素点的像素值。
3.根据权利要求1所述的方法,其特征在于,所述按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,包括: 访问所述移动设备在第一帧的物理显存,读取所述移动设备在第一帧的物理显存中的文件数据,得到所述第一帧的像素点的像素值; 访问所述移动设备在第二帧的物理显存,读取所述移动设备在第二帧的物理显存中的文件数据,得到所述第二帧的像素点的像素值。
4.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括: 比较所述第一帧的每个第一像素点与所述第二帧的每个第二像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第一像素点在第一帧中的像素位置和所述第二像素点在第二帧中的像素位置相同。
5.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括: 分别计算所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码; 判断所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
6.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括: 按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合; 分别计算所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码; 判断所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
7.根据权利要求1至3中任一项所述的方法,其特征在于,所述根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化,包括: 按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合; 比较所述第一像素点集合的每个第三像素点与所述第二像素点集合的每个第四像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第三像素点在第一帧中的像素位置和所述第四像素点在第二帧中的像素位置相同。
8.根据权利要求1至3中任一项所述的方法,其特征在于,所述采样时间段和所述采样时间间隔根据所述移动设备的内存的速度和中央处理器CPU的频率设定。
9.一种移动设备的实时帧率探测装置,其特征在于,包括: 像素值获取模块,用于当预置的采样时间段计时开始时,按照预置的采样时间间隔获取移动设备的物理显存在第一帧的像素点的像素值和在第二帧的像素点的像素值,所述第一帧为在所述采样时间间隔之前的采样时间采集到的帧,所述第二帧为在所述采样时间间隔之后的采样时间采集到的帧; 显存判断模块,用于根据所述第一帧的像素点的像素值和所述第二帧的像素点的像素值判断所述物理显存是否发生变化; 统计模块,用于当所述物理显存发生变化时,将所述移动设备的帧率统计值增加一个统计步长; 计时模块,用于判断所述采样时间段的计时时长是否已经完成,若否,触发所述像素值获取模块再次执行; 帧率探测模块,用于当所述采样时间段计时结束时,输出所述移动设备的帧率统计值,根据所述采样时间段和所述帧率统计值获取所述移动设备的实时帧率。
10.根据权利要求9所述的装置,其特征在于,所述像素值获取模块,包括: 映射子模块,用于按照预置的采样时间间隔将所述移动设备在第一帧的物理显存和第二帧的物理显存映射到进程的虚拟地址空间; 第一读取子模块,用于以数组的方式从所述进程的虚拟地址空间中读取出第一帧的像素点的像素值和第二帧的像素点的像素值。
11.根据权利要求9所述的装置,其特征在于,所述像素值获取模块,包括: 显存访问子模块,用于访问所述移动设备在第一帧的物理显存,访问所述移动设备在第二帧的物理显存; 第二读取子模块,用于读取所述移动设备在第一帧的物理显存中的文件数据,得到所述第一帧的像素点的像素值;读取所述移动设备在第二帧的物理显存中的文件数据,得到所述第二帧的像素点的像素值。
12.根据权利要求9至11中任一项所述的装置,其特征在于,所述显存判断模块,具体用于比较所述第一帧的每个第一像素点与所述第二帧的每个第二像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第一像素点在第一帧中的像素位置和所述第二像素点在第二帧中的像素位置相同。
13.根据权利要求9至11中任一项所述的装置,其特征在于,所述显存判断模块,包括: 第一计算子模块,用于分别计算所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码; 第一判断子模块,用于判断所述第一帧的全部像素点的总和检验码和所述第二帧的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
14.根据权利要求9至11中任一项所述的装置,其特征在于,所述显存判断模块,包括: 抽样子模块,用于按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合; 第二计算子模块,用于分别计算所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码; 第二判断子模块,用于判断所述第一像素点集合中的全部像素点的总和检验码和所述第二像素点集合中的全部像素点的总和检验码是否相等;若是,则说明所述物理显存没有发生变化,若不相等,则说明所述物理显存发生变化。
15.根据权利要求9至11中任一项所述的装置,其特征在于,所述显存判断模块,包括: 抽样子模块,用于按照相同的概率抽样方法分别从所述第一帧的全部像素点抽样出第一像素点集合,从所述第二帧的全部像素点抽样出第二像素点集合; 比较子模块,用于比较所述第一像素点集合的每个第三像素点与所述第二像素点集合的每个第四像素点各自的像素值是否相同,若相同,则说明所述物理显存没有发生变化,若不相同,则说明所述物理显存发生变化,其中,所述第三像素点在第一帧中的像素位置和所述第四像素点在第二帧中的像素位置相同。
16.根据权利要求9至11中任一项所述的装置,其特征在于,所述移动设备的实时帧率探测装置,还包括: 设定模块,用于根据所述移动设备的内存的速度和中央处理器CPU的频率设定所述采样时间段和所述采样时间间隔。
【文档编号】G06F11/34GK104166614SQ201310185743
【公开日】2014年11月26日 申请日期:2013年5月17日 优先权日:2013年5月17日
【发明者】尹程果 申请人:腾讯科技(深圳)有限公司