一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种画面帧率确定方法及装置与流程

2021-12-15 01:41:00 来源:中国专利 TAG:


1.本公开涉及计算机技术领域,具体而言,涉及一种画面帧率确定方法及装置。


背景技术:

2.flutter是一种构建用户界面工具包,帮助开发者通过一套代码库高效构建多平台精美应用,支持移动、web、桌面和嵌入式平台。利用flutter在开发的页面可以被称作flutter页面。在flutter页面的运行信息监控中,页面的每秒传输帧数(frames per second,fps,又称帧率)是一个非常重要的指标,能够直接反映页面显示的流畅程度。
3.目前,针对flutter页面的fps确定方法需要修改flutter引擎,复杂度极高,难度较大。


技术实现要素:

4.本公开实施例至少提供一种画面帧率确定方法及装置。
5.第一方面,本公开实施例提供了一种画面帧率确定方法,包括:
6.获取终端设备绘制的多帧画面中各帧画面的绘制耗时;
7.基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;
8.基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;
9.基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。
10.一种可选的实施方式中,所述获取终端设备绘制的多帧画面中各帧画面的绘制耗时,包括:
11.利用计时回调函数获取所述各帧画面的绘制信号响应时间、绘制计算时间以及内存绘制时间;
12.基于所述绘制信号响应时间、绘制计算时间以及内存绘制时间,确定所述各帧画面的绘制耗时。
13.一种可选的实施方式中,所述基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数,包括:
14.针对所述各帧画面中的每一帧画面,确定该帧画面的绘制耗时与所述标准绘制时长之间的第一比值;
15.基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数。
16.一种可选的实施方式中,所述基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数,包括:
17.在所述第一比值小于1的情况下,确定所述每一帧画面对应的丢帧数为0;
18.在所述第一比值大于或等于1的情况下,对所述第一比值进行向下取整处理,并将向下取整处理后得到的数值作为所述每一帧画面对应的丢帧数。
19.一种可选的实施方式中,所述基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率,包括:
20.确定所述画面绘制成功率与所述标准绘制帧率的值的乘积;
21.基于确定的乘积确定所述多帧画面的实际绘制帧率。
22.一种可选的实施方式中,通过以下步骤确定所述标准绘制时长:
23.确定目标单位时间与所述标准绘制帧率之间的第二比值;
24.将所述第二比值作为所述标准绘制时长。
25.第二方面,本公开实施例还提供一种画面帧率确定装置,包括:
26.获取模块,用于获取终端设备绘制的多帧画面中各帧画面的绘制耗时;
27.第一确定模块,用于基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;
28.第二确定模块,用于基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;
29.第三确定模块,用于基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。
30.一种可选的实施方式中,所述获取模块具体用于:
31.利用计时回调函数获取所述各帧画面的绘制信号响应时间、绘制计算时间以及内存绘制时间;
32.基于所述绘制信号响应时间、绘制计算时间以及内存绘制时间,确定所述各帧画面的绘制耗时。
33.一种可选的实施方式中,所述第一确定模块具体用于:
34.针对所述各帧画面中的每一帧画面,确定该帧画面的绘制耗时与所述标准绘制时长之间的第一比值;
35.基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数。
36.一种可选的实施方式中,所述第一确定模块在基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数时,用于:
37.在所述第一比值小于1的情况下,确定所述每一帧画面对应的丢帧数为0;
38.在所述第一比值大于或等于1的情况下,对所述第一比值进行向下取整处理,并将向下取整处理后得到的数值作为所述每一帧画面对应的丢帧数。
39.一种可选的实施方式中,所述第三确定模块具体用于:
40.确定所述画面绘制成功率与所述标准绘制帧率的值的乘积;
41.基于确定的乘积确定所述多帧画面的实际绘制帧率。
42.一种可选的实施方式中,所述装置还包括第四确定模块,用于:
43.确定目标单位时间与所述标准绘制帧率之间的第二比值;
44.将所述第二比值作为所述标准绘制时长。
45.第三方面,本公开实施例还提供一种电子设备,包括:处理器、存储器和总线,所述
存储器存储有所述处理器可执行的机器可读指令,当电子设备运行时,所述处理器与所述存储器之间通过总线通信,所述机器可读指令被所述处理器执行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
46.第四方面,本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述第一方面,或第一方面中任一种可能的实施方式中的步骤。
47.本公开实施例提供的画面帧率确定方法及装置,首先获取终端设备绘制的多帧画面中各帧画面的绘制耗时;然后,基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;之后,基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;最后,基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。本公开只需获取各帧画面的绘制耗时,即可确定各帧画面对应的丢帧数,再确定画面绘制成功率,最后确定实际绘制帧率,不需要修改flutter引擎,实施难度较低。
48.为使本公开的上述目的、特征和优点能更明显易懂,下文特举较佳实施例,并配合所附附图,作详细说明如下。
附图说明
49.为了更清楚地说明本公开实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,此处的附图被并入说明书中并构成本说明书中的一部分,这些附图示出了符合本公开的实施例,并与说明书一起用于说明本公开的技术方案。应当理解,以下附图仅示出了本公开的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
50.图1示出了本公开实施例所提供的一种画面帧率确定方法的流程图;
51.图2示出了本公开实施例所提供的另一种画面帧率确定方法的流程图;
52.图3示出了本公开实施例所提供的一种画面帧率确定装置的示意图;
53.图4示出了本公开实施例所提供的一种电子设备的示意图。
具体实施方式
54.为使本公开实施例的目的、技术方案和优点更加清楚,下面将结合本公开实施例中附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本公开实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本公开的实施例的详细描述并非旨在限制要求保护的本公开的范围,而是仅仅表示本公开的选定实施例。基于本公开的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本公开保护的范围。
55.应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
56.本文中术语“和/或”,仅仅是描述一种关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。另外,本文中术语“至
少一种”表示多种中的任意一种或多种中的至少两种的任意组合,例如,包括a、b、c中的至少一种,可以表示包括从a、b和c构成的集合中选择的任意一个或多个元素。
57.经研究发现,现有针对flutter页面的fps确定方法需要修改flutter引擎,复杂度极高,难度较大。
58.基于上述研究,本公开提供了一种画面帧率确定方法,只需获取各帧画面的绘制耗时,即可确定各帧画面对应的丢帧数,再确定画面绘制成功率,最后确定实际绘制帧率,不需要修改flutter引擎,实施难度较低。
59.为便于对本实施例进行理解,首先对本公开实施例所公开的一种画面帧率确定方法进行详细介绍,本公开实施例所提供的画面帧率确定方法的执行主体一般为具有一定计算能力的计算机设备。在一些可能的实现方式中,该画面帧率确定方法可以通过处理器调用存储器中存储的计算机可读指令的方式来实现。
60.参见图1所示,为本公开实施例提供的画面帧率确定方法的流程图,所述方法包括步骤s101~s104,其中:
61.s101、获取终端设备绘制的多帧画面中各帧画面的绘制耗时。
62.其中,终端设备可以为具有图像处理功能的计算机设备,如手机、计算机设备、智能手表等。
63.其中,一帧画面的绘制过程可以包括信号响应阶段、构建阶段和绘制阶段,信号响应阶段从底层硬件发出vsync信号开始,到flutter的线程开始执行绘制工作结束,构建阶段由flutter的线程开始计算需要绘制的画面内容,绘制阶段由图形处理器线程根据构建阶段得到的画面内容,将相关纹理绘制在内存中。这里,获取到的各帧画面的绘制耗时即为从信号响应阶段开始至绘制阶段结束所耗的时间。
64.示例性的,可以由flutter构架层的计时回调函数获取所述各帧画面的绘制信号响应时间、绘制计算时间以及内存绘制时间,再基于获取的绘制信号响应时间、绘制计算时间以及内存绘制时间,确定所述各帧画面的绘制耗时。
65.其中,计时回调函数可以为schedulerbinding.addtimingscallback方法,通过计时回调函数,可以注册监听器实现计时,从而不需要对flutter引擎层进行修改。
66.s102、基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数。
67.其中,预设的标准绘制时长可以由标准绘制帧率来确定。示例性的,可以先确定目标单位时间与标准绘制帧率之间的第二比值,再将第二比值作为标准绘制时长。
68.其中,标准绘制帧率为系统预设的绘制帧率,系统以标准绘制帧率为基准,以固定频率,每秒下发固定帧数的绘制信号,系统依次绘制画面,标准绘制时长即为绘制信号发送的频率。然而,由于绘制的消耗时间受到各种因素影响,无法保证在下一绘制信号到来之前完成当前帧的绘制,若下一绘制信号到来时仍在绘制前一帧画面,则无法响应到来的绘制信号,该绘制信号对应的画面则不会被绘制,导致丢失一帧或多帧画面,也即所谓的丢帧。因此,若一帧画面的绘制时间超过标准绘制时长,则会导致丢帧,丢帧的数量由绘制的时长决定。
69.示例性的,目标单位时间可以为1秒,标准绘制帧率可以为24帧/秒、60帧/秒、120帧/秒等。
70.以标准绘制帧率为60帧/秒为例,标准绘制时长则可以为16.6ms。
71.在具体实施过程中,可以利用监听器得到的数据确定各帧画面导致的丢帧数,示例性的,针对各帧画面中的每一帧画面,可以确定该帧画面的绘制耗时与所述标准绘制时长之间的第一比值;然后,基于每一帧画面分别对应的所述第一比值,确定每一帧画面对应的丢帧数。
72.具体的,在所述第一比值小于1的情况下,确定所述每一帧画面对应的丢帧数为0;在所述第一比值大于或等于1的情况下,对所述第一比值进行向下取整处理,并将向下取整处理后得到的数值作为所述每一帧画面对应的丢帧数。
73.示例性的,若一绘制耗时为20ms,则该画面的绘制时间多占用了3.4ms,不足一次标准绘制时长,其比值约为1.2,向下取整得到丢帧数1。
74.在具体实施过程中,可以将确定的丢帧数统计进行统计,比如,可以确定丢帧数分别为“0”、“1”、“2”、“3”、“4”、
……
的画面的数量,每当确定一画面的丢帧数,即可更新统计结果,这样,若需要针对某一具体页面或场景确定帧率时,可以在进入页面或场景时记录当时的统计结果,在离开该页面或场景是再次记录当时的统计结果,将两份统计结果的各项值相减,即可知在上述页面或场景中,各丢帧数对应的画面的数量,并根据统计结果确定实时绘制帧率。
75.s103、基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率。
76.其中,画面绘制成功率可以为实际绘制帧数/(实际绘制帧数 丢帧数),其中,实际绘制帧数可以通过对丢帧数的统计结果确定得到,统计结果可以以键值对的形式记录,其中,键可以为丢帧数,如“0”、“1”等,值可以为键对应的画面数量,这样,通过分别计算各个键值对的键与值的乘积,再将各个得到的乘积相加,即可得到实际绘制帧数。
77.s104、基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。
78.该步骤中,可以确定画面绘制成功率与标准绘制帧率的值的乘积,将得到的乘积作为上述多帧画面的实际绘制帧率的值。
79.这里,上述实际绘制帧率为上述多帧画面的实际平均帧率。
80.参见图2所示,为本公开实施例提供的另一种画面帧率确定方法的流程图,该方法首先监听画面的绘制耗时,每当结束一帧画面的绘制时,确定该画面对应的丢帧数,并将其记录进丢帧统计结果中,当进入需要确定实时绘制帧率的目标场景时,截取开始进入时的统计结果,在离开或截止时截取结束统计结果,利用开始统计结果和结束统计结果得到目标场景的统计结果,并利用目标场景的统计结果确定目标场景下的实际绘制帧率。
81.本公开实施例提供的画面帧率确定方法,首先获取终端设备绘制的多帧画面中各帧画面的绘制耗时;然后,基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;之后,基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;最后,基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。本公开只需获取各帧画面的绘制耗时,即可确定各帧画面对应的丢帧数,再确定画面绘制成功率,最后确定实际绘制帧率,不需要修改flutter引擎,实施难度较低。
82.本领域技术人员可以理解,在具体实施方式的上述方法中,各步骤的撰写顺序并不意味着严格的执行顺序而对实施过程构成任何限定,各步骤的具体执行顺序应当以其功能和可能的内在逻辑确定。
83.基于同一发明构思,本公开实施例中还提供了与画面帧率确定方法对应的画面帧率确定装置,由于本公开实施例中的装置解决问题的原理与本公开实施例上述画面帧率确定方法相似,因此装置的实施可以参见方法的实施,重复之处不再赘述。
84.参照图3所示,为本公开实施例提供的一种画面帧率确定装置的示意图,所述装置包括:
85.获取模块310,用于获取终端设备绘制的多帧画面中各帧画面的绘制耗时;
86.第一确定模块320,用于基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;
87.第二确定模块330,用于基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;
88.第三确定模块340,用于基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。
89.一种可选的实施方式中,所述获取模块310具体用于:
90.利用计时回调函数获取所述各帧画面的绘制信号响应时间、绘制计算时间以及内存绘制时间;
91.基于所述绘制信号响应时间、绘制计算时间以及内存绘制时间,确定所述各帧画面的绘制耗时。
92.一种可选的实施方式中,所述第一确定模块320具体用于:
93.针对所述各帧画面中的每一帧画面,确定该帧画面的绘制耗时与所述标准绘制时长之间的第一比值;
94.基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数。
95.一种可选的实施方式中,所述第一确定模块320在基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数时,用于:
96.在所述第一比值小于1的情况下,确定所述每一帧画面对应的丢帧数为0;
97.在所述第一比值大于或等于1的情况下,对所述第一比值进行向下取整处理,并将向下取整处理后得到的数值作为所述每一帧画面对应的丢帧数。
98.一种可选的实施方式中,所述第三确定模块340具体用于:
99.确定所述画面绘制成功率与所述标准绘制帧率的值的乘积;
100.基于确定的乘积确定所述多帧画面的实际绘制帧率。
101.一种可选的实施方式中,所述装置还包括第四确定模块,用于:
102.确定目标单位时间与所述标准绘制帧率之间的第二比值;
103.将所述第二比值作为所述标准绘制时长。
104.关于装置中的各模块的处理流程、以及各模块之间的交互流程的描述可以参照上述方法实施例中的相关说明,这里不再详述。
105.对应于图1中的画面帧数确定方法,本公开实施例还提供了一种电子设备400,如
图4所示,为本公开实施例提供的电子设备400结构示意图,包括:
106.处理器41、存储器42、和总线43;存储器42用于存储执行指令,包括内存421和外部存储器422;这里的内存421也称内存储器,用于暂时存放处理器41中的运算数据,以及与硬盘等外部存储器422交换的数据,处理器41通过内存421与外部存储器422进行数据交换,当所述电子设备400运行时,所述处理器41与所述存储器42之间通过总线43通信,使得所述处理器41执行以下指令:
107.获取终端设备绘制的多帧画面中各帧画面的绘制耗时;
108.基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数;
109.基于所述各帧画面的实际绘制帧数,以及所述各帧画面对应的丢帧数,确定所述终端设备的画面绘制成功率;
110.基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率。
111.一种可选的实施方式中,所述处理器41执行的指令中,所述获取终端设备绘制的多帧画面中各帧画面的绘制耗时,包括:
112.利用计时回调函数获取所述各帧画面的绘制信号响应时间、绘制计算时间以及内存绘制时间;
113.基于所述绘制信号响应时间、绘制计算时间以及内存绘制时间,确定所述各帧画面的绘制耗时。
114.一种可选的实施方式中,所述处理器41执行的指令中,所述基于所述各帧画面的绘制耗时,以及预设的标准绘制时长,确定所述各帧画面对应的丢帧数,包括:
115.针对所述各帧画面中的每一帧画面,确定该帧画面的绘制耗时与所述标准绘制时长之间的第一比值;
116.基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数。
117.一种可选的实施方式中,所述处理器41执行的指令中,所述基于所述每一帧画面分别对应的所述第一比值,确定所述每一帧画面对应的丢帧数,包括:
118.在所述第一比值小于1的情况下,确定所述每一帧画面对应的丢帧数为0;
119.在所述第一比值大于或等于1的情况下,对所述第一比值进行向下取整处理,并将向下取整处理后得到的数值作为所述每一帧画面对应的丢帧数。
120.一种可选的实施方式中,所述处理器41执行的指令中,所述基于所述终端设备的画面绘制成功率,以及预设的标准绘制帧率,确定所述多帧画面的实际绘制帧率,包括:
121.确定所述画面绘制成功率与所述标准绘制帧率的值的乘积;
122.基于确定的乘积确定所述多帧画面的实际绘制帧率。
123.一种可选的实施方式中,所述处理器41执行的指令中,还包括:
124.确定目标单位时间与所述标准绘制帧率之间的第二比值;
125.将所述第二比值作为所述标准绘制时长。
126.本公开实施例还提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述方法实施例中所述的画面帧率确定方
法的步骤。其中,该存储介质可以是易失性或非易失的计算机可读取存储介质。
127.本公开实施例还提供一种计算机程序产品,该计算机程序产品承载有程序代码,所述程序代码包括的指令可用于执行上述方法实施例中所述的画面帧率确定方法的步骤,具体可参见上述方法实施例,在此不再赘述。
128.其中,上述计算机程序产品可以具体通过硬件、软件或其结合的方式实现。在一个可选实施例中,所述计算机程序产品具体体现为计算机存储介质,在另一个可选实施例中,计算机程序产品具体体现为软件产品,例如软件开发包(software development kit,sdk)等等。
129.所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述装置的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本公开所提供的几个实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
130.所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
131.另外,在本公开各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
132.所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个处理器可执行的非易失的计算机可读取存储介质中。基于这样的理解,本公开的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本公开各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read

only memory,rom)、随机存取存储器(random access memory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。
133.最后应说明的是:以上所述实施例,仅为本公开的具体实施方式,用以说明本公开的技术方案,而非对其限制,本公开的保护范围并不局限于此,尽管参照前述实施例对本公开进行了详细的说明,本领域的普通技术人员应当理解:任何熟悉本技术领域的技术人员在本公开揭露的技术范围内,其依然可以对前述实施例所记载的技术方案进行修改或可轻易想到变化,或者对其中部分技术特征进行等同替换;而这些修改、变化或者替换,并不使相应技术方案的本质脱离本公开实施例技术方案的精神和范围,都应涵盖在本公开的保护范围之内。因此,本公开的保护范围应所述以权利要求的保护范围为准。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献