CN109284183A - 动图播放方法、装置、计算机存储介质和终端 - Google Patents
动图播放方法、装置、计算机存储介质和终端 Download PDFInfo
- Publication number
- CN109284183A CN109284183A CN201811210520.XA CN201811210520A CN109284183A CN 109284183 A CN109284183 A CN 109284183A CN 201811210520 A CN201811210520 A CN 201811210520A CN 109284183 A CN109284183 A CN 109284183A
- Authority
- CN
- China
- Prior art keywords
- cardon
- image data
- cache block
- memory cache
- data
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/451—Execution arrangements for user interfaces
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Television Signal Processing For Recording (AREA)
Abstract
本发明提供一种动图播放方法、装置、计算机存储介质和终端。本发明的动图播放方法包括从第一内存缓存块中读取动图的第一帧图片数据;根据第一帧图片数据绘制动图画面;判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;若是,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;若否,根据上一次读取的帧图片数据绘制动图画面;其中,第一内存缓存块用于存储解码后动图的第一帧图片数据;第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据。本发明可在同时显示大量动图时,使动图封面的出图速度更快。
Description
技术领域
本发明涉及计算机技术领域,具体而言,本发明涉及一种动图播放方法、装置、存储介质和终端。
背景技术
在以内容为主的社交APP中,例如短视频、直播、社区等APP中,图片是展现内容最直观有效的方式。图片展示包括动图和静图,静图是静止的图片;区别于静图,动图是由多帧静态图片组成的,储存上可利用一些压缩算法(如GIF使用LZW算法)降低动图的存储空间,播放时则采用分帧播放,以实现动态效果。常见的动图有GIF,WebP等。随着4G网络的普及甚至5G时代的到来,用户的流量费用越来越低、下载速度也越来越快,从而使得采用动图封面来替换静图封面成为可能。但在处理资源(例如CPU、GPU、内存等)有限的移动端设备上,大量的动图封面同时播放会导致CPU资源耗尽和/或内存占用过多,从而导致用户体验变差。
如图1所示,为一种支持动图播放(如GIF、WebP等动图格式)的播放库架构示意图。该播放库包含动图资源的下载、解码、播放等多个步骤,采用全局管理内存的方案,以防止应用出现内存不足的情况(即Out of memery,简称OOM),并采用缓存解码后的序列帧来缓解CPU的运行压力。但该架构存在如下缺点:
1、所有图片使用同一个内存缓存,在大量动图播放时,会使其它图片内容很容易被缓存管理器淘汰,从而在页面滑动过程中,导致其它图片内容加载速度过慢的问题。
2、动图在使用之前要先进行解码,但解码操作为CPU密集型操作,在加载大量动图时,容易出现CPU资源耗尽,从而导致用户界面卡顿的问题;用户界面卡顿亦即UI(全称为User interface)卡顿,为帧绘制时长超过16ms时,出现的用户页面不能正常更新的情况。
3、动图解码时采用公平队列,导致先排队的其它动图可能正在播放,而其它动图可能连第一帧都加载不出来,影响用户观看体验。
发明内容
针对以上缺点,本发明提出一种动图播放方法、装置、存储介质和终端,用以解决播放大量动图时的顿卡或加载速度过慢的问题。
本发明提出的动图播放方法,包括步骤:
从第一内存缓存块中读取动图的第一帧图片数据;
根据第一帧图片数据绘制动图画面;
判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;
若是,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;若否,根据上一次读取的帧图片数据绘制动图画面;
其中,第一内存缓存块用于存储解码后动图的第一帧图片数据;第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据。
优选地,所述动图播放方法还包括:
确认内存占用超过预设值;
清除所述第一内存缓存块和/或所述第二内存缓存块中的过期数据;
其中,所述第一内存缓存块的过期数据包括最后访问时间超过第一预设时间的图片数据;所述第二内存缓存块的过期数据包括最后访问时间超过第二预设时间的图片数据。
优选地,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照请求时间从近到远则优先级从高到低的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
优选地,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照把动图数据第一帧图片解码请求优先级设为最高优先级的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
优选地,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
从若干动图数据解码请求中,把动图数据第一帧图片解码请求划分为第一等级;把动图数据除第一帧外其它帧图片解码请求划分为第二等级;
先按照请求时间从近到远则优先级从高到低的规则,对第一等级的动图数据解码请求进行优先级排序,把解码后动图的第一帧图片数据存储在第一内存缓存块;
再按照请求时间从近到远则优先级从高到低的规则,对第二等级的动图数据解码请求进行优先级排序,把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
优选地,所述从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面,包括:
根据动图预设的播放频率,定时从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面。
本发明还提出一种动图播放装置,该装置包括:
读取模块,用于从第一内存缓存块中读取动图的第一帧图片数据;
封面绘制模块,用于根据第一帧图片数据绘制动图画面;
判断模块,用于判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;
动图更新模块,用于当第二内存缓存块中存储有动图画面的当前欲绘制帧图片数据时,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;或,;当第二内存缓存块中没有存储动图画面的当前欲绘制帧图片数据时,根据上一次读取的帧图片数据绘制动图画面。
本发明还提出一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意一项所述的动图播放方法。
本发明还提出一种终端,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现前述任意一项所述的动图播放方法。
本发明具有以下有益效果:
1、本发明将第一内存缓存块用于存储解码后动图的第一帧图片数据,将第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据,可在同时显示大量动图时,使动图封面的出图速度更快,减少了页面刷新时,动图加载速度过慢或动图封面无法显示的问题。
2、本发明可同时根据解码时间和解码内容,对解码请求进行优先级排序,既可提高动图封面的出图速度,还可使最近提交的解码请求被优先处理,提高了绘制动图画面的响应速度。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1为一种支持动图播放的播放库架构示意图;
图2为本发明动图播放方法一个实施例的流程示意图;
图3为本发明动图播放方法另一个实施例的流程示意图;
图4为本发明动图播放方法中缓存模型的架构示意图;
图5为本发明动图播放方法中播放器模型的架构示意图;
图6为本发明动图播放方法中解码器模型的架构示意图;
图7为本发明终端实施例的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其它特征、整数、步骤、操作、元件、组件和/或它们的组。
本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
本技术领域技术人员可以理解,这里所使用的“终端”、“终端设备”既包括无线信号接收器的设备,其仅具备无发射能力的无线信号接收器的设备,又包括接收和发射硬件的设备,其具有能够在双向通信链路上,执行双向通信的接收和发射硬件的设备。这种设备可以包括:蜂窝或其它通信设备,其具有单线路显示器或多线路显示器或没有多线路显示器的蜂窝或其它通信设备;PCS(Personal Communications Service,个人通信系统),其可以组合语音、数据处理、传真和/或数据通信能力;PDA(Personal Digital Assistant,个人数字助理),其可以包括射频接收器、寻呼机、互联网/内联网访问、网络浏览器、记事本、日历和/或GPS(Global Positioning System,全球定位系统)接收器;常规膝上型和/或掌上型计算机或其它设备,其具有和/或包括射频接收器的常规膝上型和/或掌上型计算机或其它设备。这里所使用的“终端”、“终端设备”可以是便携式、可运输、安装在交通工具(航空、海运和/或陆地)中的,或者适合于和/或配置为在本地运行,和/或以分布形式,运行在地球和/或空间的任何其它位置运行。这里所使用的“终端”、“终端设备”还可以是通信终端、上网终端、音乐/视频播放终端,例如可以是PDA、MID(Mobile Internet Device,移动互联网设备)和/或具有音乐/视频播放功能的移动电话,也可以是智能电视、机顶盒等设备。
结合图1所示,在终端播放动图时,一般先通过网络将动图资源加载到终端本地,然后再通过本地的解码器对动图资源进行解码;解码后的动图资源存储于内存缓存中,以供终端的播放器调用显示。例如,通过终端包括动图播放器的新闻客户端调用,以使用户通过新闻客户端内的动图播放器观看动图新闻,提高新闻页面对用户的吸引力,并提高用户点击观看的概率。
本发明提出一种动图播放方法,用于解决同时播放大量动图时的顿卡或加载速度过慢的问题;如图2所示的实施例,本发明的动图播放方法可包括如下步骤:
步骤S10:从第一内存缓存块中读取动图的第一帧图片数据;
步骤S20:根据第一帧图片数据绘制动图画面;
步骤S30:判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;若是,则进行步骤S41;若否,则进行步骤S42;
步骤S41:从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;
步骤S42:根据上一次读取的帧图片数据绘制动图画面;
其中,第一内存缓存块用于存储解码后动图的第一帧图片数据;第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据。
在本实施例中,存在第一内存缓存块和第二内存缓存块两个内存缓存块,以分别用于存储解码后的第一帧图片数据和除第一帧外其它帧的图片数据;对应地,本实施例可包括两个全局缓存管理系统,以分别用于管理第一内存缓存块和第二内存缓存块中缓存的图片数据。其中,第一内存缓存块不仅可用于缓存解码后动图的第一帧图片数据,还可用于缓存静图资源,以加快静图资源的显示速度。本实施例通过将动图的帧图片数据分别存储于第一内存缓存块和第二内存缓存块,可在终端显示大量动图时,动图的封面(即动图的第一帧图片)能快速显示出来,减少了页面滑动时动图封面加载速度过慢和UI顿卡的问题,提高了用户体验。
本实施例中的每个步骤具体如下:
步骤S10:从第一内存缓存块中读取动图的第一帧图片数据。
由于第一内存缓存块中存储的第一帧图片数据为解码后的图片数据,可直接由播放器调用显示,避免了在渲染线程中进行解码的问题;而且,第一内存缓存块中不存储动图的除第一帧外其它帧的图片数据,最大限度地提高了读取到动图第一帧图片数据的UI响应时间,在需要同时加载多个动图画面时,本实施例可提高每一个动图画面第一帧图片数据的加载速度。当本实施例应用于可播放多个动图画面的APP时,可提高APP中多个动图的第一帧图片数据的刷新速度。
步骤S20:根据第一帧图片数据绘制动图画面。
动图是由多帧静态图片组成的动态画面,读取到其中每一帧静态图片后,即可绘制出完整的动态画面;但由于网络速度、图片数据的解码速度、CPU的处理速度等因素影响,终端读取到动图的每一帧图片数据需要较长时间,使得播放器绘制完整的动图画面的时间也较长,从而降低了用户界面的美观度,增加了用户的等待时间,影响用户体验。本步骤先根据读取的动图第一帧图片数据绘制动图画面,避免了完整动图画面无法快速加载而引起的用户界面卡顿、延时或显示异常等现象,提高了用户界面的美观度,也有利于用户快速获知动图的相关内容,提高了用户体验。
步骤S30:判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;若是,则进行步骤S41;若否,则进行步骤S42;
步骤S41:从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面。
在部分情况下,第一内存缓存块中可存储有一个动图的第一帧图片数据;同时,在第二内存缓存块中也存储有同一个动图的除第一帧外其它帧的图片数据,此时,动图播放器不仅可根据第一帧图片数据绘制动图画面,还可从第二内存缓存块中读取当前欲绘制帧图片数据,并根据当前欲绘制帧图片数据绘制动图画面。例如,内存缓冲块中可存储有用户在最近一段时间之内下载过或播放过的动图图片数据,当用户在刷新APP的过程中,需要再次播放该动图画面时,可直接从第一内存缓存块中读取该动图的第一帧图片数据,并判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;如果有,则可根据动图的播放频率等因素绘制动图画面;如果没有,则可只根据第一帧图片数据绘制动图画面的封面(即第一帧图片数据对应的静态图片画面)。
所述当前欲绘制帧图片数据,可根据动图预设的播放频率确定,或根据播放器当前的设定确定。例如,当所述动图预设的播放频率为24帧/秒时,可根据24帧/秒的频率从第二内存缓存块中读取对应的帧图片数据,并根据对应的帧图片数据绘制动图图画,以体现动图效果。故本发明还提出另一实施例:
所述从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面,包括:
根据动图预设的播放频率,定时从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面。
本实施例根据播放频率,定时从第二内存缓存块中读取当前欲绘制帧图片数据,可使绘制的动图画面根据播放频率进行刷新。当应用于不同的终端或网络环境时,所述预设的播放频率可不相同,例如在CPU性能较好的终端上,可预设较大的播放频率,在性能较差或网络环境较差的终端上,可预设较小的播放频率,以使动图画面可兼顾流畅性与清晰度。
当动图画面需要反复播放时,则在动图播放结束后,可再次从第一内存缓存块中读取动图的第一帧图片数据,并绘制动图动画,并根据判断结果继续从第二内存缓存块中读取当前欲绘制帧图片数据,并绘制动图图画,以使用户可持续看到动图的动态效果。
当第二内存缓存块中没有存储动图画面的当前欲绘制帧图片数据时,则继续下面的步骤S42。
步骤S42:根据上一次读取的帧图片数据绘制动图画面。
在部分情况下,终端需要从网络服务器上获取动图资源,并对动图资源进行解码才能得到第一帧图片数据以及除第一帧外其它帧的图片数据;若从网络服务器上获取动图资源的网速较慢,或终端的解码速度较慢,则第二内存缓存块中可能来不及存储动图画面的当前欲绘制帧图片数据;例如,用户在网络环境较差的情况下,动图资源的下载速度很慢,从而致使解码器解码后、存储于第二内存缓存块中的图片数据更新速度,跟不上播放器的播放频率所需要的帧图片刷新速度,则将导致动图画面出现异常。本步骤可根据上一次读取的帧图片数据绘制动图画面,以避免动图画面出现无法显示或报错的问题。
在部分实施例中,当APP的界面中既存在动图,也存在静态图片时,静态图片数据可作为动图的第一帧图片数据存储于所述第一内存缓存块中,此时第二内存缓存块中没有对应于该静态图片的图片数据,亦即:第二内存缓存块中没有当前欲绘制帧图片数据,本发明可将根据上一次获取的第一帧图片数据绘制动图画面,从而使静态图片亦可正常显示,兼容了静态图片和动图两种图片效果;而且,在提高动图封面的出图速度时,也可保障其它静态图片的加载速度。
在部分实施例中,当频繁出现第二内存缓存块中没有存储动图画面的当前欲绘制帧图片数据时,可根据网络下载速度、解码器解码速度或内存使用情况等因素,生成对应的异常提示信息,以使用户快速了解动图播放不畅的原因。
在本发明的另一实施例中,所述判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据,其在预设时间内的判断结果为否的次数超过预设次数时,可自动降低动图预设的播放频率,或降低绘制的动图画面的清晰度,以提高动图画面播放的流畅度。
相比于将所有图片数据存储于一个内存缓存块中,本发明通过将第一内存缓存块用于存储解码后动图的第一帧图片数据,并将第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据,在同时显示大量动图时,可使动图的封面(即动图的第一帧图片)的出图速度更快,减少了页面滑动刷新时,动图加载速度过慢导致动图封面都无法显示的问题,提高了用户体验。
在本发明的一个实施例中,所述第一内存缓存块的存储空间大于所述第二内存缓存块的存储空间,以使解码后的动图第一帧图片数据尽可能地被保存,减少动图封面加载速度过慢甚至无法加载出来的情况。当解码后的静态图片也存储于所述第一内存缓存块中时,本实施例亦可尽可能地保存静态图片,以保障静态图片的加载速度。
随着用户的使用,第一内存缓存块和第二内存缓存块中缓存的数据将越来越多,为保障终端的正常使用,本发明可定期清理内存缓存块中的数据,以使避免内存占用过多影响终端的正常使用,故本发明还提出如下实施例:所述动图播放方法还包括如下步骤:
确认内存占用超过预设值;
清除所述第一内存缓存块和/或所述第二内存缓存块中的过期数据;
其中,所述第一内存缓存块的过期数据包括最后访问时间超过第一预设时间的图片数据;所述第二内存缓存块的过期数据包括最后访问时间超过第二预设时间的图片数据。
本实施例中清除过期数据遵循LRU(Least Recently Used)策略,即:如果数据最近被访问过,那么将来被访问的几率也更高,故优先清除历史访问记录中最后访问时间超过预设时间的图片数据,从而保留用户最近访问过的图片数据,一方面可减少用户重复下载、解码等资源消耗,避免UI卡顿,另一方面也可根据终端的可用内存大小调整第一内存缓存块和/或所述第一内存缓存块占用的内存,避免终端内存不足的情况。
在本发明的另一实施例中,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照请求时间从近到远则优先级从高到低的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
本实施例可将用户或系统最近提交的动图数据解码请求置于优先级最高的位置,以使最近提交的动图解码请求被优先处理,从而使终端可尽快绘制出最近提交的动图数据解码请求对应的动图画面,提高了终端的响应速度。
在本发明的另一实施例中,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照把动图数据第一帧图片解码请求优先级设为最高优先级的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
在本实施例中,动图数据解码请求包括两种:动图数据第一帧图片解码请求和除第一帧外其它帧图片解码请求。本实施例将动图数据第一帧图片解码请求的优先级置于最高优先级,可使动图数据第一帧图片数据的解码请求被优先处理,从而使终端可尽快绘制出动图数据中的第一帧画面作为封面画面,从而避免动图无法正常显示或加载过慢的问题。
基于以上两个实施例,本发明还提出如图3所示的又一实施例:所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
步骤S01:获取若干动图数据解码请求;
步骤S02:从若干动图数据解码请求中,把动图数据第一帧图片解码请求划分为第一等级;把动图数据除第一帧外其它帧图片解码请求划分为第二等级;
步骤S03:先按照请求时间从近到远则优先级从高到低的规则,对第一等级的动图数据解码请求进行优先级排序,把解码后动图的第一帧图片数据存储在第一内存缓存块;
步骤S04:再按照请求时间从近到远则优先级从高到低的规则,对第二等级的动图数据解码请求进行优先级排序,把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
本实施例根据请求时间从近到远则优先级从高到低的规则,先解码第一等级的动图数据,即先解码动图数据第一帧图片数据,将解码后的图片数据存储在第一内存缓存块;再解码第二等级的动图数据,即除第一帧外其它帧图片的图片数据,将解码后的图片数据存储在第二内存缓存块;本实施例同时根据解码时间和解码内容,对解码请求进行优先级排序,提高了动图封面的出图速度,也可使最近提交的解码请求被优先处理,提高了绘制动图画面的响应速度。
在本发明的一个具体应用实施例中,还可包括如图4所示的缓存模型,其中缓存A对应于第一内存缓存块,缓存B对应于第二内存缓存块。缓存A的内存大于缓存B的内存,以便存储尽可能多的动图第一帧图片数据和静态图片,当多个动图以列表的形式出现时,若用户滑动所述列表界面,可使界面中更容易显示出封面,提高封面的出图速度。缓存B用于存储动图的除第一帧外其它帧的图片数据,可降低终端CPU的使用率。该实施例中的缓存A和缓存B的内存大小可根据终端的可用内存大小进行调整,当缓存A和缓存B占用的内存资源超过预设值后,会根据LRU(Least Recently Used)策略淘汰掉部分缓存资源,以避免内存不足。
在本发明的一个具体应用实施例中,还可包括如图5所示的播放器模型,该实施例为提高UI响应速度,提高大量动图列表滑动播放时的流畅度,播放器可根据动图预设的播放频率,定时从缓存A和/或缓存B中请求解码后的图片数据;如果请求成功,得到请求的解码后的图片数据,则绘制这次请求成功的图片数据对应的动图画面;如果请求失败,则使用上次请求成功的图片数据对应的动图画面,从而避免在渲染线程对图片数据进行解码。在本实施例中,n为大于1的正整数。
在本发明的一个具体应用实施例中,还可包括如图6所示的解码器模型。该实施例对动图资源的解码器解码队列进行了优化。解码队列使用优先级列队,最近提交的解码请求将被优先处理;同时,动图封面数据(即第一帧图片数据)的解码请求将被优先处理,并将解码后的图片数据存入缓存A中,故其解码速度较快,而其除第一帧外其它帧的图片数据将在动图封面数据解码完毕后才处理,并将解码后的图片数据存储于缓冲B中,有利于快速提高动图封面的出图速度。
该发明可将所述解码器、播放器、缓存模型配合使用,以在大量动图列表滑动播放的情况下,实现更快地出图速度、更低的CPU占用率和合理的内存使用。本发明可达到大量动图列表滑动播放时不会降低UI响应速度、播放流畅的效果;而且,大量动图的封面出图速度更快,封面不容易被淘汰。在部分实施例中,大量动图同时播放时的CPU利用率和内存占用率可都在合理范围内,兼顾了播放性能和用户体验的平衡。
本发明还提出一种动图播放装置,包括:
读取模块,用于从第一内存缓存块中读取动图的第一帧图片数据;
封面绘制模块,用于根据第一帧图片数据绘制动图画面;
判断模块,用于判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;
动图更新模块,用于当第二内存缓存块中存储有动图画面的当前欲绘制帧图片数据时,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;或,当第二内存缓存块中没有存储动图画面的当前欲绘制帧图片数据时,根据上一次读取的帧图片数据绘制动图画面。
本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述任意一项所述的动图播放方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、CD-ROM、和磁光盘)、ROM(Read-Only Memory,只读存储器)、RAM(Random AcceSS Memory,随即存储器)、EPROM(EraSable ProgrammableRead-Only Memory,可擦写可编程只读存储器)、EEPROM(Electrically EraSableProgrammable Read-Only Memory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。
本发明实施例还提供一种终端,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述任意一项所述的动图播放方法。
如图7所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端可以为包括手机、平板电脑、PDA(Personal Digital Assistant,个人数字助理)、POS(Point of Sales,销售终端)、车载电脑、服务器等任意终端设备,以终端为手机为例:
图7示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图7,手机包括:射频(Radio Frequency,RF)电路1510、存储器1520、输入单元1530、显示单元1540、传感器1550、音频电路1560、无线保真(wireless fidelity,Wi-Fi)模块1570、处理器1580、以及电源1590等部件。本领域技术人员可以理解,图7中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图7对手机的各个构成部件进行具体的介绍:
RF电路1510可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器1580处理;另外,将设计上行的数据发送给基站。通常,RF电路1510包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路1510还可以通过无线通信与网络和其它设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯系统(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器1520可用于存储软件程序以及模块,处理器1580通过运行存储在存储器1520的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器1520可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序(比如新闻客户端等)等;存储数据区可存储根据手机的使用所创建的数据(比如图片数据等)等。此外,存储器1520可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其它易失性固态存储器件。
输入单元1530可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元1530可包括触控面板1531以及其它输入设备1532。触控面板1531,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板1531上或在触控面板1531附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板1531可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器1580,并能接收处理器1580发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板1531。除了触控面板1531,输入单元1530还可以包括其它输入设备1532。具体地,其它输入设备1532可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元1540可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元1540可包括显示面板1541,可选的,可以采用液晶显示器(LiquidCrystal Display,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板1541。进一步的,触控面板1531可覆盖显示面板1541,当触控面板1531检测到在其上或附近的触摸操作后,传送给处理器1580以确定触摸事件的类型,随后处理器1580根据触摸事件的类型在显示面板1541上提供相应的视觉输出。虽然在图7中,触控面板1531与显示面板1541是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板1531与显示面板1541集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器1550,比如光传感器、运动传感器以及其它传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板1541的亮度,接近传感器可在手机移动到耳边时,关闭显示面板1541和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其它传感器,在此不再赘述。
音频电路1560、扬声器1561,传声器1562可提供用户与手机之间的音频接口。音频电路1560可将接收到的音频数据转换后的电信号,传输到扬声器1561,由扬声器1561转换为声纹信号输出;另一方面,传声器1562将收集的声纹信号转换为电信号,由音频电路1560接收后转换为音频数据,再将音频数据输出处理器1580处理后,经RF电路1510以发送给比如另一手机,或者将音频数据输出至存储器1520以便进一步处理。
Wi-Fi属于短距离无线传输技术,手机通过Wi-Fi模块1570可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图7示出了Wi-Fi模块1570,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器1580是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器1520内的软件程序和/或模块,以及调用存储在存储器1520内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器1580可包括一个或多个处理单元;优选的,处理器1580可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作系统、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器1580中。
手机还包括给各个部件供电的电源1590(比如电池),优选的,电源可以通过电源管理系统与处理器1580逻辑相连,从而通过电源管理系统实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
Claims (10)
1.一种动图播放方法,其特征在于,包括步骤:
从第一内存缓存块中读取动图的第一帧图片数据;
根据第一帧图片数据绘制动图画面;
判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;
若是,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;若否,根据上一次读取的帧图片数据绘制动图画面;
其中,第一内存缓存块用于存储解码后动图的第一帧图片数据;第二内存缓存块用于存储解码后动图的除第一帧外其它帧的图片数据。
2.根据权利要求1所述的方法,其特征在于,所述第一内存缓存块的存储空间大于所述第二内存缓存块的存储空间。
3.根据权利要求1所述的方法,其特征在于,还包括:
确认内存占用超过预设值;
清除所述第一内存缓存块和/或所述第二内存缓存块中的过期数据;
其中,所述第一内存缓存块的过期数据包括最后访问时间超过第一预设时间的图片数据;所述第二内存缓存块的过期数据包括最后访问时间超过第二预设时间的图片数据。
4.根据权利要求1所述的方法,其特征在于,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照请求时间从近到远则优先级从高到低的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
5.根据权利要求1所述的方法,其特征在于,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
按照把动图数据第一帧图片解码请求优先级设为最高优先级的规则,对若干动图数据解码请求进行优先级排序;
根据优先级排序,从若干动图数据解码请求中获取动图数据解码请求;对该若干动图数据解码请求对应的动图数据进行解码;
把解码后动图的第一帧图片数据存储在第一内存缓存块;把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
6.根据权利要求1所述的方法,其特征在于,所述从第一内存缓存块中读取动图的第一帧图片数据之前,还包括:
获取若干动图数据解码请求;
从若干动图数据解码请求中,把动图数据第一帧图片解码请求划分为第一等级;把动图数据除第一帧外其它帧图片解码请求划分为第二等级;
先按照请求时间从近到远则优先级从高到低的规则,对第一等级的动图数据解码请求进行优先级排序,把解码后动图的第一帧图片数据存储在第一内存缓存块;
再按照请求时间从近到远则优先级从高到低的规则,对第二等级的动图数据解码请求进行优先级排序,把解码后动图的除第一帧外其它帧的图片数据存储在第二内存缓存块。
7.根据权利要求1所述的方法,其特征在于,所述从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面,包括:
根据动图预设的播放频率,定时从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面。
8.一种动图播放装置,其特征在于,包括:
读取模块,用于从第一内存缓存块中读取动图的第一帧图片数据;
封面绘制模块,用于根据第一帧图片数据绘制动图画面;
判断模块,用于判断第二内存缓存块中是否存储有动图画面的当前欲绘制帧图片数据;
动图更新模块,用于当第二内存缓存块中存储有动图画面的当前欲绘制帧图片数据时,从第二内存缓存块中读取当前欲绘制帧图片数据,根据当前欲绘制帧图片数据绘制动图画面;或,当第二内存缓存块中没有存储动图画面的当前欲绘制帧图片数据时,根据上一次读取的帧图片数据绘制动图画面。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现如权利要求1至7中任意一项所述的动图播放方法。
10.一种终端,其特征在于,所述终端包括:
一个或多个处理器;
存储装置,用于存储一个或多个程序,
当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现如权利要求1至7中任意一项所述的动图播放方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811210520.XA CN109284183A (zh) | 2018-10-17 | 2018-10-17 | 动图播放方法、装置、计算机存储介质和终端 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811210520.XA CN109284183A (zh) | 2018-10-17 | 2018-10-17 | 动图播放方法、装置、计算机存储介质和终端 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN109284183A true CN109284183A (zh) | 2019-01-29 |
Family
ID=65178002
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811210520.XA Pending CN109284183A (zh) | 2018-10-17 | 2018-10-17 | 动图播放方法、装置、计算机存储介质和终端 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109284183A (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381370A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种动画处理方法、装置、终端及存储介质 |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN112052110A (zh) * | 2020-09-02 | 2020-12-08 | 广州市百果园信息技术有限公司 | 一种存储方法及装置 |
CN115134661A (zh) * | 2022-06-28 | 2022-09-30 | 龙芯中科(合肥)技术有限公司 | 视频处理方法及视频处理应用 |
CN115277924A (zh) * | 2022-07-26 | 2022-11-01 | 努比亚技术有限公司 | 一种动态锁屏显示控制方法、设备及计算机可读存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11298784A (ja) * | 1998-04-08 | 1999-10-29 | Fuji Photo Film Co Ltd | 電子カメラおよびその動作制御方法ならびにアニメーションgif生成装置および方法 |
US20070216654A1 (en) * | 2001-01-26 | 2007-09-20 | Palmsource, Inc. | Adaptive content delivery |
CN100370394C (zh) * | 2004-03-25 | 2008-02-20 | 索尼株式会社 | 图像解码器和图像解码方法 |
CN102568021A (zh) * | 2010-12-15 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 一种基于flash的画面播放方法及系统 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN106961567A (zh) * | 2016-01-12 | 2017-07-18 | 中兴通讯股份有限公司 | 动画图像生成方法及装置 |
CN107436879A (zh) * | 2016-05-25 | 2017-12-05 | 广州市动景计算机科技有限公司 | 一种动态图片的加载方法和加载系统 |
CN107943417A (zh) * | 2017-11-21 | 2018-04-20 | 广州市百果园网络科技有限公司 | 图像处理方法、终端、计算机存储介质及计算机程序 |
-
2018
- 2018-10-17 CN CN201811210520.XA patent/CN109284183A/zh active Pending
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11298784A (ja) * | 1998-04-08 | 1999-10-29 | Fuji Photo Film Co Ltd | 電子カメラおよびその動作制御方法ならびにアニメーションgif生成装置および方法 |
US20070216654A1 (en) * | 2001-01-26 | 2007-09-20 | Palmsource, Inc. | Adaptive content delivery |
US7671869B2 (en) * | 2001-01-26 | 2010-03-02 | Palmsource Inc. | Adaptive content delivery |
CN100370394C (zh) * | 2004-03-25 | 2008-02-20 | 索尼株式会社 | 图像解码器和图像解码方法 |
CN102568021A (zh) * | 2010-12-15 | 2012-07-11 | 腾讯科技(深圳)有限公司 | 一种基于flash的画面播放方法及系统 |
CN104519404A (zh) * | 2013-09-29 | 2015-04-15 | 北京新媒传信科技有限公司 | 图像互换格式文件的播放方法及装置 |
CN106961567A (zh) * | 2016-01-12 | 2017-07-18 | 中兴通讯股份有限公司 | 动画图像生成方法及装置 |
CN107436879A (zh) * | 2016-05-25 | 2017-12-05 | 广州市动景计算机科技有限公司 | 一种动态图片的加载方法和加载系统 |
CN107943417A (zh) * | 2017-11-21 | 2018-04-20 | 广州市百果园网络科技有限公司 | 图像处理方法、终端、计算机存储介质及计算机程序 |
Non-Patent Citations (2)
Title |
---|
张可新 赵颖: "《Photoshop CS6 图像处理经典案例教程》", 31 December 2016, 北京邮电大学出版社 * |
陈永东,王林彤: "《数字媒体艺术设计概论》", 31 August 2018, 中国青年出版社 * |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110381370A (zh) * | 2019-07-22 | 2019-10-25 | 腾讯科技(深圳)有限公司 | 一种动画处理方法、装置、终端及存储介质 |
CN110727520A (zh) * | 2019-10-23 | 2020-01-24 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN110727520B (zh) * | 2019-10-23 | 2022-05-03 | 四川长虹电器股份有限公司 | 一种优化Android帧动画的实现方法 |
CN112052110A (zh) * | 2020-09-02 | 2020-12-08 | 广州市百果园信息技术有限公司 | 一种存储方法及装置 |
CN115134661A (zh) * | 2022-06-28 | 2022-09-30 | 龙芯中科(合肥)技术有限公司 | 视频处理方法及视频处理应用 |
CN115277924A (zh) * | 2022-07-26 | 2022-11-01 | 努比亚技术有限公司 | 一种动态锁屏显示控制方法、设备及计算机可读存储介质 |
CN115277924B (zh) * | 2022-07-26 | 2024-05-17 | 努比亚技术有限公司 | 一种动态锁屏显示控制方法、设备及计算机可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109284183A (zh) | 动图播放方法、装置、计算机存储介质和终端 | |
CN105554550B (zh) | 视频播放方法及装置 | |
US11137876B2 (en) | Information display method, device and terminal for displaying progress on application icon | |
CN108512695B (zh) | 监控应用卡顿的方法及装置 | |
WO2021218751A1 (zh) | 一种基于云手机的媒体数据处理方法以及终端设备 | |
CN108322685A (zh) | 视频插帧方法、存储介质以及终端 | |
WO2019144743A1 (zh) | 一种信息展示方法和装置 | |
CN106658064B (zh) | 虚拟礼物展示方法及装置 | |
CN108259975A (zh) | 视频播放方法、存储介质和终端 | |
US20230007188A1 (en) | Video source switching method, playing method, apparatus, device, and storage medium | |
CN108391154A (zh) | 弹幕显示控制方法、存储介质和终端 | |
CN104519404B (zh) | 图像互换格式文件的播放方法及装置 | |
CN104967865B (zh) | 视频预览方法和装置 | |
US9122369B2 (en) | Mobile device and method for updating display screen with online widget | |
US20150153931A1 (en) | Method, device and terminal for refreshing page | |
CN106792120A (zh) | 视频画面的显示方法、装置和终端 | |
WO2019101043A1 (zh) | 图像处理方法、终端、计算机存储介质及计算机程序 | |
US20170221109A1 (en) | Ads management in a browser application | |
CN104090849B (zh) | 用于图形处理单元的存储器映射的系统、方法、装置、电子设备以及机器可读介质 | |
CN106062662A (zh) | 用于在dram存储器系统中提供省电的静态图像显示刷新的系统和方法 | |
CN103399911A (zh) | 基于浏览器客户端的访问处理方法、装置及终端设备 | |
US10992723B2 (en) | Method for processing streaming media data and terminal | |
CN104240710B (zh) | 一种信息传输的方法、系统及终端设备 | |
CN110460862B (zh) | 一种直播处理的方法、终端设备及存储介质 | |
CN112073525B (zh) | 一种广告推送方法、装置及电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |