CN114764357B - 界面显示过程中的插帧方法及终端设备 - Google Patents
界面显示过程中的插帧方法及终端设备 Download PDFInfo
- Publication number
- CN114764357B CN114764357B CN202110044342.3A CN202110044342A CN114764357B CN 114764357 B CN114764357 B CN 114764357B CN 202110044342 A CN202110044342 A CN 202110044342A CN 114764357 B CN114764357 B CN 114764357B
- Authority
- CN
- China
- Prior art keywords
- interface
- sliding
- frame
- frames
- display
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 162
- 230000008569 process Effects 0.000 title claims abstract description 95
- 238000009877 rendering Methods 0.000 claims abstract description 66
- 238000003780 insertion Methods 0.000 claims description 82
- 230000037431 insertion Effects 0.000 claims description 82
- 238000005498 polishing Methods 0.000 claims description 49
- 238000012545 processing Methods 0.000 claims description 29
- 238000004590 computer program Methods 0.000 claims description 20
- 230000002194 synthesizing effect Effects 0.000 claims description 20
- 230000000694 effects Effects 0.000 abstract description 11
- 238000010586 diagram Methods 0.000 description 27
- 238000007667 floating Methods 0.000 description 26
- 230000006870 function Effects 0.000 description 20
- 238000004891 communication Methods 0.000 description 18
- 238000007726 management method Methods 0.000 description 15
- 230000004044 response Effects 0.000 description 13
- 238000010295 mobile communication Methods 0.000 description 12
- 230000008859 change Effects 0.000 description 11
- 230000000903 blocking effect Effects 0.000 description 10
- 238000004364 calculation method Methods 0.000 description 9
- 230000015572 biosynthetic process Effects 0.000 description 8
- 238000003786 synthesis reaction Methods 0.000 description 8
- 239000002131 composite material Substances 0.000 description 7
- 238000001514 detection method Methods 0.000 description 7
- 230000003139 buffering effect Effects 0.000 description 5
- 239000000203 mixture Substances 0.000 description 4
- 230000002159 abnormal effect Effects 0.000 description 3
- 230000004888 barrier function Effects 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 239000003999 initiator Substances 0.000 description 3
- 229920001621 AMOLED Polymers 0.000 description 2
- FGUUSXIOTUKUDN-IBGZPJMESA-N C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 Chemical compound C1(=CC=CC=C1)N1C2=C(NC([C@H](C1)NC=1OC(=NN=1)C1=CC=CC=C1)=O)C=CC=C2 FGUUSXIOTUKUDN-IBGZPJMESA-N 0.000 description 2
- 230000003416 augmentation Effects 0.000 description 2
- 230000003190 augmentative effect Effects 0.000 description 2
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000033001 locomotion Effects 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000007858 starting material Substances 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013528 artificial neural network Methods 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 239000013078 crystal Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000001739 rebound effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0487—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser
- G06F3/0488—Interaction techniques based on graphical user interfaces [GUI] using specific features provided by the input device, e.g. functions controlled by the rotation of a mouse with dual sensing arrangements, or of the nature of the input device, e.g. tap gestures based on pressure sensed by a digitiser using a touch-screen or digitiser, e.g. input of commands through traced gestures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3262—Power saving in digitizer or tablet
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/04842—Selection of displayed objects or displayed text elements
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0485—Scrolling or panning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/048—Interaction techniques based on graphical user interfaces [GUI]
- G06F3/0484—Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range
- G06F3/0486—Drag-and-drop
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Software Systems (AREA)
- Controls And Circuits For Display Device (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
本申请公开了界面显示过程中的插帧方法及终端设备,涉及电子技术领域,可以在高刷新率需求下,提高界面显示效果,降低终端设备的耗电速度,提升用户体验。本申请提供的方案中,终端设备通过在界面以动画效果开始向某一方向滑动显示的过程中,根据抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息等,确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧,以降低单位时间内用户界面(user interface,UI)线程和渲染线程的图层绘制和渲染负荷,从而在减少终端设备功耗的同时,避免界面显示过程中的抖动、卡顿和显示模糊,给用户带来好的用户体验。
Description
技术领域
本申请实施例涉及电子技术领域,尤其涉及界面显示过程中的插帧方法及终端设备。
背景技术
随着高刷新率时代的到来,对终端设备的性能要求越来越高。其中,终端设备的刷新率是指终端设备在一秒钟内能够显示的图像的帧数。终端设备要显示一帧图像,则先要完成该帧图像的绘制和渲染。
例如,若刷新率要求为60赫兹,则终端设备需要在16.6毫秒(ms)内完成对单帧的绘制和渲染;若刷新率要求为120Hz,则终端设备需要在8.3ms内完成对单帧的绘制和渲染;更进一步的,若刷新率要求为240Hz,则终端设备需要在4.3ms内完成对单帧的绘制和渲染。
随着越来越高的刷新率要求,终端设备在单位时间内处理的数据越来越多,相应的,终端设备的功耗也会越来越高。例如,当刷新率要求从60Hz升高到120Hz时,单位时间内终端设备需要处理的数据会成倍增加,相应的,终端设备的功耗也几乎成倍增长。高功耗则会带来终端设备耗电速度的加快。
发明内容
本申请提供界面显示过程中的插帧方法及终端设备,可以在高刷新率需求下,提高界面显示效果,降低终端设备的耗电速度,提升用户体验。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,提供一种界面显示过程中的插帧方法,应用于终端设备,该方法包括:在接收到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面,上述滑动界面是显示界面的第一区域上的视图;获取输入信息;该输入信息用于表征抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息;根据输入信息确定插帧策略;基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧;该一个或多个插入帧位于多个图像帧之间。
上述第一方面提供的技术方案,终端设备通过在界面以动画效果开始向某一方向滑动显示的过程中,根据抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息等,确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧,以降低单位时间内用户界面(user interface,UI)线程和渲染线程(render thread)的图层绘制和渲染负荷,从而在减少终端设备功耗的同时,避免界面显示过程中的抖动、卡顿和显示模糊,给用户带来好的用户体验。
在一种可能的实现方式中,上述输入信息包括:抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息。本申请提供的方案中,终端设备可以根据采集的上述抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息等输入信息确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧。
在一种可能的实现方式中,上述输入信息还包括:滑动界面上遮挡物的信息。本申请提供的方案中,若滑动界面上有遮挡物遮挡,则终端设备在确定一个或多个插入帧时,会考虑该遮挡物的信息,以避免遮挡物显示的异常。
在一种可能的实现方式中,上述遮挡物包括以下中的一个或多个:悬浮窗、悬浮框、悬浮控件或悬浮图标。本申请中,遮挡滑动界面的遮挡物可以包括但不限于悬浮窗、悬浮框、悬浮控件或悬浮图标等。
在一种可能的实现方式中,上述根据输入信息确定插帧策略,包括:根据输入信息确定最大可插帧数;根据最大可插帧数确定插帧策略。本申请提供的方案中,终端设备可以基于输入信息先确定在多个图像帧之间插入的插入帧的最大数量,从而根据该最大数量进一步确定插帧策略。
在一种可能的实现方式中,上述插帧策略包括固定插帧策略和可变插帧策略;其中,固定插帧策略是指在多个图像帧中的相邻两个图像帧之间插入固定数目的插入帧,可变插帧策略是指在多个图像帧中的相邻两个图像帧之间插入可变数目的插入帧。本申请中,终端设备可以基于多种插帧策略在多个图像帧之间插入插入帧,例如固定插帧策略或可变插帧策略。
在一种可能的实现方式中,上述根据输入信息确定最大可插帧数,包括:根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数;其中,最大滑动时间是根据滑动界面的滑动开始时间、滑动初速度和最大滑动距离确定的,最大滑动距离是显示界面的宽度或者高度。作为一种实现方式,终端设备可以根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数,包括:根据以下公式计算得到最大可插帧数:M=(max_t/y)-1;其中,y=1000/x,x是滑动帧率;max_t是最大滑动时间,max_t是根据公式Fun(t1,max_t,v)<max_distance确定的;t1是滑动开始时间,v是滑动初速度,max_distance是最大滑动距离。作为一种实现方式,终端设备可以基于上述公式,根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述多个图像帧包括滑动界面滑动显示过程中的首个图像帧和最后一个图像帧。作为一种实现方式,终端设备可以在获取的两个图像帧之间插入插入帧。
在一种可能的实现方式中,上述多个图像帧均包括多个显示区域。本申请提供的方案支持包括多显示区域的图像帧之间的插帧。
在一种可能的实现方式中,上述基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧,包括:基于多个图像帧的信息进行绘制和渲染;将多个图像帧的多个显示区域进行拼接合成,得到一个或多个插入帧。本申请提供的方案中,终端设备只需要将多个图像帧的多个区域进行拼接合成得到插入帧,而无需对插入帧进行绘制和渲染,因此可以降低绘制和渲染负荷,降低终端设备功耗。
在一种可能的实现方式中,上述多个图像帧均包括:显示界面上的系统状态栏视图和滑动界面视图;则一个或多个插入帧的对应位置均包括系统状态栏视图和滑动界面视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括系统状态栏视图和滑动界面视图。
在一种可能的实现方式中,上述多个图像帧均包括:所述显示界面上的一个或多个导航栏视图;则所述一个或多个插入帧的对应位置均包括一个或多个导航栏视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括导航栏视图。
在一种可能的实现方式中,上述多个图像帧均包括:一个或多个圆角视图;则一个或多个插入帧的对应位置均包括一个或多个圆角视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括圆角视图。
在一种可能的实现方式中,上述多个图像帧均包括:遮挡物视图;则一个或多个插入帧的对应位置均包括遮挡物视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括遮挡物视图。
在一种可能的实现方式中,上述多个图像帧均包括:终端设备的桌面第一区域的视图;则一个或多个插入帧的对应位置均包括桌面第一区域的视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括桌面上部分区域的视图。
第二方面,提供一种终端设备,该终端设备包括:检测单元,用于检测用户在显示界面上的抛滑操作;显示单元,用于在检测单元检测到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面,上述滑动界面是显示界面的第一区域上的视图;处理单元,用于获取输入信息;根据输入信息确定插帧策略;以及,基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧;其中,上述输入信息用于表征抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息;该一个或多个插入帧位于多个图像帧之间。
上述第二方面提供的技术方案,终端设备通过在界面以动画效果开始向某一方向滑动显示的过程中,根据抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息等,确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧,以降低单位时间内UI线程和渲染线程(render thread)的图层绘制和渲染负荷,从而在减少终端设备功耗的同时,避免界面显示过程中的抖动、卡顿和显示模糊,给用户带来好的用户体验。
在一种可能的实现方式中,上述输入信息包括:抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息。本申请提供的方案中,终端设备可以根据采集的上述抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息等输入信息确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧。
在一种可能的实现方式中,上述输入信息还包括:滑动界面上遮挡物的信息。本申请提供的方案中,若滑动界面上有遮挡物遮挡,则终端设备在确定一个或多个插入帧时,会考虑该遮挡物的信息,以避免遮挡物显示的异常。
在一种可能的实现方式中,上述遮挡物包括以下中的一个或多个:悬浮窗、悬浮框、悬浮控件或悬浮图标。本申请中,遮挡滑动界面的遮挡物可以包括但不限于悬浮窗、悬浮框、悬浮控件或悬浮图标等。
在一种可能的实现方式中,上述处理单元具体用于,根据输入信息确定最大可插帧数;根据最大可插帧数确定插帧策略。本申请提供的方案中,终端设备可以基于输入信息先确定在多个图像帧之间插入的插入帧的最大数量,从而根据该最大数量进一步确定插帧策略。
在一种可能的实现方式中,上述插帧策略包括固定插帧策略和可变插帧策略;其中,固定插帧策略是指在多个图像帧中的相邻两个图像帧之间插入固定数目的插入帧,可变插帧策略是指在多个图像帧中的相邻两个图像帧之间插入可变数目的插入帧。本申请中,终端设备可以基于多种插帧策略在多个图像帧之间插入插入帧,例如固定插帧策略或可变插帧策略。
在一种可能的实现方式中,上述处理单元具体用于,根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数;其中,最大滑动时间是根据滑动界面的滑动开始时间、滑动初速度和最大滑动距离确定的,最大滑动距离是显示界面的宽度或者高度。作为一种实现方式,终端设备可以根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述处理单元具体用于,根据以下公式计算得到最大可插帧数:M=(max_t/y)-1;其中,y=1000/x,x是滑动帧率;max_t是最大滑动时间,max_t是根据公式Fun(t1,max_t,v)<max_distance确定的;t1是滑动开始时间,v是滑动初速度,max_distance是最大滑动距离。作为一种实现方式,终端设备可以基于上述公式,根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述多个图像帧包括滑动界面滑动显示过程中的首个图像帧和最后一个图像帧。作为一种实现方式,终端设备可以在获取的两个图像帧之间插入插入帧。
在一种可能的实现方式中,上述多个图像帧均包括多个显示区域。本申请提供的方案支持包括多显示区域的图像帧之间的插帧。
在一种可能的实现方式中,上述处理单元具体用于,基于多个图像帧的信息进行绘制和渲染;将多个图像帧的多个显示区域进行拼接合成,得到一个或多个插入帧。本申请提供的方案中,终端设备只需要将多个图像帧的多个区域进行拼接合成得到插入帧,而无需对插入帧进行绘制和渲染,因此可以降低绘制和渲染负荷,降低终端设备功耗。
在一种可能的实现方式中,上述多个图像帧均包括:显示界面上的系统状态栏视图和滑动界面视图;则一个或多个插入帧的对应位置均包括系统状态栏视图和滑动界面视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括系统状态栏视图和滑动界面视图。
在一种可能的实现方式中,上述多个图像帧均包括:所述显示界面上的一个或多个导航栏视图;则所述一个或多个插入帧的对应位置均包括一个或多个导航栏视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括导航栏视图。
在一种可能的实现方式中,上述多个图像帧均包括:一个或多个圆角视图;则一个或多个插入帧的对应位置均包括一个或多个圆角视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括圆角视图。
在一种可能的实现方式中,上述多个图像帧均包括:遮挡物视图;则一个或多个插入帧的对应位置均包括遮挡物视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括遮挡物视图。
在一种可能的实现方式中,上述多个图像帧均包括:终端设备的桌面第一区域的视图;则一个或多个插入帧的对应位置均包括桌面第一区域的视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括桌面上部分区域的视图。
第三方面,提供一种终端设备,该终端设备包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,使得终端设备在检测到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面;获取输入信息;根据输入信息确定插帧策略;以及,基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧;其中,上述滑动界面是显示界面的第一区域上的视图,上述输入信息用于表征抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息;该一个或多个插入帧位于多个图像帧之间。
上述第三方面提供的技术方案,终端设备通过在界面以动画效果开始向某一方向滑动显示的过程中,根据抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息等,确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧,以降低单位时间内UI线程和渲染线程(render thread)的图层绘制和渲染负荷,从而在减少终端设备功耗的同时,避免界面显示过程中的抖动、卡顿和显示模糊,给用户带来好的用户体验。
在一种可能的实现方式中,上述输入信息包括:抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息。本申请提供的方案中,终端设备可以根据采集的上述抛滑方向、滑动界面的滑动开始时间、滑动初速度、滑动帧率,滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息等输入信息确定具体的插帧策略,以便根据确定的插帧策略在该多个帧之间插入一个或多个合成帧。
在一种可能的实现方式中,上述输入信息还包括:滑动界面上遮挡物的信息。本申请提供的方案中,若滑动界面上有遮挡物遮挡,则终端设备在确定一个或多个插入帧时,会考虑该遮挡物的信息,以避免遮挡物显示的异常。
在一种可能的实现方式中,上述遮挡物包括以下中的一个或多个:悬浮窗、悬浮框、悬浮控件或悬浮图标。本申请中,遮挡滑动界面的遮挡物可以包括但不限于悬浮窗、悬浮框、悬浮控件或悬浮图标等。
在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得终端设备根据输入信息确定最大可插帧数;根据最大可插帧数确定插帧策略。本申请提供的方案中,终端设备可以基于输入信息先确定在多个图像帧之间插入的插入帧的最大数量,从而根据该最大数量进一步确定插帧策略。
在一种可能的实现方式中,上述插帧策略包括固定插帧策略和可变插帧策略;其中,固定插帧策略是指在多个图像帧中的相邻两个图像帧之间插入固定数目的插入帧,可变插帧策略是指在多个图像帧中的相邻两个图像帧之间插入可变数目的插入帧。本申请中,终端设备可以基于多种插帧策略在多个图像帧之间插入插入帧,例如固定插帧策略或可变插帧策略。
在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得终端设备根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数;其中,最大滑动时间是根据滑动界面的滑动开始时间、滑动初速度和最大滑动距离确定的,最大滑动距离是显示界面的宽度或者高度。作为一种实现方式,终端设备可以根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得终端设备根据以下公式计算得到最大可插帧数:M=(max_t/y)-1;其中,y=1000/x,x是滑动帧率;max_t是最大滑动时间,max_t是根据公式Fun(t1,max_t,v)<max_distance确定的;t1是滑动开始时间,v是滑动初速度,max_distance是最大滑动距离。作为一种实现方式,终端设备可以基于上述公式,根据滑动界面的滑动帧率和最大滑动时间确定最大可插帧数。
在一种可能的实现方式中,上述多个图像帧包括滑动界面滑动显示过程中的首个图像帧和最后一个图像帧。作为一种实现方式,终端设备可以在获取的两个图像帧之间插入插入帧。
在一种可能的实现方式中,上述多个图像帧均包括多个显示区域。本申请提供的方案支持包括多显示区域的图像帧之间的插帧。
在一种可能的实现方式中,上述处理器具体用于,执行所述计算机程序,使得终端设备基于多个图像帧的信息进行绘制和渲染;将多个图像帧的多个显示区域进行拼接合成,得到一个或多个插入帧。本申请提供的方案中,终端设备只需要将多个图像帧的多个区域进行拼接合成得到插入帧,而无需对插入帧进行绘制和渲染,因此可以降低绘制和渲染负荷,降低终端设备功耗。
在一种可能的实现方式中,上述多个图像帧均包括:显示界面上的系统状态栏视图和滑动界面视图;则一个或多个插入帧的对应位置均包括系统状态栏视图和滑动界面视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括系统状态栏视图和滑动界面视图。
在一种可能的实现方式中,上述多个图像帧均包括:所述显示界面上的一个或多个导航栏视图;则所述一个或多个插入帧的对应位置均包括一个或多个导航栏视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括导航栏视图。
在一种可能的实现方式中,上述多个图像帧均包括:一个或多个圆角视图;则一个或多个插入帧的对应位置均包括一个或多个圆角视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括圆角视图。
在一种可能的实现方式中,上述多个图像帧均包括:遮挡物视图;则一个或多个插入帧的对应位置均包括遮挡物视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括遮挡物视图。
在一种可能的实现方式中,上述多个图像帧均包括:终端设备的桌面第一区域的视图;则一个或多个插入帧的对应位置均包括桌面第一区域的视图。本申请提供的方案支持包括多显示区域的图像帧之间的插帧,例如图像帧可以包括桌面上部分区域的视图。
第三方面,提供一种终端设备,该终端设备包括:存储器,用于存储计算机程序;处理器,用于执行所述计算机程序,使得终端设备在检测到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面;获取输入信息;根据输入信息确定插帧策略;以及,基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧;其中,上述滑动界面是显示界面的第一区域上的视图,上述输入信息用于表征抛滑方向、显示界面的界面信息、滑动显示信息和滑动界面对应的多个图像帧的信息;该一个或多个插入帧位于多个图像帧之间。
第四方面,提供一种计算机可读存储介质,该计算机可读存储介质上存储有计算机程序代码,该计算机程序代码被处理器执行时实现如第一方面任一种可能的实现方式中的方法。
第五方面,提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有计算机程序代码;所述计算机程序代码被所述处理器执行时,实现如第一方面任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
第六方面,提供一种计算机程序产品,当其在计算机上运行时,使得实现如第一方面任一种可能的实现方式中的方法。
附图说明
图1为本申请实施例提供的一种终端设备响应于用户在界面上的抛滑操作进行界面显示的过程示例图;
图2为本申请实施例提供的一种终端设备的硬件结构示意图;
图3A为本申请实施例提供的一种界面显示处理过程示例图;
图3B为本申请实施例提供的一种应用界面结构示例图;
图3C为本申请实施例提供的一种绘制、渲染和合成具体过程示例图;
图3D为本申请实施例提供的一种渲染和缓存过程示例图;
图4为本申请实施例提供的一种界面显示过程中的插帧方法流程图;
图5A为本申请实施例提供的一种界面示例图;
图5B为本申请实施例提供的另一种界面示例图;
图6为本申请实施例提供的一种终端设备收集界面被用户抛滑时的输入信息的流程图;
图7为本申请实施例提供的一种终端设备收集最后一个图像帧的配置信息的流程图;
图8为本申请实施例提供的Fn帧与F1帧的显示区域一致与不一致的示例图;
图9为本申请实施例提供的一种固定插帧策略示意图;
图10为本申请实施例提供的一种可变插帧策略示意图;
图11为本申请实施例提供的三种图像帧的拆分示例图;
图12为本申请实施例提供的一种图像帧的拆分示例图;
图13为本申请实施例提供的另外三种图像帧的拆分示例图;
图14为本申请实施例提供的一种图像帧的合成进程示例图;
图15为本申请实施例提供的一种显示过程中的插帧示例图;
图16为本申请实施例提供的一种插入帧的拼接方法示意图;
图17为本申请实施例提供的一种滑动过程划分示例图;
图18为本申请实施例提供的两种界面显示过程中的SysTrace对比图;
图19为本申请实施例提供的一种终端设备的结构框图;
图20为本申请实施例提供的一种终端设备的示意性结构图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供界面显示过程中的插帧方法,该方法可以应用于终端设备响应于用户在界面上的抛滑操作(fling),进行界面显示的过程中。
其中,用户在界面上的抛滑操作通常是指用户在终端设备界面上手指贴屏幕快速滑动的操作,并且,对于抛滑操作,在用户手离开屏幕后,屏幕仍然随“惯性”向手指滑动方向滑动,显示动画界面,直到动画界面停止。
请参考图1,图1示出了本申请实施例提供的一种终端设备响应于用户在界面上的抛滑操作进行界面显示的过程示例图。如图1中的(a)所示,智能手机在显示设置界面时,检测到用户在该设置界面上由下向上的抛滑操作。响应于该抛滑操作,在用户进行抛滑操作的过程中,以及用户手指离开智能手机屏幕之后,智能手机随“惯性”向手指滑动方向滑动,显示设置界面滑动的动画界面,最终该动画界面停止。例如,该动画界面包括图1中的(a)→图1中的(b)→图1中的(c)所示的过程。其中,图1中的(a)所示界面为动画开始界面,图1中的(c)所示界面为动画停止界面。本申请实施例提供的界面显示过程中的插帧方法则可以发生在如图1中的(a)→图1中的(b)→图1中的(c)所示的过程中。
需要说明的是,本申请实施例提供的界面显示过程中的插帧方法可以应用于界面以动画效果,进行界面显示的过程中。例如应用于可滑动界面,如该可滑动界面可以是图1所示的设置界面。该可滑动界面还可以是任何其他应用的界面,包括在终端设备出厂前,安装操作系统时安装在终端设备中的应用(如图库、短消息、通信录、音乐、视频等应用)的界面,或者用户通过应用商店下载安装在终端设备中的应用(如地图、电子邮件、今日头条微信/>等应用)的界面等,本申请不限定。
其中,本申请实施例中的终端设备可以是图1所示的智能手机,也可以是其他支持触屏操作的电子设备。例如,该终端设备还可以是上网本、平板电脑、智能相机、掌上电脑、智能手表、个人数字助理(personal digital assistant,PDA)、便携式多媒体播放器(portable multimedia player,PMP)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备等。或者,终端设备还可以是其它类型或结构的支持触屏操作的电子设备,本申请不限定。
请参考图2,图2以智能手机为例,示出了本申请实施例提供的一种终端设备的硬件结构示意图。如图2所示,终端设备可以包括处理器210,存储器(包括外部存储器接口220和内部存储器221),通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,传感器模块280,按键290,马达291,指示器292,摄像头293,显示屏294,以及用户标识模块(subscriberidentification module,SIM)卡接口295等。其中传感器模块280可以包括触摸传感器280A和指纹传感器280B。进一步的,在一些实施例中,传感器模块280还可以包括陀螺仪传感器,加速度传感器,磁传感器,压力传感器,气压传感器,距离传感器,接近光传感器,温度传感器,环境光传感器或骨传导传感器等中的一个或多个。
可以理解的是,本发明实施例示意的结构并不构成对终端设备的具体限定。在本申请另一些实施例中,终端设备可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元。例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是终端设备的神经中枢和指挥中心。控制器可以根据指令完成取指令,产生操作控制信号,进而执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器210可以是一个通用中央处理器(central processingunit,CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本申请方案程序执行的集成电路,处理器210可以包括一个或多个CPU;举例来说,处理器210可以是华为的麒麟960芯片。
在本申请一些实施例中,CPU可以用于进行图像帧的绘制。
在本申请另一些实施例中,GPU可以用于进行图像帧的绘制。
在本申请一些实施例中,进一步的,GPU还可以用于在完成图像帧的绘制之后,进行图像帧的渲染。
在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
充电管理模块240用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块240可以通过USB接口230接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块240可以通过终端设备的无线充电线圈接收无线充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为终端设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,显示屏294,摄像头293,和无线通信模块260等供电。电源管理模块241还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
终端设备的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端设备中的每个天线可用于覆盖单个或多个通信频段。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块250可以提供应用在终端设备上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块250的至少部分功能模块可以被设置于处理器210中。在一些实施例中,移动通信模块250的至少部分功能模块可以与处理器210的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A、受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器210,与移动通信模块250或其它功能模块设置在同一个器件中。
无线通信模块260可以提供应用在终端设备上的包括无线局域网(wirelesslocal area networks,WLAN)(如WiFi网络),蓝牙BT,全球导航卫星系统(globalnavigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端设备的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得终端设备可以通过无线通信技术与网络以及其它设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端设备通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏294用于显示图像,视频等。显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备可以包括1个或N个显示屏294,N为大于1的正整数。
在本申请实施例中,GPU可以用于渲染应用界面,对应的,显示屏194可以用于显示GPU渲染的应用界面。在本申请一些实施例中,GPU可以用于在CPU完成图像帧的绘制之后,进行图像帧的渲染。在本申请一些实施例中,进一步的,经过GPU渲染的图像帧可以送显至显示屏294进行显示。
终端设备可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。处理器210通过运行存储在内部存储器221的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备的各种功能应用以及数据处理。
触摸传感器280A可以称为“触控面板”。触摸传感器280A可以设置于显示屏294,由触摸传感器280A与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280A用于检测作用于其上或附近的触摸操作。触摸传感器280A可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。终端设备可以通过显示屏294提供与触摸操作相关的视觉输出等。在另一些实施例中,触摸传感器280A也可以设置于终端设备的表面,与显示屏294所处的位置不同。在本申请实施例中,终端设备的触摸传感器280A可以用于检测用户在终端设备显示屏上的滑动操作,如抛滑操作等。
指纹传感器280B用于采集指纹。终端设备可以利用采集的指纹特性实现指纹解锁、访问应用锁、指纹拍照、指纹接听来电等。
终端设备可以通过音频模块270,扬声器270A,受话器270B,麦克风270C以及应用处理器等实现音频功能。例如音乐播放,录音等。关于音频模块270,扬声器270A,受话器270B和麦克风270C的具体工作原理和作用,可以参考常规技术中的介绍。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。终端设备可以接收按键输入,产生与终端设备的用户设置以及功能控制有关的键信号输入。
应理解,图2所示终端设备包括的硬件模块只是示例性地描述,并不对终端设备的具体结构做出限定。例如,终端设备还可以包括比图2中所示出的更多的或者更少的部件,可以组合两个或更多的部件,或者可以具有不同的部件配置。图2中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
以下将结合附图,对本申请实施例提供的界面显示过程中的插帧方法做具体介绍。
以安卓(Android)操作系统的界面显示流程为例,如图3A所示,界面的显示通常要经过绘制、渲染、缓存、合成和送显流程。
其中,绘制主要用于对要显示的图层进行绘制。绘制的本质是像素的填充。以在Android操作系统开机后第一个启动,用来展示应用列表和快捷方式、小部件等的应用Launcher应用为例,如图3B所示,假设Launcher应用界面包括四个图层:状态栏、导航栏、壁纸和启动器图标层,绘制则主要进行上述状态栏、导航栏、壁纸和启动器图标层的绘制,例如上述状态栏、导航栏、壁纸和启动器图标层的绘制可以由用户界面(user interface,UI)线程完成。又如,状态栏和导航栏可以由Android的系统用户界面线程(system userinterface thread,systemUI)绘制,壁纸可以由壁纸服务提供,启动器图标层可以由Launcher应用绘制。其中,图3C是以UI线程负责上述绘制作为示例。
示例性的,在一些实施例中,如图3C所示,绘制具体可以包括以下过程:
输入:用于将输入事件传递给对应的对象进行处理。
动画:用于计算每一帧的动画的运动位置。
测量:用于根据xml布局文件和代码中对控件属性的设置,获取以及保存每个View和ViewGrop的尺寸。
布局:用于根据测量获取的信息,确定控件的显示位置。
绘制:用于在确定控件的显示位置后,在画布(canvas)上绘制应用程序窗口中的所有图层,构造绘制指令。
渲染主要用于对绘制后的图层进行例如亮度、对比度、饱和度等的调整,同时不改变原图层的状态。示例性的,如图3D所示,渲染具体可以包括:GPU从CPU接收CPU绘制得到的绘制指令,GPU将图层进行光栅化处理,GPU将光栅化操作之后的图像缓存到缓存中。其中,光栅化是将一个图元转变为一个二维图像的过程,二维图像上每个点都包含了颜色、深度和纹理等数据。进一步的,在一些实施例中,CPU在绘制得到绘制指令后,还可以将该绘制指令发送至图形图像处理库(如嵌入式系统OpenGL(OpenGL for Embedded Systems,OpenGLES))。GPU可以通过驱动接口从图形图像处理库获取该绘制指令,然后进一步进行光栅化处理。如图3C所示,渲染具体可以包括以下过程:同步,用于从CPU同步绘制后的绘制指令。渲染,用于对绘制后的图层进行例如亮度、对比度、饱和度等的调整。存入取缓存区,用于将渲染的执行结果存入缓存区。
缓存主要用于对渲染后的图层进行存储,以便在硬件或软件需要读取数据(如渲染后的图层数据)时,首先从缓存中获取需要的数据(如渲染的执行结果),以帮助硬件或软件更快地运行。在本申请实施例中,缓存可以缓解线程忙时,没有送显数据,终端用户感受到卡顿的问题。
合成主要用于将多个渲染后的图层,例如将从缓存中获取的渲染后的图层数据按照恰当的重叠顺序等进行叠加合并,得到完整的图像帧。如图3B所示,通过将绘制好的状态栏、导航栏、壁纸和启动器图标层按照恰当的重叠顺序等进行叠加合并,得到完整的图像帧。如图3C所示,合成具体可以包括以下过程:获取执行结果,用于获取存储在缓存区的渲染的执行结果。合成,用于将多个渲染后的图层按照恰当的重叠顺序等进行叠加合并,得到完整的图像帧。
送显主要用于将合成后的图层按照规定的显示区域送往显示屏显示。
关于绘制、渲染、缓存、合成和送显的具体过程和介绍,可以参考常规技术中的解释和说明,本申请不做赘述。
示例性的,在本申请实施例中,上述绘制、渲染、缓存、合成和送显可以由垂直同步(vertical synchronization,VSYNC)信号触发。如图3A所示,伴随着接收到VSYNC信号(如图3A所示VSYNC1、VSYNC2、VSYNC3、VSYNC4和VSYNC5),终端设备不断地进行图层的绘制、渲染、缓存、合成和送显。其中,VSYNC信号是Android操作系统发出的(如隔16ms发出的)用于触发绘制、渲染、缓存、合成和送显的信号。
通常,Android操作系统中有2种VSYNC信号:硬件VSYNC信号和软件VSYNC信号。其中,硬件VSYNC信号由终端设备显示屏产生,硬件VSYNC信号通常是一个脉冲信号,起到开关或触发某种操作的作用。软件VSYNC信号由合成线程(SurfaceFlinger)将硬件VSYNC信号转换得到。其中,合成线程(SurfaceFlinger)是Android操作系统中用于负责图形显示数据合成的模块。在图3A所示显示流程示例中,VSYNC信号即为软件VSYNC信号,该VSYNC信号经由Binder传递给Choreographer,用于触发绘制、渲染、合成、送显的信号。关于VSYNC信号的具体介绍,可以参考常规技术中的解释和说明。
通常,在界面的显示过程中,图层的绘制和渲染需要耗费的资源(包括硬件资源和软件资源)和算力最大。例如,图层的绘制通常由CPU完成,图层的渲染通常由GPU完成。又如,图层的绘制和渲染也可以均由GPU完成,本申请不限定。
随着越来越高的刷新率要求,单位时间内要处理的数据越来越多,处理每一帧图像花费的时间越来越短。如以下表1所示,基于对Android操作系统越来越高的刷新率要求,两个VSYNC信号之间要处理的数据越来越多,处理每一帧图像花费的时间越来越短。
表1
刷新率 | 单帧耗时 | 平均单帧耗时 |
60Hz | 16.6ms | 11ms |
90Hz | 11.11ms | 9.3ms |
120Hz | 8.3ms | 7.5ms |
240Hz | 4.15ms | 预计5-6ms |
如表1所示,对于60Hz的刷新率要求,处理每一帧图像花费的时间约为16.6ms;而对于240Hz的刷新率要求,处理每一帧图像花费的时间大概仅为4.15ms。但是,基于现有的终端设备硬件和软件处理能力,CPU和GPU很难达到上述单帧耗时要求的图像绘制和渲染速度。例如,对于240Hz的刷新率要求,基于现有的终端设备硬件和软件处理能力,很难在4.15ms时间内完成单帧的绘制和渲染。而单帧的图像绘制和渲染超时,会造成界面显示的抖动、卡顿或拖尾等。另外,越来越高的刷新率要求会导致单位时间内终端设备的CPU和GPU需要处理的数据会成倍增加。CPU和GPU的负荷过高,相应的,终端设备的功耗也几乎成倍增长。上述界面显示的抖动、卡顿和显示模糊,以及终端设备的高功耗则会带来很差的用户体验。
为解决上述问题,本申请提供一种界面显示过程中的插帧方法,该方法通过在界面以动画效果向某一方向滑动显示的过程中,根据滑动显示的方向、距离、变化区域、帧率信息以及多个帧的内容,在该多个帧之间插入一个或多个合成帧,以降低单位时间内用户界面(user interface,UI)线程和渲染线程(render thread)的图层绘制和渲染负荷,从而在减少终端设备功耗的同时,避免界面显示过程中的抖动、卡顿和显示模糊,给用户带来好的用户体验。
需要说明的是,本申请实施例提供的界面显示过程中的插帧方法中,可选的,终端设备还可以先确定界面显示过程中,单位时间内显示的帧数。例如,每秒时间内显示的帧数(frames per second,FPS)。
其中,终端设备确定的上述界面显示过程中,单位时间内显示的帧数可以用于确定滑动帧率,以便根据滑动帧率进一步确定在上述多个帧之间插入的合成帧的数量。
可选的,上述滑动帧率可以是终端设备当前支持的最大FPS。
可选的,上述滑动帧率可以是扩展显示第一设备上启动的被抛滑界面的第二设备当前支持的最大FPS。
具体的,终端设备在接收到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面。其中,滑动界面是显示界面的第一区域上的视图。本申请实施例提供的界面显示过程中的插帧方法可以包括以下四个阶段:输入信息收集阶段(阶段1),插帧策略选择阶段(阶段2),原生帧生成阶段(阶段)和插帧合成阶段(阶段4)。
以下将结合附图,对上述阶段1、阶段2、阶段3和阶段4作具体介绍:
阶段1(输入信息收集阶段):
如图4所示,输入信息收集阶段包括步骤S401:
S401、终端设备在滑动界面被用户抛滑过程中的,收集包括抛滑方向、滑动界面的滑动开始时间t1、滑动界面的滑动初速度v、滑动界面的滑动帧率x、滑动界面的界面尺寸、终端设备的屏幕显示区域尺寸和多个图像帧的信息等输入信息。
在一些实施例中,若滑动界面上有遮挡物,终端设备还用于在滑动界面被用户抛滑过程中的,收集滑动界面上遮挡物的信息。其中,抛滑方向可以包括由上向下抛滑、由下向上抛滑、由左向右抛滑和由右向左抛滑。例如,图1中的(a)→图1中的(b)→图1中的(c)示出了将设置界面由下向上抛滑的过程。
滑动开始时间t1即响应于接收到抛滑操作,终端设备上滑动界面开始滑动显示的时刻。
滑动初速度v即响应于接收到抛滑操作,终端设备上滑动界面开始滑动显示时,界面滑动的初速度。
滑动帧率x即响应于接收到抛滑操作,终端设备在单位时间内显示的帧数,例如FPS。例如,滑动帧率x可以是60Hz,90Hz或者120Hz等。
可选的,滑动帧率x可以由终端设备根据终端设备的配置、性能、功耗模式、电量等确定终端设备当前支持的最大FPS。例如,终端设备的配置可以包括但不限于终端设备显示装置的硬件配置和软件配置。终端设备的性能用于指示终端设备的CPU和/或GPU的处理能力或算力等。终端设备的功耗模式可以包括但不限于终端设备的电池模式(如性能模式、省电模式或超级省电模式)。电量是指终端设备的剩余电量。
可选的,对于例如多屏协同的场景,例如终端设备(如第一设备)将第一设备上启动的一个或多个界面扩展至第二设备显示的场景中,假设接收到用户抛滑操作的界面在第一设备和第二设备上同步显示,则滑动帧率x可以是第一设备当前支持的最大FPS,或者第一设备当前支持的最大FPS和第二设备当前支持的最大FPS中的最大值。
可选的,对于例如多屏协同的场景,例如终端设备(如第一设备)将第一设备上启动的一个或多个界面扩展至第二设备显示的场景中,假设接收到用户抛滑操作的界面仅在第二设备上显示,不在第一设备上显示,则滑动帧率x是第二设备当前支持的最大FPS。
可选的,对于例如多屏协同的场景,例如终端设备(如第一设备)将第一设备上启动的一个或多个界面扩展至多个第二设备显示的场景中,假设接收到用户抛滑操作的界面在第一设备和多个第二设备上同步显示,则滑动帧率x可以是第一设备当前支持的最大FPS,或者第一设备当前支持的最大FPS和多个第二设备当前支持的最大FPS中的最大值。
可选的,对于例如多屏协同的场景,例如接收到用户抛滑操作的界面仅在多个第二设备上显示,则滑动帧率x可以是上述多个第二设备当前支持的最大FPS中的最大值。
其中,上述第二设备当前支持的最大FPS可以由第二设备的配置、性能、功耗模式、电量等决定。
界面尺寸是指滑动界面视图(以下简称界面View)显示区域尺寸,例如界面View显示区域的宽度W和高度H。其中,界面View是指响应于用户的抛滑操作,滑动显示的界面区域View。以图5A所示视频界面为例,界面View即图5A所示ViewA,界面View显示区域即图5A所示ViewA对应的区域。其中,ViewA对应的区域(即界面View显示区域)的尺寸即宽度为W,高度为H。在图5A所示示例中,响应于接收到用户在视频界面(即图5A所示ViewA)上的抛滑操作,视频界面(即图5A所示ViewA)上的内容会发生变化。例如,视频界面(即图5A所示ViewA)会显示滑动的动画界面,直到动画界面停止。
界面是否有遮挡是指界面View所在Layer内(即滑动界面对应的Layer内)是否有悬浮窗、悬浮框、悬浮控件或悬浮图标等不会随着界面变化的显示区域。以图5A所示视频界面为例,“登录/注册”控件与视频界面在同一个Layer内,并且悬浮显示在视频界面View的上方。在响应于接收到用户在视频界面(即图5A所示ViewA)上的抛滑操作,视频界面(即图5A所示ViewA)发生滑动显示的过程中,“登录/注册”控件的位置不会发生变化,始终遮挡着部分视频界面View,“登录/注册”控件即为遮挡物。对于这种情况,则认为视频界面有遮挡(即界面View所在Layer内有遮挡)。
又如,请参考图5B,图5B示出了一种包括悬浮窗遮挡物的界面示例。如图5B所示,视频界面所在的Layer上,始终悬浮显示有游戏应用的悬浮小窗Layer。在响应于接收到用户在视频界面(即图5B所示ViewA)上的抛滑操作,视频界面(即图5B所示ViewA)发生滑动显示的过程中,悬浮小窗的位置不会发生变化,始终遮挡着部分视频界面View,悬浮小窗即为遮挡物。对于这种情况,则认为视频界面有遮挡。
屏幕显示区域尺寸是指终端设备屏幕显示区域尺寸。以图5A所示视频界面为例,屏幕显示区域即图5A所示区域B。其中,区域B(即终端设备屏幕显示区域尺寸)的尺寸即宽度为W,高度为H'。
多个图像帧的信息是指响应于接收到用户的抛滑操作,终端设备上滑动界面滑动显示的过程中的多个图像帧的配置信息。其中,配置信息可以包括但不限于应用开发属性/应用数据配置,应用界面的边界信息,应用的转向,应用界面上的图标,应用界面上的文字,图标的位置、大小和颜色,文字的显示位置、大小和颜色等。
示例性的,多个图像帧信息可以包括响应于接收到用户的抛滑操作,终端设备上滑动界面滑动显示的过程中的首个图像帧和最后一个图像帧。以图1所示设置界面的变化过程为例,多个图像帧信息可以包括图1中的(a)所示的首个设置界面图像帧和图1中的(c)所示的最后一个设置界面图像帧。
需要说明的是,对于例如多屏协同的场景,例如终端设备(如第一设备)将第一设备上启动的一个或多个界面扩展至一个或多个第二设备显示的场景中,若被抛滑界面不在第一设备上显示,则终端设备(如第一设备)可以通过获取来自第二设备接收到的抛滑操作的坐标信息判断被扩展界面是否接收到用户的抛滑操作。以及在确定被扩展界面接收到用户的抛滑操作时,收集上述输入信息以及进行后续的插帧。
作为一种可能的实现方式,终端设备可以基于以下指标收集滑动界面被用户抛滑过程中,包括抛滑方向、滑动开始时间、滑动初速度、滑动帧率、首个图像帧F1帧的配置信息的输入信息:是否接收到用户的抛滑操作,滑动界面是否开始变化,以及滑动界面是否有遮挡。
以下以被抛滑的滑动界面在终端设备上显示为例,介绍一种终端设备收集界面被用户抛滑时的输入信息的流程图。
如图6所示,终端设备首先判断是否接收到用户的抛滑操作。
示例性的,终端设备可以通过触摸传感器(如图2所示触摸传感器280A)检测作用于其上或附近的触摸操作,在触摸传感器检测到作用于显示界面可滑动区域上的触摸操作时,触摸传感器可以将检测到的触摸操作传递给终端设备的应用处理器,以便应用处理器确定触摸事件类型,例如,抛滑操作。
或者,以Android操作系统为例,终端设备可以通过判断OverScroller控件是否开始工作,以判断是否接收到用户的抛滑操作。其中,OverScroller控件是Android操作系统中,用于计算每次绘制滑动运动距离及回弹效果的控件。若OverScroller控件开始工作,则可以认为终端设备接收到用户的抛滑操作。
进一步的,在终端设备确定接收到用户的抛滑操作之后,终端设备判断可滑动界面(即显示界面的第一区域上的视图)是否开始滑动显示。以Android操作系统为例,终端设备可以通过判断ListView控件或RecyclerView控件是否开始工作,以判断可滑动界面是否开始滑动显示。其中,ListView控件和RecyclerView控件是Android操作系统中,用于实现界面滑动效果的控件。
进一步的,在终端设备确定可滑动界面开始滑动显示之后,可滑动界面即下述滑动界面,终端设备判断滑动界面是否有遮挡。示例性的,终端设备可以通过判断滑动界面变化过程中,界面View所在Layer内是否有位置始终不变的控件、图标或窗口等,以判断滑动界面是否有遮挡。例如,若在滑动界面滑动显示过程中,界面View所在Layer内存在位置始终不变的窗口(即悬浮窗)、显示框(即悬浮框)、控件(即悬浮控件)或图标(即悬浮图标)窗口等,则终端设备确定滑动界面有遮挡。
进一步的,在终端设备确定滑动界面无遮挡之后,终端设备收集以下输入信息:抛滑方向、滑动开始时间、滑动初速度、滑动帧率和首个图像帧F1帧的配置信息。
或者,在终端设备确定滑动界面有遮挡之后,终端设备收集以下输入信息:抛滑方向、滑动开始时间、滑动初速度、滑动帧率、首个图像帧F1帧的配置信息以及F1帧中遮挡物的信息。其中,遮挡物的信息可以包括但不限于遮挡物的坐标信息。以图5A所示视频界面为例,遮挡物的位置信息可以包括“登录/注册”控件的坐标信息。以图5B所示界面为例,遮挡物的位置信息可以包括游戏应用悬浮小窗的坐标信息。
作为一种可能的实现方式,终端设备可以基于以下指标收集滑动界面被用户抛滑过程中的最后一个图像帧Fn帧的配置信息:是否接收到用户的抛滑操作,滑动界面是否有遮挡以及Fn帧与F1帧的显示区域是否一致。
请参考图7,图7以被抛滑的滑动界面在终端设备上显示为例,示出了本申请实施例提供的一种终端设备收集最后一个图像帧的配置信息的流程图。如图7所示,终端设备首先判断是否接收到用户的抛滑操作。进一步的,在终端设备确定接收到用户的抛滑操作之后,终端设备判断滑动界面是否有遮挡。关于终端设备判断是否接收到用户的抛滑操作的具体方法,以及终端设备判断界面是否有遮挡的具体方法,可以参考上文中对图6中相关过程的解释和说明,这里不做赘述。
进一步的,在终端设备确定滑动界面无遮挡之后,终端设备判断Fn帧与F1帧的显示区域是否一致。其中,在本申请实施例中,Fn帧与F1帧的显示区域一致是指Fn帧与F1帧的显示区域的位置信息相同,即坐标、宽度以及高度均相同。
可以理解,在一些显示界面上,随着滑动界面的滑动显示,会出现可视区域的变化。由于在本申请实施例中,插帧是基于相同显示区域的F1帧和Fn帧的界面内容计算得到的,因此对于出现可视区域变化这种情况,则无法进行F1帧和Fn帧之间的插帧。
示例性的,假设设置界面的F1帧是图8中的(a)所示的状态,Fn帧是图8中的(b)所示的状态,当设置界面从图8中的(a)所示的状态变化到图8中的(b)所示的状态时,Fn帧与F1帧的显示区域不一致。对于这种情况,图8中的(a)所示的图像帧与图8中的(b)所示的图像帧之间不能插帧。
但是,假设设置界面的F1帧是图8中的(b)所示的状态,Fn帧是图8中的(c)所示的状态,则设置界面从图8中的(b)所示的状态变化到图8中的(c)所示的状态时,Fn帧与F1帧的显示区域一致。对于这种情况,图8中的(b)所示的图像帧与图8中的(c)所示的图像帧之间可以插帧。
阶段2(插帧策略选择阶段)
如图4所示,插帧策略选择阶段包括步骤S402:
S402、终端设备根据收集的输入信息计算最大可插帧数,以及根据最大可插帧数确定插帧策略。
作为一种可能的实现方式,终端设备可以采用以下计算公式以计算得到最大可插帧数M:
M=(max_t/y)-1; (公式一)。
其中,y是单帧耗时,y=1000/x,x是终端设备在阶段1收集的滑动帧率。max_t是界面的最大滑动时间,max_t可以根据以下公式二计算得到:
Fun(t1,max_t,v)<max_distance; (公式二)。
其中,t1是终端设备在阶段1收集的滑动开始时间,v是终端设备在阶段1收集的滑动初速度,max_distance是滑动界面的最大滑动距离。以图5A所示视频界面为例,若抛滑方向是由上向下或者由下向上,则界面的最大滑动距离为H;若抛滑方向是由左向右或者由右向左,则滑动界面的最大滑动距离为W。关于公式二的具体计算过程可以参考下文中对公式五的计算过程的介绍。
示例性的,在本申请实施例中,插帧策略可以包括固定插帧策略和可变插帧策略。
其中,固定插帧策略是指在多个图像帧中的相邻两个图像帧之间(如F1帧和Fn帧之间)插入固定数目m的合成帧(即插入帧)。其中,m为正整数,且m小于或者等于最大可插帧数M。
请参考图9,图9以m=1为例,示出了本申请实施例提供的一种固定插帧策略示意图。如图9所示,对于在两帧之间插入1帧的固定插帧策略,终端设备每隔一帧执行一次图层的绘制和渲染。例如,终端设备在接收到VSYNC2、VSYNC4、VSYNC6和VSYNC8信号时,不进行图层的绘制和渲染。在终端设备接收到VSYNC4、VSYNC6和VSYNC8信号时,终端设备将最近缓存的两帧图像进行合成,以便在送显时,在两帧图像之间插入该合成帧。
可变插帧策略是指在多个图像帧中的相邻两个图像帧之间(如F1帧和Fn帧之间)插入可变数目n的合成帧(即插入帧)。其中,n为正整数,且n小于或者等于最大可插帧数M。例如,终端设备可以在两帧之间固定插入可变n帧,每次插帧时的最大可插帧的数随着滑动速度的下降而增加。
请参考图10,图10以初始插帧数为1,步长为1的增加速度,插入可变数目合成帧为例,示出了本申请实施例提供的一种可变插帧策略示意图。如图10所示,终端设备首次在两帧之间插入1帧合成帧,第二次在两帧之间插入2帧合成帧,……,以此类推。其中,终端设备在接收到VSYNC3、VSYNC6和VSYNC7信号时,不进行图层的绘制和渲染,而是将最近缓存的两帧图像进行合成,以便在送显时,在两帧图像之间插入对应数目的合成帧。
阶段3(原生帧生成阶段)
如图4所示,原生帧生成阶段包括步骤S403:
S403、终端设备对收集的多个图像帧(如F1帧和Fn帧)进行绘制和渲染。
在本申请实施例中,以Android操作系统为例,终端设备在接收到VSYNC信号时,用户界面线程UI需要针对不同图像帧的具体类型采用不同的绘制渲染策略进行处理。
示例性的,如图11所示,对于F1帧,终端设备可以基于F1帧的图像帧信息正常进行绘制和渲染;对于插入帧,终端设备不作绘制和渲染;对于Fn帧,终端设备可以基于Fn帧的图像帧信息正常绘制渲染或者提前绘制渲染。
其中,插入帧是指在F1帧和Fn帧之间插入的合成帧。如图9所示,插入帧是指在接收到VSYNC5、VSYNC7和VSYNC9信号时,终端设备送显的图像帧。又如图10所示,插入帧是指在接收到VSYNC4、VSYNC7和VSYNC8信号时,终端设备送显的图像帧。
在本申请实施例中,终端设备在对F1帧和Fn帧进行绘制和渲染时,可以依据F1帧对应的界面滑动距离F1_distance以及Fn帧对应的界面滑动距离Fn_distance进行。其中,F1_distance可以理解为初始滑动距离,由终端设备进行记录。Fn_distance则可以由终端设备根据以下公式三计算得到:
Fun(t1,Fn_t2,v)=Fn_distance; (公式三)。
其中,t1是终端设备在阶段1收集的滑动开始时间,v是终端设备在阶段1收集的滑动初速度,Fn_t2是终端设备触发绘制和渲染的时刻。关于公式三的具体计算过程可以参考下文中对公式五的计算过程的介绍。
在一些实施例中,Fn帧采取正常绘制渲染策略,则上述Fn_t2是终端设备接收到对应VSYNC信号的时刻。
在另一些实施例中,Fn帧采取提前绘制渲染策略,则上述Fn帧的绘制渲染不由接收到对应VSYNC信号触发,而是根据以下公式四计算得到Fn_t2:
Fn_t2=t1+(M+1)*1000/x; (公式四)。
其中,x是终端设备在阶段1收集的滑动帧率,M是终端设备在阶段2计算得到的最大可插帧数。
如上文所述,对于Fn帧,终端设备可以采取正常绘制渲染策略,也可以采取提前绘制渲染策略。作为一种可能的实现方式,终端设备可以根据终端设备在阶段2确定的插帧策略,进一步确定是采取正常绘制渲染策略还是提前绘制渲染策略。例如,若插帧策略为固定插帧策略,则终端设备采取正常绘制渲染策略;若插帧策略为可变插帧策略,则终端设备采取提前绘制渲染策略。
阶段4(插帧合成阶段)
如图4所示,插帧合成阶段包括步骤S404:
S404、终端设备将多个图像帧(例如F1帧和Fn帧)的多个显示区域进行拼接合成,得到一个或多个插入帧(例如F1帧和Fn帧之间的插入帧Mi帧)。
示例性的,在本申请实施例中,插帧合成阶段可以包括以下两个步骤:
步骤1:将多个图像帧拆分为多个部分。
可以理解,对于显示有应用界面的终端设备来说,上述多个图像帧至少可以拆分为两个部分:系统状态栏视图(View)和界面View。每一部分位于一个图像帧的一个显示区域。其中,界面View是指响应于用户的抛滑操作,发生滑动变化的界面区域View。
以界面竖屏全屏显示在终端设备显示屏上,且界面View无遮挡为例,作为一种可能的实现方式,终端设备可以根据以下拆分策略,将多个图像帧(如有F1帧和Fn帧)拆分为多个部分:
1、如果界面View显示区域与界面View所在Layer完全重合,则将图像帧拆分为2部分。
示例性的,终端设备可以通过分析界面View显示区域的坐标信息与界面View所在Layer的坐标信息,判断界面View显示区域与界面View所在Layer的相对位置关系。
例如,以参考坐标系为图11中的(a)所示的xOy坐标系(其中原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边)为例,如图11中的(a)所示,终端设备可以确定:界面View显示区域的坐标与界面View所在Layer的坐标完全重合。
对于图11中的(a)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View所在Layer内的内容均发生滑动变化。对于类似这种情况的显示界面,终端设备将图像帧拆分为2部分。例如包括图11中的(a)所示的系统状态栏View和界面View(即界面View所在Layer)。每一部分位于一个图像帧的一个显示区域。
2、如果界面View显示区域的左上角与界面View所在Layer的左上角不重合,但是界面View显示区域的左下角与界面View所在Layer的左下角重合,则将图像帧拆分为3部分。
示例性的,若界面View显示区域的左上角与界面View所在Layer的左上角的纵坐标不同,但是界面View显示区域的左下角与界面View所在Layer的左下角的纵坐标相同,则可以确定界面View显示区域的左上角与界面View所在Layer的左上角不重合,但是界面View显示区域的左下角与界面View所在Layer的左下角重合。
例如,以参考坐标系为图11中的(b)所示的xOy坐标系(其中原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边)为例,如图11中的(b)所示,界面View显示区域的左上角与界面View所在Layer的左上角的横坐标相同,但是纵坐标不同;以及,界面View显示区域的左下角与界面View所在Layer的左下角的横坐标相同且纵坐标相同,则终端设备可以确定:界面View显示区域的左上角与界面View所在Layer的左上角不重合,但是界面View显示区域的左下角与界面View所在Layer的左下角重合。
对于图11中的(b)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View内的内容发生滑动变化,但是界面View所在Layer内的其他显示区域(图11中的(b)所示区域r)的内容不发生变化对于类似这种情况的界面,终端设备将图像帧拆分为3部分。例如包括图11中的(b)所示的系统状态栏View、区域r对应的View和界面View。每一部分位于一个图像帧的一个显示区域。
3、如果界面View显示区域的左上角与界面View所在Layer的左上角和左下角均不重合,则将图像帧拆分为4部分。
示例性的,若界面View显示区域的左上角与界面View所在Layer的左上角的纵坐标不同,且界面View显示区域的左下角与界面View所在Layer的左下角的纵坐标不同,则可以确定界面View显示区域的左上角与界面View所在Layer的左上角和左下角均不重合。
例如,以参考坐标系为图11中的(c)所示的xOy坐标系(其中原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边)为例,如图11中的(c)所示,界面View显示区域的左上角与界面View所在Layer的左上角的横坐标相同,但是纵坐标不同;以及,界面View显示区域的左下角与界面View所在Layer的左下角的横坐标相同,但是纵坐标不同,则终端设备可以确定:界面View显示区域的左上角与界面View所在Layer的左上角和左下角均不重合。
对于图11中的(c)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View内的内容发生滑动变化,但是界面View所在Layer内的其他显示区域(图11中的(c)所示区域r和区域s)的内容不发生变化对于类似这种情况的界面,终端设备将图像帧拆分为4部分。例如包括图11中的(c)所示的系统状态栏View、区域r对应的View、界面View和区域s对应的View。每一部分位于一个图像帧的一个显示区域。
需要说明的是,图11是以界面View无遮挡为例介绍一种图像帧的拆分策略,对于界面View有遮挡的情况,终端设备还可以基于上述拆分策略,进一步再拆分出遮挡物对应的View。以图12所示界面为例,界面包括系统的状态栏Layer(如图12所示Layer1)和视频界面Layer(如图12所示Layer2)。其中,Layer2可以拆分为位于Layer2顶部的圆角视图(View)1、位于Layer2底部的圆角View2和位于Layer2中间的界面ViewA。由于ViewA与Layer2的左上角和左下角均不重合,且界面ViewA上有遮挡物“登录/注册”控件,因此终端设备可以将图12所示界面的图像帧拆分为5部分:Layer1对应的View、圆角View1、ViewA、圆角View2和“登录/注册”控件对应的View。每一部分位于一个图像帧的一个显示区域。
另外,图11是以界面View全屏显示在终端设备显示屏上为例介绍一种界面的图像帧的拆分策略,对于界面View非全屏显示在终端设备显示屏上的情况,可以采用类似的策略进行界面的图像帧的拆分。示例性的,请参考图13,图13示出了本申请实施例提供的另外三种界面的图像帧拆分示例图。
对于图13中的(a)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View所在Layer内的内容均发生滑动变化。对于类似这种情况的界面,终端设备将图像帧拆分为3部分。例如包括图13中的(a)所示的系统状态栏View、桌面View和界面View(即界面View所在Layer)。每一部分位于一个图像帧的一个显示区域。
对于图13中的(b)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View内的内容发生滑动变化,但是界面View所在Layer内的其他显示区域(图13中的(b)所示区域r)的内容不发生变化对于类似这种情况的界面,终端设备将界面的图像帧拆分为4部分。例如包括图13中的(b)所示的系统状态栏View、桌面View、区域r对应的View和界面View。每一部分位于一个图像帧的一个显示区域。
对于图13中的(c)所示的情况,终端设备响应响应于用户在如图界面上的抛滑操作,界面View内的内容发生滑动变化,但是界面View所在Layer内的其他显示区域(图13中的(c)所示区域r和区域s)的内容不发生变化对于类似这种情况的界面,终端设备将图像帧拆分为5部分。例如包括图13中的(c)所示的系统状态栏View、桌面View、区域r对应的View、界面View和区域s对应的View。每一部分位于一个图像帧的一个显示区域。
另外,图11是以界面View竖屏显示在终端设备显示屏上为例介绍一种图像帧的拆分策略,对于界面View横屏显示在终端设备显示屏上的情况,可以参考本申请实施例上述对图11或图13所示的图像帧的拆分策略,这里不做赘述。
步骤2:通过拼接得到一个或多个插入帧。
在本申请实施例中,插入帧至少可以由以下两种View拼接而成:系统状态栏View和界面View。可以理解,在接收到用户在可滑动界面上抛滑操作后,终端设备的系统状态栏View不会发生变化。
进一步的,在一些实施例中,例如对于包括例如圆角Layer、导航栏视图(Layer)和遮挡物等中的一种或多种的界面,插入帧至少可以由系统状态栏View、界面View;以及圆角View、导航栏View和遮挡物视图(即遮挡物对应的View)中的一个或多个拼接而成。其中,在接收到用户在可滑动界面上抛滑操作后,终端设备的圆角View、导航栏View和遮挡物对应的View也不会发生变化。
以界面为今日头条界面为例,请参考图14,图14示出了Android操作系统的合成线程SurfaceFlinger将包括有今日头条/>界面的图像帧各个部分进行合成时的进程示例图。如图14所示,界面包括系统状态栏View、界面View、位于今日头条/>界面底部的底部圆角View和位于今日头条/>界面顶部的顶部圆角View。通过上述几个View的拼接,可以得到本申请实施例的插入帧(即合成帧)。
其中,在本申请实施例中,上述步骤2的核心在于一个或多个插入帧的界面View的确定。通常,一个或多个插入帧的界面View可以基于F1帧和/或Fn帧的界面View确定,示例性的,一个或多个插入帧的界面View可以由F1帧中的部分区域和/或Fn帧中的部分区域拼接得到。
以F1帧如图15中的(a)所示,Fn帧如图15中的(c)所示为例,如图15中的(a)所示,F1帧和Fn帧被终端设备拆分为5部分:Layer1对应的系统状态栏View,位于视频界面顶部的圆角View1,界面ViewA,位于视频界面底部的圆角View2以及悬浮显示在界面ViewA上的遮挡物“登录/注册”控件对应的View。本申请实施例提供的界面显示过程中的插帧方法基于图15中的(a)所示F1帧和图15中的(c)所示Fn帧可以合成15中的(b)所示的插入帧。
示例性的,请参考图16,图16以基于图15中的(a)所示F1帧和图15中的(c)所示Fn帧可以合成15中的(b)所示的插入帧为例,示出了本申请实施例提供的一种插入帧的拼接方法示意图。
由于图16所示示例中,F1帧和Fn帧之间仅插入了一个插入帧,因此,图16中的(b)所示插入帧由图16中的(a)所示F1帧和图16中的(b)所示Fn帧的多个显示区域进行拼接合成得到。其中,图16所示插入帧的拼接具体可以包括以下6个步骤:
步骤a、将F1帧的系统状态栏View拷贝至插入帧的对应位置。
其中,在步骤a中,对应位置指相同坐标位置。
如图16中的(a)的步骤a所示,终端设备将F1帧的系统状态栏View(即Layer1对应的View)拷贝至插入帧的相同坐标位置,即系统状态栏位置。
示例性的,以参考坐标系为原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边的xOy坐标系为例,终端设备可以将F1帧中,坐标位置为(0,0,w,Y1)的显示区域中的渲染界面拷贝至插入帧的坐标位置(0,0,W,Y1)。其中,(0,0)是指系统状态栏的左上角的坐标,(W,Y1)是指系统状态栏的右下角的坐标,W是系统状态栏的宽度,Y1是系统状态栏的高度。
步骤b、将F1帧的圆角View1拷贝至插入帧的对应位置。
其中,在步骤b中,对应位置指相同坐标位置。
如图16中的(a)的步骤b所示,终端设备将F1帧中,位于视频界面顶部的圆角View(即圆角View1)拷贝至插入帧的相同坐标位置。
示例性的,以参考坐标系为原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边的xOy坐标系为例,终端设备可以将F1帧中,坐标位置为(0,0,w,Y1)的显示区域中的渲染界面拷贝至插入帧的坐标位置(0,Y1,W,Y1+Y2)。其中,(0,Y1)是指顶部圆角左上角的坐标,(W,Y1+Y2)是指顶部圆角右下角的坐标,W是顶部圆角的宽度,Y1是系统状态栏的高度,Y2是顶部圆角的高度。
步骤c、将F1帧的界面ViewA的第二部分拷贝至插入帧的第一区域。
如图16中的(a)的步骤c所示,终端设备将F1帧中,界面ViewA的第二区域对应的界面View拷贝至插入帧的第一区域。
其中,在步骤c中,终端设备可以确定F1帧中,界面ViewA的第二区域的坐标位置为:(0,Y1+Y2+(M1_distance-F1_distance),W,Y1+H)。以及,终端设备可以进一步确定插入帧的第一区域的坐标位置为:(0,Y1+Y2,W,Y1+Y2+H-(M1_distance-F1_distance))。
其中,Y1是系统状态栏的高度,Y2是顶部圆角的高度,W是界面ViewA的宽度,H是界面ViewA的高度。(M1_distance-F1_distance)是图16中的(b)所示插入帧相对于图16中的(a)所示F1帧的滑动距离。其中,F1_distance是F1帧对应的滑动距离,M1_distance是图16中的(b)所示插入帧对应的滑动距离。
示例性的,终端设备可以根据以下公式五计算得到图16中的(b)所示插入帧对应的滑动距离M1_distance:
Mi_distance=Fun(t1,Mi_t2,v); (公式五)。
其中,Mi_distance是第i个插入帧对应的滑动距离Mi_distance,i为正整数,i≤M。
t1是终端设备在阶段1收集的滑动开始时间,v是终端设备在阶段1收集的滑动初速度,Mi_t2是第i个插入帧对应的时刻。其中,Mi_t2可以根据以下公式六计算得到:
Mi_t2=t1+i*1000/x; (公式六)。
作为一种示例,上述公式五的计算过程具体可以包括以下三个步骤:
第一步:获取初始位置,根据滑动初速度计算得到Fn_t2和Fn_distance。
第二步:将滑动过程划分为r等分。如图17所示,假设将滑动过程划分为100等分,可以理解为滑动过程包括100次滑动。其中,如图17所示,第1次滑动后完成了滑动过程的1%,第25次滑动后完成了滑动过程的60%,第100次滑动后完成了滑动过程的100%。
第三步:根据index=(Mi_t2-t1)/Fn_t2*100计算得到index,根据index在例如图17所示滑动过程中的具体位置得到Mi_t2时刻对应的滑动距离Mi_distance。
示例性的,以下示出了一种计算Mi_distance的计算机执行代码示例:
/>
步骤d、将Fn帧的界面ViewA的第四部分拷贝至插入帧的第三区域。
如图16中的(a)的步骤d所示,终端设备将Fn帧中,界面ViewA的第四区域对应的界面View拷贝至插入帧的第三区域。
其中,在步骤d中,终端设备可以确定Fn帧中,界面ViewA的第四区域的坐标位置为:(0,Y1+Y2+H-(Fn_distance-M1_distance)-(M1_distance-F1_distance),W,Y1+Y2+H-(Fn_distance-M1_distance))。以及,终端设备可以进一步确定插入帧的第三区域的坐标位置为:(0,Y1+Y2+H-(Mi_distance-F1_distance),W,Y1+Y2+H)。
其中,Y1是系统状态栏的高度,Y2是顶部圆角的高度,W是界面ViewA的宽度,H是界面ViewA的高度。(Fn_distance-M1_distance)是图16中的(b)所示Fn帧相对于图16中的(b)所示插入帧的滑动距离。(M1_distance-F1_distance)是图16中的(b)所示插入帧相对于图16中的(a)所示F1帧的滑动距离。其中,F1_distance是F1帧对应的滑动距离,M1_distance是16中的(b)所示插入帧对应的滑动距离。其中,终端设备可以根据上述公式五计算得到M1_distance。
步骤e、将Fn帧的圆角View2拷贝至插入帧的对应位置。
其中,在步骤e中,对应位置指相同坐标位置。
如图16中的(b)的步骤e所示,终端设备将Fn帧中,位于视频界面底部的圆角View(即圆角View2)拷贝至插入帧的相同坐标位置,如图16中的(b)所示显示界面底部位置。
示例性的,以参考坐标系为原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边的xOy坐标系为例,终端设备可以将Fn帧中,坐标位置为(0,Y1+Y2+H,W,Y1+Y2+H+Y3)的显示区域中的渲染界面拷贝至插入帧的坐标位置(0,Y1+Y2+H,W,H')。其中,(0,Y1+Y2+H)是指底部圆角左上角的坐标,(W,H')是指底部圆角右下角的坐标,H'=Y1+Y2+H+Y3,W是底部圆角的宽度,Y1是系统状态栏的高度,Y2是顶部圆角的高度,Y3是底部圆角的高度。
步骤f、将F1帧或Fn帧的一个或多个遮挡物对应的View拷贝至插入帧的对应位置。
其中,在步骤f中,对应位置指相同坐标位置。
以终端设备将Fn帧的遮挡物对应的View拷贝至插入帧的对应位置为例,如图16中的(b)的步骤f所示,终端设备将Fn帧中的遮挡物“登录/注册”控件对应的View拷贝至插入帧的相同坐标位置。
示例性的,以参考坐标系为原点O为界面的左上角,x轴为界面的水平边,y轴为界面的竖直边的xOy坐标系为例,终端设备可以将Fn帧中,坐标位置为(x1,y1,x2,y2)的显示区域中的渲染界面拷贝至插入帧的坐标位置(x1,y1,x2,y2)。其中,(x1,y1)是指“登录/注册”控件左上角的坐标,(x2,y2)是指“登录/注册”控件右下角的坐标。在本申请实施例中,终端设备可以根据获取的遮挡物的位置信息(如遮挡物相对于参考坐标系的坐标信息)确定上述坐标值x1,y1,x2和y2。
通过上述步骤a-步骤f的拼接过程,终端设备可以基于图16中的(a)所示F1帧和图16中的(b)所示Fn帧,合成得到图16中的(b)所示的插入帧。在终端设备响应于用户在图16中的(a)所示视频界面上的抛滑操作进行界面显示时,通过在图16中的(a)所示F1帧和图16中的(b)所示Fn帧之间插入图16中的(b)所示的插入帧,可以避免抛滑操作造成的界面显示卡顿、抖动以及显示模糊等问题。
进一步的,由于本申请实施例提供的界面显示过程中的插帧方法中,终端设备是基于前后的多个图像帧,通过拼接合成得到的插入帧。因此,无需进行插入帧的绘制和渲染。
例如,请参考图18,图18以Android操作系统为例,示出了两种界面显示过程中的SysTrace。其中,图18中的(a)示出了一种常规的界面显示过程中的SysTrace,图18中的(b)示出了本申请实施例提供的界面显示过程中的SysTrace。如图18中的(a)所示,终端设备的用户界面线程UI和渲染线程Render对每一帧图像进行绘制和渲染。而图18中的(b)所示的显示过程中,终端设备在两帧之间仅进行插入帧的合成。
因此,相比于常规的送显的每一帧图像都是经过终端设备绘制和渲染的情况,本申请实施例提供的界面显示过程中的插帧方法可以大大减小终端设备的资源(包括硬件资源和软件资源)和算力的耗费,降低终端设备的CPU和GPU等的负荷,降低终端设备的功耗。例如,CPU和GPU的功耗可以降低约40%,终端设备的功耗可以降低约20%。其中,两帧之间插入的插入帧越多,则越省功耗。
另外,由于本申请实施例提供的界面显示过程中的插帧方法中,终端设备是通过界面以动画效果向某一方向滑动的距离(例如View的滑动距离)进行插入帧的拼接和合成的,计算精确,因此不会出现插入帧和拼接边界等界面显示模糊的问题。
另外,本申请实施例提供的界面显示过程中的插帧方法可以支持更高的刷新率。
综上所述,本申请实施例提供的界面显示过程中的插帧方法可以在高刷新率需求下,在提高界面显示效果的同时,降低终端设备的耗电速度,提升用户体验。
应理解,本申请实施例的各个方案可以进行合理的组合使用,并且实施例中出现的各个术语的解释或说明可以在各个实施例中互相参考或解释,对此不作限定。
还应理解,在本申请的各种实施例中,上述各过程的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
可以理解的是,终端设备为了实现上述任一个实施例的功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以对终端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
比如,以采用集成的方式划分终端设备各个功能模块的情况下,如图19所示,为本申请实施例提供的一种终端设备的结构框图。如图19所示,该终端设备可以包括检测单元1910、显示单元1920和处理单元1930。
其中,检测单元1910用于支持终端设备检测用户在显示界面上的抛滑操作,和/或用于本文所描述的技术的其他过程。显示单元1920用于支持终端设备在检测单元检测到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面;在滑动界面显示的过程中,显示多个图像帧以及多个图像帧之间插入的插入帧;和/或用于本文所描述的技术的其他过程。处理单元1930用于支持终端设备获取输入信息;根据输入信息确定插帧策略;基于多个图像帧的信息,采用插帧策略进行拼接合成,得到一个或多个插入帧;和/或用于本文所描述的技术的其他过程。
应理解,终端设备中的各个模块可以通过软件和/或硬件形式实现,对此不作具体限定。换言之,电子设备是以功能模块的形式来呈现。这里的“模块”可以指特定应用集成电路ASIC、电路、执行一个或多个软件或固件程序的处理器和存储器、集成逻辑电路,和/或其他可以提供上述功能的器件。可选地,在一个简单的实施例中,本领域的技术人员可以想到电子设备可以采用图20所示的形式。检测单元1910可以通过图20所示的传感器2010实现。显示单元1920可以通过图20所示的显示器2020实现。处理单元1930可以通过图20所示的处理器2030实现。具体的,处理器通过执行存储器中存储的计算机程序来实现。可选地,所述存储器为所述芯片内的存储单元,比如寄存器、缓存等,所述存储单元还可以是所述计算机设备内的位于所述芯片外部的存储单元。
在一种可选的方式中,当使用软件实现数据传输时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地实现本申请实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线((digital subscriber line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如软盘、硬盘、磁带)、光介质(例如数字化视频光盘(digital video disk,DVD))、或者半导体介质(例如固态硬盘solid state disk(SSD))等。
结合本申请实施例所描述的方法或者算法的步骤可以硬件的方式来实现,也可以是由处理器执行软件指令的方式来实现。软件指令可以由相应的软件模块组成,软件模块可以被存放于RAM存储器、闪存、ROM存储器、EPROM存储器、EEPROM存储器、寄存器、硬盘、移动硬盘、CD-ROM或者本领域熟知的任何其它形式的存储介质中。一种示例性的存储介质耦合至处理器,从而使处理器能够从该存储介质读取信息,且可向该存储介质写入信息。当然,存储介质也可以是处理器的组成部分。处理器和存储介质可以位于ASIC中。另外,该ASIC可以位于探测装置中。当然,处理器和存储介质也可以作为分立组件存在于探测装置中。
通过以上的实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在一种可选的方式中,本申请提供一种芯片系统,该芯片系统包括处理器、存储器,存储器中存储有指令;当指令被处理器执行时,实现本申请提供的任一种可能的实现方式中的方法。该芯片系统可以由芯片构成,也可以包含芯片和其他分立器件。
在本申请所提供的几个实施例中,应该理解到,所揭露的电子设备和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (19)
1.一种界面显示过程中的插帧方法,其特征在于,应用于终端设备,所述方法包括:
在接收到用户在显示界面上的抛滑操作时,开始滑动显示滑动界面,所述滑动界面是所述显示界面的第一区域上的视图;
获取输入信息;所述输入信息用于表征抛滑方向、所述显示界面的界面信息、滑动显示信息和所述滑动界面对应的多个图像帧的信息;
根据所述输入信息确定插帧策略;
基于所述多个图像帧的信息,采用所述插帧策略进行拼接合成,得到一个或多个插入帧;所述一个或多个插入帧位于所述多个图像帧之间。
2.根据权利要求1所述的方法,其特征在于,所述输入信息包括:所述抛滑方向、所述滑动界面的滑动开始时间、滑动初速度、滑动帧率,所述滑动界面的界面尺寸、所述终端设备的屏幕显示区域尺寸和所述多个图像帧的信息。
3.根据权利要求2所述的方法,其特征在于,所述输入信息还包括:所述滑动界面上遮挡物的信息。
4.根据权利要求3所述的方法,其特征在于,所述遮挡物包括以下中的一个或多个:悬浮窗、悬浮框、悬浮控件或悬浮图标。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述根据所述输入信息确定插帧策略,包括:
根据所述输入信息确定最大可插帧数;
根据所述最大可插帧数确定所述插帧策略。
6.根据权利要求5所述的方法,其特征在于,所述插帧策略包括固定插帧策略和可变插帧策略;
其中,所述固定插帧策略是指在所述多个图像帧中的相邻两个图像帧之间插入固定数目的插入帧,所述可变插帧策略是指在所述多个图像帧中的相邻两个图像帧之间插入可变数目的插入帧。
7.根据权利要求5所述的方法,其特征在于,所述根据所述输入信息确定最大可插帧数,包括:
根据所述滑动界面的滑动帧率和最大滑动时间确定所述最大可插帧数;
其中,所述最大滑动时间是根据所述滑动界面的滑动开始时间、滑动初速度和最大滑动距离确定,所述最大滑动距离是所述显示界面的宽度或者高度。
8.根据权利要求7所述的方法,其特征在于,所述根据所述滑动界面的滑动帧率和最大滑动时间确定所述最大可插帧数,包括:
根据以下公式计算得到所述最大可插帧数:
M=(max_t/y)-1;
其中,y=1000/x,x是所述滑动帧率;max_t是所述最大滑动时间,max_t是根据公式Fun(t1,max_t,v)<max_distance确定的;t1是所述滑动开始时间,v是所述滑动初速度,max_distance是所述最大滑动距离。
9.根据权利要求1-4、6-8中任一项所述的方法,其特征在于,所述多个图像帧包括所述滑动界面滑动显示过程中的首个图像帧和最后一个图像帧。
10.根据权利要求1-4、6-8中任一项所述的方法,其特征在于,所述多个图像帧均包括多个显示区域。
11.根据权利要求10所述的方法,其特征在于,所述基于所述多个图像帧的信息,采用所述插帧策略进行拼接合成,得到一个或多个插入帧,包括:
基于所述多个图像帧的信息进行绘制和渲染;
将所述多个图像帧的所述多个显示区域进行拼接合成,得到所述一个或多个插入帧。
12.根据权利要求11所述的方法,其特征在于,所述多个图像帧均包括:所述显示界面上的系统状态栏视图和滑动界面视图;则所述一个或多个插入帧的对应位置均包括所述系统状态栏视图和滑动界面视图。
13.根据权利要求10所述的方法,其特征在于,所述多个图像帧均包括:所述显示界面上的一个或多个导航栏视图;则所述一个或多个插入帧的对应位置均包括所述一个或多个导航栏视图。
14.根据权利要求10所述的方法,其特征在于,所述多个图像帧均包括:一个或多个圆角视图;则所述一个或多个插入帧的对应位置均包括所述一个或多个圆角视图。
15.根据权利要求10所述的方法,其特征在于,所述多个图像帧均包括:遮挡物视图;则所述一个或多个插入帧的对应位置均包括所述遮挡物视图。
16.根据权利要求10所述的方法,其特征在于,所述多个图像帧均包括:所述终端设备的桌面第一区域的视图;则所述一个或多个插入帧的对应位置均包括所述桌面第一区域的视图。
17.一种终端设备,其特征在于,所述终端设备包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序,使得所述终端设备实现如权利要求1-16中任一项所述的方法。
18.一种芯片系统,其特征在于,所述芯片系统包括处理电路、存储介质,所述存储介质中存储有计算机程序代码;所述计算机程序代码被所述处理电路执行时实现如权利要求1-16中任一项所述的方法。
19.一种计算机存储介质,其特征在于,所述计算机存储介质中存储有指令,所述指令用于在计算机上运行,以实现如权利要求1-16中任一项所述的方法。
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044342.3A CN114764357B (zh) | 2021-01-13 | 2021-01-13 | 界面显示过程中的插帧方法及终端设备 |
EP21919121.0A EP4258111A1 (en) | 2021-01-13 | 2021-12-22 | Frame insertion method within interface display process, and terminal device |
PCT/CN2021/140405 WO2022151934A1 (zh) | 2021-01-13 | 2021-12-22 | 界面显示过程中的插帧方法及终端设备 |
US18/260,935 US20240061569A1 (en) | 2021-01-13 | 2021-12-22 | Method for performing frame interpolation in interface display process and terminal device |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110044342.3A CN114764357B (zh) | 2021-01-13 | 2021-01-13 | 界面显示过程中的插帧方法及终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114764357A CN114764357A (zh) | 2022-07-19 |
CN114764357B true CN114764357B (zh) | 2024-05-03 |
Family
ID=82363140
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110044342.3A Active CN114764357B (zh) | 2021-01-13 | 2021-01-13 | 界面显示过程中的插帧方法及终端设备 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20240061569A1 (zh) |
EP (1) | EP4258111A1 (zh) |
CN (1) | CN114764357B (zh) |
WO (1) | WO2022151934A1 (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117991961A (zh) * | 2022-11-07 | 2024-05-07 | 荣耀终端有限公司 | 数据处理方法、设备及存储介质 |
CN116991506B (zh) * | 2023-09-28 | 2024-04-30 | 腾讯科技(深圳)有限公司 | 一种网页渲染方法、装置、终端和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909251A (en) * | 1997-04-10 | 1999-06-01 | Cognitech, Inc. | Image frame fusion by velocity estimation using region merging |
CN106303546A (zh) * | 2016-08-31 | 2017-01-04 | 四川长虹通信科技有限公司 | 一种帧速率上转换方法及系统 |
CN110933496A (zh) * | 2019-12-10 | 2020-03-27 | Oppo广东移动通信有限公司 | 图像数据插帧处理方法、装置、电子设备及存储介质 |
CN111813490A (zh) * | 2020-08-14 | 2020-10-23 | Oppo广东移动通信有限公司 | 插帧处理方法及装置 |
CN112199140A (zh) * | 2020-09-09 | 2021-01-08 | Oppo广东移动通信有限公司 | 应用插帧方法及相关装置 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109144394A (zh) * | 2018-08-28 | 2019-01-04 | 维沃移动通信有限公司 | 一种动态图像处理方法及终端 |
CN111104020B (zh) * | 2019-12-17 | 2023-10-27 | Vidaa(荷兰)国际控股有限公司 | 用户界面设置方法、存储介质及显示设备 |
-
2021
- 2021-01-13 CN CN202110044342.3A patent/CN114764357B/zh active Active
- 2021-12-22 EP EP21919121.0A patent/EP4258111A1/en active Pending
- 2021-12-22 WO PCT/CN2021/140405 patent/WO2022151934A1/zh active Application Filing
- 2021-12-22 US US18/260,935 patent/US20240061569A1/en active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5909251A (en) * | 1997-04-10 | 1999-06-01 | Cognitech, Inc. | Image frame fusion by velocity estimation using region merging |
CN106303546A (zh) * | 2016-08-31 | 2017-01-04 | 四川长虹通信科技有限公司 | 一种帧速率上转换方法及系统 |
CN110933496A (zh) * | 2019-12-10 | 2020-03-27 | Oppo广东移动通信有限公司 | 图像数据插帧处理方法、装置、电子设备及存储介质 |
CN111813490A (zh) * | 2020-08-14 | 2020-10-23 | Oppo广东移动通信有限公司 | 插帧处理方法及装置 |
CN112199140A (zh) * | 2020-09-09 | 2021-01-08 | Oppo广东移动通信有限公司 | 应用插帧方法及相关装置 |
Also Published As
Publication number | Publication date |
---|---|
EP4258111A1 (en) | 2023-10-11 |
CN114764357A (zh) | 2022-07-19 |
WO2022151934A1 (zh) | 2022-07-21 |
US20240061569A1 (en) | 2024-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2021027747A1 (zh) | 一种界面显示方法及设备 | |
EP4207777A1 (en) | Application interface display method under multi-window mirroring scenario, and electronic device | |
CN112328130B (zh) | 显示处理方法及电子设备 | |
CN114115769B (zh) | 一种显示方法及电子设备 | |
CN114764357B (zh) | 界面显示过程中的插帧方法及终端设备 | |
KR20160061133A (ko) | 이미지 표시 방법 및 그 전자 장치 | |
CN112558898A (zh) | 显示方法及电子设备 | |
CN115048012B (zh) | 数据处理方法和相关装置 | |
EP4209878A1 (en) | Cursor display method and electronic device | |
CN113986162B (zh) | 图层合成方法、设备及计算机可读存储介质 | |
US20240069937A1 (en) | Interface display method and electronic device | |
CN117769696A (zh) | 显示方法、电子设备、存储介质和程序产品 | |
CN116700655B (zh) | 一种界面显示方法及电子设备 | |
EP4116811A1 (en) | Display method and electronic device | |
CN116688494B (zh) | 生成游戏预测帧的方法和电子设备 | |
WO2024002196A1 (zh) | 一种电子设备的显示方法、装置和存储介质 | |
CN116185245B (zh) | 一种页面显示方法及电子设备 | |
CN114968423B (zh) | 一种长页面截屏方法及电子设备 | |
WO2022083571A1 (zh) | 电子设备及其功能设置的提示方法、提示文件的播放方法 | |
CN116704087B (zh) | 一种参数调整方法及电子设备 | |
WO2024027504A1 (zh) | 一种应用显示方法及电子设备 | |
CN117389437A (zh) | 一种多窗口显示方法及设备 | |
CN114860354A (zh) | 一种加载列表的方法及电子设备 | |
CN117806420A (zh) | 一种显示方法、装置和存储介质 | |
CN117008752A (zh) | 一种显示方法、装置及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |