显示屏的帧率调整方法、装置、终端和存储介质
文献发布时间:2023-06-19 11:39:06
技术领域
本申请涉及屏幕显示技术领域,特别是涉及一种显示屏的帧率调整方法、装置、终端和存储介质。
背景技术
在安卓原生设计中,软件Vsync(垂直同步信号)是由SurfaceFlinger进程的DispSync线程发出的,用来模拟硬件Vsync。Vsync的本质就是每隔一段时间唤醒AppEventThread和SFEventThread,使其工作。由DispSync发出软件模拟的Vsync可以很方便控制Vsync信号,比如使的应用程序线程和SFEventThread工作既保持一定的节拍,又可以相互错开,一前一后保持着节奏,还可以让CPU能错开工作高峰提升性能。
在现有的显示屏中,通常帧率通常是一个固定值,该值在屏幕中显示内容变化较快时,容易造成不必要的功耗浪费,因此,现有技术中的显示片帧率的控制方法不能满足用户多样化的需求。
发明内容
基于此,有必要针对上述技术问题,提供一种显示屏的帧率调整方法、装置、终端和存储介质。
一种显示屏的帧率调整方法,所述方法包括:
在检测到滑动操作时,获取所述滑动操作的结束时刻对应的屏幕滑动速度;
当所述屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及与所述滑动操作对应的屏幕滑动时长;
根据所述当前帧率确定当前帧间隔时长,以及根据所述预设目标帧率确定目标帧间隔时长;
根据所述当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长;
在屏幕滑动期间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率。
在其中一个实施例中,在检测到所述屏幕滑动速度大于第一速度阈值,或者,所述屏幕滑动速度小于第二速度阈值时,判定所述屏幕滑动速度满足预设帧率调整条件。
在其中一个实施例中,所述根据所述当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长包括:
计算所述当前帧间隔时长与所述目标帧间隔时长的平方差;
以及计算所述屏幕滑动时长乘以2的乘积,将所述乘积减去所述当前间隔时长,再减去所述目标帧间隔时长获得的差值;
将所述平方差与所述差值的比值,确定为所述帧间隔变化时长。
在其中一个实施例中,所述方法还包括:获取预设调整区间;
所述在屏幕滑动期间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率包括:
在所述屏幕滑动期间对应的所述预设调整区间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率。
在其中一个实施例中,所述在屏幕滑动期间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率包括:
在屏幕滑动期间内,将所述帧间隔变化时长发送至DispSync线程,通过所述DispSync线程根据所述帧间隔变化时长调整发出软件垂直同步信号的间隔时长,所述软件垂直同步信号用于合成帧以及渲染帧。
在其中一个实施例中,所述在屏幕滑动期间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率包括:
在屏幕滑动期间内,根据所述帧间隔变化时长,逐帧调整与所述屏幕的当前帧率对应的当前帧间隔时长。
在其中一个实施例中,所述根据所述帧间隔变化时长,逐帧调整与所述屏幕的当前帧率对应的当前帧间隔时长包括:
确定所述帧间隔变化时长的(n-1)倍的乘积;
确定所述当前帧间隔时长与所述乘积的差值;
将所述屏幕滑动期间内的第n个帧间隔时长调整为所述差值。
一种显示屏的帧率调整装置,所述装置包括:
第一获取模块,用于在检测到滑动操作时,获取所述滑动操作的结束时刻对应的屏幕滑动速度;
第二获取模块,用于当所述屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及与所述滑动操作对应的屏幕滑动时长;
帧间隔时长确定模块,用于根据所述当前帧率确定当前帧间隔时长,以及根据所述预设目标帧率确定目标帧间隔时长;
帧间隔变化时长确定模块,用于根据所述当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长;
帧率调整模块,用于在屏幕滑动期间内,根据所述帧间隔变化时长调整所述屏幕的当前帧率。
一种终端,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述方法的步骤。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述方法的步骤。
上述显示屏的帧率调整方法、装置、终端和存储介质,通过预设帧率调整条件,在检测到滑动操作时,获取屏幕滑动速度,当屏幕滑动速度满足预设帧率调整条件时,获取当前帧率、预设目标帧率和屏幕滑动操作对应的屏幕滑动时长,根据获取的当前帧率、预设目标帧率和屏幕滑动时长计算获得帧间隔变化时长,并在屏幕滑动期间内根据帧间隔变化时长调整当前帧率;通过上述方法,在屏幕滑动速度满足预设帧率调整条件时适当调整屏幕的帧率,满足多样化需求,具体可以在屏幕显示内容变化较快时,调整帧率达到省电效果。
附图说明
图1为一个实施例中显示屏的帧率调整方法的流程示意图;
图2为另一个实施例中显示屏的帧率调整方法的流程示意图;
图3为一个具体实施例中屏幕滑动的动画插值曲线示意图;
图4为一个具体实施例中显示屏的帧率调整方法的实现架构示意图;
图5为一个具体实施例中帧间隔变化时长与时间关系的曲线的示意图;
图6为一个实施例中显示屏的帧率调整装置的结构框图;
图7为一个实施例中终端的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供了一种显示屏的帧率调整方法;在一个实施例中,本申请中提供的显示屏的帧率调整方法可应用在终端中,终端在检测到滑动操作时,获取屏幕滑动速度,当屏幕滑动速度满足预设帧率调整条件时根据获取的当前帧率、预设目标帧率和屏幕滑动时长计算获得帧间隔变化时长,并在屏幕滑动期间内根据帧间隔变化时长调整显示屏的当前帧率。如图1所示,上述显示屏的帧率调整方法包括步骤S110至步骤S150。
步骤S110,在在检测到滑动操作时,获取滑动操作的结束时刻对应的屏幕滑动速度。
步骤S120,当屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及滑动操作对应的屏幕滑动时长。
其中,滑动操作通常由用户通过手指或者其它媒介实现,终端在检测到滑动操作时,屏幕中的显示内容如果支持滑动,终端将会根据滑动操作对应的方向做出滑动响应,屏幕中显示内容根据滑动操作的方向滑动。根据滑动操作的速度不同,响应滑动操作的屏幕滑动速度也不同。
屏幕也称显示屏,是用于显示图像及色彩的电器。帧率(Frame rate)是以帧称为单位的位图图像连续出现在显示器上的频率(速率)。终端通常在正常显示情况下(未调整显示屏的帧率),采用固定的帧率控制显示屏的显示,在本实施例中,当检测到屏幕滑动速度满足预设帧率调整条件时,获取当前屏幕显示的帧率,记为当前帧率。在本申请的实施例中,帧率是指屏幕刷新率,为应用软件的画面刷新率。
预设目标帧率是预先设定的,在屏幕滑动速度满足预设帧率调整条件时预计将帧率调整到的目标值,在一个实施例中,预设目标帧率可以小于当前帧率,也可以大于当前帧率。进一步地,预设目标帧率根据当前帧率和屏幕滑动速度确定,例如当前帧率较高,且屏幕滑动速度较快时,在屏幕快速滑动的过程中可以以低于当前帧率的目标帧率控制屏幕的显示内容的显示;再如当前帧率较低,且屏幕滑动速度较低,在屏幕缓慢滑动的过程中可以以高于当前帧率的目标帧率控制屏幕的显示内容的显示。在一个具体实施例中,当前帧率较高且屏幕滑动速度较快时,获取的预设目标帧率为所在终端可支持的显示屏最低帧率;在另一个具体实施例中,当前帧率较低且屏幕滑动速度较慢时,获取的预设目标帧率为所在终端可支持的显示屏最高帧率。其中,预设帧率调整条件可以根据实际情况进行设置。
在一个实施例中,在检测到屏幕滑动速度大于第一速度阈值时,判定屏幕滑动速度满足预设帧率调整条件。或者,在另一个实施例中,屏幕滑动为操作结束时屏幕滑动速度小于第二速度阈值时,判定屏幕滑动速度满足预设帧率调整条件,其中,第一速度阈值大于第二速度阈值。
在另一个实施例中,预设目标帧率是由所在终端决定的,即预设目标帧率为所在终端可支持的屏幕最高显示帧率或者最低显示帧率。在一个具体实施例中,假设当前帧率较高需调小,获取的预设目标帧率为所在终端可支持的最低帧率;同理假设当前帧率较低需调高,获取的预设目标帧率为所在终端可支持的最高帧率。
当检测到滑动操作时,终端将会控制屏幕开始滑动,而屏幕的滑动速度以及屏幕滑动时长均是由终端的系统在屏幕的滑动的开始时刻(如用户手指离开屏幕时刻)确定的;在一个实施例中,在检测到滑动操作时,获取滑动操作对应的屏幕滑动速度,当屏幕滑动速度满足预设帧率调整条件时,还需要获取屏幕滑动时长,用于后续的计算;在一个实施例中屏幕滑动时长即为用户手指离开屏幕开始,至滑动结束时刻的区间对应的时长。
步骤S130,根据当前帧率确定当前帧间隔时长,以及根据预设目标帧率确定目标帧间隔时长。
其中,帧间隔时长是指两帧之间的间隔时长,帧率与帧间隔时长之间成反比例关系,可以理解地,帧间隔时长增加时,对应的帧率降低;在本实施例中,与当前帧率对应的帧间隔时长记为当前帧间隔时长,与预设目标帧率对应的帧间隔时长记为目标帧间隔时长。在一个实施例中,帧间隔时长也即是两次软件Vsync信号的间隔时长,单位ms;帧率FPS与帧间隔时长period的关系可以表示为:FPS=1000/period。在一个具体实施例中,帧率为60Hz对应的帧间隔时长约为16.666ms;帧率为90Hz对应的帧间隔时长约为11.111ms。
步骤S140,根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长。
在本实施例中,屏幕滑动速度满足预设帧率调整时需要对帧率进行调整,具体通过调整帧间隔时长来调整帧率,步骤S140中根据当前帧间隔时长、目标帧间隔时长以及屏幕滑动时长确定帧率调整的方式,具体表现为计算帧间隔变化时长。
在一个实施例中,根据目标帧间隔时长与当前帧间隔时长、待确定的帧间隔变化时长以及屏幕滑动期间内待显示的帧数之间的关系,以及屏幕滑动时长与当前帧间隔时长、待确定的帧间隔变化时长之前的关系,可以获得根据当前帧间隔时长、目标帧间隔时长以及屏幕滑动时长计算确定帧间隔变化时长的方法。
进一步地,目标帧间隔时长与当前帧间隔时长、待确定的帧间隔变化时长以及屏幕滑动期间内待显示的帧数之间的关系可以表示为:目标帧间隔时长=当前帧间隔时长-待确定的帧间隔变化时长*(待显示帧数-1)。屏幕滑动时长与当前帧间隔时长、未知的目标帧间隔变化时长之前的关系可以表示为:屏幕滑动时长=屏幕滑动期间内各帧帧间隔时长的和值,其中,各帧间隔时长的确定方式为:屏幕滑动期间内的第i个帧间隔时长=当前帧间隔时长-待确定的帧间隔时长*(i-1);因此屏幕滑动时长与当前帧间隔时长、未知的目标帧间隔变化时长之前的关系可以表示为:屏幕滑动时长=当前帧间隔时长+(当前帧间隔时长-待确定的帧间隔时长)+…+(当前帧间隔时长-待确定的帧间隔时长*(待显示帧数-1))。
更进一步地,在一个具体实施例中,根据目标帧间隔时长与当前帧间隔时长、待确定的帧间隔变化时长以及屏幕滑动期间内待显示的帧数之间的关系,以及屏幕滑动时长与当前帧间隔时长、待确定的帧间隔变化时长之前的关系确定的帧间隔变化时长(根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长)包括:计算当前帧间隔时长与目标帧间隔时长的平方差;以及计算屏幕滑动时长乘以2的乘积,将乘积减去当前间隔时长,再减去目标帧间隔时长获得的差值;将平方差与差值的比值,确定为帧间隔变化时长。
步骤S150,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率。
其中,屏幕滑动期间包括:从屏幕的滑动开始时刻至屏幕的滑动结束时刻之间的时间段。在步骤S140中确定了帧间隔变化时长,在本步骤中根据帧间隔变化时长调整屏幕的帧率;具体为根据帧间隔变化时长调整帧间隔时长,从而达到调整当前帧率的效果,由于帧间隔时长与帧率之间是成反比例关系,因此根据帧间隔变化时长调整帧间隔时长即可实现调整当前帧率的效果。
进一步地,在一个实施例中,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率包括:在屏幕滑动期间内,根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长。
更进一步地,在屏幕滑动期间内根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长包括:确定帧间隔变化时长的(n-1)倍的乘积;确定当前帧间隔时长与该乘积的差值;将屏幕滑动期间内的第n个帧间隔时长调整为上述差值。在一个具体实施例中,在屏幕滑动期间内逐帧调整屏幕的当前帧率可以表示为:在屏幕滑动期间内,第n个帧间隔时长=当前帧间隔时长-(n-1)*帧间隔变化时长,其中,当前帧间隔时长对应的是本次屏幕滑动开始时刻屏幕的帧率。
在另一个实施例中,在屏幕滑动期间内根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长也可以理解为:在屏幕滑动期间内,每一个帧间隔时长相对于前一个帧间隔时长相差一个帧间隔变化时长。
在其中的一个实施例中,当前帧率大于预设目标帧率时,根据帧间隔变化时长逐帧增加当前帧间隔时长;当前帧率大于预设目标帧率,即需要将当前帧率调小,可通过在当前帧间隔时长的基础上增加帧间隔时长达到调小帧率的目的;更为具体地,当前帧率大于预设目标帧率时,确定的帧间隔变化时长为负数,通过当前帧间隔时长与帧间隔变化时长的(n-1)倍的差值确定的第n个帧间隔时长大于当前帧间隔时长,即在当前帧间隔时长的基础上增加了帧间隔时长。同理,当前帧率小于预设目标帧率时,根据帧间隔变化时长逐帧减小当前帧间隔时长;当前帧率小于预设目标帧率,即需要将当前帧率调大,可通过在当前帧间隔时长的基础上减小帧间隔时长达到调大帧率的目的;更为具体地,当前帧率小于预设目标帧率时,确定的帧间隔变化时长为正数,通过当前帧间隔时长与帧间隔变化时长的(n-1)倍的差值确定的第n个帧间隔时长小于当前帧间隔时长,即在当前帧间隔时长的基础上减小了帧间隔时长。
通过上述实施例中的显示屏的帧率调整方法,根据计算确定的帧间隔变化时长,逐帧定长调整当前帧率,在调整帧率的过程中的靠近开始时刻(屏幕滑动的开始时刻)对于帧率的调整较小,并逐帧以前一帧间隔时长调整当前的帧间隔时长,通过逐帧调整帧率,可以尽可能减少帧率调整为用户的体验带来的影响。当前帧率大于预设目标帧率时,在不影响用户体验下,尽可能减少渲染帧和合成帧的次数。
上述显示屏的帧率调整方法,通过预设帧率调整条件,在屏幕滑动速度满足预设帧率调整条件时,根据获取的当前帧率、预设目标帧率和屏幕滑动时长计算获得帧间隔变化时长,并根据帧间隔变化时长调整当前帧率;通过上述方法,在满足预设帧率调整条件时适当调整屏幕的帧率,满足多样化需求,具体可以在屏幕显示内容变化较快时,调整帧率达到省电效果。
如图2所示,为另一个实施例中显示屏的帧率调整方法的流程示意图;在本实施例中,上述方法还包括:获取预设调整区间;在本实施例中,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率包括:在屏幕滑动期间对应的预设调整区间内,根据帧间隔变化时长调整屏幕的当前帧率。
本实施例中,预先设置调整区间,记为预设调整区间;预设调整区间是用于规定在屏幕滑动期间内调整帧率的区间;预设调整区间可以根据实际情况进行调整。
在一个实施例中,屏幕滑动期间内不同时刻对应的屏幕滑动速度不相同,根据动画插值曲线可以看出屏幕滑动期间内的屏幕滑动速度是先快后慢;如图3所示,为一个具体实施例中屏幕滑动的动画插值曲线示意图。在屏幕刚开始滑动时,速度最大,每帧移动距离较长;越接近动画停止时速度越慢,每帧移动距离越短,直到停止。为了照顾用户体验,可以设置一个预设调整区间,在一个具体实施例中,通过预设coffe值来指定逐帧变化的区间段,例如coffe为0.6时,意味着整个屏幕滑动期间的前60%是帧率在定长变化。
上述实施例中的方法,通过对屏幕滑动期间内预设调整区间进行帧率的调整,如在屏幕滑动期间内动画变化较快的区间内做变帧处理,而当屏幕滑动期间内动画变化速度减缓时,维持高帧率,确保在滑动速度降下来后帧数会恢复至最大值。经过测算,当当前帧率为120Hz,目标帧率为60Hz时,coffe取值为(0,1],对应帧数减少比例为(0,33.59%]。
在一个实施例中,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率包括:在屏幕滑动期间内,将帧间隔变化时长发送至DispSync线程,通过DispSync线程根据帧间隔变化时长调整发出软件垂直同步信号的间隔时长,软件垂直同步信号用于合成帧以及渲染帧。
在安卓系统中,DispSync线程为SurfaceFlinger进程用于发出软件模拟的Vsync(垂直同步信号),软件模拟的Vsync用于每隔一段时间唤醒AppEventThread和SFEventThread,使其工作;而AppEventThread用于渲染帧,SFEventThread用于合成帧。
如图4所示为一个实施例中显示屏的帧率调整方法的实现架构示意图。其中App为对应应用进程,通过我们在OverScroller(安卓滑动辅助类)和其他地方添加的事件埋点来触发帧率调整。通过Binder通信统一交给SystemServer进程中的DynamicVsyncManager(Vsync动态管理器)处理,计算得出最终动态帧率的各个参数。最后通过Binder向SurfaceFlinger(用于接受多个来源的图形显示数据,将他们合成,然后发送到显示设备)中的DispSync中传递并应用这些参数。
在一个具体实施例中,在检测到的屏幕滑动速度满足预设帧率调整条件时,通过Binder的服务模块从应用进程获取屏幕滑动时长,发送至Binder的DynamicVsyncManager,同时DynamicVsyncManager获取当前帧率和预设目标帧率,根据当前帧率、预设目标帧率以及屏幕滑动时长计算确定帧间隔变化时长,将帧间隔变化时长发送至DispSync,使DispSync根据帧间隔变化时长调整发出软件Vsync信号的间隔时间。
进一步地,以为例,在检测到屏幕滑动速度满足预设帧率调整条件时,将获取的当前帧率记为fps,预设目标帧率记为minfps,屏幕滑动时长记为duration,待确定的帧间隔变化时长记为incPeriod,根据当前帧率fps确定的当前帧间隔时长记为maxPeriod,根据minfps确定的目标帧间隔时长记为targetPeriod,屏幕滑动期间内待显示的帧数记为frame。
fps=1000/period;
C=maxPeriod=1000/minFps;
targetPeriod=C-incPeriod*(frame-1);
duration=C+(C-incPeriod)+(C-2*incPeriod)+...+[(C-(frame-1)*incPeriod].
由上述是可以推算出:
incPeriod=(C^2-targetPeriod^2)/(2*duration-C-targetPeriod).
由于在实际情况中屏幕滑动期间内对应的插值动画对应的滑动速度是先快后慢,所以在刚开始滑动时,其帧间隔时长可以设定为最小,然后逐帧增长。设最大帧率为90Hz,最小帧率为60Hz,则对应incPeriod与时间关系的曲线如下图5所示。
进一步地,设置coffe值为0.6,规定在屏幕滑动期间内前60%的区间内调整帧率。
上述显示屏的帧率调整方法,在满足一定条件时,对显示屏的帧率进行调整,通过上述方法,在高帧率机器提供一种动态帧率的实现方法,可以帮助达到省电效果;同时,通过在预设调整区间内对显示屏的帧率进行调整,可以在不影响用户的体验下,尽可能减少帧的渲染和合成次数,限制软件刷新次数以解决卡顿掉帧的性能问题。
应该理解的是,虽然图1、2的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图1、2中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图6所示,提供了一种显示屏的帧率调整装置,该装置包括:第一获取模块610、第二获取模块620、帧间隔时长确定模块630、帧间隔变化时长确定模块640以及帧率调整模块650。其中:
第一获取模块610,用于在检测到滑动操作时,获取所述滑动操作的结束时刻对应的屏幕滑动速度;
第二获取模块620,用于屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及滑动操作对应的屏幕滑动时长;
帧间隔时长确定模块630,用于根据当前帧率确定当前帧间隔时长,以及根据预设目标帧率确定目标帧间隔时长;
帧间隔变化时长确定模块640,用于根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长;
帧率调整模块650,用于在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率;其中,屏幕滑动期间包括:从屏幕的滑动开始时刻至屏幕的滑动结束时刻之间的时间段。
上述显示屏的帧率调整装置,通过预设帧率调整条件,在检测到滑动操作时,获取屏幕滑动速度,当屏幕滑动速度满足预设帧率调整条件时,获取当前帧率、预设目标帧率和屏幕滑动操作对应的屏幕滑动时长,根据获取的当前帧率、预设目标帧率和屏幕滑动时长计算获得帧间隔变化时长,并在屏幕滑动期间内根据帧间隔变化时长调整当前帧率;通过上述方法,在屏幕滑动速度满足预设帧率调整条件时适当调整屏幕的帧率,满足多样化需求,具体可以在屏幕显示内容变化较快时,调整帧率达到省电效果。
在一个实施例中,上述装置的获取模块还用于获取预设调整区间;在本实施例中,帧率调整模块具体用于在屏幕滑动期间对应的预设调整区间内,根据帧间隔变化时长调整屏幕的当前帧率。
在一个实施例中,上述装置的帧率调整模块具体用于在屏幕滑动期间内,将帧间隔变化时长发送至DispSync线程,通过DispSync线程根据帧间隔变化时长调整发出软件垂直同步信号的间隔时长,软件垂直同步信号用于合成帧以及渲染帧。
在一个实施例中,上述装置的帧率调整模块具体用于在屏幕滑动期间内,根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长。
更进一步地,在一个实施例中,上述装置的帧率调整模块具体用于确定帧间隔变化时长的(n-1)倍的乘积;确定当前帧间隔时长与乘积的差值;将屏幕滑动期间内的第n个帧间隔时长调整为差值。
关于上述显示屏的帧率调整装置的具体限定可以参见上文中对于显示屏的帧率调整方法的限定,在此不再赘述。上述显示屏的帧率调整装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图7所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种显示屏的帧率调整方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图7中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:
在检测到滑动操作时,获取所述滑动操作的结束时刻对应的屏幕滑动速度;
当屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及滑动操作对应的屏幕滑动时长;
根据当前帧率确定当前帧间隔时长,以及根据预设目标帧率确定目标帧间隔时长;
根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长;
在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率;其中,屏幕滑动期间包括:从屏幕的滑动开始时刻至屏幕的滑动结束时刻之间的时间段。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在检测到屏幕滑动速度大于第一速度阈值,或者,屏幕滑动为操作结束时屏幕滑动速度小于第二速度阈值时,判定屏幕滑动速度满足预设帧率调整条件;其中,第一速度阈值大于第二速度阈值。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长包括:
计算当前帧间隔时长与目标帧间隔时长的平方差;
以及计算屏幕滑动时长乘以2的乘积,将乘积减去当前间隔时长,再减去目标帧间隔时长获得的差值;
将平方差与差值的比值,确定为帧间隔变化时长。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:获取预设调整区间;在本实施例中,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率包括:在屏幕滑动期间对应的预设调整区间内,根据帧间隔变化时长调整屏幕的当前帧率。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在屏幕滑动期间内,将帧间隔变化时长发送至DispSync线程,通过DispSync线程根据帧间隔变化时长调整发出软件垂直同步信号的间隔时长,软件垂直同步信号用于合成帧以及渲染帧。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在屏幕滑动期间内,根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长包括:确定帧间隔变化时长的(n-1)倍的乘积;确定当前帧间隔时长与乘积的差值;将屏幕滑动期间内的第n个帧间隔时长调整为差值。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:
在检测到滑动操作时,获取所述滑动操作的结束时刻对应的屏幕滑动速度;
当屏幕滑动速度满足预设帧率调整条件时,获取屏幕的当前帧率、预设目标帧率以及滑动操作对应的屏幕滑动时长;
根据当前帧率确定当前帧间隔时长,以及根据预设目标帧率确定目标帧间隔时长;
根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长;
在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率;其中,屏幕滑动期间包括:从屏幕的滑动开始时刻至屏幕的滑动结束时刻之间的时间段。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:当屏幕滑动速度大于第一速度阈值,或者,当屏幕滑动速度小于第二速度阈值时,判定屏幕滑动速度满足预设帧率调整条件;其中,第一速度阈值大于第二速度阈值。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据当前帧间隔时长、目标帧间隔时长和屏幕滑动时长确定帧间隔变化时长包括:
计算当前帧间隔时长与目标帧间隔时长的平方差;
以及计算屏幕滑动时长乘以2的乘积,将乘积减去当前间隔时长,再减去目标帧间隔时长获得的差值;
将平方差与差值的比值,确定为帧间隔变化时长。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:获取预设调整区间;在本实施例中,在屏幕滑动期间内,根据帧间隔变化时长调整屏幕的当前帧率包括:在屏幕滑动期间对应的预设调整区间内,根据帧间隔变化时长调整屏幕的当前帧率。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在屏幕滑动期间内,将帧间隔变化时长发送至DispSync线程,通过DispSync线程根据帧间隔变化时长调整发出软件垂直同步信号的间隔时长,软件垂直同步信号用于合成帧以及渲染帧。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在屏幕滑动期间内,根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:根据帧间隔变化时长,逐帧调整与屏幕的当前帧率对应的当前帧间隔时长包括:确定帧间隔变化时长的(n-1)倍的乘积;确定当前帧间隔时长与乘积的差值;将屏幕滑动期间内的第n个帧间隔时长调整为差值。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
- 显示屏的帧率调整方法、装置、终端和存储介质
- 帧率调整方法、装置、存储介质及智能终端