一种基于垂直同步信号的控制方法及电子设备转让专利

申请号 : CN201910889445.2

文献号 : CN110609645B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 李煜王亮陈健王欣

申请人 : 华为技术有限公司

摘要 :

本申请实施例提供一种基于垂直同步信号的控制方法及电子设备,可以在不增加电子设备的负载的情况下,缩短电子设备的响应延迟,提升电子设备的流畅性。该方法可以包括:包括显示屏的电子设备响应于第一垂直同步信号,绘制一个或多个图层;响应于第二垂直同步信号,刷新显示图像帧;调整第一垂直同步信号,使调整后的第一垂直同步信号相对于第二垂直同步信号延迟第一延迟时间;响应于调整后的第一垂直同步信号绘制一个或多个图层。

权利要求 :

1.一种基于垂直同步信号的控制方法,其特征在于,所述方法应用于包括显示屏的电子设备,所述方法包括:所述电子设备响应于第一垂直同步信号,绘制一个或多个图层;

所述电子设备响应于第二垂直同步信号,刷新显示图像帧;所述第一垂直同步信号与所述第二垂直同步信号同频率;

所述电子设备调整所述第一垂直同步信号,使调整后的所述第一垂直同步信号相对于所述第二垂直同步信号延迟第一延迟时间;

所述电子设备响应于调整后的所述第一垂直同步信号绘制一个或多个图层。

2.根据权利要求1所述的方法,其特征在于,所述第一延迟时间小于所述第二垂直同步信号的信号周期。

3.根据权利要求1所述的方法,其特征在于,所述方法还包括:

所述电子设备响应于第三垂直同步信号,对绘制的一个或多个图层进行图层合成得到图像帧;

所述电子设备调整所述第三垂直同步信号,使调整后的所述第三垂直同步信号相对于所述第二垂直同步信号延迟第二延迟时间;所述第三垂直同步信号与所述第二垂直同步信号同频率;

所述电子设备响应于调整后的所述第三垂直同步信号对绘制的一个或多个图层进行图层合成得到图像帧。

4.根据权利要求1-3中任一项所述的方法,其特征在于,所述电子设备响应于调整后的所述第一垂直同步信号绘制一个或多个图层,包括:所述电子设备响应于调整后的所述第一垂直同步信号,进行插值计算得到重采样点;

所述电子设备针对所述重采样点,绘制一个或多个图层。

5.根据权利要求1-3中任一项所述的方法,其特征在于,所述电子设备响应于第一垂直同步信号,绘制一个或多个图层,包括:所述电子设备检测到用户操作或者所述电子设备发生用户界面UI事件时,响应于所述第一垂直同步信号,绘制所述一个或多个图层。

6.根据权利要求1-3中任一项所述的方法,其特征在于,所述一个或多个图层包括:所述电子设备执行一个或多个应用对应的绘制任务所绘制的图层;所述一个或多个应用包括:一个或多个系统级应用,以及一个或多个用户级应用中的至少一项;所述系统级应用包括:状态栏、launcher、导航栏和壁纸。

7.根据权利要求3所述的方法,其特征在于,所述第二延迟时间等于所述第一延迟时间。

8.根据权利要求1-3中任一项所述的方法,其特征在于,所述第一延迟时间是预设时长。

9.根据权利要求1-3中任一项所述的方法,其特征在于,在所述电子设备调整所述第一垂直同步信号,使调整后的所述第一垂直同步信号相对于所述第二垂直同步信号延迟第一延迟时间之前,所述方法还包括:所述电子设备根据统计周期的多个第一图层合成SF帧长,确定所述统计周期的第三SF帧长;

所述电子设备确定所述第三SF帧长小于预设帧长阈值;其中,所述第三SF帧长是所述多个第一SF帧长的平均值或者所述多个第一SF帧长中的最大值。

10.根据权利要求1-3中任一项所述的方法,其特征在于,在所述电子设备调整所述第一垂直同步信号,使调整后的所述第一垂直同步信号相对于所述第二垂直同步信号延迟第一延迟时间之前,所述方法还包括:所述电子设备计算统计周期的多个第一SF帧长的期望值,并计算所述多个第一SF帧长的加权标准差;其中,所述多个第一SF帧长的加权标准差用于表征所述多个第一SF帧长的波动情况;

所述电子设备根据所述第二垂直同步信号的信号周期、预设延迟收益值和所述期望值,计算所述多个第一SF帧长的标准差门限;

所述电子设备确定所述多个第一SF帧长的权标准差小于所述标准差门限。

11.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:所述电子设备根据前台应用确定所述第一延迟时间;其中,所述前台应用是所述显示屏当前显示的界面对应的应用,所述前台应用是用户级应用。

12.根据权利要求1-3中任一项所述的方法,其特征在于,所述方法还包括:所述电子设备根据统计周期内的多个第一SF帧长,确定所述第一延迟时间;其中,所述多个第一SF帧长中的每个第一SF帧长为进行一次图层合成所花费的时间,每次进行所述图层合成所花费的时间相同或不同。

13.一种电子设备,其特征在于,所述电子设备包括触摸屏、存储器和一个或多个处理器;所述触摸屏、所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-12中任一项所述的方法。

14.一种芯片系统,其特征在于,所述芯片系统应用于包括触摸屏的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如权利要求1-12中任一项所述的方法。

15.一种计算机存储介质,包括计算机指令,其特征在于,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-12中任一项所述的方法。

说明书 :

一种基于垂直同步信号的控制方法及电子设备

[0001] 本申请要求于2019年06月25日提交国家知识产权局、申请号为201910557287.0、发明名称为“一种基于垂直同步信号的控制方法及电子设备”的中国专利申请的优先权,其全部内容通过引用结合在本申请中。

技术领域

[0002] 本申请实施例涉及图像处理及显示技术领域,尤其涉及一种基于垂直同步信号的控制方法及电子设备。

背景技术

[0003] 随着电子技术的发展,各类电子产品(如手机)的性能越来越好。消费者对电子产品的人机交互性能的要求也越来越高。其中,流畅性是一项重要的人机交互性能。
[0004] 流畅性可以体现为从“用户向电子产品输入用户操作”到“电子产品显示该用户操作对应的图像”的延迟的长度。例如,上述用户操作可以是用户通过鼠标或者按键等输入的操作;或者,上述用户操作可以是用户对触摸屏的触摸操作。上述延迟时间可以称为电子设备的响应延迟。例如,上述用户操作是触摸操作的情况下,该延迟时间可以称为触摸响应延迟。其中,延迟时间越长,流畅性越差;延迟时间越短,流畅性越好。因此,如何缩短上述延迟时间,提升电子产品的流畅性是亟待解决的一个问题。
[0005] 目前,一些方案中,通过提升手机的处理器的工作频率(如主频)的方式,缩短响应延迟。可以理解,处理器的工作频率越高,该处理器的运算速度则越快,手机便可以以较短的时间响应用户的触摸操作。如此,便可以缩短响应延迟,提升手机的流畅性。
[0006] 其中,提升处理器的工作频率,虽然可以达到缩短响应延迟的目的;但是,处理器的工作频率越高,功耗也就越大。因此,通过上述方案缩短响应延迟,可能会导致手机的功耗增大,增加手机的负载。

发明内容

[0007] 本申请实施例提供一种基于垂直同步信号的控制方法及电子设备,可以在不增加电子设备的负载的情况下,缩短电子设备的响应延迟,提升电子设备的流畅性。
[0008] 为达到上述目的,本申请采用如下技术方案:
[0009] 第一方面,本申请提供一种基于垂直同步信号的控制方法,应用于包括显示屏的电子设备。该方法可以包括:电子设备响应于第一垂直同步信号,绘制一个或多个图层;响应于第二垂直同步信号,刷新显示图像帧。该第一垂直同步信号与该第二垂直同步信号同频率;调整第一垂直同步信号,使调整后的第一垂直同步信号相对于第二垂直同步信号延迟第一延迟时间;响应于调整后的第一垂直同步信号绘制一个或多个图层。
[0010] 本申请的方法中,可以通过调整第一垂直同步信号,使调整后的第一垂直同步信号相对于第二垂直同步信号延迟第一延迟时间。这样,使电子设备完成图像帧合成后,可以及时进行图像帧刷新显示该图像帧。通过该方法,可以在不增加电子设备的负载的情况下,缩短电子设备的响应延迟,提升电子设备的流畅性。
[0011] 结合第一方面,在一种可能的设计方式中,上述第一延迟时间小于上述第二垂直同步信号的信号周期。其中,第二垂直同步信号的信号周期和第一垂直同步信号的信号周期称为同步周期。该同步周期等于电子设备的屏幕刷新率的倒数。
[0012] 结合第一方面,在另一种可能的设计方式中,上述方法还可以包括:电子设备响应于第三垂直同步信号,对绘制的一个或多个图层进行图层合成得到图像帧;调整第三垂直同步信号,使调整后的第三垂直同步信号相对于第二垂直同步信号延迟第二延迟时间;响应于调整后的第三垂直同步信号对绘制的一个或多个图层进行图层合成得到图像帧。该第三垂直同步信号与第二垂直同步信号同频率。
[0013] 结合第一方面,在另一种可能的设计方式中,电子设备响应于调整后的第一垂直同步信号,可以根据距离调整后的第一垂直同步信号的到达时间最近的触控点,进行差值计算得到重采样点;电子设备针对所述重采样点,绘制一个或多个图层。
[0014] 结合第一方面,在另一种可能的设计方式中,电子设备可以检测到用户操作或者电子设备发生用户界面(User Interface,UI)事件时,响应于第一垂直同步信号,绘制一个或多个图层。该用户操作可以用户触发电子设备更新界面。
[0015] 结合第一方面,在另一种可能的设计方式中,上述第二延迟时间可以等于上述第一延迟时间。
[0016] 结合第一方面,在另一种可能的设计方式中,上述第一延迟时间是预设时长。即第一延迟时间是电子设备中设置的固定时长。
[0017] 结合第一方面,在另一种可能的设计方式中,电子设备可以根据统计周期的多个第一图层合成(surface flinger,SF)帧长,确定统计周期的第三SF帧长。然后,电子设备可以在第三SF帧长小于预设帧长阈值时,调整上述第一垂直同步信号。其中,第三SF帧长是多个第一SF帧长的平均值或者多个第一SF帧长中的最大值。
[0018] 结合第一方面,在另一种可能的设计方式中,电子设备可以在统计周期的多个第一SF帧长波动较大时,调整上述第一垂直同步信号。具体的,电子设备可以计算统计周期的多个第一SF帧长的期望值,并计算多个第一SF帧长的加权标准差。其中,多个第一SF帧长的加权标准差用于表征多个第一SF帧长的波动情况。然后,电子设备可以根据所述第二垂直同步信号的信号周期、预设延迟收益值和所述期望值,计算多个第一SF帧长的标准差门限。最后,电子设备可以在多个第一SF帧长的权标准差小于标准差门限时,调整上述第一垂直同步信号。其中,多个第一SF帧长的权标准差小于标准差门限则表示该多个第一SF帧长波动较大。
[0019] 结合第一方面,在另一种可能的设计方式中,电子设备可以根据前台应用确定上述第一延迟时间。具体的,上述第一延迟时间可以是前台应用对应的预设延迟时间。其中,前台应用是电子设备当前显示的界面对应的应用。
[0020] 可以理解,电子设备中可以安装多个应用。每个应用可以对应一个或多个预设延迟时间。电子设备在前台运行不同应用时,进行图层合成所需花费的时间(即SF帧长)不同。因此,可以针对每一个应用设置固定的预设延迟时间。其中,电子设备在前台运行一个应用时的SF帧长越大,该应用的预设延迟时间则越小;电子设备在前台运行一个应用时的SF帧长越小,该应用的预设延迟时间则越大。其中,上述前台应用是用户级应用。
[0021] 结合第一方面,在另一种可能的设计方式中,由于不同电子设备的处理器的能力不同,如一个电子设备的处理器的最大工作频率为800兆赫(MHz),而另一个电子设备的处理器的最大工作频率为600MHz;因此,不同电子设备中同一应用的预设延迟时间也可以不同。
[0022] 本申请中,考虑到电子设备在前台运行不同应用时的SF帧长不同,可以为不同应用设置不同的预设延迟时间。这样,电子设备在前台运行不同应用时,便可以采用不同的预设延迟时间调整垂直同步信号,可以提升用户体验。
[0023] 结合第一方面,在另一种可能的设计方式中,上述一个或多个图层可以包括:电子设备执行一个或多个应用对应的绘制任务所绘制的图层。该一个或多个应用可以包括:一个或多个系统级应用,以及一个或多个用户级应用中的至少一个。上述系统级应用是电子设备出厂时便安装在电子设备中的不可卸载的应用。例如,该系统级应用可以包括:状态栏、launcher、导航栏、壁纸、“设置”、“电话”和“短消息”等应用。上述用户级应用可以是安装在电子设备中的可卸载的应用。其中,用户级应用可以包括电子设备出厂时便安装在电子设备中的可卸载的应用,以及电子设备可响应于用户的操作从应用商店下载的第三方应用。
[0024] 结合第一方面,在另一种可能的设计方式中,电子设备可以统计电子设备进行多次图层合成所花费的时间,动态调整第一延迟时间。具体的,本申请的方法还可以包括:获取统计周期内的多个第一图层合成SF帧长,每个第一SF帧长为进行一次图层合成所花费的时间,每次进行图层合成所花费的时间相同或不同;根据多个第一SF帧长,确定第一延迟时间。
[0025] 可以理解,根据统计周期的多个第一SF帧长确定的第一延迟时间,用于在该统计周期的下一个统计周期,调整第一垂直同步信号和第三垂直同步信号。
[0026] 其中,电子设备根据统计周期内的多个SF帧长,动态调整第一延迟时间,可以保证电子设备的显示屏正常显示画面的前提下,缩短电子设备的响应延迟。
[0027] 结合第一方面,在另一种可能的设计方式中,上述根据多个第一SF帧长,确定第一延迟时间的方法可以包括:根据多个第一SF帧长,确定预测SF帧长,预测SF帧长是预测的下一次进行图层合成所需花费的时间;计算同步周期与预测SF帧长的差值,得到第一延迟时间。
[0028] 结合第一方面,在另一种可能的设计方式中,如果上述预测SF帧长较小,那么计算同步周期与预测SF帧长的差值得到的第一延迟时间则会较大。这样,容易出现图像帧的丢帧。为了减少图像帧的丢帧的可能性,上述预测SF帧长可以是对应统计周期内最大的一个第一SF帧长。
[0029] 结合第一方面,在另一种可能的设计方式中,电子设备可以计算在统计周期内分别采用预设时间集合中的每个延迟时间调整第一垂直同步信号后的延迟收益值,然后将延迟收益值最大的延迟时间确定为第一延迟时间。这样,可以最大限度的缩短电子设备的响应延迟。具体的,上述根据同步周期和所述多个第一SF帧长,确定第一延迟时间,包括:获取所述统计周期内,根据预设时间集合中的每个延迟时间调整第一垂直同步信号后的延迟收益值;确定预设时间集合中、最大延迟收益值对应的延迟时间为第一延迟时间。上述预设时间集合中包括多个延迟时间。
[0030] 例如,预设时间集合包括取值范围为[TOffset_D,TZ)的多个延迟时间。TZ是同步周期。TOffset_D是当前延迟时间,该当前延迟时间是第一垂直同步信号当前在一个同步周期相对于第二垂直同步信号的延迟时间。
[0031] 一个延迟时间对应的延迟收益值是一个延迟时间与一个延迟时间对应的不丢帧率的乘积。一个延迟时间对应的不丢帧率和丢帧率的和为1。
[0032] 例如,本申请中可以采用以下公式(1)f(offset)=(offset)*(1-Poffset)计算一个延迟时间offset对应的延迟收益值f(offset)。其中,Poffset是一个延迟时间offset对应的丢帧率。1-Poffset是一个延迟时间offset对应的不丢帧率。
[0033] 一个延迟时间对应的丢帧率是根据一个延迟时间调整第一垂直同步信号后,在上述统计周期内图像帧的丢帧次数与总次数的比值。一个延迟时间对应的丢帧率是根据一个延迟时间、多个第一SF帧长和同步周期得到的。
[0034] 其中,在一个预设时间集合中,随着延迟时间的增大,延迟收益值逐渐增大;延迟收益值增大到一定值时,随着延迟时间的增大,延迟收益值逐渐减少。本申请实施例中,电子设备从预设时间集合中的最小延迟时间开始,以预设步进逐渐增大延迟时间,以找到一个延迟收益值最大的延迟时间,并将该延迟时间作为最优值(即第一延迟时间),来调整第一垂直同步信号。这样,可以最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0035] 结合第一方面,在另一种可能的设计方式中,为了降低丢帧率,保证一定的不丢帧率。上述第一延迟时间可以是预设时间集合中丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间。
[0036] 结合第一方面,在另一种可能的设计方式中,为了避免在每一个统计周期结束后都调整第一垂直同步信号,出现延迟时间调整的乒乓现象。电子设备可以根据连续N个统计周期中的每个统计周期中、预设时间集合中、最大延迟收益值对应的延迟时间,确定上述第一延迟时间。具体的,上述根据同步周期和多个第一SF帧长,确定第一延迟时间,可以包括:在连续N个统计周期中的每个统计周期内执行步骤1和步骤2,以得到每个统计周期对应的第三延迟时间,N≥2,N为正整数;确定N个统计周期对应的第三延迟时间中,最短的第三延迟时间为第一延迟时间。其中,下一个统计周期是N个统计周期的下一个统计周期。
[0037] 步骤1:获取统计周期内,根据预设时间集合中的每个延迟时间调整第一垂直同步信号后的延迟收益值。步骤2:获取统计周期对应的第三延迟时间,第三延迟时间是预设时间集合中、最大延迟收益值对应的延迟时间。
[0038] 需要注意的是,步骤1中所述的预设时间集合、一个延迟时间对应的延迟收益值,以及一个延迟时间对应的不丢帧率和丢帧率的详细描述可以参考上述可能的设计方式中的相关内容,本申请实施例这里不予赘述。
[0039] 结合第一方面,在另一种可能的设计方式中,为了降低丢帧率,保证一定的不丢帧率。上述第三延迟时间是预设时间集合中丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间。
[0040] 结合第一方面,在另一种可能的设计方式中,上述确定N个统计周期对应的第三延迟时间中,最短的第三延迟时间为第一延迟时间,可以包括:如果N个统计周期对应的第三延迟时间均大于当前延迟时间,则确定N个统计周期对应的第三延迟时间中,最短的第三延迟时间为第一延迟时间。这样,可以降低图像帧丢帧的可能性。从而可以在保证电子设备的LCD正常显示画面的前提下,最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0041] 结合第一方面,在另一种可能的设计方式中,如果N个统计周期对应的第三延迟时间均小于当前延迟时间,则确定N个统计周期对应的第三延迟时间中,最长的第三延迟时间为第一延迟时间。这样,可以在保证电子设备正常显示画面的前提下,缩短电子设备的响应延迟,提升电子设备的流畅性。
[0042] 结合第一方面,在另一种可能的设计方式中,由于部分统计周期中的SF帧长的波动可能会比较大;因此,这类统计周期的第一延迟时间相比于其他统计周期的第一延迟时间的变化幅度可能较大。为了保证电子设备调整第一垂直同步信号时,所采用的第一延迟时间的幅度的稳定性;电子设备在一个统计周期内的多个SF帧长(即第一SF帧长)的变化比较稳定时,才会根据这个统计周期内的相关参数确定第一延迟时间。
[0043] 具体的,在上述获取统计周期内,根据预设时间集合中的每个延迟时间调整第一垂直同步信号后的延迟收益值之前,本申请的方法还可以包括:计算多个第一SF帧长的期望值,并计算多个第一SF帧长的加权标准差;根据同步周期、预设延迟收益值和所述期望值,计算多个第一SF帧长的标准差门限。如果加权标准差小于标准差门限,则表示对应统计周期内的SF帧长的波动较小,可以采用根据该统计周期的相关参数调整第一垂直同步信号。具体的,如果加权标准差小于标准差门限,则可以获取统计周期内,根据预设时间集合中的每个延迟时间调整第一垂直同步信号后的延迟收益值。
[0044] 结合第一方面,在另一种可能的设计方式中,如果加权标准差大于或等于标准差门限,则表示对应统计周期内的SF帧长的波动较大,可以启动异常保护机制,调整第一垂直同步信号,使第一垂直同步信号相对于第二垂直同步信号没有延迟。
[0045] 结合第一方面,在另一种可能的设计方式中,可以采用如下方式计算统计周期内的多个第一SF帧长的加权标准差:计算统计周期内的多个第一SF帧长的标准差σ;根据标准差σ、统计周期的上一统计周期的标准差σS和预设加权值a,采用以下公式(3):
[0046] σJQ=a*σ+(1-a)*σS公式(3)
[0047] 计算加权标准差σJQ。
[0048] 结合第一方面,在另一种可能的设计方式中,可以采用如下方式计算多个第一SF帧长的标准差门限:根据同步周期TZ、预设延迟收益值S和期望值μ,采用以下公式(4):
[0049] σM=(TZ-S-μ)/3公式(4)
[0050] 计算多个第一SF帧长的标准差门限σM。
[0051] 结合第一方面,在另一种可能的设计方式中,上述调整第一垂直同步信号,使第一垂直同步信号相对于第二垂直同步信号延迟第一延迟时间,可以包括:在下一个统计周期内,如果预测SF帧长小于第二SF帧长,则调整第一垂直同步信号,使第一垂直同步信号相对于第二垂直同步信号延迟第一延迟时间。其中,该预测SF帧长是同步周期与第一延迟时间的差值,第二SF帧长是下一个统计周期内最近一次进行图层合成所需花费的时间。
[0052] 结合第一方面,在另一种可能的设计方式中,在上述调整第一垂直同步信号,使第一垂直同步信号相对于第二垂直同步信号没有延迟之后,本申请的方法还可以包括:电子设备在预设惩罚时间内不调整第一垂直同步信号。
[0053] 第二方面,本申请提供一种电子设备,该电子设备包括触摸屏、存储器和一个或多个处理器;所述触摸屏、所述存储器和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
[0054] 第三方面,本申请提供一种芯片系统,该芯片系统应用于包括触摸屏的电子设备;所述芯片系统包括一个或多个接口电路和一个或多个处理器;所述接口电路和所述处理器通过线路互联;所述接口电路用于从所述电子设备的存储器接收信号,并向所述处理器发送所述信号,所述信号包括所述存储器中存储的计算机指令;当所述处理器执行所述计算机指令时,所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
[0055] 第四方面,本申请提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如第一方面及其任一种可能的设计方式所述的方法。
[0056] 第五方面,本申请提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行如第一方面及其任一种可能的设计方式所述的方法。
[0057] 可以理解地,上述提供的第二方面所述的电子设备,第三方面所述的芯片系统,第四方面所述的计算机存储介质,第五方面所述的计算机程序产品所能达到的有益效果,可参考第一方面及其任一种可能的设计方式中的有益效果,此处不再赘述。

