画面处理方法、装置、终端及存储介质与流程

文档序号:17009668发布日期:2019-03-02 02:11阅读:179来源:国知局
画面处理方法、装置、终端及存储介质与流程
本申请实施例涉及终端
技术领域
,特别涉及一种画面处理方法、装置、终端及存储介质。
背景技术
:随着视频技术的发展,视频在播放时所采用的帧率越来越高。对于配置有较高的刷新帧率(比如:120帧/秒)的终端来说,在一些慢速变化的视频画面中,较高的刷新帧率没有大幅提升视频画面的视觉效果,反而会增大终端的功耗,降低终端的续航能力。技术实现要素:本申请实施例提供了一种画面处理方法、装置、终端及存储介质,可以用于解决相关技术中视频播放时一直采用较高的帧率处理画面导致终端功耗较大的问题。技术方案如下:根据本申请实施例的一方面,提供了一种画面处理方法,用于终端中,所述方法包括:获取目标应用程序的应用界面信息,所述应用界面信息用于指示所述目标应用程序的应用界面中的显示元素;根据所述应用界面信息确定所述目标应用程序对应的场景复杂度,所述场景复杂度为所述应用界面中的所述显示元素在时间和/或空间上的复杂程度;根据第一对应关系将与所述场景复杂度对应的帧率确定为目标帧率,所述第一对应关系包括所述场景复杂度与所述帧率之间的对应关系;按照所述目标帧率对所述目标应用程序中的待显示画面进行处理。根据本申请实施例的另一方面,提供了一种画面处理装置,用于终端中,所述装置包括:获取模块,用于获取目标应用程序的应用界面信息,所述应用界面信息用于指示所述目标应用程序的应用界面中的显示元素;第一确定模块,用于根据所述应用界面信息确定所述目标应用程序对应的场景复杂度,所述场景复杂度为所述应用界面中的所述显示元素在时间和/或空间上的复杂程度;第二确定模块,用于根据第一对应关系将与所述场景复杂度对应的帧率确定为目标帧率,所述第一对应关系包括所述场景复杂度与所述帧率之间的对应关系;处理模块,用于按照所述目标帧率对所述目标应用程序中的待显示画面进行处理。根据本申请实施例的另一方面,提供了一种终端,终端包括处理器、与所述处理器相连的存储器,以及存储在所述存储器上的程序指令,所述处理器执行所述程序指令时实现如本申请第一方面所述的画面处理方法。根据本申请实施例的另一方面,提供了一种计算机可读存储介质,一种计算机可读存储介质,其特征在于,其上存储有程序指令,所述程序指令被处理器执行时实现如本申请第一方面所述的画面处理方法。本申请实施例提供的技术方案带来的有益效果至少包括:通过获取目标应用程序的应用界面信息,根据应用界面信息确定目标应用程序对应的场景复杂度,根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率,按照目标帧率对目标应用程序中的待显示画面进行处理;使得在视频播放过程中终端能够动态的根据场景复杂度确定对应的目标帧率,避免了相关技术中视频播放时始终采用较高的帧率处理画面导致终端功耗较大的问题,在保证视频画面的视觉效果的同时降低终端的功耗,提高了终端的续航能力。附图说明图1是本申请一个示例性实施例所提供的终端的结构示意图;图2是本申请一个示例性实施例提供的画面处理方法的流程图;图3是本申请另一个示例性实施例提供的画面处理方法的流程图;图4是本申请另一个示例性实施例提供的画面处理方法的流程图;图5是本申请另一个示例性实施例所提供的终端的结构示意图;图6是本申请另一个示例性实施例提供的画面处理方法的流程图;图7是本申请一个实施例提供的画面处理装置的结构示意图。具体实施方式为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请的描述中,需要理解的是,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。在本申请的描述中,需要说明的是,除非另有明确的规定和限定,术语“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本申请中的具体含义。此外,在本申请的描述中,除非另有说明,“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,a和/或b,可以表示:单独存在a,同时存在a和b,单独存在b这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。首先,对本申请实施例涉及到的一些名词进行介绍:安卓操作系统:由美国谷歌公司出品的一种基于linux的自由及开放源代码的操作系统,主要使用于移动设备。应用程序:简称应用,在安卓操作系统中,一个应用程序通常包括至少一个程序组件。程序组件分为四种:活动(英文:activity)组件、服务(英文:service)组件、内容提供者(英文:contentprovider)组件和广播接收器(英文:broadcastreceiver)组件。活动组件:安卓应用程序中负责与用户交互的组件,它为安卓应用程序提供可视化的用户界面。一个安卓应用程序可以包括零到多个活动组件。内容提供者组件:安卓应用程序中用于为其它应用或者当前应用中的其它组件提供数据的组件,比如:铃声、壁纸、电话本等。它能够对各种格式的数据进行封装,以标准的形式提供给其它应用或者组件进行使用。意图(英文:intent)消息:安卓应用程序中实现各项程序组件之间进行通讯的一种消息,各项程序组件可以是同一应用程序中的不同组件,也可以是不同应用程序中的不同组件。intent消息负责对应用程序中一次操作的动作、动作涉及数据、附加数据进行描述,安卓操作系统根据该intent消息的描述,负责找到对应的程序组件,将intent消息传递给调用的程序组件,并完成程序组件的调用。系统用户界面(userinterface,ui)组件:在安卓操作系统中负责与用户交互的组件,它为安卓操作系统提供可视化的用户界面。在对本申请实施例进行解释说明之前,先对本申请实施例的应用场景进行说明。图1示出了本申请一个示例性实施例所提供的终端的结构示意图。该终端100是安装有目标应用程序的电子设备。该目标应用程序是系统程序或者第三方应用程序。其中,第三方应用程序是除了用户和操作系统之外的第三方制作的应用程序。可选的,该目标应用程序是具有视频播放功能的应用程序。该目标应用程序可以是视频播放应用程序,也可以是游戏应用程序。比如,该目标应用程序包括虚拟现实应用程序、三维地图程序、军事仿真程序、第三人称射击(third-personalshooting,tps)游戏、第一人称射击(first-personshooting,fps)游戏、moba游戏、多人枪战类生存游戏中的任意一种。该终端100是具有通讯功能的电子设备。比如,该终端为手机。可选的,该终端100中包括:处理器120和存储器140。处理器120可以包括一个或者多个处理核心。处理器120利用各种接口和线路连接整个终端100内的各个部分,通过运行或执行存储在存储器140内的指令、程序、代码集或指令集,以及调用存储在存储器140内的数据,执行终端100的各种功能和处理数据。可选的,处理器120可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器120可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器120中,单独通过一块芯片进行实现。存储器140可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(英文:read-onlymemory)。可选的,该存储器140包括非瞬时性计算机可读介质(英文:non-transitorycomputer-readablestoragemedium)。存储器140可用于存储指令、程序、代码、代码集或指令集。存储器140可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。请参考图2,其示出了本申请一个示例性实施例提供的画面处理方法的流程图。本实施例以该画面处理方法应用于图1所示出的终端中来举例说明。该画面处理方法包括:步骤201,获取目标应用程序的应用界面信息,应用界面信息用于指示目标应用程序的应用界面中的显示元素。可选的,当终端检测到处于前台运行的应用程序为目标应用程序时,获取目标应用程序的应用界面信息。终端可以采用主动轮询的方式监控前台运行活动,根据前台运行活动来确定是否产生应用程序运行事件,当产生应用程序运行事件时确定应用程序运行事件对应的应用程序,即此时处于前台运行状态的应用程序。其中,活动是包含一个或多个用户界面的组件,用于实现与用户之间的交互,每个应用程序可以包括多个活动,每个活动对应一种用户界面。前台运行活动是位于最上层的用户界面相对应的组件。最上层的用户界面是用户在使用终端时在屏幕上看见的用户界面。以操作系统为安卓操作系统为例,活动是可以层叠的,每当启动一个新的活动,新的活动就会覆盖在原活动之上;使用活动栈存放启动的活动,活动栈是一种后进先出的数据结构,在默认情况下,每启动一个活动,该活动就会在活动栈中入栈,并处于栈顶位置,处于栈顶位置的活动是前台运行活动。当前台运行活动发生变化时,活动栈中处于栈顶位置的活动也会发生变化。需要说明的是,除了新的活动会位于栈顶,将一个旧的活动切换到前台运行时,该旧的活动也会重新移动到栈顶。可选的,目标应用程序的应用界面信息用于指示目标应用程序在指定时间段内的n帧视频画面,n为正整数。指定时段为终端默认设置的,或者是用户自定义设置的。指定时段为帧率的动态调整周期,可根据实际需求进行设定。比如,指定时段为1秒,若终端的刷新帧率为60hz,则终端获取用于指示目标应用程序在1秒内的60帧视频画面的应用界面信息。可选的,目标应用程序的应用界面信息用于指示目标应用程序的应用界面中的显示元素。目标应用程序的应用界面信息包括目标应用程序的应用界面中所包括的显示元素的元素类型和/或每个元素类型对应的元素数量。示意性的,当目标应用程序为游戏应用程序时,目标应用程序的应用界面信息包括渲染次数、骨骼数量、顶点数量和三角形数量中的至少一种。步骤202,根据应用界面信息确定目标应用程序对应的场景复杂度,场景复杂度为应用界面中的显示元素在时间和/或空间上的复杂程度。终端根据应用界面信息确定目标应用程序对应的场景复杂度,包括但不限于以下几种可能的实现方式。在一种可能的实现方式中,终端对应用界面信息进行分析,得到该应用界面信息对应的应用界面的场景复杂度。在另一种可能的实现方式中,终端将应用界面信息发送至服务器,对应的,服务器接收该应用界面信息。服务器对该应用界面信息进行分析计算得到场景复杂度,并将计算得到的场景复杂度发送至终端。终端接收服务器发送的场景复杂度。需要说明的是,终端根据应用界面信息确定目标应用程序对应的场景复杂度的过程可参考下面实施例中的相关描述,在此先不介绍。可选的,场景复杂度为目标应用程序的应用界面中的显示元素在时间和/或空间上的复杂程度。场景复杂度的数值越大,表示该应用界面所包括的显示元素的复杂程度越高。场景复杂度通常用大于0的实数表示。可选的,应用界面中的显示元素在时间上的复杂程度用于指示目标应用程序在指定时间段内的n帧视频画面各自对应的显示元素的差异度。应用界面中的显示元素在空间上的复杂程度用于指示当前画面中所包括的显示元素的内容复杂性。步骤203,根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率,第一对应关系包括场景复杂度与帧率之间的对应关系。可选的,帧率包括绘制帧率、合成帧率和刷新帧率中的至少一种。绘制帧率为单位时间段内绘制图层的次数。绘制帧率为单一图层对应的绘制帧率。单一图层对应的绘制帧率为同一图层名称的图层在指定时段被触发绘制的次数。比如,单位时间段为1秒。合成帧率为单位时间段内合成视频画面的帧数。即合成帧率为至少两个绘制的图层合称为一个视频画面的帧率。刷新帧率为单位时间段内终端的屏幕中视频画面被刷新的帧数。刷新帧率也称为屏幕刷新率或者刷新率。通常,终端的显示屏以60hz的刷新帧率进行刷新处理。第一对应关系是终端默认设置的,或者是用户自定义设置的。终端中存储有场景复杂度与帧率之间的第一对应关系。在一种可能的实现方式中,场景复杂度用大于0的实数表示。第一对应关系如表一所示。当场景复杂度在(0,20]的区间内时,对应的帧率为“60hz”;当场景复杂度在(0,20]的区间内时,对应的帧率为“60hz”;当场景复杂度在(20,50]的区间内时,对应的帧率为“90hz”;当场景复杂度在(50,+∞)的区间内时,对应的帧率为“120hz”。表一场景复杂度帧率(0,20]60hz(20,50]90hz(50,+∞)120hz步骤204,按照目标帧率对目标应用程序中的待显示画面进行处理。终端按照目标帧率对目标应用程序中的待显示画面进行处理,可以包括:终端以目标帧率对待显示画面进行图层绘制处理、图层合成处理和刷新处理中的一种。综上所述,本实施例通过获取目标应用程序的应用界面信息,根据应用界面信息确定目标应用程序对应的场景复杂度,根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率,按照目标帧率对目标应用程序中的待显示画面进行处理;使得在视频播放过程中终端能够动态的根据场景复杂度确定对应的目标帧率,避免了相关技术中视频播放时始终采用较高的帧率处理画面导致终端功耗较大的问题,在保证视频画面的视觉效果的同时降低终端的功耗,提高了终端的续航能力。需要说明的是,上述步骤202即根据应用界面信息确定目标应用程序对应的场景复杂度,包括但不限于以下两种可能的实现方式。在一种可能的实现方式中,上述步骤202可被替换实现成为如下几个步骤,如图3所示:步骤301,获取多个元素类型各自对应的权重值。可选的,应用界面信息包括应用场景中的多个元素类型各自对应的元素数量。可选的,当目标应用程序为游戏应用程序时,目标应用程序对应的元素类型包括渲染操作、骨骼、顶点和三角形中的至少一种。应用界面信息包括渲染次数、骨骼数量、顶点数量和三角形数量中的至少一种。可选的,渲染次数也称drawcall,为cpu调用底层图形绘制接口命令gpu执行渲染操作的次数。骨骼数量为应用界面中所包括的至少一个虚拟角色模型的骨骼的总数量。顶点数量为应用界面中所包括的至少一个虚拟角色模型的顶点的总数量。多个顶点可以组合成不同形状不同数量的三角形。终端中存储有m个元素类型各自对应的权重值,m为正整数。比如,元素类型包括元素类型a、元素类型b和元素类型c,终端中存储有这3个元素类型各自对应的权重值,即元素类型a对应的权重值为0.3,元素类型b对应的权重值为0.2,元素类型c对应的权重值为0.5。步骤302,根据多个元素类型各自对应的元素数量和权重值计算得到场景复杂度。可选的,终端根据多个元素类型各自对应的元素数量和权重值,通过如下公式计算得场景复杂度c:其中,c为场景复杂度,wi为第i个元素类型对应的权重值,ni为第i个元素类型对应的元素数量,n为应用界面中所包括的元素类型的种类数。终端在计算得到场景复杂度之后,执行上述步骤203。可选的,上述步骤301和步骤302可以被替换实现成为如下几个步骤:终端从多个元素类型中选取满足预设条件的k个目标元素类型,k为正整数;获取k个目标元素类型各自对应的权重值;根据k个目标元素类型各自对应的权重值,将k个目标元素类型各自对应的元素数量进行加权求和计算得到场景复杂度。其中,预设条件包括元素类型为预设的构成画面的基础元素类型,和/或,元素类型对应的元素数量高于数量阈值。可选的,多个目标应用程序各自对应的基础元素类型是相同的,或者存在至少两个目标应用程序各自对应的基础元素类型是不同的。终端从多个元素类型中选取满足预设条件的k个目标元素类型,可以包括:对于多个元素类型中的每个元素类型,终端判断该元素类型是否满足预设条件,若满足则将该元素类型确定为目标元素类型。可选的,终端在判断该元素类型是否满足预设条件之前,还包括:终端获取目标应用程序的包名,根据第二对应关系获取与包名对应的基础元素类型。其中,第二对应关系包括应用程序的包名与基础元素类型之间的对应关系。可选的,终端在判断该元素类型是否满足预设条件之前,还包括:终端获取目标应用程序的应用类型,根据第三对应关系获取与应用类型对应的基础元素类型。其中,第三对应关系包括应用程序的应用类型与基础元素类型之间的对应关系。示意性的,应用程序的应用类型包括视频应用程序、游戏应用程序和绘图应用程序中的至少一种。比如,当目标应用程序为游戏应用程序时,基础元素类型包括渲染操作、骨骼、顶点和三角形中的至少一种。可选的,多个元素类型各自对应的数量阈值是相同的,或者存在至少两个元素类型各自对应的数量阈值是不同的。元素类型对应的数量阈值是终端默认设置的,或者是用户自定义设置的。本实施例对此不加限定。需要说明的是,终端获取k个目标元素类型各自对应的权重值,根据k个目标元素类型各自对应的权重值,将k个目标元素类型各自对应的元素数量进行加权求和计算得到场景复杂度的过程可类比参考上述实施例中的相关细节,在此不再赘述。在一个示意性的例子中,目标应用程序为游戏应用程序,终端获取该游戏应用程序的应用界面信息,该应用界面信息包括骨骼对应的骨骼数量“50”、顶点对应的顶点数量“5”和三角形对应的三角形数量“20”,终端获取骨骼对应的权重值为0.3,顶点对应的权重值为0.2,三角形对应的权重值为0.5,计算得到游戏应用程序的应用界面的场景复杂度为50*0.3+5*0.2+20*0.5=26。基于表一提供的第一对应关系,终端将与场景复杂度“26”对应的帧率“90hz”为目标帧率,采用90hz的目标帧率对游戏应用程序中的待显示画面进行处理。综上所述,本实施例还通过应用界面信息包括应用界面中的多个元素类型各自对应的元素数量,终端根据多个元素类型各自对应的元素数量和权重值计算得到场景复杂度,使得终端能够较为快速且准确地确定出该应用界面所处的应用场景的复杂程度,进一步提高了后续对帧率进行控制的效率。在另一种可能的实现方式中,上述步骤202可被替换实现成为如下几个步骤,如图4所示:步骤401,终端将携带有应用界面信息的场景识别请求发送至服务器。终端在获取到应用界面信息之后,生成携带有应用界面信息的场景识别请求,将该场景识别请求发送至服务器。场景识别请求用于指示服务器获取场景分析模型,根据应用界面信息采用场景分析模型计算得到场景复杂度,将场景复杂度发送至终端。其中,场景分析模型用于表示基于样本应用界面信息进行训练得到的场景分类规律。步骤402,服务器接收到场景识别请求之后,获取场景分析模型。服务器在接收场景识别请求之后,获取场景分析模型。场景分析模型是服务器基于原始参数模型预先训练得到的模型。可选的,原始参数模型是根据神经网络模型建立的,比如:原始参数模型包括但不限于:卷积神经网络(convolutionalneuralnetwork,cnn)模型、深度神经网络(deepneuralnetwork,dnn)模型、循环神经网络(recurrentneuralnetworks,rnn)模型、嵌入(英文:embedding)模型、梯度提升决策树(gradientboostingdecisiontree,gbdt)模型、逻辑回归(logisticregression,lr)模型中的至少一种。服务器训练场景分析模型的过程可以包括:服务器获取训练样本集,训练样本集包括至少一组样本数据组;终端对至少一组样本数据组采用误差反向传播算法进行训练,得到场景分析模型。其中,每组样本数据组包括:样本应用界面信息和预先标定的正确场景复杂度。步骤403,服务器根据场景识别请求中的应用界面信息,采用场景分析模型计算得到场景复杂度,将场景复杂度发送至终端。可选的,服务器从场景识别请求中获取应用界面信息,将应用界面信息输入至场景分析模型中输出得到场景复杂度,向终端发送输出得到的场景复杂度。需要说明的是,上述场景分析模型的训练过程和计算过程的执行主体是服务器,在一种可能的实现方式中,终端也可以预先训练场景分析模型,并将训练得到的场景分析模型存储在终端中。终端获取到应用界面信息之后,将应用界面信息输入至自身存储的场景分析模型中输出得到场景复杂度。相关细节可类比参考上述实施例中的相关步骤,在此不再赘述。步骤404,终端接收服务器发送的场景复杂度。终端在接收到服务器发送的场景复杂度之后,执行上述步骤203。在一个示意性的例子中,目标应用程序为游戏应用程序,终端获取该游戏应用程序的应用界面信息,该应用界面信息包括骨骼对应的骨骼数量“257”、顶点对应的顶点数量“18”和三角形对应的三角形数量“26”,终端将携带有应用界面信息的场景识别请求发送至服务器,服务器将应用界面信息输入至场景分析模型中输出得到场景复杂度“56”,向终端发送输出得到的场景复杂度。基于表一提供的第一对应关系,终端将与场景复杂度“56”对应的帧率“120hz”为目标帧率,采用120hz的目标帧率对游戏应用程序中的待显示画面进行处理。综上所述,本实施例还通过将携带有应用界面信息的场景识别请求发送至服务器,使得服务器根据场景识别请求中的应用界面信息采用预先训练好的场景分析模型计算得到场景复杂度,将场景复杂度发送至终端;对应的,终端接收服务器发送的场景复杂度;使得服务器能够根据预先训练得到的场景分析模型计算得到应用界面对应的场景复杂度,提高了计算得到的场景复杂度的准确度,使得终端确认场景复杂度的方式更加智能化。可选的,场景复杂度用于指示应用界面所处的应用场景的场景类型,场景类型用于指示应用场景的复杂程度。终端中存储有场景复杂度与场景类型之间的对应关系。多个场景复杂度与多个场景类型存在一一对应的关系,或者,存在至少两个场景复杂度对应同一个场景类型。本实施例对此不加以限定。上述步骤203即根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率,包括但不限于以下两种可能的实现方式。在一种可能的实现方式中,当场景复杂度小于或者等于第一阈值时,确定场景复杂度所指示的场景类型为第一场景类型,并将与第一场景类型对应的第一帧率确定为目标帧率;当场景复杂度大于第一阈值时,确定场景复杂度所指示的场景类型为第二场景类型,并将与第二场景类型对应的第二帧率确定为目标帧率。其中,第二场景类型所指示的应用场景的复杂程度高于第一场景类型所指示的应用场景的复杂程度,第二帧率高于第一帧率。比如,当目标应用程序为游戏应用程序时,第二场景类型所指示的应用场景为游戏对战场景,第一场景类型所指示的应用场景为非游戏对战场景,非游戏对战场景包括资源更新场景、帐号登录场景、游戏主界面场景、商城界面场景、游戏内加载场景中的至少一种。在一个示意性的例子中,目标应用程序为游戏应用程序,场景复杂度、场景类型和帧率之间的对应关系如表二所示。当场景复杂度小于或者等于“40”时对应的场景类型为第一场景类型“非游戏对战场景”;与第一场景类型对应的第一帧率为“60hz”;当场景复杂度大于“40”时对应的场景类型为第二场景类型“游戏对战场景”,与第一场景类型对应的第一帧率为“120hz”。表二场景复杂度场景类型帧率(0,40]非游戏对战场景60hz(40,+∞)游戏对战场景120hz在另一种可能的实现方式中,当场景复杂度小于或者等于第三阈值时,确定场景复杂度所指示的场景类型为第三场景类型,并将与第三场景类型对应的第三帧率确定为目标帧率;当场景复杂度大于第三阈值且小于第四阈值时,确定场景复杂度所指示的场景类型为第四场景类型,并将与第四场景类型对应的第四帧率确定为目标帧率;当场景复杂度大于或者等于第四阈值时,确定场景复杂度所指示的场景类型为第五场景类型,并将与第五场景类型对应的第五帧率确定为目标帧率。其中,第三阈值小于第四阈值,第三帧率小于第四帧率,第四帧率小于第五帧率,第五场景类型所指示的应用场景的复杂程度高于第四场景类型所指示的应用场景的复杂程度,第四场景类型所指示的应用场景的复杂程度高于第三场景类型所指示的应用场景的复杂程度。需要说明的一点是,本实施例对上述提及的数值(包括第一阈值、第三阈值、第四阈值、第一帧率、第二帧率、第三帧率和第四帧率)的具体取值不加以限定。需要说明的另一点是,场景复杂度、场景类型和帧率之间的对应关系是终端默认设置的,或者是用户自定设置的。本实施例对此不加以限定。请参考图5,终端包括虚拟引擎51、后台性能服务52和安卓显示子系统53。1、当终端的目标应用程序处于前台运行时,虚拟引擎51用于获取目标应用程序的应用界面信息,并将应用界面信息发送至后台性能服务。2、后台性能服务52用于根据应用界面信息确定目标应用程序对应的场景复杂度。后台性能服务52用于接收虚拟引擎51发送的应用界面信息,并根据应用界面信息确定目标应用程序对应的场景复杂度。3、后台性能服务52还用于根据场景复杂度设置对应的目标帧率。后台性能服务52还用于根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率。目标帧率包括绘制帧率、合成帧率和刷新帧率中的至少一种。可选的,当目标帧率包括绘制帧率和/或合成帧率时,后台性能服务以目标帧率对待显示画面进行图层绘制处理和/或图层合成处理。即当目标帧率包括绘制帧率时,后台性能服务以目标帧率对待显示画面进行图层绘制处理。当目标帧率包括合成帧率时,后台性能服务以目标帧率对待显示画面进行图层合成处理。当目标帧率包括绘制帧率和合成帧率时,后台性能服务以目标帧率对待显示画面进行图层绘制处理和图层合成处理。可选的,当目标帧率包括刷新帧率时,后台性能服务52还用于将目标帧率发送至安卓显示子系统53。对应的,安卓显示子系统53用于以目标帧率对待显示画面进行刷新处理。下面的实施例中仅以目标帧率为刷新帧率为例进行说明。基于图5所示出的终端,本实施例提供一种画面处理方法,该方法包括如下几个步骤,请参考图6:步骤601,当目标应用程序处于前台运行时,虚拟引擎51获取目标应用程序的应用界面信息,并将应用界面信息发送至后台性能服务52。可选的,当目标应用程序处于前台运行时,目标应用程序与虚拟引擎51建立连接。目标应用程序的应用场景相关的数据即可以通过该连接传输给虚拟引擎51。目标应用程序的应用场景相关的数据至少包括目标应用程序的包名(英文:packagename)和应用界面信息。其中,目标应用程序的包名用于唯一标识目标应用程序。可选的,当目标应用程序为游戏应用程序,虚拟引擎51为游戏引擎。示意性的,虚拟引擎51为虚幻4引擎(unrealengine4,ue4)或者由unitytechnologies开发的unity引擎。步骤602,后台性能服务52接收虚拟引擎51发送的应用界面信息。可选的,后台性能服务52接收虚拟引擎51发送的应用界面信息和目标应用程序的包名。步骤603,后台性能服务52根据应用界面信息确定目标应用程序对应的场景复杂度。可选的,后台性能服务52获取目标应用程序的包名对应的配置文件,该配置文件中存储有多个元素类型各自对应的权重值。后台性能服务52根据应用界面信息中包括的多个元素类型各自对应的元素数量和权重值计算得到场景复杂度。步骤604,后台性能服务52根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率。后台性能服务52确定场景复杂度所指示的场景类型,将确定出的场景类型对应的帧率确定为目标帧率。可选的,对于不同的芯片平台,该目标帧率为gpu帧率或者cpu帧率。步骤605,后台性能服务52将目标帧率发送至安卓显示子系统53。当目标帧率为刷新帧率时后台性能服务52将目标帧率发送至安卓显示子系统53。步骤606,安卓显示子系统53以目标帧率对待显示画面进行刷新处理。对应的,安卓显示子系统53接收后台性能服务52发送的目标帧率,以目标帧率对目标应用程序中的待显示画面进行刷新处理。下述为本申请装置实施例,可以用于执行本申请方法实施例。对于本申请装置实施例中未披露的细节,请参照本申请方法实施例。请参考图7,其示出了本申请一个实施例提供的画面处理装置的结构示意图。该画面处理装置可以通过专用硬件电路,或者,软硬件的结合实现成为图1或者图5中的终端的全部或一部分,该画面处理装置包括:获取模块710、第一确定模块720、第二确定模块730和处理模块740。获取模块710,用于获取目标应用程序的应用界面信息,应用界面信息用于指示目标应用程序的应用界面中的显示元素;第一确定模块720,用于根据应用界面信息确定目标应用程序对应的场景复杂度,场景复杂度为应用界面中的显示元素在时间和/或空间上的复杂程度;第二确定模块730,用于根据第一对应关系将与场景复杂度对应的帧率确定为目标帧率,第一对应关系包括场景复杂度与帧率之间的对应关系;处理模块740,用于按照目标帧率对目标应用程序中的待显示画面进行处理。可选的,应用界面信息包括应用界面中的多个元素类型各自对应的元素数量;第一确定模块720,还用于获取多个元素类型各自对应的权重值;根据多个元素类型各自对应的元素数量和权重值计算得到场景复杂度。可选的,第一确定模块720,还用于从多个元素类型中选取满足预设条件的k个目标元素类型,k为正整数;获取k个目标元素类型各自对应的权重值;根据k个目标元素类型各自对应的权重值,将k个目标元素类型各自对应的元素数量进行加权求和计算得到场景复杂度;其中,预设条件包括元素类型为预设的构成画面的基础元素类型,和/或,元素类型对应的元素数量高于数量阈值。可选的,第二确定模块730,还用于当场景复杂度小于或者等于第一阈值时,确定场景复杂度所指示的场景类型为第一场景类型,并将与第一场景类型对应的第一帧率确定为目标帧率;当场景复杂度大于第一阈值时,确定场景复杂度所指示的场景类型为第二场景类型,并将与第二场景类型对应的第二帧率确定为目标帧率;其中,第二场景类型所指示的应用场景的复杂程度高于第一场景类型所指示的应用场景的复杂程度,第二帧率高于第一帧率。可选的,终端包括虚拟引擎和后台性能服务,获取模块710,还用于当目标应用程序处于前台运行时,虚拟引擎获取目标应用程序的应用界面信息,并将应用界面信息发送至后台性能服务;后台性能服务接收虚拟引擎发送的应用界面信息。可选的,处理模块740,还用于通过后台性能服务以目标帧率对待显示画面进行图层绘制处理和/或图层合成处理。可选的,终端还包括安卓显示子系统,处理模块740,还用于通过后台性能服务将目标帧率发送至安卓显示子系统;通过安卓显示子系统以目标帧率对待显示画面进行刷新处理。可选的,目标应用程序为游戏应用程序时,应用界面信息包括渲染次数、骨骼数量、顶点数量和三角形数量中的至少一种。相关细节可结合参考图2、图3、图4和图6所示的方法实施例。其中,获取模块710还用于实现上述方法实施例中其他任意隐含或公开的与获取步骤相关的功能;第一确定模块720和第二确定模块730还用于实现上述方法实施例中其他任意隐含或公开的与确定步骤相关的功能;处理模块740还用于实现上述方法实施例中其他任意隐含或公开的与处理步骤相关的功能。需要说明的是,上述实施例提供的装置,在实现其功能时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的装置与方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。本申请还提供一种计算机可读介质,其上存储有程序指令,程序指令被处理器执行时实现上述各个方法实施例提供的画面处理方法。本申请还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述各个实施例所述的画面处理方法。上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。本领域普通技术人员可以理解实现上述实施例的画面处理方法中全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1