CN117331427A - 帧率调整方法、装置、设备及计算机可读存储介质 - Google Patents
帧率调整方法、装置、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN117331427A CN117331427A CN202311499852.5A CN202311499852A CN117331427A CN 117331427 A CN117331427 A CN 117331427A CN 202311499852 A CN202311499852 A CN 202311499852A CN 117331427 A CN117331427 A CN 117331427A
- Authority
- CN
- China
- Prior art keywords
- frame rate
- terminal
- application client
- target
- scene
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 71
- 230000015654 memory Effects 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 16
- 230000002829 reductive effect Effects 0.000 description 20
- 230000008569 process Effects 0.000 description 11
- 230000003993 interaction Effects 0.000 description 9
- 238000010586 diagram Methods 0.000 description 7
- 230000008859 change Effects 0.000 description 6
- 230000001276 controlling effect Effects 0.000 description 5
- 230000002159 abnormal effect Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000008901 benefit Effects 0.000 description 2
- 235000019800 disodium phosphate Nutrition 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000000670 limiting effect Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 238000013515 script Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 208000002173 dizziness Diseases 0.000 description 1
- 230000005294 ferromagnetic effect Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000005291 magnetic effect Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000012946 outsourcing Methods 0.000 description 1
- 230000008447 perception Effects 0.000 description 1
- 230000002035 prolonged effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
- 230000001105 regulatory effect Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/36—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
- G09G5/39—Control of the bit-mapped memory
- G09G5/395—Arrangements specially adapted for transferring the contents of the bit-mapped memory to the screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/003—Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
- G09G5/005—Adapting incoming signals to the display format of the display terminal
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/325—Power saving in peripheral device
- G06F1/3265—Power saving in display device
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1407—General aspects irrespective of display type, e.g. determination of decimal point position, display with fixed or driving decimal point, suppression of non-significant zeros
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/02—Details of power systems and of start or stop of display operation
- G09G2330/021—Power management, e.g. power saving
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2330/00—Aspects of power supply; Aspects of display protection and defect management
- G09G2330/04—Display protection
- G09G2330/045—Protection against panel overheating
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2340/00—Aspects of display data processing
- G09G2340/04—Changes in size, position or resolution of an image
- G09G2340/0407—Resolution change, inclusive of the use of different resolutions for different screen areas
- G09G2340/0435—Change or adaptation of the frame rate of the video stream
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D30/00—Reducing energy consumption in communication networks
- Y02D30/70—Reducing energy consumption in communication networks in wireless communication networks
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Controls And Circuits For Display Device (AREA)
- Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)
Abstract
本申请实施例提供一种帧率调整方法、装置、设备及计算机可读存储介质,其中,该方法包括:当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据;基于该运行数据确定该应用客户端的运行场景;基于该运行场景确定该应用客户端的目标运行帧率;该应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,该动态调整用于触发该终端对屏幕的刷新帧率进行调整。通过本申请,能够使得应用客户端的运行帧率和/或屏幕的刷新帧率基于应用客户端的运行场景进行动态调整。
Description
本申请是申请日为2020年11月09日、申请号为202011242460.7、发明名称为“帧率调整方法、装置、设备及计算机可读存储介质”的中国专利的分案申请。
技术领域
本申请实施例涉及图像处理技术领域,涉及但不限于一种帧率调整方法、装置、设备及计算机可读存储介质。
背景技术
随着终端技术的发展,目前智能终端支持的帧率越来越高,120帧甚至144帧越来越普遍。高帧率给用户带来了顺畅的屏幕显示以及更快的触控响应体验,但同时也带来了更高的功耗以及发热。目前受散热能力所限,智能终端无法长时间保持高帧率,运行一段时间后,会由于温度过高启动高温保护机制,从而降低性能,导致无法支持高帧率。
发明内容
本申请实施例提供一种帧率调整方法、装置、设备及计算机可读存储介质,能够使得。
本申请实施例的技术方案是这样实现的:
本申请实施例提供一种帧率调整方法,包括:
当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据;
基于该运行数据确定该应用客户端的运行场景;
基于该运行场景确定该应用客户端的目标运行帧率;
该应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,该动态调整用于触发该终端对屏幕的刷新帧率进行调整。
本申请实施例提供一种帧率调整装置,包括:
第一获取模块,用于当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据;
第一确定模块,用于基于该运行数据确定该应用客户端的运行场景;
第二确定模块,用于基于该运行场景确定该应用客户端的目标运行帧率;
第一输出模块,用于控制该应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,该动态调整用于触发该终端对屏幕的刷新帧率进行调整。
本申请实施例提供一种帧率调整设备,包括:
存储器,用于存储可执行指令;处理器,用于执行该存储器中存储的可执行指令时,使得该帧率调整设备实现上述的方法。
本申请实施例提供一种计算机可读存储介质,存储有可执行指令,用于引起处理器执行时,使得帧率调整设备实现上述的方法。
本申请实施例具有以下有益效果:
当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据,然后应用客户端基于该运行数据确定运行场景,不同的运行场景可以对应不同的目标运行帧率,因此在确定出运行场景后,再基于该运行场景确定应用客户端的目标运行帧率,之后应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,从而实现应用客户端基于运行场景对帧率的实时动态调整,并且该动态调整还用于触发终端对屏幕的刷新帧率进行调整,能够在保障用户体验的同时可以有效降低功耗。
附图说明
图1为本申请实施例提供的帧率调整系统10的一种网络架构示意图;
图2是本申请实施例提供的终端300的结构示意图;
图3为本申请实施例提供的帧率调整方法的一种实现流程示意图;
图4为本申请实施例提供的帧率调整方法的另一种实现流程示意图图;
图5为本申请实施例提供的帧率调整方法的再一种实现流程示意图;
图6为本申请实施例提供的场景划分的实现流程示意图;
图7为本申请实施例提供的终端和游戏客户端的交互流程示意图。
具体实施方式
为了使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请作进一步地详细描述,所描述的实施例不应视为对本申请的限制,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
在以下的描述中,涉及到“一些实施例”,其描述了所有可能实施例的子集,但是可以理解,“一些实施例”可以是所有可能实施例的相同子集或不同子集,并且可以在不冲突的情况下相互结合。除非另有定义,本申请实施例所使用的所有的技术和科学术语与属于本申请实施例的技术领域的技术人员通常理解的含义相同。本申请实施例所使用的术语只是为了描述本申请实施例的目的,不是旨在限制本申请。
1)智能终端:是指一类具备丰富人机交互方式、拥有接入互联网能力、通常搭载各种操作系统、具有较强处理能力的设备。智能终端可以分为移动智能终端和不便移动智能终端,其中移动智能终端包括智能手机、平板电脑、车载终端、掌上游戏主机等,不便移动智能终端包括台式计算机、桌面电脑等。
2)帧率(Frame Per Second,FPS):是以帧为单位的位图图像连续出现在显示器上的频率(速率)。
3)运行帧率,应用客户端在运行时每秒钟内能够渲染输出的画面数量。
4)刷新帧率,又称为刷新频率,是指屏幕在每秒钟能刷新的次数。
为了更好地理解本申请实施例中提供的帧率调整方法,首先对相关技术中的帧率调整方法进行说明:
相关技术中,终端优先保障高帧率,在出现温度过高异常,无法再提供足够的性能支持时,再被迫降低帧率。在现有的方案中,用户会明显感觉到终端温度过高,同时也能够明显感觉到帧率的降低,对应用体验有明显的影响。
基于此,本申请实施例提供一种帧率调整方法,针对游戏等app,识别游戏场景,针对用户有操作的场景,动态支持高帧率,从而给用户最好的显示及触控体验;针对静态画面或者无需用户操作的场景,实时动态降低帧率,从而降低终端的功耗和发热。通过精确的场景识别,确保低帧率的场景对用户的游戏交互和体验无明显影响,同时实现整体功耗和终端运行温度的明显降低。
下面说明本申请实施例提供的帧率调整设备的示例性应用,本申请实施例提供的帧率调整设备可以实施为笔记本电脑,平板电脑,台式计算机,移动设备(例如,移动电话,便携式音乐播放器,个人数字助理,专用消息设备,便携式游戏设备)、智能机器人等任意具有屏幕显示功能的终端。下面,将说明帧率调整设备实施为终端时的示例性应用。
参见图1,图1为本申请实施例提供的帧率调整系统10的一种网络架构示意图。如图1所示,帧率调整系统10中包括服务器100、网络200和终端300。并且终端300通过网络200连接服务器100,网络200可以是广域网或者局域网,又或者是二者的组合。其中,终端300上安装有各种应用程序,例如可以是游戏应用程序、购物应用程序、视频观看应用程序等。在实现本申请实施例的帧率调整方法时,终端300在当前的显示界面上显示有当前运行的应用程序所显示的内容,在本申请实施例以终端300中运行有游戏应用为例进行说明,游戏客户端通过网络200从服务器100获取游戏运行数据,并基于游戏运行数据实时确定出当前的场景,然后基于确定出的场景对游戏客户端的运行帧率进行调整,在调整后游戏客户端通知终端300的操作系统,以触发终端300的操作系统对屏幕的刷新帧率进行调整,不仅能够实现帧率基于场景的实时调整,并且能够有效减少终端功耗,从而保证终端的性能。
参见图2,图2是本申请实施例提供的终端300的结构示意图,图2所示的终端300包括:至少一个处理器310、存储器350、至少一个网络接口320和用户接口330。终端300中的各个组件通过总线系统340耦合在一起。可理解,总线系统340用于实现这些组件之间的连接通信。总线系统340除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图2中将各种总线都标为总线系统340。
处理器310可以是一种集成电路芯片,具有信号的处理能力,例如通用处理器、数字信号处理器(DSP,Digital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等,其中,通用处理器可以是微处理器或者任何常规的处理器等。
用户接口330包括使得能够呈现媒体内容的一个或多个输出装置331,包括一个或多个扬声器和/或一个或多个视觉显示屏。用户接口330还包括一个或多个输入装置332,包括有助于用户输入的用户接口部件,比如键盘、鼠标、麦克风、触屏显示屏、摄像头、其他输入按钮和控件。
存储器350可以是可移除的,不可移除的或其组合。示例性的硬件设备包括固态存储器,硬盘驱动器,光盘驱动器等。存储器350可选地包括在物理位置上远离处理器310的一个或多个存储设备。存储器350包括易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。非易失性存储器可以是只读存储器(ROM,Read Only Memory),易失性存储器可以是随机存取存储器(RAM,Random Access Memory)。本申请实施例描述的存储器350旨在包括任意适合类型的存储器。在一些实施例中,存储器350能够存储数据以支持各种操作,这些数据的示例包括程序、模块和数据结构或者其子集或超集,下面示例性说明。
操作系统351,包括用于处理各种基本系统服务和执行硬件相关任务的系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务;
网络通信模块352,用于经由一个或多个(有线或无线)网络接口320到达其他计算设备,示例性的网络接口320包括:蓝牙、无线相容性认证(WiFi)、和通用串行总线(USB,Universal Serial Bus)等;
输入处理模块353,用于对一个或多个来自一个或多个输入装置332之一的一个或多个用户输入或互动进行检测以及翻译所检测的输入或互动。
在一些实施例中,本申请实施例提供的装置可以采用软件方式实现,图2示出了存储在存储器350中的一种帧率调整装置354,该帧率调整装置354可以是终端300中的帧率调整装置,其可以是程序和插件等形式的软件,包括以下软件模块:第一确定模块3541、第一输出模块3542和第一发送模块,这些模块是逻辑上的,因此根据所实现的功能可以进行任意的组合或进一步拆分。将在下文中说明各个模块的功能。
在另一些实施例中,本申请实施例提供的装置可以采用硬件方式实现,作为示例,本申请实施例提供的装置可以是采用硬件译码处理器形式的处理器,其被编程以执行本申请实施例提供的帧率调整方法,例如,硬件译码处理器形式的处理器可以采用一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,ComplexProgrammable Logic Device)、现场可编程门阵列(FPGA,Field-Programmable GateArray)或其他电子元件。
下面将结合本申请实施例提供的终端300的示例性应用和实施,说明本申请实施例提供的帧率调整方法。参见图3,图3为本申请实施例提供的帧率调整方法的一种实现流程示意图,将结合图3示出的步骤进行说明。
步骤S101,当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据。
这里,该应用客户端可以是游戏客户端,还可以是视频观看客户端,或者购物客户端等。步骤S101在实现时,可以是当该应用客户端支持动态帧率切换时,应用客户端获取自身在前台运行时的运行数据,其中,该运行数据可以包括所呈现画面的画面信息以及用户操作数据,进一步地,该画面信息可以是应用客户端在运行过程中所渲染输出的图像的图像数据,例如可以包括所渲染输出的图像各个像素点的像素值;该用户操作数据可以包括用户触发各个操作的时间点信息、用户操作的位置以及用户操作的压力值等信息。
步骤S102,基于该运行数据确定该应用客户端的运行场景。
这里,该运行场景至少可以包括高帧率运行场景、低帧率运行场景,在一些实施例中,还可以包括中帧率运行场景。
步骤S102在实现时,可以是对该运行数据进行分析,以确定画面运动情况、用户操作频率或者是否为特定的高帧率场景,从而确定出应用客户端的运行场景。进一步地,当存在画面运动和/或用户操作频率超过一定次数阈值和/或确定为特定的高帧率场景时,确定该运行场景为高帧率场景,反之,当不存在画面运动,且用户操作没有超过一定的次数阈值,且不是特定的高帧率场景时,确定该运行场景为低帧率场景。
步骤S103,基于该运行场景确定该应用客户端的目标运行帧率。
在实现时,可以基于终端所支持的最高帧率预先为不同的运行场景分配不同的运行帧率,例如当终端所支持的最高帧率为90帧,运行场景包括高帧率运行场和低帧率运行场景,那么高帧率运行场景对应的运行帧率可以为90帧,低帧率运行场景对应的运行帧率可以为30帧。
在预先为不同运行场景分配对应的运行帧率后,在步骤S103中,即可根据确定出的运行场景来确定应用客户端的目标运行帧率,例如当确定出的运行场景为高帧率运行场景,那么应用客户端的目标运行帧率即为90帧。
步骤S104,应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整。
这里,该动态调整用于触发该终端对屏幕的刷新帧率进行调整,也就是说,当应用客户端按照目标运行帧率进行图像输出从而实现了帧率的动态调整后,还可以带动终端对屏幕的刷新帧率的调整。在实现时,应用客户端对帧率的动态调整来触发终端对屏幕的刷新帧率的动态调整可以有两种方式,一是终端被动调整,也即应用客户端指示终端按照该目标运行帧率进行帧率调整;二是终端主动调整,也即终端的操作系统主动监测应用客户端的帧率变化,并在监测到应用客户端的帧率变化时,主动进行帧率调整。
另外,需要说明的是,终端在进行屏幕的刷新帧率的动态调整时,可以是在终端的运行状态允许的情况下,将屏幕的刷新帧率调整为目标运行帧率,也可以是在终端的运行状态不允许的情况下,对屏幕的刷新帧率进行一定程度的调整,屏幕当前的刷新帧率是30帧,而目标运行帧率为90帧,如果终端当前的温度略高的话,不能够将屏幕的刷新帧率提高到90帧,此时可以将刷新帧率提高到60帧。
在本申请实施例提供的帧率调整方法中,当终端中的应用客户端支持动态帧率切换时,获取该应用客户端在前台运行时的运行数据,然后应用客户端基于该运行数据确定运行场景,不同的运行场景可以对应不同的目标运行帧率,因此在确定出运行场景后,再基于该运行场景确定应用客户端的目标运行帧率,之后应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,从而实现应用客户端基于运行场景对帧率的实时动态调整,并且该动态调整还用于触发终端对屏幕的刷新帧率进行调整,能够在保障用户体验的同时可以有效降低功耗。
在一些实施例中,在应用客户端进行动态帧率调整,也即按照该目标运行帧率进行图像输出之后,可以触发终端也相应进行帧率的动态调整,终端可以是基于应用客户端的动态调整进行主动调整或被动调整,其中,如果终端被动进行帧率的动态调整,在步骤S104之后,如图4所示,还可以执行以下步骤:
步骤S105A,该应用客户端将该目标运行帧率发送至该终端的操作系统,以指示该终端的屏幕按照该目标运行帧率进行刷新显示。
这里,在实现时,应用客户端在启动后,可以请求建立与终端操作系统之间的通信连接,在该通信连接建立成功之后,终端的操作系统和应用客户端之间可以进行信息和数据的交互。
步骤S106A,该终端的操作系统接收到该目标运行帧率后,获取该终端的状态参数。
这里,终端的状态参数可以包括CPU温度、CPU占用率等。
步骤S107A,该终端的操作系统基于该状态参数确定终端是否满足目标运行帧率的执行条件。
步骤S107A在实现时,可以首先获取目标运行帧率执行条件中包括的温度阈值和/或使用率阈值,然后判断CPU温度是否小于该温度阈值,和/或该CPU使用率是否小于该使用率阈值,其中,当确定CPU温度小于该温度阈值和/或该CPU使用率小于该使用率阈值时,确定该终端满足该目标运行帧率的执行条件,进入步骤S108A;当确定该CPU温度大于或者等于该温度阈值和/或该CPU使用率大于或者等于使用率阈值时,确定终端不满足该目标运行帧率的执行条件,进入步骤S111A。
在本申请实施例中,不同的运行帧率对应的不同的执行条件,例如高帧率(例如144帧)对应的执行条件是CPU温度低于40°且CPU的使用率低于40%,中等帧率(例如90帧)对应的执行条件是CPU温度低于55°,低帧率没有执行条件,也即在不满足高帧率对应的执行条件也不满足中等帧率的执行条件时,执行低帧率。
举例来说,获取到的状态参数为:CPU温度50°,CPU的使用率为45%,目标运行帧率的执行条件为CPU温度低于40°且CPU的使用率低于40%,由于CPU温度以及CPU使用率都不满足执行条件中对CPU温度及CPU使用率的要求,此时确定终端不满足目标运行帧率的执行条件,进入步骤S111A。
在一些实施例中,该状态参数还可以包括终端的剩余电量,对应地,目标运行帧率的执行条件还可以包括剩余电量阈值,确定终端是否满足目标运行帧率的执行条件时,可以是判断CPU温度是否小于该温度阈值,和/或该CPU使用率是否小于该使用率阈值,和/或剩余电量是否大于剩余电量阈值。
步骤S108A,终端的操作系统判断目标运行帧率是否小于或者等于预设的刷新帧率阈值。
这里,该刷新帧率阈值可以是用户根据自身需求设置的,该刷新帧率阈值可以小于终端支持的最高帧率,也可以等于终端支持的最高帧率。当该目标运行帧率小于或者等于该刷新帧率阈值时,进入步骤S109A;当该目标运行帧率大于该刷新帧率阈值时,进入步骤S110A。
步骤S109A,终端的操作系统控制该屏幕按照该目标运行帧率进行刷新显示。
这里,当终端满足目标运行帧率的执行条件时,实时控制屏幕按照目标运行帧率进行刷新显示,以提高用户体验。
步骤S110A,终端的操作系统将该刷新帧率阈值确定为目标刷新帧率,并控制该屏幕按照该目标刷新帧率进行刷新显示。
这里,在终端的状态参数满足目标运行帧率的执行条件的前提下,如果目标运行帧率高于了限定的刷新帧率阈值,那么此时控制屏幕按照该刷新帧率阈值进行刷新显示,也即终端将刷新帧率提高到能调整到的最大值,以保证用户体验。
在一些实施例中,在步骤S110A之后,还可以执行步骤S113A以及后续步骤。
步骤S111A,该终端的操作系统基于该状态参数确定屏幕的目标刷新帧率。
这里,当终端不满足目标运行帧率的执行条件时,可以基于状态参数确定该状态参数所能满足至少一个执行条件中对应的最高的帧率,并将该最高的帧率确定为屏幕的目标刷新帧率。
承接上述举例,状态参数为CPU温度50°,CPU的使用率为45%,假设该状态参数满足90帧的执行条件,也满足30帧的执行条件,那么将30帧和90帧中较高者,也即90帧确定为目标刷新帧率。
步骤S112A,终端的操作系统控制该屏幕按照该目标刷新帧率进行刷新显示。
步骤S113A,该终端的操作系统将该状态参数和目标刷新帧率发送至该应用客户端。
这里,终端的操作系统基于之前建立的通信连接,将状态参数和目标刷新帧率发送至应用客户端。
步骤S114A,该应用客户端基于该状态参数,确定终端是否满足该目标运行帧率的执行条件。
这里,应用客户端可以基于状态参数,确定终端是否满足目标运行帧率的执行条件,以确定是否终端是因为不能支持该目标运行帧率才没有将刷新帧率调整为目标运行帧率,如果确定终端不满足目标帧率的执行条件,也即终端不能支持该目标运行帧率才没有进行刷新帧率的调整,那么此时确定需要反向调整运行帧率,进入步骤S115A;如果确定终端满足目标运行帧率的执行条件,也即不是因为不能支持该目标运行帧率,而是基于其他原因没有进行刷新帧率的调整,那么此时确定不需要调整运行帧率,进入步骤S116A。
步骤S115A,应用客户端按照该目标刷新帧率进行图像输出。
步骤S116A,应用客户端按照该目标运行帧率进行图像输出。
在本申请实施例提供的帧率调整方法中,应用客户端在基于自身的运行场景确定出对应的目标运行帧率之后,将应用客户端的运行帧率动态调整至目标运行帧率,并通过与终端的操作系统建立的通信连接将该目标运行帧率发送至终端的操作系统,以指示终端的操作系统基于该目标运行帧率调整屏幕的刷新帧率,终端在接收到目标运行帧率之后,基于自身的状态参数确定能否支持该目标运行帧率,如果终端的运行状态足以支持该目标运行帧率,即可以将屏幕的刷新帧率调整至目标运行帧率,如果是将屏幕的刷新帧率调低从而调整至目标运行帧率,能够有效降低终端的功耗,如果是将屏幕的刷新帧率调高从而调整至目标运行帧率,能够提高显示效果,进而提高用户的使用体验。
在一些实施例中,如果终端主动进行帧率的动态调整,在步骤S104之后,如图5所示,还可以执行以下步骤:
步骤S105B,终端的操作系统获取应用客户端的目标运行帧率。
这里,终端的操作系统通过向应用客户端发送帧率获取请求,以获取应用客户端的目标运行帧率,进一步地,终端的操作系统可以每间隔预设时长,向应用客户端发送一次帧率获取请求,以获取应用客户端的目标运行帧率。
步骤S106B,终端的操作系统确定该目标运行帧率与屏幕的当前刷新帧率是否相同。
这里,当确定该目标运行帧率与屏幕的当前刷新帧率相同时,说明不需要对刷新帧率进行调整,此时再次返回至步骤S105B;当确定该目标运行帧率与屏幕的当前刷新帧率不同时,说明需要对屏幕的刷新帧率进行调整,此时进入步骤S107B。步骤S107B,终端的操作系统获取该终端的状态参数。
这里,操作系统获取终端的状态参数可以包括但不限于是CPU温度、CPU使用率等。
步骤S108B,终端的操作系统基于该状态参数确定该终端是否满足该目标运行帧率的执行条件。
这里,与步骤S107A的实现过程类似,在步骤S108B在实现时,可以首先获取目标运行帧率执行条件中包括的温度阈值和/或使用率阈值,然后判断CPU温度是否小于该温度阈值,和/或该CPU使用率是否小于该使用率阈值,其中,当确定CPU温度小于该温度阈值和/或该CPU使用率小于该使用率阈值时,确定该终端满足该目标运行帧率的执行条件,进入步骤S109B;当确定该CPU温度大于或者等于该温度阈值和/或该CPU使用率大于或者等于使用率阈值时,确定终端不满足该目标运行帧率的执行条件,进入步骤S110B。
步骤S109B,终端的操作系统控制该屏幕按照该目标运行帧率进行刷新显示。
步骤S110B,终端的操作系统基于该状态参数确定屏幕的目标刷新帧率。
这里,当终端不满足目标运行帧率的执行条件时,可以基于状态参数确定该状态参数所能满足至少一个执行条件中对应的最高的帧率,并将该最高的帧率确定为屏幕的目标刷新帧率。
步骤S111B,终端的操作系统控制该屏幕按照该目标刷新帧率进行刷新显示。
在上述实施例提供的帧率调整方法中,应用客户端在基于自身的运行场景确定出对应的目标运行帧率之后,将应用客户端的运行帧率动态调整至目标运行帧率,以实现应用客户端的运行帧率的调整,但是应用客户端不会指示终端调整,终端可以主动监测应用客户端的运行帧率是否发生改变,如果监测到应用客户端的运行帧率发生改变后,终端的操作系统确定应用客户端的目标运行帧率,并基于自身的状态参数确定能否支持该目标运行帧率,如果终端的运行状态足以支持该目标运行帧率,即可以将屏幕的刷新帧率调整至目标运行帧率,从而实现屏幕刷新帧率的主动调整,并且如果是将屏幕的刷新帧率调低从而调整至目标运行帧率,能够有效降低终端的功耗,如果是将屏幕的刷新帧率调高从而调整至目标运行帧率,能够提高显示效果,进而提高用户的使用体验。
在一些实施例中,上述的步骤S102可以通过以下步骤实现:
步骤S1021A,基于该运行数据确定该应用客户端的输出画面中虚拟对象的移动参数和用户的操作频率。
这里,虚拟对象可以是虚拟角色还可以是虚拟道具。
步骤S1022A,当该移动参数大于第一参数阈值,或者当该操作频率大于第一频率阈值时,确定该应用客户端处于第一运行场景。
步骤S1023A,当该移动参数小于或者等于该第一参数阈值,且该操作频率小于或者等于第一频率阈值时,确定该应用客户端处于第二运行场景。。
这里,在高帧率模式下,用户的操作能够得到更快的响应,应用客户端的使用体验也会更加顺畅,因此在基于操作频率确定操作频率大于预定的第一频率阈值时,可以确定应用客户端所处的场景为第一运行场景,也即高帧率运行场景;当操作频率低于该第一频率阈值时,也即用户的操作频率没有很高,例如当用户在游戏客户端的对局外购买装备等不涉及实时对抗类的操作时,或者在用户完全无操作的情况下,可以确定应用客户端所处的场景为第二运行场景,也即低帧率运行场景。
当虚拟对象的移动参数大于第一参数阈值,表征虚拟对象发生快速运动时,高帧率模式可以避免画面留滞、模糊,因此此时确定应用客户端所处的场景为第一运行场景,也即高帧率运行场景,当虚拟对象的移动参数小于或者等于第一参数阈值,表征虚拟对象发生中低速运动,或者没有发生移动时,此时确定应用客户端所处的场景为第二运行场景,也即低帧率运行场景。
在一些实施例中,上述的步骤S102还可以通过以下步骤实现:
步骤S1021B,基于该运行数据确定该应用客户端是否播放推荐动画。
这里,在应用客户端播放推荐动画,例如游戏客户端播放CG动画时,高帧率能够更好地表现出游戏的品质,或者在视频观看客户端播放视频推荐短片时,高帧率能够提高画面质量,因此即便不满足以上条件也确定为第一运行场景,也即高帧率场景。
步骤S1022B,当基于该运行数据确定播放推荐动画时,确定应用客户端处于第一运行场景。
或者通过以下步骤实现:
步骤S1021C,基于该运行数据确定是否为对局结束,或者是否播放场景切换动画。应用客户端是否处于预设的低帧率场景。
这里,对于游戏客户端来说,对局结束后的切场动画、不同副本之间的切换场景等,这些场景下用户不会沉浸在画面显示上,因此确定为第二运行场景,也即低帧率场景,对于视频观看客户端来说,片头的广告,或者片头、片尾等用户不太关注的部分可以确定为低帧率场景。
步骤S1022C,当基于该运行数据确定对局结束,或者播放场景切换动画时,确定应用客户端处于第二运行场景。
通过上述提供的三种实现方式,能够基于应用客户端的运行数据确定用于客户端当前所处的运行场景,从而基于运行场景对帧率进行动态调整。
在一些实施例中,在步骤S101之前,还可以执行以下步骤:
步骤S001,在应用客户端启动后,确定该应用客户端是否支持帧率调整。
这里,当确定该应用客户端支持帧率调整时,进入步骤S002;当确定该应用客户端不支持帧率调整时,进入步骤S201。
步骤S002,该应用客户端在启动后,请求与该终端的操作系统建立通信连接。
步骤S003,当该通信连接建立完成时,该应用客户端确定该终端是否支持帧率调整。
当确定该终端支持帧率调整时,进入步骤S004;当确定该终端不支持帧率调整时,进入步骤S101。
步骤S004,该应用客户端获取该终端支持的最高帧率。
这里,终端所支持的最高帧率是基于终端的硬件所决定的,可以认为是是在终端出厂时就确定好的。
在应用客户获取到终端支持的最高帧率之后,步骤S103可以通过下述的步骤实现:
步骤S1031,当确定该运行场景为第一运行场景时,将该最高帧率确定为该应用客户端的目标运行帧率;
步骤S1032,当确定该运行场景为第二运行场景时,将预设的运行帧率确定为该应用客户端的目标运行帧率。
这里,预设的运行帧率小于该最高帧率,也就是说当确定运行场景为高帧率场景时,那么将终端硬件所能支持的最高帧率确定为应用客户端的目标运行帧率,以在高帧率场景中,提高播放质量,而当确定运行场景为低帧率场景时,可以将预设的一个相对较低的运行帧率确定为应用客户端的目标运行帧率,从而在不影响用户体验的同时能够降低终端功耗,延长终端待机时长。
在一些实施例中,当应用客户端支持动态帧率调整时,可以是应用客户端根据运行数据实时进行帧率的动态调整,还可以是用户通过应用客户端提供的帧率调整接口,对帧率进行手动调整,如果是应用客户端根据运行数据实时进行帧率的自动调整,那么在步骤S005之后,执行步骤S101及后续步骤。如果应用客户端是基于用户的设置手动调整帧率,那么应用客户端获取到用户设置的目标运行帧率之后,基于该目标运行帧率进行图像输出,以实现对帧率的动态调整,并且基于该动态调整触发终端对屏幕的刷新帧率的动态调整。
步骤S201,该终端的操作系统获取该终端的状态参数。
步骤S202,该终端的操作系统采集应用客户端在预设时长内运行时的图像数据和用户操作数据。
这里,该预设时长是终端在出厂是就预先设置好的,当然终端也可以提供该时长的设置接口,由用户根据自身的需求进行预先设置。该图像数据可以包括客户端在运行时所渲染输出图像的各个像素点的像素值,用户操作数据可以包括用户操作的触发时间、触发位置、压力值等数据。
步骤S203,该终端的操作系统基于该状态参数、该图像数据和该用户操作数据,确定屏幕的目标刷新帧率。
这里,步骤S203在实现时,可以是首先基于图像数据和用户操作数据确定出应用客户端所处的运行场景,进而确定出该运行场景对应的运行帧率,如果该运行帧率低于终端当前的刷新帧率时,将该运行帧率确定为屏幕的目标刷新帧率;当该运行帧率高于终端当前的刷新帧率时,基于该状态参数,确定终端是否能够满足该运行帧率的执行条件,如果终端能够满足该运行帧率的执行条件,将该运行帧率确定为屏幕的目标刷新帧率;如果终端不能满足该运行帧率的执行条件,那么基于状态参数确定出目标刷新帧率。该目标刷新帧率是大于或者等于当前的刷新帧率的。
步骤S204,该终端的操作系统控制该屏幕按照该目标刷新帧率进行刷新显示。
通过上述的步骤S201至步骤S204,即便应用客户端不支持进行帧率的动态调整,终端可以基于应用客户端在运行过程中的画面数据以及用户操作数对应用客户端的运行场景进行实时判断,并基于判定出的运行场景估测出应用客户端对应的运行帧率,从而基于该运行帧率对自身的刷新帧率进行动态调整,从而能够实现在高帧率场景下以高刷新帧率进行屏幕刷新提高用户体验,在低帧率场景下以低帧率进行屏幕刷新,降低终端功耗。
下面,将说明本申请实施例在一个实际的应用场景中的示例性应用。
这里,以应用客户端为游戏客户端为例说明本申请实施例提供的帧率调整方法,在帧率调整方法包括以下步骤:
步骤S501,游戏客户端识别出高帧率场景和低帧率场景,并根据识别出的场景确定目标帧率。
在识别场景时,游戏客户端可以依据用户是否需要频繁的触控操作、是否有复杂动画和是否有镜头的切换转移等,来确定当前是否为用户能够明显感知高帧率的场景,并确定识别出的场景的目标帧率。游戏客户端可以在不同的场景切换时,进行帧率的动态调整。调整的依据可以是识别出的场景,也可以是根据终端的实时运行状。
步骤S502,游戏客户端将识别出的场景以及目标帧率发送给终端。
在实现时,可以在游戏客户端和终端间定义一套交互协议,从而使得游戏客户端把识别出的场景以及目标帧率实时下发给终端。同时当终端运行异常时,如温度过高导致性能下降无法支持高帧率时,终端也可以通过该交互协议通知游戏客户端,游戏客户端根据接收到的信息进行实时帧率调整。
步骤S503,终端接收到游戏客户端发送的帧率调整消息后,实时调整终端的帧率,确保在切换过程中不出现卡顿。
在一些实施例中,当终端当前的运行状态不足以支持当前的帧率,终端可以通过回调接口通知游戏客户端进行帧率的实时下降。
以下对游戏场景的划分及动态帧率策略进行说明。
一、场景划分
根据各个场景下不同帧率对用户实际体验的影响来进行高低帧率场景的划分,在实现时可以根据如下几个因素进行区分。
1、用户是否有操作。
在高帧率模式下,用户的操作能够得到更快的响应,游戏的体验也会更高顺畅,因此在用户有操作的场景需要高帧率支持。
不同的用户操作类型可以对应不同的场景,也就是说不同操作类型对帧率的要求也有区别。如激烈的打斗场景中,用户的操作也会频繁,此时需要有高帧率来提供更快的响应;而对于游戏对局外购买装备等不涉及实时对抗类的场景,用户的操作不会太频繁,此时只需中高帧率即可给用户带来很好的体验。
而在用户完全无操作的情况下,只需要保持较低帧率即可,即不影响用户体验,也能够降低游戏整体功耗。
2、画面是否有运动。
相机高度、位置的改变会影响用户对画面的感知,高帧率能够让相机的改变更加流畅,减少用户的眩晕;人物、道具的移动,当发生快速运动时,高帧率能够让运动在视觉上更加流畅;因此,在相机高度、位置发生改变,或者人物、道具的移动而造成画面切换频繁时,对应高帧率场景,而画面相对静止,或者运动不明显时,保持低帧率即不影响用户体验,也能够降低游戏整体功耗,此时对应低帧率场景。
3、特殊场景。
在特定的场景下,用户有明确的预期,比如对局结束后的切场动画、不同副本之间的切换场景等,这些场景下用户不会沉浸在画面显示上,因此可以切换为低帧率。
有些特殊场景,比如游戏的CG动画播放,高帧率能够更好地表现出游戏的品质,因此即便不满足以上条件也应该保持高帧率。
二、场景识别及下发。
游戏运行过程中,客户端可以根据上述定义的原则,对各个场景的帧率进行判断,实时地标记各个场景的帧率,并下发给终端。
图6为本申请实施例提供的场景划分的实现流程示意图,如图6所示,该流程包括:
步骤S601,判断画面是否运动。
这里,如果确定画面运动,进入步骤S604,确定为高帧率场景,如果确定画面静止,则进入步骤S602,进行进一步判断。
步骤S602,判断是否有用户操作。
这里,确定有用户操作时,进入步骤S604,确定为高帧率场景;确定无用户操作时,进入步骤S603,进行进一步判断。
在本申请实施例中,判断是否有用户操作可以是判断是否有用户操作且用户操作的频率大于一定的次数阈值,如果有用户操作且操作频率大于该次数阈值,确定有用户操作。
步骤S603,确定是否为预设的高帧率特殊场景。
这里,确定为预设的高帧率特殊场景时,进入步骤S604,确定为高帧率场景;确定不为预设的高帧率特殊场景时,进入步骤S605。
步骤S604,确定为高帧率场景。
步骤S605,确定为低帧率场景。
在步骤S601至步骤S605中,为让用户的体验达到最佳,当其中任一条件满足高帧率要求时,都需要识别为高帧率场景。
需要说明的是,在步骤S601至步骤S603中,先判断画面运动再判断用户操作,最后判断特殊场景仅为示例性说明,在实际实现时,画面运动、用户操作以及特殊场景的判断顺序可以随机排列。
游戏客户端完成场景识别后,根据识别出的场景确定目标帧率,并根据目标帧率实时调整画面渲染帧率,然后再实时通知终端进行对应的帧率调整。
在本申请实施例中,游戏客户端除了可以自动识别场景并进行帧率调整,还可以根据用户的实际需求进行动态帧率的调整,另外,当终端运行状态出现异常,如温度过高导致性能下降时,也需要对应地调低整体运行帧率。
当游戏客户端收到终端回传的运行状态异常时,实时降低运行帧率,并将调整结果再实时回传通知到终端。
以下对游戏客户端和终端之间的交互协议进行说明,其中,表1为游戏客户端下发到终端的字段信息:
表1、游戏客户端下发到终端的字段信息
表2、终端回复游戏客户端的字段信息
图7为本申请实施例提供的终端和游戏客户端的交互流程示意图,如图7所示,该交互流程包括:
步骤S701,游戏客户端向终端查询终端是否支持动态帧率。
在实现时,可以调用QeryDynamicFPS接口查询终端是否支持动态帧率,该接口无需输入参数,输出可以是:1、支持或不支持2、支持的版本号。
步骤S702,终端返回动态帧率支持情况。
步骤S703,游戏客户端向终端查询当前支持的最高帧率。
在实现时,可以通过调用QueryTerminalMaxFPS接口向终端查询当前支持的最高帧率。该接口无输入参数,输出参数为终端能够支持的最高帧率。
步骤S704,终端返回当前支持的最高帧率。
步骤S705,游戏客户端向终端请求建立连接。
在实现时,游戏客户端可以通过调用ConnetToTerminal接口来向终端请求建立动态调整帧率的连接通道,输出为成功或失败。
步骤S706,终端完成初始化,并返回已建立连接。
这里,在步骤S701至步骤S706中,游戏开始进行动态帧率调整前和终端进行握手,约定相关协议并建立和保持通信链路。
步骤S707,游戏客户端判断当前的目标帧率,并下发信息到终端。
这里,游戏客户端可以通过调用JudgeTartgetFPS接口,来确定游戏客户端的目标帧率,其中,该接口的输入为游戏的运行数据,输出为目标帧率,在游戏客户端确定出目标帧率后,将目标帧率携带于消息中下发至终端,其中下发信息中的字段如表1所示。
步骤S708,终端接收到游戏客户端发送的信息后,进行动态帧率调整,并把调整结果返回游戏客户端。
这里,终端在接收到如表1所示的消息后,调用AdjustTerminalTargetFPS接口,以调整自身的帧率,也即该接口的输入为如表1所示的信息结构体,输出如表2所示的信息结构体,然后终端再将如表2所示的信息结构体,反馈给游戏客户端。
步骤S709,游戏客户端根据终端反馈的信息,进行帧率反向调整,并把调整结果及当前实时场景信息反馈终端。
这里,游戏客户端在接收到终端发送的如表2所示的信息结构体后,调用AdjustGameTargetFPS接口,再次动态调整目标帧率,其中该接口的输入可以是终端返回的如表2所示的信息结构体和在步骤S707确定的目标帧率TargetFPS,输出为如表1所示的信息结构体,从而实现游戏客户端根据终端返回的调整结果再次动态调整目标帧率,对TargetFPS和终端返回的信息进行综合判断,并实时调整游戏的运行帧率,并返回向终端再次调整结果。
步骤S710,终端接收游戏客户端下发的信息后,进行动态帧率调整。
步骤S711,游戏运行过程中重复8-10的步骤,直到游戏运行结束。
在游戏运行结束,游戏通知终端断开链接。
在游戏运行结束,用户关闭游戏客户端时,游戏客户端可以调用CloseConnect接口以关闭与终端之间的通信连接,该接口无输入参数,输出为成功或失败。
在本申请实施例中,终端实现实时进行动态帧率调整的能力,该帧率调整能够瞬时生效,并且对用户无感。终端接收到游戏客户端调整帧率的请求后,对当前运行状态进行判断,如果温度正常,可以支持游戏客户端的帧率需求,则按游戏客户端下发的请求进行帧率的正常调整。
如果终端当前运行状态出现异常,比如温度过高等,导致性能下降,无法满足游戏高帧率运行的需求,则暂时不调高帧率,并把运行状态通知游戏客户端,让游戏客户端跟随终端进行帧率调整。
通过本申请实施例提供的帧率调整方法,游戏客户端可以动态调整游戏的运行帧率,并且帧率的动态调整可以实时通知终端,让终端跟随游戏的变动实时调整,能够避免游戏调整了帧率,终端的显示帧率和游戏不一致产生的功耗浪费或用户体验受损的情况出现。另外终端可以根据终端的运行状态进行显示帧率的动态实时调整,在保障用户体验的同时可以有效降低功耗,同时当性能不足时也可以实时通知游戏,让游戏客户端配合进行调整,如此通过本申请实施例提供的帧率调整方法,用户可以享受到顺畅的高帧率体验,也避免了终端温度过高时,出现卡顿等异常。
在上述实现方式中,游戏客户端和终端对帧率进行了动态调整,在一些实施例中,可以仅游戏客户端进行动态帧率调整,也即游戏客户端可以不依赖于终端实现动态帧率,也可以获得大部分收益,但终端不跟随进行动态帧率调整,在低帧率场景下,屏幕保持高帧率仍然会带来额外的功耗。
或者在一些实施例中,不需要建立游戏客户端与终端之间的通信连接,此时如果游戏客户端进行了动态帧率切换,终端可以通过GPU的渲染来监测游戏的帧率切换,在游戏客户端切换帧率后终端也能够跟随游戏客户端进行帧率的切换。
亦或者,在一些实施例中,如果游戏客户端未进行动态帧率切换,终端也可以不依赖游戏客户端进行动态帧率调整,此时可以通过实时地采集用户的游戏画面改动以及用户的触控操作,对游戏场景进行实时动态判断,从而区分出高帧率场景和低帧率场景,并进行帧率的动态切换。
下面继续说明本申请实施例提供的帧率调整装置354实施为软件模块的示例性结构,在一些实施例中,如图2所示,存储在存储器350的帧率调整装置354中的软件模块可以是终端300中的帧率调整装置,包括:
第一确定模块3541,用于当终端中的应用客户端支持动态帧率切换时,确定该应用客户端的目标运行帧率;
第一输出模块3542,用于控制该应用客户端按照该目标运行帧率进行图像输出,以对该应用客户端的帧率进行动态调整,该动态调整用于触发该终端对屏幕的刷新帧率进行调整。
第一发送3543,还用于控制所述应用客户端将所述目标运行帧率发送至所述终端的操作系统,以指示所述终端的屏幕按照所述目标运行帧率进行刷新显示。
在一些实施例中,该装置还包括:
第一获取模块,用于在接收到该目标运行帧率后,获取该终端的状态参数;
第一控制模块,用于当基于该状态参数确定该终端满足该目标运行帧率的执行条件且该目标运行帧率小于或者等于预设的刷新帧率阈值时,控制该屏幕按照该目标运行帧率进行刷新显示。
在一些实施例中,该装置还包括:
第二确定模块,用于当基于该状态参数确定该终端不满足该目标运行帧率的执行条件时,基于该状态参数确定屏幕的目标刷新帧率;
第二控制模块,用于控制该屏幕按照该目标刷新帧率进行刷新显示;
第二发送模块,用于将该状态参数和目标刷新帧率发送至该应用客户端。
在一些实施例中,该状态参数包括CPU温度和/或CPU使用率,该装置还包括:
第二获取模块,用于获取目标运行帧率执行条件中包括的温度阈值和/或使用率阈值;
第三确定模块,用于当确定该CPU温度小于该温度阈值和/或该CPU使用率小于该使用率阈值时,确定该终端满足该目标运行帧率的执行条件;
第四确定模块,用于当确定该CPU温度大于或者等于该温度阈值和/或该CPU使用率大于或者等于该使用率阈值时,确定该终端不满足该目标运行帧率的执行条件。
在一些实施例中,该装置还包括:
第二输出模块,用于当基于该状态参数,确定该终端不满足该目标运行帧率的执行条件时,该应用客户端按照该目标刷新帧率进行图像输出;
第三输出模块,用于基于该状态参数,确定该终端满足该目标运行帧率的执行条件时,该应用客户端按照该目标运行帧率进行图像输出。
在一些实施例中,该装置还包括:
第三获取模块,用于获取该应用客户端的目标运行帧率;
第四获取模块,用于当该终端的操作系统确定该目标运行帧率与屏幕的当前刷新帧率不同时,获取该终端的状态参数;
第三控制模块,用于当基于该状态参数确定该终端满足该目标运行帧率的执行条件时,控制该屏幕按照该目标运行帧率进行刷新显示。
在一些实施例中,该第一确定模块,还用于:
当终端中的应用客户端支持动态帧率切换时,获取所述应用客户端在前台运行时的运行数据;
基于所述运行数据确定所述应用客户端的运行场景;
基于所述运行场景确定所述应用客户端的目标运行帧率。
在一些实施例中,该第一确定模块,还用于:
基于该运行数据确定该应用客户端的输出画面中虚拟对象的移动参数和用户的操作频率;
当该移动参数大于第一参数阈值,或者当该操作频率大于第一频率阈值时,确定该应用客户端处于第一运行场景;
当该移动参数小于或者等于该第一参数阈值,且该操作频率小于或者等于第一频率阈值时,确定该应用客户端处于第二运行场景。
在一些实施例中,该第一确定模块,还用于:
当基于该运行数据确定播放推荐动画时,确定该应用客户端处于第一运行场景;或者,
当基于该运行数据确定对局结束时,确定该应用客户端处于第二运行场景,或者,
当基于该运行数据确定播放场景切换动画时,确定该应用客户端处于第二运行场景。
在一些实施例中,该装置还包括:
连接建立模块,用于该应用客户端在启动后,请求与该终端的操作系统建立通信连接;
第五确定模块,用于当该通信连接建立完成时,确定该终端是否支持帧率调整;
第五获取模块,用于当确定该终端支持帧率调整时,获取该终端支持的最高帧率;
第六确定模块,用于基于该最高帧率和预设的场景等级,确定场景等级与运行帧率之间的对应关系。
在一些实施例中,该第一确定模块,还用于:
当确定该运行场景为第一运行场景时,将该最高帧率确定为该应用客户端的目标运行帧率;
当确定该运行场景为第二运行场景时,将预设的运行帧率确定为该应用客户端的目标运行帧率,该预设的运行帧率小于该最高帧率。
在一些实施例中,该装置还包括:
第六获取模块,用于当终端中的应用客户端不支持动态帧率切换时,获取该终端的状态参数;
数据采集模块,用于采集应用客户端在预设时长内运行时的图像数据和用户操作数据;
第七确定模块,用于基于该状态参数、该图像数据和该用户操作数据,确定屏幕的目标刷新帧率;
第四控制模块,用于控制该屏幕按照该目标刷新帧率进行刷新显示。
需要说明的是,本申请实施例装置的描述,与上述方法实施例的描述是类似的,具有同方法实施例相似的有益效果,因此不做赘述。对于本装置实施例中未披露的技术细节,请参照本申请方法实施例的描述而理解。
本申请实施例提供一种存储有可执行指令的存储介质,其中存储有可执行指令,当可执行指令被处理器执行时,将引起处理器执行本申请实施例提供的方法,例如,如图4示出的方法。
在一些实施例中,存储介质可以是计算机可读存储介质,例如,铁电存储器(FRAM,Ferromagnetic Random Access Memory)、只读存储器(ROM,Read Only Memory)、可编程只读存储器(PROM,Programmable Read Only Memory)、可擦除可编程只读存储器(EPROM,Erasable Programmable Read Only Memory)、带电可擦可编程只读存储器(EEPROM,Electrically Erasable Programmable Read Only Memory)、闪存、磁表面存储器、光盘、或光盘只读存储器(CD-ROM,Compact Disk-Read Only Memory)等存储器;也可以是包括上述存储器之一或任意组合的各种设备。
在一些实施例中,可执行指令可以采用程序、软件、软件模块、脚本或代码的形式,按任意形式的编程语言(包括编译或解释语言,或者声明性或过程性语言)来编写,并且其可按任意形式部署,包括被部署为独立的程序或者被部署为模块、组件、子例程或者适合在计算环境中使用的其它单元。
作为示例,可执行指令可以但不一定对应于文件系统中的文件,可以可被存储在保存其它程序或数据的文件的一部分,例如,存储在超文本标记语言(HTML,Hyper TextMarkup Language)文档中的一个或多个脚本中,存储在专用于所讨论的程序的单个文件中,或者,存储在多个协同文件(例如,存储一个或多个模块、子程序或代码部分的文件)中。作为示例,可执行指令可被部署为在一个计算设备上执行,或者在位于一个地点的多个计算设备上执行,又或者,在分布在多个地点且通过通信网络互连的多个计算设备上执行。
Claims (15)
1.一种帧率调整方法,应用于终端,其特征在于,包括:
当终端中的应用客户端支持动态帧率切换时,确定所述应用客户端的目标运行帧率;
所述应用客户端按照所述目标运行帧率进行图像输出,以对所述应用客户端的帧率进行动态调整,所述动态调整用于触发所述终端对屏幕的刷新帧率进行调整;
所述应用客户端将所述目标运行帧率发送至所述终端的操作系统,以指示所述终端的屏幕按照所述目标运行帧率进行刷新显示。
2.根据权利要求1中所述的方法,其特征在于,所述方法还包括:
所述终端的操作系统接收到所述目标运行帧率后,获取所述终端的状态参数;
当基于所述状态参数确定所述终端满足所述目标运行帧率的执行条件且所述目标运行帧率小于或者等于预设的刷新帧率阈值时,控制所述屏幕按照所述目标运行帧率进行刷新显示。
3.根据权利要求2中所述的方法,其特征在于,所述方法还包括:
当基于所述状态参数确定所述终端不满足所述目标运行帧率的执行条件时,所述终端的操作系统基于所述状态参数确定屏幕的目标刷新帧率;
控制所述屏幕按照所述目标刷新帧率进行刷新显示;
所述终端的操作系统将所述状态参数和目标刷新帧率发送至所述应用客户端。
4.根据权利要求2所述的方法,其特征在于,所述状态参数包括CPU温度和/或CPU使用率,所述方法还包括:
获取目标运行帧率执行条件中包括的温度阈值和/或使用率阈值;
当确定所述CPU温度小于所述温度阈值和/或所述CPU使用率小于所述使用率阈值时,确定所述终端满足所述目标运行帧率的执行条件;
当确定所述CPU温度大于或者等于所述温度阈值和/或所述CPU使用率大于或者等于所述使用率阈值时,确定所述终端不满足所述目标运行帧率的执行条件。
5.根据权利要求2中所述的方法,其特征在于,所述方法还包括:
当所述应用客户端基于所述状态参数,确定所述终端不满足所述目标运行帧率的执行条件时,所述应用客户端按照所述目标刷新帧率进行图像输出;
当所述应用客户端基于所述状态参数,确定所述终端满足所述目标运行帧率的执行条件时,所述应用客户端按照所述目标运行帧率进行图像输出。
6.根据权利要求1中所述的方法,其特征在于,在所述应用客户端按照所述目标运行帧率进行图像输出之后,所述方法还包括:
所述终端的操作系统获取所述应用客户端的目标运行帧率;
当所述终端的操作系统确定所述目标运行帧率与屏幕的当前刷新帧率不同时,获取所述终端的状态参数;
当基于所述状态参数确定所述终端满足所述目标运行帧率的执行条件时,控制所述屏幕按照所述目标运行帧率进行刷新显示。
7.根据权利要求1至6任一项中所述的方法,其特征在于,所述当终端中的应用客户端支持动态帧率切换时,确定所述应用客户端的目标运行帧率,包括:
当终端中的应用客户端支持动态帧率切换时,获取所述应用客户端在前台运行时的运行数据;
基于所述运行数据确定所述应用客户端的运行场景;
基于所述运行场景确定所述应用客户端的目标运行帧率。
8.根据权利要求7中所述的方法,其特征在于,所述基于所述运行数据确定所述应用客户端的运行场景,包括:
基于所述运行数据确定所述应用客户端的输出画面中虚拟对象的移动参数和用户的操作频率;
当所述移动参数大于第一参数阈值,或者当所述操作频率大于第一频率阈值时,确定所述应用客户端处于第一运行场景;
当所述移动参数小于或者等于所述第一参数阈值,且所述操作频率小于或者等于第一频率阈值时,确定所述应用客户端处于第二运行场景。
9.根据权利要求7中所述的方法,其特征在于,所述基于所述运行数据确定所述应用客户端的运行场景,包括:
当基于所述运行数据确定播放推荐动画时,确定所述应用客户端处于第一运行场景;或者,
当基于所述运行数据确定对局结束时,确定所述应用客户端处于第二运行场景,或者,
当基于所述运行数据确定播放场景切换动画时,确定所述应用客户端处于第二运行场景。
10.根据权利要求7中所述的方法,其特征在于,所述方法还包括:
所述应用客户端在启动后,请求与所述终端的操作系统建立通信连接;
当所述通信连接建立完成时,所述应用客户端确定所述终端是否支持帧率调整;
当确定所述终端支持帧率调整时,所述应用客户端获取所述终端支持的最高帧率。
11.根据权利要求10中所述的方法,其特征在于,所述基于所述运行场景确定所述应用客户端的目标运行帧率,包括:
当确定所述运行场景为第一运行场景时,将所述最高帧率确定为所述应用客户端的目标运行帧率;
当确定所述运行场景为第二运行场景时,将预设的运行帧率确定为所述应用客户端的目标运行帧率,所述预设的运行帧率小于所述最高帧率。
12.根据权利要求1中所述的方法,其特征在于,所述方法还包括:
当终端中的应用客户端不支持动态帧率切换时,所述终端的操作系统获取所述终端的状态参数;
所述终端的操作系统采集应用客户端在预设时长内运行时的图像数据和用户操作数据;
所述终端的操作系统基于所述状态参数、所述图像数据和所述用户操作数据,确定屏幕的目标刷新帧率;
所述终端的操作系统控制所述屏幕按照所述目标刷新帧率进行刷新显示。
13.一种帧率调整装置,其特征在于,包括:
第一确定模块,用于当终端中的应用客户端支持动态帧率切换时,确定所述应用客户端的目标运行帧率;
第一输出模块,用于控制所述应用客户端按照所述目标运行帧率进行图像输出,以对所述应用客户端的帧率进行动态调整,所述动态调整用于触发所述终端对屏幕的刷新帧率进行调整;
第一发送模块,用于控制所述应用客户端将所述目标运行帧率发送至所述终端的操作系统,以指示所述终端的屏幕按照所述目标运行帧率进行刷新显示。
14.一种帧率调整设备,其特征在于,包括:
存储器,用于存储可执行指令;处理器,用于执行所述存储器中存储的可执行指令时,使得所述帧率调整设备实现权利要求1至12任一项所述的方法。
15.一种计算机可读存储介质,其特征在于,存储有可执行指令,当所述可执行指令被电子设备中的处理器执行时,使得帧率调整设备实现权利要求1至12任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311499852.5A CN117331427B (zh) | 2020-11-09 | 帧率调整方法、装置、设备及计算机可读存储介质 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011242460.7A CN112230758B (zh) | 2020-11-09 | 2020-11-09 | 帧率调整方法、装置、设备及计算机可读存储介质 |
CN202311499852.5A CN117331427B (zh) | 2020-11-09 | 帧率调整方法、装置、设备及计算机可读存储介质 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011242460.7A Division CN112230758B (zh) | 2020-11-09 | 2020-11-09 | 帧率调整方法、装置、设备及计算机可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117331427A true CN117331427A (zh) | 2024-01-02 |
CN117331427B CN117331427B (zh) | 2024-10-22 |
Family
ID=
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094272A (zh) * | 2014-05-14 | 2015-11-25 | 中兴通讯股份有限公司 | 一种终端的硬件刷新率的调节方法及装置 |
CN106227482A (zh) * | 2016-07-25 | 2016-12-14 | 广东小天才科技有限公司 | 一种游戏画面刷新的控制方法及相关设备 |
CN108646906A (zh) * | 2018-03-27 | 2018-10-12 | 广东欧珀移动通信有限公司 | 帧率调整方法、装置、存储介质及智能终端 |
CN110377251A (zh) * | 2019-06-06 | 2019-10-25 | 努比亚技术有限公司 | 一种屏幕刷新率调整方法、终端及计算机可读存储介质 |
CN110795056A (zh) * | 2019-11-08 | 2020-02-14 | Oppo广东移动通信有限公司 | 调节显示参数的方法、装置、终端及存储介质 |
CN111045816A (zh) * | 2019-11-06 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 一种性能优化的方法以及相关装置 |
CN111882626A (zh) * | 2020-08-06 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、服务器及介质 |
US20210012747A1 (en) * | 2018-03-26 | 2021-01-14 | Huawei Technologies Co., Ltd. | Frame rate adjustment method and terminal |
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105094272A (zh) * | 2014-05-14 | 2015-11-25 | 中兴通讯股份有限公司 | 一种终端的硬件刷新率的调节方法及装置 |
CN106227482A (zh) * | 2016-07-25 | 2016-12-14 | 广东小天才科技有限公司 | 一种游戏画面刷新的控制方法及相关设备 |
US20210012747A1 (en) * | 2018-03-26 | 2021-01-14 | Huawei Technologies Co., Ltd. | Frame rate adjustment method and terminal |
CN108646906A (zh) * | 2018-03-27 | 2018-10-12 | 广东欧珀移动通信有限公司 | 帧率调整方法、装置、存储介质及智能终端 |
CN110377251A (zh) * | 2019-06-06 | 2019-10-25 | 努比亚技术有限公司 | 一种屏幕刷新率调整方法、终端及计算机可读存储介质 |
CN111045816A (zh) * | 2019-11-06 | 2020-04-21 | 腾讯科技(深圳)有限公司 | 一种性能优化的方法以及相关装置 |
CN110795056A (zh) * | 2019-11-08 | 2020-02-14 | Oppo广东移动通信有限公司 | 调节显示参数的方法、装置、终端及存储介质 |
CN111882626A (zh) * | 2020-08-06 | 2020-11-03 | 腾讯科技(深圳)有限公司 | 图像处理方法、装置、服务器及介质 |
Also Published As
Publication number | Publication date |
---|---|
EP4239454A4 (en) | 2024-05-01 |
WO2022095673A1 (zh) | 2022-05-12 |
EP4239454A1 (en) | 2023-09-06 |
US20230028898A1 (en) | 2023-01-26 |
US11922906B2 (en) | 2024-03-05 |
CN112230758A (zh) | 2021-01-15 |
CN112230758B (zh) | 2023-11-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112230758B (zh) | 帧率调整方法、装置、设备及计算机可读存储介质 | |
US11500744B2 (en) | Method for primary-backup server switching, and control server | |
EP3382527B1 (en) | Method and apparatus for managing a shared storage system | |
CN106658064B (zh) | 虚拟礼物展示方法及装置 | |
US9906981B2 (en) | Method and system for dynamic regulation and control of Wi-Fi scans | |
CN113556588B (zh) | 反向控制方法、装置、计算机设备和存储介质 | |
US20160205427A1 (en) | User terminal apparatus, system, and control method thereof | |
US20220060607A1 (en) | Method for controlling video playing, computer device and storage medium thereof | |
CN111949239B (zh) | 一种屏幕共享方法、装置、存储介质及终端 | |
CN104866269A (zh) | 一种分屏区域调节方法及终端 | |
US11256464B2 (en) | Communication system, communication device, and computer program | |
CN117331427B (zh) | 帧率调整方法、装置、设备及计算机可读存储介质 | |
CN112616053A (zh) | 直播视频的转码方法、装置及电子设备 | |
US20230195403A1 (en) | Information processing method and electronic device | |
WO2023030292A1 (zh) | 多媒体文件的播放方法和装置 | |
JP6316408B2 (ja) | 情報を表示するための方法およびデバイス | |
JP2016503528A (ja) | 仮想ナビゲーションバーの切り替え制御方法及び装置 | |
CN115469816A (zh) | 存储器的读写切换方法、装置、设备及存储介质 | |
CN107331226A (zh) | 教学信息反馈方法、相应装置、智能教学设备和移动终端 | |
JP6521154B2 (ja) | 通信装置、方法およびプログラム | |
CN118433680A (zh) | 交互控制方法、装置、终端和存储介质 | |
CN111783002A (zh) | 网页数据加载方法、装置、电子设备及存储介质 | |
JP5994898B2 (ja) | 情報処理装置、情報処理装置の制御方法、およびプログラム | |
CN113422990A (zh) | 投影设备工作状态控制方法、装置、控制器和存储介质 | |
CN117749923A (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 |