附图说明

[0058] 图1A为本申请实施例提供的一种电子设备响应于触摸操作显示图像的软件处理流程示意图;
[0059] 图1B为图1A所示的软件处理流程中的延迟示意图;
[0060] 图2为本申请实施例提供的一种电子设备的硬件结构示意图;
[0061] 图3为本申请实施例提供的一种图像处理流程示意图;
[0062] 图4A为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0063] 图4B为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0064] 图5A为本申请实施例提供的一种垂直同步信号的调整原理示意图;
[0065] 图5B为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0066] 图6A为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0067] 图6B为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0068] 图7A为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0069] 图7B为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0070] 图7C为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0071] 图7D为本申请实施例提供的一种触摸响应时间与延迟时间的对应关系实例示意图;
[0072] 图8A为本申请实施例提供的一种插值算法的原理示意图;
[0073] 图8B为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0074] 图8C为本申请实施例提供的另一种垂直同步信号的调整原理示意图;
[0075] 图8D为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0076] 图8E为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0077] 图8F为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0078] 图9A为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0079] 图9B为本申请实施例提供的一种延迟时间及延迟时间对应的延迟收益的分布示意图;
[0080] 图10为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0081] 图11为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0082] 图12为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0083] 图13为本申请实施例提供的一种基于垂直同步信号的控制方法流程图;
[0084] 图14为本申请实施例提供的一种优化模块的示意图;
[0085] 图15为本申请实施例提供的另一种电子设备响应于触摸操作显示图像的软件处理流程示意图;
[0086] 图16为本申请实施例提供的一种测试场景的测试结果示意图;
[0087] 图17为本申请实施例提供的一种芯片系统的结构示意图。

具体实施方式

