CN112351326B - 一种基于垂直同步信号的图像处理方法及电子设备 - Google Patents
一种基于垂直同步信号的图像处理方法及电子设备 Download PDFInfo
- Publication number
- CN112351326B CN112351326B CN201910736615.3A CN201910736615A CN112351326B CN 112351326 B CN112351326 B CN 112351326B CN 201910736615 A CN201910736615 A CN 201910736615A CN 112351326 B CN112351326 B CN 112351326B
- Authority
- CN
- China
- Prior art keywords
- time
- synchronization signal
- vertical synchronization
- electronic device
- remote control
- 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
- 238000003672 processing method Methods 0.000 title claims abstract description 33
- 238000009877 rendering Methods 0.000 claims description 214
- 238000000034 method Methods 0.000 claims description 95
- 239000000203 mixture Substances 0.000 claims description 91
- 230000001934 delay Effects 0.000 claims description 34
- 230000007274 generation of a signal involved in cell-cell signaling Effects 0.000 claims description 23
- 238000003860 storage Methods 0.000 claims description 11
- 238000004590 computer program Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 abstract description 112
- 238000012545 processing Methods 0.000 abstract description 15
- 239000010410 layer Substances 0.000 description 305
- 230000015572 biosynthetic process Effects 0.000 description 47
- 238000003786 synthesis reaction Methods 0.000 description 47
- 238000010586 diagram Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 23
- 238000004891 communication Methods 0.000 description 21
- 238000013461 design Methods 0.000 description 18
- 230000006870 function Effects 0.000 description 18
- 230000001360 synchronised effect Effects 0.000 description 17
- 238000001514 detection method Methods 0.000 description 16
- 230000002194 synthesizing effect Effects 0.000 description 14
- 238000007726 management method Methods 0.000 description 12
- 230000001976 improved effect Effects 0.000 description 10
- 238000010295 mobile communication Methods 0.000 description 8
- 230000001960 triggered effect Effects 0.000 description 8
- 101100129496 Arabidopsis thaliana CYP711A1 gene Proteins 0.000 description 7
- 101100083446 Danio rerio plekhh1 gene Proteins 0.000 description 7
- 230000000694 effects Effects 0.000 description 7
- 230000005236 sound signal Effects 0.000 description 6
- 101100129499 Arabidopsis thaliana MAX2 gene Proteins 0.000 description 5
- 230000008901 benefit Effects 0.000 description 5
- 238000005457 optimization Methods 0.000 description 5
- 101100264195 Caenorhabditis elegans app-1 gene Proteins 0.000 description 4
- 230000008859 change Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000737 periodic effect Effects 0.000 description 4
- 238000004904 shortening Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 238000013528 artificial neural network Methods 0.000 description 3
- 238000004364 calculation method Methods 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
- 230000003111 delayed effect Effects 0.000 description 3
- 238000004458 analytical method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 238000013500 data storage Methods 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000003416 augmentation Effects 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 210000000988 bone and bone Anatomy 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 239000011248 coating agent Substances 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 239000012792 core layer Substances 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 239000002096 quantum dot Substances 0.000 description 1
- 230000000630 rising effect 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/4302—Content synchronisation processes, e.g. decoder synchronisation
-
- 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/41—Structure of client; Structure of client peripherals
- H04N21/422—Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
- H04N21/42204—User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream or rendering scenes according to encoded video stream scene graphs
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例提供一种基于垂直同步信号的图像处理方法及电子设备,涉及图像处理及显示技术领域,可以缩短电子设备对遥控输入事件的响应延迟,提升电子设备的流畅性。具体方案包括:如果电子设备不调整垂直同步信号,那么电子设备的第一垂直同步信号的下一次产生时刻为第一时刻。电子设备检测到发生遥控输入事件时,调整第一垂直同步信号的下一次产生时刻为检测到发生遥控输入事件的时刻之后的第二时刻,第二时刻早于第一时刻;电子设备响应于第一垂直同步信号,绘制一个或者多个第一图层,并渲染一个或多个第一图层。
Description
技术领域
本申请涉及图像处理及显示技术领域,尤其涉及一种基于垂直同步信号的图像处理方法及电子设备。
背景技术
随着电子技术的发展,各类电子产品(如智能电视、显示器等大屏显示设备)的性能越来越好。消费者对电子产品的人机交互性能的要求也越来越高。其中,流畅性是一项重要的人机交互性能。
流畅性可以体现为从“用户向电子产品输入用户操作”到“电子产品显示该用户操作对应的图像”的延迟时间的长度。例如,上述用户操作可以是用户通过遥控器、鼠标或者按键等输入的操作;或者,上述用户操作可以是用户对触摸屏的触摸操作。上述延迟时间可以称为电子设备的响应延迟。例如,上述用户操作是遥控器操作的情况下,该延迟时刻可以称为遥控输入响应延迟。其中,延迟时间越长,流畅性越差;延迟时间越短,流畅性越好。因此,如何缩短上述延迟时间,提升电子产品的流畅性是亟待解决的一个问题。
发明内容
本申请实施例提供一种基于垂直同步信号的图像处理方法及电子设备,可以缩短电子设备对遥控器、鼠标或者按键等输入事件的响应延迟,提升电子设备的流畅性。
为达到上述目的,本申请实施例采用如下技术方案:
第一方面,本申请实施例提供一种基于垂直同步信号的图像处理方法,该方法可以应用于包括显示屏的电子设备。该方法可以包括:电子设备的第一垂直同步信号的下一次产生时刻为第一时刻。电子设备检测到发生遥控输入事件时,调整第一垂直同步信号的下一次产生时刻为检测到发生遥控输入事件的时刻之后的第二时刻,第二时刻早于第一时刻;电子设备响应于第一垂直同步信号,绘制一个或者多个第一图层,并渲染一个或多个第一图层。
当电子设备在检测到发生遥控输入事件时,电子设备可以提前一个同步周期刷新显示对应遥控输入事件的图像帧(例如第一图像帧)。也就是说,通过本申请实施例的方法,可以将电子设备的针对遥控输入事件的响应延迟缩短一个或者两个同步周期,可以提升电子设备的流畅性。例如:在用户使用遥控器操作电子设备的场景中,当用户按下遥控器的一个按键时,本申请实施例的方法,能够使电子设备更快显示该对应按键操作而生成的画面,使用户感觉电子设备运行速度快、反应灵敏。
结合第一方面,在一种可能的设计方式中,电子设备可以设置第二时刻与发生遥控输入事件的时刻的时间间隔大于或者等于第一预设帧长。
结合第一方面,在一种可能的设计方式中,电子设备根据第一统计周期的一个或多个第一延迟,确定第一预设帧长,第一延迟是电子设备在第一统计周期内从检测到遥控输入事件到响应遥控输入事件的延迟。
结合第一方面,在一种可能的设计方式中,电子设备第一垂直同步信号的下一次产生时刻为检测到发生遥控输入事件的时刻之后的第二时刻,包括:电子设备计算第二时刻与第一时刻的时间间隔;电子设备判断第二时刻与第一时刻的时间间隔是否大于或等于第一期望值;如果第二时刻与第一时刻的时间间隔大于或等于第一期望值,电子设备调整第一垂直同步信号的下一次信号产生时刻为第二时刻。
这样,电子设备能够适当减少对整第一垂直同步信号的调整次数,即:当第一调整垂直同步信号的产生时刻带来的收益满足预期时,执行调整;当调整第一垂直同步信号的产生时刻带来的收益不满足时,不执行调整,以减轻系统负担。
结合第一方面,在一种可能的设计方式中,电子设备在一个或多个第一图层渲染完成后,对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧。
这样,电子设备不需要等待第二垂直同步信号,在响应于第一垂直同步信号,绘制并渲染一个或多个第一图层渲染后,即在一个或多个第一图层渲染完成后,便可以立即开始对渲染的第一图层进行图层合成,以得到第一图像帧。也就是说,电子设备可以提前对渲染的第一图层进行图层合成。
结合第一方面,在一种可能的设计方式中,当电子设备的第一垂直同步信号的下一次产生时刻为第一时刻时,电子设备的第二垂直同步信号的下一次产生时刻为第一时刻之后的第四时刻,该方法还包括:电子设备调整第二垂直同步信号的下一次信号产生时刻为第二时刻之后的第三时刻,第三时刻早于第四时刻。
结合第一方面,在一种可能的设计方式中,第三时刻与第二时刻的时间间隔大于第二预设帧长。
结合第一方面,在一种可能的设计方式中,电子设备根据第二统计周期的一个或多个第二时长,确定第二预设帧长,第二时长是电子设备在第二统计周期内获取的电子设备进行图层绘制和对绘制的图层进行渲染所需的时长。
结合第一方面,在一种可能的设计方式中,电子设备调整第二垂直同步信号的下一次信号产生时刻为第二时刻之后的第三时刻,包括:电子设备计算第三时刻与第四时刻的时间间隔;电子设备判断第三时刻与第四时刻的时间间隔是否大于或等于第二期望值;如果第三时刻与第四时刻的时间间隔大于或等于第二期望值,电子设备调整第二垂直同步信号的下一次信号产生时刻为第三时刻。
这样,电子设备能够适当减少对整第二垂直同步信号的调整次数,即:当调整第二垂直同步信号的产生时刻带来的收益满足预期时,执行调整;当调整第二垂直同步信号的产生时刻带来的收益不满足时,不执行调整,以减轻系统负担。
结合第一方面,在一种可能的设计方式中,电子设备在一个或多个第一图层渲染完成后,响应于第二垂直同步信号,对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧。
这样,电子设备可以提前渲染的一个或多个第一图层进行图层合成,从而提前一个同步周期刷新显示对应遥控输入事件的图像帧(例如第一图像帧)。也就是说,通过本申请实施例的方法,可以将电子设备的针对遥控输入事件的响应延迟缩短一个同步周期,可以提升电子设备的流畅性。例如:在用户使用遥控器操作电子设备的场景中,当用户按下遥控器的一个按键时,本申请实施例的方法,能够使电子设备更快显示该对应按键操作而生成的画面,使用户感觉电子设备运行速度快、反应灵敏。
结合第一方面,在一种可能的设计方式中,电子设备通过调整第一参数调整第一垂直同步信号的下一次产生时刻为第一时刻,第一参数第三垂直同步信号的前一次产生时刻与第一垂直同步信号的下一次产生时刻的时间间隔。
结合第一方面,在一种可能的设计方式中,电子设备通过调整第二参数调整第二垂直同步信号的下一次产生时刻为第三时刻,第二参数第三垂直同步信号的前一次产生时刻与第二垂直同步信号的下一次产生时刻的时间间隔。
结合第一方面,在一种可能的设计方式中,电子设备在对一个或多个第一图层渲染完成后,和/或,对渲染的一个或多个第一图层进行图层合成之后,恢复对第一垂直同步信号和第二垂直同步信号的调整。
第二方面,本申请提供一种电子设备,该电子设备包括显示屏、存储器和一个或多个处理器;显示屏、存储器和处理器耦合;存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当处理器执行计算机指令时,电子设备执行如第一方面及其任一种可能的设计方式的方法。
第三方面,本申请提供一种芯片系统,该芯片系统应用于包括显示屏的电子设备;芯片系统包括一个或多个接口电路和一个或多个处理器;接口电路和处理器通过线路互联;接口电路用于从电子设备的存储器接收信号,并向处理器发送信号,信号包括存储器中存储的计算机指令;当处理器执行计算机指令时,电子设备执行如第一方面及其任一种可能的设计方式的方法。
第四方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令,当计算机指令在电子设备上运行时,使得电子设备执行如第一方面及其任一种可能的设计方式的方法。
第五方面,本申请提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行如第一方面及其任一种可能的设计方式的方法。
可以理解地,上述提供的第二方面的电子设备,第三方面的芯片系统,第四方面的计算机存储介质,第五方面的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。
附图说明
图1a为本申请实施例提供的一种电子设备响应于遥控操作显示图像的软件处理流程示意图;
图1b为图1a所示的软件处理流程中的延迟示意图;
图1c为本申请实施例的应用场景图;
图2为本申请实施例提供的一种电子设备的硬件结构示意图;
图3为本申请实施例提供的一种图像处理流程示意图;
图4a为垂直同步信号1和垂直同步信号2与垂直同步信号3的默认延迟时间为零的示意图;
图4b为垂直同步信号1和垂直同步信号2与垂直同步信号3的默认延迟时间不为零的示意图;
图5a为目前一种基于垂直同步信号的图像处理方法原理示意图;
图5b为目前另一种基于垂直同步信号的图像处理方法原理示意图;
图6a为本申请实施例提供的一种基于垂直同步信号的图像处理方法流程图;
图6b为本申请实施例提供的一种基于垂直同步信号的图像处理方法流程图;
图7a为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图7b为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图8a为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图8b为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图9为本申请实施例提供的另一种基于垂直同步信号的图像处理方法流程图;
图10a为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图10b为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图11a为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图11b为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图12为本申请实施例提供的UI响应延迟的示意图;
图13a为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图13b为本申请实施例提供的另一种基于垂直同步信号的图像处理方法原理示意图;
图14为本申请实施例提供的获取第一预设帧长的流程图;
图15为本申请实施例提供的获取最近的UI响应延迟的示意图;
图16为本申请实施例提供的一种基于垂直同步信号的图像处理方法调整垂直同步信号1 的流程图;
图17为本申请实施例提供的绘制+渲染时长的示意图;
图18为本申请实施例提供的获取第二预设帧长的流程图;
图19本申请实施例提供的获取最近的绘制+渲染时长的示意图;
图20申请实施例提供的一种基于垂直同步信号的图像处理方法调整垂直同步信号2流程图;
图21申请实施例提供的一种垂直同步信号调整装置的结构组成示意图;
图22申请实施例提供的另一种电子设备响应于遥控操作显示图像的软件处理流程示意图;
图23请实施例提供的一种芯片系统的结构示意图。
具体实施方式
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
本申请实施例提供一种基于垂直同步信号的图像处理方法,该方法可以应用于包括外接输入设备(例如:遥控器、鼠标、外置绘图板、外置键盘等)的电子设备。具体的,该方法可以应用于电子设备响应于用户在外接输入设备的遥控输入操作,在显示屏显示图像的过程中。
其中,“用户向电子产品输入用户操作”到“电子产品显示该用户操作对应的图像”的延迟时间的长度。例如,上述用户操作可以是用户通过遥控器、鼠标或者按键等输入的操作;或者,上述用户操作可以是用户对触摸屏的触摸操作。上述延迟时间可以称为电子设备的响应延迟。例如,上述用户操作是遥控器操作的情况下,该延迟时刻可以称为遥控输入响应延迟。该遥控输入相应延迟是从“用户手指在遥控器上执行按键操作”到“显示屏显示该按键操作对应的图像”的延迟时间。
具体的,电子设备的响应延迟越长,电子设备的流畅性越差;电子设备的响应延迟越短,电子设备的流畅性越好。其中,电子设备的流畅性越好,用户通过用户操作(如在遥控器上按键操作)控制电子设备的使用体验越好,感觉越流畅。通过本申请实施例的方法,可以提高电子设备在一个同步周期完成图层的绘制、渲染和合成的可能性。从而可以缩短电子设备的响应延迟,提升电子设备的流畅性,提升用户体验。
请参考图1a,其以上述用户操作是遥控器操作为例,示出从“用户手指在遥控器上执行按键操作”到“显示屏显示该按键操作对应的图像”过程中,电子设备的软件处理流程示意图。如图1a所示,电子设备可以包括:操作系统(Operating System,OS)内核(Kernel)10、 Input框架(即Input Framework)20、UI框架(即UI Framework)30、Display框架(即Display Framework)40和硬件显示模块50。
如图1a所示,电子设备的软件处理流程可以包括以下步骤(1)-步骤(5)。
步骤(1):电子设备的蓝牙(红外)接收器接收遥控器的无线信号后,电子设备的操作系统内核10中的遥控器驱动向Event Hub上报相应的遥控输入事件。
步骤(2):Input框架20的Input Reader线程可以从Event Hub中读取遥控输入事件,然后向Input Dispatcher线程发送该遥控输入事件;由Input Dispatcher线程向UI框架30中的 UI线程(如DoFrame)上传该遥控输入事件。
步骤(3):UI框架30中的UI线程绘制该遥控输入事件对应的一个或多个图层;渲染线程(如DrawFrame)对一个或多个图层进行图层渲染。其中,遥控输入事件对应的一个或多个图层是指操作系统的前台应用程序根据遥控输入事件的具体内容(例如:向上、向下、返回、菜单等)产生应用程序UI变化时,需要绘制的变化后的UI所需的一个或多个图层。
步骤(4):Display框架40中的合成线程对绘制的一个或多个图层(即渲染后的一个或多个图层)进行图层合成得到图像帧。
步骤(5):硬件显示模块50的液晶显示面板(Liquid Crystal Display,LCD)驱动可接收合成的图像帧,使合成的图像帧显示到LCD上。LCD显示图像帧后,LCD显示的图像可被人眼感知。
本申请实施例这里通过分析“用户手指在遥控器上执行按键操作”到“显示屏显示该按键操作对应的图像被人眼感知”的过程中、电子设备的处理流程,对电子设备缩短响应延迟的原理进行简单说明。
其中,上述步骤(1)-(5)中,从电子设备的蓝牙(红外)接收器接收遥控器的无线信号,到Input框架20的Input Dispatcher线程接收到遥控输入事件的过程中,可能会存在图1b 所示的输入延迟;从Input框架20的Input Dispatcher线程接收到遥控输入事件到UI框架30 中的UI线程完成绘制遥控输入事件对应的一个或多个图层,可能会存在图1b所示的绘制延迟;从UI框架30中的UI线程完成绘制遥控输入事件对应的一个或多个图层到UI框架30 中的UI线程完成渲染遥控输入事件对应的一个或多个图层,可能存在图1b所示的渲染延迟;绘制延迟和渲染延迟可并称为绘制+渲染延迟;从UI框架30中的UI线程完成渲染遥控输入事件对应的一个或多个图层到Display框架40中的合成线程完成进行图层合成可能会存在图 1b所示的合成延迟;从Display框架40中的合成线程完成进行图层合成到硬件显示模块50 显示合成的图像帧,可能会存在图1b所示的送显延迟。
本申请实施例提供的一种基于垂直同步信号的图像处理方法,可以通过缩短图1b所示的“绘制+渲染延迟”和“合成延迟”,以缩短电子设备的响应延迟,提升电子设备的流畅性。
示例性的,如图1c所示,本申请实施例中的电子设备可以是大屏显示设备010(如智能电视)、手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR) 设备等包括显示屏并可以外接输入设备020(例如:遥控器、鼠标、外置绘图板、外置键盘等) 的电子设备,本申请实施例对该电子设备的具体形态不作特殊限制。
下面将结合附图对本申请实施例的实施方式进行详细描述。
请参考图2,为本申请实施例提供的一种电子设备200的结构示意图。如图2所示,电子设备200可以包括处理器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,以及用户标识模块(subscriber identification module,SIM)卡接口 295等。
其中,传感器模块280可以包括压力传感器280A,陀螺仪传感器280B,气压传感器280C,磁传感器280D,加速度传感器280E,距离传感器280F,接近光传感器280G,指纹传感器280H,温度传感器280J,触摸传感器280K,环境光传感器280L,以及骨传导传感器280M 等。
可以理解的是,本实施例示意的结构并不构成对电子设备200的具体限定。在另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,GPU,图像信号处理器(image signalprocessor, ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signalprocessor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210 中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
在一些实施例中,处理器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)接口等。
可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块240用于从充电器接收充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块 241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
移动通信模块250可以提供应用在电子设备200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。
无线通信模块260可以提供应用在电子设备200上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块260可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块260经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器210。无线通信模块260还可以从处理器210接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备200可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access, CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址 (time-division code division multiple access,TD-SCDMA),长期演进(long term evolution, LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system, GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统 (quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems, SBAS)。
电子设备200通过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)等。
其中,本申请实施例中的显示屏294可以是触摸屏。即该显示屏294中集成了触摸传感器280K。该触摸传感器280K也可以称为“触控面板”。也就是说,显示屏294可以包括显示面板和触摸面板,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器280K检测到的触摸操作后,可以由内核层的驱动传递给上层,以确定触摸事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于电子设备200的表面,与显示屏294所处的位置不同。
电子设备200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备200可以支持一种或多种视频编解码器。这样,电子设备200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备 200的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器221可以用于存储计算机可执行程序代码,可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备200的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
电子设备200可以通过音频模块270,扬声器270A,受话器270B,麦克风270C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。扬声器270A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器270B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风270C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口270D用于连接有线耳机。
压力传感器280A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280A可以设置于显示屏294。压力传感器280A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器280A,电极之间的电容改变。电子设备200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏294,电子设备200根据压力传感器280A检测触摸操作强度。电子设备200也可以根据压力传感器280A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。本申请实施例中,电子设备200可以通过压力传感器280A获取用户的触摸操作的按压力度。
按键290包括开机键,音量键等。按键290可以是机械按键。也可以是触摸式按键。电子设备200可以接收按键输入,产生与电子设备200的用户设置以及功能控制有关的键信号输入。马达291可以产生振动提示。马达291可以用于来电振动提示,也可以用于触摸振动反馈。指示器292可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。SIM卡接口295用于连接SIM卡。SIM卡可以通过插入SIM卡接口295,或从SIM卡接口295拔出,实现和电子设备200的接触和分离。电子设备200可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口295可以支持Nano SIM卡,Micro SIM卡,SIM卡等。
本申请实施例中,电子设备还配备有外接输入设备,例如:遥控器、鼠标、外置绘图板、外置键盘等。
其中,遥控器包括按键,例如开机键、音量键、上下键、菜单键、返回键和语音助手键等。按键可以是机械按键。也可以是触摸式按键。遥控器还包括有红外发射装置、当用户按下遥控器上的按键时,即构产生一个遥控输入事件,遥控器红外发射装置发送该遥控输入事件对应的红外信号。电子设备通过无线通信模块260接收红外信号,以接收到遥控输入事件。
其中,鼠标、外置绘图板、外置键盘等外接输入设备可以是有线设备或无线设备。当上述外接输入设备为有线设备时,可以线缆通过电子设备的接口(例如通用串行总线(universal serial bus,USB))建立有线连接。当上述外接输入设备为无线设备时,可以通过无线局域网 (wireless local area networks,WLAN)(如无线保真(wirelessfidelity,Wi-Fi)网络)、蓝牙 (bluetooth,BT)等与电子设备建立无线连接。
以下实施例中的方法均可以在具有上述硬件结构的电子设备200中实现。
以下对本申请实施例中涉及的术语进行介绍:
垂直同步信号1:如APP_VSYNC。该垂直同步信号1可以用于触发绘制一个或多个图层。需要注意的是,本申请实施例中“垂直同步信号1可以用于触发绘制一个或多个图层”具体是指:垂直同步信号1可以用于触发绘制一个或多个图层,并触发对该一个或多个图层进行渲染。即本申请实施例中,绘制的一个或多个图层是指渲染后的一个或多个图层。本申请实施例中,电子设备响应于垂直同步信号1,可以通过多个绘制线程中的每个绘制线程分别针对每个应用绘制一个或多个图层。即电子设备响应于垂直同步信号1,可以同时针对一个或多个应用执行绘制任务,以绘制每个应用对应的一个或多个图层。其中,上述一个或多个应用的详细描述可以参考以下实施例中的相关内容,本申请实施例这里不予赘述。
垂直同步信号2:如SF_VSYNC。该垂直同步信号2可以用于触发对绘制的一个或多个图层进行图层合成得到图像帧。
垂直同步信号3:如HW_VSYNC。该垂直同步信号3可以用于触发硬件刷新显示图像帧。
其中,本申请实施例中的垂直同步信号1(如APP_VSYNC)为第一垂直同步信号,垂直同步信号2(如SF_VSYNC)为第二垂直同步信号,垂直同步信号3(如HW_VSYNC)为第三垂直同步信号。
需要注意的是,在不同的系统或者架构中,垂直同步信号的名称可能不同。例如,在一些系统或者架构中,上述用于触发绘制一个或多个图层的垂直同步信号(即垂直同步信号1) 的名称可能不是APP_VSYNC。但是,无论垂直同步信号的名称是什么,只要是具备类似功能的同步信号,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
并且,在不同的系统或者架构中,对上述垂直同步信号的定义也可能不同。例如,在另一些系统或架构中,上述垂直同步信号1的定义可以为:垂直同步信号1可以用于触发渲染一个或多个图层;垂直同步信号2的定义可以为:垂直同步信号2可以用于触发根据一个或多个图层生成图像帧;垂直同步信号3的定义可以为:垂直同步信号3可以用于触发显示图像帧。本申请实施例中,对垂直同步信号的定义不作限定。但是,无论对垂直同步信号做何种定义,只要是具备类似功能的同步信号,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
结合图1a,响应于用户操作(例如,用户按下遥控器上的按键)或者电子设备发生其他遥控输入事件,UI框架可以在垂直同步信号1到来的时刻,调用UI线程绘制遥控输入事件对应的一个或多个图层,再调用渲染线程以对该一个或多个图层进行渲染。例如,用户操作还可以是用户对触摸屏的触摸操作。电子设备响应于用户对触摸屏的触摸操作,也可以通过本申请实施例的方法,提升电子设备的流畅性。然后,硬件合成(Hardware Composer,HWC) 可以在垂直同步信号2到来的时刻,调用合成线程对绘制的一个或多个图层(即渲染后的一个或多个图层)进行图层合成得到图像帧;最后,硬件显示模块可以在垂直同步信号3到来的时刻,在LCD(即显示屏,如上述显示屏294,此处以LCD为例)刷新显示上述图像帧。其中,上述UI事件可以是由用户对外接输入设备(例如:遥控器、鼠标、外置绘图板、外置键盘等)的按键操作触发的。或者,该UI事件可以是由电子设备自动触发的。例如,电子设备的前台应用自动切换画面时,可以触发上述UI事件。前台应用是电子设备的显示屏当前显示的界面对应的应用。
需要注意的是,UI框架是基于垂直同步信号1周期性的进行图层绘制和渲染的;硬件合成HWC是基于垂直同步信号2周期性的进行图层合成的;LCD是基于垂直同步信号3周期性的进行图像帧刷新的。
其中,垂直同步信号3是由电子设备的显示屏驱动触发的硬件信号。本申请实施例中,垂直同步信号3(如HW_VSYNC)的信号周期T3是根据电子设备的显示屏的屏幕刷新率确定的。具体的,垂直同步信号3的信号周期T3是电子设备的显示屏(如LCD)的屏幕刷新率的倒数。
例如,电子设备的显示屏的屏幕刷新率可以为60赫兹(Hz)、50Hz、90Hz或者120Hz等任一值。以屏幕刷新率是60Hz为例,上述垂直同步信号3的信号周期T3=1/60=0.01667秒 (s)=16.667毫秒(ms)。需要注意的是,其中,电子设备可能支持多个不同的屏幕刷新率。例如,假设电子设备支持的最大屏幕刷新率为120Hz。那么,该电子设备则可能支持屏幕刷新率90Hz、60Hz或者30Hz等。本申请实施例中的屏幕刷新率是电子设备当前所使用的屏幕刷新率。即垂直同步信号3的信号周期T3是电子设备当前所使用的屏幕刷新率的倒数。
需要注意的是,本申请实施例中的垂直同步信号3是周期性离散信号。例如,如图4a和图4b所示,每间隔一个信号周期(如T3)就会有一个由硬件驱动触发的垂直同步信号3,图 4a和图4b中多次出现的垂直同步信号3是按照垂直同步信号3的信号周期T3依次地到来。而垂直同步信号1和垂直同步信号2是基于垂直同步信号3产生的,即垂直同步信号3可以是垂直同步信号1和垂直同步信号2的信号源。
需要注意的是,垂直同步信号1和垂直同步信号2与垂直同步信号3可以同时产生,即垂直同步信号1和垂直同步信号2的信号周期与垂直同步信号3的信号周期相同,且相位一致。例如,如图4a所示,垂直同步信号1的信号周期T1,垂直同步信号2的信号周期T2和垂直同步信号3的信号周期T3相同。即T1=T2=T3。并且,如图5所示,垂直同步信号1、垂直同步信号2,以及垂直同步信号3的相位一致,即垂直同步信号1和垂直同步信号2和垂直同步信号3是同时产生的。
需要注意的是,垂直同步信号1和垂直同步信号2与垂直同步信号3可以不同时产生,即垂直同步信号1和垂直同步信号2的信号周期与垂直同步信号3的信号周期相同,但是垂直同步信号1和垂直同步信号2产生与垂直同步信号3之后,具体地,一个垂直同步信号3产生之后,经过一个延时之后,产生垂直同步信号1,再经过一个延时之后,产生垂直同步信号2。例如,如图4b所示,垂直同步信号1的信号周期T1、垂直同步信号2的信号周期T2 和垂直同步信号3的信号周期T3相同。即T1=T2=T3。并且,如图5所示,垂直同步信号3 产生于t13时刻,经过一个延时之后,垂直同步信号1产生于t11时刻,t11时刻落后于t13时刻的相位差为Δt1,再经过一个延时之后,垂直同步信号2产生于t12时刻,t12时刻落后于t13时刻的相位差为Δt2。垂直同步信号1落后于垂直同步信号3的相位差Δt1可以由预设的参数 (例如:phase_app)控制,即垂直同步信号1的产生时刻t11=垂直同步信号3的时刻t13+ phase_app;垂直同步信号2落后于垂直同步信号3的相位差Δt2可以由预设的参数(例如: phase_sf)控制,即垂直同步信号2的产生时刻t12=垂直同步信号3的时刻t13+phase_sf。
需要注意的是,在不同的系统或者架构中,用于控制Δt1和Δt2的参数的名称可能不同。例如,在一些系统或者架构中,上述用于控制Δt1的参数名称可能不是phase_app。但是,无论上述参数的名称是什么,只要是具备类似上述参数的功能,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
需要注意的是,上述垂直同步信号1和垂直同步信号2也是周期性离散信号。例如,如图4a和图4b所示,每间隔一个信号周期(如T1)就会有一个垂直同步信号1,每间隔一个信号周期(如T2)就会有一个垂直同步信号2,即图4a和图4b中多次出现的垂直同步信号 1是按照垂直同步信号1的信号周期T1依次地到来,图4a和图4b中多次出现的垂直同步信号2是按照垂直同步信号2的信号周期T2依次地到来。因此,上述垂直同步信号3、垂直同步信号1和垂直同步信号2都可以看做是周期性离散信号。
由于垂直同步信号1、垂直同步信号2和垂直同步信号3都是周期性信号;因此,本申请实施例的垂直同步信号到来(如垂直同步信号1到来),都是指该垂直同步信号的脉冲边缘到来;响应于垂直同步信号(如响应于垂直同步信号1),都是指响应于该垂直同步信号的脉冲边缘。例如,如图4a所示,t1时刻的垂直同步信号1到来,是指t1时刻垂直同步信号1的脉冲边缘到来;响应于t1时刻的垂直同步信号1,是指响应于t1时刻垂直同步信号1的脉冲边缘。
其中,上述脉冲边缘是一种从示波器或者观测系统中形象地观察到的脉冲的边缘。在不同系统中可能是上升沿或者下降沿或者二者都包括,在实际系统中上可以是通过定时器翻转、中断信号等方式实现。
本申请实施例中,上述垂直同步信号1、垂直同步信号2和垂直同步信号3的信号周期都可以称为同步周期TZ。即T1=T2=T3=TZ。也就是说,本申请实施例中的同步周期是电子设备的显示屏的屏幕刷新率的倒数。其中,图4a和图4b所示的Frame1、Frame2、Frame3和Frame4均为上述同步周期。例如,电子设备的显示屏的屏幕刷新率可以为60赫兹(Hz)、70Hz、75Hz或者80Hz等任一值。以屏幕刷新率可以是60Hz为例,上述同步周期 TZ=1/60=0.01667秒(s)=16.667毫秒(ms),即T1=T2=T3=TZ=16.667ms。
可以理解,由于绘制线程是基于垂直同步信号1进行图层绘制的,然后再由渲染线程进行图层渲染;合成线程是基于垂直同步信号2(如SF_VSYNC)进行图层合成的;因此,从电子设备检测到发生遥控输入事件,到电子设备进行图层的绘制、渲染和合成可能需要两个或者三个同步周期才能完成。其中,如图1a所示,本申请实施例中的电子设备检测到发生遥控输入事件是指在用户通过外接设备(例如:遥控器、鼠标、外置绘图板、外置键盘等)执行按键、触摸等操作的情况下,电子设备Input框架的Input Dispatcher线程接收到了该操作对应的遥控输入事件。
当垂直同步信号1和垂直同步信号2与垂直同步信号3同时产生时(如图4a所示),电子设备从检测到发生遥控输入事件,到电子设备进行图层的绘制、渲染和合成需要三个同步周期才能完成。
例如,如图5a所示,当电子设备的Input Dispatcher线程在Frame1内的t0时刻接收到遥控输入事件时,图层的绘制和渲染将由t2时刻产生的垂直同步信号1触发,在Frame2完成,而图像帧合成则由t3时刻产生的垂直同步信号2触发在Frame3完成。其中,图5a所示的 Frame1、Frame2、Frame3和Frame4分别对应一个同步周期。由此,从电子设备检测到发生遥控输入事件,到电子设备完成图层的绘制、渲染和合成,所消耗的时间涵盖了Frame1、Frame2和Frame3这三个同步周期。
当垂直同步信号1和垂直同步信号2与垂直同步信号3不是同时产生时(如图4b所示),电子设备从检测到发生遥控输入事件,到电子设备进行图层的绘制、渲染和合成同样需要三个同步周期才能完成。
例如,如图5b所示,当电子设备的Input Dispatcher线程在Frame1内的t0时刻接收到遥控输入事件时,由于t0时刻晚于t11时刻,因此电子设备错过了t11产生的垂直同步信号1,图层的绘制和渲染将由t21时刻产生的垂直同步信号1触发,在Frame2完成,而图像帧合成则由t3时刻产生的垂直同步信号2触发,根据图像帧合成所消耗的时长,图像帧合成可能在 Frame2完成,也可能在Frame3完成。其中,图5b所示的Frame1、Frame2、Frame3和Frame4分别对应一个同步周期。由此,从电子设备检测到发生遥控输入事件,由此,从电子设备检测到发生遥控输入事件,到电子设备完成图层的绘制、渲染和合成,所消耗的时间涵盖了Frame1、Frame2和Frame3这三个同步周期。
但是,如图5a和图5b所示,虽然电子设备从检测到发生遥控输入事件,到电子设备进行图层的绘制、渲染和合成需要两个到三个同步周期才能完成,如果电子设备进行图层绘制、渲染和合成的任一个步骤的时间超过一个同步周期,那么电子设备进行图层的绘制、渲染和合成可能需要四个或者更多同步周期才能完成。但是电子设备实际消耗在图层的绘制、渲染和合成的时间时小于两个周期,甚至小于一个周期的,而电子设备在其他时间则在等待垂直同步信号1和垂直同步信号2的到来,没有进行图层的绘制、渲染和合成,例如图5a中t0时刻-t2时刻,图5b中t0时刻-t21时刻。如此,则会造成电子设备的响应延迟不必要的延长,影响电子设备的流畅性。
需要补充说明的是,本申请实施例中涉及的图层的绘制、渲染和合成,是指操作系统的前台应用程序根据遥控输入事件的具体内容(例如:向上、向下、返回、菜单等)产生应用程序UI变化时,对变化后的UI所需的一个或者多个图层进行绘制、渲染和合成。其他不响应于遥控输入事件的应用程序(例如:后台应用、状态栏等)可能进行的图层绘制、渲染和合成过程由于对用户的使用体验影响不大或者没有影响,不在本申请实施例的讨论范围内。
本申请实施例提供的一种基于垂直同步信号的图像处理方法的执行主体可以是生成图像帧的装置。该生成图像帧的装置可以是上述电子设备中的任一种(例如,生成图像帧的装置可以为图2所示的电子设备200)。或者,该生成图像帧的装置还可以为电子设备的CPU、 GPU、NPU或者其他芯片或芯片系统,或者电子设备中的用于执行基于垂直同步信号的图像处理方法的控制模块。本申请实施例中以电子设备执行基于垂直同步信号的图像处理方法为例,说明本申请实施例提供的基于垂直同步信号的图像处理方法。
以下实施例中,以第一垂直同步信号是上述垂直同步信号1(如APP_VSYNC信号),第二垂直同步信号是上述垂直同步信号2(如SF_VSYNC信号),第三垂直同步信号是上述垂直同步信号3(如HW_VSYNC信号)为例,对本申请实施例的方法进行说明。
实施例(一)
本申请实施例提供了一种基于垂直同步信号的图像处理方法。如图6a所示,该基于垂直同步信号的图像处理方法可以包括步骤S401-S402。
步骤S401,电子设备检测到发生遥控输入事件时,调整垂直同步信号1的下一次信号发生时刻为遥控输入事件的发生时刻之后的第二时刻,第二时刻早于第一时刻。
步骤S402,电子设备响应于垂直同步信号1,绘制一个或者多个第一图层,并渲染一个或多个第一图层。
其中,如图1a所示,本申请实施例中的电子设备检测到发生遥控输入事件是指在用户通过外接设备(例如:遥控器、鼠标、外置绘图板、外置键盘等)执行按键、触摸等操作的情况下,电子设备Input框架的Input Dispatcher线程接收到了该操作对应的遥控输入事件。与Input Dispatcher线程接收到遥控输入事件对应地,本申请实施例中的遥控输入事件的发生时刻指的是Input Dispatcher线程接收到遥控输入事件的时刻。
其中,本申请实施例中的第一时刻是指在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号1的发生时刻,使垂直同步信号1按照其原有的同步周期Tz产生时,垂直同步信号1的下一次产生时刻。
在一些实施例中,垂直同步信号1相对于垂直同步信号3的默认延迟时间为零,即垂直同步信号1和垂直同步信号3的相位差Δt1=0,垂直同步信号1与垂直同步信号3同时产生。例如,如图4a所示,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间为零,相位差为零。其中,在垂直同步信号1的信号周期T1、垂直同步信号2的信号周期T2 与垂直同步信号3的信号周期T3相同(即T1=T2=T3=TZ)的前提下,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间为零,具体可以为:在一个垂直同步信号3到来的同时,也会有一个垂直同步信号1和一个垂直同步信号2到来。
那么,如图5a所示,当垂直同步信号1相对于垂直同步信号3的延迟时间为零时,如果 Input Dispatcher线程在t0时刻接收到遥控输入事件,则第一时刻为t2;如果InputDispatcher 线程在t2-t3之间的某个时刻接收到遥控输入事件,则第一时刻为t3。
一般而言,电子设备(即电子设备的UI线程和渲染线程)是基于垂直同步信号1进行一个或多个第一图层的绘制和渲染的,即使电子设备监测到发生了遥控输入事件(即Input Dispatcher线程接收到遥控输入事件),但是如果没有检测到垂直同步信号1,电子设备也不会开始绘制和渲染一个或多个第一图层,而是一定要等到垂直同步信号1下一次到来的时刻 (即第一时刻)才会进行图层的绘制和渲染。
一般而言,电子设备(即电子设备的HWC)是基于垂直同步信号2进行图层合成的。也就是说,即使电子设备(即电子设备的UI线程和渲染线程)已经完成一个或多个第一图层的渲染,但是如果没有检测到垂直同步信号2,HWC是不会进行对渲染的一个或多个第一图层进行图层合成的。HWC只会在垂直同步信号2的时刻到来时进行图层合成以得到图像帧。
例如,如图5a所示,即使电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件,但是在t0时刻之后的t2时刻(即第一时刻),下一个垂直同步信号1才到来,因此电子设备响应与t2时刻(即第一时刻)的垂直同步信号1,才会开始执行绘制和渲染图层(即执行图5a中的“绘制+渲染”)。也就是说,电子设备需要等待图5a所示的Δt3的时间长度,才会执行绘制和渲染图层。
又例如,如图5a所示,即使电子设备在t6时刻就已经完成了图层的绘制和渲染,但是在 t6时刻之后的t3时刻,垂直同步信号2才到来,因此电子设备响应于t3时刻的垂直同步信号 2,才会开始进行图层合成(即执行图5a中的“图像帧合成”),得到第一图像帧。也就是说,电子设备需要等待图5a所示的Δt4的时间长度,才会执行图像帧合成。
如此,从电子设备监测到发生了遥控输入事件(即Input Dispatcher线程接收到遥控输入事件)到电子设备完成图层的绘制、渲染和合成需要消耗三个同步周期。例如,如图5a中,电子设备监测到发生了遥控输入事件是在同步周期Frame1中完成,电子设备执行“绘制+渲染”是在同步周期Frame2中完成,电子设备执行“图像帧合成”是在同步周期Frame3中完成。由此,从电子设备监测到发生了遥控输入事件,到电子设备完成图层的绘制、渲染和合成,所消耗的时间横跨了Frame1、Frame2和Frame3这三个同步周期。。
而本申请实施例中,当电子设备检测到发生遥控输入事件时,调整垂直同步信号1的下一次发生时刻至早于第一时刻的第二时刻,使下一个垂直同步信号1在第二时刻到来。由此,电子设备在检测到发生遥控输入事件之后,可以响应于第二时刻的垂直同步信号1,执行一个或多个第一图层的绘制和渲染。也就是说,电子设备可以在第一时刻之前就执行一个或多个第一图层的绘制和渲染,不需要等待Δt3的时间长度。
例如,如图7a所示,当电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件时,电子设备调整垂直同步信号1的下一次发生时刻到ta1时刻,ta1时刻早于t1时刻,使下一个垂直同步信号1会在ta1时刻到来。由此,当电子设备在t0时刻接收到了遥控输入事件时,电子设备响应于ta1时刻到来的垂直同步信号1,执行图层的绘制和渲染(即:图7a中的“绘制+渲染”)。相比于图5a中电子设备响应于t2时刻到来的垂直同步信号1,执行图层的绘制和渲染,图7a中电子设备执行图层的绘制和渲染的时间从t2提前到ta1。
在一些实施例中,垂直同步信号1相对于垂直同步信号3的默认延迟时间不为零,即垂直同步信号1和垂直同步信号3的相位差Δt1>0,垂直同步信号1滞后与垂直同步信号3产生。例如,如图4b所示,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间不为零,相位差不为零。具体可以为:在一个垂直同步信号3到来的同时,经过一个延时之后,会有一个垂直同步信号1到来,再经过一个延时之后,会有一个垂直同步信号2到来。
那么,如图5b所示,当垂直同步信号1相对于垂直同步信号3的延迟时间不为零时,如果Input Dispatcher线程在t0时刻接收到遥控输入事件,则第一时刻为t21,即下一个垂直同步信号1会在t21时刻到来;如果Input Dispatcher线程在t21-t31之间的某个时刻接收到遥控输入事件,则第一时刻为t31,即下一个垂直同步信号1会在t31时刻到来。
例如,如图5b所示,即使电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件,但是在t0时刻之后的t21时刻(即第一时刻),下一个垂直同步信号1才到来,因此电子设备响应与t21时刻(即第一时刻)的垂直同步信号1,才会开始执行绘制和渲染图层(即执行图5b中的“绘制+渲染”)。也就是说,电子设备需要等待图5b所示的Δt5的时间长度,才会执行绘制和渲染图层。
又例如,如图5b所示,即使电子设备在t7时刻就已经完成了图层的绘制和渲染,但是在 t7时刻之后的t22时刻,垂直同步信号2才到来,因此电子设备响应于t22时刻的垂直同步信号 2,才会开始进行图层合成(即执行图5b中的“图像帧合成”),得到第一图像帧。也就是说,电子设备需要等待图5b所示的Δt6的时间长度,才会执行图像帧合成。
如此,从电子设备监测到发生了遥控输入事件(即Input Dispatcher线程接收到遥控输入事件)到电子设备完成图层的绘制、渲染和合成需要消耗三个同步周期。例如,如图5b中,电子设备监测到发生了遥控输入事件是在同步周期Frame1中完成,电子设备执行“绘制+渲染”是在同步周期Frame2中完成,电子设备执行“图像帧合成”是在同步周期Frame3中完成,由此,图5b中,从电子设备在t0时刻监测到发生了遥控输入事件,到电子设备完成图层的绘制、渲染和合成总共消耗了Frame1、Frame2和Frame3这三个同步周期。
而本申请实施例中,当电子设备检测到发生遥控输入事件时,调整垂直同步信号1的下一次发生时刻至早于第一时刻的第二时刻,使下一个垂直同步信号1在第二时刻到来。由此,电子设备在检测到发生遥控输入事件之后,可以响应于第二时刻的垂直同步信号1,执行一个或多个第一图层的绘制和渲染。也就是说,电子设备可以在第一时刻之前就执行一个或多个第一图层的绘制和渲染,不需要等待Δt5的时间长度。
例如,如图7b所示,当电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件时,电子设备调整垂直同步信号1的下一次发生时刻到ta1时刻,ta1时刻早于t21时刻,使下一个垂直同步信号1会在ta1时刻到来。由此,当电子设备在t0时刻接收到了遥控输入事件时,电子设备响应于ta1时刻到来的垂直同步信号1,执行图层的绘制和渲染(即:图7a中的“绘制+渲染”)。相比于图5b中电子设备响应于t21时刻到来的垂直同步信号1,执行图层的绘制和渲染,图7b中电子设备执行图层的绘制和渲染的时间从t21时刻提前到ta1时刻。
进一步地,如图6b所示,本申请实施例提供的方法还包括:
步骤S403,电子设备在一个或多个第一图层渲染完成后,对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧。
本申请实施例中,电子设备不需要等待垂直同步信号2,在响应于垂直同步信号1,绘制并渲染一个或多个第一图层渲染后,即在一个或多个第一图层渲染完成后,便可以立即开始对渲染的第一图层进行图层合成,以得到第一图像帧。也就是说,电子设备可以提前对渲染的第一图层进行图层合成。
如图7a所示,当垂直同步信号1相对于垂直同步信号3的默认延迟时间为零时,电子设备响应于调整后的ta1时刻的垂直同步信号1,执行图层的绘制和渲染,并在t6’时刻完成图层的渲染之后,便可以开始对渲染的图层进行合成(即:图7a中的“图像帧合成”)。即电子设备不需要等待t2时刻的垂直同步信号2的到来,便可以开始执行“图像帧合成”。相比于图5a 中电子设备响应于t3时刻到来的垂直同步信号2,执行图层的合成,图7a中电子设备执行图层的合成的时间从t3提前到t6’。
如图7b所示,当垂直同步信号1相对于垂直同步信号3的默认延迟时间不为零时,如图 7b所示,当电子设备响应于调整后的ta1时刻的垂直同步信号1,执行图层的绘制和渲染,并在t7’时刻完成图层的渲染之后,便可以开始对渲染的图层进行合成(即:图7b中的“图像帧合成”)。即电子设备不需要等待t22时刻的垂直同步信号2的到来,便可以开始执行“图像帧合成”。相比于图5b中电子设备响应于t22时刻到来的垂直同步信号2,执行图层的合成,图 7b中电子设备执行图层的合成的时间从t22提前到t7’。
由此,对比图5a和图7a,以及,图5b和图7b可知,本申请实施例提供的方法,可以应用在垂直同步信号1相对于垂直同步信号3的默认延迟时间为零,以及,垂直同步信号1相对于垂直同步信号3的默认延迟时间不为零这两种场景中,并可以将电子设备从检测到发生遥控输入事件到完成绘制、渲染和合成遥控输入事件对应的图像帧(例如第一图像帧)所消耗的时长缩短至少一个同步周期。例如,如图5a和图5b所示,电子设备在同步周期Frame1检测到遥控输入事件,在同步周期Frame3完成图像帧的合成,即消耗了3个同步周期;而本申请实施例如图7a和图7b所示,电子设备在同步周期Frame1检测到遥控输入事件,在同步周期Frame2就能够完成图像帧的合成,只消耗了2个同步周期。
需要注意的是,在上述一个或多个第一图层仅包括一个第一图层的情况下,电子设备对这个一个第一图层进行图层合成,具体可以包括:电子设备对这一个第一图层进行格式转换,将这一个第一图层转换为第一图像帧。在上述一个或多个第一图层包括多个第一图层的情况下,电子设备对该多个第一图层进行图层合成,具体可以包括:电子设备对该多个第一图层进行图层合成,得到第一图像帧。
示例性的,S403中,电子设备对渲染的一个或多个第一图层进行图层合成以得到第一图像帧,具体可以包括:渲染线程完成一个或多个第一图层的渲染后,可以调用合成线程对渲染的一个或多个第一图层进行图层合成以得到第一图像帧;或者,渲染线程完成一个或多个第一图层的渲染后,向合成线程发送指示消息,以触发合成线程对渲染的一个或多个第一图层进行图层合成以得到第一图像帧;或者,合成线程可以在检测到渲染线程完成一个或多个第一图层的渲染时,对渲染的一个或多个第一图层进行图层合成以得到第一图像帧。
可以理解的是,电子设备可以在S402完成一个或多个第一图层的渲染后,立即执行S403,对渲染的一个或多个第一图层进行图层合成。或者,S402中,电子设备在完成一个或多个第一图层的渲染后,可以在一定的延迟时间后执行S403,对渲染的一个或多个第一图层进行图层合成。也就是说,在实际实施过程中,电子设备执行图层渲染和图层合成之间可以存在一定的延迟。
步骤S404,响应于垂直同步信号3,电子设备刷新显示第一图像帧。
如图7a所示,在t3时刻,一个垂直同步信号3到来,响应于t3时刻的垂直同步信号3,电子设备可以刷新显示执行“图像帧合成”得到的图像帧(如第一图像帧),即执行“图像帧显示”。由此,电子设备在遥控输入事件发生之后,在显示屏刷新显示出对应遥控输入事件的图像帧(如第一图像帧)。
如图7b所示,在t33时刻,一个垂直同步信号3到来,响应于t33时刻的垂直同步信号3,电子设备可以刷新显示执行“图像帧合成”得到的图像帧(如第一图像帧),即执行“图像帧显示”。由此,电子设备在遥控输入事件发生之后,在显示屏刷新显示出对应遥控输入事件的图像帧(如第一图像帧)。
由此,采用本申请实施例的方法,当电子设备在检测到发生遥控输入事件时,电子设备可以提前一个同步周期刷新显示对应遥控输入事件的图像帧(例如第一图像帧)。也就是说,通过本申请实施例的方法,可以将电子设备的针对遥控输入事件的响应延迟缩短一个同步周期,可以提升电子设备的流畅性。例如:在用户使用遥控器操作电子设备的场景中,当用户按下遥控器的一个按键时,本申请实施例的方法,能够使电子设备更快显示该对应按键操作而生成的画面,使用户感觉电子设备运行速度快、反应灵敏。
需要注意的是,电子设备消耗在绘制一个或者多个第一图层,并渲染一个或多个第一图层的时长(即电子设备绘制并渲染图层的速度),以及消耗在对渲染的一个或多个第一图层进行图层合成的时长(即电子设备进行图层合成的速度),与电子设备的系统负载(例如CPU负载、GPU负载)、运算能力(例如:CPU的每个线程计算能力、GPU的浮点运算能力等)、图层的数量和质量(例如分辨率、色位深度、图层纹理的复杂程度等)有关。一般来说:电子设备的系统负载越低,绘制并渲染图层的速度,以及进行图层合成的速度越快;电子设备的运算能力越强,绘制并渲染图层的速度,以及进行图层合成的速度越快;图层的数量越少,电子设备绘制并渲染图层的速度,以及进行图层合成的速度越快;图层质量越低,电子设备绘制并渲染图层的速度,以及进行图层合成的速度越快。
综合上述描述,电子设备在一些场景中,执行本申请实施例的S401-S403,可以将电子设备从检测到发生遥控输入事件到完成绘制、渲染和合成遥控输入事件对应的图像帧(例如第一图像帧)所消耗的时长缩短两个同步周期。
例如,如图8a所示,当垂直同步信号1相对于垂直同步信号3的默认延迟时间为零时,电子设备在t0时刻检测到遥控输入事件,在t8”时刻完成了“图像帧合成”,即电子设备从检测到遥控输入事件,到完成“绘制+渲染”“图像帧合成”仅消耗了一个同步周期(即Frame1)。由此,电子设备可以在t2时刻执行“图像帧显示”,使显示屏在同步周期Frame2内显示对应遥控输入事件的图像帧(例如第一图像帧)。
例如,如图8b所示,当垂直同步信号1相对于垂直同步信号3的默认延迟时间不为零时,电子设备在t0时刻检测到遥控输入事件,在t9”时刻完成了“图像帧合成”,即电子设备从检测到遥控输入事件,到完成“绘制+渲染”“图像帧合成”仅消耗了一个同步周期(即Frame1)。由此,电子设备可以在t23时刻执行“图像帧显示”,使显示屏在同步周期Frame2内显示对应遥控输入事件的图像帧(例如第一图像帧)。
对比图8a和图5a,以及,对比8b和图5b可知:采用本申请实施例的方法,当电子设备在检测到发生遥控输入事件时,电子设备可以提前两个同步周期刷新显示对应遥控输入事件的图像帧(例如第一图像帧)。也就是说,通过本申请实施例的方法,可以将电子设备的针对遥控输入事件的响应延迟缩短两个同步周期,可以提升电子设备的流畅性。
实施例(二)
本申请实施例提供了一种基于垂直同步信号的图像处理方法。如图9所示,该基于垂直同步信号的图像处理方法在实施例(一)的步骤S401和S402的基础上,还可以包括步骤S501 和S502,因此,有关本申请实施例(二)未公开的技术细节,可以参照本申请的实施例(一) 实施。
步骤S501,电子设备调整垂直同步信号2的下一次信号发生时刻为第二时刻之后的第三时刻,第三时刻早于第四时刻。
步骤S502,电子设备在一个或多个第一图层渲染完成后,响应于垂直同步信号2,对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧。
其中,本申请实施例中的第四时刻是指在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号2的发生时刻,使垂直同步信号2按照其原有的同步周期Tz产生时,垂直同步信号2在第一时刻之后的下一次产生时刻。
在一些实施例中,垂直同步信号2相对于垂直同步信号3的默认延迟时间为零,即垂直同步信号2和垂直同步信号3的相位差Δt2=0,垂直同步信号2与垂直同步信号3同时产生。例如,如图5a所示,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间为零,相位差为零。其中,在垂直同步信号1的信号周期T1、垂直同步信号2的信号周期T2 与垂直同步信号3的信号周期T3相同(即T1=T2=T3=TZ)的前提下,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间为零,具体可以为:在一个垂直同步信号3到来的同时,也会有一个垂直同步信号1和一个垂直同步信号2到来。
那么,如图5a所示,当垂直同步信号2相对于垂直同步信号3的默认延迟时间为零时,如果Input Dispatcher线程在t0时刻接收到遥控输入事件,则第一时刻为t2,第四时刻为t3;如果Input Dispatcher线程在t2-t3之间的某个时刻接收到遥控输入事件,则第一时刻为t3,第四时刻为t4。
一般而言,电子设备(即电子设备的HWC)是基于垂直同步信号2进行图层合成的。也就是说,即使电子设备(即电子设备的UI线程和渲染线程)已经完成一个或多个第一图层的渲染,但是如果没有检测到垂直同步信号2,HWC是不会进行对渲染的一个或多个第一图层进行图层合成的。HWC只会在垂直同步信号2的时刻到来时进行图层合成以得到图像帧。
例如,如图5a所示,即使电子设备在t6时刻就已经完成了图层的绘制和渲染,但是在t6时刻之后的t3时刻,垂直同步信号2才到来,因此电子设备响应于t3时刻的垂直同步信号2,才会开始进行图层合成(即执行图5a中的“图像帧合成”),得到第一图像帧。也就是说,电子设备需要等待图5a所示的Δt4的时间长度,才会执行图像帧合成。
而本申请实施例中,当电子设备检测到发生遥控输入事件时,调整垂直同步信号2的下一次产生时刻至早于第四时刻的第三时刻,使第二时刻之后的下一个垂直同步信号2在第三时刻到来。由此,电子设备在检测到发生遥控输入事件之后,可以响应于第三时刻的垂直同步信号2,执行一个或多个第一图层的合成。也就是说,电子设备可以在第四时刻之前就执行一个或多个第一图层的合成,不需要等待Δt4的时间长度。
例如,如图10a所示,当电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件时,电子设备调整垂直同步信号2的下一次发生时刻到ta2时刻,ta2时刻早于t3时刻,使ta1时刻之后的下一个垂直同步信号2会在ta2时刻到来。由此,当电子设备在t0时刻接收到了遥控输入事件时,电子设备响应于ta1时刻到来的垂直同步信号1,执行图层的绘制和渲染(即:图10a中的“绘制+渲染”),并在图层的绘制和渲染完成之后,响应ta2时刻到来的垂直同步信号2,执行图层的合成(即:图10a中的“图像帧合成”),以得到图像帧(例如第一图像帧)。相比于图5a中电子设备响应于t2时刻到来的垂直同步信号1,执行图层的绘制和渲染,以及响应于t3时刻到来的垂直同步信号2,执行图层的合成,图10a中电子设备执行图层的绘制和渲染的时间从t2之前到ta1,执行图层合成的时间从t3提前到ta2。
在一些实施例中,垂直同步信号2相对于垂直同步信号3的默认延迟时间不为零,即垂直同步信号2和垂直同步信号3的相位差Δt2>0,垂直同步信号2滞后与垂直同步信号3产生。例如,如图4b所示,垂直同步信号1、垂直同步信号2相对于垂直同步信号3的延迟时间不为零,相位差不为零。具体可以为:在一个垂直同步信号3到来的同时,经过一个延时之后,会有一个垂直同步信号1到来,再经过一个延时之后,会有一个垂直同步信号2到来。
那么,如图5b所示,当垂直同步信号2相对于垂直同步信号3的延迟时间不为零时,如果Input Dispatcher线程在t0时刻接收到遥控输入事件,则第一时刻为t21,第四时刻为t22;如果Input Dispatcher线程在t21-t31之间的某个时刻接收到遥控输入事件,则第一时刻为t31,第四时刻为t34。
例如,如图5b所示,即使电子设备在t7时刻就已经完成了图层的绘制和渲染,但是在t7时刻之后的t22时刻,垂直同步信号2才到来,因此电子设备响应于t22时刻的垂直同步信号2,才会开始进行图层合成(即执行图5b中的“图像帧合成”),得到第一图像帧。也就是说,电子设备需要等待图5b所示的Δt6的时间长度,才会执行图像帧合成。
而本申请实施例中,当电子设备检测到发生遥控输入事件时,调整垂直同步信号2的下一次产生时刻至早于第四时刻的第三时刻,使第二时刻之后的下一个垂直同步信号2在第三时刻到来。由此,电子设备在检测到发生遥控输入事件之后,可以响应于第三时刻的垂直同步信号2,执行一个或多个第一图层的合成。也就是说,电子设备可以在第四时刻之前就执行一个或多个第一图层的合成,不需要等待Δt6的时间长度。
例如,如图10b所示,当电子设备的Input Dispatcher线程在t0时刻接收到了遥控输入事件时,电子设备调整垂直同步信号2的下一次发生时刻到ta2时刻,ta2时刻早于t22时刻,使 ta1时刻之后的下一个垂直同步信号2会在ta2时刻到来。由此,当电子设备在t0时刻接收到了遥控输入事件时,电子设备响应于ta1时刻到来的垂直同步信号1,执行图层的绘制和渲染(即:图10b中的“绘制+渲染”),并在图层的绘制和渲染完成之后,响应ta2时刻到来的垂直同步信号2,执行图层的合成(即:图10b中的“图像帧合成”),以得到图像帧(如第一图像帧)。相比于图5b中电子设备响应于t21时刻到来的垂直同步信号1,执行图层的绘制和渲染,以及响应于t22时刻到来的垂直同步信号2,执行图层的合成,图10b中电子设备执行图层的绘制和渲染的时间从t21之前到ta1,执行图层合成的时间从t22提前到ta2。
由此,对比图5a和图10a,以及,图5b和图10b可知,本申请实施例提供的方法,可以应用在垂直同步信号1和垂直同步信号2相对于垂直同步信号3的默认延迟时间为零,以及,垂直同步信号1和垂直同步信号2相对于垂直同步信号3的默认延迟时间不为零这两种场景中,并可以将电子设备从检测到发生遥控输入事件到完成绘制、渲染和合成遥控输入事件对应的图像帧(例如第一图像帧)所消耗的时长缩短至少一个同步周期。例如,如图5a和图5b 所示,电子设备在同步周期Frame1检测到遥控输入事件,在同步周期Frame3完成图像帧的合成,即消耗了3个同步周期;而本申请实施例如图10a和图10b所示,电子设备在同步周期Frame1检测到遥控输入事件,在同步周期Frame2就能够完成图像帧的合成,只消耗了2个同步周期。
需要注意的是,由于电子设备消耗在绘制一个或者多个第一图层,并渲染一个或多个第一图层的时长,以及进行图层合成的时长与电子设备的系统负载、运算能力、图层的数量和质量有关。因此,在一些场景中,如果电子设备有能力在一个同步周期内完成图层的绘制、渲染和合成过程。在这种情况下,如果执行本申请实施例的S401-S402和S501-S502,还可能将电子设备从检测到发生遥控输入事件到完成绘制、渲染和合成遥控输入事件对应的图像帧 (例如第一图像帧)所消耗的时长缩短两个同步周期。
例如,如图11a所示,电子设备在t0时刻检测到遥控输入事件,在t8”时刻完成了“图像帧合成”,即电子设备从检测到遥控输入事件,到完成“绘制+渲染”“图像帧合成”仅消耗了一个同步周期(即Frame1)。由此,电子设备可以在t2时刻执行“图像帧显示”,使显示屏在同步周期Frame2内显示对应遥控输入事件的图像帧(例如第一图像帧)。
例如,如图11b所示,电子设备在t0时刻检测到遥控输入事件,在t9”时刻完成了“图像帧合成”,即电子设备从检测到遥控输入事件,到完成“绘制+渲染”“图像帧合成”仅消耗了一个同步周期(即Frame1)。由此,电子设备可以在t23时刻执行“图像帧显示”,使显示屏在同步周期Frame2内显示对应遥控输入事件的图像帧(例如第一图像帧)。
对比图11a和图5a,以及,对比图11b和图5b可知:采用本申请实施例的方法,当电子设备在检测到发生遥控输入事件时,电子设备可以提前两个同步周期刷新显示对应遥控输入事件的图像帧(例如第一图像帧)。也就是说,通过本申请实施例的方法,可以将电子设备的针对遥控输入事件的响应延迟缩短两个同步周期,可以提升电子设备的流畅性。
对比本申请实施例(一)和实施例(二)可知,申请实施例(一)和实施例(二)提供的基于垂直同步信号的图像处理方法的区别在于:本申请实施例(一)提供的方法,电子设备在检测到发生遥控输入事件时,只调整垂直同步信号1的产生时刻(例如调整至第一时刻之前的第二时刻),使电子设备响应于调整后产生的垂直同步信号1,绘制一个或者多个第一图层,并渲染一个或多个第一图层,并且,在一个或多个第一图层渲染完成后,无需等待垂直同步信号2,直接对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧;本申请实施例(二)提供的方法,电子设备在检测到发生遥控输入事件时,不仅调整垂直同步信号1的产生时刻(例如调整至第一时刻之前的第二时刻),还调整垂直同步信号2的产生时刻(例如调整至第四时刻之前的第三时刻),使电子设备响应于调整后产生的垂直同步信号1,绘制一个或者多个第一图层,并渲染一个或多个第一图层,并且,在一个或多个第一图层渲染完成后,响应于调整后产生的垂直同步信号2,对渲染的一个或多个第一图层进行图层合成,以得到第一图像帧。由此,本申请实施例(一)和实施例(二)提供的方法,虽然实现方式不同,但是均能够缩短从电子设备检测到遥控输入事件到完成图层的绘制、渲染和合成所消耗的时间,提升电子设备的流畅性。例如:在用户使用遥控器操作电子设备的场景中,当用户按下遥控器的一个按键时,本申请实施例的方法,能够使电子设备更快显示该对应按键操作而生成的画面,使用户感觉电子设备运行速度快、反应灵敏。
实施例(三)
本申请实施例,对=步骤S401中的“电子设备检测到发生遥控输入事件时,调整垂直同步信号1的下一次信号发生时刻为遥控输入事件的发生时刻之后的第二时刻”中的第二时刻的具体方法进行说明。
一般而言,如图1a所示,电子设备的Input框架20的Input Dispatcher线程接收到Input Reader线程上报的遥控输入事件(即电子设备检测到遥控输入事件)之后,InputDispatcher 线程将该遥控输入事件上报给UI框架30中的UI线程(如DoFrame),UI线程接收到Input Dispatcher线程上报的遥控输入事件后,请求并等待垂直同步信号1(UI线程请求垂直同步信号1的时刻即认为是电子设备响应遥控输入事件的时刻),并在垂直同步信号1到来时,触发 UI线程绘制该遥控输入事件对应的一个或多个图层,以及渲染线程(如DrawFrame)对一个或多个图层进行图层渲染。在上述过程中,如图12所示,从InputDispatcher线程接收到遥控输入事件的时刻t0到Input Dispatcher线程向UI线程上报该遥控输入事件的时刻ts1可能存在一个延迟(如图12中的第一延迟),从Input Dispatcher线程向UI线程上报该遥控输入事件的时刻ts1到UI线程接收到该遥控输入事件的时刻tr1可能存在一个延迟(如图12中的第二延迟),从UI线程接收到该遥控输入事件的时刻tr1到UI线程请求垂直同步信号1的时刻tr2可能存在一个延迟(如图12中的第三延迟),因此,从InputDispatcher线程接收到遥控输入事件的时刻t0到UI线程请求垂直同步信号1的时刻tr2可能存在一个延迟(如图12中的UI 响应延迟),该延迟可以为第一延迟、第二延迟和第三延迟之和。同时,容易理解的是,由于不同软件系统或硬件系统对遥控输入事件的处理机制可能不同,因此UI响应延迟的组成可能有所不同,但都可以适用于本申请的技术构思,不申请对UI响应延迟的其他组成形式不再具体赘述,能够在此处应用的设计和构思均没有超出本申请的保护范围。
可以理解的是,如图12所示,由于电子设备从Input Dispatcher线程接收到遥控输入事件的时刻t0到UI线程请求垂直同步信号1的时刻tr2可能存在UI响应延迟,因此,如果垂直同步信号1在t0时刻至tr2时刻之间到来,由于UI线程还没有请求垂直同步信号1(即UE进程还没有准备好绘制该遥控输入事件对应的一个或多个图层),因此UI线程不会绘制该遥控输入事件对应的一个或多个图层,即UI线程错过了该垂直同步信号1。如果垂直同步信号1 在tr2时刻之后到来,由于UI线程tr2时刻请求并开始等待垂直同步信号1,因此UI线程能够响应于该垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层。
根据上述描述内容,本申请实施例中为了使电子设备检测到发生遥控输入事件时,调整至第二时刻产生的垂直同步信号1不被UI线程错过(即UI线程能够响应于第二时刻到来的垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层),第二时刻与发生遥控输入事件的时刻(如t0时刻)的时间间隔需要大于图12中的UI响应延迟,以使第二时刻晚于 UI线程请求垂直同步信号1的时刻,保证UI线程能够响应于第二时刻产生的垂直同步信号 1,执行绘制该遥控输入事件对应的一个或多个图层。
需要注意的是,电子设备在每一次检测到的遥控输入事件时,UI响应延迟都是不确定的。也就是说,当电子设备检测到一次遥控输入事件时,电子设备事先并不知道需要经过多少的时间,UI线程才会请求垂直同步信号1,因此,电子设备无法通过直接获取UI响应延迟的方式确定第二时刻。例如,电子设备对遥控输入事件的UI响应延迟可以与电子设备的系统负载 (例如CPU负载、I/O负载)、运算能力(例如:CPU的每个线程计算能力)等有关。一般来说:电子设备的系统负载越低,UI响应延迟越短,电子设备的系统负载越高,UI响应延迟越长;电子设备的运算能力越强,UI响应延迟越短,电子设备的运算能力越弱,UI响应延迟越长。
综合上述描述,本申请实施例中,为了使第二时刻晚于UI线程请求垂直同步信号1的时刻,保证UI线程能够响应于第二时刻产生的垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层,定义了一个与UI响应延迟相关的参数,如第一预设帧长。其中,第一预设帧长可以基于电子设备在当前时刻之前的一个统计周期内统计得到的电子设备对多个遥控输入事件的多个UI响应延迟确定。
本申请实施例中,第一预设帧长可以大于或者等于在当前时刻之前的一个统计周期内统计得到的电子设备对多个遥控输入事件的多个UI响应延迟的最大值。
例如,电子设备可以记录自身对在先N个遥控输入事件的N个UI响应延迟Td1、Td2…… TdN(N为大于0的正整数),例如N=3、5、10、50或者100等),然后电子设备对N个UI响应延迟按照数值大小排序,选出其中的最大值TMAX1,那么,电子设备可以设置第一预设帧长TF1的数值大于或者等于TMAX1。
又例如,电子设备可以记录距离当前时刻最近的M个遥控输入事件的M个UI响应延迟 Td1、Td2……TdM(M为大于0的正整数例如M=3、5、10、50或者100等),然后电子设备对最近的M个UI响应延迟按照数值大小排序,选出其中的最大值TMAX1,那么,电子设备可以设置第一预设帧长TF1的数值大于或者等于TMAX1。例如,电子设备记录了最近3个遥控输入事件的3个UI响应延迟,分别为:Td1=2.02ms(毫秒),Td2=2.53ms(毫秒),Td3=1.92ms(毫秒)。那么,电子设备通过将这三个UI响应延迟按照数值大小排序,能够确定最大值TMAX1= Td2=2.53ms(毫秒)。因此,根据TMAX1=2.53ms(毫秒),电子设备可以设置第一预设帧长 TF1=2.53ms(毫秒);或者,可以设置第一预设帧长TF1大于2.53ms(毫秒),例如设置第一预设帧长TF1=2.60ms(毫秒)或者设置第一预设帧长TF1=3.00ms(毫秒)等。
实施例(三)中电子设备确定第二时刻的效果分析。
本申请实施例这里对电子设备将第一预设帧长确定为当前时刻之前的一个统计周期内统计得到的多个UI响应延迟的最大值,能够实现的效果做出说明。
当电子设备检测到发生遥控输入事件时,电子设备可以将发生遥控输入事件的时刻延迟一个第一预设帧长作为第二时刻,并将垂直同步信号1的下一次信号产生时刻至第二时刻。从而,使垂直同步信号1落后于发生遥控输入事件的时刻一个第一预设帧长的时间。由于第一预设帧长大于当前时刻之前的一个统计周期内统计得到的多个UI响应延迟的最大值,因此,在第二时刻(即垂直同步信号1到来的时刻)之前,电子设备有充足的时间完成“Input 框架20的Input Dispatcher线程将该遥控输入事件上报给UI框架30中的UI线程(如DoFrame), UI线程接收到Input Dispatcher线程上报的遥控输入事件后,请求并等待垂直同步信号1”的过程,从而,保证垂直同步信号1到来时,UI线程已经追备好绘制图层并请求垂直同步信号 1,确保UI线程能够响应于该垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层。
例如,如图13a和图13b所示,电子设备在t0时刻检测到发生遥控输入事件,电子设备将t0时刻延迟一个第一预设帧长TF1作为第二时刻ta1,并将垂直同步信号1的下一次信号产生时刻至第二时刻ta1,使垂直同步信号1落后于t0时刻一个第一预设帧长TF1。由此,在t0-ta1这一段时间内,电子设备的UI线程能够接收到Input Dispatcher线程上报的遥控输入事件,并请求垂直同步信号1,从而,保证垂直同步信号1在ta1时刻到来时,UI线程能够响应于该垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层。
需要注意的是,本申请实施例中,第一预设帧长可以为大于0的常数值,即电子设备只需要确定一次第一预设帧长,并将确定的第一预设帧长作为一个全局参数,电子设备在每次检测到发生遥控输入事件时,都根据上述作为全局参数的第一预设帧长确定第二时刻。另外,第一预设帧长还可以是一个动态变化的值,即电子设备在每次检测到发生遥控输入事件时,需要重新确定第一预设帧长,每次确定的第一预设帧长只用于确定当前遥控输入事件对应的第二时刻。
实施例(四)
本申请实施例,基于实施例(三)描述的“第一预设帧长的数值可以基于电子设备在当前时刻之前的一个统计周期内统计得到的电子设备对多个遥控输入事件的多个UI响应延迟确定”,对电子设备确定第一预设帧长的具体方法做进一步说明。
如图14所示,本申请实施例提供的电子设备确定第一预设帧长的方法可以包括步骤S601 和S602。
步骤S601,电子设备检测到发生遥控输入事件时,获取电子设备的最近N个UI响应延迟。
其中,结合上文描述的内容,UI响应延迟是指“从Input Dispatcher线程接收到遥控输入事件的时刻t0到UI线程请求垂直同步信号1的时刻tr2”存在的延迟。那么,电子设备的最近 N次UI响应延迟指的是在当前发生遥控输入事件的t0时刻之前,电子设备对最近检测到的N 个历史遥控输入事件的N次历史UI响应延迟。
如图15所示,电子设备在t0时刻检测到发生遥控输入事件时,获取电子设备的最近3 (即N=3)次UI响应延迟。具体来说,电子设备在t0时刻之前检测到的最近三个历史遥控输入事件的时刻分别是t-1时刻、t-2时刻和t-3时刻。其中,t-1时刻是电子设备最近一次检测到历史遥控输入事件的时刻,t-2时刻早于t-1时刻,t-3时刻早于t-2时刻。当电子设备在t-1时刻检测到历史遥控输入事件时,电子设备的UI线程响应于t-1时刻的历史遥控输入事件,在tr-1时刻请求垂直同步信号,因此电子设备对t-1时刻的历史遥控输入事件的UI响应延迟TUI-1=tr-1- t-1。当电子设备在t-2时刻检测到历史遥控输入事件时,电子设备的UI线程响应于t-2时刻的历史遥控输入事件,在tr-2时刻请求垂直同步信号,因此电子设备对t-2时刻的历史遥控输入事件的UI响应延迟TUI-2=tr-2-t-2。当电子设备在t-3时刻检测到历史遥控输入事件时,电子设备的UI线程响应于t-3时刻的历史遥控输入事件,在tr-3时刻请求垂直同步信号,因此电子设备对t-3时刻的历史遥控输入事件的UI响应延迟TUI-3=tr-3-t-3。
步骤S602,电子设备计算最近N个UI响应延迟的加权平均值,作为第一预设帧长。
本申请实施例中,电子设备可以根据在步骤S601中获取的UI响应延迟的数量N,分别为每个UI响应延迟分配不同的权重,然后,将N个UI响应延迟分别乘以其对应的权重后,相加求和,得到第一预设帧长。其中,N个UI响应延迟的权重之和等于1或者大于1。即步骤S602中,电子设备计算最近N个UI响应延迟加权平均值,作为第一预设帧长,可以使用以下公式:
其中,TF1为第一预设帧长,TUI-i为电子设备检测到发生遥控输入事件的时刻之前的第i 个历史遥控输入事件的UI响应延迟,Wi为TUI-i的权重。
例如,如图15所示,电子设备在t0时刻检测到发生遥控输入事件时,获取电子设备的最近3(即N=3)次UI响应延迟,即:TUI-1、TUI-2和TUI-3,那么,第一预设帧长TF1可以使用以下公式计算得到:
TF1=TUI-1×W1+TUI-2×W2+TUI-3×W3
在一些实施例中,N个UI响应延迟的权重可以相同,即第一预设帧长TF1是N个UI响应延迟的平均值。
在一些实施例中,N个UI响应延迟的权重可以不同。例如,为了保证电子设备的UI线程在t0时刻之后的第一预设帧长TF1的时间内,能够接收到Input Dispatcher线程上报的遥控输入事件,并请求垂直同步信号1,使UI线程能够在第二时刻的垂直同步信号1到来时,响应于该垂直同步信号1,执行绘制该遥控输入事件对应的一个或多个图层,本申请实施例可以对数值较大的UI响应延迟设置较高的权重,对数值较低的UI响应延迟设置较低的权重,以增大第一预设帧长的数值。
例如,如图15所示,作为示例地,电子设备获取的3个UI响应延迟的数值分别为:TUI-1=2.65ms(毫秒)、TUI-2=1.68ms(毫秒)和TUI-3=2.12ms(毫秒),即:TUI-1>TUI-3>TUI-2。那么,本申请实施例可相应的设置W1>W3>W2。例如:当W1=0.5、W3=0.3、W2=0.2时,第一预设帧长TF1=2.65ms×0.5+1.68ms×0.2+2.12ms×0.3=2.297ms;当W1=0.6、W3=0.3、W2=0.1时,第一预设帧长TF1=2.65ms×0.6+1.68ms×0.1+2.12ms×0.3=2.394ms;当W1=0.8、W3=0.15、 W2=0.05时,第一预设帧长TF1=2.65ms×0.8+1.68ms×0.05+2.12ms×0.15=2.522ms。
实施例(五)
本实施例对上述任一实施例中,电子设备执行调整垂直同步信号2的下一次信号产生时刻为发生遥控输入事件的时刻之后的第二时刻的过程进行具体说明。如图16所示,电子设备调整垂直同步信号2的下一次信号产生时刻为发生遥控输入事件的时刻之后的第二时刻,可以包括步骤S701-S703,
步骤S701,电子设备计算第二时刻与第一时刻的时间间隔。
例如,如图13a所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号1的产生时刻,垂直同步信号1的下一次产生的第一时刻为t2。因此,第一时刻 t2与第二时刻ta1的时间间隔TE1=t2-ta1。
又例如,如图13b所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号1的产生时刻,垂直同步信号1的下一次产生的第一时刻为t21。因此,第一时刻t21与第二时刻ta1的时间间隔TE1=t2-ta1。
步骤S702,电子设备判断第二时刻与第一时刻的时间间隔是否大于或者等于第一期望值。
容易理解的是,本申请实施例调整垂直同步信号1的产生时刻,目的是当电子设备在检测到发生遥控输入事件时,使下一个垂直同步信号1的到来时间从原本的第一时刻提前至第二时刻,进而使电子设备响应第二时刻的垂直同步信号1提前执行绘制一个或者多个第一图层,由此缩短电子设备的对遥控输入事件的响应延迟。
例如,如图13a所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号1的产生时刻,电子设备会在第一时刻t2开始执行绘制一个或者多个第一图层。如果调整同步信号1的发生时刻至第二时刻ta1,电子设备会在第二时刻ta1开始执行绘制一个或者多个第一图层。因此,电子设备调整垂直同步信号1的产生时刻与不调整垂直同步信号 1的产生时刻相比,电子设备执行绘制一个或者多个第一图层的时间提前了时间间隔TE1=t2- ta1。
又例如,如图13b所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号1的产生时刻,电子设备会在第一时刻t21开始执行绘制一个或者多个第一图层。如果调整垂直同步信号1的发生时刻至第二时刻ta1,电子设备会在第二时刻ta1开始执行绘制一个或者多个第一图层。因此,电子设备调整垂直同步信号1的产生时刻与不调整垂直同步信号1的产生时刻相比,电子设备执行绘制一个或者多个第一图层的时间提前了时间间隔TE1=t21-ta1。
结合以上描述内容,本申请实施例可以针对电子设备执行绘制一个或者多个第一图层的时间提前的时间间隔TE1设置一个第一期望值,该第一期望值是电子设备通过调整垂直同步信号1的产生时刻,使电子设备执行绘制一个或者多个第一图层的时间提前的时间间隔TE1应该满足的一个收益值。也就是说,如果时间间隔TE1大于或者等于第一期望值,说明调整垂直同步信号1的产生时刻至第二时刻能够带来较大的收益;如果时间间隔TE1小于第一期望值,说明调整垂直同步信号1的产生时刻至第二时刻带来的收益不大,因此没有必要去对垂直同步信号1的产生时刻进行调整。
步骤S703,如果第二时刻与第一时刻的时间间隔大于或者等于第一期望值,电子设备调整垂直同步信号1的下一次信号产生时刻为第二时刻。
例如,当设置第一期望值为5ms(毫秒)时,如果时间间隔TE1大于或者等于5ms(毫秒),则电子设备调整垂直同步信号1的下一次信号产生时刻为第二时刻,如果时间间隔TE1小于5ms(毫秒),则电子设备不会调整垂直同步信号1的下一次信号产生时刻,垂直同步信号1依然会在第一时刻到来。
结合以上描述的内容,本申请实施例能够适当减少对整垂直同步信号1的调整次数,即:当调整垂直同步信号1的产生时刻带来的收益满足预期时,执行调整;当调整垂直同步信号 1的产生时刻带来的收益不满足时,不执行调整,以减轻系统负担。
实施例(六)
本申请实施例,对电子设备确定第三时刻的具体方法进行说明。
如图17所示,电子设备的UI线程响应于第二时刻ta1的垂直同步信号1绘制遥控输入事件对应的一个或多个图层,电子设备的渲染线程在UI线程对一个或多个图层进行图层渲染。可以理解的是,由于电子设备执行图层绘制和渲染需要消耗一定的时间,因此从垂直同步信号1在第二时刻ta1到来,到电子设备的渲染线程完成对遥控输入事件对应的一个或多个图层的渲染的时刻tr3消耗了一个时长(如图17中的绘制+渲染时长)。
可以理解的是,如图17所示,由于从垂直同步信号1在第二时刻ta1到来,到电子设备的渲染线程完成对遥控输入事件对应的一个或多个图层的渲染的时刻tr3消耗了一个绘制+渲染时长,因此,如果垂直同步信号2在ta1时刻至tr3时刻之间到来,由于UI线程和渲染线程还没有完成遥控输入事件对应的一个或多个图层的绘制和渲染,因此合成线程不会合成该遥控输入事件对应的一个或多个图层,即合成线程错过了该垂直同步信号2。如果垂直同步信号2在tr3时刻之后到来,由于UI线程和渲染线程在tr3时刻完成了遥控输入事件对应的一个或多个图层的绘制和渲染,因此合成线程能够响应于该垂直同步信号2,执行合成该遥控输入事件对应的一个或多个图层。
根据上述描述内容,本申请实施例中为了使电子设备检测到发生遥控输入事件时,调整至第三时刻产生的垂直同步信号2不被合成线程错过(即合成线程能够响应于第三时刻到来的垂直同步信号2,执行合成该遥控输入事件对应的一个或多个图层),第三时刻与第二时刻的时间间隔需要大于图17中的绘制+渲染时长,以使第三时刻晚于UI线程和渲染线程完成绘制和渲染遥控输入事件对应的一个或多个图层的时刻,保证合成线程能够响应于第三时刻产生的垂直同步信号2,执行合成该遥控输入事件对应的一个或多个图层。
需要注意的是,电子设备每一次绘制和渲染图层所消耗的时间(例如图17中的绘制+渲染时长)是不确定的。也就是说,在电子设备每一次完成图层的绘制和渲染之前,电子设备事先并不知道在什么时刻才能完成图层的绘制和渲染,因此,电子设备无法通过直接获取绘制+渲染时长的方式确定第三时刻。例如,电子设备的绘制+渲染时长可以与电子设备的系统负载(例如CPU负载、I/O负载)、运算能力(例如:CPU的每个线程计算能力)、图层的数量和质量等有关。一般来说:电子设备的系统负载越低,绘制+渲染时长越短,电子设备的系统负载越高绘制+渲染时长越长;电子设备的运算能力越强,绘制+渲染时长越短,电子设备的运算能力越弱,绘制+渲染时长越长;图层的数量越少,绘制+渲染时长越短,图层的数量越多,绘制+渲染时长越长;图层的质量越低,绘制+渲染时长越短,图层的质量越高,绘制+渲染时长越长。
综合上述描述,本申请实施例中,为了使第三时刻晚于UI线程和渲染线程完成绘制和渲染遥控输入事件对应的一个或多个图层的时刻,保证合成线程能够响应于第三时刻产生的垂直同步信号2,执行合成该遥控输入事件对应的一个或多个图层,定义了一个与绘制+渲染时长相关的参数,如第二预设帧长。其中,第二预设帧长可以基于电子设备在当前时刻之前的一个统计周期内统计得到的电子设备进行图层绘制和对绘制的图层进行渲染所需的时长(即绘制+渲染时长)确定。
本申请实施例中,第二预设帧长可以大于或者等于在当前时刻之前的一个统计周期内统计得到的电子设备的多个绘制+渲染时长的最大值。
例如,电子设备可以记录自身对在先P个绘制+渲染时长Ts1、Ts2……TsP(P为大于0的正整数),例如P=3、5、10、50或者100等),然后电子设备对P个绘制+渲染时长按照数值大小排序,选出其中的最大值TMAX2,那么,电子设备可以设置第二预设帧长TF2的数值大于或者等于TMAX2。
又例如,电子设备可以记录距离当前时刻最近的Q个绘制+渲染时长Ts1、Ts2……TsQ(Q 为大于0的正整数例如Q=3、5、10、50或者100等),然后电子设备对最近的Q个绘制+渲染时长按照数值大小排序,选出其中的最大值TMAX2,那么,电子设备可以设置第二预设帧长TF2的数值大于或者等于TMAX1。例如,电子设备记录了最近3个绘制+渲染时长,分别为: Ts1=6.23ms(毫秒),Ts2=7.02ms(毫秒),Ts3=5.91ms(毫秒)。那么,电子设备通过将这三个绘制+渲染时长按照数值大小排序,能够确定最大值TMAX2=Ts2=7.02ms(毫秒)。因此,根据 TMAX2=2.53ms(毫秒),电子设备可以设置第二预设帧长TF2=7.02ms(毫秒);或者,可以设置第二预设帧长TF2大于7.02ms(毫秒),例如设置第二预设帧长TF2=7.1ms(毫秒)或者设置第二预设帧长TF2=8ms(毫秒)等。
实施例(六)中电子设备确定第三时刻的效果分析。
本申请实施例这里对电子设备将第二预设帧长确定为当前时刻之前的一个统计周期内统计得到的多个绘制+渲染时长的最大值,能够实现的效果做出说明。
当电子设备检测到发生遥控输入事件时,电子设备可以将第二时刻延迟一个第二预设帧长作为第三时刻,并将垂直同步信号2的下一次信号产生时刻至第三时刻。从而,使垂直同步信号2落后于电子设备开始绘制和渲染图层的时刻一个第二预设帧长的时间。由于第二预设帧长大于当前时刻之前的一个统计周期内统计得到的多个绘制+渲染时长的最大值,因此,在第三时刻(即垂直同步信号2到来的时刻)之前,电子设备有充足的时间完成绘制一个或者多个第一图层,并渲染一个或多个第一图层的过程,从而,确保合成线程能够响应于该垂直同步信号2,合成该遥控输入事件对应的一个或多个图层。
例如,如图13a和图13b所示,电子设备将第二时刻ta1延迟一个第二预设帧长TF2作为第三时刻ta2,并将垂直同步信号2的下一次信号产生时刻至第三时刻ta2,使垂直同步信号2 落后于ta1时刻一个第二预设帧长TF2。由此,在ta1-ta2这一段时间内,电子设备能够完成绘制一个或者多个第一图层,并渲染一个或多个第一图层的过程,从而,确保合成线程能够响应于该垂直同步信号2,合成该遥控输入事件对应的一个或多个图层。
需要注意的是,本申请实施例中,第二预设帧长可以为大于0的常数值,即电子设备只需要确定一次第二预设帧长,并将确定的第二预设帧长作为一个全局参数,电子设备在每次检测到发生遥控输入事件时,都根据上述作为全局参数的第二预设帧长确定第三时刻。另外,第二预设帧长还可以是一个动态变化的值,即电子设备在每次检测到发生遥控输入事件时,需要重新确定第二预设帧长,每次确定的第二预设帧长只用于确定当前遥控输入事件对应的第三时刻。
实施例(七)
本申请实施例,基于实施例(六)描述的“第二预设帧长可以基于电子设备在当前时刻之前的一个统计周期内统计得到的电子设备进行图层绘制和对绘制的图层进行渲染所需的时长(即绘制+渲染时长)确定”,对电子设备确定第二预设帧长的具体方法做进一步说明。
如图18所示,本申请实施例提供的电子设备确定第一预设帧长的方法可以包括步骤S801 和S802。
步骤S801,电子设备检测到发生遥控输入事件时,获取电子设备的最近P个绘制+渲染时长。
其中,结合上文描述的内容,绘制+渲染时长是指“从垂直同步信号1在第二时刻ta1到来,到电子设备的渲染线程完成对遥控输入事件对应的一个或多个图层的渲染的时刻tr3”消耗的时长。那么,电子设备的最近P个绘制+渲染时长指的是在当前发生遥控输入事件的t0 时刻之前,电子设备对最近检测到的P个历史绘制+渲染时长。
如图19所示,电子设备在t0时刻检测到发生遥控输入事件时,获取电子设备的最近3 (即P=3)个绘制+渲染时长。具体来说,电子设备在t0时刻之前的最近三个垂直同步信号1 的产生时刻分别是t-4时刻、t-5时刻和t-6时刻。其中,t-4时刻是电子设备最近一次产生绘制同步信号1的时刻,t-5时刻早于t-4时刻,t-6时刻早于t-5时刻。当t-4时刻垂直同步信号1到来时,电子设备的UI线程和渲染线程响应于t-4时刻的垂直同步信号1,开始执行图层的绘制和渲染,在tr-4时刻完成图层的绘制和渲染,因此电子设备响应于t-4时刻的垂直同步信号1的绘制+渲染时长TDR-1=tr-4-t-4。当t-5时刻垂直同步信号1到来时,电子设备的UI线程和渲染线程响应于t-5时刻的垂直同步信号1,开始执行图层的绘制和渲染,在tr-5时刻完成图层的绘制和渲染,因此电子设备响应于t-5时刻的垂直同步信号1的绘制+渲染时长TDR-2=tr-5-t-5。当 t-6时刻垂直同步信号1到来时,电子设备的UI线程和渲染线程响应于t-6时刻的垂直同步信号1,开始执行图层的绘制和渲染,在tr-6时刻完成图层的绘制和渲染,因此电子设备响应于 t-6时刻的垂直同步信号1的绘制+渲染时长TDR-3=tr-6-t-6。
步骤S802,电子设备计算最近P个绘制+渲染时长的加权平均值,作为第二预设帧长。
本申请实施例中,电子设备可以根据在步骤S801中获取的绘制+渲染时长的数量P,分别为每个绘制+渲染时长分配不同的权重,然后,将P个绘制+渲染时长分别乘以其对应的权重后,相加求和,得到第二预设帧长。其中,P个历史绘制+渲染时长的权重之和等于1或者大于1。即步骤S802中,电子设备计算最近P个绘制+渲染时长加权平均值,作为第二预设帧长,可以使用以下公式:
其中,TF2为第一预设帧长,TDR-i为电子设备检测到发生遥控输入事件的时刻之前的第i 个绘制+渲染时长,Vi为TDR-i的权重。
例如,如图19所示,电子设备在t0时刻检测到发生遥控输入事件时,获取电子设备的最近3(即N=3)个绘制+渲染时长,即:TDR-1、TDR-2和TDR-3,那么,第二预设帧长TF2可以使用以下公式计算得到:
TF2=TDR-1×V1+TDR-2×V2+TDR-3×V3
在一些实施例中,P个绘制+渲染时长的权重可以相同,即第二预设帧长TF2是P个绘制 +渲染时长的平均值。
在一些实施例中,P个绘制+渲染时长的权重可以不同。例如,为了保证电子设备在第三时刻(即垂直同步信号2到来的时刻)之前,有充足的时间完成绘制一个或者多个第一图层,并渲染一个或多个第一图层的过程,从而确保合成线程能够响应于该垂直同步信号2,合成该遥控输入事件对应的一个或多个图层,本申请实施例可以对数值较大的绘制+渲染时长设置较高的权重,对数值较低的绘制+渲染时长设置较低的权重,以增大第二预设帧长的数值。
例如,如图19所示,作为示例地,电子设备获取的3个绘制+渲染时长的数值分别为: TDR-1=7.01ms(毫秒)、TDR-2=5.37ms(毫秒)和TDR-3=6.49ms(毫秒),即:TDR-1>TDR-3>TDR-2。那么,本申请实施例可相应的设置V1>V3>V2。例如:当V1=0.5、V3=0.3、V2=0.2时,第二预设帧长TF2=7.01ms×0.5+5.37ms×0.2+6.49ms×0.3=6.526ms;当V1=0.6、V3=0.3、V2=0.1 时,第二预设帧长TF2=7.01ms×0.6+5.37ms×0.1+6.49ms×0.3=6.69ms;当V1=0.8、V3=0.15、 V2=0.05时,第二预设帧长TF2=7.01ms×0.8+5.37ms×0.05+6.49ms×0.15=6.85ms。
在一些实施例中,还可以根据P个绘制+渲染时长与当前时刻相距的时间确定每个绘制+ 渲染时长的权重,绘制+渲染时长与当前时刻越接近,对应的权重越大,绘制+渲染时长与当前时刻越远,对应的权重越小。因此,作为示例地,在图18获取的3个绘制+渲染时长中, TDR-1的权重最大,TDR-2的权重次之,TDR-3的权重最小。
实施例(八)
本实施例对上述任一实施例中,电子设备执行调整垂直同步信号2的下一次信号产生时刻为第二时刻之后的第三时刻的过程进行具体说明。如图20所示,电子设备调整垂直同步信号2的下一次信号产生时刻为第二时刻之后的第三时刻,可以包括步骤S901-S903,
步骤S901,电子设备计算第三时刻与第四时刻的时间间隔。
例如,如图13a所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号2的产生时刻,垂直同步信号2在第一时刻t2之后的下一次产生的第四时刻为t3。因此,第三时刻ta2与第四时刻t3的时间间隔TE2=t3-ta2。
又例如,如图13b所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号2的产生时刻,垂直同步信号2在第一时刻t2之后的下一次产生的第四时刻为 t22。因此,第三时刻ta2与第四时刻t22的时间间隔TE2=t22-ta2。
步骤S902,电子设备判断第三时刻与第四时刻的时间间隔是否大于或者等于第二期望值。
容易理解的是,本申请实施例调整垂直同步信号2的产生时刻,目的是当电子设备在检测到发生遥控输入事件时,使第一时刻t2之后下一个垂直同步信号1的到来时间从原本的第四时刻提前至第三时刻,进而使电子设备响应第三时刻的垂直同步信号2提前执行合成一个或者多个第一图层,由此缩短电子设备的对遥控输入事件的响应延迟。
例如,如图13a所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号2的产生时刻,电子设备会在第四时刻t3开始执行合成一个或者多个第一图层。如果调整同步信号2的发生时刻至第三时刻ta2,电子设备会在第三时刻ta2开始执行合成一个或者多个第一图层。因此,电子设备调整垂直同步信号2的产生时刻与不调整垂直同步信号 2的产生时刻相比,电子设备执行合成一个或者多个第一图层的时间提前了时间间隔TE2=t3- ta2。
又例如,如图13b所示,在电子设备在检测到发生遥控输入事件的情况下,如果不调整垂直同步信号2的产生时刻,电子设备会在第四时刻t22开始执行合成一个或者多个第一图层。如果调整垂直同步信号2的发生时刻至第三时刻ta2,电子设备会在第三时刻ta2开始执行合成一个或者多个第一图层。因此,电子设备调整垂直同步信号2的产生时刻与不调整垂直同步信号2的产生时刻相比,电子设备执行合成一个或者多个第一图层的时间提前了时间间隔TE2=t22-ta2。
结合以上描述内容,本申请实施例可以针对电子设备执行合成一个或者多个第一图层的时间提前的时间间隔TE2设置一个第二期望值,该第二期望值是电子设备通过调整垂直同步信号2的产生时刻,使电子设备执行合成一个或者多个第一图层的时间提前的时间间隔TE2应该满足的一个收益值。也就是说,如果时间间隔TE2大于或者等于第二期望值,说明调整垂直同步信号2的产生时刻至第三时刻能够带来较大的收益;如果时间间隔TE2小于第二期望值,说明调整垂直同步信号2的产生时刻至第三时刻带来的收益不大,因此没有必要去对垂直同步信号2的产生时刻进行调整。
步骤S903,如果第三时刻与第四时刻的时间间隔大于或者等于第二期望值,电子设备调整垂直同步信号2的下一次信号产生时刻为第三时刻。
例如,当设置第二期望值为3ms(毫秒)时,如果时间间隔TE2大于或者等于3ms(毫秒),则电子设备调整垂直同步信号2的下一次信号产生时刻为第三时刻,如果时间间隔TE2小于3ms(毫秒),则电子设备不会调整垂直同步信号2的下一次信号产生时刻,垂直同步信号2依然会在第四时刻到来。
结合以上描述的内容,本申请实施例能够适当减少对整垂直同步信号2的调整次数,即:当调整垂直同步信号2的产生时刻带来的收益满足预期时,执行调整;当调整垂直同步信号 2的产生时刻带来的收益不满足时,不执行调整,以减轻系统负担。
实施例(九)
本申请在实施(七)中,根据调整垂直同步信号1至第二时刻能够带来的收益(即:图层绘制和渲染的提前时间)判断是否调整调整垂直同步信号1;本申请在实施例(八)中,根据调整垂直同步信号2至第三时刻能够带来的收益(即:图层合成的提前时间),判断是否调整调整垂直同步信号2。也就是说,电子设备可以分别判断调整垂直同步信号1或垂直同步信号2的产生的收益是否满足预期,并对垂直同步信号1或垂直同步信号2单独进行调整。而本申请实施例(九)中,直接对调整垂直同步信号1或垂直同步信号2产生的整体收益进行判断,并对垂直同步信号1或垂直同步信号2进行整体调整。即电子设备预测调整垂直同步信号1和垂直同步信号2之后的电子设备完成合成一个或多个图层之后的下一个垂直同步信号3的产生时刻,以及预测不调整垂直同步信号1和垂直同步信号2时的电子设备完成合成一个或多个图层之后的下一个垂直同步信号3的产生时刻,如果这两个时刻的差值大于0,则执行调整,如果这两个时刻的差值不大于0,则不执行调整。
例如,如图5a所示,当电子设备在t0时刻检测到遥控输入事件时,如果电子设备不调整垂直同步信号1和垂直同步信号2的产生时刻,电子设备预测会在t8时刻完成遥控事件对应的合成一个或多个图层(即图5a中的“图像帧合成”),并在t4时刻产生下一个垂直同步信号 3。又例如,如图7a所示,当电子设备在t0时刻检测到遥控输入事件时,如果电子设备调整垂直同步信号1和垂直同步信号2的产生时刻,电子设备预测会在t8’时刻完成遥控事件对应的合成一个或多个图层(即图7a中的“图像帧合成”),并在t3时刻产生下一个垂直同步信号 3。由此,t3时刻与t4时刻相差了一个同步周期,即t3时刻与t4时刻的差值大于0,因此,电子设备确定调整垂直同步信号1和垂直同步信号2的产生时刻,即:将垂直同步信号1的产生时刻调整到第二时刻ta1,将垂直同步信号2的产生时刻调整到第三时刻ta2。
例如,如图5b所示,当电子设备在t0时刻检测到遥控输入事件时,如果电子设备不调整垂直同步信号1和垂直同步信号2的产生时刻,电子设备预测会在t9时刻完成遥控事件对应的合成一个或多个图层(即图5b中的“图像帧合成”),并在t43时刻产生下一个垂直同步信号3。又例如,如图7b所示,当电子设备在t0时刻检测到遥控输入事件时,如果电子设备调整垂直同步信号1和垂直同步信号2的产生时刻,电子设备预测会在t9’时刻完成遥控事件对应的合成一个或多个图层(即图7b中的“图像帧合成”),并在t33时刻产生下一个垂直同步信号3。由此,t33时刻与t43时刻相差了一个同步周期,即t33时刻与t43时刻的差值大于0,因此,电子设备确定调整垂直同步信号1和垂直同步信号2的产生时刻,即:将垂直同步信号 1的产生时刻调整到第二时刻ta1,将垂直同步信号2的产生时刻调整到第三时刻ta2。
实施例(十)
本申请实施例,对调整垂直同步信号1和垂直同步信号2的产生时刻的具体实现方式进行说明。
一般来说,垂直同步信号1和垂直同步信号2是基于垂直同步信号3产生的,即垂直同步信号3可以是垂直同步信号1和垂直同步信号2的信号源。垂直同步信号1落后于垂直同步信号3的相位差Δt1可以由预设的第一参数(例如:phase_app)控制,即垂直同步信号1的产生时刻t11=垂直同步信号3的时刻t13+phase_app;垂直同步信号2落后于垂直同步信号 3的相位差Δt2可以由预设的第二参数(例如:phase_sf)控制,即垂直同步信号2的产生时刻t12=垂直同步信号3的时刻t13+phase_sf。
结合以上描述,本申请实施例可以通过调整第一参数(例如:phase_app)的方式调整垂直同步信号1的产生时刻,即垂直同步信号1的产生时刻=垂直同步信号3的产生时刻+phase_app,以及,通过调整第二参数(例如:phase_sf)的产生时刻,即垂直同步信号2的产生时刻=垂直同步信号3的产生时刻+phase_sf。
一般来说,第一参数和第二参数均预设有初始值(或者默认值、预设值)等。当电子设备没有检测到遥控输入事件时,根据第一参数和第二参数初始值确定垂直同步信号1的产生时刻和垂直同步信号2的产生时刻。例如,如图13a所示,第一参数的初始值phase_app_0和第二参数的初始值phase_sf_0均为0,从而使垂直同步信号1、垂直同步信号2和垂直同步信号3同步产生。如图13b所示,第一参数的初始值phase_app_0和第二参数的初始值phase_sf_0 均不为0,从而使垂直同步信号1、垂直同步信号2落后于垂直同步信号3产生。
当电子设备检测到遥控输入事件时,可以根据调整第一参数和第二参数的方式调整垂直同步信号1和垂直同步信号2的产生时刻。调整后的第一参数phase_app_1可根据第一预设帧长TF1确定,调整后的第二参数phase_sf_1可根据第二预设帧长TF2确定。
例如,如图13a和图13b所示,当电子设备在t0时刻检测到发生遥控输入事件时,电子设备计算第一预设帧长TF1,并根据t0时刻、第一预设帧长TF1和t0时刻之前的上一次垂直同步信号3的产生时刻(即图13a中的t1时刻或图13b中的t13时刻)计算调整后的phase_app_1。具体计算方式如以下公式:
phase_app_1=t0+TF1-t1(如图13a)或者phase_app_1=t0+TF1-t13(如图13b)
例如,如图13a和图13b所示,当电子设备在t0时刻检测到发生遥控输入时间时,电子设备计算第二预设帧长TF2,并根据调整后的垂直同步信号1的产生时刻(例如第二时刻ta1)、第二预设帧长TF2和t0时刻之前的上一次垂直同步信号3的产生时刻(即图13a中的t1时刻或图13b中的t13时刻)计算调整后的phase_sf_1。具体计算方式如以下公式:
phase_sf_1=ta1+TF2-t1(如图13a)或者phase_sf_1=ta1+TF2-t13(如图13b)
需要注意的是,在上述任一实施例中,本申请只要调整电子设备检测到发生遥控输入事件之后的垂直同步信号1的下一次信号产生时刻,以及调整垂直同步信号2的下一次产生时刻,就能够达到缩短电子设备的对遥控输入事件的响应延迟的技术效果。因此,如图13a和图13b所示,在对“垂直同步信号1的下一次信号产生时刻”以及“垂直同步信号2的下一次产生时刻”进行调整之后,可以将垂直同步信号1和垂直同步信号2的产生时刻恢复至初始的相位,例如:将第一参数从phase_app_1恢复到phase_app_0,将第二参数从phase_sf_1 恢复到phase_sf_0,使电子设备在以后的同步周期内按照第一参数和第二参数的初始值产生垂直同步信号1和垂直同步信号2。
实施例(十一)
请参考图21,其示出本申请实施例提供的一种优化模块的示意图。该优化模块可以是生成图像帧的装置或电子设备中,用于实现本申请实施例的方法的功能模块。如图21所示,该优化模块可以包括:服务通信接口模块2101、第二时刻确定模块2102、第三时刻确定模块 2103和垂直同步信号调整模块2104。
第二时刻预测模块2102用于获取电子设备检测到发生遥控输入事件的时刻,并确定垂直同步信号1的下一次产生的第二时刻,并向垂直同步信号调整模块2104传输第二时刻。例如,第二时刻预测模块2102用于支持电子设备执行上述方法实施例中的S601-S603,或用于本文所描述的技术的其它过程。
第三时刻预测模块2103用于获取电子设备检测到发生遥控输入事件的时刻,并确定垂直同步信号2的下一次产生的第三时刻,并向垂直同步信号调整模块2104传输第三时刻。例如,第三时刻预测模块2103用于支持电子设备执行上述方法实施例中的S801-S803,或用于本文所描述的技术的其它过程。
垂直同步信号调整模块2104用于执行调整垂直同步信号1的下一次产生时刻至第二时刻,以及,调整垂直同步信号2的下一次产生时刻至第三时刻。例如垂直同步信号调整模块 2104用于支持电子设备执行上述方法实施例中的S701-S702和S901-S902,或用于本文所描述的技术的其它过程。
其中,如图22所示,图1a所示的软件架构还可以包括:上述优化模块60。该优化模块 60中可以包括:服务通信接口模块2101、第二时刻确定模块2102、第三时刻确定模块2103 和垂直同步信号调整模块2104。
实施例(十二)
本申请一些实施例提供了一种电子设备,该电子设备可以包括:显示屏(如触摸屏或者非触摸屏)、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图2所示的电子设备200的结构。
本申请实施例还提供一种芯片系统,如图23所示,该芯片系统包括至少一个处理器2301 和至少一个接口电路2302。处理器2301和接口电路2302可通过线路互联。例如,接口电路 2302可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路2302可用于向其它装置(例如处理器2301或者电子设备的触摸屏)发送信号。示例性的,接口电路2302 可读取存储器中存储的指令,并将该指令发送给处理器2301。当指令被处理器2301执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机存储介质,该计算机存储介质包括计算机指令,当计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述方法实施例中电子设备执行的各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
容易理解的是,本领域技术人员在本申请提供的几个实施例的基础上,可以对本申请的实施例进行结合、拆分、重组等得到其他实施例,这些实施例均没有超出本申请的保护范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括: U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以权利要求的保护范围为准。
Claims (14)
1.一种基于垂直同步信号的图像处理方法,其特征在于,所述方法应用于包括显示屏的电子设备,所述电子设备的第一垂直同步信号的下一次产生时刻为第一时刻,所述方法包括:
所述电子设备检测到发生遥控输入事件时,调整第一垂直同步信号的下一次产生时刻为检测到发生所述遥控输入事件的时刻之后的第二时刻,所述第二时刻早于第一时刻,所述第二时刻与发生所述遥控输入事件的时刻的时间间隔大于或者等于第一预设帧长;
所述电子设备响应于所述第一垂直同步信号,绘制一个或者多个第一图层,并渲染所述一个或多个第一图层;其中,所述第一预设帧长,通过以下步骤确定:
所述电子设备在检测到发生遥控输入事件时,获取所述电子设备的最近N个第一延迟,N为大于1的正整数,所述第一延迟是从所述电子设备检测到发生遥控输入事件的时刻到所述电子设备请求所述第一垂直同步信号的时刻的延迟;
所述电子设备计算所述N个第一延迟的加权平均值,作为所述第一预设帧长;其中,所述第一延迟的数值越大,对应的权重越高,且N个所述第一延迟的权重之和大于或者等于1。
2.根据权利要求1所述的方法,其特征在于,所述电子设备调整第一垂直同步信号的下一次产生时刻为检测到发生所述遥控输入事件的时刻之后的第二时刻,包括:
所述电子设备计算所述第二时刻与所述第一时刻的时间间隔;
所述电子设备判断所述第二时刻与所述第一时刻的时间间隔是否大于或等于第一期望值;
如果所述第二时刻与所述第一时刻的时间间隔大于或等于所述第一期望值,所述电子设备调整所述第一垂直同步信号的下一次信号产生时刻为所述第二时刻。
3.根据权利要求1所述的方法,其特征在于,还包括:
所述电子设备在所述一个或多个第一图层渲染完成后,对渲染的所述一个或多个第一图层进行图层合成,以得到第一图像帧。
4.根据权利要求1所述的方法,其特征在于,当所述电子设备的第一垂直同步信号的下一次产生时刻为第一时刻时,所述电子设备的第二垂直同步信号的下一次产生时刻为所述第一时刻之后的第四时刻,所述方法还包括:
所述电子设备调整所述第二垂直同步信号的下一次信号产生时刻为所述第二时刻之后的第三时刻,所述第三时刻早于第四时刻。
5.根据权利要求4所述的方法,其特征在于,
所述第三时刻与所述第二时刻的时间间隔大于第二预设帧长。
6.根据权利要求5所述的方法,其特征在于,
所述电子设备根据第二统计周期的一个或多个第二时长,确定所述第二预设帧长,所述第二时长是所述电子设备在所述第二统计周期内获取的所述电子设备进行图层绘制和对绘制的图层进行渲染所需的时长。
7.根据权利要求5所述的方法,其特征在于,所述电子设备调整所述第二垂直同步信号的下一次信号产生时刻为所述第二时刻之后的第三时刻,包括:
所述电子设备计算所述第三时刻与所述第四时刻的时间间隔;
所述电子设备判断所述第三时刻与所述第四时刻的时间间隔是否大于或等于第二期望值;
如果所述第三时刻与所述第四时刻的时间间隔大于或等于所述第二期望值,所述电子设备调整所述第二垂直同步信号的下一次信号产生时刻为所述第三时刻。
8.根据权利要求4所述的方法,其特征在于,还包括:
所述电子设备在所述一个或多个第一图层渲染完成后,响应于所述第二垂直同步信号,对渲染的所述一个或多个第一图层进行图层合成,以得到第一图像帧。
9.根据权利要求1所述的方法,其特征在于,
所述电子设备通过调整第一参数调整所述第一垂直同步信号的下一次产生时刻为所述第一时刻,所述第一参数第三垂直同步信号的前一次产生时刻与所述第一垂直同步信号的下一次产生时刻的时间间隔。
10.根据权利要求4所述的方法,其特征在于,
所述电子设备通过调整第二参数调整所述第二垂直同步信号的下一次产生时刻为所述第三时刻,所述第二参数第三垂直同步信号的前一次产生时刻与所述第二垂直同步信号的下一次产生时刻的时间间隔。
11.根据权利要求1-10中任一项所述的方法,其特征在于,还包括:
所述电子设备恢复所述调整。
12.一种电子设备,其特征在于,所述电子设备包括显示屏、存储器和一个或多个处理器;所述显示屏、所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-11中任一项所述的方法。
13.一种芯片系统,其特征在于,所述芯片系统应用于包括显示屏的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-11中任一项所述的方法。
14.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任一项所述的方法。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910736615.3A CN112351326B (zh) | 2019-08-09 | 2019-08-09 | 一种基于垂直同步信号的图像处理方法及电子设备 |
PCT/CN2020/107383 WO2021027678A1 (zh) | 2019-08-09 | 2020-08-06 | 一种基于垂直同步信号的图像处理方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910736615.3A CN112351326B (zh) | 2019-08-09 | 2019-08-09 | 一种基于垂直同步信号的图像处理方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112351326A CN112351326A (zh) | 2021-02-09 |
CN112351326B true CN112351326B (zh) | 2022-08-19 |
Family
ID=74367606
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910736615.3A Active CN112351326B (zh) | 2019-08-09 | 2019-08-09 | 一种基于垂直同步信号的图像处理方法及电子设备 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN112351326B (zh) |
WO (1) | WO2021027678A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114089933B (zh) * | 2021-06-09 | 2022-09-02 | 荣耀终端有限公司 | 显示参数的调整方法、电子设备、芯片及可读存储介质 |
CN113992981B (zh) * | 2021-10-21 | 2024-03-15 | 稿定(厦门)科技有限公司 | 视频图像的处理方法及装置 |
CN115097994B (zh) * | 2021-10-30 | 2023-05-09 | 荣耀终端有限公司 | 数据处理方法和相关装置 |
CN116055611B (zh) * | 2022-06-24 | 2023-11-03 | 荣耀终端有限公司 | 绘制操作的执行方法、电子设备及可读介质 |
CN114822005B (zh) * | 2022-06-28 | 2022-09-20 | 深圳市矽昊智能科技有限公司 | 基于人工智能的遥控意图预测方法、装置、设备及介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009200938A (ja) * | 2008-02-22 | 2009-09-03 | Toshiba Corp | バッファ制御装置及び受信装置 |
CN105913371A (zh) * | 2015-11-16 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种针对虚拟现实应用延迟的系统优化方法和装置 |
CN110018874A (zh) * | 2019-04-09 | 2019-07-16 | Oppo广东移动通信有限公司 | 垂直同步方法、装置、终端及存储介质 |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012077392A1 (ja) * | 2010-12-10 | 2012-06-14 | 三菱電機株式会社 | マルチ画面表示システム |
US9354744B2 (en) * | 2014-06-09 | 2016-05-31 | Sony Corporation | Adaptive touch panel synchronization |
CN106874168A (zh) * | 2017-01-12 | 2017-06-20 | 北京奇虎科技有限公司 | 确定应用程序运行性能的方法、装置和移动终端 |
CN106933587B (zh) * | 2017-03-10 | 2019-12-31 | Oppo广东移动通信有限公司 | 一种图层绘制控制方法、装置及移动终端 |
KR102424794B1 (ko) * | 2017-10-24 | 2022-07-25 | 삼성전자주식회사 | 이미지를 표시하는 전자 장치 및 그 제어 방법 |
CN110007997A (zh) * | 2019-04-10 | 2019-07-12 | 深圳风起云科技有限公司 | 一种Android平台显示加速的方法 |
-
2019
- 2019-08-09 CN CN201910736615.3A patent/CN112351326B/zh active Active
-
2020
- 2020-08-06 WO PCT/CN2020/107383 patent/WO2021027678A1/zh active Application Filing
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2009200938A (ja) * | 2008-02-22 | 2009-09-03 | Toshiba Corp | バッファ制御装置及び受信装置 |
CN105913371A (zh) * | 2015-11-16 | 2016-08-31 | 乐视致新电子科技(天津)有限公司 | 一种针对虚拟现实应用延迟的系统优化方法和装置 |
CN110018874A (zh) * | 2019-04-09 | 2019-07-16 | Oppo广东移动通信有限公司 | 垂直同步方法、装置、终端及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112351326A (zh) | 2021-02-09 |
WO2021027678A1 (zh) | 2021-02-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110609645B (zh) | 一种基于垂直同步信号的控制方法及电子设备 | |
CN112351326B (zh) | 一种基于垂直同步信号的图像处理方法及电子设备 | |
WO2021000921A1 (zh) | 一种基于垂直同步信号的图像处理方法及电子设备 | |
CN114579075B (zh) | 数据处理方法和相关装置 | |
EP4224831A1 (en) | Image processing method and electronic device | |
CN114092595B (zh) | 一种图像处理方法及电子设备 | |
CN114338952B (zh) | 一种基于垂直同步信号的图像处理方法及电子设备 | |
CN114579076B (zh) | 数据处理方法和相关装置 | |
WO2022089153A1 (zh) | 一种基于垂直同步信号的控制方法及电子设备 | |
CN115048012A (zh) | 数据处理方法和相关装置 | |
US20230367415A1 (en) | Event processing method and device | |
WO2023207667A1 (zh) | 一种显示方法、汽车和电子设备 | |
CN115904184A (zh) | 数据处理方法和相关装置 | |
CN116414337A (zh) | 帧率切换方法及装置 | |
WO2023124227A1 (zh) | 帧率切换方法及装置 | |
WO2023124225A1 (zh) | 帧率切换方法及装置 | |
WO2024066834A1 (zh) | Vsync信号的控制方法、电子设备、存储介质及芯片 | |
CN116414336A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210423 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Applicant after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |