CN109104638A - 帧率优化方法、装置、终端及存储介质 - Google Patents

帧率优化方法、装置、终端及存储介质 Download PDF

Info

Publication number
CN109104638A
CN109104638A CN201810876547.6A CN201810876547A CN109104638A CN 109104638 A CN109104638 A CN 109104638A CN 201810876547 A CN201810876547 A CN 201810876547A CN 109104638 A CN109104638 A CN 109104638A
Authority
CN
China
Prior art keywords
frame
frame per
display subsystem
target
system performance
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
Application number
CN201810876547.6A
Other languages
English (en)
Other versions
CN109104638B (zh
Inventor
陈岩
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201810876547.6A priority Critical patent/CN109104638B/zh
Publication of CN109104638A publication Critical patent/CN109104638A/zh
Application granted granted Critical
Publication of CN109104638B publication Critical patent/CN109104638B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/60Network structure or processes for video distribution between server and client or between remote clients; Control signalling between clients, server and network components; Transmission of management data between server and client, e.g. sending from server to client commands for recording incoming content stream; Communication details between server and client 
    • H04N21/63Control signaling related to video distribution between client, server and network components; Network processes for video distribution between server and clients or between remote clients, e.g. transmitting basic layer and enhancement layers over different transmission paths, setting up a peer-to-peer communication via Internet between remote STB's; Communication protocols; Addressing
    • H04N21/647Control signaling between network components and server or clients; Network processes for video distribution between server and clients, e.g. controlling the quality of the video stream, by dropping packets, protecting content from unauthorised alteration within the network, monitoring of network load, bridging between two different networks, e.g. between IP and wireless
    • H04N21/64784Data processing by the network
    • H04N21/64792Controlling the complexity of the content stream, e.g. by dropping packets
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F13/00Video games, i.e. games using an electronically generated display having two or more dimensions
    • A63F13/50Controlling the output signals based on the game progress
    • A63F13/52Controlling the output signals based on the game progress involving aspects of the displayed game scene
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing 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/442Monitoring of processes or resources, e.g. detecting the failure of a recording device, monitoring the downstream bandwidth, the number of times a movie has been viewed, the storage space available from the internal hard disk
    • H04N21/4424Monitoring of the internal components or processes of the client device, e.g. CPU or memory load, processing speed, timer, counter or percentage of the hard disk space used
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/80Generation or processing of content or additional data by content creator independently of the distribution process; Content per se
    • H04N21/85Assembly of content; Generation of multimedia applications
    • H04N21/854Content authoring
    • H04N21/8547Content authoring involving timestamps for synchronizing content
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/50Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game characterized by details of game servers
    • A63F2300/55Details of game data or player data management
    • A63F2300/5526Game data structure
    • A63F2300/5533Game data structure using program state or machine event data, e.g. server keeps track of the state of multiple players on in a multiple player game
    • AHUMAN NECESSITIES
    • A63SPORTS; GAMES; AMUSEMENTS
    • A63FCARD, BOARD, OR ROULETTE GAMES; INDOOR GAMES USING SMALL MOVING PLAYING BODIES; VIDEO GAMES; GAMES NOT OTHERWISE PROVIDED FOR
    • A63F2300/00Features of games using an electronically generated display having two or more dimensions, e.g. on a television screen, showing representations related to the game
    • A63F2300/60Methods for processing data by generating or executing the game program
    • A63F2300/66Methods for processing data by generating or executing the game program for rendering three dimensional images

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Security & Cryptography (AREA)
  • Databases & Information Systems (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本申请公开了一种帧率优化方法、装置、终端及存储介质,属于终端技术领域。所述方法用于终端,终端运行有系统性能服务和显示子系统,所述方法包括:当目标应用程序处于前台运行时,显示子系统对目标应用程序进行帧率监测,得到帧率监测结果;若帧率监测结果指示目标应用程序出现丢帧,显示子系统则向系统性能服务发送丢帧信号;系统性能服务根据丢帧信号进行帧率优化。相较于相关技术中由应用程序进行帧率监测并发送丢帧信号,本申请实施例中,由终端的显示子系统进行帧率监测,提高了帧率监测的准确性,避免因应用程序误发送丢帧信号而导致的帧率误优化,进一步提高了应用程序的运行质量。

Description

帧率优化方法、装置、终端及存储介质
技术领域
本申请实施例涉及终端技术领域,特别涉及一种帧率优化方法、装置、终端及存储介质。
背景技术
对于视频应用、游戏应用一类需要进行动态画面渲染的应用程序,其运行质量与帧率密切相关。
相关技术中,视频应用或游戏应用在运行过程中,会对自身应用画面进行帧率检测,并在检测到出现丢帧时,向终端下发丢帧信号,以便终端根据丢帧信号进行帧率优化。
发明内容
本申请实施例提供了一种帧率优化方法、装置、终端及存储介质,可以用于解决相关技术中终端根据应用程序下发的丢帧信号进行帧率优化时,帧率优化准确率较低的问题。技术方案如下:
一方面,提供了一种帧率优化方法,所述方法用于终端,所述终端运行有系统性能服务和显示子系统,所述方法包括:
当目标应用程序处于前台运行时,所述显示子系统对所述目标应用程序进行帧率监测,得到帧率监测结果;
若所述帧率监测结果指示所述目标应用程序出现丢帧,所述显示子系统则向所述系统性能服务发送丢帧信号;
所述系统性能服务根据所述丢帧信号进行帧率优化。
另一方面,提供了一种帧率优化装置,所述装置包括:系统性能服务模块和显示子系统模块;
所述显示子系统模块,用于当目标应用程序处于前台运行时,对所述目标应用程序进行帧率监测,得到帧率监测结果;
所述显示子系统模块,还用于当所述帧率监测结果指示所述目标应用程序出现丢帧时,向所述系统性能服务模块发送丢帧信号;
所述系统性能服务模块,用于根据所述丢帧信号进行帧率优化。
另一方面,提供了一种终端,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如上述方面所述的帧率优化方法。
另一方面,提供了一种计算机可读存储介质,其上存储有程序指令,所述程序指令被处理器执行时实现如上述方面所述的帧率优化方法。
本申请实施例提供的技术方案带来的有益效果至少包括:
当目标应用程序处于前台运行时,通过显示子系统对目标应用程序进行帧率监测,得到帧率监测结果,并在帧率监测结果指示目标应用程序出现丢帧时,由显示子系统向系统性能服务发送丢帧信号,以便系统性能服务根据丢帧信号进行帧率优化;相较于相关技术中由应用程序进行帧率监测并发送丢帧信号,本申请实施例中,由终端的显示子系统进行帧率监测,提高了帧率监测的准确性,避免因应用程序误发送丢帧信号而导致的帧率误优化,进一步提高了应用程序的运行质量。
附图说明
图1是本申请一个示例性实施例所提供的终端的结构示意图;
图2是本申请一个示例性实施例提供的帧率优化方法的流程图;
图3是帧率优化过程中目标应用程序、显示子系统、系统性能服务子系统之间的交互示意图;
图4是本申请另一个示例性实施例提供的帧率优化方法的流程图;
图5是本申请另一个示例性实施例提供的帧率优化方法的流程图;
图6是本申请一个实施例提供的帧率优化装置的结构示意图。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
为了方便理解,下面对本申请实施例中涉及的名词进行说明。
图层:终端显示的画面中可能同时包含多个图层。比如,当需要同时在屏幕上显示状态栏、应用程序画面和导航栏时,终端需要分别绘制出状态栏图层、应用程序图层和导航栏图层,并按照预定方式对三个图层进行图层合成,从而绘制出同时包含状态栏、应用程序画面和导航栏的画面。
而在图层绘制、合成和刷新显示的流程中,存在3种帧率:绘制帧率、合成帧率和刷新率。
其中,绘制帧率为图层绘制完成后,触发图层合成模块合成的帧率,可以理解为单位时间(例如,1秒钟)绘制图层的次数。图层的绘制帧率为该图层单位时间内被触发绘制的次数。
合成帧率是指把绘制的至少二个图层的图像合成为一个待显示画面的帧率,可以理解为单位时间合成待显示画面的帧数。
刷新率为移动终端显示屏显示画面刷新的帧率。一般,显示屏会以60Hz的刷新率刷新。
系统性能服务(Perf Service):一种系统级别的性能优化服务,用于调配系统资源以优化应用程序的运行质量。其中,系统性能服务可以调配的系统资源包括中央处理器(Central Processing Unit,CPU)频率、CPU核心数、图形处理器(Graphics ProcessingUnit,GPU)频率、GPU核心数。
显示子系统:终端系统中负责图像渲染显示的子系统。比如,在安卓系统中,显示子系统利用SurfaceFlinger对各个图层进行合成,从而将合成后的图像数据发送至显示器进行渲染显示。
安卓操作系统(Android):由美国谷歌公司出品的一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备。
应用程序:简称应用,在安卓操作系统中,一个应用程序通常包括至少一个程序组件。程序组件分为四种:活动(Activity)组件、服务(Service)组件、内容提供者(ContentProvider)组件和广播接收器(Broadcast Receiver)组件。
活动组件:安卓应用程序中负责与用户交互的组件,它为安卓应用程序提供可视化的用户界面。一个安卓应用程序可以包括零到多个活动组件。
内容提供者组件:安卓应用程序中用于为其它应用或者当前应用中的其它组件提供数据的组件,比如:铃声、壁纸、电话本等。它能够对各种格式的数据进行封装,以标准的形式提供给其它应用或者组件进行使用。
意图(Intent)消息:安卓应用程序中实现各项程序组件之间进行通讯的一种消息,各项程序组件可以是同一应用程序中的不同组件,也可以是不同应用程序中的不同组件。Intent消息负责对应用程序中一次操作的动作、动作涉及数据、附加数据进行描述,安卓操作系统根据该Intent消息的描述,负责找到对应的程序组件,将Intent消息传递给调用的程序组件,并完成程序组件的调用。
系统用户界面(User Interface,UI)组件:在安卓操作系统中负责与用户交互的组件,它为安卓操作系统提供可视化的用户界面。
在对本申请实施例进行解释说明之前,首先对本申请实施例的应用场景进行说明。图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,其示出了本申请一个示例性实施例提供的帧率优化方法的方法流程图。本实施例以该方法应用于运行有系统性能服务以及显示子系统的终端来进行说明。该方法可以包括如下步骤。
步骤201,当目标应用程序处于前台运行时,显示子系统对目标应用程序进行帧率监测,得到帧率监测结果。
可选的,该目标应用程序是需要进行动态画面渲染的应用程序,该应用程序可以是视频播放类应用程序,也可以是游戏类应用程序。比如,该目标应用程序包括虚拟现实应用程序、三维地图程序、军事仿真程序、第三人称射击游戏(Third-Personal ShootingGame,TPS)、第一人称射击游戏(First-person shooting game,FPS)、MOBA游戏、多人枪战类生存游戏中的任意一种。本申请并不对目标应用程序的具体类型进行限定。
可选的,终端采用主动轮询的方式监控前台运行活动,根据前台运行活动来确定是否产生应用程序运行事件,当产生应用程序运行事件时确定应用程序运行事件对应的应用程序,即此时处于前台运行状态的应用程序。
其中,活动是包含一个或多个用户界面的组件,用于实现与用户之间的交互,每个应用程序可以包括多个活动,每个活动对应一种用户界面。前台运行活动是位于最上层的用户界面相对应的组件。最上层的用户界面是用户在使用终端时在屏幕上看见的用户界面。
以操作系统为安卓操作系统为例,活动是可以层叠的,每当启动一个新的活动,新的活动就会覆盖在原活动之上;使用活动栈存放启动的活动,活动栈是一种后进先出的数据结构,在默认情况下,每启动一个活动,该活动就会在活动栈中入栈,并处于栈顶位置,处于栈顶位置的活动是前台运行活动。当前台运行活动发生变化时,活动栈中处于栈顶位置的活动也会发生变化。
需要说明的是,除了新的活动会位于栈顶,将一个旧的活动切换到前台运行时,旧的活动也会重新移动到栈顶。
当应用程序运行事件指示前台运行的应用程序时目标应用程序时,显示子系统即对目标应用程序进行帧率监测。可选的,显示子系统得到的帧率监测结果中包含目标应用程序的当前帧率。
在一种可能的实施方式中,显示子系统统计预定时长内图像帧的帧数,计算得到目标应用程序的当前帧率,或者,显示子系统通过计算相邻图像帧之间的帧间隔,计算得到目标应用程序的当前帧率。
步骤202,若帧率监测结果指示目标应用程序出现丢帧,显示子系统则向系统性能服务发送丢帧信号。
在一种可能的实施方式中,当帧率监测结果中包含目标应用程序的当前帧率时,显示子系统检测当前帧率是否小于目标帧率,若小于,则确定出现丢帧,并进一步发送丢帧信号;若大于,则确定未出现丢帧,则继续进行帧率监测。
可选的,显示子系统发送的丢帧信号中包含目标应用程序的当前帧率,以便系统性能服务基于当前帧率进行帧率优化。
步骤203,系统性能服务根据丢帧信号进行帧率优化。
可选的,系统性能服务通过调整CPU核心数、CPU频率、GPU核心数或GPU频率等方式进行帧率优化,以提高目标应用程序的帧率,从而解决丢帧的问题。
在一种可能的实施方式中,当接收到丢帧信号时,系统性能服务获取CPU使用情况(包括CPU开启核心数以及CPU频率)以及GPU使用情况(包括GPU开启核心数以及GPU频率),若CPU使用情况和GPU使用情况指示存在余量,则通过上调CPU频率、开启CPU核心、上调GPU频率、开启GPU核心等方式进行帧率优化。
综上所述,本申请实施例中,当目标应用程序处于前台运行时,通过显示子系统对目标应用程序进行帧率监测,得到帧率监测结果,并在帧率监测结果指示目标应用程序出现丢帧时,由显示子系统向系统性能服务发送丢帧信号,以便系统性能服务根据丢帧信号进行帧率优化;相较于相关技术中由应用程序进行帧率监测并发送丢帧信号,本申请实施例中,由终端的显示子系统进行帧率监测,提高了帧率监测的准确性,避免因应用程序误发送丢帧信号而导致的帧率误优化,进一步提高了应用程序的运行质量。
为了使显示子系统能够准确进行帧率监测,在一种可能的实施方式中,如图3所示,当目标应用程序31处于前台运行状态时,系统性能服务32与目标应用程序31进行连接,并确定目标应用程序31对应的目标图层;系统性能服务32将目标图层注册到显示子系统33后,显示子系统33对目标图层进行帧率监测,并在监测到出现丢帧时,向系统性能服务32发送丢帧信号,以便系统性能服务32进行帧率优化。下面采用示意性的实施例进行说明。
请参考图4,其示出了本申请另一个示例性实施例提供的帧率优化方法的方法流程图。本实施例以该方法应用于运行有系统性能服务以及显示子系统的终端来进行说明。该方法可以包括如下步骤。
步骤401,当目标应用程序处于前台运行时,系统性能服务与目标应用程序建立连接。
可选的,当目标应用程序处于前台运行时,目标应用程序采用套接字(英文:Socket)方式与后台性能服务的Socket接口建立连接。目标应用程序的应用场景相关的数据即可以通过该连接传输给后台性能服务。
可选的,目标应用程序的应用场景相关的数据至少包括目标应用程序的包名(Package Name),其中,应用程序的包名用于唯一标识该应用程序。
在其他可能的实施方式中,目标应用程序还可以调用终端系统开发商提供的软件开发工具包(Software Development Kit,SDK)提供的应用程序编程接口(ApplicationProgramming Interface,API),或者,通过绑定(binder)方式与系统性能服务建立连接。本申请实施例并不对两者建立连接的方式进行限定。
步骤402,系统性能服务将目标应用程序对应的目标图层注册到显示子系统。
由于终端显示的画面可能由多个图层合并而成,而显示子系统仅关注目标应用程序是否发生丢帧,因此为了提高帧率监测的准确性,系统性能服务将目标应用程序对应的目标图层注册到显示子系统中。
在一种可能的实施方式中,系统性能服务与目标应用程序建立连接后获取到目标应用程序的包名,进行目标图层注册时,系统性能服务根据目标应用程序的包名,从预置的配置文件中解析出目标图层,进而将目标图层注册到显示子系统。比如,当目标应用程序为游戏类应用程序时,该目标图层即为前景游戏图层。
可选的,显示子系统中预先存储有图层注册表,该图层注册表用于存储目标图层的图层名称。系统性能服务通过进程间通信方式将目标图层的图层名称添加图层注册中,其中,该进程间通信方式为binder调用方式。
当然,系统性能服务还可以通过其他方式将目标图层注册到显示子系统,本申请并不对此进行限定。
步骤403,显示子系统对目标图层进行帧率监测,得到帧率监测结果。
显示子系统根据目标图层的图层名称,对目标图层进行帧率监测,从而得到包含当前帧率的帧率检测结果。
在一种可能的实施方式中,显示子系统进行帧率监测包括如下步骤:
一、显示子系统根据预定时长内目标图层中图像帧的帧数,计算当前帧率。
显示子系统统计预定时长内目标图层中图像帧的帧数,从而根据预定时长和帧数计算得到目标应用程序的当前帧率,其中,当前帧率=帧数/预定时长。
比如,当预定时长为1s时,显示子系统统计得到1s内目标图层中图像帧的帧数为50帧时,计算得到当前帧率为50fps。
二、若当前帧率小于目标帧率,则确定目标应用程序出现丢帧。
可选的,显示子系统检测目标应用程序的当前帧率是否小于目标帧率,若小于,则确定目标应用程序出现丢帧,并执行步骤404,若大于,则确定目标应用程序未出现丢帧,并继续进行帧率监测。
采用上述方式进行帧率监测时,由于需要统计一段时间内图像帧的帧数后才能计算得到当前帧率,因此计算得到的当前帧率存在滞后性,相应的,根据该当前帧率确定是否出现丢帧不够准确。比如,当计算得到当前帧率小于目标帧率时,表明统计时段内已经发生了持续丢帧。
为了提高帧率监测的实时性,在一种可能的实施方式中,如图5所示,本步骤可以包括如下步骤。
步骤403A,显示子系统获取目标图层中当前图像帧的第一合成时间戳。
完成目标图层注册后,显示子系统获取目标图层中当前图像帧的第一合成时间戳,第一合成时间戳即指示当前图像帧的合成时间。
步骤403B,显示子系统获取目标图层中上一帧图像帧的第二合成时间戳。
可选的,显示子系统缓存有图像帧的索引以及合成时间戳,在进行帧率监测时,即根据当前图像帧的索引,确定上一帧图像帧,进而获取上一帧图像帧的第二合成时间戳。
步骤403C,显示子系统根据第一合成时间戳和第二合成时间戳,计算相邻图像帧的帧间隔。
对于获取到第一合成时间戳和第二合成时间戳,显示子系统计算相邻图像帧的帧间隔,其中,帧间隔=第一合成时间戳-第二合成时间戳。
比如,显示子系统计算得到相邻图像帧的帧间隔为20ms。
步骤403D,若帧间隔指示的当前帧率小于目标帧率,则确定目标应用程序出现丢帧。
进一步的,显示子系统根据计算得到的帧间隔,进一步确定目标应用程序的当前帧率,其中,当前帧率=1/帧间隔(单位fps)。比如,帧间隔为20ms时,当前帧率即为50fps。
在判断目标应用程序是否出现丢帧时,显示子系统检测当前帧率是否小于目标帧率,若小于,则确定目标应用程序出现丢帧,并执行步骤404,若大于,则确定目标应用程序未出现丢帧,并继续根据帧间隔进行帧率监测。
相较于采用统计一段时间内图像帧帧数的方式进行帧率监测,采用计算帧间隔的方式进行帧率监测能够将监测实时性由秒级提高至毫秒级,从而及时监测出目标应用程序的丢帧情况。
由于不同类型应用程序对帧率要求不同,甚至同一应用在不同场景下对帧率的要求也不同,因此为了提高丢帧判断的准确性,在一种可能的实施方式中,系统性能服务与目标应用程序建立连接后,获取目标应用程序的目标帧率,该目标帧率用于表示目标应用程序运行时的帧率需求,并向显示子系统发送该目标帧率。相应的,后续判断是否出现丢帧时,显示子系统即检测当前帧率是否小于目标应用程序的目标帧率。
其中,不同应用程序对应目标帧率可以相同,也可以不同;同一应用程序在不同应用场景下对应的目标帧率可以相同,也可以不同。比如,游戏加载场景下,游戏类应用程序的目标帧率为30fps,而在团战场景下,游戏类应用程序的目标帧率为60fps。
步骤404,若帧率监测结果指示目标应用程序出现丢帧,显示子系统向系统性能服务发送包含当前帧率的丢帧信号。
当监测到目标应用程序出现丢帧时,显示子系统即向系统性能服务发送丢帧信号。并且,为了使系统性能服务知悉目标应用程序的丢帧程度,进而基于该丢帧程度进行帧率优化,显示子系统发送的丢帧信号中包含帧率监测得到的当前帧率。
步骤405,系统性能服务根据当前帧率和目标帧率的帧率差值,确定目标帧率优化策略,目标帧率优化策略中包括CPU性能优化参数和GPU性能优化参数中的至少一种。
系统性能服务接收到丢帧信号后,即采用相应的帧率优化策略,调整CPU和GPU的性能,从而解决丢帧问题。
在一种可能的实施方式中,系统性能服务根据丢帧信号中的当前帧率,计算与目标帧率之间的帧率差值,从而确定出与帧率差值对应的目标帧率优化策略。
可选的,系统性能服务中预先存储有帧率差值与帧率优化策略之间的对应关系,其中,帧率优化策略中包含CPU性能优化参数和GPU性能优化参数中的至少一种,且帧率差值越大(表明丢帧情况越严重),对应帧率优化策略中CPU性能优化参数和GPU性能优化参数的参数值越高(表明性能提高的幅度越大)。示意性的,帧率差值与帧率优化策略之间的对应关系如表一所示,
表一
帧率差值 CPU性能优化参数 GPU性能优化参数
1-5fps 200MHz 0MHz
6-10fps 400MHz 200MHz
11-15fps 800MHz 400MHz
可选的,CPU性能优化参数中包括CPU频率提升数值,和/或,CPU核心增加数值,CPU性能优化参数中包括GPU频率提升数值,和/或,GPU核心增加数值。
步骤406,系统性能服务根据目标帧率优化策略进行帧率优化。
进一步的,系统性能服务根据确定出的目标帧率优化策略进行帧率优化,从而解决目标应用程序丢帧的问题。
本实施例中,系统性能服务通过将目标应用程序对应的目标图层注册到显示子系统中,使得显示子系统能够对目标应用程序进行准确的帧率监测,提高了后续丢帧信号上报的准确性。
另外,相较于传统的帧率监测方式,显示子系统基于相邻图像帧之间的帧间隔判断是否出现丢帧,能够显著提高帧率监测的实时性,进而提高系统性能服务进行帧率优化的及时性。
另外,系统性能服务根据当前帧率与目标帧率之间的帧率差值,确定出相应的帧率优化策略,使得帧率优化时调整的CPU、GPU性能优化参数符合当前的丢帧情况,在解决目标应用程序丢帧的同时,避免过度提升CPU、GPU性能,降低了终端的整体功耗。
下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。
请参考图6,其示出了本申请一个实施例提供的帧率优化装置的结构示意图。该帧率优化装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1中的终端的全部或一部分,该帧率优化装置包括:显示系统子模块610和系统性能服务模块620。
所述显示子系统模块610,用于当目标应用程序处于前台运行时,对所述目标应用程序进行帧率监测,得到帧率监测结果;
所述显示子系统模块610,还用于当所述帧率监测结果指示所述目标应用程序出现丢帧时,向所述系统性能服务模块620发送丢帧信号;
所述系统性能服务模块620,用于根据所述丢帧信号进行帧率优化。
可选的,所述显示子系统模块610,用于:
当所述目标应用程序处于前台运行时,与所述目标应用程序建立连接;
将所述目标应用程序对应的目标图层注册到所述显示子系统模块610;
对所述目标图层进行帧率监测。
可选的,所述系统性能服务模块620,用于:
根据所述目标应用程序的包名,从预置的配置文件中解析出所述目标图层;
将所述目标图层注册到所述显示子系统模块610。
可选的,所述显示子系统模块610,用于:
根据预定时长内所述目标图层中图像帧的帧数,计算当前帧率;
若所述当前帧率小于目标帧率,则确定所述目标应用程序出现丢帧。
可选的,所述显示子系统模块610,用于:
获取所述目标图层中当前图像帧的第一合成时间戳;
获取所述目标图层中上一帧图像帧的第二合成时间戳;
根据所述第一合成时间戳和所述第二合成时间戳,计算相邻图像帧的帧间隔;
若所述帧间隔指示的当前帧率小于目标帧率,则确定所述目标应用程序出现丢帧。
可选的,所述系统性能服务模块620,还用于:
获取目标应用程序的所述目标帧率,所述目标帧率用于表示所述目标应用程序运行时的帧率需求;
向所述显示子系统模块610发送所述目标帧率。
可选的,所述显示子系统模块610,用于:
向所述系统性能服务模块620发送包含当前帧率的所述丢帧信号;
所述系统性能服务模块620,用于:
根据所述当前帧率和目标帧率的帧率差值,确定目标帧率优化策略,所述目标帧率优化策略中包括中央处理器CPU性能优化参数和图像处理器GPU性能优化参数中的至少一种;
根据所述目标帧率优化策略进行帧率优化。
综上所述,本申请实施例中,当目标应用程序处于前台运行时,通过显示子系统对目标应用程序进行帧率监测,得到帧率监测结果,并在帧率监测结果指示目标应用程序出现丢帧时,由显示子系统向系统性能服务发送丢帧信号,以便系统性能服务根据丢帧信号进行帧率优化;相较于相关技术中由应用程序进行帧率监测并发送丢帧信号,本申请实施例中,由终端的显示子系统进行帧率监测,提高了帧率监测的准确性,避免因应用程序误发送丢帧信号而导致的帧率误优化,进一步提高了应用程序的运行质量。
需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的帧率优化方法。
本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例所述的帧率优化方法。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本领域普通技术人员可以理解实现上述实施例的帧率控制方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

Claims (10)

1.一种帧率优化方法,其特征在于,所述方法用于终端,所述终端运行有系统性能服务和显示子系统,所述方法包括:
当目标应用程序处于前台运行时,所述显示子系统对所述目标应用程序进行帧率监测,得到帧率监测结果;
若所述帧率监测结果指示所述目标应用程序出现丢帧,所述显示子系统则向所述系统性能服务发送丢帧信号;
所述系统性能服务根据所述丢帧信号进行帧率优化。
2.根据权利要求1所述的方法,其特征在于,所述当目标应用程序处于前台运行时,所述显示子系统对所述目标应用程序进行帧率监测,得到帧率监测结果,包括:
当所述目标应用程序处于前台运行时,所述系统性能服务与所述目标应用程序建立连接;
所述系统性能服务将所述目标应用程序对应的目标图层注册到所述显示子系统;
所述显示子系统对所述目标图层进行帧率监测。
3.根据权利要求2所述的方法,其特征在于,所述系统性能服务将所述目标应用程序对应的目标图层注册到所述显示子系统,包括:
所述系统性能服务根据所述目标应用程序的包名,从预置的配置文件中解析出所述目标图层;
所述系统性能服务将所述目标图层注册到所述显示子系统。
4.根据权利要求2所述的方法,其特征在于,所述显示子系统对所述目标图层进行帧率监测,包括:
所述显示子系统根据预定时长内所述目标图层中图像帧的帧数,计算当前帧率;
若所述当前帧率小于目标帧率,则确定所述目标应用程序出现丢帧。
5.根据权利要求2所述的方法,其特征在于,所述显示子系统对所述目标图层进行帧率监测,包括:
所述显示子系统获取所述目标图层中当前图像帧的第一合成时间戳;
所述显示子系统获取所述目标图层中上一帧图像帧的第二合成时间戳;
所述显示子系统根据所述第一合成时间戳和所述第二合成时间戳,计算相邻图像帧的帧间隔;
若所述帧间隔指示的当前帧率小于目标帧率,则确定所述目标应用程序出现丢帧。
6.根据权利要求4或5所述的方法,其特征在于,所述显示子系统对所述目标图层进行帧率监测之前,所述方法还包括:
所述系统性能服务获取目标应用程序的所述目标帧率,所述目标帧率用于表示所述目标应用程序运行时的帧率需求;
所述系统性能服务向所述显示子系统发送所述目标帧率。
7.根据权利要求1至5任一所述的方法,其特征在于,所述显示子系统向所述系统性能服务发送丢帧信号,包括:
所述显示子系统向所述系统性能服务发送包含当前帧率的所述丢帧信号;
所述系统性能服务根据所述丢帧信号进行帧率优化,包括:
所述系统性能服务根据所述当前帧率和目标帧率的帧率差值,确定目标帧率优化策略,所述目标帧率优化策略中包括中央处理器CPU性能优化参数和图像处理器GPU性能优化参数中的至少一种;
所述系统性能服务根据所述目标帧率优化策略进行帧率优化。
8.一种帧率优化装置,其特征在于,所述装置包括:系统性能服务模块和显示子系统模块;
所述显示子系统模块,用于当目标应用程序处于前台运行时,对所述目标应用程序进行帧率监测,得到帧率监测结果;
所述显示子系统模块,还用于当所述帧率监测结果指示所述目标应用程序出现丢帧时,向所述系统性能服务模块发送丢帧信号;
所述系统性能服务模块,用于根据所述丢帧信号进行帧率优化。
9.一种终端,其特征在于,所述终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如权利要求1至7任一所述的帧率优化方法。
10.一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令被处理器执行时实现如权利要求1至7任一所述的帧率优化方法。
CN201810876547.6A 2018-08-03 2018-08-03 帧率优化方法、装置、终端及存储介质 Active CN109104638B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810876547.6A CN109104638B (zh) 2018-08-03 2018-08-03 帧率优化方法、装置、终端及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810876547.6A CN109104638B (zh) 2018-08-03 2018-08-03 帧率优化方法、装置、终端及存储介质

Publications (2)

Publication Number Publication Date
CN109104638A true CN109104638A (zh) 2018-12-28
CN109104638B CN109104638B (zh) 2021-05-25

Family

ID=64848421

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810876547.6A Active CN109104638B (zh) 2018-08-03 2018-08-03 帧率优化方法、装置、终端及存储介质

Country Status (1)

Country Link
CN (1) CN109104638B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109800141A (zh) * 2019-01-28 2019-05-24 Oppo广东移动通信有限公司 Gpu性能瓶颈的确定方法、装置、终端及存储介质
CN109857559A (zh) * 2019-01-25 2019-06-07 维沃移动通信有限公司 终端控制方法及终端
CN110162451A (zh) * 2019-04-22 2019-08-23 腾讯科技(深圳)有限公司 一种性能分析方法、装置、服务器及存储介质
CN110618801A (zh) * 2019-10-08 2019-12-27 Oppo(重庆)智能科技有限公司 平滑画面帧率表现方法、装置、终端设备及存储介质
CN110633003A (zh) * 2019-09-19 2019-12-31 Oppo广东移动通信有限公司 降低功耗的方法、装置、终端及存储介质
CN112948041A (zh) * 2021-02-26 2021-06-11 联想(北京)有限公司 一种信息处理方法及电子设备
CN114443269A (zh) * 2021-08-27 2022-05-06 荣耀终端有限公司 帧率调节方法和相关装置
CN114706626A (zh) * 2022-03-31 2022-07-05 联想(北京)有限公司 一种处理方法及电子设备
US20230377500A1 (en) * 2022-05-20 2023-11-23 Asustek Computer Inc. Electronic device and refresh rate adjusting method thereof
WO2024066926A1 (zh) * 2022-09-30 2024-04-04 荣耀终端有限公司 显示方法及装置
US12027089B2 (en) * 2022-05-20 2024-07-02 Asustek Computer Inc. Electronic device and refresh rate adjusting method thereof

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102956208A (zh) * 2011-08-23 2013-03-06 华为技术有限公司 一种统计终端画面帧率的方法、装置及系统
CN106780510A (zh) * 2016-11-30 2017-05-31 宇龙计算机通信科技(深圳)有限公司 一种图像处理方法及终端设备
CN106874168A (zh) * 2017-01-12 2017-06-20 北京奇虎科技有限公司 确定应用程序运行性能的方法、装置和移动终端
CN106919358A (zh) * 2017-03-10 2017-07-04 广东欧珀移动通信有限公司 一种移动终端的显示控制方法、装置及移动终端
CN106941563A (zh) * 2017-03-10 2017-07-11 广东欧珀移动通信有限公司 一种移动终端刷新率的控制方法、装置及移动终端
CN107544842A (zh) * 2017-08-25 2018-01-05 广东欧珀移动通信有限公司 应用程序处理方法和装置、计算机设备、存储介质
US10015224B1 (en) * 2016-09-12 2018-07-03 Twitch Interactive, Inc. Buffer reduction using frame dropping

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102956208A (zh) * 2011-08-23 2013-03-06 华为技术有限公司 一种统计终端画面帧率的方法、装置及系统
US10015224B1 (en) * 2016-09-12 2018-07-03 Twitch Interactive, Inc. Buffer reduction using frame dropping
CN106780510A (zh) * 2016-11-30 2017-05-31 宇龙计算机通信科技(深圳)有限公司 一种图像处理方法及终端设备
CN106874168A (zh) * 2017-01-12 2017-06-20 北京奇虎科技有限公司 确定应用程序运行性能的方法、装置和移动终端
CN106919358A (zh) * 2017-03-10 2017-07-04 广东欧珀移动通信有限公司 一种移动终端的显示控制方法、装置及移动终端
CN106941563A (zh) * 2017-03-10 2017-07-11 广东欧珀移动通信有限公司 一种移动终端刷新率的控制方法、装置及移动终端
CN107544842A (zh) * 2017-08-25 2018-01-05 广东欧珀移动通信有限公司 应用程序处理方法和装置、计算机设备、存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ZHONGKANG LU ET AL: "Content-Based Quality Evaluation on Frame-Dropped and Blurred Video", 《2007 IEEE INTERNATIONAL CONFERENCE ON MULTIMEDIA AND EXPO》 *
赵淑兰: "在接收端实现流媒体同步控制的研究", 《电脑知识与技术》 *

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109857559B (zh) * 2019-01-25 2021-04-06 维沃移动通信有限公司 终端控制方法及终端
CN109857559A (zh) * 2019-01-25 2019-06-07 维沃移动通信有限公司 终端控制方法及终端
CN109800141A (zh) * 2019-01-28 2019-05-24 Oppo广东移动通信有限公司 Gpu性能瓶颈的确定方法、装置、终端及存储介质
WO2020156132A1 (zh) * 2019-01-28 2020-08-06 Oppo广东移动通信有限公司 Gpu性能瓶颈的确定方法、装置、终端及存储介质
CN110162451A (zh) * 2019-04-22 2019-08-23 腾讯科技(深圳)有限公司 一种性能分析方法、装置、服务器及存储介质
CN110633003A (zh) * 2019-09-19 2019-12-31 Oppo广东移动通信有限公司 降低功耗的方法、装置、终端及存储介质
CN110618801A (zh) * 2019-10-08 2019-12-27 Oppo(重庆)智能科技有限公司 平滑画面帧率表现方法、装置、终端设备及存储介质
CN110618801B (zh) * 2019-10-08 2023-07-18 Oppo(重庆)智能科技有限公司 平滑画面帧率表现方法、装置、终端设备及存储介质
CN112948041A (zh) * 2021-02-26 2021-06-11 联想(北京)有限公司 一种信息处理方法及电子设备
CN114443269A (zh) * 2021-08-27 2022-05-06 荣耀终端有限公司 帧率调节方法和相关装置
CN114706626A (zh) * 2022-03-31 2022-07-05 联想(北京)有限公司 一种处理方法及电子设备
US20230377500A1 (en) * 2022-05-20 2023-11-23 Asustek Computer Inc. Electronic device and refresh rate adjusting method thereof
US12027089B2 (en) * 2022-05-20 2024-07-02 Asustek Computer Inc. Electronic device and refresh rate adjusting method thereof
WO2024066926A1 (zh) * 2022-09-30 2024-04-04 荣耀终端有限公司 显示方法及装置

Also Published As

Publication number Publication date
CN109104638B (zh) 2021-05-25

Similar Documents

Publication Publication Date Title
CN109104638A (zh) 帧率优化方法、装置、终端及存储介质
US11544742B2 (en) Targeting media delivery to a mobile audience
CN109413480A (zh) 画面处理方法、装置、终端及存储介质
CN103369363B (zh) 一种应用程序的控制方法、系统及装置
CN109814933A (zh) 一种业务数据处理方法及装置
CN110336924A (zh) 网络电话业务的服务质量参数获取装置、系统及方法
CN106569942A (zh) 一种测试方法和装置
CN110169115A (zh) 接入控制方法、装置、用户设备及基站
CN108829320A (zh) 交互方法、装置、存储介质、移动终端及交互系统
CN104284098A (zh) 视频数据的处理方法及系统
CN109168013A (zh) 一种抽帧的方法、装置、设备及计算机可读存储介质
US20210289388A1 (en) Network Offload Method and Relevant Device
CN103796040A (zh) 根据移动终端的网络状况发布多媒体数据的方法和装置
CN109495427A (zh) 多媒体数据展示方法、装置、存储介质和计算机设备
CN113747482A (zh) 检测分析业务网络的方法、系统及终端设备
CN113596904B (zh) 非周期定位报告的传输方法及设备
CN111107487B (zh) 位置显示控制方法及相关装置
CN109417802A (zh) 传输飞行信息的方法及装置
CN105743939B (zh) 一种消息推送的方法和装置
CN103139406A (zh) 进行电话会议交谈的方法及通信装置
CN102956208B (zh) 一种统计终端画面帧率的方法、装置及系统
CN106332169A (zh) 一种具备增强现实和游戏化功能的质量测量方法和系统
CN116503498A (zh) 一种画面渲染方法和相关装置
CN101557558A (zh) 一种基于移动位置服务的设备和方法
US10064075B2 (en) Mobile communication terminal test device and mobile communication terminal test method

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