[0088] 以下,术语“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
[0089] 本申请实施例提供一种基于垂直同步信号的控制方法,该方法可以应用于包括触摸屏的电子设备。具体的,该方法可以应用于电子设备响应于用户在触摸屏的触摸操作,在触摸屏显示图像的过程中。通过本申请实施例的方法,可以缩短电子设备的响应延迟,提升电子设备的流畅性,提升用户体验。
[0090] 请参考图1A,其以上述用户操作是触摸操作为例,示出从“用户在触摸屏输入触摸操作”到“触摸屏显示该触摸操作对应的图像”过程中,电子设备的软件处理流程示意图。如图1A所示,电子设备可以包括:触控面板(touch panel,TP)/TP驱动(Driver)10、Input框架(即Input Framework)20、UI框架(即UI Framework)30、Display框架(即Display Framework)40和硬件显示模块50。
[0091] 如图1A所示,电子设备的软件处理流程可以包括以下步骤(1)-步骤(5)。
[0092] 步骤(1):TP IC/TP驱动10中的TP采集用户(如用户手指或者触控笔等触控物体)对电子设备的TP的触摸操作后,TP驱动向Event Hub上报相应的触控事件。
[0093] 步骤(2):Input框架20的Input Reader线程可以从Event Hub中读取触控事件,然后向Input Dispatcher线程发送该触控事件;由Input Dispatcher线程向UI框架30中的UI线程(如DoFrame)上传该触控事件。
[0094] 步骤(3):UI框架30中的UI线程绘制该触控事件对应的一个或多个图层;渲染线程(如DrawFrame)对一个或多个图层进行图层渲染。
[0095] 步骤(4):Display框架40中的合成线程对绘制的一个或多个图层(即渲染后的一个或多个图层)进行图层合成得到图像帧。
[0096] 步骤(5):硬件显示模块50的液晶显示面板(Liquid Crystal Display,LCD)驱动可接收合成的图像帧,由LCD显示合成的图像帧。LCD显示图像帧后,LCD显示的图像可被人眼感知。
[0097] 本申请实施例这里通过分析“用户在触摸屏输入触摸操作”到“触摸屏显示该触摸操作对应的图像被人眼感知”过程中、电子设备的处理流程,对电子设备缩短响应延迟的原理进行简单说明。
[0098] 其中,上述步骤(1)中,TP IC/TP驱动10采集触摸操作并向Input框架20上报触控事件的过程中,可能会存在图1B所示的内核延迟。上述步骤(2)中,Input框架20处理触控事件并向UI框架输入触控事件的过程中,可能会存在图1B所示的输入延迟。上述步骤(3)中,UI框架中的UI线程绘制触控事件对应的一个或多个图层,可能会存在图1B所示的绘制延迟(也称为UI线程延迟);并且,渲染线程进行图层渲染可能会存在图1B所示的渲染延迟。上述步骤(4)中,Display框架40中的合成线程进行图层合成可能会存在图1B所示的合成延迟。上述步骤(5)中,硬件显示模块50显示合成的图像帧的过程中,可能会存在图1B所示的送显延迟。
[0099] 本申请实施例提供的一种基于垂直同步信号的控制方法,可以通过缩短图1B所示的“合成延迟”,以缩短电子设备的响应延迟,提升电子设备的流畅性。
[0100] 示例性的,本申请实施例中的电子设备可以是手机、平板电脑、桌面型、膝上型、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本,以及蜂窝电话、个人数字助理(personal digital assistant,PDA)、增强现实(augmented reality,AR)\虚拟现实(virtual reality,VR)设备等包括触摸屏的设备,本申请实施例对该电子设备的具体形态不作特殊限制。
[0101] 下面将结合附图对本申请实施例的实施方式进行详细描述。
[0102] 请参考图2,为本申请实施例提供的一种电子设备200的结构示意图。如图2所示,电子设备200可以包括处理器210,外部存储器接口220,内部存储器221,通用串行总线(universal serial bus,USB)接口230,充电管理模块240,电源管理模块241,电池242,天线1,天线2,移动通信模块250,无线通信模块260,音频模块270,扬声器270A,受话器270B,麦克风170C,耳机接口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等。
[0103] 可以理解的是,本实施例示意的结构并不构成对电子设备200的具体限定。在另一些实施例中,电子设备200可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
[0104] 处理器210可以包括一个或多个处理单元,例如:处理器210可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processing unit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
[0105] 控制器可以是电子设备200的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
[0106] 处理器210中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器210中的存储器为高速缓冲存储器。该存储器可以保存处理器210刚用过或循环使用的指令或数据。如果处理器210需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器210的等待时间,因而提高了系统的效率。
[0107] 在一些实施例中,处理器210可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purpose input/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
[0108] 可以理解的是,本实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备200的结构限定。在另一些实施例中,电子设备200也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
[0109] 充电管理模块240用于从充电器接收充电输入。充电管理模块240为电池242充电的同时,还可以通过电源管理模块241为电子设备供电。
[0110] 电源管理模块241用于连接电池242,充电管理模块240与处理器210。电源管理模块241接收电池242和/或充电管理模块240的输入,为处理器210,内部存储器221,外部存储器,显示屏294,摄像头293,和无线通信模块260等供电。在其他一些实施例中,电源管理模块241也可以设置于处理器210中。在另一些实施例中,电源管理模块241和充电管理模块240也可以设置于同一个器件中。
[0111] 电子设备200的无线通信功能可以通过天线1,天线2,移动通信模块250,无线通信模块260,调制解调处理器以及基带处理器等实现。
[0112] 天线1和天线2用于发射和接收电磁波信号。电子设备200中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。
[0113] 移动通信模块250可以提供应用在电子设备200上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块250可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块250可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块250还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。
[0114] 调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器270A,受话器270B等)输出声音信号,或通过显示屏294显示图像或视频。
[0115] 无线通信模块260可以提供应用在电子设备200上的包括无线局域网(wireless local 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转为电磁波辐射出去。
[0116] 在一些实施例中,电子设备200的天线1和移动通信模块250耦合,天线2和无线通信模块260耦合,使得电子设备200可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code division multiple 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),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidou navigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
[0117] 电子设备200通过GPU,显示屏294,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏294和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器210可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
[0118] 显示屏294用于显示图像,视频等。该显示屏294包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emitting diode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrix organic light emitting diode,AMOLED),柔性发光二极管(flex light-emitting diode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot light emitting diodes,QLED)等。
[0119] 其中,本申请实施例中的显示屏294可以是触摸屏。即该显示屏294中集成了触摸传感器280K。该触摸传感器280K也可以称为“触控面板”。也就是说,显示屏294可以包括显示面板和触摸面板,由触摸传感器280K与显示屏294组成触摸屏,也称“触控屏”。例如,该显示屏294可以集成图1A所示的硬件显示模块50和TP/TP驱动10的功能。触摸传感器280K用于检测作用于其上或附近的触摸操作。触摸传感器280K检测到的触摸操作后,可以由内核层的驱动(如TP驱动)传递给上层,以确定触控事件类型。可以通过显示屏294提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器280K也可以设置于电子设备200的表面,与显示屏294所处的位置不同。
[0120] 电子设备200可以通过ISP,摄像头293,视频编解码器,GPU,显示屏294以及应用处理器等实现拍摄功能。ISP用于处理摄像头293反馈的数据。摄像头293用于捕获静态图像或视频。数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。视频编解码器用于对数字视频压缩或解压缩。电子设备200可以支持一种或多种视频编解码器。这样,电子设备200可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
[0121] NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现电子设备200的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
[0122] 外部存储器接口220可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备200的存储能力。外部存储卡通过外部存储器接口220与处理器210通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。内部存储器221可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器210通过运行存储在内部存储器221的指令,从而执行电子设备200的各种功能应用以及数据处理。例如,在本申请实施例中,处理器210可以通过执行存储在内部存储器221中的指令,内部存储器221可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储电子设备200使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器221可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
[0123] 电子设备200可以通过音频模块270,扬声器270A,受话器270B,麦克风170C,耳机接口270D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
[0124] 音频模块270用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块270还可以用于对音频信号编码和解码。扬声器270A,也称“喇叭”,用于将音频电信号转换为声音信号。受话器270B,也称“听筒”,用于将音频电信号转换成声音信号。麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。耳机接口270D用于连接有线耳机。
[0125] 压力传感器280A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器280A可以设置于显示屏294。压力传感器280A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器280A,电极之间的电容改变。电子设备200根据电容的变化确定压力的强度。当有触摸操作作用于显示屏294,电子设备200根据压力传感器280A检测所述触摸操作强度。电子设备200也可以根据压力传感器280A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。本申请实施例中,电子设备200可以通过压力传感器280A获取用户的触摸操作的按压力度。
[0126] 按键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卡等。
[0127] 以下实施例中的方法均可以在具有上述硬件结构的电子设备200中实现。
[0128] 以下对本申请实施例中涉及的术语进行介绍:
[0129] 垂直同步信号1:如VSYNC_APP。该垂直同步信号1可以用于触发绘制一个或多个图层。需要注意的是,本申请实施例中“垂直同步信号1可以用于触发绘制一个或多个图层”具体是指:垂直同步信号1可以用于触发绘制一个或多个图层,并触发对该一个或多个图层进行渲染。即本申请实施例中,绘制的一个或多个图层是指渲染后的一个或多个图层。本申请实施例中,电子设备响应于垂直同步信号1,可以通过多个绘制线程中的每个绘制线程分别针对每个应用绘制一个或多个图层。即电子设备响应于垂直同步信号1,可以同时针对一个或多个应用执行绘制任务,以绘制每个应用对应的一个或多个图层。其中,上述一个或多个应用的详细描述可以参考以下实施例中的相关内容,本申请实施例这里不予赘述。
[0130] 垂直同步信号2:如VSYNC_SF。该垂直同步信号2可以用于触发对绘制的一个或多个图层进行图层合成得到图像帧。
[0131] 垂直同步信号3:如HW_VSYNC。该垂直同步信号3可以用于触发硬件刷新显示图像帧。
[0132] 其中,本申请实施例中的垂直同步信号1(如VSYNC_APP)是第一垂直同步信号,垂直同步信号2(如VSYNC_SF)是第三垂直同步信号,垂直同步信号3(HW_VSYNC)是第二垂直同步信号。
[0133] 需要注意的是,在不同的系统或者架构中,垂直同步信号的名称可能不同。例如,在一些系统或者架构中,上述用于触发绘制一个或多个图层的垂直同步信号(即垂直同步信号1)的名称可能不是VSYNC_APP。但是,无论垂直同步信号的名称是什么,只要是具备类似功能的同步信号,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
[0134] 并且,在不同的系统或者架构中,对上述垂直同步信号的定义也可能不同。例如,在另一些系统或架构中,上述垂直同步信号1的定义可以为:垂直同步信号1可以用于触发渲染一个或多个图层;垂直同步信号2的定义可以为:垂直同步信号2可以用于触发根据一个或多个图层生成图像帧;垂直同步信号3的定义可以为:垂直同步信号3可以用于触发显示图像帧。本申请实施例中,对垂直同步信号的定义不作限定。但是,无论对垂直同步信号做何种定义,只要是具备类似功能的同步信号,符合本申请实施例提供的方法的技术思路,都应涵盖在本申请的保护范围之内。
[0135] 结合图1A,响应于用户操作(例如,用户对TP的触摸操作,如图3所示,手指触摸TP)或者电子设备发生UI事件,UI框架可以在垂直同步信号1到来的时刻,调用UI线程绘制触控事件对应的一个或多个图层,再调用渲染线程以对该一个或多个图层进行渲染。例如,用户操作还可以是用户通过鼠标或者按键等输入的操作。电子设备响应于用户通过鼠标或按键等输入的用户操作,也可以通过本申请实施例的方法,提升电子设备的流畅性。然后,硬件合成(Hardware Composer,HWC)(如图1A所示的display框架40中的合成线程)可以在垂直同步信号2到来的时刻,调用合成线程对绘制的一个或多个图层(即渲染后的一个或多个图层)进行图层合成得到图像帧;最后,硬件显示模块50可以在垂直同步信号2到来的时刻,在LCD(即显示屏,如上述显示屏294,此处以LCD为例)刷新显示上述图像帧。其中,上述UI事件可以是由用户对TP的触摸操作触发的。或者,该UI事件可以是由电子设备自动触发的。例如,电子设备的前台应用自动切换画面时,可以触发上述UI事件。前台应用是电子设备的显示屏当前显示的界面对应的应用。
[0136] 需要注意的是,UI框架是基于垂直同步信号1周期性的进行图层绘制和渲染的;硬件合成HWC是基于垂直同步信号2周期性的进行图层合成的;LCD是基于垂直同步信号3周期性的进行图像帧刷新的。
[0137] 其中,垂直同步信号3是由电子设备的显示屏驱动触发的硬件信号。该垂直同步信号3(如HW_VSYNC)的信号周期T3是根据电子设备的显示屏的屏幕刷新率确定的。具体的,垂直同步信号3的信号周期T3是电子设备的显示屏(如LCD)的屏幕刷新率的倒数。
[0138] 例如,电子设备的显示屏的屏幕刷新率可以为60赫兹(Hz)、70Hz、75Hz或者80Hz等任一值。以屏幕刷新率是60Hz为例,上述垂直同步信号3的信号周期T3=1/60=0.01667秒(s)=16.667毫秒(ms)。需要注意的是,其中,电子设备可能支持多个不同的屏幕刷新率。例如,假设电子设备支持的最大屏幕刷新率为80Hz。那么,该电子设备则可能支持屏幕刷新率80Hz、60Hz或者40Hz等。本申请实施例中所述的屏幕刷新率是电子设备当前所使用的屏幕刷新率。即垂直同步信号3的信号周期T3是电子设备当前所使用的屏幕刷新率的倒数。
[0139] 需要注意的是,本申请实施例中的垂直同步信号3是一个周期性离散信号。例如,如图5A中的(a)所示,每间隔一个信号周期(如T3)就会有一个由硬件驱动触发的垂直同步信号3。
[0140] 而垂直同步信号1和垂直同步信号2是基于垂直同步信号3产生的。即垂直同步信号3可以是垂直同步信号1和垂直同步信号2的信号源;或者,垂直同步信号1和垂直同步信号2与垂直同步信号3同步。故垂直同步信号1和垂直同步信号2的信号周期与垂直同步信号3的信号周期相同,且相位一致。例如,如图5A中的(a)所示,垂直同步信号1的信号周期T1,垂直同步信号2的信号周期T2和垂直同步信号3的信号周期T3相同。即T1=T2=T3。并且,如图5A中的(a)所示,垂直同步信号1、垂直同步信号2,以及垂直同步信号3的相位一致。可以理解的是,实际实施过程中,垂直同步信号1、垂直同步信号2,以及垂直同步信号3之间可能会因为各种因素(如处理性能)存在一定的相位误差。需要注意的是,在理解本申请实施例的方法时,上述相位误差被忽略。
[0141] 需要注意的是,上述垂直同步信号1和垂直同步信号2也是周期性离散信号。例如,如图5A中的(a)所示,每间隔一个信号周期(如T1)就会有一个垂直同步信号1,每间隔一个信号周期(如T2)就会有一个垂直同步信号2,即图5A中的(a)中多次出现的垂直同步信号1是按照垂直同步信号1的信号周期T1依次地到来,图5A中的(a)中多次出现的垂直同步信号2是按照垂直同步信号2的信号周期T2依次地到来。因此,上述垂直同步信号3、垂直同步信号1和垂直同步信号2都可以看做是周期性离散信号。
[0142] 由于垂直同步信号1、垂直同步信号2和垂直同步信号3都是周期性信号;因此,本申请实施例所述的垂直同步信号到来(如垂直同步信号1到来),都是指该垂直同步信号的脉冲边缘到来;响应于垂直同步信号(如响应于垂直同步信号1),都是指响应于该垂直同步信号的脉冲边缘。例如,如图5所示,t1时刻的垂直同步信号1到来,是指t1时刻垂直同步信号1的脉冲边缘到来;响应于t1时刻的垂直同步信号1,是指响应于t1时刻垂直同步信号1的脉冲边缘。
[0143] 其中,上述脉冲边缘是一种从示波器或者观测系统中形象地观察到的脉冲的边缘。在不同系统中可能是上升沿或者下降沿或者二者都包括,在实际系统中上可以是通过定时器翻转、中断信号等方式实现。
[0144] 本申请实施例中,上述垂直同步信号1、垂直同步信号2和垂直同步信号3的信号周期都可以称为同步周期TZ。即T1=T2=T3=TZ。也就是说,本申请实施例中的同步周期是电子设备的显示屏的屏幕刷新率的倒数。其中,图3所示的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。
[0145] 其中,TP是触控面板,TP可以集成在上述显示屏294中。TP可以周期性检测用户的触摸操作。TP检测到触摸操作后,可以唤醒上述垂直同步信号1和垂直同步信号2,以触发UI框架基于垂直同步信号1进行图层绘制和渲染,硬件合成HWC基于垂直同步信号2进行图层合成。其中,TP检测触摸操作的检测周期与垂直同步信号3(如HW_VSYNC)的信号周期T3相同。
[0146] 可以理解,由于LCD是基于垂直同步信号3周期性的进行图像帧刷新的;因此,即使硬件合成HWC已经完成图像帧的合成,但是如果没有检测到垂直同步信号3,LCD是不会进行图像帧刷新显示该图像帧的。LCD只会在垂直同步信号3的时刻到来时进行图像帧刷新,显示HWC合成的图像帧。
[0147] 例如,如图3所示,HWC完成图像帧合成后,经过一个延迟时间(Offset),垂直同步信号3的时刻到来,LCD才会进行图像帧刷新显示HWC合成的图像帧。
[0148] 本申请实施例提供的方法中,可以通过调整垂直同步信号1,使垂直同步信号1相对于垂直同步信号3延迟一定时间(如第一延迟时间)。这样,使LCD在HWC完成图像帧合成后,可以及时进行图像帧刷新显示该图像帧。这样,便可以在不增加电子设备的负载的情况下,缩短图1B所示的“合成延迟”,以缩短电子设备的响应延迟,提升电子设备的流畅性。
[0149] 需要注意的是,调整垂直同步信号1,使垂直同步信号1相对于垂直同步信号3延迟第一延迟时间后,垂直同步信号1与垂直同步信号3便会存在相位差。调整垂直同步信号1,使垂直同步信号1相对于垂直同步信号3存在相位差后,垂直同步信号1相对于垂直同步信号3便会有一定的延迟时间(如第一延迟时间)。其中,调整垂直同步信号1,使垂直同步信号1与垂直同步信号3存在相位差,该相位差转换为时间后可以表现为垂直同步信号1延迟第一延迟时间。
[0150] 综上所述,本申请实施例中,在一定范围内,“调整垂直同步信号1相对于垂直同步信号3的延迟时间”或“调整垂直同步信号1相对于垂直同步信号3的相位”都可以实现本申请实施例中缩短电子设备的响应延迟的效果。以下实施例中,均以调整垂直同步信号1,使垂直同步信号1相对于垂直同步信号3延迟第一延迟时间为例,对本申请实施例的方法进行说明。
[0151] 本申请实施例提供的一种基于垂直同步信号的控制方法的执行主体可以是垂直同步信号的调整装置。该调整装置可以是上述电子设备中的任一种(例如,该调整装置可以为图2所示的电子设备200)。或者,该调整装置还可以为电子设备的中央处理器(英文:Central Processing Unit,简称:CPU),或者电子设备中的用于执行所述基于垂直同步信号的控制方法的控制模块。本申请实施例中以电子设备执行基于垂直同步信号的控制方法为例,说明本申请实施例提供的基于垂直同步信号的控制方法。
[0152] 以下实施例中,以第一垂直同步信号是上述垂直同步信号1(如VSYNC_APP信号),第三垂直同步信号是上述垂直同步信号2(如VSYNC_SF信号),第二垂直同步信号是上述垂直同步信号3(如HW_VSYNC信号)为例,对本申请实施例的方法进行说明。
[0153] 实施例(一)
[0154] 本申请实施例提供一种基于垂直同步信号的控制方法。该方法可以应用于包括显示屏的电子设备。如图4A或图4B所示,该基于垂直同步信号的控制方法可以包括“调整垂直同步信号前的控制流程”和“调整垂直同步信号,以及调整后的控制流程”。
[0155] 如图4A或图4B所示,上述“调整垂直同步信号前的控制流程”可以包括S301-S303。
[0156] S301、电子设备响应于上述垂直同步信号1,绘制一个或多个图层。
[0157] S302、电子设备响应于垂直同步信号2,对绘制的一个或多个图层进行图层合成得到图像帧。
[0158] S303、电子设备响应于垂直同步信号3,可以刷新显示图像帧。
[0159] 一般而言,垂直同步信号1相对于垂直同步信号3的延迟时间为零,相位差为零。例如,如图5A中的(a)所示,垂直同步信号1相对于垂直同步信号3的延迟时间为零,相位差为零。其中,在垂直同步信号1的信号周期T1与垂直同步信号3的信号周期T3相同(即T1=T3=TZ)的前提下,垂直同步信号1相对于垂直同步信号3的延迟时间为零,具体可以为:在一个垂直同步信号3到达的同时,也会有一个垂直同步信号1到达。
[0160] 例如,如图5A中的(a)所示,在t1时刻,垂直同步信号1和垂直同步信号3同时到达;在t2时刻,垂直同步信号1和垂直同步信号3同时到达;在t3时刻,垂直同步信号1和垂直同步信号3同时到达;在t4时刻,垂直同步信号1和垂直同步信号3同时到达;在t5时刻,垂直同步信号1和垂直同步信号3同时到达。
[0161] 如图4A或图4B所示,上述“调整垂直同步信号,以及调整后的控制流程”可以包括S401-S403。
[0162] S401、电子设备获取第一延迟时间。
[0163] 在一些实施例中,第一延迟时间TOffset_1是预设时长。其中,该预设时长可以预先配置在电子设备中。或者,该预设时长可以由用户在电子设备中设置。例如,该预设时长可以为2毫秒(ms)、2.5ms、3ms或者4ms等任一时长。
[0164] 在另一些实施例中,电子设备可以根据一定时间(如统计周期)内的多次进行图层合成所花费的时间(即多个SF帧长)和上述同步周期,确定第一延迟时间TOffset_1。该实施例中,电子设备确定第一延迟时间TOffset_1的具体方法可以参考S801-S803的详细描述,本申请实施例这里不予赘述。
[0165] S402、电子设备调整垂直同步信号1,使垂直同步信号1相对于垂直同步信号3延迟第一延迟时间。
[0166] S403、电子设备响应于调整后的垂直同步信号1,绘制一个或多个图层。
[0167] 结合图5A中的(a),如图5A中的(b)所示,假设电子设备在t6时刻执行了S402。那么,在图5A中的(b)所示的t6时刻之后,垂直同步信号1相比于垂直同步信号3延迟第一延迟时间TOffset_1。而在t6时刻之前,垂直同步信号1相对于垂直同步信号3的延迟时间为零。
[0168] 例如,如图5A中的(b)所示,在t6时刻之前的t1时刻,垂直同步信号1和垂直同步信号3同时到达;在t6时刻之前的t2时刻,垂直同步信号1和垂直同步信号3同时到达;而在t6时刻之后的t3时刻,垂直同步信号3到达,而在t3时刻之后的t3.1时刻垂直同步信号1到达,t3时刻落后于t3时刻TOffset_1;在t6时刻之后的t4时刻,垂直同步信号3到达,而在t4时刻之后的t4.1时刻垂直同步信号1到达,t4.1时刻落后于t4时刻TOffset_1;在t6时刻之后的t5时刻,垂直同步信号3到达,而在t5时刻之后的t5.1时刻垂直同步信号1到达,t5.1时刻落后于t5时刻TOffset_1。
[0169] 需要注意的是,本申请实施例所述的“垂直同步信号1相对于垂直同步信号3的延迟时间”为:从任一个垂直同步信号3到达的时刻开始,在一个同步周期内到达的垂直同步信号1相对于该垂直同步信号3的延迟时间。
[0170] 例如,如图5A中的(a)所示,“垂直同步信号1相对于垂直同步信号3的延迟时间”可以为:t1时刻的垂直同步信号3与t2时刻的垂直同步信号1到达时刻的时间差,即t1时刻到t2时刻的时长;或者,t3时刻的垂直同步信号3与t4时刻的垂直同步信号1到达时刻的时间差,即t3时刻到t4时刻的时长。
[0171] 又例如,如图5A中的(b)所示,在t7时刻之后,“垂直同步信号1相对于垂直同步信号3的延迟时间”可以为:t3时刻的垂直同步信号3与t3.1时刻的垂直同步信号1到达时刻的时间差,即t3时刻到t3.1时刻的时长;或者,t4时刻的垂直同步信号3与t4.1时刻的垂直同步信号1到达时刻的时间差,即t4时刻到t4.1时刻的时长。
[0172] 在一些实施例中,垂直同步信号1相对于垂直同步信号2的延迟时间固定,即垂直同步信号1与垂直同步信号2存在固定的相位差。在这种情况下,电子设备调整垂直同步信号1后,垂直同步信号2会随之变化。例如,S402之后,垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。在该实施例中,如图4A所示,在S403之后,本申请实施例的方法还可以包括S404和S405:
[0173] S404、电子设备响应于垂直同步信号2,对绘制的一个或多个图层进行图层合成得到图像帧。
[0174] S405、电子设备响应于垂直同步信号3,刷新显示图像帧。
[0175] 在另一些实施例中,垂直同步信号1相对于垂直同步信号2没有固定的延迟时间。在这种情况下,电子设备执行S402之后,还可以调整垂直同步信号2。在该实施例中,如图4B所示,上述“调整垂直同步信号,以及调整后的控制流程”可以包括:S401、S402、S403、S404a、S404b和S405:
[0176] S404a、电子设备调整垂直同步信号2,使垂直同步信号2相对于垂直同步信号3延迟第二延迟时间。
[0177] S404b、电子设备响应于调整后的垂直同步信号2,对绘制的一个或多个图层进行图层合成得到图像帧。
[0178] 一般而言,垂直同步信号2相对于垂直同步信号3的延迟时间为零,相位差为零。例如,如图5A中的(a)所示,垂直同步信号2相对于垂直同步信号3的延迟时间为零,相位差为零。其中,在垂直同步信号2的信号周期T2与垂直同步信号3的信号周期T3相同(即T1=T3=TZ)的前提下,垂直同步信号2相对于垂直同步信号3的延迟时间为零,具体可以为:在一个垂直同步信号3到达的同时,也会有一个垂直同步信号2到达。
[0179] 例如,如图5A中的(a)所示,在t1时刻、t2时刻、t3时刻、t4时刻和t5时刻,垂直同步信号2和垂直同步信号3同时到达。
[0180] 结合图5A中的(a),如图5A中的(b)所示,假设电子设备在t6时刻执行了S402。那么,在图5A中的(b)所示的t6时刻之后,垂直同步信号2垂直同步信号2相对于垂直同步信号3延迟第一延迟时间TOffset_1。而在t6时刻之前,垂直同步信号1相对于垂直同步信号3的延迟时间为零。
[0181] 例如,如图5A中的(b)所示,在t6时刻之前的t1时刻,垂直同步信号2和垂直同步信号3同时到达;而在t6时刻之后的t3时刻,垂直同步信号3到达,而在t3时刻之后的t3.1时刻垂直同步信号2到达,t3.1时刻落后于t3时刻TOffset_1。
[0182] 需要注意的是,本申请实施例所述的“垂直同步信号2相对于垂直同步信号3的延迟时间”的详细描述可以参考上述实施例对“垂直同步信号1相对于垂直同步信号3的延迟时间”的描述,本申请实施例这里不予赘述。
[0183] 实施例(二)
[0184] 本实施例这里对实施例(一)中,电子设备针对一个或多个应用,执行上述方法的原理说明。
[0185] 上述的一个或多个图层可以包括:电子设备执行一个或多个应用对应的绘制任务所绘制的图层。该一个或多个应用可以包括:一个或多个系统级应用,以及一个或多个用户级应用中的至少一个。上述系统级应用是电子设备出厂时便安装在电子设备中的不可卸载的应用。例如,该系统级应用可以包括:状态栏、launcher、导航栏、壁纸、“设置”、“电话”和“短消息”等应用。Launcher通常称为Android系统的桌面。上述用户级应用可以是安装在电子设备中的可卸载的应用。其中,用户级应用可以包括电子设备出厂时便安装在电子设备中的可卸载的应用,以及电子设备可响应于用户的操作从应用商店下载的第三方应用。本申请实施例所述的绘制任务包括“图层绘制”和“图层渲染”。
[0186] 以下通过两种应用场景,对电子设备针对一个或多个应用,执行本申请实施例的方法,进行图层的绘制、渲染、合成以及图像帧显示的原理进行说明。
[0187] 在应用场景(一)中,上述一个或多个应用可以仅包括一个应用。即上述一个或多个图层是电子设备执行一个应用对应的绘制任务所绘制的图层。即电子设备可以针对这一个应用执行S301或S403,以绘制(绘制并渲染)对应的一个或多个图层。然后,电子设备可以执行S302和S404b,对针对这一个应用绘制的一个或多个图层进行图层合成。
[0188] 示例性的,以上述一个应用是应用I为例,电子设备可以针对应用I执行S301或S403,得到绘制的一个或多个图层I。然后,电子设备可以执行S302和S404b,对针对该应用I绘制的一个或多个图层I进行图层合成,得到图像帧I。
[0189] 例如,以电子设备执行S403、S404b和S405为例,如图5B中的(a)所示,电子设备响应于t3.1时刻的垂直同步信号1,可以执行绘制I和渲染I;响应于t4.1时刻的垂直同步信号2,电子设备可以执行图像帧合成I,即对电子设备执行绘制I和渲染I得到的一个或多个图层I进行图层合成,可得到图像帧I;响应于t5时刻的垂直同步信号3,电子设备可执行图像帧显示I,刷新显示图像帧I。
[0190] 在应用场景(二)中,上述一个或多个应用可以包括多个应用。即上述一个或多个图层是电子设备执行多个应用对应的绘制任务所绘制的图层。例如,电子设备可以分屏显示多个应用的界面。此时,电子设备可以分别执行该多个应用对应的绘制任务,分别针对该多个应用中的每个应用绘制(即绘制并渲染)一个或多个图层。即电子设备可以分别针对该多个应用中的每个应用执行S301或S403,以绘制(绘制并渲染)对应的一个或多个图层。然后,电子设备可以执行S302和S404b,对针对这多个应用分别绘制的一个或多个图层进行图层合成。即S302和S404b中,绘制的一个或多个图层可以包括:电子设备执行多个应用对应的绘制任务,得到的图层。
[0191] 示例性的,以上述多个应用是2个应用(包括应用II和应用III)为例,电子设备可以针对应用II执行S301或S403,得到绘制的一个或多个图层II;针对应用III执行S301或S403,得到绘制的一个或多个图层III。然后,电子设备可以执行S302和S404b,对上述一个或多个图层II和上述一个或多个图层III,进行图层合成得到图像帧II。
[0192] 例如,以电子设备执行S403、S404b和S405为例,如图5B中的(b)所示,电子设备响应于t3.1时刻的垂直同步信号1,可以针对应用II执行绘制II和渲染II,得到上述一个或多个图层II,针对应用III执行绘制III和渲染III,得到上述一个或多个图层III;响应于t4.1时刻的垂直同步信号2,电子设备可以执行图像帧合成II+III,即对电子设备执行绘制II和渲染II得到的一个或多个图层II,以及执行绘制III和渲染III得到一个或多个图层III,进行图层合成得到上述图像帧II;响应于t5时刻的垂直同步信号3,电子设备可执行图像帧显示II+III,刷新显示图像帧II。需要注意的是,图5B中的(b)所示的“图像帧合成II+III”表示一次图层合成。电子设备执行“图像帧显示II+III”刷新显示的也是一帧图像。
[0193] 由上述描述可知,本申请实施例的方法不仅可以应用于电子设备以单窗口显示一个应用的界面的场景中,还可以应用于电子设备以多窗口(如分屏)显示多个应用的界面的场景中。例如,本申请实施例的方法可以应用于电子设备横屏显示多窗口的场景中,还可以应用于折叠屏电子设备以多窗口显示多个应用的界面的场景中。其中,电子设备以单窗口或多窗口显示应用的界面的方法,本申请实施例这里不予赘述。
[0194] 需要注意的是,以下实施例中,均以电子设备针对一个应用,执行本申请实施例的方法为例进行说明。但是,并不表示本申请实施例提供的方法中,电子设备不能同时针对多应用进行图层的绘制、渲染、合成以及图像帧显示。
[0195] 实施例(三)
[0196] 本实施例对实施例(一)中缩短电子设备的响应延迟的原理及效果进行分析。
[0197] 本申请实施例这里结合图5A中的(a)和(b),对电子设备执行S402和S404a后,缩短电子设备的响应延迟的原理及效果进行分析说明:
[0198] (1)电子设备在一个同步周期完成图层的绘制和渲染的情况下,本申请实施例中缩短响应延迟的原理及效果说明。
[0199] 如图6A中的(a)所示,响应于t3时刻的垂直同步信号1,电子设备(即电子设备的UI线程)可以执行绘制3,绘制一个或多个图层;然后,电子设备(如电子设备的渲染线程)可执行渲染3,对执行绘制3绘制的图层进行渲染。如图6A中的(a)所示,响应于t4时刻的垂直同步信号2,电子设备(即电子设备的合成线程)可以执行图像帧合成3,即对执行上述绘制3和渲染3得到的图层进行图层合成得到图像帧。
[0200] 但是,如图6A中的(a)所示,在执行S402之前,响应于t5时刻的垂直同步信号3,电子设备(即电子设备的LCD)才可以执行图像帧显示3,刷新显示执行图像帧合成3得到的图像帧。也就是说,在图6A中的(a)所示,从电子设备完成图像帧合成3的时刻开始至t5时刻这段时间,电子设备只能等待垂直同步信号3的到来。如此,则会额外增加“合成延迟”。
[0201] 本申请实施例的方法中,如图6A中的(b)所示,由于电子设备在t6时刻调整了垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;因此,响应于t3.1时刻的垂直同步信号1,电子设备执行绘制3和渲染3;响应于t4.1时刻的垂直同步信号2,电子设备执行图像帧合成3;响应于t5时刻的垂直同步信号3,电子设备执行图像帧显示3。
[0202] 如图6A中的(a)所示,电子设备在t3时刻到t7时刻这段时间(即L3,L3=3*TZ),才可以完成绘制3、渲染3、图像帧合成3和图像帧显示3。如图6A中的(b)所示,电子设备在t3.1时刻到t7时刻这段时间(即L3',L3'=3*TZ-TOffset_1,L3'
[0203] (2)电子设备无法在一个同步周期完成图层的绘制和渲染的情况下,本申请实施例中缩短响应延迟的原理及效果说明。
[0204] 在一些情况下,电子设备可能无法在一个同步周期完成图层的绘制和渲染。例如,如图6A中的(a)所示,响应于t4时刻的垂直同步信号1,电子设备可以执行绘制4和渲染4;但是,在t4时刻到在t5时刻这一同步周期,电子设备还未完成渲染4;因此,电子设备在t5时刻不会执行图像帧合成4。如图6A中的(a)所示,响应于t7时刻的垂直同步信号2,电子设备才会执行图像帧合成4,即对执行上述绘制4和渲染4得到的图层进行图层合成得到图像帧。最后,响应于t8时刻的垂直同步信号3,电子设备才可以执行图像帧显示4,刷新显示执行图像帧合成4得到的图像帧。在图6A中的(a)所示,从电子设备完成图像帧合成4的时刻开始至t8时刻这段时间,电子设备只能等待垂直同步信号3的到来。如此,则会额外增加“合成延迟”。
[0205] 在这种情况中,通过本申请实施例的方法也可以缩短上述额外增加的“合成延迟”,以缩短电子设备的响应延迟,提升电子设备的流畅性。具体的,如图6A中的(b)所示,由于电子设备在t6时刻调整了垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;因此,响应于t4.1时刻的垂直同步信号1,电子设备执行绘制4和渲染4;响应于t7.1时刻的垂直同步信号2,电子设备执行图像帧合成4;响应于t8时刻的垂直同步信号3,电子设备执行图像帧显示4。
[0206] 如图6A中的(a)所示,电子设备在t4时刻到t9时刻这段时间(即L4,L4=4*TZ),才可以完成绘制4、渲染4、图像帧合成4和图像帧显示4。如图6A中的(b)所示,电子设备在t4.1时刻到t9时刻这段时间(即L4',L4'=4*TZ-TOffset_1,L4'
[0207] (3)电子设备无法在一个同步周期完成图层合成的情况下,本申请实施例中缩短响应延迟的原理及效果说明。
[0208] 在一些情况下,电子设备可能无法在一个同步周期完成图层的合成(即图像帧合成)。例如,结合图6A中的(a),如图6B中的(a)所示,响应于t7时刻的垂直同步信号1,电子设备可以执行绘制5和渲染5;响应于t8时刻的垂直同步信号2,电子设备执行图像帧合成5;但是,在t8时刻到在t9时刻这一同步周期,电子设备还未完成图像帧合成5;因此,电子设备在t9时刻不会执行图像帧显示5。如图6B中的(a)所示,响应于t10时刻的垂直同步信号3,电子设备才可以执行图像帧显示5,刷新显示执行图像帧合成5得到的图像帧。在图6B中的(a)所示,从电子设备完成图像帧合成5的时刻开始至t10时刻这段时间,电子设备只能等待垂直同步信号3的到来。如此,则会额外增加“合成延迟”。
[0209] 在这种情况中,通过本申请实施例的方法也可以缩短上述额外增加的“合成延迟”,以缩短电子设备的响应延迟。具体的,如图6B中的(b)所示,由于电子设备在图6A中的(b)所示的t6时刻调整了垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;因此,响应于t7.1时刻的垂直同步信号1,电子设备执行绘制5和渲染5;响应于t8.1时刻的垂直同步信号2,电子设备执行图像帧合成5;响应于t10时刻的垂直同步信号3,电子设备执行图像帧显示5。
[0210] 如图6B中的(a)所示,电子设备在t7时刻到t11时刻这段时间(即L5,L5=4*TZ),才可以完成绘制5、渲染5、图像帧合成5和图像帧显示5。如图6B中的(b)所示,电子设备在t7.1时刻到t11时刻这段时间(即L5',L5'=4*TZ-TOffset_1,L5'
[0211] 需要注意的是,如图6B中的(a)所示,由于电子设备在t9时刻还未完成图像帧合成5;因此,即使电子设备在t9时刻已经完成了绘制6和渲染6,电子设备也不能响应于t9时刻的垂直同步信号2执行图像帧合成6;而是要在执行完图像帧合成5之后,响应于t10时刻的垂直同步信号2执行图像帧合成6。并且,即使电子设备在t10时刻已经完成了绘制7和渲染7;但是,由于电子设备还未执行图像帧合成6,因此电子设备只能在响应于t10时刻的垂直同步信号2执行图像帧合成6之后,才可以响应于t11时刻的垂直同步信号2执行图像帧合成7。综上所述,电子设备是按照完成图层渲染的先后顺序,依次对渲染的图层进行图像帧合成的。
[0212] 如图6B中的(a)所示,电子设备在t7时刻到t11时刻这段时间(即L5,L5=4*TZ),才可以完成绘制5、渲染5、图像帧合成5和图像帧显示5;在t8时刻到t12时刻这段时间(即L6,L6=4*TZ),才可以完成绘制6、渲染6、图像帧合成6和图像帧显示6;在t9时刻到t13时刻这段时间(即L7,L7=4*TZ),才可以完成绘制7、渲染7、图像帧合成7和图像帧显示7。但是,如图6B中的(b)所示,电子设备在t7.1时刻到t11时刻这段时间(即L5',L5'=4*TZ-TOffset_1,L5'7、图像帧合成7和图像帧显示7。也就是说,通过本申请实施例的方法,可以缩短电子设备的响应延迟,提升电子设备的流畅性。
[0213] 需要注意的是,本申请实施例中,通过调整垂直同步信号1和垂直同步信号2,来缩短电子设备的响应延迟,并不会额外增大电子设备的功耗,也就不会额外增加电子设备的负载。综上所述,通过本申请实施例的方法,可以在不增加电子设备的负载的情况下,缩短电子设备的响应延迟,提升电子设备的流畅性。
[0214] 实施例(四)
[0215] 本实施例中对上述实施例(一)中,电子设备调整垂直同步信号,以缩短电子设备的触摸响应时延的具体方法进行说明。
[0216] 示例性的,电子设备可以通过以下实现方式(1)和实现方式(2)对应的方法,调整垂直同步信号,以缩短电子设备的触摸响应时延。
[0217] 实现方式(1):电子设备通过调整垂直同步信号1和/或垂直同步信号2,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。
[0218] 电子设备可以将垂直同步信号1和垂直同步信号2的到达时间延后,使得垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。当然,电子设备也可以将垂直同步信号1和垂直同步信号2的到达时间提前,使得垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。
[0219] 本申请实施例这里以电子设备将垂直同步信号1的到达时间延后为例,对实现方式(1)的方法进行说明。例如,如图6A中的(a)所示,电子设备调整垂直同步信号之前,垂直同步信号1、垂直同步信号2和垂直同步信号3都可以在t3时刻、t4时刻、t5时刻到达。如图6A中的(b)所示,电子设备调整垂直同步信号之后,垂直同步信号3可以在t3时刻、t4时刻和t5时刻到达;而垂直同步信号1和垂直同步信号2则可以在t3.1时刻、t4.1时刻、t5.1时刻和t7.1时刻到达。其中,t3.1时刻相比于t3时刻延迟了TOffset_1,t4.1时刻相比于t4时刻延迟了TOffset_1,t5.1时刻相比于t5时刻延迟了TOffset_1,t7.1时刻相比于t7时刻延迟了TOffset_1。
[0220] 实现方式(2):电子设备可以通过调整垂直同步信号3,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。
[0221] 示例性的,电子设备可以将垂直同步信号3的到达时间提前,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。
[0222] 例如,如图7A中的(a)所示,电子设备调整延迟时间之前,垂直同步信号1、垂直同步信号2和垂直同步信号3都可以在t3时刻、t4时刻、t5时刻到达。如图7A中的(b)所示,电子设备调整延迟时间之后,垂直同步信号1和垂直同步信号2都可以在t3时刻、t4时刻和t5时刻到达;而垂直同步信号3则在t3.2时刻、t4.2时刻和t5.2时刻到达。其中,t3.2时刻相比于t3时刻提前了TOffset_1,t4.2时刻相比于t4时刻提前了TOffset_1,t5.2时刻相比于t5时刻提前了TOffset_1。
[0223] 如图7A中的(a)或(b)所示,在t1时刻,垂直同步信号1到达;响应于t1时刻的垂直同步信号1,电子设备(即电子设备的UI线程)可以执行绘制a,绘制一个或多个图层;然后,电子设备(如电子设备的渲染线程)可执行渲染a,对执行绘制a绘制的图层进行渲染。
[0224] 如图7A中的(a)或(b)所示,在t2时刻,垂直同步信号2到达;响应于t2时刻的垂直同步信号2,电子设备(即电子设备的合成线程)可以执行图像帧合成a,即对执行上述绘制a和渲染a得到的图层进行图层合成得到图像帧。
[0225] 但是,如图7A中的(a)所示,在执行S402之前,响应于t3时刻的垂直同步信号3,电子设备(即电子设备的LCD)才可以执行图像帧显示a,刷新显示执行图像帧合成a得到的图像帧。也就是说,在图7A中的(a)所示的完成图像帧合成a的时刻至t3时刻这段时间,电子设备只能等待垂直同步信号3的到来。如此,则会额外增加“合成延迟”。
[0226] 本申请实施例的方法中,如图7A中的(b)所示,由于电子设备在t6时刻调整了垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;因此,在t6时刻之后的t3.2时刻,垂直同步信号3便可以到达;响应于t3.2时刻的垂直同步信号3,电子设备便可以执行图像帧显示a,刷新显示执行上述图像帧合成a得到的图像帧。
[0227] 如图7A中的(a)所示,电子设备在t1时刻到t4时刻这段时间(即La,La=3*TZ),才可以完成绘制a、渲染a、图像帧合成a和图像帧显示a。如图7A中的(b)所示,电子设备在t1时刻到t4.2时刻这段时间(即La',La'=3*TZ-TOffset_1,La'
[0228] 需要注意的是,虽然电子设备将垂直同步信号3的到达时间提前,使得垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间,可以缩短电子设备的响应延迟。但是,如果上述第一延迟时间较长,则可能会因为电子设备还未刷新显示完一帧图像时,垂直同步信号3便到达。响应于该垂直同步信号3,电子设备则需要刷新显示新的一帧图像,则会导致电子设备显示的画面的撕裂,影响用户视觉体验。
[0229] 例如,如图7B所示,假设电子设备在t14时刻将垂直同步信号3的到达时间提前TOffset_1。即t4.3时刻相比于t4时刻提前了TOffset_1,t5.3时刻相比于t5时刻提前了TOffset_1。如此,如图7B所示,响应于t3时刻的垂直同步信号3,电子设备执行图像帧显示A,刷新显示图像帧A。但是,由于电子设备在t14时刻将垂直同步信号3的到达时间提前TOffset_1;那么,t4.3时刻垂直同步信号3到达,响应于t4.3时刻的垂直同步信号3,电子设备执行图像帧显示B,刷新显示图像帧B。但是,t4.3时刻,电子设备还未显示完上述图像帧A。如此,则会导致电子设备显示的画面的撕裂,影响用户视觉体验。
[0230] 再示例性的,电子设备可以将垂直同步信号3的到达时间延后,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间。
[0231] 其中,电子设备通过将垂直同步信号3的到达时间延后,缩短电子设备的响应延迟的原理与上述实施例中,将垂直同步信号3的到达时间提前缩短电子设备的响应延迟的原理类似,本申请实施例这里不予赘述。
[0232] 需要注意的是,虽然电子设备将垂直同步信号3的到达时间延后,使得垂直同步信号1和垂直同步信号2相对于垂直同步信号3延迟第一延迟时间,可以缩短电子设备的响应延迟。但是,也会延长一帧图像的处理延迟(即一帧图像从图层绘制、渲染、合成到图像帧显示的时长)。
[0233] 例如,如图7C所示,假设电子设备在t14时刻将垂直同步信号3的到达时间延后了TZ-TOffset_1,使得垂直同步信号1和垂直同步信号2在一个同步周期落后于垂直同步信号TOffset1。其中,t4.4时刻相比于t5时刻提前了TOffset_1,t5.4时刻相比于t7时刻提前了TOffset_1。
[0234] 如图7C所示,电子设备在完成图像帧合成B之后,需要等待t4.4时刻的垂直同步信号3,响应于t4.4时刻的垂直同步信号3,才可以执行图像帧显示B。电子设备执行图像帧显示B需要等待的时间较长,即会额外增加“合成时延”较长。
[0235] 实施例(五)
[0236] 本实施例通过实验数据说明上述实施例(一)和实施例(二)中的第一延迟时间的长短,对电子设备的响应延迟的长短的影响。
[0237] 其中,垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间(即上述第一延迟时间)的长短,影响电子设备的响应延迟的长短)。例如,请参考图7D,其示出手机的一种使用场景(如“联系人”应用的使用场景)中,电子设备的响应延迟随着上述第一延迟时间变化的趋势图。
[0238] 如图7D所示,垂直同步信号1和垂直同步信号2与垂直同步信号3的延迟时间为2ms时,即图7D所示的offset=2ms,电子设备的触摸响应时间为120ms;垂直同步信号1和垂直同步信号2与垂直同步信号3的延迟时间差为8ms时,即offset=8ms,电子设备的触摸响应时间为110ms;垂直同步信号1和垂直同步信号2与垂直同步信号3的延迟时间差为11ms时,即offset=11ms,电子设备的触摸响应时间为108ms;垂直同步信号1和垂直同步信号2与垂直同步信号3的延迟时间差为12ms时,即offset=12ms,电子设备的触摸响应时间为122ms。
[0239] 由图7D可知:从offset设置为2ms开始到offset设置为11ms这段时间,随着offset(即第一延迟时间)的增大,手机的触摸响应时间逐渐缩短;当offset设置为11ms时,手机的响应延迟最短;从offset设置为11ms开始,随着offset(即第一延迟时间)的增大,手机的触摸响应时间才会变长。
[0240] 可以理解,如果offset较大,则可能会因为电子设备响应于垂直同步信号2,还未完成图像帧合成,便会有一个垂直同步信号3到来;这样,电子设备则需要等待下一个垂直同步信号3到来,才可以对上述合成的图像帧进行刷新显示。如此,则会导致电子设备在一个同步周期不能刷新显示新的图像帧。这样,就会导致电子设备的触控响应延迟延长一个同步周期,大幅度增大。例如,如图7D所示,offset由11ms变化为12ms后,手机的触控响应延迟延长会大幅度增大。
[0241] 综上所述,调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间,使垂直同步信号1和垂直同步信号2在一个同步周期落后于垂直同步信号3的延迟时间在一定范围内,就可以缩短电子设备的响应延迟。由此可见,为了最大限度的缩短电子设备的响应延迟,上述第一延迟时间的长短尤其重要。
[0242] 实施例(六)
[0243] 本实施例对电子设备缩短响应延迟的效果进行进一步说明。
[0244] 本申请实施例中,电子设备的TP可以采用插值算法进行触控点采样。具体的,电子设备周期性的进行触控点采样;触控点的采样周期与垂直同步信号3的信号周期相同;然后,响应于垂直同步信号1,如图8A所示,电子设备可以选择距离采样时间(即SampleTime)最近的触控点作为current点,选择current点之前的一个触控点作为other点;根据current点和other点进行插值计算,得到重采样Resample点(即插值的点)。也就是说,电子设备响应于垂直同步信号1,可以预测出一个即将被采样的触控点(即Resample点)。然后,电子设备针对该Resample点,进行图层的绘制和渲染。电子设备可以采用如下公式(5),计算Resample点的坐标。
[0245] xRe=xcurrent+alpha*(xother-xcurrent)
[0246] yRe=ycurrent+alpha*(yother-ycurrent)
[0247] 公式(5)
[0248] 其中,current点的坐标为(xcurrent,ycurrent)。other点的坐标为(xother,yother)。Resample点的坐标为(xRe,yRe)。alpha=(tcurrent-tSample)/(tSample-tother)。其中,tcurrent是TP采集current点的时间。tother是TP采集other点的时间。tSample是TP的采样时间。
[0249] 本申请实施例这里结合电子设备采用差值算法进行触控点采样,对本申请实施例中,缩短电子设备的响应延迟的原理进行说明。结合图6A,如图8B或图8C所示,假设在t2时刻到t3时刻这一个采样周期内,TP采集到了触控点A和触控点B这两个触控点。
[0250] 请参考图8B,在执行本申请实施例的方法之前,响应于t3时刻的垂直同步信号3,电子设备可以选择距离采样时间(即t3时刻)最近的触控点B作为current点,选择current点之前的触控点A作为other点;采样上述公式(5),根据触控点B和触控点A进行插值计算,得到Re1点(即Resample点)。如图8B所示,响应于t4时刻的垂直同步信号3,电子设备可以选择距离采样时间(即t4时刻)最近的触控点D作为current点,选择current点之前的触控点C作为other点;采样上述公式(5),根据触控点D和触控点C进行插值计算,得到Re2点(即Resample点)。如图8B所示,响应于t5时刻的垂直同步信号3,电子设备可以选择距离采样时间(即t5时刻)最近的触控点F作为current点,选择current点之前的触控点E作为other点;采样上述公式(5),根据触控点F和触控点E进行插值计算,得到Re3点(即Resample点)。如图
8B所示,响应于t6时刻的垂直同步信号3,电子设备可以选择距离采样时间(即t6时刻)最近的触控点H作为current点,选择current点之前的触控点G作为other点;采样上述公式(5),根据触控点H和触控点G进行插值计算,得到Re4点(即Resample点)。
[0251] 如此,在执行本申请实施例的方法之前,电子设备的触控响应延迟为用户输入上述Resample点(如Re1点、Re2点、Re3点或Re4点)的时刻到显示图像帧的时刻。例如,如图8B所示,t3时刻到t7时刻,t4时刻到t8时刻。
[0252] 请参考图8C,在执行本申请实施例的方法之后,垂直同步信号1延后了TOffset_1。在垂直同步信号1延后的TOffset_1内,电子设备可能会采集到新的触控点。例如,如图8C所示,在t3时刻到t3.1时刻这段时间(即TOffset_1)内,电子设备采集到触控点C;在t4时刻到t4.1时刻这段时间(即TOffset_1)内,电子设备采集到触控点E;在t5时刻到t5.1时刻这段时间(即TOffset_1)内,电子设备采集到触控点G;在t7时刻到t7.1时刻这段时间(即TOffset_1)内,电子设备采集到触控点I。
[0253] 本申请实施例中,电子设备可以响应于调整后的垂直同步信号1,进行插值计算得到重采样点。电子设备可以针对该重采样点,绘制一个或多个图层。其中,电子设备可以采用上述插值算法进行插值计算得到重采样点。具体的,电子设备响应于调整后的垂直同步信号1,可以根据距离垂直同步信号1到达时间最近的触控点(即作为current点),采用上述插值算法进行插值计算得到重采样点。
[0254] 例如,如图8C所示,响应于t3.1时刻的垂直同步信号1,电子设备可以选择距离t3.1时刻最近的触控点C作为current点,选择current点之前的触控点B作为other点;采样上述公式(5),根据触控点C和触控点B进行插值计算,得到Re1'点(即Resample点)。又例如,如图8C所示,响应于t4.1时刻的垂直同步信号1,电子设备可以选择距离t4.1时刻最近的触控点E作为current点,选择current点之前的触控点D作为other点;采样上述公式(5),根据触控点E和触控点D进行插值计算,得到Re2'点(即Resample点)。又例如,如图8C所示,响应于t5.1时刻的垂直同步信号1,电子设备可以选择距离t5.1时刻最近的触控点G作为current点,选择current点之前的触控点F作为other点;采样上述公式(5),根据触控点G和触控点F进行插值计算,得到Re3'点(即Resample点)。又例如,如图8C所示,响应于t7.1时刻的垂直同步信号1,电子设备可以选择距离t7.1时刻最近的触控点G作为current点,选择current点之前的触控点I作为other点;采样上述公式(5),根据触控点I和触控点H进行插值计算,得到Re4'点(即Resample点)。
[0255] 如此,在执行本申请实施例的方法之后,电子设备的触控响应延迟上述Resample点(如Re1'点、Re2'点、Re3'点或Re4'点)的时刻到显示图像帧的时刻。例如,如图8C所示,t3.1时刻到t7时刻,t4.1时刻到t8时刻。
[0256] 以下通过对比图8B和图8C,说明本申请实施例提供的方法,缩短电子设备的触控响应延迟,提升电子设备的流畅性的原理。
[0257] 如图8B所示,假设响应于用户由触控点A经过触控点B、触控点C、触控点D、触控点E、触控点F和触控点G向触控点H的滑动操作,电子设备可以显示图8B所示的笑脸图标随之移动的图像。
[0258] 在图8B所示的t5时刻用户手指滑动至触控点F和触控点G之间的位置(即用户手指(3)对应位置)时,电子设备可以响应于重采样Re1点的触控操作,在Re1点对应位置显示笑脸(3)。此时,电子设备执行图8B所示的图像帧显示3。其中,如图8B所示,用户手指(3)所在位置与笑脸(3)所在位置相差△SX。
[0259] 在图8B所示的t7时刻用户手指滑动至根据触控点H和触控点G采用差值算法预测的采样点Re4点(即用户手指(4)对应位置)时,电子设备可以响应于重采样Re2点的触控操作,在Re2点对应位置显示笑脸(4)。此时,电子设备执行图8B所示的图像帧显示4。如图8B所示,用户手指(4)所在位置与笑脸(4)所在位置相差△SX。
[0260] 需要注意的是,图8B中,电子设备从t5时刻开始显示在Re1点对应位置显示笑脸(3),在t5时刻至t7时刻这段时间,电子设备均可以在Re1点对应位置显示笑脸(3)。图8B中,电子设备从t7时刻开始显示在Re2点对应位置显示笑脸(4),在t7时刻至t8时刻这段时间,电子设备均可以在Re2点对应位置显示笑脸(4)。
[0261] 如图8C所示,假设响应于用户由触控点A经过触控点B、触控点C、触控点D、触控点E、触控点F和触控点G向触控点I的滑动操作,电子设备可以显示图8C所示的笑脸图标随之移动的图像。
[0262] 在图8C所示的t5时刻用户手指滑动至触控点F和触控点G之间的位置(即用户手指(3)对应位置)时,电子设备可以响应于重采样Re1'点的触控操作,在Re1'点对应位置显示笑脸(3)。此时,电子设备执行图8C所示的图像帧显示3。其中,如图8C所示,用户手指(3)所在位置与笑脸(3)所在位置相差△SY。
[0263] 在图8C所示的t7时刻用户手指滑动至触控点H和触控点I之间的位置(即用户手指(4)对应位置)时,电子设备可以响应于重采样Re2'点的触控操作,在Re2'点对应位置显示笑脸(4)。此时,电子设备执行图8C所示的图像帧显示4。如图8C所示,用户手指(4)所在位置与笑脸(4)所在位置相差△SY。
[0264] 需要注意的是,图8C中,电子设备从t5时刻开始显示在Re1'点对应位置显示笑脸(3)显示笑脸(3),在t5时刻至t7时刻这段时间,电子设备均可以在Re1'点对应位置显示笑脸(3)。图8C中,电子设备从t7时刻开始显示在Re2'点对应位置显示笑脸(4),在t7时刻至t8时刻这段时间,电子设备均可以在Re2'点对应位置显示笑脸(4)。
[0265] 其中,图8C所示的△SY小于图8B所示的△SX。也就是说,相比于图8B所示的方案,采用图8C所示的方案,电子设备可以较快的响应用户的触摸操作。即通过本申请实施例的方法,可以缩短电子设备的触控响应延迟,可以提升电子设备的流畅性。
[0266] 需要注意的是,电子设备在使用过程中,用户对触摸屏的触摸操作大多是滑动触摸操作。在这种情景下,TP采集滑动触摸操作的一个连续的过程。因此,在TP采集滑动触摸操作的过程中,即使在前一个同步周期没有采集到上述触控点C,那么在后续的一个或多个同步周期总会采集到触控点C。从统计的角度来看,电子设备缩短触控响应延迟的收益就会变得比较线性。
[0267] 实施例(七)
[0268] 本实施例中,通过以下实现方式(I)-实现方式(II),说明电子设备确定上述任一实施例中所述的第一延迟时间的方法。
[0269] 实现方式(I):第一延迟时间TOffset_1是预设时长。即第一延迟时间是电子设备中设置的固定时长。
[0270] 实现方式(II):第一延迟时间是前台应用对应的预设延迟时间。
[0271] 其中,电子设备中可以安装多个应用。例如,电子设备中可以安装游戏应用、即时通讯应用、视频应用、联系人应用、短消息应用、日历应用、电话应用和照片应用等多个应用。本申请实例中,电子设备中可以预先保存多个应用中每个应用的预设延迟时间。每个应用对应一个预设延迟时间。其中,不同应用的预设延迟时间可以不同。上述前台应用是电子设备当前显示的界面对应的应用。
[0272] 可以理解,电子设备在前台运行不同应用时,进行图层合成所需花费的时间(即SF帧长)不同。因此,可以针对每一个应用设置一个固定的预设延迟时间。其中,电子设备在前台运行一个应用时的SF帧长越大,该应用的预设延迟时间则越小;电子设备在前台运行一个应用时的SF帧长越小,该应用的预设延迟时间则越大。
[0273] 一方面,电子设备在前台运行不同应用时的负载不同,会导致进行图层合成所需花费的时间(即SF帧长)不同。
[0274] 例如,相比于在前台运行游戏应用,电子设备在前台运行联系人应用时,电子设备的负载较小;因此,电子设备在前台运行游戏应用时的SF帧长大于电子设备在前台运行联系人应用时的SF帧长。那么,游戏应用的预设延迟时间则小于联系人应用的预设延迟时间。也就是说,电子设备在前台运行一个应用时的负载越大,该应用的预设延迟时间则越小;电子设备在前台运行一个应用时的负载越小,该应用的预设延迟时间则越大。
[0275] 另一方面,电子设备在前台运行不同应用时,电子设备的处理器的工作频率不同,会导致进行图层合成所需花费的时间(即SF帧长)不同。上述处理器可以包括电子设备的CPU和/或GPU。处理器的工作频率f的单位可以为赫兹(Hz,简称赫),千赫(kHz),兆赫(MHz)或者吉赫(GHz)。
[0276] 例如,电子设备在前台运行视频应用时处理器的工作频率大于在前台运行日历应用时的工作频率;因此,电子设备在前台运行视频应用时的SF帧长可以小于电子设备在前台运行日历应用时的SF帧长。那么,视频应用的第一延迟时间则大于日历应用的预设延迟时间。也就是说,电子设备在前台运行一个应用时的工作频率越大,该应用的预设延迟时间则越大;电子设备在前台运行一个应用时的工作频率越小,该应用的预设延迟时间则越小。
[0277] 其中,上述每个应用的预设延迟时间可以是统计大量电子设备在前台运行对应应用时的SF帧长确定的。
[0278] 进一步的,由于不同电子设备的处理器的能力不同,如一个电子设备的处理器的最大工作频率为800MHz,而另一个电子设备的处理器的最大工作频率为600MHz;因此,不同电子设备中同一应用的预设延迟时间也可以不同。
[0279] 其中,针对不同电子设备中同一应用的预设延迟时间不同的情况,每个电子设备中一个应用的预设延迟时间可以是统计大量同款设备在前台运行该应用时的SF帧长确定的。
[0280] 本申请实施例中,考虑到电子设备在前台运行不同应用时的SF帧长不同,可以为不同应用设置不同的预设延迟时间。这样,电子设备在前台运行不同应用时,便可以采用不同的预设延迟时间调整垂直同步信号,可以提升用户体验。
[0281] 实施例(八)
[0282] 本实施例中,第一延迟时间可以不是预先设置的固定时间长度。电子设备可以统计电子设备进行多次图层合成所花费的时间,动态调整第一延迟时间。
[0283] 由上述实施例中的描述可知,如果电子设备中设置固定的第一延迟时间,可能会出现图像帧的丢帧,影响用户视觉体验。
[0284] 具体的,电子设备合成的图像帧缓存在帧缓存(Frame Buffer)中。电子设备的LCD从Frame Buffer中刷新显示该图像帧。可以理解,在电子设备进行一个图像帧(如图像帧a)合成的过程中,电子设备的LCD也正在从Frame Buffer中刷新显示电子设备合成的前一个图像帧(如图像帧b)。电子设备合成图像帧a之后,需要等待LCD将图像帧b从Frame Buffer中刷新结束(即LCD刷新显示完图像帧b),即等待垂直同步信号3的到来,才可以进行图像帧a的刷新显示。
[0285] 但是,如果垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间(如上述第一延迟时间)较大;那么,可能会存在如下问题:垂直同步信号3到来时,还未完成上述图像帧a的合成,导致LCD无法刷新显示图像帧a,继续显示图像帧b。也就是说,电子设备的显示屏显示图像出现丢帧现象,即显示屏会显示一帧重复图像,影响显示屏显示图像的流畅性。由此可见,为了实现在保证不丢帧的前提下,缩短电子设备的响应延迟,上述第一延迟时间的长短尤其重要。
[0286] 为了避免出现图像帧丢帧的问题,电子设备可以统计电子设备进行多次图层合成所花费的时间,动态调整第一延迟时间。具体的,电子设备获取第一延迟时间的方法可以包括S801-S802。例如,如图8D所示,图4B所示的S401可以包括S801-S802。
[0287] S801、电子设备获取统计周期内多个第一SF帧长,每个第一SF帧长为进行一次图层合成所花费的时间,每次进行图层合成所花费的时间相同或不同。
[0288] 示例性的,本申请实施例中的统计周期可以为1S、2S、3S或者5S等任一时长。其中,电子设备可以在一个同步周期内进行一次图层合成。一个统计周期可以包括多个同步周期。因此,电子设备可以在一个统计周期内多次图层合成。例如,以上述统计周期是1S,同步周期是16.667ms为例。电子设备在1S的统计周期内可以进行60次的图层合成。其中,电子设备可以在每一个统计周期内获取该统计周期的多个第一SF帧长。
[0289] S802、电子设备根据同步周期和多个第一SF帧长,确定第一延迟时间。
[0290] 可以理解,一个同步周期与该同步周期内进行图层合成的所花费的时间(即第一SF帧长)的差值,是电子设备在该同步周期内进行图层合成的“合成时延”。该“合成时延”可以作为本申请实施例中电子设备缩短响应延迟的收益点,即垂直同步信号1和垂直同步信号2相对于垂直同步信号3可以调整的延迟时间。例如,该收益点可以为图3所示的从完成“图像帧合成”的时刻到开始执行“图像帧显示”的时刻这段时间。因此,电子设备根据同步周期和一个统计周期内进行多次图层合成的所花费的时间(即多个第一SF帧长),便可以确定第一延迟时间,即垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。
[0291] 其中,本申请实施例中,电子设备可以在一个统计周期确定第一延迟时间;然后,在该统计周期的下一个统计周期,调整垂直同步信号(如垂直同步信号1和垂直同步信号2),使得垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟为第一延迟时间TOffset_1。
[0292] 示例性的,电子设备可以根据统计周期内的多个SF帧长,预测下一次进行图层合成所需花费的时间(即预测SF帧长);然后根据同步周期和预测SF帧长,计算第一延迟时间。具体的,如图8E所示,图8D所示的S802可以包括S802a和S802b:
[0293] S802a、电子设备根据统计周期内的多个第一SF帧长,确定预测SF帧长,该预测SF帧长是预测的下一次进行图层合成所需花费的时间。
[0294] 在一种实现方式中,S802a中的预测SF帧长可以是该统计周期内的多个第一SF帧长的平均SF帧长。例如,假设在一个统计周期内,电子设备进行了5次图层合成。这5次图层合成对应的SF帧长(即第一SF帧长)分别为:12ms、13ms、10ms、11ms和12ms。那么,预测SF帧长可以为:(12+13+10+11+12)/5=11.6ms。
[0295] 可以理解,如果预测SF帧长较小,那么执行S802b计算得到的第一延迟时间则会较大。这样,容易出现图像帧的丢帧。为了减少图像帧的丢帧的可能性,在另一种实现方式中,S802a中的预测SF帧长可以是该统计周期内最大的一个第一SF帧长。结合上述实例,电子设备可以确定预测SF帧长为13ms。
[0296] S802b、电子设备计算同步周期与预测SF帧长的差值,得到第一延迟时间。
[0297] 例如,以同步周期为16.667ms,预测SF帧长为13ms为例。第一延迟时间可以为:16.667-13=3.667ms。
[0298] 本申请实施例中,电子设备可以根据一个统计周期内的多个第一SF帧长和同步周期,确定上述第一延迟时间。由于一个统计周期内的多个第一SF帧长可以反映电子设备在该统计周期内进行多个图层合成所花费的实际时间;因此,第一延迟时间可以比较准确的反映电子设备在该统计周期内进行多次图层合成的“合成时延”。由此,采用该第一延迟时间调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间,图像帧丢帧的可能性较低。
[0299] 综上所述,通过本申请实施例的方法,可以在保证电子设备的LCD正常显示画面的前提下,缩短电子设备的响应延迟,提升电子设备的流畅性。
[0300] 在上述实施例中,电子设备执行S802,可以通过计算同步周期与预测SF帧长的差值,确定第一延迟时间。而在另一些实施例中,电子设备可以计算在统计周期内分别采用预设时间集合中的每个延迟时间调整垂直同步信号1和垂直同步信号2后的延迟收益值,然后将延迟收益值最大的延迟时间确定为第一延迟时间。这样,可以最大限度的缩短电子设备的响应延迟。具体的,如图9A所示,图8D所示的S802可以包括S901-S902。
[0301] S901、电子设备获取统计周期内,根据预设时间集合中的每个延迟时间调整垂直同步信号1后的延迟收益值。
[0302] 其中,预设时间集合包括取值范围为[TOffset_D,TZ)的多个延迟时间。TOffset_D是当前延迟时间,当前延迟时间是垂直同步信号1和垂直同步信号2当前相对于垂直同步信号3的延迟时间。上述多个延迟时间可以包括从TOffset_D开始,以上述预设步进逐渐增大的多个时长。例如,预设步进可以为2ms、1ms或者0.5ms等任一时长。其中,预设步进可以预先配置在电子设备中;或者,预设步进可以由用户在电子设备中设置。
[0303] 可以理解,在当前时刻,垂直同步信号1和垂直同步信号2当前相对于垂直同步信号3的延迟时间可以为零,即TOffset_D=0。或者,在当前时刻,垂直同步信号1和垂直同步信号2当前相对于垂直同步信号3的延迟时间可能被电子设备调整过,为当前延迟时间0
[0304] 例如,以TOffset_D=0ms,TZ=16.667ms,预设步进是2.5ms为例。上述预设时间集合可以为{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}。
[0305] 又例如,以TOffset_D=4ms,TZ=16.667ms,预设步进是1ms为例。上述预设时间集合可以为{4ms,5ms,6ms,7ms,8ms,9ms,10ms,11ms,12ms,13ms,14ms,15ms,16ms}。
[0306] 其中,一个延迟时间对应的延迟收益值是该延迟时间与该延迟时间对应的不丢帧率的乘积。一个延迟时间对应的不丢帧率和丢帧率的和为1。
[0307] 示例性的,电子设备可以采用以下公式(1):
[0308] f(offset)=(offset)*(1-Poffset)   公式(1)
[0309] 计算一个延迟时间offset对应的延迟收益值f(offset)。
[0310] 其中,Poffset是一个延迟时间offset对应的丢帧率。1-Poffset是一个延迟时间offset对应的不丢帧率。
[0311] 电子设备可以计算根据一个延迟时间调整垂直同步信号1相对于垂直同步信号3的延迟时间后,在统计周期内图像帧的丢帧次数与总次数的比值,得到该延迟时间对应的丢帧率。
[0312] 举例来说,假设上述统计周期中电子设备进行5次图层合成。这5次图层合成对应的SF帧长(即第一SF帧长)分别为:4ms、5ms、7.5ms、8ms和6.8ms。以上述预设时间集合是{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}为例,可以得出以下结果。
[0313] 如果根据上述预设时间集合中的延迟时间0ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+0<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+0<16.667(即TZ),不会丢帧;对第3个SF帧长7.5ms而言,7.5+0<16.667(即TZ),不会丢帧;对第4个SF帧长8ms而言,8+0<16.667(即TZ),不会丢帧;对第5个SF帧长6.8ms而言,6.8+0<16.667(即TZ),不会丢帧。如此,可以得出上述预设时间集合中的延迟时间0ms对应的丢帧率为0,不丢帧率为100%。
[0314] 如果根据上述预设时间集合中的延迟时间2.5ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+2.5<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+2.5<16.667(即TZ),不会丢帧;
对第3个SF帧长7.5ms而言,7.5+2.5<16.667(即TZ),不会丢帧;对第4个SF帧长8ms而言,8+
2.5<16.667(即TZ),不会丢帧;对第5个SF帧长6.8ms而言,6.8+2.5<16.667(即TZ),不会丢帧。如此,可以得出上述预设时间集合中的延迟时间2.5ms对应的丢帧率为0,不丢帧率为
100%。
[0315] 如果根据上述预设时间集合中的延迟时间5ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+5<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+5<16.667(即TZ),不会丢帧;对第3个SF帧长7.5ms而言,7.5+5<16.667(即TZ),不会丢帧;对第4个SF帧长8ms而言,8+5<16.667(即TZ),不会丢帧;对第5个SF帧长6.8ms而言,6.8+5<16.667(即TZ),不会丢帧。如此,可以得出上述预设时间集合中的延迟时间5ms对应的丢帧率为0,不丢帧率为100%。
[0316] 如果根据上述预设时间集合中的延迟时间7.5ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+7.5<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+7.5<16.667(即TZ),不会丢帧;
对第3个SF帧长7.5ms而言,7.5+7.5<16.667(即TZ),不会丢帧;对第4个SF帧长8ms而言,8+
7.5<16.667(即TZ),不会丢帧;对第5个SF帧长6.8ms而言,6.8+7.5<16.667(即TZ),不会丢帧。如此,可以得出上述预设时间集合中的延迟时间7.5ms对应的丢帧率为0,不丢帧率为
100%。
[0317] 如果根据上述预设时间集合中的延迟时间10ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+10<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+10<16.667(即TZ),不会丢帧;对第3个SF帧长7.5ms而言,7.5+10>16.667(即TZ),丢帧;对第4个SF帧长8ms而言,8+10>16.667(即TZ),丢帧;对第5个SF帧长6.8ms而言,6.8+10>16.667(即TZ),丢帧。如此,可以得出上述预设时间集合中的延迟时间10ms对应的丢帧率为3/5=60%,不丢帧率为40%。
[0318] 如果根据上述预设时间集合中的延迟时间12.5ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+12.5<16.667(即TZ),不会丢帧;对第2个SF帧长5ms而言,5+12>16.667(即TZ),丢帧;对第3个SF帧长7.5ms而言,7.5+12.5>16.667(即TZ),丢帧;对第4个SF帧长8ms而言,8+12.5>
16.667(即TZ),丢帧;对第5个SF帧长6.8ms而言,6.8+12.5>16.667(即TZ),丢帧。如此,可以得出上述预设时间集合中的延迟时间12.5ms对应的丢帧率为4/5=80%,不丢帧率为20%。
[0319] 如果根据上述预设时间集合中的延迟时间15ms调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间;对上述5次图层合成对应的第1个SF帧长4ms而言,4+15>16.667(即TZ),丢帧;对第2个SF帧长5ms而言,5+15>16.667(即TZ),丢帧;对第3个SF帧长
7.5ms而言,7.5+15>16.667(即TZ),丢帧;对第4个SF帧长8ms而言,8+15>16.667(即TZ),丢帧;对第5个SF帧长6.8ms而言,6.8+15>16.667(即TZ),丢帧。如此,可以得出上述预设时间集合中的延迟时间15ms对应的丢帧率为5/5=100%,不丢帧率为0。
[0320] 综上所述,上述预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,0ms对应的丢帧率为丢帧率为0,不丢帧率为100%;2.5ms对应的丢帧率为0,不丢帧率为100%;5ms对应的丢帧率为0,不丢帧率为100%;7.5ms对应的丢帧率为0,不丢帧率为100%;10ms丢帧率为60%,不丢帧率为40%;12.5ms对应的丢帧率为80%,不丢帧率为20%;15ms对应的丢帧率为100%,不丢帧率为0。由上述实例可以得出:延迟时间越长,该延迟时间对应的丢帧率越高;延迟时间越短,该延迟时间对应的丢帧率越低。
[0321] 以TM=0ms为例。上述预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,0ms对应的延迟收益值f(0)=(0-0)*(1-0)=0;2.5ms对应的延迟收益值f(2.5)=(2.5-0)*(1-0)=2.5=2.5;5ms对应的延迟收益值f(5)=(5-0)*(1-0)=5=5;7.5ms对应的延迟收益值f(7.5)=(7.5-0)*(1-0)=7.5=7.5;10ms对应的延迟收益值f(10)=(10-0)*(1-
60%)=4;12.5ms对应的延迟收益值f(12.5)=(12.5-0)*(1-80%)=2.5;15ms对应的延迟收益值f(15)=(15-0)*(1-100%)=0。
[0322] S902、电子设备确定预设时间集合中、最大延迟收益值对应的延迟时间为第一延迟时间。
[0323] 例如,结合上述实例,预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,延迟时间7.5ms对应的延迟收益值最大(如延迟收益值为7.5)。电子设备可以确定该预设时间集合中的延迟时间7.5ms为第一延迟时间。
[0324] 由公式(1)和上述实例可知:对于预设时间集合中的每个延迟时间而言,延迟时间越大,该延迟时间对应的延迟收益值越大。但是,随着延迟时间的增大,延迟时间对应的延迟收益值又会逐渐减小。延迟时间与延迟时间对应的延迟收益值成图9B所示的正太分布。
[0325] 可以理解,请参考图9B,在一个预设时间集合中,随着延迟时间的增大,延迟收益值逐渐增大;延迟收益值增大到一定值(如图9B所示的7.5ms)时,随着延迟时间的增大,延迟收益值逐渐减少。本申请实施例中,电子设备从预设时间集合中的最小延迟时间开始,以预设步进逐渐增大延迟时间,以找到一个延迟收益值最大的延迟时间,并将该延迟时间作为最优值(即第一延迟时间),来调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。
[0326] 可选的,在一些实施例中,为了降低丢帧率,保证一定的不丢帧率。上述第一延迟时间可以是预设时间集合中丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间。例如,该预设阈值可以为8%、10%、12%、15%或18%等任一丢帧率阈值。该预设阈值可以预先配置在电子设备中;或者,该预设阈值可以由用户在电子设备中设置。
[0327] 以上述预设阈值为10%为例。结合上述实例,上述预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,0ms对应的延迟收益值为0,丢帧率为0;2.5ms对应的延迟收益值为2.5,丢帧率为0;5ms对应的延迟收益值为5,丢帧率为0;7.5ms对应的延迟收益值为
7.5,丢帧率为0;10ms对应的延迟收益值为4,丢帧率为60%;12.5ms对应的延迟收益值为
2.5,丢帧率为80%;15ms对应的延迟收益值为0,丢帧率为100%。那么,丢帧率小于预设阈值的延迟时间可以包括:延迟时间0ms、2.5ms、5ms和7.5ms。丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间为7.5ms。即电子设备可以确定该预设时间集合中的延迟时间7.5为第一延迟时间。
[0328] 本申请实施例中,电子设备可以遍历预设时间集合中的所有延迟时间(即offset),得到每个延迟时间对应的延迟收益值和丢帧率;然后,将丢帧率小于预设阈值的延迟时间中、延迟收益值最大的延迟时间作为最优值(即第一延迟时间),来调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。如此,可以在保证电子设备的LCD正常显示画面的前提下,最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0329] 在一些实施例中,电子设备可以在执行S802之前,可以先根据统计周期内的多个第一SF帧长,预测电子设备在下一个统计周期进行图层合成所花费的时长是否小于预设帧长阈值(该预设帧长阈值小于上述同步周期)。如果预测得到上述时长小于预设帧长阈值,则表示电子设备进行图层合成所花费的时长较短。电子设备在完成图层合成后,需要等待较长时间才可以显示合成的图像帧,即电子设备的响应延迟较大。
[0330] 在这种情况下,电子设备可以执行S802确定第一延迟时间。然后,电子设备可以执行S402-S405,通过调整垂直同步信号1和垂直同步信号2,来缩短电子设备的响应延迟。具体的,如图8F所示,在S802之前,本申请实施例的方法还可以包括S802'。
[0331] S802'、电子设备判断一个统计周期的第三SF帧长是否小于预设帧长阈值。
[0332] 例如,假设同步周期TZ为16.667ms。上述预设帧长阈值可以为10ms、8ms或者12ms等任一时长。该预设帧长阈值可以预先配置在电子设备中。或者,该预设帧长阈值可以由用户在电子设备中设置。本申请实施例中的统计周期可以为1S、2S、3S或者5S等任一时长。
[0333] 示例性的,电子设备可以获取电子设备在上述统计周期内的多个第一SF帧长,每个第一SF帧长为进行一次图层合成所花费的时间,每次进行图层合成所花费的时间相同或不同。其中,电子设备获取上述统计周期内的多个第一SF帧长的具体方法可以参考以下实施例中S801的详细描述,本申请实施例这里不予赘述。其中,上述第三SF帧长可以是多个第一SF帧长的平均值。或者,第三SF帧长可以是多个第一SF帧长中的最大值。
[0334] 具体的,如果一个统计周期的第三SF帧长小于预设帧长阈值,则表示电子设备在该统计周期进行图层合成所花费的时长较短,电子设备在完成图层合成后,需要等待较长时间才可以显示合成的图像帧,电子设备的响应延迟较大。在这种情况下,电子设备在下一个统计周期的响应延迟也可能会较大。如图8F所示,电子设备可以执行S802及后续流程,以缩短电子设备的响应延迟。
[0335] 如果一个统计周期的第三SF帧长大于或者等于预设帧长阈值,则表示电子设备在该统计周期进行图层合成所花费的时长较长,电子设备在完成图层合成后,不需要等待较长时间就可以显示合成的图像帧,电子设备的响应延迟较小。在这种情况下,如图8F所示,电子设备可以执行S301-303。
[0336] 可选的,在一些实施例中,如果电子设备执行过S802和S402-S405之后,判断得到一个统计周期的第三SF帧长大于或者等于预设帧长阈值,电子设备还可以调整垂直同步信号1和垂直同步信号2,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3没有延迟。然后,电子设备可以执行S301-303。
[0337] 上述实施例中,电子设备可以根据每一个统计周期的SF帧长和延迟收益值确定第一延迟时间,然后调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。但是,在每一个统计周期结束后都调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间,可能会出现延迟时间调整的乒乓现象。
[0338] 在一些实施例中,为了防止调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间时出现乒乓现象。电子设备可以根据连续N个统计周期中的每个统计周期中、预设时间集合中、最大延迟收益值对应的延迟时间,确定上述第一延迟时间。具体的,如图10所示,图8D所示S802可以包括S1001-S1002。
[0339] S1001、电子设备在连续N个统计周期中的每个统计周期内执行步骤1和步骤2,以得到每个统计周期对应的第三延迟时间,N≥2,N为正整数。
[0340] 例如,N可以为5、4、3、2或者6等任一正整数。
[0341] 步骤1、电子设备获取一个统计周期内,根据预设时间集合中的每个延迟时间调整垂直同步信号1后的延迟收益值。
[0342] 需要注意的是,步骤1中所述的预设时间集合、当前延迟时间TOffset_D、一个延迟时间对应的延迟收益值、这一个延迟时间、这一个延迟时间对应的丢帧率,以及电子设备获取延迟收益值的方法,可以参考S901中的相关描述,本申请实施例这里不予赘述。
[0343] 步骤2、电子设备获取统计周期对应的第三延迟时间,该第三延迟时间是预设时间集合中、最大延迟收益值对应的延迟时间。
[0344] 例如,结合上述实例,预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,延迟时间7.5ms对应的延迟收益值最大(如延迟收益值为7.5ms)。电子设备可以确定延迟时间7.5ms是该统计周期对应的第三延迟时间。
[0345] 可选的,在一些实施例中,为了降低丢帧率,保证一定的不丢帧率。上述第三延迟时间是预设时间集合中丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间。以上述预设阈值为10%为例。结合上述实例,上述预设时间集合{0ms,2.5ms,5ms,7.5ms,10ms,12.5ms,15ms}中,0ms对应的延迟收益值为0,丢帧率为0;2.5ms对应的延迟收益值为2.5,丢帧率为0;5ms对应的延迟收益值为5,丢帧率为0;7.5ms对应的延迟收益值为
7.5,丢帧率为0;10ms对应的延迟收益值为4,丢帧率为60%;12.5ms对应的延迟收益值为
2.5,丢帧率为80%;15ms对应的延迟收益值为0,丢帧率为100%。那么,丢帧率小于预设阈值的延迟时间可以包括:延迟时间0ms、2.5ms、5ms和7.5ms。丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间为7.5ms。即电子设备可以确定延迟时间7.5ms是该统计周期对应的第三延迟时间。
[0346] S1002、电子设备确定N个统计周期对应的第三延迟时间中,最短的第三延迟时间为第一延迟时间。
[0347] 示例性的,以N=5为例。假设5个统计周期中,第1个统计周期对应的第三延迟时间为6ms,第2个统计周期对应的第三延迟时间为7.5ms,第3个统计周期对应的第三延迟时间为6.5ms,第2个统计周期对应的第三延迟时间为6.6ms,第4个统计周期对应的第三延迟时间为7ms,第4个统计周期对应的第三延迟时间为8ms。那么,电子设备可以确定上述第一延迟时间是6ms。
[0348] 本申请实施例中,电子设备可以分别获取N个统计周期中每个统计周期对应的第三延迟时间,即每个统计周期内预设时间集合中、最大延迟收益值对应的延迟时间,或者丢帧率小于预设阈值的延迟时间中、最大延迟收益值对应的延迟时间。然后,将这N个统计周期对应的第三延迟时间中、最小的第三延迟时间作为最优值(即第一延迟时间),来调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。如此,可以在保证电子设备的LCD正常显示画面的前提下,最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0349] 其中,由图7D可知:在offset由小变大的过程中,offset取一定值(如图7D所示的11ms)时,手机的响应延迟最小。本申请实施例中,电子设备可以执行S1001-S1002,从预设时间集合中确定出延迟收益值最大的延迟时间(记为延迟时间a)。然后,电子设备可以调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间,使得垂直同步信号1和垂直同步信号2在一个同步周期落后于垂直同步信号3延迟时间a。这样,可以最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0350] 进一步的,如图11所示,在图10所示的S1002之前,本申请实施例的方法还可以包括S1101。如图11所示,本申请实施例的方法还可以包括S1101、S1102和S1103。
[0351] S1101、电子设备判断N个统计周期对应的第三延迟时间是否大于当前延迟时间。
[0352] 可以理解,如果垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间大于当前延迟时间,那么则会导致图像帧的丢帧。因此,如果N个统计周期对应的第三延迟时间均大于当前延迟时间TOffset_D,为了降低图像帧丢帧的可能性,电子设备可以将N个统计周期对应的第三延迟时间中、最短的第三延迟时间确定为上述第一延迟时间,用于调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。即电子设备可以执行S1002。
[0353] 其中,N个统计周期对应的第三延迟时间中至少一个第三延迟时间小于当前延迟时间,可以分为以下两种情况。情况(1):N个统计周期对应的第三延迟时间均小于当前延迟时间。情况(2):N个统计周期对应的第三延迟时间中的部分第三延迟时间小于当前延迟时间。针对这两种情况,电子设备可以采用不同的延迟时间调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。如此,如果N个统计周期对应的第三延迟时间中至少一个第三延迟时间小于当前延迟时间,电子设备可以执行S1102。
[0354] S1102、电子设备判断N个统计周期对应的第三延迟时间是否小于当前延迟时间。
[0355] 可以理解,在N个统计周期对应的第三延迟时间均小于当前延迟时间的情况下,为了在保证电子设备正常显示画面的前提下,最大限度的缩短电子设备的响应延迟;电子设备可以采用该N个统计周期对应的第三延迟时间中、最长的第三延迟时间调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。即电子设备可以执行S1103,将N个统计周期对应的第三延迟时间中,最长的第三延迟时间确定为上述第一延迟时间。
[0356] 如果N个统计周期对应的第三延迟时间中、一部分第三延迟时间大于当前延迟时间,另一部分第三延迟时间小于当前延迟时间;那么,为了避免出现延迟时间调整的乒乓现象,电子设备则不会在N个统计周期的下一个统计周期调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。
[0357] S1103、电子设备确定N个统计周期对应的第三延迟时间中,最长的第三延迟时间为第一延迟时间。
[0358] 示例性的,以N=5为例。假设5个统计周期中,第1个统计周期对应的第三延迟时间为6ms,第2个统计周期对应的第三延迟时间为7.5ms,第3个统计周期对应的第三延迟时间为6.5ms,第2个统计周期对应的第三延迟时间为6.6ms,第4个统计周期对应的第三延迟时间为7ms,第4个统计周期对应的第三延迟时间为8ms,当前延迟时间为8.5ms。那么,电子设备可以确定上述第一延迟时间是8ms。
[0359] 本申请实施例中,如果N个统计周期对应的第三延迟时间均大于当前延迟时间,电子设备可以将N个统计周期对应的第三延迟时间中、最短的第三延迟时间确定为第一延迟时间,用于调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。这样,可以降低图像帧丢帧的可能性。从而可以在保证电子设备的LCD正常显示画面的前提下,最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0360] 如果N个统计周期对应的第三延迟时间均小于当前延迟时间,电子设备可以采用该N个统计周期对应的第三延迟时间中、最长的第三延迟时间作为第一延迟时间,用于调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。这样,可以在保证电子设备正常显示画面的前提下,最大限度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0361] 可以理解,部分统计周期中的SF帧长的波动可能会比较大,这类统计周期的下一个统计周期中的SF帧长的波动也可能会比较大。因此,这类统计周期的第一延迟时间相比于其他统计周期的第一延迟时间的变化幅度可能较大。在一些实施例中,为了保证电子设备调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间时,所采用的第一延迟时间的幅度的稳定性。电子设备可以在一个统计周期内的多个SF帧长(即第一SF帧长)的变化比较稳定时,才会根据这个统计周期内的相关参数确定第一延迟时间。具体的,在上述S802(如S901或S1001的步骤1)之前,本申请实施例的方法还可以包括S1201-S1204。例如,如图12所示,在图11所示的S1001之前,本申请实施例的方法还可以包括S1201-S1204。
[0362] S1201、电子设备计算统计周期的多个第一SF帧长的期望值,并计算多个第一SF帧长的加权标准差。
[0363] 在S1201之前,电子设备执行S801获取了统计周期内的多个第一SF帧长。多个第一SF帧长的期望值是该多个第一SF帧长的平均值。例如,假设在一个统计周期内,电子设备进行了5次图层合成。这5次图层合成对应的SF帧长(即第一SF帧长)分别为:12ms、13ms、10ms、11ms和12ms。那么,这5个第一SF帧长的期望值μ为:(12+13+10+11+12)/5=11.6ms。
[0364] 示例性的,电子设备计算一个统计周期内多个第一SF帧长的加权标准差的方法可以包括S01-S02。
[0365] S01:电子设备计算统计周期内的多个第一SF帧长的标准差σ。
[0366] 其中,电子设备可以根据统计周期内M个第一SF帧长,M个第一SF帧长的期望值μ,采用以下公式(2):
[0367]
[0368] 计算M个第一SF帧长的标准差σ。其中,M≥2,M为正整数。SFi是M个第一SF帧长中的第i个第一SF帧长。
[0369] S02:电子设备根据标准差σ、统计周期的上一统计周期的标准差σS和预设加权值a,采用以下公式(3):
[0370] σJQ=a*σ+(1-a)*σS   公式(3)
[0371] 计算加权标准差σJQ。例如,预设加权值a可以为70%,60%,65%,80%或85%等。
[0372] 可以理解,一组数据的标准差可以体现出这一组数据的波动情况。那么一个统计周期内的多个第一SF帧长的标准差σ便可以体现出该统计周期内的多个第一SF帧长的波动情况。上述一个统计周期内多个第一SF帧长的加权标准差σJQ则不仅可以体现出该统计周期内的多个第一SF帧长的波动情况,还可以体现出该统计周期内的多个第一SF帧长,相比于上一个统计周期内的多个第一SF帧长的波动情况。
[0373] S1202、电子设备根据同步周期、预设延迟收益值和期望值,计算多个第一SF帧长的标准差门限。
[0374] 其中,当缩短响应延迟的收益为预设延迟收益值S时;SF帧长可以为TZ-TM-S。由正太分布的“3σ”原则可知:区间(μ-3σ,μ+3σ)可以看作随机变量SF(即SF帧长)实际可能的取值区间。由SF∈(μ-3σ,μ+3σ)可知:SF<μ+3σ。那么,本申请实施例中的标准差门限可以基于σ<(SF-μ)/3,即σ<(TZ-S-μ)/3。由此可见,多个第一SF帧长的标准差门限可以为(TZ-S-μ)/3。
[0375] 也就是说,本申请实施例中,电子设备可以根据同步周期TZ、预设延迟收益值S和期望值μ,采用以下公式(4):
[0376] σM=(TZ-S-μ)/3   公式(4)
[0377] 计算多个第一SF帧长的标准差门限σM。
[0378] S1203、电子设备判断加权标准差是否小于标准差门限。
[0379] 由上述描述可知:一个统计周期内的多个第一SF帧长的加权门限σJQ门限要满足以下条件:σJQ<σM,即σJQ<(TZ-S-μ)/3。
[0380] 具体的,如果加权标准差小于标准差门限,电子设备则可以执行S1001;如果加权标准差大于或等于标准差门限,电子设备则可以S1204。
[0381] S1204、电子设备调整垂直同步信号1和垂直同步信号2,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3没有延迟。
[0382] 可以理解,如果加权标准差小于标准差门限,则表示对应统计周期内的SF帧长的波动较小,电子设备可以采用根据该统计周期的相关参数调整垂直同步信号1和垂直同步信号2相对于垂直同步信号3的延迟时间。如果加权标准差大于或等于标准差门限,则表示对应统计周期内的SF帧长的波动较大,电子设备可以启动异常保护机制,调整垂直同步信号1和垂直同步信号2的延迟时间相对于垂直同步信号3的延迟时间,使垂直同步信号1和垂直同步信号2与垂直同步信号3在一个同步周期同时到达。
[0383] 在一些实施例中,在每一个统计周期内,如果预测SF帧长大于该统计周期内的一个SF帧长(即第一SF帧长),则可能会出现图像帧的丢帧。在这种情况下,为了避免图像帧的丢帧,电子设备可以执行S1204,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3没有延迟。
[0384] 例如,在S402和S404a之后,在下一个统计周期内,如果预测SF帧长小于或等于第二SF帧长,电子设备可以调整垂直同步信号1和垂直同步信号2的,使垂直同步信号1和垂直同步信号2相对于垂直同步信号3没有延迟。其中,该预测SF帧长是同步周期与上述第一延迟时间的差值。第二SF帧长是下一个统计周期内最近一次进行图层合成所花费的时间。
[0385] 可选的,在S1204之后,电子设备可以在预设惩罚时间内不调整垂直同步信号1和垂直同步信号2。
[0386] 实施例(九)
[0387] 请参考图13,其示出本申请实施例提供的一种基于垂直同步信号的控制方法的简化流程图。
[0388] 如图13所示,在每一个统计周期开始后,电子设备可以依次判断上一个统计周期的预测SF帧长是否大于本次统计周期中的每一个SF帧长(即执行S1301)。如果预测SF帧长大于本次统计周期的任一个SF帧长,则执行S1307。其中,S1307的详细描述可以参考S1204和上述实施例中的相关描述,这里不予赘述。如果预测SF帧长小于或等于SF帧长,则执行S1302判断统计周期是否到达。如果统计周期未到达,则继续执行S1301,判断预测SF帧长是否大于本次统计周期的下一个SF帧长。如果统计周期到达,则继续执行S1303判断本次统计周期内的加权标准差σJQ是否小于标准差门限σM。其中,S1303的详细描述可以参考S1203的相关描述,这里不予赘述。
[0389] 如果加权标准差σJQ大于或等于标准差门限σM,则执行S1308。其中,S1308的详细描述可以参考S1204的相关描述,这里不予赘述。如果加权标准差σJQ小于标准差门限σM,则执行S1304。其中,S1304的详细描述可以参考S1001的相关描述,这里不予赘述。
[0390] S1304之后,电子设备可以执行S1305,判断N个统计周期对应的第三延迟时间是否大于当前延迟时间。其中,S1305的详细描述可以参考S1101的相关描述,这里不予赘述。
[0391] 如果N个统计周期对应的第三延迟时间均大于当前延迟时间,则执行S1309。其中,S1309的详细描述可以参考S1002的相关描述,这里不予赘述。如果N个统计周期对应的第三延迟时间中至少一个第三延迟时间小于或等于当前延迟时间,则执行S1306判断N个统计周期对应的第三延迟时间是否小于当前延迟时间。其中,S1306的详细描述可以参考S1102的相关描述,这里不予赘述。
[0392] 如果N个统计周期对应的第三延迟时间均小于当前延迟时间,则执行S1310。其中,S1310的详细描述可以参考S1103的相关描述,这里不予赘述。如果N个统计周期对应的第三延迟时间中一部分第三延迟时间小于当前延迟时间,另一部分第三延迟时间大于当前延迟时间,电子设备则不调整垂直同步信号。即垂直同步信号的调整流程结束。
[0393] 实施例(十)
[0394] 请参考图14,其示出本申请实施例提供的一种优化模块的示意图。该优化模块可以是垂直同步信号的调整装置或电子设备中,用于实现本申请实施例的方法的功能模块。如图14所示,该优化模块可以包括:服务通信接口模块1401、帧长检测模块1402、VSYNC策略模块1403和动态调节算法模块1404。
[0395] 帧长检测模块1402用于获取统计周期内的多个第一SF帧长,并向动态调节算法模块1404传输获取的多个第一SF帧长。其中,帧长检测模块1402可以通过服务通信接口模块1401获取统计周期内的多个第一SF帧长。例如,帧长检测模块1402用于支持电子设备执行上述方法实施例中的S801,/或用于本文所描述的技术的其它过程。
[0396] 动态调节算法模块1404用于计算上述第一延迟时间,并向VSYNC策略模块1403传输计算得到的第一延迟时间。例如,动态调节算法模块1404用于支持电子设备执行上述方法实施例中的S401,S802,S802a和S802b,S901-902,S1001-S1002,S1201-S1203,/或用于本文所描述的技术的其它过程。
[0397] VSYNC策略模块1403用于调整垂直同步信号(如调整垂直同步信号1和/或垂直同步信号2,或者调整垂直同步信号3),使垂直同步信号1和垂直同步信号2相对于垂直同步信号3没有延迟。其中,VSYNC策略模块1403可以通过服务通信接口模块1401向硬件显示模块50发送控制信号,以调整垂直同步信号。例如,VSYNC策略模块1403用于支持电子设备执行上述方法实施例中的S402,S404a,S1101,S1102,S1103,S1204,/或用于本文所描述的技术的其它过程。
[0398] 其中,上述优化模块可以在图1A所示的Display框架40中实现。例如,如图15所示,Display框架40中可以包括:服务通信接口模块1401、帧长检测模块1402、VSYNC策略模块1403和动态调节算法模块1404。服务通信接口模块1401可以通过Event线程与合成线程(如doComposer)通信。
[0399] 实施例(十一)
[0400] 请参考图16,其示出两种品牌的手机在机械手速为600毫米(mm)/s时,在“微博”应用的滑动测试场景的测试结果示意图。
[0401] 其中,图16中的(a)示出一种品牌的手机1(如iphone的xs手机)在机械手速为600mm/s时,在“微博”应用的滑动测试场景的测试结果。如图16中的(a)所示,手机1的触摸响应时间为62ms-78ms。
[0402] 图16中的(b)示出另一种品牌的手机2(如华为手机)在执行本申请实施例的方法之前,在机械手速为600mm/s时,在“微博”应用的滑动测试场景的测试结果。如图16中的(b)所示,手机2在执行本申请实施例的方法前,触摸响应时间为73ms-97ms。
[0403] 图16中的(c)示出上述手机2在执行本申请实施例的方法之后,在机械手速为600mm/s时,在“微博”应用的滑动测试场景的测试结果。如图16中的(c)所示,手机2在执行本申请实施例的方法前,触摸响应时间为56ms-73ms。
[0404] 对比图16中的(c)与图16中的(b)可知:以相同的机械手速(如600mm/s)在相同的测试场景进行测试,相比于手机2执行本申请实施例的方法之前的触摸响应时间(简称“触摸响应时间-前”,如73ms-97ms),手机2执行本申请实施例的方法之后的触摸响应时间(简称“触摸响应时间-后”,如56ms-73ms)缩短了较长的延迟时间。也就是说,通过本申请实施例的方法,可以缩短电子设备的响应延迟,提升电子设备的流畅性。
[0405] 对比图16中的(a)与图16中的(b)可知:以相同的机械手速(如600mm/s)在相同的测试场景进行测试,相比于手机1的触摸响应时间(如62ms-78ms),上述“触摸响应时间-前”(如73ms-97ms)较长。
[0406] 而对比图16中的(a)、图16中的(b)和图16中的(c)可知:以相同的机械手速(如600mm/s)在相同的测试场景进行测试,上述“触摸响应时间-后”(如56ms-73ms)不仅相比于上述“触摸响应时间-前”(如73ms-97ms)缩短了较长的延迟时间。相比于手机1的触摸响应时间(如62ms-78ms)也缩短了一定时间。
[0407] 由上述测试场景可知:通过本申请实施例的方法,可以较大幅度的缩短电子设备的响应延迟,提升电子设备的流畅性。
[0408] 实施例(十二)
[0409] 本申请一些实施例提供了一种电子设备,该电子设备可以包括:显示屏(如触摸屏)、存储器和一个或多个处理器。该显示屏、存储器和处理器耦合。该存储器用于存储计算机程序代码,该计算机程序代码包括计算机指令。当处理器执行计算机指令时,电子设备可执行上述方法实施例中电子设备执行的各个功能或者步骤。该电子设备的结构可以参考图2所示的电子设备200的结构。
[0410] 本申请实施例还提供一种芯片系统,如图17所示,该芯片系统包括至少一个处理器1701和至少一个接口电路1702。处理器1701和接口电路1702可通过线路互联。例如,接口电路1702可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路1702可用于向其它装置(例如处理器1701或者电子设备的触摸屏)发送信号。示例性的,接口电路1702可读取存储器中存储的指令,并将该指令发送给处理器1701。当所述指令被处理器
1701执行时,可使得电子设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
[0411] 本申请实施例还提供一种计算机存储介质,该计算机存储介质包括计算机指令,当所述计算机指令在上述电子设备上运行时,使得该电子设备执行上述方法实施例中电子设备执行的各个功能或者步骤。
[0412] 本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中电子设备执行的各个功能或者步骤。
[0413] 通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
[0414] 在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
[0415] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0416] 另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0417] 所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
[0418] 以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。