CN110798738B - 帧率控制方法、装置、终端及存储介质 - Google Patents
帧率控制方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN110798738B CN110798738B CN201810861047.5A CN201810861047A CN110798738B CN 110798738 B CN110798738 B CN 110798738B CN 201810861047 A CN201810861047 A CN 201810861047A CN 110798738 B CN110798738 B CN 110798738B
- Authority
- CN
- China
- Prior art keywords
- frame rate
- frames
- target
- video pictures
- frame
- 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
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N21/00—Selective content distribution, e.g. interactive television or video on demand [VOD]
- H04N21/40—Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
- H04N21/43—Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
- H04N21/44—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
- H04N21/4402—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display
- H04N21/440281—Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs involving reformatting operations of video signals for household redistribution, storage or real-time display by altering the temporal resolution, e.g. by frame skipping
Abstract
本申请公开了一种帧率控制方法、装置、终端及存储介质,属于终端技术领域。所述方法包括:获取目标应用程序在指定时段内的n帧视频画面,获取n帧视频画面对应的帧率差异值,根据预设对应关系将与帧率差异值对应的帧率确定为目标帧率,根据目标帧率对目标应用程序中的待显示画面进行处理。本申请实施例通过用于指示n帧视频画面在显示时的帧率稳定性的帧率差异值,确应与该帧率差异值对应的目标帧率,以便在视频播放过程中能够动态的根据视频画面的实际情况对帧率进行调整,避免画面抖动,提高视频画面的流畅性。
Description
技术领域
本申请实施例涉及终端技术领域,特别涉及一种帧率控制方法、装置、终端及存储介质。
背景技术
随着视频技术的发展,视频在播放时所采用的帧率越来越高,例如,对于人眼来说,如果视频的帧率高于24帧/秒时,视频画面的视觉效果会是比较流畅的效果。但是,对于一些快速变化的视频画面,如足球比赛、竞技游戏时,如果仍以24帧/秒左右的帧率进行播放,则会导致视频画面的明显抖动,流畅性差。
针对这类问题,相关技术中采取更高帧率进行视频播放,如60帧/秒或120帧/秒,从而提高视频播放的流畅性。
发明内容
本申请实施例提供了一种帧率控制方法、装置、终端及存储介质,可以用于解决相关技术中视频播放时帧率稳定性较差导致视频画面抖动的问题。技术方案如下:
根据本申请实施例的第一方面,提供了一种帧率控制方法,用于终端中,所述方法包括:
获取目标应用程序在指定时段内的n帧视频画面,所述n为大于1的正整数;
获取所述n帧视频画面对应的帧率差异值,所述帧率差异值用于指示所述n帧视频画面在显示时的帧率稳定性;
根据预设对应关系将与所述帧率差异值对应的帧率确定为目标帧率,所述预设对应关系包括帧率差异值与帧率之间的对应关系;
根据所述目标帧率对所述目标应用程序中的待显示画面进行处理。
根据本申请实施例的第二方面,提供了一种帧率控制装置,用于终端中,所述装置包括:
第一获取模块,用于获取目标应用程序在指定时段内的n帧视频画面,所述n为大于1的正整数;
第二获取模块,用于获取所述n帧视频画面对应的帧率差异值,所述帧率差异值用于指示所述n帧视频画面在显示时的帧率稳定性;
确定模块,用于根据预设对应关系将与所述帧率差异值对应的帧率确定为目标帧率,所述预设对应关系包括帧率差异值与帧率之间的对应关系;
处理模块,用于根据所述目标帧率对所述目标应用程序中的待显示画面进行处理。
根据本申请实施例的第三方面,提供了一种终端,所述终端包括处理器和存储器,所述存储器中存储有至少一条指令,所述指令由所述处理器加载并执行以实现如本申请第一方面所述的帧率控制方法。
根据本申请实施例的第四方面,提供了一种计算机可读存储介质,所述存储介质中存储有至少一条指令,所述指令由处理器加载并执行以实现如本申请第一方面所述的帧率控制方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
通过获取目标应用程序在指定时段内的n帧视频画面,获取n帧视频画面对应的帧率差异值,由于帧率差异值用于指示n帧视频画面在显示时的帧率稳定性,以便在视频播放过程中终端能够动态的根据视频帧的实际情况将当前帧率调整为与帧率差异值对应的帧率确定为目标帧率,根据目标帧率对目标应用程序中的待显示画面进行处理,避免画面抖动,提高视频画面的流畅性。
附图说明
图1是本申请一个示例性实施例所提供的终端的结构示意图;
图2是本申请一个示例性实施例提供的帧率控制方法的流程图;
图3是本申请另一个示例性实施例提供的帧率控制方法的流程图;
图4是本申请另一个示例性实施例所提供的终端的结构示意图;
图5是本申请另一个示例性实施例提供的帧率控制方法的流程图;
图6是本申请一个实施例提供的帧率控制装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
应用程序包括多个图层,比如视频播放器应用程序下至少包括用于显示视频内容的视频画面图层、用于显示用户界面控件(暂停按键、播放进度条和快进按键等)或者广告的UI图层和用于显示弹幕内容的弹幕图层。
在移动终端图层绘制、合成和刷新显示的流程中,存在3种帧率:绘制帧率、合成帧率和刷新率。
其中,绘制帧率为图层绘制完成后,触发图层合成模块合成的帧率,可以理解为单位时间(例如,1秒钟)绘制图层的次数。图层的绘制帧率为该图层单位时间内被触发绘制的次数。
合成帧率为把把一个应用程序下绘制的至少二个图层的图像合成为一个待显示画面的帧率(当前运行了一个应用程序升温场景),可以理解为单位时间合成待显示画面的帧数。
刷新率为移动终端显示屏显示画面刷新的帧率。一般,显示屏会以60Hz的刷新率刷新。
首先,对本申请实施例涉及到的一些名词进行解释:
安卓操作系统:由美国谷歌公司出品的一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。
应用程序:简称应用,在安卓操作系统中,一个应用程序通常包括至少一个程序组件。程序组件分为四种:活动(英文:Activity)组件、服务(英文:Service)组件、内容提供者(英文:Content Provider)组件和广播接收器(英文:Broadcast Receiver)组件。
活动组件:安卓应用程序中负责与用户交互的组件,它为安卓应用程序提供可视化的用户界面。一个安卓应用程序可以包括零到多个活动组件。
内容提供者组件:安卓应用程序中用于为其它应用或者当前应用中的其它组件提供数据的组件,比如:铃声、壁纸、电话本等。它能够对各种格式的数据进行封装,以标准的形式提供给其它应用或者组件进行使用。
意图(英文:Intent)消息:安卓应用程序中实现各项程序组件之间进行通讯的一种消息,各项程序组件可以是同一应用程序中的不同组件,也可以是不同应用程序中的不同组件。Intent消息负责对应用程序中一次操作的动作、动作涉及数据、附加数据进行描述,安卓操作系统根据该Intent消息的描述,负责找到对应的程序组件,将Intent消息传递给调用的程序组件,并完成程序组件的调用。
系统UI(User Interface,用户界面)组件:在安卓操作系统中负责与用户交互的组件,它为安卓操作系统提供可视化的用户界面。
在对本申请实施例进行解释说明之前,先对本申请实施例的应用场景进行说明。图1示出了本申请一个示例性实施例所提供的终端的结构示意图。
该终端100是安装有目标应用程序的电子设备。该目标应用程序是系统程序或者第三方应用程序。其中,第三方应用程序是除了用户和操作系统之外的第三方制作的应用程序。
该终端100是具有通讯功能的电子设备。比如,该终端为手机。
可选的,该终端100中包括:处理器120和存储器140。
处理器120可以包括一个或者多个处理核心。处理器120利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行终端100的各种功能和处理数据。可选的,处理器120可以采用数字信号处理(Digital Signal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable LogicArray,PLA)中的至少一种硬件形式来实现。处理器120可集成中央处理器(CentralProcessing Unit,CPU)、图像处理器(Graphics Processing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。
存储器140可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
请参考图2,其示出了本申请一个示例性实施例提供的帧率控制方法的流程图。本实施例以该帧率控制方法应用于图1所示出的终端中来举例说明。该帧率控制方法包括:
步骤201,获取目标应用程序在指定时段内的n帧视频画面,n为大于1的正整数。
该目标应用程序是具有播放视频帧功能的应用程序。该目标应用程序可以是视频播放应用程序,也可以是游戏应用程序。比如,该目标应用程序包括虚拟现实应用程序、三维地图程序、军事仿真程序、第三人称射击游戏(Third-Personal Shooting Game,TPS)、第一人称射击游戏(First-person shooting game,FPS)、MOBA游戏、多人枪战类生存游戏中的任意一种。
当终端检测到处于前台运行的应用程序为目标应用程序时,获取目标应用程序在指定时段内的n帧视频画面。
可选的,终端采用主动轮询的方式监控前台运行活动,根据前台运行活动来确定是否产生应用程序运行事件,当产生应用程序运行事件时确定应用程序运行事件对应的应用程序,即此时处于前台运行状态的应用程序。
其中,活动是包含一个或多个用户界面的组件,用于实现与用户之间的交互,每个应用程序可以包括多个活动,每个活动对应一种用户界面。前台运行活动是位于最上层的用户界面相对应的组件。最上层的用户界面是用户在使用终端时在屏幕上看见的用户界面。
以操作系统为安卓操作系统为例,活动是可以层叠的,每当启动一个新的活动,新的活动就会覆盖在原活动之上;使用活动栈存放启动的活动,活动栈是一种后进先出的数据结构,在默认情况下,每启动一个活动,该活动就会在活动栈中入栈,并处于栈顶位置,处于栈顶位置的活动是前台运行活动。当前台运行活动发生变化时,活动栈中处于栈顶位置的活动也会发生变化。
需要说明的是,除了新的活动会位于栈顶,将一个旧的活动切换到前台运行时,该旧的活动也会重新移动到栈顶。
指定时段为终端默认设置的,或者是用户自定义设置的。指定时段为帧率的动态调整周期,可根据实际需求进行设定。比如,指定时段为1秒,若终端的屏幕刷新频率为60Hz,则终端获取目标应用程序在1秒内的60帧视频画面。
步骤202,获取n帧视频画面对应的帧率差异值,帧率差异值用于指示n帧视频画面在显示时的帧率稳定性。
终端获取n帧视频画面对应的帧率差异值。
可选的,帧率差异值为n帧视频画面各自对应的帧率的标准差,帧率差异值用于指示n帧视频画面各自对应的帧率的离散程度。
可选的,帧率差异值越大,用于指示n帧视频画面在显示时的帧率稳定性越差;帧率差异值越小,用于指示n帧视频画面在显示时的帧率稳定性越高。
步骤203,根据预设对应关系将与帧率差异值对应的帧率确定为目标帧率,预设对应关系包括帧率差异值与帧率之间的对应关系。
终端根据预设对应关系获取与帧率差异值对应的帧率,将该帧率确定为目标帧率。
预设对应关系是终端默认设置的,或者是用户自定义设置的。终端中存储有帧率差异值与帧率之间的预设对应关系。
在一种可能的实现方式中,该预设对应关系包括:当帧率差异值小于或者等于第一阈值时,该帧率差异值对应的帧率为第一指定帧率;当帧率差异值大于第一阈值且小于第二阈值时,该帧率差异值对应的帧率为第二指定帧率;当帧率差异值大于第二阈值时,该帧率差异值对应的帧率为第三指定帧率;其中,第一阈值小于第二阈值,第一指定帧率小于第二指定帧率,第二指定帧率小于第三指定帧率。
需要说明的是,本实施例对第一阈值、第二阈值、第一指定帧率、第二指定帧率和第三指定帧率的取值均不加以限定。
在另一种可能的实现方式中,该预设对应关系包括:当帧率差异值大于指定差异阈值时,该帧率差异值对应的帧率为指定帧率;当帧率差异值小于或者等于指定差异阈值时,该帧率差异值对应的帧率为第n帧视频画面的帧率。本实施例对帧率差异值与帧率之间的预设对应关系的设置方式不加以限定。下面仅以第二种可能的实现方式为例进行说明。
可选的,终端判断帧率差异值是否大于指定差异阈值,当帧率差异值大于指定差异阈值时,将指定帧率确定为目标帧率;当帧率差异值小于或者等于指定差异阈值时,将第n帧视频画面的帧率确定为目标帧率。
示意性的,指定差异阈值是终端默认设置的,或者是根据实际经验自定义设置的。比如,指定差异阈值为2。需要说明的是,本实施例对指定差异阈值和指定帧率的取值均不加以限定。
步骤204,根据目标帧率对目标应用程序中的待显示画面进行处理。
可选的,目标帧率包括绘制帧率、合成帧率和刷新帧率中的至少一种。
绘制帧率为单位时间段内绘制图层的次数。绘制帧率为单一图层对应的绘制帧率。单一图层对应的绘制帧率为同一图层名称的图层在指定时段被触发绘制的次数。比如,单位时间段为1秒。
合成帧率为单位时间段内合成视频画面的帧数。即合成帧率为至少两个绘制的图层合称为一个视频画面的帧率。
刷新帧率为单位时间段内终端的屏幕中视频画面被刷新的帧数。刷新帧率也称为屏幕刷新率或者刷新率。通常,终端的显示屏以60Hz的刷新帧率进行刷新处理。
终端根据目标帧率对目标应用程序中的待显示画面进行处理,包括:终端以目标帧率对待显示画面进行图层绘制处理、图层合成处理和刷新处理中的一种。
综上所述,本实施例通过获取目标应用程序在指定时段内的n帧视频画面,获取n帧视频画面对应的帧率差异值,由于帧率差异值用于指示n帧视频画面在显示时的帧率稳定性,以便在视频播放过程中终端能够动态的根据视频帧的实际情况将当前帧率调整为与帧率差异值对应的帧率确定为目标帧率,根据目标帧率对目标应用程序中的待显示画面进行处理,避免画面抖动,提高视频画面的流畅性。
需要说明的是,上述步骤202即终端获取n帧视频画面对应的帧率差异值,包括但不限于以下两种可能的实现方式。
在一种可能的实现方式中,上述步骤202可被替换实现成为如下几个步骤:获取n帧视频画面各自对应的帧率,将n帧视频画面各自对应的帧率的平均数确定为帧率平均值,计算n帧视频画面各自对应的平方参数的算数平均数,视频画面的平方参数为视频画面的帧率与帧率平均值的差值,将算数平均值的平方根确定为n帧视频画面对应的帧率差异值。
终端在获取到n帧视频画面各自对应的帧率之后,计算n帧视频画面中每个视频画面的帧率与帧率平均值的差值,将该差值确定为该视频画面的平方参数。对n帧视频画面各自对应的平方参数求平均得到算数平均数。
示意性的,终端通过如下公式计算n帧视频画面对应的帧率差异值σ:
但是上述计算帧率差异值的算法对应的空间复杂度和时间复杂度均与n的取值有关,即空间复杂度和时间复杂度均为O(n),对于实时性极为敏感的视频而言通过上述算法计算帧率差异值的效率较低。为此,本申请实施例提供了一种更加高效,更省空间的改进算法。
在另一种可能的实现方式中,上述步骤202可被替换实现成为如下几个步骤,如图3所示:
步骤301,获取n帧视频画面中的第n帧视频画面的帧率。
终端获取当前帧视频画面的帧率,当前帧视频画面的帧率即为n帧视频画面中的第n帧视频画面的帧率。
步骤302,根据第n帧视频画面的帧率,采用指定标准差算法计算第n帧视频画面对应的标准差,指定标准差算法为空间复杂度和时间复杂度均与n的取值无关的用于计算标准差的在线算法。
指定标准差算法为用于计算标准差的在线算法,该指定标准差算法对应的空间复杂度和时间复杂度均与n的取值无关,即该指定标准差算法对应的空间复杂度和时间复杂度均为O(1)。
终端根据第n帧视频画面的帧率,采用指定标准差算法计算第n帧视频画面对应的标准差,包括:通过如下公式计算得到第n帧视频画面对应的标准差σn:
步骤303,将第n帧视频画面对应的标准差确定为n帧视频画面对应的帧率差异值。
终端计算得到第n帧视频画面对应的标准差,将该标准差确定为n帧视频画面对应的帧率差异值。
综上所述,本实施例还通过获取n帧视频画面中的第n帧视频画面的帧率,根据第n帧视频画面的帧率采用指定标准差算法计算第n帧视频画面对应的标准差,将第n帧视频画面对应的标准差确定为n帧视频画面对应的帧率差异值;由于指定标准差算法为空间复杂度和时间复杂度均与所述n的取值无关的用于计算标准差的在线算法,指定标准差算法与传统的标准差算法相比,大大降低了空间复杂度和时间复杂度,提高了计算帧率差异值的计算效率
请参考图4,终端包括目标应用程序41、后台性能服务42和安卓显示子系统43。下面仅以目标应用程序41为游戏应用程序为例进行说明。
1、目标应用程序41用于当目标应用程序41处于前台运行时,与后台性能服务42进行连接。
2、后台性能服务42用于获取目标应用程序41对应的目标图层,将目标图层注册到安卓显示子系统43中。
3、安卓显示子系统43用于监控该目标图层对应的帧率,通过本申请实施例提供的帧率控制方法确定目标应用程序41中所显示的视频画面的帧率稳定性,若帧率稳定性为达标则向后台性能服务42通知帧率稳定性差。
请参考图5,其示出了本申请一个示例性实施例提供的帧率控制方法的流程图。本实施例以该帧率控制方法应用于图4所示出的终端中来举例说明。该帧率控制方法包括:
步骤501,当目标应用程序处于前台运行时,目标应用程序与后台性能服务进行连接。
可选的,当目标应用程序处于前台运行时,目标应用程序采用套接字(英文:Socket)方式与后台性能服务的Socket接口建立连接。目标应用程序的应用场景相关的数据即可以通过该连接传输给后台性能服务。
目标应用程序的应用场景相关的数据至少包括目标应用程序的包名(英文:Package Name)。应用程序的包名用于唯一标识该应用程序。
步骤502,后台性能服务根据目标应用程序的包名从预置的配置文件中解析出目标图层。
后台性能服务获取处于前台运行的目标应用程序的包名,根据目标应用程序的包名从预置的配置文件中解析出目标图层。目标图层为同一图层名称的图层。
可选的,当目标应用程序为游戏应用程序时,目标图层为前景游戏图层。
步骤503,后台性能服务将目标图层注册到安卓显示子系统中。
可选的,预先在安卓显示子系统中增加一个容器,该容器用于存储目标图层的图层名称。后台性能服务通过进程间通信方式将目标图层填进该容器中。比如,进程间通信方式为binder调用方式。
步骤504,安卓显示子系统获取在指定时段内目标图层对应的n帧视频画面。
安卓显示子系统根据目标图层的图层名标,对目标图层进行监控。安卓显示子系统获取该目标图层在指定时段内对应的n帧视频画面。
步骤505,安卓显示子系统获取n帧视频画面对应的帧率差异值,帧率差异值用于指示n帧视频画面在显示时的帧率稳定性。
安卓显示子系统通过上述提供的指定标准差算法计算得到n帧视频画面对应的帧率差异值。需要说明的是,安卓显示子系统获取n帧视频画面对应的帧率差异值的过程可参考上述实施例中的计算过程,在此不再赘述。
步骤506,安卓显示子系统判断帧率差异值是否大于指定差异阈值。
安卓显示子系统判断帧率差异值是否大于指定差异阈值,当帧率差异值大于指定差异阈值时用于指示n帧视频画面在显示时的帧率稳定性差,执行步骤507;当帧率差异值小于或者等于指定差异阈值时用于指示n帧视频画面在显示时的帧率稳定性好,结束进程。
步骤507,当帧率差异值大于指定差异阈值时,安卓显示子系统向后台性能服务发送第一通知消息,该第一通知消息用于指示帧率稳定性差。
当帧率差异值大于指定差异阈值时,安卓显示子系统生成第一通知消息,该第一通知消息用于指示帧率稳定性差;安卓显示子系统向后台性能服务发送第一通知消息。
步骤508,后台性能服务在接收到第一通知消息时,采用预置的帧率稳定性策略获取目标帧率。
对应的,后台性能服务接收安卓显示子系统发送的第一通知消息。后台性能服务获取预置的帧率稳定性策略,根据帧率稳定性策略获取目标帧率。
可选的,后台性能服务将指定帧率确定为所述目标帧率,该指定帧率大于第n帧视频画面的帧率。
可选的,对于不同的芯片平台,该目标帧率为图形处理器(Graphics Proce ssingUnit,GPU)对应的帧率或者CPU对应的帧率。
步骤509,后台性能服务根据目标帧率对目标图层对应的待显示画面进行处理。
后台性能服务根据目标帧率对目标图层对应的待显示画面进行处理,包括:后台性能服务以目标帧率对目标图层对应的待显示画面进行图层绘制处理和/或图层合成处理。
可选的,后台性能服务根据目标帧率对目标图层对应的待显示画面进行处理,包括:后台性能服务向安卓显示子系统发送目标帧率,通过安卓显示子系统以目标帧率对目标图层对应的待显示画面进行刷新处理。
综上所述,本申请实施例还通过当目标应用程序处于前台运行时,目标应用程序与后台性能服务进行连接;后台性能服务根据目标应用程序的包名从预置的配置文件中解析出目标图层;后台性能服务将目标图层注册到安卓显示子系统中;安卓显示子系统获取在指定时段内目标图层对应的n帧视频画面,使得安卓显示子系统可以目标图层对应的帧率稳定性,不依赖于目标应用程序对应的第三方服务器,进一步保证了帧率稳定性的有效控制。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请一个实施例提供的帧率控制装置的结构示意图。该帧率控制装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的终端的全部或一部分,该帧率控制装置包括:第一获取模块610、第二获取模块620、确定模块630和处理模块640。
第一获取模块610,用于获取目标应用程序在指定时段内的n帧视频画面,n为大于1的正整数;
第二获取模块620,用于获取n帧视频画面对应的帧率差异值,帧率差异值用于指示n帧视频画面在显示时的帧率稳定性;
确定模块630,用于根据预设对应关系将与帧率差异值对应的帧率确定为目标帧率,预设对应关系包括帧率差异值与帧率之间的对应关系;
处理模块640,用于根据目标帧率对目标应用程序中的待显示画面进行处理。
可选的,第二获取模块620,还用于获取n帧视频画面中的第n帧视频画面的帧率;根据第n帧视频画面的帧率,采用指定标准差算法计算第n帧视频画面对应的标准差,指定标准差算法为空间复杂度和时间复杂度均与n的取值无关的用于计算标准差的在线算法;将第n帧视频画面对应的标准差确定为n帧视频画面对应的帧率差异值。
可选的,第二获取模块620,还用于通过如下公式计算得到第n帧视频画面对应的标准差σn:
可选的,第二获取模块620,还用于获取n帧视频画面各自对应的帧率;将n帧视频画面各自对应的帧率的平均数确定为帧率平均值;计算n帧视频画面各自对应的平方参数的算数平均数,视频画面的平方参数为视频画面的帧率与帧率平均值的差值;将算数平均值的平方根确定为n帧视频画面对应的帧率差异值。
可选的,确定模块630,还用于当帧率差异值大于指定差异阈值时,将指定帧率确定为目标帧率;当帧率差异值小于或者等于指定差异阈值时,将第n帧视频画面的帧率确定为目标帧率。
可选的,终端包括后台性能服务和安卓显示子系统,第一获取模块610,还用于通过当目标应用程序处于前台运行时,目标应用程序与后台性能服务进行连接;后台性能服务根据目标应用程序的包名从预置的配置文件中解析出目标图层;后台性能服务将目标图层注册到安卓显示子系统中;安卓显示子系统获取在指定时段内目标图层对应的n帧视频画面。
可选的,处理模块640,还用于通过后台性能服务以目标帧率对目标图层对应的待显示画面进行图层绘制处理和/或图层合成处理;和/或,安卓显示子系统以目标帧率对目标图层对应的待显示画面进行刷新处理。
可选的,目标帧率包括绘制帧率、合成帧率和刷新帧率中的至少一种,绘制帧率为单位时间段内绘制图层的次数,合成帧率为单位时间段内合成视频画面的帧数,刷新帧率为单位时间段内终端的屏幕中视频画面被刷新的帧数。
相关细节可结合参考图2至图5所示的方法实施例。其中,第一获取模块610和第二获取模块620还用于实现上述方法实施例中其他任意隐含或公开的与获取步骤相关的功能;确定模块630还用于实现上述方法实施例中其他任意隐含或公开的与确定步骤相关的功能;处理模块640还用于实现上述方法实施例中其他任意隐含或公开的与处理步骤相关的功能。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的帧率控制方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例所述的帧率控制方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的帧率控制方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (9)
1.一种帧率控制方法,其特征在于,用于终端中,所述方法包括:
获取目标应用程序在指定时段内的n帧视频画面,n为大于1的正整数;
获取所述n帧视频画面对应的帧率差异值,所述帧率差异值用于指示所述n帧视频画面在显示时的帧率稳定性;
根据预设对应关系将与所述帧率差异值对应的帧率确定为目标帧率,所述预设对应关系包括帧率差异值与帧率之间的对应关系;
根据所述目标帧率对所述目标应用程序中的待显示画面进行处理;
其中,所述获取所述n帧视频画面对应的帧率差异值,包括:
获取所述n帧视频画面中的第n帧视频画面的所述帧率;
根据所述第n帧视频画面的所述帧率,通过如下公式计算得到所述第n帧视频画面对应的标准差σn:
将所述第n帧视频画面对应的标准差确定为所述n帧视频画面对应的所述帧率差异值。
2.根据权利要求1所述的方法,其特征在于,所述获取所述n帧视频画面对应的帧率差异值,包括:
获取所述n帧视频画面各自对应的所述帧率;
将所述n帧视频画面各自对应的所述帧率的平均数确定为帧率平均值;
计算所述n帧视频画面各自对应的平方参数的算数平均数,所述视频画面的平方参数为所述视频画面的所述帧率与所述帧率平均值的差值;
将所述算数平均值的平方根确定为所述n帧视频画面对应的所述帧率差异值。
3.根据权利要求1所述的方法,其特征在于,所述根据预设对应关系将与所述帧率差异值对应的帧率确定为目标帧率,包括:
当所述帧率差异值大于指定差异阈值时,将指定帧率确定为所述目标帧率;
当所述帧率差异值小于或者等于所述指定差异阈值时,将所述第n帧视频画面的帧率确定为所述目标帧率。
4.根据权利要求1所述的方法,其特征在于,所述终端包括后台性能服务和安卓显示子系统,所述获取目标应用程序在指定时段内的n帧视频画面,包括:
当所述目标应用程序处于前台运行时,所述目标应用程序与所述后台性能服务进行连接;
所述后台性能服务根据所述目标应用程序的包名从预置的配置文件中解析出目标图层;
所述后台性能服务将所述目标图层注册到所述安卓显示子系统中;
所述安卓显示子系统获取在所述指定时段内所述目标图层对应的所述n帧视频画面。
5.根据权利要求4所述的方法,其特征在于,所述根据所述目标帧率对所述目标应用程序中的待显示画面进行处理,包括:
所述后台性能服务以所述目标帧率对所述目标图层对应的所述待显示画面进行图层绘制处理和/或图层合成处理;和/或,
所述安卓显示子系统以所述目标帧率对所述目标图层对应的所述待显示画面进行刷新处理。
6.根据权利要求1至5任一所述的方法,其特征在于,所述目标帧率包括绘制帧率、合成帧率和刷新帧率中的至少一种,所述绘制帧率为单位时间段内绘制图层的次数,所述合成帧率为所述单位时间段内合成所述视频画面的帧数,所述刷新帧率为所述单位时间段内所述终端的屏幕中所述视频画面被刷新的帧数。
7.一种帧率控制装置,其特征在于,用于终端中,所述装置包括:
第一获取模块,用于获取目标应用程序在指定时段内的n帧视频画面,n为大于1的正整数;
第二获取模块,用于获取所述n帧视频画面对应的帧率差异值,所述帧率差异值用于指示所述n帧视频画面在显示时的帧率稳定性;
确定模块,用于根据预设对应关系将与所述帧率差异值对应的帧率确定为目标帧率,所述预设对应关系包括帧率差异值与帧率之间的对应关系;
处理模块,用于根据所述目标帧率对所述目标应用程序中的待显示画面进行处理;
第二获取模块,还用于获取所述n帧视频画面中的第n帧视频画面的所述帧率;
根据所述第n帧视频画面的所述帧率,通过如下公式计算得到所述第n帧视频画面对应的标准差σn:
8.一种终端,其特征在于,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至6任一所述的帧率控制方法。
9.一种计算机可读存储介质,其特征在于,所述可读存储介质上存储有程序指令,所述程序指令被处理器执行时实现如权利要求1至6任一所述的帧率控制方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810861047.5A CN110798738B (zh) | 2018-08-01 | 2018-08-01 | 帧率控制方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810861047.5A CN110798738B (zh) | 2018-08-01 | 2018-08-01 | 帧率控制方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110798738A CN110798738A (zh) | 2020-02-14 |
CN110798738B true CN110798738B (zh) | 2022-01-28 |
Family
ID=69424986
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810861047.5A Active CN110798738B (zh) | 2018-08-01 | 2018-08-01 | 帧率控制方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110798738B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111991807A (zh) * | 2020-07-06 | 2020-11-27 | 广州西山居世游网络科技有限公司 | 精确监控游戏fps波动的方法、装置及可读介质 |
CN112672149B (zh) * | 2020-12-15 | 2022-10-11 | 广州博冠信息科技有限公司 | 一种视频处理方法、装置、存储介质及服务器 |
CN113242396A (zh) * | 2021-01-27 | 2021-08-10 | 北京翔云颐康科技发展有限公司 | 回放视频的方法及装置 |
CN113391684A (zh) * | 2021-05-21 | 2021-09-14 | 北京小米移动软件有限公司 | 温度控制方法、温度控制装置及存储介质 |
CN113781949B (zh) * | 2021-09-26 | 2023-10-27 | Oppo广东移动通信有限公司 | 图像显示方法、显示驱动芯片、显示屏模组及终端 |
CN114115773A (zh) * | 2021-10-20 | 2022-03-01 | 杭州逗酷软件科技有限公司 | 帧率调节方法、装置、存储介质及终端设备 |
CN114025239A (zh) * | 2021-11-08 | 2022-02-08 | 桂林电子科技大学 | 一种多媒体帧的处理方法及装置 |
CN114157824B (zh) * | 2021-11-29 | 2023-08-18 | 联想(北京)有限公司 | 控制方法及电子设备 |
CN117234343B (zh) * | 2023-11-16 | 2024-02-02 | 山东经鼎智能科技有限公司 | 一种XR多终端协同PaaS平台 |
CN117499739A (zh) * | 2024-01-02 | 2024-02-02 | 腾讯科技(深圳)有限公司 | 帧率控制方法、装置、计算机设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1309193A4 (en) * | 2000-08-10 | 2005-09-28 | Sony Corp | DEVICE AND METHOD FOR PROCESSING VIDEO SIGNALS |
CN102215429A (zh) * | 2010-04-01 | 2011-10-12 | 安凯(广州)微电子技术有限公司 | 一种用于移动电视的录制方法 |
CN104679649A (zh) * | 2013-11-29 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种软件流畅度测试方法和测试装置 |
CN105100675A (zh) * | 2015-09-11 | 2015-11-25 | Tcl集团股份有限公司 | 一种终端视频通信的质量调节方法及系统 |
CN105791699A (zh) * | 2016-04-26 | 2016-07-20 | 惠州Tcl移动通信有限公司 | 一种照相机拍摄帧率的调节方法、系统和移动终端 |
CN106375772A (zh) * | 2016-08-29 | 2017-02-01 | 北京小米移动软件有限公司 | 视频播放方法及装置 |
CN106817588A (zh) * | 2017-02-06 | 2017-06-09 | 网宿科技股份有限公司 | 转码控制方法及装置、视频直播方法及系统 |
CN106919358A (zh) * | 2017-03-10 | 2017-07-04 | 广东欧珀移动通信有限公司 | 一种移动终端的显示控制方法、装置及移动终端 |
CN107589998A (zh) * | 2017-08-31 | 2018-01-16 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100703740B1 (ko) * | 2004-10-21 | 2007-04-05 | 삼성전자주식회사 | 다 계층 기반의 모션 벡터를 효율적으로 부호화하는 방법및 장치 |
CN103778656B (zh) * | 2014-02-12 | 2018-09-07 | 腾讯科技(深圳)有限公司 | 一种图像渲染方法、装置及电子设备 |
CN106657680A (zh) * | 2017-03-10 | 2017-05-10 | 广东欧珀移动通信有限公司 | 一种移动终端帧率的控制方法、装置及移动终端 |
-
2018
- 2018-08-01 CN CN201810861047.5A patent/CN110798738B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP1309193A4 (en) * | 2000-08-10 | 2005-09-28 | Sony Corp | DEVICE AND METHOD FOR PROCESSING VIDEO SIGNALS |
CN102215429A (zh) * | 2010-04-01 | 2011-10-12 | 安凯(广州)微电子技术有限公司 | 一种用于移动电视的录制方法 |
CN104679649A (zh) * | 2013-11-29 | 2015-06-03 | 腾讯科技(深圳)有限公司 | 一种软件流畅度测试方法和测试装置 |
CN105100675A (zh) * | 2015-09-11 | 2015-11-25 | Tcl集团股份有限公司 | 一种终端视频通信的质量调节方法及系统 |
CN105791699A (zh) * | 2016-04-26 | 2016-07-20 | 惠州Tcl移动通信有限公司 | 一种照相机拍摄帧率的调节方法、系统和移动终端 |
CN106375772A (zh) * | 2016-08-29 | 2017-02-01 | 北京小米移动软件有限公司 | 视频播放方法及装置 |
CN106817588A (zh) * | 2017-02-06 | 2017-06-09 | 网宿科技股份有限公司 | 转码控制方法及装置、视频直播方法及系统 |
CN106919358A (zh) * | 2017-03-10 | 2017-07-04 | 广东欧珀移动通信有限公司 | 一种移动终端的显示控制方法、装置及移动终端 |
CN107589998A (zh) * | 2017-08-31 | 2018-01-16 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
Non-Patent Citations (1)
Title |
---|
《基于率失真模型的H.264码率控制技术研究》;崔子冠;《中国优秀硕士学位论文全文数据库》;20120615;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN110798738A (zh) | 2020-02-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110798738B (zh) | 帧率控制方法、装置、终端及存储介质 | |
CN109413480B (zh) | 画面处理方法、装置、终端及存储介质 | |
US20200016499A1 (en) | Apparatus and method of mapping a virtual environment | |
US9942556B2 (en) | Altering streaming video encoding based on user attention | |
CN109104638B (zh) | 帧率优化方法、装置、终端及存储介质 | |
US9707485B2 (en) | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications | |
US9873045B2 (en) | Systems and methods for a unified game experience | |
EP3691280B1 (en) | Video transmission method, server, vr playback terminal and computer-readable storage medium | |
EP2919874B1 (en) | Systems and methods for cloud processing and overlaying of content on streaming video frames of remotely processed applications | |
CN112385241A (zh) | 以基于景深的多层结构的虚拟现实媒体内容生成 | |
EP4296851A1 (en) | Method and apparatus for displaying application picture, and terminal, screen projection system and medium | |
US11055918B2 (en) | Virtual character inter-reality crossover | |
CN111951366B (zh) | 一种云原生3d场景游戏方法和系统 | |
WO2021196917A9 (zh) | 游戏应用程序中的帧显示方法、装置、终端和存储介质 | |
US8908776B1 (en) | Attention misdirection for streaming video | |
CN110795056A (zh) | 调节显示参数的方法、装置、终端及存储介质 | |
US20220210484A1 (en) | Method for processing live broadcast data, system, electronic device, and storage medium | |
US20220237848A1 (en) | Image processing method and apparatus, electronic device, and storage medium | |
US11521346B2 (en) | Image processing apparatus, image processing method, and storage medium | |
JP5776954B2 (ja) | 情報処理装置、制御方法、プログラム、記録媒体及び描画システム | |
CN114201095A (zh) | 直播界面的控制方法、装置、存储介质及电子设备 | |
CN114339444A (zh) | 视频帧的播放时长调整方法、装置、设备及存储介质 | |
US11930228B2 (en) | Computer program, server device, terminal device and method | |
CN111359220B (zh) | 游戏广告生成方法、装置和计算机设备 | |
JP2016509486A (ja) | ネットワークを介して送信するためのビデオゲーム画面画像の生成及び符号化を行う方法及びシステム |
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 |