CN112069042B - 动画性能监测方法、装置、存储介质和计算机设备 - Google Patents
动画性能监测方法、装置、存储介质和计算机设备 Download PDFInfo
- Publication number
- CN112069042B CN112069042B CN201910502947.5A CN201910502947A CN112069042B CN 112069042 B CN112069042 B CN 112069042B CN 201910502947 A CN201910502947 A CN 201910502947A CN 112069042 B CN112069042 B CN 112069042B
- Authority
- CN
- China
- Prior art keywords
- animation
- frame
- file
- animation file
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3452—Performance evaluation by statistical analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Quality & Reliability (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Life Sciences & Earth Sciences (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Probability & Statistics with Applications (AREA)
- Processing Or Creating Images (AREA)
Abstract
本申请涉及一种动画性能监测方法、装置、存储介质和计算机设备,所述方法包括:获取目标格式的动画文件;通过专用动画预览器播放所述动画文件的动画帧;在播放过程中确定所播放的每个动画帧对应的帧耗时参数;通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。本申请提供的方案可以实现提高动画性能的监测效率。
Description
技术领域
本申请涉及图像处理技术领域,特别是涉及一种动画性能监测方法、装置、存储介质和计算机设备。
背景技术
随着图像处理技术和网络技术的不断发展,动画的应用也越来越广泛,例如在客户端的页面上设置动画,可以提高页面的观赏效果。或者,用户在通过客户端拍摄视频过程中,可以选择相应的动画以便与所拍摄的视频进行合成,从而使拍摄出来的视频中具有用户想要的动画效果。
动画在应用过程中,其性能作为客户端应用的一个重要指标,会影响到终端的流畅度和内存占用情况等,因此需要对动画的性能进行监测。传统的动画性能监测方案中,主要方法是:将动画运用到具体的应用中,在开启动画前使用监测软件监测该应用运行的参数,然后在开启动画后监测该应用运行的参数,通过两次所监测到的参数进行对比来确定动画性能。
然而,采用传统的动画性能监测方案,当动画应用到不同操作系统的应用时,需要针对不同操作系统进行动画性能的监测,从而增加了监测人员的监测时间,从而降低了动画性能的监测效率。
发明内容
基于此,有必要针对动画性能的监测效率低的技术问题,提供一种动画性能监测方法、装置、存储介质和计算机设备。
一种动画性能监测方法,包括:
获取目标格式的动画文件;
通过专用动画预览器播放所述动画文件的动画帧;
在播放过程中确定所播放的每个动画帧对应的帧耗时参数;
通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
一种动画性能监测装置,所述装置包括:
获取模块,用于获取目标格式的动画文件;
播放模块,用于通过专用动画预览器播放所述动画文件的动画帧;
确定模块,用于在播放过程中确定所播放的每个动画帧对应的帧耗时参数;
展示模块,用于通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行上述动画性能监测方法的步骤。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行上述动画性能监测方法的步骤。
上述动画性能监测方法、装置、存储介质和计算机设备,通过专用动画预览器来播放目标格式的动画文件,可以在播放过程中实时地获取针对监测动画文件各动画帧对应的帧性能参数,展示各动画帧对应的帧耗时参数分布图,从而实现了动画性能的检测。此外,专用动画预览器在播放动画文件时,可以实时的获取并展示动画的帧耗时参数分布图,无需将动画文件运用到具体的应用中进行监测,从而有效地降低监测时间,提高动画的性能检测效率。
附图说明
图1为一个实施例中动画性能监测方法的应用环境图;
图2为一个实施例中动画性能监测方法的流程示意图;
图3为一个实施例中专用动画预览器播放优化前的动画文件和显示性能参数的界面示意图;
图4为一个实施例中查看目标动画帧的帧性能参数的步骤的流程示意图;
图5为一个实施例中绘制并展示帧耗时参数分布图的步骤的流程示意图;
图6为一个实施例中通过性能检测页面展示帧耗时参数分布图的步骤的流程示意图;
图7为一个实施例中在动画文件中添加动画模式并发送的步骤的流程示意图;
图8为一个实施例中专用动画预览器播放优化后的动画文件和显示性能参数的界面示意图;
图9为一个实施例中在动画文件优化前,播放动画文件前后内存占用的对比示意图;
图10为另一个实施例中动画性能监测方法的流程示意图;
图11为一个实施例中在动画文件优化后,播放动画文件前后内存占用的对比示意图;
图12为一个实施例中动画性能监测装置的结构框图;
图13为另一个实施例中动画性能监测装置的结构框图;
图14为一个实施例中计算机设备的结构框图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
图1为一个实施例中动画性能监测方法的应用环境图。参照图1,该动画性能监测方法应用于动画性能监测系统。该动画性能监测系统包括终端110、服务器120和终端130。服务器120分别通过网络与终端110和终端130进行通信连接。终端110为开发端设备,具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。终端130为用户端设备,具体可以是台式终端或移动终端,移动终端具体可以手机、平板电脑、笔记本电脑等中的至少一种。服务器120可以用独立的服务器或者是多个服务器组成的服务器集群来实现。
如图2所示,在一个实施例中,提供了一种动画性能监测方法。本实施例主要以该方法应用于上述图1中的终端110来举例说明。参照图2,该动画性能监测方法具体包括如下步骤:
S202,获取目标格式的动画文件。
其中,目标格式可以是PAG动画格式,后缀名为PAG(或pag)。PAG动画是一种采用可扩展的原生二进制文件格式的动画,可对文本或图片等资源进行集成到单文件内得到PAG动画。此外,PAG动画采用了极高压缩率的动态比特位存储技术。另外,PAG动画格式的动画文件可以实现跨平台运行,且在运行时可在保留动画效果的前提下,任意动态修改动画中的文本内容、字体大小样式,而且还可以替换图片内容,实现丰富多样的动画内容定制效果。
在一个实施例中,S202之前,该方法还可以包括:当通过AE(Adobe AfterEffects,Adobe后期动画合成)客户端制作动画文件后,通过在AE客户端安装的PAG导出插件(也可称为AE插件)导出目标格式的动画文件。其中,安装的PAG导出插件是专门为AE客户端开发的用于导出目标格式的插件。动画模式需要说明的是,目标格式的动画文件需要在AE客户端安装PAG导出插件。
在一个实施例中,终端接收在专用动画浏览器的动画添加页面触发的第一动画文件选择指令,展示动画选取页面,其中该动画选取页面用于展示各动画文件的图形标识。终端接收输入的第二动画文件选择指令,从所展示的各动画文件中选取动画文件选择指令所指定的动画文件。
在另一个实施例中,终端展示动画库,当检测到输入的动画文件播放指令时,从展示的动画库中选取动画文件播放指令指定的动画文件,并开启与该动画文件对应的专用播放器,执行S204。
S204,通过专用动画预览器播放动画文件的动画帧。
其中,专用动画预览器可以是播放目标格式专用的预览器。在实际应用中,专用动画预览器可以是具体可以是PAGViewer。PAGViewer为预览PAG动画效果而开发的应用程序,除了具有预览动画效果的功能外,还可以提供性能监测页面,即可以量化并展示每个动画文件所占用的显存大小、动画渲染耗时等一系列性能指标,为动画文件的制作和动画的全局性能参数修改提供依据。动画帧可以指动画文件中的用于播放的图像,图像按照规定的时间进行播放。
在一个实施例中,终端接收输入的关于专用动画预览器的安装指令,在终端上安装专用动画预览器,在安装的过程中,还可以按照要求获取终端的密码(如开机密码)。当专用动画预览器安装完成后,终端自动对本地存储的目标格式的动画文件进行关联,以便当点击(如双击)目标格式的动画文件时,可启动专用动画预览器进行预览播放。
例如,安装的方式可以包括以下两种方式:
(1)按照命令行安装专用动画预览器
终端将“curl-s dldir1.qq.com/qqmi/libpag/install|bash”这个命令行复制到终端程序,在接收到输入的安装指令(如按下回车键)即可开始在线安装,安装过程可能会要求输入本机密码以获取目标格式的动画文件写入权限。
(2)按照图形化安装专用动画预览器
终端下载PAGInstaller.dmg图形安装器,接收输入的双击内部安装程序的指令以进行在线安装,安装过程可能会要求输入本机密码以获取目标格式的动画文件写入权限。
在一个实施例中,终端在通过专用动画预览器播放动画文件的动画帧时,可以实时检测输入的关于动画的操作指令,如暂停指令、进度跳转指令和动画帧的帧性能参数展示指令等。终端根据输入的操作指令对所播放的动画文件进行播放状态的调整。例如,当检测到动画帧的帧性能参数展示指令时,终端将启动性能监测页面,以便在性能检测页面上展示动画帧的帧性能参数。
S206,在播放过程中确定所播放的每个动画帧对应的帧耗时参数。
其中,帧耗时参数可以包括动画帧的渲染耗时、解码耗时和上屏耗时等。
在一个实施例中,终端在通过专用动画预览器播放(也即预览)动画文件时,可以先对动画文件进行解码,然后对解码后的文件进行渲染,最后上屏展示以实现动画预览。
动画文件的解码、渲染和上屏展示均耗费一定的时间,这里可以对解码、渲染和上屏的耗时进行计算,以确定动画性能。
1)解码耗时的计算
在一个实施例中,终端采用插桩统计的方式对动画文件的动画帧的解码耗时进行计算。具体地,终端在使用专用动画预览器预览动画文件时,在解码函数执行动画帧的解码之前进行埋点,记录当前的第一时刻。然后,终端执行动画帧的解码,解码结束之后再埋一个点,记录当前的第二时刻。终端计算该动画帧的解码时间=第二时刻-第一时刻,从而可以得到各动画帧的解码耗时。
例如,假设动画文件共有n帧(n为大于1的正整数),终端在对第i帧(1≤i≤n,i为正整数)进行解码之前,记录当前时刻t1,然后执行第i帧的解码。终端在第i帧解码完成后,再埋一个点,记录当前时刻t2,从而可以计算出第i帧动画帧的解码耗时t=t2-t1。
2)渲染耗时的计算
在一个实施例中,终端采用插桩统计的方式对动画文件的动画帧的渲染耗时进行计算。具体地,终端在使用专用动画预览器预览动画文件时,在渲染函数执行动画帧的渲染之前进行埋点,记录当前的第一时刻。然后,终端执行动画帧的渲染,渲染结束之后再埋一个点,记录当前的第二时刻。终端计算该动画帧的渲染时间=第二时刻-第一时刻,从而可以得到各动画帧的渲染耗时。
3)上屏耗时的计算
在一个实施例中,终端采用插桩统计的方式对动画文件的动画帧的上屏耗时进行计算。具体地,终端在使用专用动画预览器预览动画文件时,在上屏函数执行动画帧的上屏之前进行埋点,记录当前的第一时刻。然后,终端执行动画帧的上屏,上屏结束之后再埋一个点,记录当前的第二时刻。终端计算该动画帧的上屏时间=第二时刻-第一时刻,从而可以得到各动画帧的上屏耗时。
S208,通过专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照动画帧的播放顺序展示为帧耗时参数分布图。
其中,展示的帧耗时参数分布图用于调整动画文件的动画设计参数。动画文件的帧耗时参数分布图可以根据不同动画帧的帧耗时参数绘制而成,可以是柱状图形。由于帧耗时参数可以包括动画帧的渲染耗时、解码耗时和上屏耗时,因此对于某个帧的帧耗时参数分布图而言,其柱状图形可以分三个部分,各部分可以采用一种特定呈现方式,该呈现方式可以是在柱状图利用不同的填充颜色来呈现,从而通过三种颜色来表示不同的渲染耗时、解码耗时和上屏耗时。此外,该呈现方式还可以是在柱状图使用不同的填充图案来呈现。例如,柱状图形的三个部分可以采用细线、粗线和虚线的方式分别表示不同的渲染耗时、解码耗时和上屏耗时;或者,柱状图形的三个部分内部可以采用横线、竖线和斜线的填充方式分别表示不同的渲染耗时、解码耗时和上屏耗时。
作为一个示例,如图3所示,终端通过专用动画预览器播放动画文件时,关于各动画帧的渲染耗时、解码耗时和上屏耗时,分别用Render、Image和Present进行表示。当播放完第i帧动画帧时,对应的渲染耗时、解码耗时和上屏耗时可以通过计算得到,其中,渲染耗时为81微秒,解码耗时为490微秒,上屏耗时设为0(在图3的示例中未纳入计算)。因此,终端可以通过专用动画预览器对渲染耗时、解码耗时和上屏耗时进行图形绘制,从而生成帧耗时参数分布图并按照播放顺序进行展示(如图3箭头线所指向的第i帧动画帧的柱状图形)。
在一个实施例中,终端通过专用动画预览器展示帧耗时参数分布图之外,还可以展示已播放动画帧对应的帧耗时参数。
在一个实施例中,由于帧耗时参数可以包括动画帧的渲染耗时、解码耗时和上屏耗时,终端在确定某个动画帧对应的帧耗时参数时,分别按照帧耗时参数中的渲染耗时、解码耗时和上屏耗时进行图形的绘制,生成用于表示动画帧在解码、渲染和上屏过程中所耗费时间的帧耗时参数分布图,然后按照动画帧的播放顺序展示在性能监测页面。
上述实施例中,通过专用动画预览器来播放目标格式的动画文件,可以在播放过程中实时地获取针对监测动画文件各动画帧对应的帧性能参数,展示各动画帧对应的帧耗时参数分布图,从而实现了动画性能的检测。此外,专用动画预览器在播放动画文件时,可以实时的获取并展示动画的帧耗时参数分布图,无需将动画文件运用到具体的应用中进行监测,从而有效地降低监测时间,提高动画的性能检测效率。
在一个实施例中,如图4所示,该方法还可以包括:
S402,获取在帧耗时参数分布图中触发的帧性能参数展示指令。
在一个实施例中,在播放动画文件的动画帧过程中,终端实时检测输入的控制指令,并根据检测到的控制指令对动画文件的播放状态进行控制。其中,该控制指令可以是暂停播放指令、进度调整指令和慢速播放指令等。
在播放动画文件过程中,所展示的帧耗时参数是动态发生变化的,即所展示的帧耗时参数为当前所播放动画帧的上一帧动画帧的参数。在一个实施例中,若对已播放动画帧的帧耗时参数进行展示时,可以对展示的帧耗时参数分布图进行操作,当检测到在帧耗时参数分布图中触发的点击操作时,生成帧性能参数展示指令,以便根据帧性能参数展示指令展示对应动画帧的帧性能参数。
例如,在播放动画文件的过程中,由于所展示的帧性能参数和帧耗时参数分布图随播放进度变化而实时发生变化,如图3所示,在刚播放完第i+1帧动画帧时,则可以展示第i帧动画帧的帧性能参数;而当刚播放完第i+2帧动画帧时,则之前展示的第i帧动画帧的帧性能参数将不再进行展示,而展示第i+1帧动画帧的帧性能参数。若检测员需要对第i帧动画帧的帧性能参数进行查看时,可以对展示的帧耗时参数分布图进行操作,当检测到在帧耗时参数分布图中触发的点击操作时,表示检测员需要对第i帧动画帧的帧性能参数进行展示。
S404,根据帧性能参数展示指令确定目标动画帧。
在一个实施例中,帧性能参数展示指令中可以携带有目标动画帧标识。终端对帧性能参数展示指令进行解析,得到目标动画帧标识,然后根据目标动画帧标识来确定需要展示帧性能参数的目标动画帧。
S406,获取与目标动画帧对应的包括帧耗时参数的帧性能参数。
其中,帧性能参数包括帧耗时参数,此外还可以包括显存占用值和图层数。
在一个实施例中,终端在确定所播放的每个动画帧对应的帧耗时参数时,可以对所有已播放的每个动画帧对应的帧耗时参数进行存储,得到帧耗时参数集合。当需要对历史已播放的目标动画帧对应的帧耗时参数进行展示时,则从帧耗时参数集合中,按照目标动画帧标识获取目标动画帧对应的帧耗时参数。
S408,通过专用动画预览器展示目标动画帧对应的帧性能参数。
具体地,终端通过专用动画预览器加载性能监测页面,在加载的性能监测页面中展示目标动画帧对应的帧性能参数。
上述实施例中,通过帧性能参数展示指令来展示指定的目标动画帧的帧性能参数,从而在某个动画帧的性能较差时,可以快速地定位到该目标动画帧,以便可以及时的分析该目标动画帧的性能。
在一个实施例中,如图5所示,S208具体可以包括:
S502,确定帧耗时参数中不同种类的帧耗时参数各自对应的呈现方式;相同动画帧对应的不同种类的帧耗时参数,分别表示相应的动画帧不同播放阶段的耗时。
其中,这里的播放阶段可以指动画帧在解码、渲染和上屏这整个过程。对于同一个动画帧的帧耗时参数,不同种类的帧耗时参数(即渲染耗时、解码耗时和上屏耗时)分别可以表示该动画帧在解码过程、渲染过程和上屏过程中的耗时。
具体地,终端确定帧耗时参数中的渲染耗时、解码耗时和上屏耗时各自对应的呈现方式,其中,渲染耗时、解码耗时和上屏耗时各自对应的呈现方式不同,以便在视觉上进行区分。
S504,按每个动画帧对应的帧耗时参数绘制每个动画帧对应的帧耗时图形,每个帧耗时图形包括按照不同种类的帧耗时参数及相应呈现方式确定的帧耗时子图形。
其中,帧耗时图形可以是根据某个已播放动画帧的解码耗时、渲染耗时和上屏耗时所绘制的柱状图形。换句话说,每个帧耗时图形中包括有解码耗时、渲染耗时和上屏耗时三种帧耗时子图形,每个帧耗时子图形可以按照帧耗时图形中的填充颜色或填充图案来区分解码耗时、渲染耗时和上屏耗时的大小。
在一个实施例中,终端在确定不同种类的帧耗时参数各自对应的颜色时,获取该颜色所对应的RGB值,根据所获取的RGB值对每个动画帧对应的帧耗时参数进行图形绘制,得到每个已播放动画帧的帧耗时图形。
S506,按照动画帧的播放顺序,将各动画帧对应的帧耗时图形排列为帧耗时参数分布图。
其中,这里的帧耗时参数分布图可以是:按照动画帧播放顺序对不同动画帧所对应帧耗时图形进行排列所得到的分布图,如图3所示的那一排柱状图形即为动画文件所有(或某一时间段)动画帧的帧耗时参数分布图。
在一个实施例中,当绘制动画帧的帧耗时图形之后,按照动画帧的播放顺序对所绘制的帧耗时图形在图形展示区域进行排列,从而得到各动画帧对应的帧耗时参数分布图。
上述实施例中,按照不同呈现方式来对同一动画帧的不同种类帧耗时参数进行图形绘制,从而从视觉上得出同一动画帧在不同播放阶段下的耗时情况,进而可以确定出不同播放阶段的动画性能,以便对动画文件进行相应的调整,以提高动画文件的动画性能。
在一个实施例中,如图6所示,S208具体可以包括:
S602,获取性能监测页面的启动指令。
其中,专用动画预览器在播放动画文件时,可以启动性能监测页面,以便在性能监测页面上查看对应的性能参数。此外,也可以随时关闭性能监测页面,以便检测员可以更加方便的浏览动画文件的播放。性能监测页面可以显示在播放界面的下方,也可以显示在播放界面的左侧或右侧。若性能监测页面的显示在播放界面的下方,则性能监测页面的长度可以等于播放界面,性能监测页面的宽度可以是播放界面宽度值的1/3或1/4。
在一个实施例中,在播放动画文件的过程中,终端可以实时检测性能监测页面的启动指令,该启动指令可以是点击某个按键或触摸专用动画预览器上的启动按钮,以便通过专用动画预览器加载性能监测页面。
S604,通过专用动画预览器响应启动指令,以加载性能监测页面。
在一个实施例中,当获取到启动指令后,通过专用动画预览器来调用页面渲染接口对性能监测页面数据进行渲染以得到性能监测页面,然后将所得到的性能监测页面展示于播放界面的图层之上。其中,性能监测页面可以是半透明或不透明的页面。
S606,在性能监测页面中,播放的每个动画帧对应的帧耗时参数按照动画帧的播放顺序展示为帧耗时参数分布图。
在一个实施例中,性能监测页面可以展示帧耗时参数和帧耗时参数分布图之外,还可以展示动画文件的其它性能参数。
其中,帧耗时参数属于性能参数中的关于动画帧的耗时参数。此外,性能参数还可以包括动画帧的帧率(FrameRate)、时长(Duration)、文件(File)大小、动画文件中的最高动画等级(TagLevel)、动画帧宽度值(Width)和高度值(Height)、图层(Layers)数,以及播放动画时所占用终端的显存占用值等。
作为一个示例,利用专用动画浏览器播放动画文件时,终端可以实时检测输入的启动指令,如检测员按下键盘上的P键,从而启用性能监测页面,如图3所示。当再次按下键盘上的P键时,终端则关闭性能监测页面。启动性能监测页面之后,动画文件的性能参数将会显示在性能监测页面,这些性能参数中的一部分会跟随动画文件的播放而实时更新,从而做到动画文件的实时预览。
上述实施例中,通过专用动画预览器加载性能监测页面来展示帧耗时参数分布图,可以很直观的查看到动画文件中各动画帧的耗时情况,以便对动画文件进行相应的调整,以提高动画文件的动画性能。
在一个实施例中,如图7所示,该方法还可以包括:
S702,确定动画文件所对应的动画模式。
在一个实施例中,终端可以通过AE客户端制作动画文件,利用安装在AE客户端的PAG导出插件导出目标格式的动画文件。其中,在AE客户端上导出动画文件时,可以有至少三种可选择的导出方式,例如选择矢量导出、位图序列帧导出和视频序列帧导出等导出方式。不同的导出方式所对应的动画模式不同,矢量导出方式对应矢量动画模型,位图序列帧导出方式对应位图动画模式,视频序列帧导出方式对应视频动画模式。
其中,矢量导出是对AE动画图层结构的还原,并在导出的过程中采用了动态比特位存储技术,可以大幅降低动画文件的大小。位图序列帧导出是将AE动画的每一帧截取成一张图片,根据AE SDK提供的截图功能,将复杂动效中的每一帧转换为图片格式进行存储。视频序列帧是对位图序列帧的优化,针对通过AE SDK所截取的每一帧图片,逐像素读取数据,分离RGB通道和Alpha通道,然后放置图片的Alpha通道和RGB通道以合成视频,并对合成的视频进行压缩(如H.264压缩)处理。
S704,在从专用动画预览器导出动画文件时,将动画模式对应的标识添加至动画文件中。
在一个实施例中,动画模式可以采用特定标识的方式进行表示,如采用数字、字母或其它特殊字符中的一种或多种组合来表示动画模式。对应地,终端在从专用动画预览器导出动画文件时,获取用于表示动画模式的标识,并将用于表示动画模式的标识添加至动画文件中。
S706,将添加有动画模式的动画文件发送至服务器,使得服务器在目标客户端支持所添加的动画模式时,将添加有动画模式的动画文件发送至目标客户端。
其中,目标客户端可以是普通用户播放动画时所使用的客户端。不同版本的目标客户端所支持的动画模式不同,例如早期的目标客户端可能只支持矢量动画模式,而不支持位图动画模式和视频动画模式。因此,可以在动画文件发送至服务器之前,在动画文件中添加对应的动画模式,以便服务器在确定目标客户端支持该动画模式时,将添加有动画模式的动画文件发送至目标客户端。
在一个实施例中,在S706之前,终端与服务器建立通信连接,该通信连接可以是TCP(Transmission Control Protocol,传输控制协议)连接,然后通过该通信连接将添加有动画模式的动画文件发送至服务器。
在一个实施例中,在S706之前,终端还可以采用指定的加密方式对添加有动画模式的动画文件进行加密,以便目标客户端在播放动画文件时,采用与所指定加密方式相对应的解密方式对动画文件进行解密,以保证动画文件的安全性。
上述实施例中,在专用动画预览器导出动画文件时,将对应的动画模式添加至动画文件中,以便服务器在接收到添加有动画模式的动画文件时,先确定目标客户端是否支持这种动画模式的动画文件的播放,若支持,则将添加有动画模式的动画文件发送至目标客户端,以便选择合适的动画模式的动画文件进行推送,避免了所发送的动画文件在目标客户端在不支持播放,从而可以提高用户体验。
在一个实施例中,动画文件包括有位图动画帧;S208之后,该方法还包括:当根据展示的帧耗时参数分布图确定动画文件的位图解码耗时达到第一耗时阈值时,触发对动画文件的第一调整步骤;该第一调整步骤包括:调小动画文件中位图动画帧的尺寸,位图动画帧的尺寸为动画文件的动画设计参数。
其中,上述的位图解码耗时可以是动画文件的平均解码耗时,即各动画帧解码耗时的平均值。
在一个实施例中,终端确定动画文件所对应的动画模式,若动画文件的动画模式为位图动画模式、且位图解码耗时大于达到第一耗时阈值时,表明动画帧的尺寸较大,需要调小动画文件中位图动画帧的尺寸,则终端通过AE客户端对动画文件中位图动画帧的尺寸进行调小。
专用动画预览器在播放由序列帧方式导出时所得到的动画文件时,将会占用位图解码耗时。位图解码耗时一般跟动画帧的尺寸有关,若位图解码耗时偏高,则需要调整动画帧的尺寸,即在尽可能保证动画帧清晰的情况下,压缩动画帧的大小。
上述实施例中,当位图解码耗时达到第一耗时阈值时,对动画文件中位图动画帧的尺寸进行调小,从而可以在播放动画文件时降低位图解码耗时,从而保证动画文件播放的流畅性,避免卡顿。
在一个实施例中,S208之后,该方法还包括:当根据展示的帧耗时参数分布图确定的动画文件的渲染耗时达到第二耗时阈值时,触发对动画文件的第二调整步骤;第二调整步骤包括:降低动画文件的图层数量;或者,将动画文件中的矢量图转换为位图;图层数量或者动画文件中矢量图或位图的类型为动画文件的动画设计参数。
其中,上述的渲染耗时可以是动画文件的平均渲染耗时,即各动画帧渲染耗时的平均值。渲染耗时一般与图层数量有关,也与图像类型有关。对于图层数量相同的两个图像,其中一个为矢量图,另一个为位图,则矢量图的渲染耗时可能大于位图的渲染耗时。因此,当动画文件的渲染耗时达到第二耗时阈值时,可以通过降低动画文件的图层数量,以实现降低渲染耗时;此外,还可以通过图像转换工具将矢量图转换为位图,以实现降低渲染耗时。
上述实施例中,当渲染耗时达到第二耗时阈值时,通过降低动画文件的图层数量,从而可以有效地降低动画文件的渲染耗时,提高播放的流畅度。此外,还可以将矢量图转换为位图来实现降低渲染耗时,以提高播放的流畅度。
在一个实施例中,S208之后,该方法还包括:通过专用动画预览器展示播放每个动画帧时对应的显存占用值;显存占用值用于在显存占用值达到预设显存阈值时触发对动画文件的第三调整步骤;第三调整步骤包括:调小动画文件中各动画帧的尺寸;或者,将动画文件中包括相同内容的动画图层进行预合成。
其中,上述的显存占用值可以是在播放动画文件时所占用终端显存的最大值。
显存占用值通常跟图层数量关联较大,此外也跟动画帧实际绘制时缩放的大小有关。因此,当显存占用值达到预设显存阈值时,一方面可以调小各动画帧的尺寸,另一方面可以对动画文件中的动画图层进行预合成。
上述实施例中,当显存占用值达到预设显存阈值时,一方面可以调小各动画帧的尺寸,以降低在播放时所占用终端显存的显存占用值,从而可以提高动画帧的绘制效率,避免卡顿。另一方面可以对动画文件中的动画图层进行预合成,以降低在播放时所占用终端显存的显存占用值,从而可以提高动画帧的绘制效率,避免卡顿。
在一个实施例中,S208之后,该方法还包括:通过专用动画预览器,从动画文件读取全局性能参数;在播放动画文件的动画帧时,展示全局性能参数。
其中,全局性能参数可以是动画文件的帧率、动画文件大小和动画帧尺寸等。帧率越低表明动画文件在播放过程中需要渲染的次数少,帧率低减少重绘次数,从而提高流畅度。文件太大会影响首次读取动画文件的耗时和解码耗时,而且动画文件比较大,在播放动画文件时所需要缓存的数据也大,占用的内存也就比较大,也会影响整体性能。此外,当动画帧尺寸较大时,可能会占用较大的显存。
在一个实施例中,全局性能参数用于在全局性能参数达到调整条件时,触发对动画文件的第四调整步骤;第四调整步骤包括:降低动画文件的帧率;或者,对动画文件进行压缩处理;或者,调整动画文件中位图动画帧的尺寸。
具体地,当帧率较长、且平均渲染耗时较长时,终端则降低动画文件的帧率。当动画文件较大、且首次读取动画文件的耗时较长,或者,动画文件较大、且解码耗时较长时,终端则对动画文件进行压缩处理。当动画帧尺寸、且播放时所占用较大的尺寸时,终端则调小动画文件中位图动画帧的尺寸。
上述实施例中,通过降低动画文件的帧率,可以减少动画帧的重绘次数,从而提高动画文件播放的流畅度。通过压缩动画文件,可以降低首次读取动画文件的耗时和解码耗时。调整动画文件中位图动画帧的尺寸,可以避免播放动画文件时占用较大的显存。通过上述的调整方式,可以有效地提高动画文件播放的流畅度,可以有效地提高用户体验。
在采用上述的多个实施例对动画文件的动画设计参数进行调整之后,使用专用动画预览器播放调整之后的动画文件,在播放过程中确定所播放的每个动画帧对应的帧耗时参数,通过加载的性能监测页面展示帧耗时参数分布图,如图8所示,可以看出,渲染耗时、解码耗时明显降低了,而且,文件大小也降低了,所占用的显存大小也降低了,动画性能明显有了很大的提升。
作为一个示例,如图9所示,图9(a)为动画文件播放前的终端性能图,图9(b)为动画文件播放过程中终端性能图。动画文件在调整动画设计参数之前,利用Profile工具对动画文件播放之前的终端性能进行监测,得到动画文件播放前的终端性能图,如图9(a)所示。目标客户端对动画文件进行播放时,利用Profile工具对动画文件播放之前的终端性能进行监测,得到动画文件播放时的终端性能图,如图9(b)所示。
从图9(a)和图9(b)可以看出来,动画文件播放后,终端的内存发生剧烈变化,尤其是显存占用值从原本的37.7M变成64.7M。其次就是终端的内存变化也比较大,从原来的89M变为100.9M,增加了接近12M。从内存角度来看,这个动画文件还需要再优化以提升动画性能。
如图10所示,优化的流程如下所述:
S1002,通过AE设计雏形动画文件。
S1004,PAGViewer播放动画文件是否正常。
一个待设计的动画效果需求,首先由设计师利用AE制作一个雏形动画文件,然后利用开发的AE插件,导出成PAG格式的动画文件,再利用开发的PAGViewer软件打开这个PAG格式的动画文件,此时可以预览动画效果。
PAGViewer在播放动画文件之前,判断动画文件是否能正常播放。例如,如果设计的动画文件或者导出PAG格式的动画文件有问题,比如:部分AE不支持采用矢量合成导出方式,则需要使用序列帧导出方式进行动画文件的导出,得到PAG格式的动画文件,这时候就会出现播放异常。若出现播放异常的情况时,则返回执行S1002。若未出现播放异常的情况时,则执行S1004。
其中,PAGViewer安装成功后,会出现在应用程序的文件夹中,并自动关联本地pag文件,双击pag文件即可呼起PAGViewer直接进行播放。
对于PAGViewer的安装,有如下两种安装方式:
1)命令行安装
将curl-s dldir1.qq.com/qqmi/libpag/install|bash复制到终端程序,然后按下回车即可开始在线安装,安装过程可能会要求输入本机密码以获取文件写入权限。
2)图形化安装
下载PAGInstaller.dmg图形安装器,双击内部安装程序即可开始在线安装,安装过程可能会要求输入本机密码以获取文件写入权限。
PAGViewer提供了对PAG动画的预览能力,辅助设计师查看最终制作的动画文件在各个平台的播放效果,同时也验证动画文件在播放过程中的播放问题。
S1006,播放动画文件,并判断性能监测页面上的各参数是否在合理范围。
在利用PAGViewer打开的PAG格式的动画文件进行播放时,可以按下键盘上的P键以启用性能监测页面,启动性能监测页面之后,会在播放界面的下方弹出性能监测页面以显示动画文件的各种性能参数,这些性能参数部分会跟随动画文件的播放进度而实时更新,做到实时预览。当再次按下P键时,则关闭性能监测页面。
其中,PAGViewer的性能监测页面如3所示,下面具体阐述这些性能参数的含义,以及这些性能参数对动画性能的影响。
FrameRate:播放帧率,即每秒刷新画面的次数。
Duration:动画时长,单位可以采用秒、分钟和小时中的任一种。
File:文件大小,单位可以采用B(Byte,字节)、KB(KiloByte,千字节)、MB(MebiByte,兆字节)和GB(GigaByte,吉字节)中的任一种。
Graphics:动画文件播放时占用的显存大小,单位可以采用B(Byte,字节)、KB(KiloByte,千字节)、MB(MebiByte,兆字节)和GB(GigaByte,吉字节)中的任一种。
TagLevel:动画文件内包含的最高的Tag等级。
Width:动画帧的设计宽度。
Height:动画帧的设计高度。
Layers:动画文件内包含的图层总数量。
Render:动画帧的渲染耗时,单位微秒。
Image:当动画文件是按照矢量导出方式得到时,则为位图解码耗时(也即图片解码耗时);若动画文件是按照序列帧导出方式得到时,则为截图解码耗时,单位微秒。
其中,图片解码耗时是指每一图层的图片元素的解码耗时。截图解码耗时是指每一动画帧的解码耗时。
Prensent:动画帧的上屏耗时,单位微秒。
在图3中,一个柱状图形代表某一帧Render+Image+Prensent的总耗时,可以根据颜色区分占比。
S1008,按照对应的动画调整方式调整动画设计参数。
其中,1)对于帧率,帧率越低表明动画需要渲染的次数少,就能减少重绘次数,从而提高流畅度。当帧率较大、且流畅度较低时,可以考虑适当降低帧率。
2)对于动画的时长,动画的时长越长则需要处理的时间就越久,动画的时长不能完全决定动画性能,需要和其他参数组合考虑,如果动画特别复杂,而且时间还长,那么可能就没有短时间的性能好。但是如果动画特别简单,即使动画时间非常长也不影响性能。
3)对于文件大小,文件太大会影响首次读取文件和解码时间,而且文件比较大,一般数据量都比较大,缓存这些数据占用的内存也就比较大,也会影响整体性能,此时,可以考虑降低动画文件中的图像大小。
4)对于占用的显存大小,通常跟图层的数量关联较大,也跟动画实际绘制时缩放的大小有关,所有内容静止只有矩阵变化的图层都会被缓存成纹理,来提搞绘制效率。当占用的显存较大时,可以考虑降低图层的数量。
5)对于TagLevel,用于确认一个动画的版本兼容性,即在某个版本的客户端是否能正常播放。客户端SDK的PAGFile.MaxSupportedTagLevel()要大于或等于这个动画的最高TagLevel才能正常播放此动画,否则需要升级SDK。
6)包含位图的动画需要关注尺寸,因为放大位图时可能模糊,为了保证动画的清晰度,若动画包含位图要求预合成的最短边须至少保证在720像素。
7)对于图层数量,主要影响的是显存大小,以及绘制时长。图层数量越多复杂度越高,绘制时所需的计算量也越复杂。如果存在内容完全相同的图层,应该避免直接复制图层,而是将这些图层做成预合成,然后引用预合成的方式,这样图层数量会只计算一份。
8)对于渲染耗时,通常在是矢量导出的硬性指标,当渲染耗时较大时,可以适当降低图层数量。
由于渲染耗时在每台机器上具体数值都不相同,无法确定出固定值,但可以参考在iMac 27寸电脑上的渲染耗时,需要控制在100微秒左右内。
9)对于位图解码耗时,位图解码耗时基本可以认为只跟图片尺寸有关,通常只有序列帧方式导出时占用这个耗时。如果位图解码耗时偏高时,可能可以调整图片的尺寸,在尽可能保证动画清晰的情况下,压缩图片以调整动画性能。
10)对于上屏耗时,由于上屏耗时也是每台机器上具体数值不相同,无法确定出固定值,但是这个值也是参考iMac 27寸电脑上的耗时,需要控制在100微秒左右内。
S1010,获得最终效果的动画文件。
通过采用上述动画调整方式调整动画文件,比如预合成图层,使用简单遮罩去盖复杂图形而不是反过来,压缩图片质量,缩短动画的尺寸边界等方式,去做动画的性能调优。如图8所示,图8是性能调优之后的截图,可以明显看出来,各项指标都有了明显的降低,比如:文件大小从3M多降低到500Kb,显存从2M降低到500Kb,Render和Image耗时都控制在100微秒左右。调整之后的动画在低端手机上测试,也是很流畅,而且播放无卡顿。
虽然图8中动画的清晰度比图3要差一点,实际放在手机上看的时候,因为手机的分辨率限制,以及视图尺寸大小会被缩放,所以基本看不出来动画效果差异,但是实际性能上来看,这就是很大的优化。
图11(a)是播放优化后的动画文件之前内存占用情况,图11(b)分别是优化后的动画文件在播放后的内存占用情况。其中,图11(a)和图11(b)是采用Android Studio的Profile工具分析所得的截图。可以看出,优化前后显存占用有了明显的优化,从之前的30M左右,降低到现在14M左右;Native内存从10M左右降低到6M左右,动画性能有了明显改善。
采用本文提出的动画性能监测方案,可以具有以下技术效果:
1)在动画制作初期就能发现动画的播放和性能问题,让设计师交付的动效一定是直接可用、且为经过调优后的成品。此外,也减少了开发的工作量,因为PAG的跨平台,设计师对动画文件的性能监测,可以避免开发端的工程师分别在iOS和Android两端进行动画文件的性能监测。
2)性能监测页面提供了众多的性能参数,设计师在每次对动画效果进行优化时,可以通过权衡多项性能参数,得到一个最优的动画调整方式,提高了动画性能参数调整的效率。
图2、4-7为一个实施例中动画性能监测方法的流程示意图。应该理解的是,虽然图2、4-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2、4-7中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
如图12所示,在一个实施例中,提供了一种动画性能监测装置,该装置包括:获取模块1202、播放模块1204、确定模块1206和展示模块1208;其中:
获取模块1202,用于获取目标格式的动画文件;
播放模块1204,用于通过专用动画预览器播放动画文件的动画帧;
确定模块1206,用于在播放过程中确定所播放的每个动画帧对应的帧耗时参数;
展示模块1208,用于通过专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照动画帧的播放顺序展示为帧耗时参数分布图。
上述实施例中,通过专用动画预览器来播放目标格式的动画文件,可以在播放过程中实时地获取针对监测动画文件各动画帧对应的帧性能参数,展示各动画帧对应的帧耗时参数分布图,从而实现了动画性能的检测。此外,专用动画预览器在播放动画文件时,可以实时的获取并展示动画的帧耗时参数分布图,无需将动画文件运用到具体的应用中进行监测,从而有效地降低监测时间,提高动画的性能检测效率。
在一个实施例中,获取模块1202还用于获取在帧耗时参数分布图中触发的帧性能参数展示指令;
确定模块1206还用于根据帧性能参数展示指令确定目标动画帧;
获取模块1202还用于获取与目标动画帧对应的包括帧耗时参数的帧性能参数;
展示模块1208还用于通过专用动画预览器展示目标动画帧对应的帧性能参数。
上述实施例中,通过帧性能参数展示指令来展示指定的目标动画帧的帧性能参数,从而在某个动画帧的性能较差时,可以快速地定位到该目标动画帧,以便可以及时的分析该目标动画帧的性能。
在一个实施例中,展示模块1208还用于:
确定帧耗时参数中不同种类的帧耗时参数各自对应的呈现方式;相同动画帧对应的不同种类的帧耗时参数,分别表示相应的动画帧不同播放阶段的耗时;
按每个动画帧对应的帧耗时参数绘制每个动画帧对应的帧耗时图形,每个帧耗时图形包括按照不同种类的帧耗时参数及相应呈现方式确定的帧耗时子图形;
按照动画帧的播放顺序,将各动画帧对应的帧耗时图形排列为帧耗时参数分布图。
上述实施例中,按照不同呈现方式来对同一动画帧的不同种类帧耗时参数进行图形绘制,从而从视觉上得出同一动画帧在不同播放阶段下的耗时情况,进而可以确定出不同播放阶段的动画性能,以便对动画文件进行相应的调整,以提高动画文件的动画性能。
在一个实施例中,展示模块1208还用于:获取性能监测页面的启动指令;通过专用动画预览器响应启动指令,以加载性能监测页面;在性能监测页面中,播放的每个动画帧对应的帧耗时参数按照动画帧的播放顺序展示为帧耗时参数分布图。
上述实施例中,通过专用动画预览器加载性能监测页面来展示帧耗时参数分布图,可以很直观的查看到动画文件中各动画帧的耗时情况,以便对动画文件进行相应的调整,以提高动画文件的动画性能。
在一个实施例中,如图13所示,该装置还包括:处理模块1210和发送模块1212;其中,
处理模块1210,用于确定动画文件所对应的动画模式;在从专用动画预览器导出动画文件时,将动画模式对应的标识添加至动画文件中;
发送模块1212,用于将添加有动画模式的动画文件发送至服务器,使得服务器在目标客户端支持所添加的动画模式时,将添加有动画模式的动画文件发送至目标客户端。
上述实施例中,在专用动画预览器导出动画文件时,将对应的动画模式添加至动画文件中,以便服务器在接收到添加有动画模式的动画文件时,先确定目标客户端是否支持这种动画模式的动画文件的播放,若支持,则将添加有动画模式的动画文件发送至目标客户端,以便选择合适的动画模式的动画文件进行推送,避免了所发送的动画文件在目标客户端在不支持播放,从而可以提高用户体验。
在一个实施例中,动画文件包括有位图动画帧;如图13所示,该装置还包括:调整模块1214;其中,
展示模块1208还用于当根据展示的帧耗时参数分布图确定动画文件的位图解码耗时达到第一耗时阈值时,触发对动画文件的第一调整步骤;
调整模块1214,用于调小动画文件中位图动画帧的尺寸,位图动画帧的尺寸为动画文件的动画设计参数。
上述实施例中,当位图解码耗时达到第一耗时阈值时,对动画文件中位图动画帧的尺寸进行调小,从而可以在播放动画文件时降低位图解码耗时,从而保证动画文件播放的流畅性,避免卡顿。
在一个实施例中,展示模块1208还用于当根据展示的帧耗时参数分布图确定的动画文件的渲染耗时达到第二耗时阈值时,触发对动画文件的第二调整步骤;
调整模块1214还用于降低动画文件的图层数量;或者,将动画文件中的矢量图转换为位图;图层数量或者动画文件中矢量图或位图的类型为动画文件的动画设计参数。
上述实施例中,当渲染耗时达到第二耗时阈值时,通过降低动画文件的图层数量,从而可以有效地降低动画文件的渲染耗时,提高播放的流畅度。此外,还可以将矢量图转换为位图来实现降低渲染耗时,以提高播放的流畅度。
在一个实施例中,展示模块1208还用于通过专用动画预览器展示播放每个动画帧时对应的显存占用值;显存占用值用于在显存占用值达到预设显存阈值时触发对动画文件的第三调整步骤;
调整模块1214还用于调小动画文件中各动画帧的尺寸;或者,将动画文件中包括相同内容的动画图层进行预合成。
上述实施例中,当显存占用值达到预设显存阈值时,一方面可以调小各动画帧的尺寸,以降低在播放时所占用终端显存的显存占用值,从而可以提高动画帧的绘制效率,避免卡顿。另一方面可以对动画文件中的动画图层进行预合成,以降低在播放时所占用终端显存的显存占用值,从而可以提高动画帧的绘制效率,避免卡顿。
在一个实施例中,获取模块1202还用于通过专用动画预览器,从动画文件读取全局性能参数;
展示模块1208还用于在播放动画文件的动画帧时,展示全局性能参数。
在一个实施例中,全局性能参数用于在全局性能参数达到调整条件时,触发对动画文件的第四调整步骤;
调整模块1214还用于降低动画文件的帧率;或者,对动画文件进行压缩处理;或者,调整动画文件中位图动画帧的尺寸。
上述实施例中,通过降低动画文件的帧率,可以减少动画帧的重绘次数,从而提高动画文件播放的流畅度。通过压缩动画文件,可以降低首次读取动画文件的耗时和解码耗时。调整动画文件中位图动画帧的尺寸,可以避免播放动画文件时占用较大的显存。通过上述的调整方式,可以有效地提高动画文件播放的流畅度,可以有效地提高用户体验。
图14示出了一个实施例中计算机设备的内部结构图。该计算机设备具体可以是图1中的终端110。如图14所示,该计算机设备包括该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、输入装置和显示屏。其中,存储器包括非易失性存储介质和内存储器。该计算机设备的非易失性存储介质存储有操作系统,还可存储有计算机程序,该计算机程序被处理器执行时,可使得处理器实现动画性能监测方法。该内存储器中也可储存有计算机程序,该计算机程序被处理器执行时,可使得处理器执行动画性能监测方法。计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。
本领域技术人员可以理解,图14中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,本申请提供的动画性能监测装置可以实现为一种计算机程序的形式,计算机程序可在如图14所示的计算机设备上运行。计算机设备的存储器中可存储组成该动画性能监测装置的各个程序模块,比如,图12所示的获取模块1202、播放模块1204、确定模块1206和展示模块1208。各个程序模块构成的计算机程序使得处理器执行本说明书中描述的本申请各个实施例的动画性能监测方法中的步骤。
例如,图14所示的计算机设备可以通过如图12所示的动画性能监测装置中的获取模块1202执行S202。计算机设备可通过播放模块1204执行S204。计算机设备可通过确定模块1206执行S206。计算机设备可通过确定展示模块1208执行S208。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述动画性能监测方法的步骤。此处动画性能监测方法的步骤可以是上述各个实施例的动画性能监测方法中的步骤。
在一个实施例中,提供了一种计算机可读存储介质,存储有计算机程序,计算机程序被处理器执行时,使得处理器执行上述动画性能监测方法的步骤。此处动画性能监测方法的步骤可以是上述各个实施例的动画性能监测方法中的步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本申请专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (22)
1.一种动画性能监测方法,包括:
获取目标格式的动画文件;所述动画文件是将文本或图片资源集成到单文件内所得的跨平台运行的文件,且在运行时支持动态修改动画内容;
通过专用动画预览器播放所述动画文件的动画帧;所述专用动画预览器具有预览动画效果的功能和提供性能监测页面,所述性能监测页面显示于所述专用动画预览器的播放页面上;
在播放过程中确定所播放的每个动画帧对应的帧耗时参数;
通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
获取在所述帧耗时参数分布图中触发的帧性能参数展示指令;
根据所述帧性能参数展示指令确定目标动画帧;
获取与所述目标动画帧对应的包括帧耗时参数的帧性能参数;
通过所述专用动画预览器展示所述目标动画帧对应的帧性能参数。
3.根据权利要求1所述的方法,其特征在于,所述将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图包括:
确定所述帧耗时参数中不同种类的帧耗时参数各自对应的呈现方式;相同动画帧对应的不同种类的帧耗时参数,分别表示相应的动画帧不同播放阶段的耗时;
按每个动画帧对应的帧耗时参数绘制每个动画帧对应的帧耗时图形,每个帧耗时图形包括按照不同种类的帧耗时参数及相应呈现方式确定的帧耗时子图形;
按照所述动画帧的播放顺序,将各动画帧对应的帧耗时图形排列为帧耗时参数分布图。
4.根据权利要求1所述的方法,其特征在于,所述通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图包括:
获取性能监测页面的启动指令;
通过所述专用动画预览器响应所述启动指令,以加载性能监测页面;
在所述性能监测页面中,播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
5.根据权利要求1所述的方法,其特征在于,所述方法还包括:
确定所述动画文件所对应的动画模式;
在从所述专用动画预览器导出所述动画文件时,将所述动画模式对应的标识添加至所述动画文件中;
将添加有所述动画模式的动画文件发送至服务器,使得所述服务器在目标客户端支持所添加的所述动画模式时,将添加有所述动画模式的动画文件发送至所述目标客户端。
6.根据权利要求1至5任一项所述的方法,其特征在于,所述动画文件包括有位图动画帧;所述方法还包括:
当根据展示的帧耗时参数分布图确定所述动画文件的位图解码耗时达到第一耗时阈值时,触发对所述动画文件的第一调整步骤;
所述第一调整步骤包括:
调小所述动画文件中位图动画帧的尺寸,所述位图动画帧的尺寸为所述动画文件的动画设计参数。
7.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
当根据展示的帧耗时参数分布图确定的所述动画文件的渲染耗时达到第二耗时阈值时,触发对所述动画文件的第二调整步骤;
所述第二调整步骤包括:
降低所述动画文件的图层数量;或者,将所述动画文件中的矢量图转换为位图;所述图层数量或者所述动画文件中矢量图或位图的类型为所述动画文件的动画设计参数。
8.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
通过所述专用动画预览器展示播放每个动画帧时对应的显存占用值;所述显存占用值用于在所述显存占用值达到预设显存阈值时触发对所述动画文件的第三调整步骤;
所述第三调整步骤包括:
调小所述动画文件中各动画帧的尺寸;或者,将所述动画文件中包括相同内容的动画图层进行预合成。
9.根据权利要求1至5任一项所述的方法,其特征在于,所述方法还包括:
通过所述专用动画预览器,从所述动画文件读取全局性能参数;
在播放所述动画文件的动画帧时,展示所述全局性能参数。
10.根据权利要求9所述的方法,其特征在于,所述全局性能参数用于在所述全局性能参数达到调整条件时,触发对所述动画文件的第四调整步骤;
所述第四调整步骤包括:
降低所述动画文件的帧率;或者,
对所述动画文件进行压缩处理;或者,
调整所述动画文件中位图动画帧的尺寸。
11.一种动画性能监测装置,其特征在于,所述装置包括:
获取模块,用于获取目标格式的动画文件;所述动画文件是将文本或图片资源集成到单文件内所得的跨平台运行的文件,且在运行时支持动态修改动画内容;
播放模块,用于通过专用动画预览器播放所述动画文件的动画帧;所述专用动画预览器具有预览动画效果的功能和提供性能监测页面,所述性能监测页面显示于所述专用动画预览器的播放页面上;
确定模块,用于在播放过程中确定所播放的每个动画帧对应的帧耗时参数;
展示模块,用于通过所述专用动画预览器,将播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
12.根据权利要求11所述的装置,其特征在于,所述获取模块还用于获取在所述帧耗时参数分布图中触发的帧性能参数展示指令;
所述确定模块还用于根据所述帧性能参数展示指令确定目标动画帧;
所述获取模块还用于获取与所述目标动画帧对应的包括帧耗时参数的帧性能参数;
所述展示模块还用于通过所述专用动画预览器展示所述目标动画帧对应的帧性能参数。
13.根据权利要求11所述的装置,其特征在于,所述展示模块还用于:
确定所述帧耗时参数中不同种类的帧耗时参数各自对应的呈现方式;相同动画帧对应的不同种类的帧耗时参数,分别表示相应的动画帧不同播放阶段的耗时;
按每个动画帧对应的帧耗时参数绘制每个动画帧对应的帧耗时图形,每个帧耗时图形包括按照不同种类的帧耗时参数及相应呈现方式确定的帧耗时子图形;
按照所述动画帧的播放顺序,将各动画帧对应的帧耗时图形排列为帧耗时参数分布图。
14.根据权利要求11所述的装置,其特征在于,所述展示模块,还用于获取性能监测页面的启动指令;通过所述专用动画预览器响应所述启动指令,以加载性能监测页面;在所述性能监测页面中,播放的每个动画帧对应的帧耗时参数按照所述动画帧的播放顺序展示为帧耗时参数分布图。
15.根据权利要求11所述的装置,其特征在于,所述装置还包括:
处理模块,用于确定所述动画文件所对应的动画模式;在从所述专用动画预览器导出所述动画文件时,将所述动画模式对应的标识添加至所述动画文件中;
发送模块,用于将添加有所述动画模式的动画文件发送至服务器,使得所述服务器在目标客户端支持所添加的所述动画模式时,将添加有所述动画模式的动画文件发送至所述目标客户端。
16.根据权利要求11至15任一项所述的装置,其特征在于,所述动画文件包括有位图动画帧;所述装置还包括:
所述展示模块,还用于当根据展示的帧耗时参数分布图确定所述动画文件的位图解码耗时达到第一耗时阈值时,触发对所述动画文件的第一调整步骤;
调整模块,用于调小所述动画文件中位图动画帧的尺寸,所述位图动画帧的尺寸为所述动画文件的动画设计参数。
17.根据权利要求11至15任一项所述的装置,其特征在于,所述装置还包括:
所述展示模块,还用于当根据展示的帧耗时参数分布图确定的所述动画文件的渲染耗时达到第二耗时阈值时,触发对所述动画文件的第二调整步骤;
调整模块,用于降低所述动画文件的图层数量;或者,将所述动画文件中的矢量图转换为位图;所述图层数量或者所述动画文件中矢量图或位图的类型为所述动画文件的动画设计参数。
18.根据权利要求11至15任一项所述的装置,其特征在于,所述装置还包括:
所述展示模块,还用于通过所述专用动画预览器展示播放每个动画帧时对应的显存占用值;所述显存占用值用于在所述显存占用值达到预设显存阈值时触发对所述动画文件的第三调整步骤;
调整模块,用于调小所述动画文件中各动画帧的尺寸;或者,将所述动画文件中包括相同内容的动画图层进行预合成。
19.根据权利要求11至15任一项所述的装置,其特征在于,所述装置还包括:
所述获取模块,还用于通过所述专用动画预览器,从所述动画文件读取全局性能参数;
所述展示模块,还用于在播放所述动画文件的动画帧时,展示所述全局性能参数。
20.根据权利要求19所述的装置,其特征在于,所述全局性能参数用于在所述全局性能参数达到调整条件时,触发对所述动画文件的第四调整步骤;
调整模块,用于降低所述动画文件的帧率;或者,对所述动画文件进行压缩处理;或者,调整所述动画文件中位图动画帧的尺寸。
21.一种计算机可读存储介质,存储有计算机程序,所述计算机程序被处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
22.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器执行如权利要求1至10中任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502947.5A CN112069042B (zh) | 2019-06-11 | 2019-06-11 | 动画性能监测方法、装置、存储介质和计算机设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910502947.5A CN112069042B (zh) | 2019-06-11 | 2019-06-11 | 动画性能监测方法、装置、存储介质和计算机设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112069042A CN112069042A (zh) | 2020-12-11 |
CN112069042B true CN112069042B (zh) | 2023-04-14 |
Family
ID=73657854
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910502947.5A Active CN112069042B (zh) | 2019-06-11 | 2019-06-11 | 动画性能监测方法、装置、存储介质和计算机设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112069042B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115633219B (zh) * | 2021-09-29 | 2024-05-17 | 荣耀终端有限公司 | 一种界面识别方法、设备及计算机可读存储介质 |
CN117097883B (zh) * | 2023-10-20 | 2024-04-12 | 荣耀终端有限公司 | 一种丢帧故障原因确定方法、电子设备和存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521861A (zh) * | 2011-11-18 | 2012-06-27 | 大连兆阳软件科技有限公司 | 一种骨骼动画运行时优化方法 |
CN106611435A (zh) * | 2016-12-22 | 2017-05-03 | 广州华多网络科技有限公司 | 动画处理方法和装置 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9223395B2 (en) * | 2011-09-14 | 2015-12-29 | Microsoft Technology Licensing, Llc | Viewing presentations in a condensed animation mode |
-
2019
- 2019-06-11 CN CN201910502947.5A patent/CN112069042B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102521861A (zh) * | 2011-11-18 | 2012-06-27 | 大连兆阳软件科技有限公司 | 一种骨骼动画运行时优化方法 |
CN106611435A (zh) * | 2016-12-22 | 2017-05-03 | 广州华多网络科技有限公司 | 动画处理方法和装置 |
CN108492338A (zh) * | 2018-02-09 | 2018-09-04 | 腾讯科技(深圳)有限公司 | 动画文件的压缩方法、装置、存储介质和电子装置 |
Non-Patent Citations (1)
Title |
---|
动画生万物;知乎用户8sYKO0;《https://zhuanlan.zhihu.com/p/45597573?from_voters_page=true》;20180928;第1-16页 * |
Also Published As
Publication number | Publication date |
---|---|
CN112069042A (zh) | 2020-12-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110377851B (zh) | 多级联动下拉框的实现方法、装置和计算机设备 | |
WO2020248948A1 (zh) | 动画文件处理方法、装置、计算机可读存储介质和计算机设备 | |
US9507480B1 (en) | Interface optimization application | |
CN108255566B (zh) | 数据录入的优化处理方法、装置、计算机设备和存储介质 | |
CN112069042B (zh) | 动画性能监测方法、装置、存储介质和计算机设备 | |
CN112416346B (zh) | 界面配色方案的生成方法、装置、设备及存储介质 | |
GB2493551A (en) | Displaying plotted trend data at varying resolutions | |
CN108492338B (zh) | 动画文件的压缩方法、装置、存储介质和电子装置 | |
CN107229749B (zh) | 一种微信h5网页制作方法及系统 | |
CN111681291A (zh) | 图像处理方法、装置、设备及计算机可读存储介质 | |
CN111346378B (zh) | 游戏画面传输方法、装置、存储介质和设备 | |
CN112070863A (zh) | 动画文件处理方法、装置、计算机可读存储介质和计算机设备 | |
CN112073794A (zh) | 动画处理方法、装置、计算机可读存储介质和计算机设备 | |
CN107864384B (zh) | 重定向云桌面上互联网视频播放的方法及装置 | |
CN112764752A (zh) | 页面的展示方法和装置、存储介质、电子装置 | |
CN112528203A (zh) | 基于网页的在线文档制作方法及系统 | |
CN112532896A (zh) | 视频的制作方法、装置、电子设备以及存储介质 | |
US20230291978A1 (en) | Subtitle processing method and apparatus of multimedia file, electronic device, and computer-readable storage medium | |
CN114584821B (zh) | 视频处理方法及装置 | |
CN114205680A (zh) | 视频封面展示方法及其装置、设备、介质、产品 | |
CN114866801B (zh) | 视频数据的处理方法、装置、设备及计算机可读存储介质 | |
CN108388463B (zh) | 图标处理方法、装置、计算机设备和存储介质 | |
CN111726701B (zh) | 信息植入方法、视频播放方法、装置和计算机设备 | |
CN112383831B (zh) | 一种用于生成弹幕信息的方法与设备 | |
CN113312134A (zh) | 操作重现方法及设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
REG | Reference to a national code |
Ref country code: HK Ref legal event code: DE Ref document number: 40035313 Country of ref document: HK |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |