帧率切换方法和相关装置与流程

文档序号:27339174发布日期:2021-11-10 02:42阅读:1195来源:国知局
帧率切换方法和相关装置与流程

1.本技术涉及终端技术领域,尤其涉及帧率切换方法和相关装置。


背景技术:

2.目前,终端设备可以支持的屏幕刷新帧率有多种,例如60次/秒(hz)、90hz、120hz或144hz。
3.由于在视频、游戏、普通ui等不同的场景下要求的帧率不一样,终端设备会随着场景的变化动态切换帧率。屏幕刷新帧率的切换可以体现为垂直同步信号(vetical synchronization,vsync)的周期时长的变化。当终端设备的帧率从120hz切换为60hz时,vsync的周期时长从8.33毫秒(ms)变为16.66ms。
4.但是,在终端设备切换场景时,容易出现画面停顿的现象。


技术实现要素:

5.本技术实施例提供帧率切换方法和相关装置,应用于终端设备。通过多个过渡周期,缓慢增加或降低周期时长,使得帧率切换可以平滑切换,避免帧率切换导致的卡顿,提高用户体验。
6.第一方面,本技术实施例提出一种帧率切换方法,应用于终端设备,该方法包括:生成帧率切换请求;响应于帧率切换请求,确定将终端设备的屏幕刷新帧率从第一帧率切换到第二帧率;确定从第一帧率向第二帧率切换时的帧率切换策略;帧率切换策略包括在多个过渡周期中将第一帧率切换到第二帧率的策略,过渡周期的周期时长处于第一帧率对应的周期时长以及第二帧率对应的周期时长之间;执行帧率切换策略,以将第一帧率平滑切换到第二帧率。
7.这样,从第一帧率向第二帧率切换时,过渡周期时长缓慢增加或降低,使得帧率切换可以平滑切换,避免帧率切换导致的卡顿,提高用户体验。
8.可选的,帧率切换策略用于指示过渡周期的数量以及多个过渡周期之间的周期变化量。
9.可选的,过渡周期满足下述公式:过渡周期=x
±
δ
×
n
a
;x为第一帧率对应的周期时长,δ为多个过渡周期之间的周期变化量,a为切换加速度,n为从产生帧率切换请求的周期计数到过渡周期时的周期数量,n为自然数。
10.这样,多个过渡周期时长缓慢增加或降低,使得帧率切换可以平滑切换。
11.可选的,多个过渡周期的周期时长之和为第二帧率对应的周期时长的整数倍;并且,多个过渡周期的周期时长与第二帧率对应的周期时长符合递增或递减变化规律。
12.这样,最后一个过渡周期与硬件的时钟节奏一致,避免屏幕显示的卡顿现象。递增或递减可以使得帧率平滑切换。
13.可选的,帧率切换策略中的值满足下述公式:y=x
±
δ
×
(λ+1)
a
;k为以第二帧率对应的周期时长从第一帧率切换到第二帧率时所需的周期
数目,y为第二帧率对应的周期时长,λ为过渡周期的数量,k和λ均为自然数。
14.可选的,第一帧率向第二帧率切换时对应的k、λ和δ是预先设置好的。
15.这样,全局使用统一的切换策略,执行方式简单,容易实现。
16.可选的,k、λ和δ是根据第一帧率向第二帧率切换时的切换时长在预设的对应关系中获取的,对应关系中包括k、λ、δ和切换时长的对应关系;
17.切换时长是根据终端设备中显示的目标场景以及目标场景的运行时间确定的。
18.这样,结合目标场景的运行时间,使得帧率切换更加平滑,增加用户体验。
19.可选的,目标场景包括动画场景和/或视频场景;当目标场景为动画场景时,切换时长与动画时长相关;当目标场景为视频场景时,切换时长与视频加载时长和/或视频时长相关。
20.可选的,k、λ和δ是将第一帧率和第二帧率输入预先训练的模型中,由模型输出的;模型用于根据第一帧率和第二帧率对多个切换时长进行打分,并根据打分输出切换时长对应的k、λ和δ。
21.可选的,终端设备包括:窗口管理器、帧率决策管理器和显示合成进程。生成帧率切换请求包括:窗口管理器生成帧率切换请求,向帧率决策管理器发送帧率切换请求。响应于帧率切换请求,确定将终端设备的屏幕刷新帧率从第一帧率切换到第二帧率包括:帧率决策管理器响应于帧率切换请求,确定将终端设备的屏幕刷新帧率从第一帧率切换到第二帧率。
22.确定从第一帧率向第二帧率切换时的帧率切换策略包括:帧率决策管理器从第一帧率向第二帧率切换时的帧率切换策略;帧率决策管理器向显示合成进程发送帧率切换策略。执行帧率切换策略,以将第一帧率平滑切换到第二帧率包括:显示合成进程和应用执行帧率切换策略,以将第一帧率平滑切换到第二帧率。
23.可选的,执行帧率切换策略,包括:根据帧率切换策略产生多个过渡周期;分别在多个过渡周期中进行帧绘制和合成;在多个过渡周期结束时,产生第二帧率对应的软件垂直同步信号vsync。
24.可选的,终端设备包括显示合成进程和应用。根据帧率切换策略产生多个过渡周期包括:显示合成进程根据帧率切换策略产生多个过渡周期。分别在多个过渡周期中进行帧绘制和合成包括:应用在多个过渡周期中进行帧绘制,显示合成进程在多个过渡周期中进行帧合成。在多个过渡周期结束时,产生第二帧率对应的软件垂直同步信号vsync包括:显示合成进程在多个过渡周期结束时,产生第二帧率对应的软件vsync。
25.可选的,方法还包括:产生第二帧率对应的硬件vsync;基于硬件vsync校准第二帧率对应的软件vsync。
26.这样,通过硬件vsync校准,二帧率对应的软件vsync与硬件的时钟节奏一致,避免屏幕显示的卡顿现象。
27.可选的,终端设备还包括硬件配置模块和lcd/led驱动。产生第二帧率对应的硬件vsync包括:lcd/led驱动产生第二帧率对应的硬件vsync。基于硬件vsync校准第二帧率对应的软件vsync包括:lcd/led驱动,向硬件配置模块发送硬件vsync;硬件配置模块向显示合成进程发送硬件vsync;显示合成进程基于硬件vsync校准第二帧率对应的软件vsync。
28.可选的,生成帧率切换请求包括:在监听到前台应用变化时,生成帧率切换请求;
前台应用变化包括下述任一种:应用打开、应用切换、应用中的场景切换。
29.可选的,终端设备包括窗口管理器。在监听到前台应用变化时,生成帧率切换请求包括:窗口管理器在监听到前台应用变化时,生成帧率切换请求。
30.第二方面,本技术实施例提供了一种终端设备,终端设备也可以称为终端(terminal)、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self

driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。
31.该终端设备包括处理器,处理器用于调用存储器中的计算机程序以执行如第一方面所述的方法。
32.第三方面,本技术实施例提供了一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在终端设备上运行时,使得终端设备执行如第一方面所述的方法。
33.第四方面,本技术实施例提供了一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行如如第一方面所述的方法。
34.应当理解的是,本技术的第二方面至第四方面与本技术的第一方面的技术方案相对应,各方面及对应的可行实施方式所取得的有益效果相似,不再赘述。
附图说明
35.图1为本技术实施例提供的终端设备硬件系统结构示意图;
36.图2为本技术实施例提供的终端设备软件系统结构示意图;
37.图3为可能的实现中一种vsync触发终端设备界面显示处理流程的示意图;
38.图4为本技术实施例提供的一种应用场景示意图;
39.图5为可能的设计中vsync周期的变化示意图;
40.图6为本技术实施例提供的帧率切换方法中各个模块之间交互的过程示意图;
41.图7为本技术实施例提供一种的帧率切换方法的流程示意图;
42.图8为本技术实施例提供的一种应用切换示意图;
43.图9为本技术实施例提供的一种应用中的场景切换示意图;
44.图10为本技术实施例提供的一种应用中的场景切换示意图;
45.图11为本技术实施例提供的一种vsync周期的变化示意图;
46.图12为本技术实施例提供的一种确认切换时长的方法流程示意图;
47.图13为本技术实施例提供的一种自适应选择切换时长的方法流程示意图;
48.图14为本技术实施例提供的一种帧率切换装置的结构示意图;
49.图15为本技术实施例提供的一种帧率切换装置的硬件结构示意图。
具体实施方式
50.为了便于清楚描述本技术实施例的技术方案,在本技术的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
51.需要说明的是,本技术实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本技术中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
52.本技术实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b的情况,其中a,b可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。“以下至少一项(个)”或其类似表达,是指的这些项中的任意组合,包括单项(个)或复数项(个)的任意组合。例如,a,b,或c中的至少一项(个),可以表示:a,b,c,a

b,a

c,b

c,或a

b

c,其中a,b,c可以是单个,也可以是多个。
53.本技术实施例提供的帧率切换方法,可以应用在具备显示功能的终端设备中。终端设备也可以称为终端(terminal)、用户设备(user equipment,ue)、移动台(mobile station,ms)、移动终端(mobile terminal,mt)等。终端设备可以是手机(mobile phone)、智能电视、穿戴式设备、平板电脑(pad)、带无线收发功能的电脑、虚拟现实(virtual reality,vr)终端设备、增强现实(augmented reality,ar)终端设备、工业控制(industrial control)中的无线终端、无人驾驶(self

driving)中的无线终端、远程手术(remote medical surgery)中的无线终端、智能电网(smart grid)中的无线终端、运输安全(transportation safety)中的无线终端、智慧城市(smart city)中的无线终端、智慧家庭(smart home)中的无线终端等等。本技术的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
54.为了能够更好地理解本技术实施例,下面对本技术实施例的终端设备的结构进行介绍:
55.图1示出了终端设备100的结构示意图。终端设备100可以包括处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,usb)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriberidentification module,sim)卡接口195等。其中传感器模块180可以包括压力传感器180a,陀螺仪传感器180b,气压传感器180c,磁传感器180d,加速度传感器180e,距离传感器180f,接近光传感器180g,指纹传感器180h,温度传感器180j,触摸传感器180k,环境光传感器180l,骨传导传感器180m等。
56.可以理解的是,本技术实施例示意的结构并不构成对终端设备100的具体限定。在本技术另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部
件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
57.处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,ap),调制解调处理器,图形处理器(graphics processingunit,gpu),图像信号处理器(image signal processor,isp),控制器,视频编解码器,数字信号处理器(digital signal processor,dsp),基带处理器,和/或神经网络处理器(neural

network processing unit,npu)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
58.控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
59.处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从存储器中调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
60.在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(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)接口等。
61.i2c接口是一种双向同步串行总线,包括一根串行数据线(serial data line,sda)和一根串行时钟线(derail clock line,scl)。在一些实施例中,处理器110可以包含多组i2c总线。处理器110可以通过不同的i2c总线接口分别耦合触摸传感器180k,充电器,闪光灯,摄像头193等。例如:处理器110可以通过i2c接口耦合触摸传感器180k,使处理器110与触摸传感器180k通过i2c总线接口通信,实现终端设备100的触摸功能。
62.i2s接口可以用于音频通信。在一些实施例中,处理器110可以包含多组i2s总线。处理器110可以通过i2s总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过i2s接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
63.pcm接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过pcm总线接口耦合。在一些实施例中,音频模块170也可以通过pcm接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。i2s接口和pcm接口都可以用于音频通信。
64.uart接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,uart接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过uart接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过uart接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
65.mipi接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。mipi接口包括摄像头串行接口(camera serial interface,csi),显示屏串行接口(displayserial interface,dsi)等。在一些实施例中,处理器110和摄像头193通过csi接口通信,实现终端设备100的拍摄功能。处理器110和显示屏194通过dsi接口通信,实现终端设备100的显示功能。
66.gpio接口可以通过软件配置。gpio接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,gpio接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。gpio接口还可以被配置为i2c接口,i2s接口,uart接口,mipi接口等。
67.usb接口130是符合usb标准规范的接口,具体可以是mini usb接口,micro usb接口,usb type c接口等。usb接口130可以用于连接充电器为终端设备100充电,也可以用于终端设备100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他电子设备,例如ar设备等。
68.可以理解的是,本技术实施例示意的各模块间的接口连接关系,是示意性说明,并不构成对终端设备100的结构限定。在本技术另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
69.充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过usb接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端设备100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端设备供电。
70.电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
71.终端设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
72.天线1和天线2用于发射和接收电磁波信号。终端设备100中的天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
73.移动通信模块150可以提供应用在终端设备100上的包括2g/3g/4g/5g等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,lna)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
74.调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170a,受话器170b等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
75.无线通信模块160可以提供应用在终端设备100上的包括无线局域网(wirelesslocal area networks,wlan)(如无线保真(wireless fidelity,wi

fi)网络),蓝牙(bluetooth,bt),全球导航卫星系统(global navigation satellite system,gnss),调频(frequency modulation,fm),近距离无线通信技术(near field communication,nfc),红外技术(infrared,ir)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
76.在一些实施例中,终端设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端设备100可以通过无线通信技术与网络以及其他设备通信。无线通信技术可以包括全球移动通讯系统(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)。
77.终端设备100通过gpu,显示屏194,以及应用处理器等实现显示功能。gpu为图像处理的微处理器,连接显示屏194和应用处理器。gpu用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个gpu,其执行程序指令以生成或改变显示信息。
78.显示屏194用于显示图像、显示视频和接收滑动操作等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,lcd),有机发光二极管(organic light

emittingdiode,oled),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active

matrixorganic light emitting diod,amoled),柔性发光二极管(flex light

emittingdiode,fled),miniled,microled,micro

oled,量子点发光二极管(quantum dot lightemitting diodes,qled)等。在一些实施例中,终端设备100可以包括1个或n个显示屏194,n为大于1的正整数。
79.终端设备100可以通过isp,摄像头193,视频编解码器,gpu,显示屏194以及应用处理器等实现拍摄功能。
80.isp用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将电信号传递给isp处理,转化为肉眼可见的图像。isp还可以对图像的噪点,亮度,肤色进行算法优化。isp还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,isp可以设置在摄像头193中。
81.摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,ccd)或互补金属氧化物半导体(complementary metal

oxide

semiconductor,cmos)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给isp转换成数字图像信号。isp将数字图像信号输出到dsp加工处理。dsp将数字图像信号转换成标准的rgb,yuv等格式的图像信号。在一些实施例中,终端设备100可以包括1个或n个摄像头193,n为大于1的正整数。
82.数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端设备100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
83.视频编解码器用于对数字视频压缩或解压缩。终端设备100可以支持一种或多种视频编解码器。这样,终端设备100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,mpeg)1,mpeg2,mpeg3,mpeg4等。
84.npu为神经网络(neural

network,nn)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过npu可以实现终端设备100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
85.外部存储器接口120可以用于连接外部存储卡,例如micro sd卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
86.内部存储器121可以用于存储计算机可执行程序代码,可执行程序代码包括指令。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端设备100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,ufs)等。处理器110通过运行存储在内部存储器121的指令,和/或存储在设置于处理器中的存储器的指令,执行终端设备100的各种功能应用以及数据处理。
87.终端设备100可以通过音频模块170,扬声器170a,受话器170b,麦克风170c,耳机接口170d,以及应用处理器等实现音频功能。例如音乐播放,录音等。
88.音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
89.扬声器170a,也称“喇叭”,用于将音频电信号转换为声音信号。终端设备100可以通过扬声器170a收听音乐,或收听免提通话。
90.受话器170b,也称“听筒”,用于将音频电信号转换成声音信号。当终端设备100接听电话或语音信息时,可以通过将受话器170b靠近人耳接听语音。
91.麦克风170c,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170c发声,将声音信号输入到麦克风170c。终端设备100可以设置至少一个麦克风170c。在另一些实施例中,终端设备100可以设置两个麦克风170c,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端设备100还可以设置三个,四个或更多麦克风170c,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
92.耳机接口170d用于连接有线耳机。耳机接口170d可以是usb接口130,也可以是3.5mm的开放移动电子设备平台(open mobile terminal platform,omtp)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the usa,ctia)标准接口。
93.压力传感器180a用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180a可以设置于显示屏194。压力传感器180a的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180a,电极之间的电容改变。终端设备100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端设备100根据压力传感器180a检测触摸操作强度。终端设备100也可以根据压力传感器180a的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。
94.陀螺仪传感器180b可以用于确定终端设备100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180b确定终端设备100围绕三个轴(即,x、y和z轴)的角速度。陀螺仪传感器180b可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180b检测终端设备100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端设备100的抖动,实现防抖。陀螺仪传感器180b还可以用于导航,体感游戏场景。
95.气压传感器180c用于测量气压。在一些实施例中,终端设备100通过气压传感器180c测得的气压值计算海拔高度,辅助定位和导航。
96.磁传感器180d包括霍尔传感器。终端设备100可以利用磁传感器180d检测翻盖皮套的开合。在一些实施例中,当终端设备100是翻盖机时,终端设备100可以根据磁传感器180d检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
97.加速度传感器180e可检测终端设备100在各个方向上(一般为三轴)加速度的大小。当终端设备100静止时可检测出重力的大小及方向。还可以用于识别终端设备姿态,应用于横竖屏切换,计步器等应用程序。
98.距离传感器180f,用于测量距离。终端设备100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端设备100可以利用距离传感器180f测距以实现快速对焦。
99.接近光传感器180g可以包括例如发光二极管(led)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端设备100通过发光二极管向外发射红外光。终端设备100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确
定终端设备100附近有物体。当检测到不充分的反射光时,终端设备100可以确定终端设备100附近没有物体。终端设备100可以利用接近光传感器180g检测用户手持终端设备100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180g也可用于皮套模式,口袋模式自动解锁与锁屏。
100.环境光传感器180l用于感知环境光亮度。终端设备100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180l也可用于拍照时自动调节白平衡。环境光传感器180l还可以与接近光传感器180g配合,检测终端设备100是否在口袋里,以防误触。
101.指纹传感器180h用于采集指纹。终端设备100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
102.温度传感器180j用于检测温度。在一些实施例中,终端设备100利用温度传感器180j检测的温度,执行温度处理策略。例如,当温度传感器180j上报的温度超过阈值,终端设备100执行降低位于温度传感器180j附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端设备100对电池142加热,以避免低温导致终端设备100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端设备100对电池142的输出电压执行升压,以避免低温导致的异常关机。
103.触摸传感器180k,也称“触控器件”。触摸传感器180k可以设置于显示屏194,由触摸传感器180k与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180k用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180k也可以设置于终端设备100的表面,与显示屏194所处的位置不同。
104.骨传导传感器180m可以获取振动信号。在一些实施例中,骨传导传感器180m可以获取人体声部振动骨块的振动信号。骨传导传感器180m也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180m也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于骨传导传感器180m获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于骨传导传感器180m获取的血压跳动信号解析心率信息,实现心率检测功能。
105.按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端设备100可以接收按键输入,产生与终端设备100的用户设置以及功能控制有关的键信号输入。
106.马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用程序(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
107.指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
108.sim卡接口195用于连接sim卡。sim卡可以通过插入sim卡接口195,或从sim卡接口195拔出,实现和终端设备100的接触和分离。终端设备100可以支持1个或n个sim卡接口,n为大于1的正整数。sim卡接口195可以支持nano sim卡,micro sim卡,sim卡等。同一个sim
卡接口195可以同时插入多张卡。多张卡的类型可以相同,也可以不同。sim卡接口195也可以兼容不同类型的sim卡。sim卡接口195也可以兼容外部存储卡。终端设备100通过sim卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端设备100采用esim,即:嵌入式sim卡。esim卡可以嵌在终端设备100中,不能和终端设备100分离。
109.终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本技术实施例以分层架构的android系统为例,示例性说明终端设备100的软件结构。
110.图2是本技术实施例的终端设备的软件结构框图。
111.分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用层,应用程序框架层,安卓运行时(android runtime)和系统库,硬件抽象层,以及内核层。
112.应用层可以包括一系列应用程序包。如图2所示,应用程序包可以包括电话、邮箱、日历、相机等应用程序。
113.应用程序框架层为应用层的应用程序提供应用编程接口(application programming interface,api)和编程框架。应用程序框架层包括一些预先定义的函数。
114.如图2所示,应用程序框架层可以包括窗口管理器、活动管理器、位置管理器、包管理器、通知管理器、资源管理器、电话管理器、视图系统和帧率决策管理器等。
115.窗口管理器(window manager service,wms)用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
116.活动管理器用于管理各个应用程序的生命周期以及导航回退功能。负责android的主线程创建,各个应用程序的生命周期的维护。
117.位置管理器用于为应用程序提供位置服务,包括查询上一个已知位置、注册和注销来自某个周期性的位置更新等。
118.包管理器用于系统内的程序管理,例如:应用程序安装、卸载和升级等。
119.通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
120.资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
121.电话管理器用于管理移动设备功能,包括:手机通话状态、获取电话信息(设备、sim卡、网络信息),监听电话状态以及调用电话拨号器拨打电话
122.视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
123.帧率决策管理器用于确定终端设备的屏幕刷新帧率,以及选取屏幕刷新帧率的切换方式。
124.android runtime包括核心库和虚拟机。android runtime负责安卓系统的调度和
管理。
125.核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
126.应用层和应用程序框架层运行在虚拟机中。虚拟机将应用层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。虚拟机中还运行有显示合成进程(例如,surface flinger)。显示合成进程用于控制图像的合成。
127.系统库可以包括多个功能模块。例如:图像绘制模块、图像渲染模块、图像合成模块、函数库和媒体库等。
128.图像绘制模块用于二维或三维图像的绘制。图像渲染模块用于二维或三维图像的渲染。图像合成模块用于二维或三维图像的合成。
129.可能的实现方式中,应用通过图像绘制模块对图像进行绘制,然后应用通过图像渲染模块对绘制后的图像进行渲染,然后应用将渲染后的图像发送至显示合成进程的缓存队列中。每当vsync到来时,显示合成进程(例如,surface flinger)从缓存队列中按顺序获取待合成的一帧图像,然后通过图像合成模块进行图像合成。
130.函数库提供c语言中所使用的宏、类型定义、字符串操作函数、数学计算函数以及输入输出函数等
131.媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。
132.硬件抽象层,可以包含多个库模块,库模块如可以为硬件配置模块(hwcomposer,hwc)、摄像头库模块等。android系统可以为设备硬件加载相应的库模块,进而实现应用程序框架层访问设备硬件的目的。设备硬件可以包括如电子设备中的lcd屏幕、摄像头等。
133.内核层是硬件和软件之间的层。内核层用于驱动硬件,使得硬件工作。内核层至少包含lcd/led驱动、显示驱动、音频驱动、摄像头驱动和传感器驱动等。
134.硬件可以是音频设备、蓝牙设备、相机设备、传感器设备等。
135.为了便于理解,示例的给出部分与本技术实施例相关概念的说明和终端设备的显示流程以供参考。
136.1、帧:是指界面显示中最小单位的单幅画面。一帧可以理解为一副静止的画面,快速连续地显示多个相连的帧可以形成物体运动的假象。
137.2、帧率:是指在1秒钟时间里刷新图片的帧数,也可以理解为终端设备中图形处理器每秒钟刷新画面的次数。高的帧率可以得到更流畅和更逼真的动画。每秒钟帧数越多,所显示的动作就会越流畅。
138.需要说明的是,界面显示帧前通常需要经过绘制、渲染、合成等过程。
139.3、帧绘制:是指显示界面的图片绘制。显示界面可以由一个或多个视图组成,各个视图可以由视图系统的可视控件绘制,各个视图由子视图组成,一个子视图对应视图中的一个小部件,例如,其中的一个子视图对应图片视图中的一个符号。
140.4、帧渲染:是将绘制后的视图进行着色操作或增加3d效果等。例如:3d效果可以是灯光效果、阴影效果和纹理效果等。
141.5、帧合成:是将多个上述一个或多个渲染后的视图合成为显示界面的过程。
142.下面对终端设备100的显示流程进行说明。
143.以微信应用中的界面显示为例,微信应用通过应用程序框架层的视图系统,调用系统库中图像绘制模块对图像进行绘制,以及调用图像渲染模块对绘制后的图像进行渲染。微信应用将渲染后的图像发送至显示合成进程中。显示合成进程调用系统库中图像合成模块将渲染后的图像合成。显示合成进程将合成后的图像发送至硬件抽象层的hwc。hwc将合成后的图像发送至内核层的lcd/led驱动。lcd/led驱动驱动屏幕刷新显示图像。
144.需要说明的是,为了保证显示的流畅性,避免出现显示卡顿等现象,终端设备一般基于vsync进行显示,以对图像的绘制、渲染、合成和屏幕刷新显示等流程进行同步。可以理解,vsync为周期性信号,vsync周期可以根据屏幕刷新帧率进行设置,例如,屏幕刷新帧率为60hz时,vsync周期可以为16.6ms,即终端设备每间隔16.6ms生成一个控制信号使vsync周期触发。
145.图3为可能的实现中一种vsync触发终端设备界面显示处理流程的示意图。示例性的,按照时间顺序,终端设备显示的内容依次对应于帧1、帧2和帧3。
146.a时刻,vsync到来,终端设备中的应用通过应用程序框架层的视图系统,对帧1进行绘制和渲染。帧1绘制渲染完成后,应用将绘制渲染后的帧1发送至显示合成进程,例如,surface flinger。
147.b时刻,vsync到来,显示合成进程合成帧1并将合成后的帧1发送至硬件抽象层的hwc。与此同时,终端设备中的应用通过应用程序框架层的视图系统,对帧2进行绘制和渲染。帧1绘制渲染完成后,应用将绘制渲染后的帧2发送至显示合成进程。
148.c时刻,vsync到来,hwc通过内核层的lcd/led驱动控制lcd/led屏幕刷新并显示帧1对应的内容。与此同时,显示合成进程合成帧2并将合成后的帧2发送至硬件抽象层的hwc。与此同时,终端设备中的应用通过应用程序框架层的视图系统,对帧3进行绘制和渲染。帧3绘制渲染完成后,应用将绘制渲染后的帧3发送至显示合成进程。
149.帧2和帧3类似于帧1的过程也进行合成和屏幕刷新显示,此处不再赘述。
150.下面对可能的实现中vsync的产生和同步过程进行说明。
151.需要说明的是,终端设备中的vsync分为两种,一种为lcd/led驱动产生的硬件vsync(hw

vsync),另一种为显示合成进程产生的软件vsync(soft

vsync)。
152.应用向显示合成进程发送vsync请求。显示合成进程将向hwc发送hw

vsync请求。hwc向lcd/led驱动发送hw

vsync请求,lcd/led驱动产生hw

vsync,将hw

vsync反馈至hwc。hwc将hw

vsync反馈至显示合成进程。显示合成进程将hw

vsync发送至应用。
153.应用根据接收到的hw

vsync对图像进行绘制和渲染;显示合成进程根据hw

vsync进行图像合成;hwc根据hw

vsync通过内核层的lcd/led驱动控制lcd/led屏幕刷新显示图像。
154.此外,lcd/led驱动产生hw

vsync并将hw

vsync反馈至hwc时,终端设备功耗较大。为降低功耗,显示合成进程可以产生软件vsync控制图像的绘制、渲染、合成和屏幕刷新显示等流程。
155.具体的,显示合成进程在收到hwc反馈的hw

vsync后,会收集hw

vsync的时间戳。当显示合成进程连续多次收到hw

vsync后,显示合成进程根据记录的hw

vsync的周期产生soft

vsync,并将soft

vsync发送至应用中同步对图像的绘制、渲染、合成和显示等流程。
显示合成进程在产生soft

vsync后,发送用于关闭hw

vsync的指令至hwc中,hwc发送用于关闭hw

vsync的指令至lcd/led驱动中以停止lcd/led驱动产生hw

vsync。
156.终端设备在不同的场景中,终端设备的屏幕刷新帧率不同。示例性的,在动画播放、列表滑动、游戏和画板绘画等流畅性要求较高的场景中,终端设备的屏幕刷新帧率较高。在显示图片和普通视频播放、文字阅读显示等流畅性要求较低的场景中,终端设备的屏幕刷新率较低。
157.终端设备可以根据应用,以及应用中的场景变化动态切换帧率。下面结合图4对本技术实施例提供的帧率切换场景进行具体说明。
158.图4为本技术实施例提供的一种应用场景示意图。如图4所示,当用户在列表滑动界面过程中,点击该界面中的某个视频进行播放时,终端设备的屏幕刷新帧率下降。具体的,当终端设备在图4中的a所示的微信界面中,接收到用户向上滑动的触摸操作时,终端设备的界面显示的内容发生变化,变为图4中的b所示的界面。此时,为保证显示的流畅性,终端设备的屏幕刷新帧率较高,屏幕刷新帧率可以为120hz或144hz。
159.当用户在图4中的b所示的界面中通过点击、触摸等操作触发视频控件401时,终端设备进入到图c所示的界面。由于视频源提供的帧率较低,终端设备的屏幕刷新帧率切换为较低的屏幕刷新帧率。视频源提供的帧率一般为30hz或60hz。
160.可以理解的是,当终端设备退出视频播放界面至列表滑动界面时,终端设备的屏幕刷新帧率上升。
161.可能的设计中,终端设备在接收到屏幕刷新帧率切换命令后,vsync周期会在1帧或者2帧内变化,实现帧率切换。
162.示例性的,图5为可能的设计中vsync周期的变化示意图。如图5所示,按照时间顺序,终端设备显示的内容依次对应于帧1

帧9。帧1

帧4绘制时对应的vsync周期时长为8.33ms,初始的屏幕刷新帧率为120hz。在帧4绘制时,终端设备接收到帧率切换为60hz的命令。终端设备控制下一个vsync周期时长(帧5对应的vsync周期)变化为16.66ms。帧5

帧9绘制时对应的vsync信号周期均为16.66ms。
163.需要说明的是,绘制、渲染、合成及屏幕刷新显示流程中,vsync周期一致。图5也可以用于表示渲染、合成及屏幕刷新显示的vsync周期的变化。
164.但是,当屏幕刷新帧率从高帧率切换为低帧率(例如,从120hz切换为60hz)时,vsync周期时长变化较快,画面显示的停留时间明显延长,导致用户感知到画面停顿
165.可以理解的是,用户在帧率变化的感知与乘客对汽车速度变化的感知类似。当汽车从120km/h在短时间内降低到60km/h,惯性会导致乘客剧烈的前倾,乘客的乘车体验差。因此,当屏幕刷新帧率变化较快,vsync周期时长变化较快时,可能导致用户感知到画面停顿,用户体验差。
166.有鉴于此,本技术实施例提供帧率切换方法和相关装置,通过引入过渡周期(模拟vsync周期)和过渡周期变化量(模拟vsync周期的变化量),使得vsync周期时长缓慢增加或下降,从而实现屏幕刷新帧率的平滑过渡。
167.为方便理解,下面结合图6对本技术实施例提供的帧率切换方法中涉及的各个模块之间交互的过程进行说明。
168.示例性的,图6为本技术实施例提供的帧率切换方法中各个模块之间交互的过程
示意图。
169.如图6所示,系统可以包括:应用、窗口管理器、帧率决策管理器、显示合成进程、硬件配置模块和lcd/led驱动。
170.应用接收并响应于预设操作,预设操作用于指示应用打开或者应用切换或者应用中的场景切换。
171.窗口管理器监听到前台应用的变化,向帧率决策管理器发送帧率切换请求。其中,前台应用的变化包括应用打开或者应用切换或者应用中的场景切换等。帧率切换请求用于请求切换屏幕刷新帧率。
172.帧率决策管理器在接收到帧率切换请求后,确定帧率切换策略,并将帧率切换策略发送至显示合成进程;其中,帧率切换策略包括模拟vsync周期数量、模拟vsync周期变化量和目标帧率。
173.显示合成进程在接收到帧率切换策略后,停止生成原帧率对应的软件vsync(soft

vsync),并根据帧率切换策略中的模拟vsync周期数量和模拟vsync周期变化量依次产生多个周期递增或递减的模拟vsync(s

vsync)。
174.显示合成进程将s

vsync发送至应用用于图像绘制和渲染,以及将s

vsync发送至硬件配置模块用于控制屏幕的刷新节奏进行图像显示。此外,s

vsync也会作用于显示合成进程,用于图像合成。
175.此外,显示合成进程在接收到帧率切换策略后,还将帧率切换策略中的目标帧率发送至硬件配置模块。硬件配置模块发送目标帧率至lcd/led驱动。
176.当目标帧率发送至lcd/led驱动时,lcd/led驱动根据目标帧率产生目标帧率对应的硬件vsync(hw

vsync),并将目标帧率对应的hw

vsync反馈至硬件配置模块。硬件配置模块将目标帧率对应的hw

vsync反馈至显示合成进程。
177.当帧率切换即将完成(s

vsync周期结束)时,显示合成进程基于目标帧率对应的hw

vsync校准并生成目标帧率对应的soft

vsync。同时,显示合成进程停止产生s

vsync。
178.需要说明的是,基于目标帧率对应的hw

vsync进行校准可以使得目标帧率对应的soft

vsync和硬件的时钟节奏一致,避免屏幕显示的卡顿现象。
179.显示合成进程将目标帧率对应的soft

vsync发送至应用用于图像绘制和渲染。
180.显示合成进程在多次hw

vsync校准后,发送用于关闭hw

vsync的指令至硬件配置模块,硬件配置模块发送用于关闭hw

vsync的指令至lcd/led驱动,lcd/led驱动停止产生目标帧率对应的hw

vsync。
181.下面通过具体的实施例对本技术实施例的帧率切换方法进行详细说明。下面的实施例可以相互结合,对于相同或相似的概念或过程可能在某些实施例中不再赘述。
182.图7为本技术实施例提供一种的帧率切换方法的流程示意图。如图7所示,方法可以包括:
183.s701、接收并响应于预设操作,预设操作用于指示应用打开或者应用切换或者应用中的场景切换。
184.具体的,应用接收并响应于预设操作。
185.本技术实施例中,预设操作可以包括触控操作指令或者语音操作指令等用于控制应用打开或者用于应用切换或者用于控制应用中场景切换的操作。
186.可以理解的是,不同的应用对屏幕刷新帧率的需求不同,应用打开或者应用切换时可能需要切换屏幕刷新帧率。示例性的,视频播放应用、短视频应用、新闻资讯应用、阅读应用、浏览器应用或即时通讯(im)应用等视频或文字较多的应用对应的屏幕刷新帧率通常较低。游戏应用、绘画应用等流畅性要求较高的应用对应的屏幕刷新帧率通常较高。
187.具体的,图8为本技术实施例提供的一种应用切换示意图。示例性的,当终端设备在图8中的a所示的游戏界面接收到通过点击、触摸等操作触发退出游戏控件801时,终端设备进入到图b所示的主界面。当用户在图8中的b所示的界面中通过点击、触摸等操作触发浏览器应用控件802时,终端设备进入到图c所示的浏览器应用界面。
188.终端设备前台运行的应用发生变化,从游戏应用变为新闻资讯应用,屏幕刷新帧率降低。
189.为保证显示效果,在同一应用中,场景发生变化可能也需要切换屏幕刷新帧率。示例性的,在屏幕刷新帧率通常较低的应用中,当接收到用户滑动操作或者点击操作时,可能需要增大屏幕刷新率,用户操作之后又重新降低屏幕刷新率的方式,使终端设备始终处于显示流畅的状态,并且使功耗最小化。
190.具体的,图9为本技术实施例提供的一种应用中的场景切换示意图。以屏幕刷新帧率通常较低的视频应用为例,图9中的a所示的视频列表界面包括多个视频控件。为增加滑动的流畅性,避免显示的卡顿,视频列表需要较高的屏幕刷新帧率显示页面内容。当用户在图9中的a所示的界面中通过点击、触摸等操作触发视频控件901时,终端设备进入到图b所示的视频播放界面。视频播放场景中通常可以相对较低的屏幕刷新率(例如,60hz)显示页面内容。视频应用的从列表场景变为视频播放场景,需要降低屏幕刷新帧率。
191.可以理解的是,视频应用的列表场景还包括评论列表。
192.图10为本技术实施例提供的一种应用中的场景切换示意图。以屏幕刷新帧率通常较低的文档应用为例,当终端设备在图10中的a所示的文档界面,接收到用户向上滑动的触摸操作时,终端设备的界面显示的内容发生变化,变为图10中的b所示的界面。此时,为保证显示的流畅性,终端设备的屏幕刷新帧率较高。当用户在图10中的b所示的界面中停止滑动触摸操作停止翻页时,文档应用进入阅读场景或者编辑场景,终端设备的屏幕刷新帧率降低。
193.s702、监听到前台应用变化,发送帧率切换请求。
194.具体的,窗口管理器监听到前台应用变化,并发送帧率切换请求至帧率决策管理器。
195.本技术实施例中,应用变化包括应用打开或应用切换或者应用中的场景切换。
196.s703、在接收到帧率切换请求后,确定帧率切换策略。帧率切换策略包括模拟vsync周期数目、模拟vsync周期增量和目标帧率。
197.具体的,帧率决策管理器在接收到帧率切换请求后,根据前台应用变化确定帧率切换策略。
198.本技术实施例中,应用变化对应的目标帧率是预先设置好的。
199.可以理解的是,目标帧率与终端设备的运行模式相关。终端设备的运行模式为流畅时,应用对应的屏幕刷新率较高以画面细腻流畅。终端设备的运行模式为标准时,应用对应的屏幕刷新率较低以延长续航时间。终端设备的运行模式为智能时,终端设备可以根据
使用情况自动调整屏幕刷新率。示例性的,在终端设备的电量较低,可以自动调整降低屏幕刷新率以降低耗电量,延长终端设备的使用时间。或者在终端设备的gpu和/或cpu的负载较高,终端设备降低屏幕刷新帧率以降低耗电量,延长终端设备的使用时间。
200.下面结合图11对过渡周期(模拟vsync周期)和过渡周期变化量(模拟vsync周期的变化量)进行说明。示例性的,图11为本技术实施例提供的一种vsync周期的变化示意图。如图11所示,按照时间顺序,终端设备显示的内容依次对应于帧1

帧10。
201.帧1

帧4绘制时对应的vsync周期为原帧率对应的vsync周期(原vsync),周期时长为x ms。帧5

帧9绘制时对应的vsync周期为模拟vsync周期(s

vsync)。帧10绘制时对应的vsync周期为目标帧率对应的vsync周期(目标vsync),周期时长为y ms。
202.在帧4绘制时,终端设备接收到帧率切换命令。终端设备控制下一个vsync周期时长(帧5绘制时对应的模拟vsync周期)变化为x+δms。帧6绘制时对应的模拟vsync周期时长为x+δ*2
α
ms。帧7绘制时对应的模拟vsync周期时长为x+δ*3
α
ms。帧8绘制时对应的模拟vsync周期时长为x+δ*4
α
ms。帧9绘制时对应的模拟vsync周期时长为x+δ*5
α
ms。
203.图11中,模拟vsync的周期变化量δ,δ的变化指数为a。模拟vsync周期数量为5。为避免切换后的软件vsync与硬件vsync不重合导致的卡顿,x+δ*6
α
等于y,多个模拟vsync周期时长之和为3*y。切换时长为3*y ms。
204.需要说明的是,图11所示的vsync周期的变化仅为示例,模拟vsync周期数量和模拟vsync周期变化量与帧率切换策略相关,此处不做限定。图11中,模拟vsync周期逐渐增加,帧率切换速度降低,使得帧率平滑切换,用户体验效果提高。
205.本技术实施例中,模拟vsync周期数量和模拟vsync周期变化量满足两个条件。第一条件为帧率切换时的切换时长是切换后目标vsync周期的整数倍。这样,切换后的软件vsync与硬件vsync基本重合,避免不匹配导致的卡顿等。第二条件为帧率切换的过渡周期的周期时长(模拟vsync周期时长)平滑上升或下降。这样,避免卡顿等情况,提升用户体验。
206.具体的,以原帧率对应的vsync周期为x ms,目标帧率对应的vsync周期为y ms为例,假设过渡周期数量(模拟vsync周期数量)为λ,切换过程中的周期增量或减量(模拟vsync周期增量或周期减量)为δ,帧率切换时对应的目标周期数量为k,切换加速度为a,λ和k均为整数。
207.根据第一条件可以得出:经过转换可以为经过转换可以为
208.根据第二条件可以得出:y=x
±
δ
×
(λ+1)
a

209.若模拟vsync周期时长为p
n
,高帧率切换低帧率时p
n
为x+δ
×
n
a
。低帧率切换为高帧率时:p
n
为x

δ
×
n
a

210.下面对上述a、λ和k的取值进行说明。
211.a决定切换的平滑度,当帧率需要快速切换时,a为1,以线性加速度进行切换,当帧率需要平稳切换,并且目标帧率比原帧率高(当帧率高于144hz时,人眼对于帧率的变化敏感度大大降低),此时a可以取值2,二次加速度进行帧率切换;
212.λ为过渡周期数目。当帧率需要进行快速切换时,λ较小。当帧率需要平稳切换,λ较大。
213.一般情况下λ取值4

10是比较平滑的周期选项;若λ取值为5,过渡周期为五个模拟vsync周期,则第6个模拟vsync周期的应该等于目标帧率对应的vsync周期,即:y=x+δ
×
(λ+1)
a
,或者y=x

δ
×
(λ+1)
a

214.k为帧率切换过程中对应的目标帧率周期数量。当帧率需要进行快速切换时,k较小。当帧率需要平稳切换,k较大。
215.可以理解的是,通过k和λ可以求解δ,也就是增量单位,当增量单位越大时切换帧率的变动也越剧烈,当δ越小,切换帧率的变动也越小,则相应的切换帧率过程的时间就会增加。
216.可以理解的是,当原帧率周期和目标帧率周期已知时,可以通过控制变量法求解δ。
217.可能的实现方式一中,预设λ为定值,然后取值k从合法范围内迭代进行计算δ;
218.可以理解的是,高帧率切低帧率时,k小于λ,k从等于λ开始从大至小取值;低帧率切高帧率时,k大于λ,k从等于λ开始从小至大取值。
219.可能的实现方式二中,预设k为定值,然后取值λ从合法范围内迭代进行计算δ;
220.可以理解的是,高帧率切低帧率时,λ大于k,λ从等于k开始从小至大取值;低帧率切高帧率时,λ小于k,λ从等于k开始从大至小取值。
221.需要说明的是,目前市场上主流的屏幕刷新率为60hz、90hz、120hz或144hz。并且,线性增量的平滑要求可以满足用户眼睛感知画面变化的需求。由于人眼对于高帧率切换为低帧率的敏感度更高,在帧率回落时,帧率平滑切换的效果更明显。并且,当帧率切换的幅度越大,平滑效果越明显。表1和表2列举部分帧率回落时的数据。
222.示例性的,表1和表2为帧率切换的数据对照表。表1和表2中分别列举出帧率120hz切换为帧率60hz和帧率90hz切换为帧率60hz,且a为1时,对应的k、λ、和δ的解。
223.示例性的,以应用变化为从列表滑动场景切换成视频播放场景时,屏幕刷新帧率从120hz转换为60hz为例,若终端设备选择表1中的第二行数据进行帧率切换,显示合成进程依次产生4个模拟vsync,4个模拟vsync对应的周期时长分别为8.33+1.666ms、8.33+1.666*2ms、8.33+1.666*3ms和8.33+1.666*4ms。帧率从120hz转换为60hz的切换时长为49.98ms。
224.示例性的,以应用变化为从列表滑动场景切换成视频播放场景时,屏幕刷新帧率从90hz转换为60hz为例,若终端设备选择表2中的第二行数据进行帧率切换,显示合成进程依次产生8个模拟vsync,8个模拟vsync对应的周期时长分别为11.1+0.30916658ms、11.1+0.30916658*2ms、11.1+0.30916658*3ms、11.1+0.30916658*4ms、11.1+0.30916658*5ms、11.1+0.30916658*6ms、11.1+0.30916658*7ms和11.1+0.30916658*8ms。帧率从90hz转换为60hz的切换时长为116.62ms。
225.表1 120hz

60 hz帧率切换数据对照表
[0226][0227][0228]
表2 90hz

60 hz帧率切换数据对照表
[0229][0230][0231]
可以理解的是,上述表1和表2中每一组对应k、λ、δ均符合平滑切换的要求。具体k、λ、δ的取值还需要结合帧率切换时长要求确定。
[0232]
本技术实施例中,帧率决策管理器可以通过下述三种方式确定帧率切换策略。
[0233]
可能的实现方式一中,全局统一使用一种切换时长。例如,预先根据性能、功耗和平滑度确定固定的切换周期数目(模拟vsync周期数量)和周期变化量(模拟vsync周期增量或周期减量),示例性的,在屏幕刷新帧率从120hz切换60hz时,均选择3个目标周期(4个过渡周期,1.66ms周期增量)切换。
[0234]
可能的实现方式二中,根据目标场景选择切换时长。根据应用调用的模块不同来确定使用场景不同,定制不同的切换时长。
[0235]
具体的,根据应用使用的软件开发工具包(software development kit,sdk)的api判断应用场景,并结合应用的目标帧率和应用的运行时间,确定一个最佳切换时长,进而根据对应关系确定目标帧率周期数量k、过渡周期数量λ、过渡周期变化量δ。
[0236]
下面结合图12对根据目标场景选择切换时长的方法进行说明。图12为本技术实施例提供的一种确认切换时长的方法流程示意图。该方法包括:
[0237]
s1201、收集原帧率与目标帧率计算切换周期选项表。
[0238]
具体的,根据上述两个条件,计算原帧率与目标帧率切换时,目标帧率周期数k、过渡周期数量λ、周期增量值δ和切换总耗时长。
[0239]
s1202、根据应用中使用api匹配目标场景。
[0240]
本技术实施例中,目标场景可以为动画场景、视频场景和其他特别场景等。
[0241]
动画场景为可以理解为包括帧动画、补间动画或属性动画的场景。示例性的,终端设备通过特定的api(例如,animation控件等)识别帧动画、补间动画或属性动画等,如果包括特定的api,则确定是动画场景。具体的,在应用打开或退出时,通常包含有动画场景。
[0242]
视频场景为可以理解为包括视频播放的场景。
[0243]
其他特别场景包括游戏场景、息屏显示(always on display,aod)场景和列表场景。
[0244]
游戏场景可以理解为包括游戏控件的场景。
[0245]
aod场景可以理解为终端设备在息屏状态下,屏幕上会显示当前时间、日期信息等场景。
[0246]
列表场景可以理解为显示界面中包括列表控件的场景,示例性的,终端设备通过对象的实例化判断目标场景是否为列表场景。比如,终端设备通过判断对象的实例化是否是列表视图(listview)或循环视图(recyclerview)等列表控件,如果对象的实例化是列表视图(listview)或循环视图(recyclerview)等列表控件,则确定是列表场景。
[0247]
可以理解的是,终端设备可以根据api以及提交gpu的任务等方式识别区分其他特别场景,进而根据场景的特征确定场景选择切换时长(切换总耗时长),进而确定切换周期数目(模拟vsync数目)和周期增量值(模拟vsync周期增量)。
[0248]
s1203、结合预设场景策略库进行决策,确定切换时长。
[0249]
预设场景策略库的决策方式为结合应用的目标帧率的运行时间,确定切换时长。
[0250]
具体的,若目标场景为动画场景,根据动画时长来确定切换时长。例如,在列表滑动时帧率设置为120hz,应用退出时的动画对应的帧率为60hz,根据动画时长来确定切换时长。
[0251]
可以理解的是,高负载类动画在芯片能力较弱的终端设备上运行时,设置较低帧率可以达到较为稳定的动画效果。
[0252]
若目标场景为视频场景,根据时间选择尽可能长的切换时间(切换时长)。从视频列表滑动过程中点击打开视频(视频帧率会回落),由于视频的加载会消耗时间,并且视频一般会停留较长时间,根据时间选择尽可能长的切换时间,达到更平滑的效果。
[0253]
若目标场景为其他特别场景,根据场景运行时间确定切换时长。
[0254]
可能的实现方式三中,终端设备通过模型计算,自动适应选择切换时长。示例性的,图13为本技术实施例提供的一种自适应选择切换时长的方法流程示意图。该方法包括:
[0255]
s1301、建立样本库。
[0256]
具体的,记录应用信息(应用类型、应用页面分布)、用户使用应用时刻、用户使用应用的时长、用户在某个周期内(比如以周为周期)的使用习惯等等,形成统计决策数据库。
[0257]
s1302、建立帧率切换选项表,帧率切换选项表包括切换时长。
[0258]
具体的,计算切换周期选项表(帧率切换数据对照表,例如,表1、表2)。示例性的,计算帧率切换时,符合上述两个条件的目标帧率周期数量k、过渡周期数量λ、周期变化值δ和相应的切换时长。
[0259]
s1303、搭建并训练决策函数模型。
[0260]
搭建模型:通过统计决策理论根据样本库中的样本建立影响权重函数,得到切换时长自适应选择的模型。具体的,建立每个样本的因素对于某个时刻某个场景的影响权重函数,例如,终端设备在某个具体的时间运行某个应用超过1h等。根据周期影响、距离当前时段的时间等建立一个影响权重函数进行得分计算。
[0261]
训练模型:根据影响权重函数对切换帧率切换选项表中的多个切换时长进行打分计算,输出得分最佳的切换时长。
[0262]
可能的实现方式中,在模型的训练过程中,更新样本库的样本数量和种类,以及加入新样本加入或者剔除旧样本时更新多个样本得分,调整影响权重函数。
[0263]
s1304、接收到帧率切换请求。
[0264]
s1305、根据帧率切换请求,确定原帧率和目标帧率。
[0265]
s1306、根据决策函数模型对多个切换时长进行打分计算。
[0266]
s1307、根据得分确定切换时长,进而确定切换策略。
[0267]
s1308、样本回归和反例统计。
[0268]
将切换时长选择对应场景进行样本回归。对于错误估计导致切换不流畅的样本进行反例统计,并且调整权重函数。
[0269]
可能的实现方式中,在接收到帧率切换请求后,确定模拟vsync周期数目、模拟vsync周期增量和目标帧率,进而确认帧率切换策略。
[0270]
s704、根据帧率切换策略依次产生多个模拟vsync。
[0271]
具体的,显示合成进程根据帧率切换策略依次产生多个模拟vsync。
[0272]
示例性的,以帧率切换策略为屏幕刷新帧率从120hz转换为60hz,且模拟周期数目为4,模拟周期增量为1.66为例,多个模拟vsync对应的周期时长分别为8.33+1.666ms、8.33+1.666*2ms、8.33+1.666*3ms和8.33+1.666*4ms。
[0273]
s705、在切换完成时,基于硬件vsync信号校准并产生目标帧率对应的软件vsync。
[0274]
具体的,显示合成进程基于硬件vsync信号校准并产生目标帧率对应的软件vsync。
[0275]
综上,在帧率切换时,通过控制模拟vsync的数量和周期变化量,使得帧率切换时的vsync周期缓慢增加或下降,从而实现屏幕刷新帧率的平滑过渡,避免卡顿现象,提升用户体验。
[0276]
在上述实施例的基础上,上述两个条件对应的方程还可以应用在手机的屏幕亮度
切换、音量切换。
[0277]
在手机屏幕亮度切换中,按照上述两个条件对应的方程确定增量和次数,平滑的增加或缩小亮度,使得亮度调节更温和,增加用户体验。
[0278]
在手机的音量调节中,按照上述两个条件对应的方程确定增量和次数,平滑的增加或缩小音量,使得音量调节更温和,增加用户体验。示例性的,当音乐播放被中止时,通过上述方程平滑降低音量;或者当音乐播放恢复时,通过上述方程平滑增加音量。增加用户体验效果。
[0279]
需要说明的是,对于切换前后的周期性不敏感的场景可以仅满足第一条件对应的方程,完成平滑切换。根据场景适应性可以选择二次增量变化或者更高等级增量变换。
[0280]
上面已对本技术实施例的帧率切换方法进行了说明,下面对本技术实施例提供的执行上述帧率切换方法的终端设备进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本技术实施例提供的终端设备可以执行上述帧率切换方法中的步骤。
[0281]
如图14所示,图14示出了本技术实施例提供的一种帧率切换装置的结构示意图,该数据处理装置可以是本技术实施例中的终端设备。该数据处理装置包括:显示屏1401,显示屏用于显示图像;一个或多个处理器1402;存储器1403;多个应用程序;以及一个或多个计算机程序,其中一个或多个计算机程序被存储在存储器1404中,一个或多个计算机程序包括指令,当指令被数据处理装置执行时,使得帧率切换装置执行以下步骤:生成帧率切换请求;响应于帧率切换请求,确定将终端设备的屏幕刷新帧率从第一帧率切换到第二帧率;确定从第一帧率向第二帧率切换时的帧率切换策略;帧率切换策略包括在多个过渡周期中将第一帧率切换到第二帧率的策略,过渡周期的周期时长处于第一帧率对应的周期时长以及第二帧率对应的周期时长之间;执行帧率切换策略,以将第一帧率平滑切换到第二帧率。
[0282]
可选的,帧率切换策略用于指示过渡周期的数量以及多个过渡周期之间的周期变化量。
[0283]
可选的,过渡周期满足下述公式:过渡周期=x
±
δ
×
n
a
;x为第一帧率对应的周期时长,δ为多个过渡周期之间的周期变化量,a为切换加速度,n为从产生帧率切换请求的周期计数到过渡周期时的周期数量,n为自然数。
[0284]
可选的,多个过渡周期的周期时长之和为第二帧率对应的周期时长的整数倍;并且,多个过渡周期的周期时长与第二帧率对应的周期时长符合递增或递减变化规律。
[0285]
可选的,帧率切换策略中的值满足下述公式:y=x
±
δ
×
(λ+1)
a
;k为以第二帧率对应的周期时长从第一帧率切换到第二帧率时所需的周期数目,y为第二帧率对应的周期时长,λ为过渡周期的数量,k和λ均为自然数。
[0286]
可选的,第一帧率向第二帧率切换时对应的k、λ和δ是预先设置好的。
[0287]
可选的,k、λ和δ是根据第一帧率向第二帧率切换时的切换时长在预设的对应关系中获取的,对应关系中包括k、λ、δ和切换时长的对应关系;
[0288]
切换时长是根据终端设备中显示的目标场景以及目标场景的运行时间确定的。
[0289]
可选的,目标场景包括动画场景和/或视频场景;当目标场景为动画场景时,切换时长与动画时长相关;当目标场景为视频场景时,切换时长与视频加载时长和/或视频时长相关。
[0290]
可选的,k、λ和δ是将第一帧率和第二帧率输入预先训练的模型中,由模型输出
的;模型用于根据第一帧率和第二帧率对多个切换时长进行打分,并根据打分输出切换时长对应的k、λ和δ。
[0291]
可选的,窗口管理器生成帧率切换请求,向帧率决策管理器发送帧率切换请求。帧率决策管理器响应于帧率切换请求,确定将终端设备的屏幕刷新帧率从第一帧率切换到第二帧率。帧率决策管理器从第一帧率向第二帧率切换时的帧率切换策略;帧率决策管理器向显示合成进程发送帧率切换策略。显示合成进程和应用执行帧率切换策略,以将第一帧率平滑切换到第二帧率。
[0292]
可选的,根据帧率切换策略产生多个过渡周期;分别在多个过渡周期中进行帧绘制和合成;在多个过渡周期结束时,产生第二帧率对应的软件垂直同步信号vsync。
[0293]
可选的,显示合成进程根据帧率切换策略产生多个过渡周期。应用在多个过渡周期中进行帧绘制,显示合成进程在多个过渡周期中进行帧合成。显示合成进程在多个过渡周期结束时,产生第二帧率对应的软件vsync。
[0294]
可选的,产生第二帧率对应的硬件vsync;基于硬件vsync校准第二帧率对应的软件vsync。
[0295]
可选的,lcd/led驱动产生第二帧率对应的硬件vsync。lcd/led驱动,向硬件配置模块发送硬件vsync;硬件配置模块向显示合成进程发送硬件vsync;显示合成进程基于硬件vsync校准第二帧率对应的软件vsync。
[0296]
可选的,在监听到前台应用变化时,生成帧率切换请求;前台应用变化包括下述任一种:应用打开、应用切换、应用中的场景切换。
[0297]
可选的,在监听到前台应用变化时,生成帧率切换请求包括:窗口管理器在监听到前台应用变化时,生成帧率切换请求。
[0298]
图15为本技术实施例提供的一种帧率切换装置的硬件结构示意图。请参见图15,该装置包括:存储器1501、处理器1502和接口电路1503。该装置还可以包括显示屏1504,其中,存储器1501、处理器1502、接口电路1503和显示屏1504可以通信;示例性的,存储器1501、处理器1502、接口电路1503和显示屏1504可以通过通信总线通信,存储器1501用于存储计算机执行指令,由处理器1502来控制执行,并由接口电路1503来执行通信,从而实现本技术实施例提供的帧率切换方法。
[0299]
可选的,接口电路1503还可以包括发送器和/或接收器。可选的,上述处理器1502可以包括一个或多个cpu,还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本技术所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
[0300]
可能的实现方式中,本技术实施例中的计算机执行指令也可以称之为应用程序代码,本技术实施例对此不作具体限定。
[0301]
本技术实施例提供的帧率切换装置,用于执行上述实施例的帧率切换方法,技术原理和技术效果相似,此处不再赘述。
[0302]
本技术实施例提供一种终端设备,结构参见图1。终端设备的存储器可用于存储至少一个程序指令,处理器用于执行至少一个程序指令,以实现上述方法实施例的技术方案。
其实现原理和技术效果与上述方法相关实施例类似,此处不再赘述。
[0303]
本技术实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
[0304]
本技术实施例提供一种计算机程序产品,当所述计算机程序产品在电子设备运行时,使得所述电子设备执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
[0305]
本技术实施例提供一种计算机可读存储介质,其上存储有程序指令,所述程序指令被众怒单设备执行时,使得终端设备执行上述实施例的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
[0306]
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1