CN114443269B - 帧率调节方法和相关装置 - Google Patents
帧率调节方法和相关装置 Download PDFInfo
- Publication number
- CN114443269B CN114443269B CN202110996406.XA CN202110996406A CN114443269B CN 114443269 B CN114443269 B CN 114443269B CN 202110996406 A CN202110996406 A CN 202110996406A CN 114443269 B CN114443269 B CN 114443269B
- Authority
- CN
- China
- Prior art keywords
- frame rate
- application
- display
- terminal device
- system resource
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/546—Message passing systems or structures, e.g. queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Controls And Circuits For Display Device (AREA)
Abstract
本申请实施例提供一种帧率调节方法和相关装置,应用于终端技术领域。帧率调节方法包括:获取显示屏中所显示的应用的第一帧率;在根据第一帧率确定应用的显示发生卡顿时,确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有余量;在系统资源状态指示系统资源没有余量的情况下,将第一帧率调整到第二帧率,以及调整显示屏的刷新率为第二帧率的倍数;其中,第二帧率小于第一帧率;在系统资源状态指示系统资源有余量的情况下,提升系统资源。这样,当应用显示卡顿时,调整系统资源,提高应用的运行性能,减少卡顿次数。当应用显示卡顿,且系统资源没有余量时,降低应用帧率及调整屏幕刷新率,增加显示的流畅性,改善用户体验。
Description
技术领域
本申请涉及终端技术领域,尤其涉及帧率调节方法和相关装置。
背景技术
目前,用户可以通过终端设备的显示屏查阅各类内容。终端设备的显示屏的界面显示通常需要经过绘制、渲染、合成和送显等过程。示例性的,终端设备的界面绘制过程可以包括背景绘制、子视图的绘制、滚动条的绘制等过程。终端设备的界面合成过程可以包括顶点处理和像素处理等处理过程。
但是,终端设备的显示屏在显示界面时可能会出现卡顿现象,用户体验差。
发明内容
本申请实施例提供帧率调节方法和相关装置,应用于终端设备。根据应用的实际帧率对负载状态和/或应用帧率进行调节,调整缓存的入队间隔,进而减少卡顿次数,改善带负载场景下应用使用的流畅性问题。
第一方面,本申请实施例提出一种帧率调节方法,应用于终端设备,该方法包括:终端设备获取显示屏中所显示的应用的第一帧率;在终端设备根据第一帧率确定应用的显示发生卡顿时,终端设备确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有余量;在系统资源状态指示终端设备的系统资源没有余量的情况下,终端设备将第一帧率调整到第二帧率,以及调整显示屏的刷新率为第二帧率的倍数;其中,第二帧率小于第一帧率;在系统资源状态指示终端设备的系统资源有余量的情况下,终端设备提升系统资源。
这样,第一帧率为应用的实际帧率。当应用显示卡顿时,调整系统资源,提高应用的运行性能,缩短应用图像绘制渲染时长,减少长帧出现,减少卡顿次数。当应用显示卡顿,且系统资源没有余量时,降低应用帧率,减少绘制渲染时长增加(长帧)导致的显示卡顿问题,增加显示的流畅性,改善用户体验。调整屏幕刷新率可以减少绘制渲染节奏和屏幕刷新节奏不一致导致的卡顿问题,使得画面显示流畅。
可选的,第二帧率为应用支持的多个帧率中从大至小排序中首个小于第一帧率的帧率。
这样,缓慢调节帧率,也可以减少终端设备中负载降低出现短帧导致的卡顿问题,减少应用帧率不合适导致的显示卡顿问题,增加画面的流畅性。
可选的,终端设备根据第一帧率确定应用的显示发生卡顿,包括:终端设备根据第一帧率以及预先确定的目标帧率,确定应用的显示发生卡顿。
这样,终端设备根据实际帧率和预先确定的目标帧率确定应用卡顿情况,方便后续根据实际帧率进行系统资源,以及应用帧率的调节。
可选的,终端设备根据第一帧率以及预先确定的目标帧率,确定应用的显示发生卡顿,包括:第一帧率与目标帧率之差的绝对值大于或等于第一阈值与目标帧率之积时,终端设备确定应用的显示发生卡顿。
可选的,终端设备获取显示屏中所显示的应用的第一帧率,包括:终端设备监测时间段内,应用发送至显示合成进程的缓存的数量,并根据时间段和缓存的数量计算得到第一帧率;或者,终端设备监测时间段内,应用发送至显示合成进程的缓存的第一平均间隔,并根据第一平均间隔计算得到第一帧率;或者,终端设备监测应用向显示合成进程发送预设数量的缓存时,所需要的时长,并根据预设数量和时长计算得到第一帧率;或者,终端设备监测应用向显示合成进程发送预设数量的缓存时,各预设数量的缓存之间的第二平均间隔,并根据第二平均间隔计算得到第一帧率。
可选的,根据时间段和缓存的数量计算得到第一帧率,包括:求取缓存的数量和时间段的比值得到第一帧率;根据第一平均间隔计算得到第一帧率,包括:求取第一平均间隔的倒数得到第一帧率;根据预设数量和时长计算得到第一帧率,包括:求取预设数量和时长的比值得到第一帧率;根据第二平均间隔计算得到第一帧率,包括:求取第一平均间隔的倒数得到第一帧率。
可选的,终端设备确定系统资源状态,包括:终端设备根据系统状态信息确定系统资源状态;系统状态信息包括下述一种或多种:图形处理器GPU叠加状态、中央处理器CPU负载、GPU负载、前台应用程序、渲染线程的调度状态、显示合成进程的调度状态、渲染运行耗时或合成运行耗时。
可选的,系统资源状态还用于表征终端设备的系统资源是否有缓解,终端设备将应用从第一帧率调整到第二帧率,以及调整显示屏的刷新率为第二帧率的倍数之后,还包括:在终端设备确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,终端设备将应用从第二帧率调整到第三帧率,以及调整显示屏的刷新率为第三帧率的倍数,其中,第三帧率大于第二帧率。
这样,在应用的显示不卡顿,且系统资源有缓解时,根据实际帧率调整应用帧率和屏幕刷新率,控制应用绘制渲染的节奏,使得缓存入队的间隔缩短,减少短帧带来的卡顿问题,并且,终端设备显示的流畅性增加。
可选的,第三帧率为应用支持的多个帧率中从小至大排序中首个大于第一帧率的帧率。
这样,缓慢调节帧率,也可以减少终端设备中负载增加出现长帧导致的卡顿问题,增加画面的流畅性。
可选的,终端设备确定应用的显示卡顿解除,包括:第一帧率与第二帧率之差的绝对值小于第一阈值与第二帧率之积时,终端设备确定应用的显示卡顿解除。
可选的,终端设备提升系统资源之后,还包括:在终端设备确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,终端设备将应用从第一帧率调整到第四帧率,以及调整显示屏的刷新率为第四帧率的倍数,其中,第四帧率大于第一帧率。
这样,在应用的显示不卡顿且系统资源有缓解时,根据实际帧率调整应用帧率和屏幕刷新率,控制应用绘制渲染的节奏,使得缓存入队的间隔缩短,减少短帧带来的卡顿问题。并且,终端设备显示的流畅性增加。
可选的,终端设备确定应用的显示卡顿解除,包括:当第一帧率与目标帧率之差的绝对值小于第一阈值与目标帧率之积时,终端设备确定应用的显示卡顿解除。
可选的,终端设备提升系统资源,包括:终端设备提高CPU频点;和/或,终端设备提高GPU频点;和/或,终端设备提高内存带宽;和/或,终端设备将渲染线程和/或合成线程调度在计算能力高的核心上运行。
这样,终端设备可以通过多种方式调节系统资源,在应用显示卡顿时,最大限度维持当前帧率,减少应用帧率下降调节。
第二方面,本申请实施例提出一种终端设备,终端设备包括:帧率检测模块、负载检测模块、帧率控制模块和负载调节模块;帧率检测模块用于获取显示屏中所显示的应用的第一帧率;在帧率检测模块根据第一帧率确定应用的显示发生卡顿时,负载检测模块用于确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有余量;在系统资源状态指示终端设备的系统资源没有余量的情况下,帧率控制模块用于将第一帧率调整到第二帧率,以及调整显示屏的刷新率为第二帧率的倍数;其中,第二帧率小于第一帧率;在系统资源状态指示终端设备的系统资源有余量的情况下,负载调节模块提升系统资源。
可选的,第二帧率为应用支持的多个帧率中从大至小排序中首个小于第一帧率的帧率。
可选的,帧率检测模块用于根据第一帧率以及预先确定的目标帧率,确定应用的显示发生卡顿。
可选的,第一帧率与目标帧率之差的绝对值大于或等于第一阈值与目标帧率之积时,帧率检测模块用于确定应用的显示发生卡顿。
可选的,帧率检测模块具体用于监测时间段内,应用发送至显示合成进程的缓存的数量,并根据时间段和缓存的数量计算得到第一帧率;或者,帧率检测模块具体用于监测时间段内,应用发送至显示合成进程的缓存的第一平均间隔,并根据第一平均间隔计算得到第一帧率;或者,帧率检测模块具体用于监测应用向显示合成进程发送预设数量的缓存时,所需要的时长,并根据预设数量和时长计算得到第一帧率;或者,帧率检测模块具体用于监测应用向显示合成进程发送预设数量的缓存时,各预设数量的缓存之间的第二平均间隔,并根据第二平均间隔计算得到第一帧率。
可选的,帧率检测模块具体用于求取缓存的数量和时间段的比值得到第一帧率;或者,帧率检测模块具体用于求取第一平均间隔的倒数得到第一帧率;或者,帧率检测模块具体用于求取预设数量和时长的比值得到第一帧率;或者,帧率检测模块具体用于求取第一平均间隔的倒数得到第一帧率。
可选的,负载检测模块具体用于根据系统状态信息确定系统资源状态;系统状态信息包括下述一种或多种:图形处理器GPU叠加状态、中央处理器CPU负载、GPU负载、前台应用程序、渲染线程的调度状态、显示合成进程的调度状态、渲染运行耗时或合成运行耗时。
可选的,系统资源状态还用于表征终端设备的系统资源是否有缓解;在帧率检测模块确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,帧率控制模块还用于将应用从第二帧率调整到第三帧率,以及调整显示屏的刷新率为第三帧率的倍数,其中,第三帧率大于第二帧率。
可选的,第三帧率为应用支持的多个帧率中从小至大排序中首个大于第一帧率的帧率。
可选的,第一帧率与第二帧率之差的绝对值小于第一阈值与第二帧率之积时,帧率检测模块用于确定应用的显示卡顿解除。
可选的,在帧率检测模块确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,帧率控制模块还用于将应用从第一帧率调整到第四帧率,以及调整显示屏的刷新率为第四帧率的倍数,其中,第四帧率大于第一帧率。
可选的,当第一帧率与目标帧率之差的绝对值小于第一阈值与目标帧率之积时,帧率检测模块用于确定应用的显示卡顿解除。
可选的,终端设备还包括内核调度模块;负载调节模块具体用于通过内核调度模块提高CPU频点;和/或,负载调节模块具体用于通过内核调度模块提高GPU频点;和/或,负载调节模块具体用于通过内核调度模块提高内存带宽;和/或,负载调节模块具体用于将渲染线程和/或合成线程调度在计算能力高的核心上运行。
第三方面,本申请实施例提供一种终端设备,终端设备也可以称为终端(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)中的无线终端等等。
终端设备包括处理器,处理器用于调用存储器中的计算机程序,以执行上述第一方面所提供的方法。
第四方面,本申请实施例提供一种计算机可读存储介质,计算机可读存储介质存储有计算机指令,当计算机指令在终端设备上运行时,使得终端设备执行上述第一方面所提供的方法。
第五方面,本申请实施例提供一种计算机程序产品,计算机程序产品包括计算机程序,当计算机程序被运行时,使得计算机执行上述第一方面所提供的方法。
第六方面,本申请实施例提供一种芯片,芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述第一方面所提供的方法。
上述第二方面至第六方面的各可能的实现方式,其有益效果可以参见上述第一方面所带来的有益效果,在此不加赘述。
附图说明
图1为本申请实施例提供的终端设备硬件系统结构示意图;
图2为本申请实施例提供的终端设备软件系统结构示意图;
图3为可能的实现中一种终端设备界面显示处理流程的示意图;
图4为可能的实现中一种终端设备界面显示处理流程的示意图;
图5为可能的实现中一种终端设备界面显示处理流程的示意图;
图6为本申请实施例提供的一种帧率调节方法中模块交互示意图;
图7为本申请实施例提供的一种帧率调节方法流程示意图;
图8为本申请实施例提供的一种终端设备界面显示处理流程的示意图;
图9为本申请实施例提供的一种终端设备界面显示处理流程的示意图;
图10为本申请实施例提供的一种终端设备界面显示处理流程的示意图;
图11为本申请实施例提供的一种帧率调节装置的硬件结构示意图。
具体实施方式
为了便于清楚描述本申请实施例的技术方案,在本申请的实施例中,采用了“第一”、“第二”等字样对功能和作用基本相同的相同项或相似项进行区分。例如,第一芯片和第二芯片仅仅是为了区分不同的芯片,并不对其先后顺序进行限定。本领域技术人员可以理解“第一”、“第二”等字样并不对数量和执行次序进行限定,并且“第一”、“第二”等字样也并不限定一定不同。
需要说明的是,本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其他实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
本申请实施例中,“至少一个”是指一个或者多个,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,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可以是单个,也可以是多个。
本申请实施例提供的帧率调节方法,可以应用在具备显示功能的电子设备中。
电子设备包括终端设备,终端设备也可以称为终端(terminal)、用户设备(userequipment,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)中的无线终端等等。本申请的实施例对终端设备所采用的具体技术和具体设备形态不做限定。
为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的结构进行介绍:
图1示出了终端设备100的结构示意图。终端设备可以包括:射频(radiofrequency,RF)电路110、存储器120、输入单元130、显示单元140、传感器150、音频电路160、无线保真(wireless fidelity,WiFi)模块170、处理器180、电源190以及蓝牙模块1100等部件。本领域技术人员可以理解,图2中示出的终端设备结构并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图1对终端设备的各个构成部件进行具体的介绍:
RF电路110可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器180处理;另外,将设计上行的数据发送给基站。通常,RF电路包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(low noiseamplifier,LNA)、双工器等。此外,RF电路110还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(globalsystem of mobile communication,GSM)、通用分组无线服务(general packet radioservice,GPRS)、码分多址(code division multiple access,CDMA)、宽带码分多址(wideband code division multiple access,WCDMA)、长期演进(long term evolution,LTE)、电子邮件、以及短消息服务(short messaging service,SMS)等。
存储器120可用于存储软件程序以及模块,处理器180通过运行存储在存储器120的软件程序以及模块,从而执行终端设备的各种功能应用以及数据处理。存储器120可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)、引导装载程序(boot loader)等;存储数据区可存储根据终端设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器120可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。可以理解的是,本申请实施例中,存储器120中存储有蓝牙设备回连的程序。
输入单元130可用于接收输入的数字或字符信息,以及产生与终端设备的用户设置以及功能控制有关的键信号输入。具体地,输入单元130可包括触控面板131以及其他输入设备132。触控面板131,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板131上或在触控面板131附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板131可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器180,并能接收处理器180发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板131。除了触控面板131,输入单元130还可以包括其他输入设备132。具体地,其他输入设备132可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元140可用于显示由用户输入的信息或提供给用户的信息以及终端设备的各种菜单。显示单元140可包括显示面板141,可选的,可以采用液晶显示器(liquidcrystal display,LCD)、有机发光二极管(organic light-emitting diode,OLED)等形式来配置显示面板141。进一步的,触控面板131可覆盖显示面板141,当触控面板131检测到在其上或附近的触摸操作后,传送给处理器180以确定触摸事件的类型,随后处理器180根据触摸事件的类型在显示面板141上提供相应的视觉输出。虽然在图1中,触控面板131与显示面板141是作为两个独立的部件来实现终端设备的输入和输入功能,但是在某些实施例中,可以将触控面板131与显示面板141集成而实现终端设备的输入和输出功能。
终端设备还可包括至少一种传感器150,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板141的亮度,接近传感器可在终端设备移动到耳边时,关闭显示面板141或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别终端设备姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于终端设备还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路160、扬声器161,传声器162可提供用户与终端设备之间的音频接口。音频电路160可将接收到的音频数据转换后的电信号,传输到扬声器161,由扬声器161转换为声音信号输出;另一方面,传声器162将收集的声音信号转换为电信号,由音频电路160接收后转换为音频数据,再将音频数据输出处理器180处理后,经RF电路110以发送给比如另一终端设备,或者将音频数据输出至存储器120以便进一步处理。
WiFi属于短距离无线传输技术,终端设备通过WiFi模块170可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图1示出了WiFi模块170,但是可以理解的是,其并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器180是终端设备的控制中心,利用各种接口和线路连接整个终端设备的各个部分,通过运行或执行存储在存储器120内的软件程序或模块,以及调用存储在存储器120内的数据,执行终端设备的各种功能和处理数据,从而对终端设备进行整体监控。可选的,处理器180可包括一个或多个处理单元;优选的,处理器180可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器180中。可以理解的是,本申请实施例中,存储器120中存储有蓝牙设备回连的程序,而处理器180可以用于调用存储器120中存储的蓝牙设备回连的程序并执行,以实现本申请实施例的蓝牙设备回连的方法。
终端设备还包括给各个部件供电的电源190(比如电池),优选的,电源可以通过电源管理系统与处理器180逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
蓝牙技术属于短距离无线传输技术,终端设备通过蓝牙模块1100可以与其他具备蓝牙模块的终端设备建立蓝牙连接,从而基于蓝牙通信链路进行数据传输。蓝牙模块1100根据实际需要,可以为低功耗蓝牙(bluetooth low energy,BLE),或模块。可以理解的是,本申请实施例中终端设备为用户终端和业务机具的情形下,终端设备包括蓝牙模块。但是可以理解的是,蓝牙模块并不属于终端设备的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略,比如服务器中可以不包括蓝牙模块。
尽管未示出,终端设备还可以包括摄像头。可选地,摄像头在终端设备上的位置可以为前置的,也可以为后置的,还可以为内置的(在使用时可伸出机身),本申请实施例对此不作限定。
可选地,终端设备可以包括单摄像头、双摄像头或三摄像头等,本申请实施例对此不作限定。摄像头包括但不限于广角摄像头、长焦摄像头或深度摄像头等。
例如,终端设备可以包括三摄像头,其中,一个为主摄像头、一个为广角摄像头、一个为长焦摄像头。
可选地,当终端设备包括多个摄像头时,这多个摄像头可以全部前置,或者全部后置,或者全部内置,或者至少部分前置,或者至少部分后置,或者至少部分内置等,本申请实施例对此不作限定。
终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构,等。本申请实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。图2是本申请实施例的终端设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用层,应用程序框架层,安卓运行时(Androidruntime)和系统库,以及内核层。
应用层可以包括一系列应用程序包。
如图2所示,应用程序包可以包括电话、邮箱、日历、相机等应用程序。
应用程序框架层为应用层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图2所示,应用程序框架层可以包括帧率调节系统、活动管理器、位置管理器、包管理器、通知管理器、资源管理器、电话管理器和视图系统等。
帧率调节系统用于根据终端设备的负载情况以及显示屏(屏幕)支持的刷新率,动态的调整资源供给。帧率调节系统包括:负载检测模块、负载调节模块、帧率检测模块和帧率控制模块。
负载检测模块:用于监测绘制渲染等线程中关键运行阶段的运行状态以及资源供给情况、负载状态。例如:GPU叠加状态检测、前台应用程序UI/Render/SurfaceFlinger等核心线程关键过程运行耗时统计,以及线程调度状态检测、CPU负载检测、GPU负载检测、系统&应用垃圾回收(garbage collection,GC)状态检测等。
负载调节模块:用于调节资源供给,负责CPU、GPU资源供给调节以及核心线程调度策略的调节控制;
帧率检测模块:用于检测应用的实时帧率(实际帧率)。具体的,根据应用程序渲染将内存入队间隔计算应用在系统当时负载状态下的实际帧率情况。
帧率控制模块:用于控制应用帧率以及屏幕刷新率的调节。具体的,在终端设备支持的屏幕刷新能力(60Hz,90Hz,120Hz,144Hz)范围内,根据应用在系统当前负载下的实际帧率情况,调整应用的帧刷新间隔达到帧率控制的目的,为了保持流畅的滑动体验,需要将帧率维系在一定的帧率档位,例如:20fps、30fps、45fps、60fps、72fps、90fps、120fps和144fps等。
活动管理器用于管理各个应用程序的生命周期以及导航回退功能。负责Android的主线程创建,各个应用程序的生命周期的维护。
位置管理器用于为应用程序提供位置服务,包括查询上一个已知位置、注册和注销来自某个周期性的位置更新等。
包管理器用于系统内的程序管理,例如:应用程序安装、卸载和升级等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
电话管理器用于管理移动设备功能,包括:手机通话状态、获取电话信息(设备、sim卡、网络信息),监听电话状态以及调用电话拨号器拨打电话
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
Android runtime包括核心库和虚拟机。Android runtime负责安卓系统的调度和管理。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
应用层和应用程序框架层运行在虚拟机中。虚拟机将应用层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
系统库可以包括多个功能模块。例如:图像绘制模块、图像渲染模块、图像合成模块、函数库、和输入处理库等。
图像绘制模块用于二维或三维图像的绘制。图像渲染模块用于二维或三维图像的渲染。图像合成模块用于二维或三维图像的合成。
可能的实现方式中,应用通过图像绘制模块对图像进行绘制,然后应用通过图像渲染模块对绘制后的图像进行渲染,然后应用将渲染后的图像发送显示合成进程的缓存队列中。每当Vsync信号到来时,显示合成进程(例如,SurfaceFlinger)从缓存队列中按顺序获取待合成的一帧图像,然后通过图像合成模块进行图像合成。
函数库提供C语言中所使用的宏、类型定义、字符串操作函数、数学计算函数以及输入输出函数等
输入处理库用于处理输入设备的库,可以实现鼠标、键盘和触摸输入处理等。
硬件抽象层,可以包含多个库模块,库模块如可以为硬件合成器(hwcomposer,HWC)、摄像头库模块等。Android系统可以为设备硬件加载相应的库模块,进而实现应用程序框架层访问设备硬件的目的。设备硬件可以包括如终端设备中的显示屏、摄像头等。
内核层是硬件和软件之间的层。内核层至少包含触控面板驱动、显示驱动、蓝牙驱动、WIFI驱动、键盘驱动、共用存储器驱动和相机驱动等。内核层还可以包括内核调度模块。内核调度模块用于存储硬件的调度信息。
硬件可以是音频设备、蓝牙设备、相机设备、传感器设备等。
为了便于理解,示例的给出部分与本申请实施例相关概念的说明和终端设备的显示流程以供参考。
1、帧:是指界面显示中最小单位的单幅画面。一帧可以理解为一副静止的画面,快速连续地显示多个相连的帧可以形成物体运动的假象。
2、帧率:是指在1秒钟可产生的图像(图片)的数量。单位为帧/秒(frame persecond,fps)。
3、刷新率:是指在1秒钟时间里刷新图片的帧数,也可以理解为终端设备中图形处理器每秒钟刷新画面的次数。高的帧率可以得到更流畅和更逼真的动画。每秒钟帧数越多,所显示的动作就会越流畅。单位为赫兹(frame per second,Hz)。
需要说明的是,界面显示帧前通常需要经过绘制、渲染、合成等过程。
4、帧绘制:是指显示界面的图片绘制。显示界面可以由一个或多个视图组成,各个视图可以由视图系统的可视控件绘制,各个视图由子视图组成,一个子视图对应视图中的一个小部件,例如,其中的一个子视图对应图片视图中的一个符号。
5、帧渲染:是将绘制后的视图进行着色操作或增加3D效果等。例如:3D效果可以是灯光效果、阴影效果和纹理效果等。
6、帧合成:是将多个上述一个或多个渲染后的视图合成为显示界面的过程。
下面对终端设备100的显示流程进行说明。
以微信应用中的界面显示为例,微信应用需要更新界面时,从显示合成进程(Surface Flinger)的缓存队列(Buffer Queue)请求缓存(dequeue Buffer内存出队),作为视图渲染的图像缓存空间,并通过应用程序框架层的视图系统,调用系统库中图像绘制模块对图像进行绘制,以及调用图像渲染模块对绘制后的图像进行渲染。微信应用将渲染后的图像缓存发送至显示合成进程中的缓存队列(queue Buffer内存入队)。显示合成进程调用系统库中图像合成模块将渲染后的图像进行合成。显示合成进程将合成后的图像发送至显示驱动,以驱动屏幕刷新显示图像。
需要说明的是,为了保证显示的流畅性,减少出现显示卡顿等现象,终端设备一般基于同一个时间基准(例如,硬件垂直同步信号,HW-Vsync)对图像的绘制、渲染、合成和屏幕刷新显示等流程进行同步。
可以理解,HW-Vsync为周期性信号,HW-Vsync周期可以根据屏幕刷新率进行设置,例如,屏幕刷新率为60Hz时,HW-Vsync周期可以为16.6ms,即终端设备每间隔16.6ms生成一个控制信号使HW-Vsync周期触发。
下面结合附图对终端设备的界面显示的过程进行说明。
图3为可能的实现中一种终端设备界面显示处理流程的示意图。示例性的,以终端设备的应用帧率为60fps,屏幕刷新率为120Hz为例,按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3、帧4和帧5。
具体的,以帧2的显示为例,终端设备的应用通过应用程序框架层的视图系统,对帧2进行绘制渲染。帧2绘制渲染完成后,终端设备的应用将绘制渲染好的帧2发送至显示合成进程(例如,surfaceflinger)。显示合成进程对绘制渲染好的帧2进行合成。帧1完成合成后,终端设备可以通过调用内核层启动显示驱动在屏幕上显示帧2对应的内容。帧3和帧4类似于帧2的过程也进行合成和显示,此处不再赘述。
从8.3ms至74.7ms的8个HW-Vsync周期中,界面依次显示为帧1、帧1、帧2、帧2、帧3、帧3、帧4和帧4。帧1、帧2、帧3和帧4显示的时长是一致的,界面变化连续流畅,没有卡顿。
需要说明的是,应用绘制渲染图像的时长与终端设备的系统负载等状态相关。当系统负载较大时,应用绘制渲染图像的时长增加;当系统负载较小时,应用绘制渲染图像的时长缩小。终端设备的系统负载等状态的波动可能会导致终端设备显示的卡顿,降低用户体验。
示例性的,图4为可能的实现中一种终端设备界面显示处理流程的示意图。以终端设备的应用帧率为60fps,屏幕刷新率为120Hz为例,按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3、帧4和帧5。终端设备对图4中的帧2、帧3和帧4分别进行绘制渲染、合成和显示,具体可以参照图3对应的描述。
与图3不同的是,图4中帧3由于各种原因导致绘制渲染耗时增加,不能在16.6ms内完成绘制渲染。原因包括图形绘制的复杂或者系统负载受到下载数据等影响存在波动等。从8.3ms至83ms的9个周期中,界面依次显示为帧1、帧1、帧2、帧2、帧2、帧3、帧3、帧4和帧4。终端设备在显示时,帧2的显示时长增加,导致终端设备出现卡顿,用户体验下降。
示例性的,图5为可能的实现中一种终端设备界面显示处理流程的示意图。以终端设备的应用帧率为60fps,屏幕刷新率为120Hz为例,按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3、帧4和帧5。终端设备对图5中的帧2、帧3和帧4分别进行绘制渲染、合成和显示,具体可以参照图3对应的描述。
与图3不同的是,图5中帧4由于各种原因导致绘制渲染耗时缩短。从8.3ms至74.7ms的8个HW-Vsync周期中,界面依次显示为帧1、帧1、帧2、帧2、帧3、帧4、帧4和帧4。终端设备在显示时,帧3的显示时长缩短,帧4的显示时长增加,导致终端设备出现卡顿,用户体验下降。
可以理解的是,应用在较高的应用帧率运行时,随着系统长时间的运行,会出现负载增加的情况,进而可能会由于资源供给突然的不足导致应用的实际帧率急剧下降,出现卡顿等情况,降低应用使用的流畅性,用户体验劣化。
有鉴于此,本申请实施例提出一种帧率调节方法,根据应用的实际帧率对负载状态和/或帧率进行调节,降低系统交替出现长短帧带来的帧率剧烈波动,减少卡顿次数,改善带负载场景下应用使用的流畅性问题。
为方便理解,下面结合图6对本申请实施例提供的帧率调节方法及图像显示流程中涉及的各个模块之间交互的过程进行说明。
示例性的,图6为本申请实施例提供的帧率调节方法及图像显示流程中各个模块之间交互的过程示意图。
如图6所示,系统可以包括:应用、显示合成进程(surface flinger)、显示驱动和帧率调节系统。其中,帧率调节系统包括帧率控制模块、帧率检测模块、负载检测模块和负载调节模块。
S601、帧率控制模块将目标帧率和屏幕刷新率发送至显示合成进程。显示合成进程根据目标帧率控制应用的绘制渲染。显示合成进程根据屏幕刷新率控制图像的合成以及显示。
S602、显示合成进程向应用发送根据目标帧率确定的Vsync信号。该Vsync信号用于控制应用开始进行图像的绘制渲染。
S603、应用接收到Vsync信号后,向显示合成进程请求缓存,作为视图渲染的图像缓存空间。
S604、显示合成进程反馈内存出队至应用。
S605、应用开始绘制渲染图像。
S606、应用将绘制渲染后的图像发送至显示合成进程(内存入队或者缓存入队)。
S607、显示合成进程基于屏幕刷新率开始合成绘制渲染后的图像。
S608、显示合成进程将合成后的图像发送至显示驱动用于屏幕(显示屏)显示。
可以理解的是,终端设备按照S602-S608对图像进行绘制渲染、合成及显示。
下面对应用帧率的调节过程进行说明。
S609、在应用将绘制渲染后的图像发送至显示合成进程时,帧率检测模块监测到缓存入队时间。
S610、帧率检测模块根据多个缓存入队的时间,计算实际帧率。
S611、帧率检测模块根据实际帧率和目标帧率确定应用的显示是否发生卡顿。
当应用显示发生卡顿时,执行S612和S613,或者执行S612、S614和S615。
S612、当应用显示发生卡顿时,负载检测模块确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有余量。
S613、负载检测模块确定系统资源有余量时,负载调节模块调整系统资源状态。
S614、当负载检测模块确定系统资源无余量时,帧率控制模块调整选取首个小于实际帧率的帧率档位为目标帧率,并切换屏幕刷新率为目标帧率的倍数。
S615、帧率控制模块将切换后的目标帧率和切换后的屏幕刷新率发送至显示合成进程。显示合成进程根据切换后的目标帧率和切换后的屏幕刷新率控制图像的绘制渲染、合成及显示。
当应用显示未卡顿时,执行S616、S617和S615。
S616、当应用显示未卡顿时,负载检测模块确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有缓解。
S617、当负载检测模块确定系统资源缓解时,帧率控制模块调整选取首个大于实际帧率的帧率档位为目标帧率,并切换屏幕刷新率为目标帧率的倍数。
S615、帧率控制模块将切换后的目标帧率和切换后的屏幕刷新率发送至显示合成进程。显示合成进程根据切换后的目标帧率和切换后的屏幕刷新率控制图像的绘制渲染、合成及显示。
图7为本申请实施例提供的一种帧率调节方法流程示意图。如图7所示,
S701、帧率检测模块监测应用刷帧情况,计算实际帧率(actual Fps)。
可能的实现方式一中,帧率检测模块监测一段时间内△T(如:100ms),应用发送至显示合成进程的缓存的数量N或者应用发送至显示合成进程的缓存的平均间隔δt1 ms,根据监测的缓存的数量N或者平均间隔δt1,实时计算应用的实际帧率。实际帧率可以表示为N/△T,1000/δt1。
可能的实现方式二中,帧率检测模块监测应用发送至显示合成进程的缓存的数量为M时,耗费的时长T或者应用发送至显示合成进程的缓存的平均间隔δt2 ms,根据监测的时长T或者平均间隔δt2,实时计算应用的实际帧率。实际帧率可以表示为M/T,1000/δt2。
S702、帧率检测模块根据实际帧率和目标帧率判断当前是否为卡顿状态。
本申请实施例中,目标帧率为当前应用期望运行帧率(target Fps Desire)或者应用更新帧率(actual Fps Update)。应用期望运行帧率(target Fps Desire)可以通过应用名称在帧率控制模块中查询。
可能的实现方式一中,当应用帧率未切换时(例如,应用帧率修改标识fps ModifyFlag=false),帧率检测模块通过实际帧率和当前应用期望运行帧率(target FpsDesire)判断是否为卡顿状态。示例性的,计算方式为|actual Fps–target Fps Desire|/target Fps Desire。当计算结果大于或等于第一阈值时,当前应用为卡顿状态。当计算结果小于第一阈值时,当前应用为不卡顿状态。
需要说明的是,第一阈值可以为预先设置好的数值,第一阈值可以为5%,也可以为10%,此处不做限定。
示例性的,当实际帧率为50fps,应用期望运行帧率为60fps,第一阈值为5%时,帧率检测模块计算结果为8.3%,大于第一阈值,当前应用为卡顿状态。
可能的实现方式二中,当应用帧率进行切换时(例如,fps Modify Flag=true),帧率检测模块通过实际帧率和应用更新帧率(actual Fps Update)判断是否为卡顿状态。示例性的,计算方式为|actual Fps–actual Fps Update|/actual Fps Update。当计算结果大于或等于第二阈值时,当前应用为卡顿状态。当计算结果小于第二阈值时,当前应用为不卡顿状态。
需要说明的是,第二阈值可以为预先设置好的数值,第一阈值可以为5%,也可以为10%,此处不做限定。
示例性的,当实际帧率为50fps,应用更新帧率为60fps,第二阈值为5%时,帧率检测模块计算结果为8.3%,大于第二阈值,当前应用为卡顿状态。
需要说明的是,当终端设备的应用切换时,target Fps Desire、actual FpsUpdate和fps Modify Flag需要重置。
示例性的,当终端设备显示的应用从微信应用切换为视频应用时,target FpsDesire、actual Fps Update和fps Modify Flag均发生改变。
当应用为卡顿状态时,终端设备执行S703-S705,或者执行S706和S701。
S703、当应用为卡顿状态时,负载检测模块根据系统状态信息判断系统资源是否有余量。
本申请实施例中,系统状态信息用于显示系统资源的状态。系统状态信息包括:GPU叠加状态、CPU负载、GPU负载、前台应用程序(user interface,UI)、渲染线程(Render)和Surface Flinger等调度状态和关键过程(渲染、合成等)运行耗时等信息。
下面对各个系统状态信息进行说明。
本申请实施例中,GPU叠加状态用于指示GPU的工作情况。GPU叠加状态可以从显示合成进程(SurfaceFlinger)中获取。示例性的,当从显示合成进程获取的变量值为0时,表示硬件合成器(hwcomposer,HWC)叠加,GPU负载较小。当从显示合成进程获取的变量值为1时,表示GPU叠加,GPU的负载可能较大。
本申请实施例中,CPU负载:用于指示CPU的负载情况。CPU负载信息包括CPU核心频点数量、CPU当前最大运行频率、CPU当前最小运行频率和CPU使用率。CPU负载信息可以从内核层的内核调度模块获取。
示例性的,CPU最小运行频率、最大运行频率可以通过执行下述代码获取。
CPU最小运行频率:min_freq:/sys/devices/system/cpu/cpu[%d]/cpufreq/scaling_min_freq;
CPU最大运行频率:max_freq:/sys/devices/system/cpu/cpu[%d]/cpufreq/scaling_max_freq;
CPU使用率:/sys/devices/system/cpu/cpu[%d]/cpufreq/scaling_cur_freq;其中,[%d]为cpu编号。
本申请实施例中,GPU负载用于指示GPU的负载情况。GPU负载信息可以从内核调度模块读取,GPU负载信息包含GPU核心频点信息以及GPU频率档位信息、GPU当前运行频率和GPU使用率。示例性的,GPU频率档位信息可以通过执行以下代码获取/proc/gpufreq/gpufreq_opp_dump。GPU当前运行频率可以通过执行以下代码获取/proc/gpufreq/gpufreq_var_dump。GPU使用率可以通过执行以下代码获取/sys/kernel/ged/hal/gpu_utilization。
本申请实施例中,前台应用程序为前台运行的应用。前台应用程序可以从应用程序框架层的活动管理器获取。具体的,终端设备从活动管理器获取前台应用程序对应的UI线程的ID和前台应用程序渲染线程的ID等。
进一步的,终端设备根据上述ID从内核调度模块可以获取UI线程以及渲染线程以及SurfaceFlinger线程的调度状态。调度状态包括:进程运行所在核心信息。例如,进程运行所在核心信息为0-3时,进程运行在小核心;进程运行所在核心信息为4-7时,进程运行在大核心。小核心的计算能力低,大核心的计算能力高。
本申请实施例中,渲染耗时信息可以从应用框架层的视图系统获取;合成耗时信息可以从SurfaceFlinger模块获取。
示例性的,以GPU叠加状态为1时表示当前是GPU叠加状态,GPU叠加状态为0时表示当前为HWC叠加状态,负载检测模块确定系统资源有余量。当负载检测模块获取到GPU叠加状态为1时,GPU可能不是运行在最佳状态负载检测模块通过下述四种方式确认系统资源是否有余量。
可能的实现方式一中,系统状态信息中GPU当前运行频率小于第三阈值,1G(例如:0.95)或者/GPU未运行在最高档位,负载检测模块确定系统资源有余量。示例性的,GPU当前运行频率为0.95,第三阈值为1时,负载检测模块确定系统资源有余量。第三阈值可以为任意数值,本申请实施例对此不做限定。
可能的实现方式二中,系统状态信息中渲染线程以及SurfaceFlinger线程当前运行的CPU核心频率小于第四阈值或者CPU使用率小于第五阈值,负载检测模块确定系统资源有余量。
示例性的,CPU核心频率为0.8,第四阈值为1时,负载检测模块确定系统资源有余量。第四阈值可以为任意数值,本申请实施例对此不做限定。示例性的,CPU使用率为0.8,第五阈值为1时,负载检测模块确定系统资源有余量。第五阈值可以为任意数值,本申请实施例对此不做限定。
可能的实现方式三中,系统状态信息中UI线程、渲染线程以及SurfaceFlinger进程运行被调度在小核心运行,渲染或者合成时间较长,而大核心资源还有富余(CPU核心频率小,CPU使用率低等),负载检测模块确认系统资源有余量;
可能的实现方式四中,系统状态信息中内存的实时带宽/内存带宽规格小于第六阈值,负载检测模块确认为系统资源有余量。示例性的,系统状态信息中内存的实时带宽为80%,第六阈值为90%,负载检测模块确认为系统资源有余量。
当负载检测模块确定当前为GPU叠加状态且不满足上述可能的实现方式一至四中的任一种情况时,负载检测模块确定系统资源没有余量。
S704、当系统资源没有余量时,帧率控制模块在应用支持的帧率中从大至小选取首个小于实际帧率的帧率,并设置为目标帧率进行帧率切换。
本申请实施例中,应用支持的帧率可以为下述一种或多种:20fps、30fps、45fps、60fps、72fps、90fps、120fps和144fps等。
示例性的,当实际帧率为65fps时,帧率控制模块选取60fps设置为目标帧率,进行切换。或者,当实际帧率为50fps时,帧率控制模块选取45fps设置为目标帧率,进行切换。
可能的实现方式中,帧率控制模块根据目标帧率计算应用绘制渲染帧的时间周期δt3,以控制应用绘制渲染的节奏。
示例性的,图8为本申请实施例提供的一种终端设备界面显示处理流程的示意图。以实际帧率为50fps,实际运行帧率为60fps,当前帧率控制模块选取45fps设置为目标帧率为例。按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3和帧4。终端设备对图8中的帧2、帧3和帧4分别进行绘制渲染、合成和显示,具体可以参照图3对应的描述。
图8所示的处理流程中,从11.1ms至99.9ms的8个HW-Vsync周期,界面依次显示为帧1、帧1、帧2、帧2、帧3、帧3、帧4和帧4。帧1、帧2、帧3和帧4的显示时长相同,终端设备的显示流畅,无卡顿。与图4相比,应用的目标帧率降低,绘制渲染帧的时间周期增加为22.2ms,减少绘制渲染时长增加(长帧出现)导致的显示卡顿问题,使得终端设备的显示流畅性增加。
这样,根据实际帧率调节应用帧率,减少系统负载增加带来的卡顿现象,增加用户体验。
S705、帧率控制模块切换屏幕刷新率为目标帧率的倍数。
本申请实施例中,屏幕刷新率可以为下述一种:60Hz、90Hz、120Hz和144Hz等。屏幕刷新率可以是目标帧率的1倍或者2倍,甚至3倍。此处不做限定。
示例性的,当应用的目标帧率为60fps时,屏幕刷新率可以为60Hz或者120Hz。当应用的目标帧率为45fps时,屏幕刷新率可以为90Hz。当应用的目标帧率为72fps时,屏幕刷新率可以为144Hz。
这样,减少绘制渲染节奏和屏幕刷新节奏不一致导致的卡顿问题,使得画面显示流畅。
S706、当系统资源有余量时,负载调节模块调整系统状态,改善资源供给,提高运行性能。
可以理解的是,当系统资源充足时,应用绘制渲染时间较短;当系统资源不足时,应用绘制渲染时间较长,可能在预定时间内不能完成绘制渲染,进而导致显示卡顿问题。
本申请实施例中,资源供给调节方式包括:CPU/GPU调频、关键线程上大核等。
示例性的,负载调节模块通过内核调度模块,提高CPU/GPU频点以及内存带宽;以及将渲染线程合成线程调度向更高计算能力的大核心上调度运行,等。
示例性的,图9为本申请实施例提供的一种终端设备界面显示处理流程的示意图。以实际帧率为50fps,实际运行帧率为60fps为例,按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3、帧4和帧5。终端设备对图9中的帧2、帧3和帧4分别进行绘制渲染、合成和显示,具体可以参照图3对应的描述。
图9所示的处理流程中,从8.3ms至74.7ms的8个HW-Vsync周期,界面依次显示为帧1、帧1、帧2、帧2、帧3、帧3、帧4和帧4。帧1、帧2、帧3和帧4的显示时长相同,终端设备的显示流畅,无卡顿。与图4相比,应用绘制渲染的时长缩短,帧3在16.6ms内完成绘制渲染,帧1、帧2、帧3和帧4的显示时长相同,减少系统负载增大导致的显示卡顿问题,使得终端设备的显示流畅性增加。
可能实现的方式中,当终端设备调整系统状态后,继续执行S701。
这样,当系统资源有余量时,调节系统资源,缩短应用绘制渲染时间,减少应用绘制渲染超时导致的卡顿问题。同时,减少帧率向下的调节,增加画面的流畅性。
终端设备通过执行上述S701-S706,在系统负载较大时,使得应用可以维持运行在一个相对流畅的帧率水平。但是,随着系统负载的下降,应用帧率需要回到原本期望运行的水平。下面对帧率回升的控制进行说明。
当终端设备执行S701和S702确定应用为不卡顿状态时,终端设备执行S707、S708和S705,或者执行S701。
S707、当应用为不卡顿状态时,负载检测模块根据系统状态信息判断系统资源是否有缓解。
示例性的,当CPU负载大于或等于第七阈值时,负载检测模块确定CPU负载高,系统资源未缓解。当GPU使用率大于或等于第八阈值时,负载检测模块确定GPU使用率高,系统资源未缓解。示例性的,第七阈值可以为90%,第八阈值可以为80%。本申请实施例对第七阈值和第八阈值的取值不做限定。
示例性的,当CPU负载小于第七阈值,且GPU使用率小于第八阈值时,负载检测模块确定CPU负载缓和、GPU使用率缓和,系统资源缓解。
S708、当系统资源缓解时,
帧率控制模块在应用支持的帧率中从小至大选取首个大于实际帧率的帧率,并设置为目标帧率进行帧率切换。
示例性的,图10为本申请实施例提供的一种终端设备界面显示处理流程的示意图。以实际帧率为70fps,实际运行帧率为60fps,当前帧率控制模块选取72fps设置为目标帧率为例。按照时间顺序,终端设备显示的内容依次对应于帧1、帧2、帧3、帧4和帧5。终端设备对图10中的帧2、帧3和帧4分别进行绘制渲染、合成和显示,具体可以参照图3对应的描述。
图10所示的处理流程中,从6.9ms至62.1ms的8个HW-Vsync周期,界面依次显示为帧1、帧1、帧2、帧2、帧3、帧3、帧4和帧4。帧1、帧2、帧3和帧4的显示时长相同,终端设备的显示流畅,无卡顿。与图5相比,应用的目标帧率升高,绘制渲染帧的时间周期缩短为13.8ms,帧1、帧2、帧3和帧4的显示时长相同,减少绘制渲染时长缩短(短帧出现)导致的显示卡顿问题,使得终端设备的显示流畅性增加。
这样,控制应用绘制渲染的节奏,使得缓存入队的间隔缩短,减少短帧带来的卡顿问题。并且缓慢调节帧率,也可以减少负载增加出现长帧导致的卡顿问题,增加画面的流畅性。
此外,应用的目标帧率越高,每秒钟显示的画面越多,画面的流畅性越高。
当系统资源未缓解时,执行S701。
在上述实施例的基础上,为了防止频繁的帧率档位切换,档位切换调整设置有一定的时间间隔。时间间隔可以为60s或者其他时长,此处不做限定。示例性的,当终端设备帧率档位切换后,需要维持60s,再进行实时计算进行帧率调节。
综上,本申请实施例提供的帧率调节方法,根据实际帧率动态调整并选择适合当时负载情况下的应用运行帧率,减少系统负载波动带来的长短帧问题,减少卡顿,提升用户体验。此外,调整屏幕刷新率为目标帧率的倍数,减少绘制渲染节奏和显示节奏不一致导致的卡顿问题。帧率调节方法可以在负载高时将帧率降低到一个可以稳定流畅的水平,在负载缓解时也可以方向恢复到实际资源满供给时的最高目标帧率,为用户提供动态流畅的使用体验。
上面已对本申请实施例的帧率调节方法进行了说明,下面对本申请实施例提供的执行上述帧率调节方法的终端设备进行描述。本领域技术人员可以理解,方法和装置可以相互结合和引用,本申请实施例提供的终端设备可以执行上述帧率调节方法中的步骤。
图11为本申请实施例提供的一种帧率调节装置的硬件结构示意图。请参见图11,该装置包括:存储器1101、处理器1102和接口电路1103。该装置还可以包括显示屏1104,其中,存储器1101、处理器1102、接口电路1103和显示屏1104可以通信;示例性的,存储器1101、处理器1102、接口电路1103和显示屏1104可以通过通信总线通信,存储器1101用于存储计算机执行指令,由处理器1102来控制执行,并由接口电路1103来执行通信,从而实现本申请实施例提供的帧率调节方法。
可选的,接口电路1103还可以包括发送器和/或接收器。可选的,上述处理器1102可以包括一个或多个CPU,还可以是其他通用处理器、数字信号处理器(digital signalprocessor,DSP)、专用集成电路(application specific integrated circuit,ASIC)等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。
可能的实现方式中,本申请实施例中的计算机执行指令也可以称之为应用程序代码,本申请实施例对此不作具体限定。
本申请实施例提供的帧率调节装置,用于执行上述实施例的帧率调节方法,技术原理和技术效果相似,此处不再赘述。
本申请实施例提供一种终端设备,终端设备包括:帧率检测模块、负载检测模块、帧率控制模块和负载调节模块;帧率检测模块用于获取显示屏中所显示的应用的第一帧率;在帧率检测模块根据第一帧率确定应用的显示发生卡顿时,负载检测模块用于确定系统资源状态,系统资源状态用于表征终端设备的系统资源是否有余量;在系统资源状态指示终端设备的系统资源没有余量的情况下,帧率控制模块用于将第一帧率调整到第二帧率,以及调整显示屏的刷新率为第二帧率的倍数;其中,第二帧率小于第一帧率;在系统资源状态指示终端设备的系统资源有余量的情况下,负载调节模块提升系统资源。
可选的,第二帧率为应用支持的多个帧率中从大至小排序中首个小于第一帧率的帧率。
可选的,帧率检测模块用于根据第一帧率以及预先确定的目标帧率,确定应用的显示发生卡顿。
可选的,第一帧率与目标帧率之差的绝对值大于或等于第一阈值与目标帧率之积时,帧率检测模块用于确定应用的显示发生卡顿。
可选的,帧率检测模块具体用于监测时间段内,应用发送至显示合成进程的缓存的数量,并根据时间段和缓存的数量计算得到第一帧率;或者,帧率检测模块具体用于监测时间段内,应用发送至显示合成进程的缓存的第一平均间隔,并根据第一平均间隔计算得到第一帧率;或者,帧率检测模块具体用于监测应用向显示合成进程发送预设数量的缓存时,所需要的时长,并根据预设数量和时长计算得到第一帧率;或者,帧率检测模块具体用于监测应用向显示合成进程发送预设数量的缓存时,各预设数量的缓存之间的第二平均间隔,并根据第二平均间隔计算得到第一帧率。
可选的,帧率检测模块具体用于求取缓存的数量和时间段的比值得到第一帧率;或者,帧率检测模块具体用于求取第一平均间隔的倒数得到第一帧率;或者,帧率检测模块具体用于求取预设数量和时长的比值得到第一帧率;或者,帧率检测模块具体用于求取第一平均间隔的倒数得到第一帧率。
可选的,负载检测模块具体用于根据系统状态信息确定系统资源状态;系统状态信息包括下述一种或多种:图形处理器GPU叠加状态、中央处理器CPU负载、GPU负载、前台应用程序、渲染线程的调度状态、显示合成进程的调度状态、渲染运行耗时或合成运行耗时。
可选的,系统资源状态还用于表征终端设备的系统资源是否有缓解;在帧率检测模块确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,帧率控制模块还用于将应用从第二帧率调整到第三帧率,以及调整显示屏的刷新率为第三帧率的倍数,其中,第三帧率大于第二帧率。
可选的,第三帧率为应用支持的多个帧率中从小至大排序中首个大于第一帧率的帧率。
可选的,第一帧率与第二帧率之差的绝对值小于第一阈值与第二帧率之积时,帧率检测模块用于确定应用的显示卡顿解除。
可选的,在帧率检测模块确定应用的显示卡顿解除,且系统资源状态指示终端设备的系统资源有缓解的情况下,帧率控制模块还用于将应用从第一帧率调整到第四帧率,以及调整显示屏的刷新率为第四帧率的倍数,其中,第四帧率大于第一帧率。
可选的,当第一帧率与目标帧率之差的绝对值小于第一阈值与目标帧率之积时,帧率检测模块用于确定应用的显示卡顿解除。
可选的,终端设备还包括内核调度模块;负载调节模块具体用于通过内核调度模块提高CPU频点;和/或,负载调节模块具体用于通过内核调度模块提高GPU频点;和/或,负载调节模块具体用于通过内核调度模块提高内存带宽;和/或,负载调节模块具体用于将渲染线程和/或合成线程调度在计算能力高的核心上运行。
本申请实施例还提供一种终端设备,结构参见图1。终端设备的存储器可用于存储至少一个程序指令,处理器用于执行至少一个程序指令,以实现上述方法实施例的技术方案。其实现原理和技术效果与上述方法相关实施例类似,此处不再赘述。
本申请实施例提供一种芯片。芯片包括处理器,处理器用于调用存储器中的计算机程序,以执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例提供一种计算机程序产品,当计算机程序产品在终端设备运行时,使得终端设备执行上述实施例中的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。
本申请实施例提供一种计算机可读存储介质,其上存储有程序指令,程序指令被终端设备执行时,使得终端设备执行上述实施例的技术方案。其实现原理和技术效果与上述相关实施例类似,此处不再赘述。本申请实施例是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理单元以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理单元执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
以上的具体实施方式,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上仅为本发明的具体实施方式而已,并不用于限定本发明的保护范围,凡在本发明的技术方案的基础之上,所做的任何修改、等同替换、改进等,均应包括在本发明的保护范围之内。
Claims (17)
1.一种帧率调节方法,其特征在于,包括:
终端设备获取显示屏中所显示的应用的第一帧率;
在所述终端设备根据所述第一帧率确定所述应用的显示发生卡顿时,所述终端设备确定系统资源状态,所述系统资源状态用于表征所述终端设备的系统资源是否有余量;
在所述系统资源状态指示所述终端设备的系统资源没有余量的情况下,所述终端设备将所述第一帧率调整到第二帧率,以及调整所述显示屏的刷新率为所述第二帧率的倍数;其中,所述第二帧率小于所述第一帧率;
在所述系统资源状态指示所述终端设备的系统资源有余量的情况下,所述终端设备提升所述系统资源;
所述系统资源状态还用于表征所述终端设备的系统资源是否有缓解,所述终端设备将所述应用从所述第一帧率调整到所述第二帧率,以及调整所述显示屏的刷新率为所述第二帧率的倍数之后,还包括:
在所述终端设备确定所述应用的显示卡顿解除,且所述系统资源状态指示所述终端设备的系统资源有缓解的情况下,所述终端设备将所述应用从所述第二帧率调整到第三帧率,以及调整所述显示屏的刷新率为所述第三帧率的倍数,其中,所述第三帧率大于所述第二帧率;
所述终端设备提升所述系统资源之后,还包括:
在所述终端设备确定所述应用的显示卡顿解除,且所述系统资源状态指示所述终端设备的系统资源有缓解的情况下,所述终端设备将所述应用从所述第一帧率调整到第四帧率,以及调整所述显示屏的刷新率为所述第四帧率的倍数,其中,所述第四帧率大于所述第一帧率;
所述终端设备根据所述第一帧率确定所述应用的显示发生卡顿,包括:
所述第一帧率与目标帧率之差的绝对值大于或等于第一阈值与所述目标帧率之积时,所述终端设备确定所述应用的显示发生卡顿;
所述终端设备获取显示屏中所显示的应用的第一帧率,包括:
所述终端设备监测时间段内,所述应用发送至显示合成进程的缓存的数量,并根据所述时间段和所述缓存的数量计算得到所述第一帧率;
或者,所述终端设备监测所述时间段内,所述应用发送至所述显示合成进程的缓存的第一平均间隔,并根据所述第一平均间隔计算得到所述第一帧率;
或者,所述终端设备监测所述应用向所述显示合成进程发送预设数量的缓存时,所需要的时长,并根据所述预设数量和所述时长计算得到所述第一帧率;
或者,所述终端设备监测所述应用向所述显示合成进程发送所述预设数量的缓存时,各所述预设数量的缓存之间的第二平均间隔,并根据所述第二平均间隔计算得到所述第一帧率;
所述根据所述时间段和所述缓存的数量计算得到所述第一帧率,包括:求取所述缓存的数量和所述时间段的比值得到所述第一帧率;
所述根据所述第一平均间隔计算得到所述第一帧率,包括:求取所述第一平均间隔的倒数得到所述第一帧率;
所述根据所述预设数量和所述时长计算得到所述第一帧率,包括:求取所述预设数量和所述时长的比值得到所述第一帧率;
所述根据所述第二平均间隔计算得到所述第一帧率,包括:求取所述第一平均间隔的倒数得到所述第一帧率。
2.根据权利要求1所述的方法,其特征在于,所述第二帧率为所述应用支持的多个帧率中从大至小排序中首个小于所述第一帧率的帧率。
3.根据权利要求1或2所述的方法,其特征在于,所述终端设备确定系统资源状态,包括:
所述终端设备根据系统状态信息确定所述系统资源状态;所述系统状态信息包括下述一种或多种:图形处理器GPU叠加状态、中央处理器CPU负载、GPU负载、前台应用程序、渲染线程的调度状态、显示合成进程的调度状态、渲染运行耗时或合成运行耗时。
4.根据权利要求1所述的方法,其特征在于,所述第三帧率为所述应用支持的多个帧率中从小至大排序中首个大于所述第一帧率的帧率。
5.根据权利要求1或4所述的方法,其特征在于,所述终端设备确定所述应用的显示卡顿解除,包括:
所述第一帧率与所述第二帧率之差的绝对值小于第一阈值与所述第二帧率之积时,所述终端设备确定所述应用的显示卡顿解除。
6.根据权利要求1所述的方法,其特征在于,所述终端设备确定所述应用的显示卡顿解除,包括:
当所述第一帧率与所述目标帧率之差的绝对值小于第一阈值与所述目标帧率之积时,所述终端设备确定所述应用的显示卡顿解除。
7.根据权利要求1或2所述的方法,其特征在于,所述终端设备提升所述系统资源,包括:
所述终端设备提高CPU频点;
和/或,所述终端设备提高GPU频点;
和/或,所述终端设备提高内存带宽;
和/或,所述终端设备将渲染线程和/或合成线程调度在计算能力高的核心上运行。
8.一种终端设备,其特征在于,所述终端设备包括:帧率检测模块、负载检测模块、帧率控制模块和负载调节模块;
所述帧率检测模块用于获取显示屏中所显示的应用的第一帧率;
在所述帧率检测模块根据所述第一帧率确定所述应用的显示发生卡顿时,所述负载检测模块用于确定系统资源状态,所述系统资源状态用于表征所述终端设备的系统资源是否有余量;
在所述系统资源状态指示所述终端设备的系统资源没有余量的情况下,所述帧率控制模块用于将所述第一帧率调整到第二帧率,以及调整所述显示屏的刷新率为所述第二帧率的倍数;其中,所述第二帧率小于所述第一帧率;
在所述系统资源状态指示所述终端设备的系统资源有余量的情况下,所述负载调节模块提升所述系统资源;
所述系统资源状态还用于表征所述终端设备的系统资源是否有缓解;
所述帧率控制模块将所述应用从所述第一帧率调整到所述第二帧率,以及调整所述显示屏的刷新率为所述第二帧率的倍数之后,还包括:
在所述帧率检测模块确定所述应用的显示卡顿解除,且所述系统资源状态指示所述终端设备的系统资源有缓解的情况下,所述帧率控制模块还用于将所述应用从所述第二帧率调整到第三帧率,以及调整所述显示屏的刷新率为所述第三帧率的倍数,其中,所述第三帧率大于所述第二帧率;
在所述负载调节模块提升所述系统资源之后,还包括:
在所述帧率检测模块确定所述应用的显示卡顿解除,且所述系统资源状态指示所述终端设备的系统资源有缓解的情况下,所述帧率控制模块还用于将所述应用从所述第一帧率调整到第四帧率,以及调整所述显示屏的刷新率为所述第四帧率的倍数,其中,所述第四帧率大于所述第一帧率;
所述帧率检测模块用于所述第一帧率与目标帧率之差的绝对值大于或等于第一阈值与所述目标帧率之积时,所述帧率检测模块用于确定所述应用的显示发生卡顿;
所述帧率检测模块具体用于监测时间段内,所述应用发送至显示合成进程的缓存的数量,并根据所述时间段和所述缓存的数量计算得到所述第一帧率;
或者,所述帧率检测模块具体用于监测所述时间段内,所述应用发送至所述显示合成进程的缓存的第一平均间隔,并根据所述第一平均间隔计算得到所述第一帧率;
或者,所述帧率检测模块具体用于监测所述应用向所述显示合成进程发送预设数量的缓存时,所需要的时长,并根据所述预设数量和所述时长计算得到所述第一帧率;
或者,所述帧率检测模块具体用于监测所述应用向所述显示合成进程发送所述预设数量的缓存时,各所述预设数量的缓存之间的第二平均间隔,并根据所述第二平均间隔计算得到所述第一帧率;
所述帧率检测模块具体用于求取所述缓存的数量和所述时间段的比值得到所述第一帧率;
或者,所述帧率检测模块具体用于求取所述第一平均间隔的倒数得到所述第一帧率;
或者,所述帧率检测模块具体用于求取所述预设数量和所述时长的比值得到所述第一帧率;
或者,所述帧率检测模块具体用于求取所述第一平均间隔的倒数得到所述第一帧率。
9.根据权利要求8所述的终端设备,其特征在于,所述第二帧率为所述应用支持的多个帧率中从大至小排序中首个小于所述第一帧率的帧率。
10.根据权利要求8所述的终端设备,其特征在于,
所述负载检测模块具体用于根据系统状态信息确定所述系统资源状态;所述系统状态信息包括下述一种或多种:图形处理器GPU叠加状态、中央处理器CPU负载、GPU负载、前台应用程序、渲染线程的调度状态、显示合成进程的调度状态、渲染运行耗时或合成运行耗时。
11.根据权利要求8所述的终端设备,其特征在于,所述第三帧率为所述应用支持的多个帧率中从小至大排序中首个大于所述第一帧率的帧率。
12.根据权利要求8或11所述的终端设备,其特征在于,
所述第一帧率与所述第二帧率之差的绝对值小于第一阈值与所述第二帧率之积时,所述帧率检测模块用于确定所述应用的显示卡顿解除。
13.根据权利要求8所述的终端设备,其特征在于,
当所述第一帧率与所述目标帧率之差的绝对值小于第一阈值与所述目标帧率之积时,所述帧率检测模块用于确定所述应用的显示卡顿解除。
14.根据权利要求8或9所述的终端设备,其特征在于,所述终端设备还包括内核调度模块;
所述负载调节模块具体用于通过所述内核调度模块提高CPU频点;
和/或,所述负载调节模块具体用于通过所述内核调度模块提高GPU频点;
和/或,所述负载调节模块具体用于通过所述内核调度模块提高内存带宽;
和/或,所述负载调节模块具体用于将渲染线程和/或合成线程调度在计算能力高的核心上运行。
15.一种帧率调节装置,其特征在于,所述帧率调节装置包括处理器,所述处理器用于调用存储器中的计算机程序,以执行如权利要求1-7中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在终端设备上运行时,使得所述终端设备执行如权利要求1-7中任一项所述的方法。
17.一种用于帧率调节的芯片,其特征在于,所述芯片包括处理器,所述处理器用于调用存储器中的计算机程序,以执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110996406.XA CN114443269B (zh) | 2021-08-27 | 2021-08-27 | 帧率调节方法和相关装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110996406.XA CN114443269B (zh) | 2021-08-27 | 2021-08-27 | 帧率调节方法和相关装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114443269A CN114443269A (zh) | 2022-05-06 |
CN114443269B true CN114443269B (zh) | 2023-08-01 |
Family
ID=81362258
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110996406.XA Active CN114443269B (zh) | 2021-08-27 | 2021-08-27 | 帧率调节方法和相关装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114443269B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277924B (zh) * | 2022-07-26 | 2024-05-17 | 努比亚技术有限公司 | 一种动态锁屏显示控制方法、设备及计算机可读存储介质 |
CN117711355A (zh) * | 2022-08-24 | 2024-03-15 | 荣耀终端有限公司 | 一种屏幕刷新率切换方法及电子设备 |
CN117742835A (zh) * | 2022-09-14 | 2024-03-22 | 荣耀终端有限公司 | 一种请求vSync信号的方法及电子设备 |
CN118138872A (zh) * | 2022-12-02 | 2024-06-04 | 荣耀终端有限公司 | 稳定图像帧的方法和装置 |
CN115942131B (zh) * | 2023-02-09 | 2023-09-01 | 蔚来汽车科技(安徽)有限公司 | 保障车辆环视功能的方法、座舱系统及车辆、存储介质 |
CN117130459B (zh) * | 2023-04-06 | 2024-05-24 | 荣耀终端有限公司 | 帧率调整方法、设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489228A (zh) * | 2019-07-16 | 2019-11-22 | 华为技术有限公司 | 一种资源调度的方法和电子设备 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105007443B (zh) * | 2015-07-08 | 2019-01-08 | 福州瑞芯微电子股份有限公司 | 一种视频变频播放方法及装置 |
CN109189653A (zh) * | 2018-07-13 | 2019-01-11 | 重庆爱奇艺智能科技有限公司 | 一种用于在虚拟现实设备中进行卡顿调节的方法和装置 |
CN109104638B (zh) * | 2018-08-03 | 2021-05-25 | Oppo广东移动通信有限公司 | 帧率优化方法、装置、终端及存储介质 |
CN111882626B (zh) * | 2020-08-06 | 2023-07-14 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、服务器及介质 |
-
2021
- 2021-08-27 CN CN202110996406.XA patent/CN114443269B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110489228A (zh) * | 2019-07-16 | 2019-11-22 | 华为技术有限公司 | 一种资源调度的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114443269A (zh) | 2022-05-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114443269B (zh) | 帧率调节方法和相关装置 | |
CN107102936B (zh) | 一种流畅度的评估方法和移动终端以及存储介质 | |
CN109768926B (zh) | 一种数据处理方法、终端设备及计算机可读存储介质 | |
CN109992231B (zh) | 投屏方法及终端 | |
CN116501210B (zh) | 一种显示方法、电子设备及存储介质 | |
US20190268294A1 (en) | Screen display method, apparatus, terminal, and storage medium | |
CN106658064B (zh) | 虚拟礼物展示方法及装置 | |
CN110418207B (zh) | 信息处理方法、装置及存储介质 | |
CN111078172B (zh) | 一种显示流畅度的调整方法、装置、电子设备及存储介质 | |
CN115097994B (zh) | 数据处理方法和相关装置 | |
CN111338838A (zh) | 中央处理器频率的控制方法及相关装置 | |
US20150153931A1 (en) | Method, device and terminal for refreshing page | |
CN107436712B (zh) | 为呼出菜单设置皮肤的方法、装置及终端 | |
CN109407920B (zh) | 一种状态图标显示方法、状态图标处理方法及相关设备 | |
CN110681155A (zh) | 一种游戏优化方法、游戏优化装置及移动终端 | |
CN107066268B (zh) | 微件应用的显示位置切换方法及装置 | |
CN111399736B (zh) | 进度条控制方法、装置、设备及可读存储介质 | |
CN109101151B (zh) | 一种信息显示处理方法及终端设备 | |
CN111813490A (zh) | 插帧处理方法及装置 | |
CN112435069A (zh) | 一种广告投放方法、装置、电子设备及存储介质 | |
CN113791684A (zh) | 获取应用帧率的方法、刷新装置、移动终端及存储介质 | |
CN110045890B (zh) | 应用标识的显示方法及终端设备 | |
EP1849238A1 (en) | Mobile terminal for multi-displa yable contents information which is composed with independent channel, method thereof, and computer readable record medium on which program for executing method is recorded | |
CN112870697B (zh) | 基于虚拟关系养成程序的交互方法、装置、设备及介质 | |
CN112198954B (zh) | 帧率设置方法、装置、存储介质及移动终端 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |