CN110223221A - 一种动态图像播放的方法及终端设备 - Google Patents

一种动态图像播放的方法及终端设备 Download PDF

Info

Publication number
CN110223221A
CN110223221A CN201810169084.XA CN201810169084A CN110223221A CN 110223221 A CN110223221 A CN 110223221A CN 201810169084 A CN201810169084 A CN 201810169084A CN 110223221 A CN110223221 A CN 110223221A
Authority
CN
China
Prior art keywords
image
image data
data
dynamic
frame
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201810169084.XA
Other languages
English (en)
Other versions
CN110223221B (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.)
Tencent Technology Shenzhen Co Ltd
Original Assignee
Tencent Technology Shenzhen Co 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 Tencent Technology Shenzhen Co Ltd filed Critical Tencent Technology Shenzhen Co Ltd
Priority to CN201810169084.XA priority Critical patent/CN110223221B/zh
Publication of CN110223221A publication Critical patent/CN110223221A/zh
Application granted granted Critical
Publication of CN110223221B publication Critical patent/CN110223221B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T13/00Animation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4038Image mosaicing, e.g. composing plane images from plane sub-images

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Two-Way Televisions, Distribution Of Moving Picture Or The Like (AREA)

Abstract

本发明实施例公开了一种动态图像播放的方法,包括:获取动态图像中的第一图像数据,动态图像包含多帧图像;对第一图像数据进行解码处理,得到第一图像,第一图像数据满足数据帧播放条件;播放动态图像中的第一图像;获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,得到解码后的下一个图像,下一个图像数据满足数据帧播放条件;播放动态图像中的下一个图像。本发明实施例还提供一种终端设备。本发明实施例可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。

Description

一种动态图像播放的方法及终端设备
技术领域
本发明涉及多媒体处理领域,尤其涉及一种动态图像播放的方法及终端设备。
背景技术
图像互换格式(graphics interchange format,GIF)动图是除了图片之外,比较常见的趣味表达的丰富媒介载体。GIF动图在社交应用程序类中有着大量的发送量,可将连续图片转换为GIF动图,或将视频转换为GIF动图。
用户在浏览GIF动图的时候,需要等GIF动图下载完毕才能够播放,等待的过程中占位图是灰色的,目前业界对GIF动图的处理一般步骤都是先展示模糊的缩略图,然后等全部下载完之后,再展示完整的图片。
然而,GIF动图一般由多帧图像合成,有些高清或者大分辨率的GIF动图需要消耗较多时间,因此,要等整个GIF动图全部下载后再开始解码播放,会对用户的查看造成了不便,从而降低了观看体验。
发明内容
本发明实施例提供了一种动态图像播放的方法及终端设备,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。
有鉴于此,本发明第一方面提供了一种动态图像播放的方法,包括:
获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
对所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放所述动态图像中的所述第一图像;
获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放所述动态图像中的所述下一个图像。
本发明第二方面提供了一种终端设备,所述终端设备包括存储器、收发器、处理器以及总线***;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
对所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放所述动态图像中的所述第一图像;
获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放所述动态图像中的所述下一个图像;
所述总线***用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
本申请的第三方面提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
本发明实施例中,提供了一种动态图像播放的方法,首先由终端设备获取动态图像中的第一图像数据,该动态图像包含多帧图像,然后终端设备对第一图像数据进行解码处理,得到第一图像,第一图像数据满足数据帧播放条件,终端设备播放动态图像中的第一图像。终端设备会继续获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,得到解码后的下一个图像,其中,下一个图像数据满足所述数据帧播放条件,终端设备继续播放动态图像中的下一个图像。通过上述方式,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。
附图说明
图1为本发明实施例中动态图像播放***的一个架构示意图;
图2为本发明实施例中GIF动图的一个展示示意图;
图3为本发明实施例中GIF动图的文件格式示意图;
图4为本发明实施例中播放动态图像的一个流程示意图;
图5为本发明实施例中动态图像播放的方法一个实施例示意图;
图6为本发明实施例中下载动态图像的一个流程示意图;
图7为本发明实施例中通过第一帧更新位置进行解码的一个示意图;
图8为本发明应用程序中控制GIF动图播放的一个示意图;
图9为本发明应用场景中展示GIF动图的一个界面示意图;
图10为本发明实施例中终端设备的一个实施例示意图;
图11为本发明实施例中终端设备的另一个实施例示意图;
图12为本发明实施例中终端设备的另一个实施例示意图;
图13为本发明实施例中终端设备的另一个实施例示意图;
图14为本发明实施例中终端设备的一个结构示意图。
具体实施方式
本发明实施例提供了一种动态图像播放的方法及终端设备,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。
本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”、“第四”等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
应理解,本发明可以应用于应用程序,比如微信朋友圈、QQ空间、微博以及贴吧等,均可以采用本方案来播放GIF动图,具体地,本方案的应用场景包含但不仅限于信息流(feeds)广告的多图播放、相册二级页照片流以及大图浏览等加载播放GIF动图的场景。边下边播逻辑在GIF动图加载的过程中自动执行,用户无感知,基本无任何停顿等待。
请参阅图1,图1为本发明实施例中动态图像播放***的一个架构示意图,如果所示,终端设备可以与服务器建立通信连接,并从服务器上下载GIF动图,并将下载后的GIF动图在终端设备的显示界面上进行播放。可以理解的是,终端设备包含但不仅限于手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、台式电脑、笔记本电脑、销售终端(Point of Sales,POS)以及车载电脑等任意终端设备。
上述终端设备均具有显示界面,通过该显示界面可以播放已下载的GIF动图,请参阅图2,图2为本发明实施例中GIF动图的一个展示示意图,如图所示,在终端设备的显示界面上可展示GIF动图,在实际应用中,GIF动图可以平铺于整个显示界面,也可以占据显示界面的一部分,图2的展示方式仅为一个示意,并不构成对本发明的限定。
上面已对GIF动图的一个表现形式进行了介绍,下面将结合附图对GIF动图的格式进行介绍。
GIF是一种位图图形文件格式,以8位色(即256种颜色)重现真彩色的图像。它实际上是一种压缩文档,采用串表压缩算法(Lempel-Ziv-Welch Encoding,LZW)进行编码,有效地减少了图像文件在网络上传输的时间。它是目前广泛应用于网络传输的图像格式之一。请参阅图3,图3为本发明实施例中GIF动图的文件格式示意图,如图所示,图中实线框的内容为必要内容,虚线框的内容为可选内容。GIF格式的文件结构整体上分为三部分,分别为文件头部、GIF数据流和文件结尾。
文件头部包含了格式标识、逻辑屏幕标识符(Logical Screen Descriptor,LSD)和全局颜色列表(Global Color Table,GCT)。其中,格式标识表示的是GIF的署名和版本号,可以通过前3个字节判断文件是否为GIF格式,后3个字节判断GIF格式的版本。LSD配置了GIF一些全局属性,可以通过读取解析它获取GIF全局的一些配置,比如GIF图像的像素宽度,GIF图像的像素高度,图象的颜色深度,GCT标志,GCT的分类排列以及全局像素的宽度与高度的比值等。GCT的每个颜色索引由三字节组成,按红绿蓝(red green blue,RGB)顺序排列。可以理解的是,整个GIF在每一帧的画面数组时是不会出现RGB值的,画面中所有像素的RGB值,都是通过从全局/局部颜色列表中取得。
GIF数据流可以包括图形控制扩展(Graphic Control Extension,GCE)、图像标识符(Image Descriptor),局部颜色列表(Local Color Table,LCT)、图像数据(ImageData)。
其中,图像标识符用于描述每个图像块当前帧的一些属性,图像标识符以','(0x2c)作为开始标志。GCE用来控制紧跟在它后面的第一个图象的显示。LCT用于表示图像数据的RGB值、
文件结尾,是在解析程序读到0x3B时,表示文件终结。
由图3可见,可以看出GIF中间部分是对每一帧图片的循环,因此,本发明的基本思路就是将GIF已经下载好的前面的数据,优先显示出来。在读取GCE之前,会标记当前读取的位置X,然后依次读取完Image Descriptor、Local Color Table和Image Data,如果其中哪一部是失败的,则丢弃此次解码,下次GIF文件有更新的时候,从继续从位置X开始解码。
为了便于理解,请参阅图4,图4为本发明实施例中播放动态图像的一个流程示意图,如图所示,虚线表示控制流,实现表示数据流,箭头所指方向表示流向。其中,播放动态图像的实现方案主要包括下载模块、解码模块和播放模块,首先播放模块在步骤S1中,接收用户通过应用程序触发的下载请求,该下载请求可以携带统一资源定位符(UniformResource Locator,URL)。根据该下载请求在步骤S2中查找本地是否具有相关文件,如果有,则直接播放该文件,如果没有,则播放模块在步骤S3中请求下载模块进行下载。下载模块在步骤S5中按照一定的下载规则进行下载,具体地,下载规则可以是每次只下载一帧图像中的部分图像数据,再有解码模块进行解码。将解码出来的图像发送给播放模块,由播放模块通过应用程序进行播放。
下面将从终端设备的角度,对本发明中动态图像播放的方法进行介绍,请参阅图5,本发明实施例中动态图像播放的方法一个实施例包括:
101、获取动态图像中的第一图像数据,其中,动态图像包含多帧图像;
本实施例中,用户可通过应用程序触发动态图像播放指令,比如,在“QQ空间”的动图相册中点击某个动态图像,即触发了动图图像播放指令。可以理解的是,本方案中的动图图像具体可以是GIF动态。
终端设备根据动态图像播放指令从服务器上下载动态图像中的第一图像数据,第一图像数据的大小可以为8千字节(Kilobyte,KB),第一图像数据可以是动态图像的头部数据,也可以是动态图像的帧数据,需要注意的是,第一图像数据的大小通常是小于一帧图像数据的,仅为一帧图像中的部分数据。根据大量统计结果,一个动态图像大小平均为260KB,包含10帧左右的图像。终端设备每次按照一定的数据小大来下载图像数据。
此外,第一图像数据的大小是固定的,这里的8KB仅为一个示意,在实际应用中,还可以是其他大小的数据量。
102、对第一图像数据进行解码处理,得到第一图像,其中,第一图像数据满足数据帧播放条件;
本实施例中,如果当前下载完第一图像数据后,确定满足数据帧播放条件,则终端设备会对动态图像中的第一图像数据进行解码处理,这里的第一图像数据即为未经过解码的数据,对第一图像数据进行解码后得到第一图像。
103、播放动态图像中的第一图像;
本实施例中,终端设备播放解码后的第一图像,至此完成动态图像中一帧图像的播放,可以理解的是,动态图像中的每帧图像均采用如上述步骤101至步骤103所描述的方法进行播放,直至整个动态图像播放完毕。
104、获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,得到解码后的下一个图像,其中,下一个图像数据满足数据帧播放条件;
本实施例中,终端设备播放第一图像的过程中,可以开始获取动态图像中的下一个图像数据,然后对下一个图像数据进行解码处理,得到解码后的下一个图像,下一个图像数据满足数据帧播放条件。
可以理解的是,在实际应用中,终端设备可以在解析图像数据之后,确定是否满足数据帧播放条件,也可以先确定满足数据帧播放条件之后,再解析图像数据,此处不做限定。
105、播放动态图像中的下一个图像。
本实施例中,终端设备播放完第一图像后,紧接着播放下一个图像。
本发明实施例中,提供了一种动态图像播放的方法,首先由终端设备获取动态图像中的第一图像数据,该动态图像包含多帧图像,然后终端设备对第一图像数据进行解码处理,得到第一图像,第一图像数据满足数据帧播放条件,终端设备播放动态图像中的第一图像。终端设备会继续获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,得到解码后的下一个图像,其中,下一个图像数据满足所述数据帧播放条件,终端设备继续播放动态图像中的下一个图像。通过上述方式,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的动态图像播放的方法第一个可选实施例中,获取动态图像中的第一图像数据之后,还可以包括:
若第一图像数据的数据量达到预设帧数据量阙值,则确定第一图像数据满足数据帧播放条件。
本实施例中,将说明满足数据帧播放条件的情况。具体地,假设动态图像包括10帧图像,且假设预设帧数据量阙值为800KB,如果第一图像数据的数据量大小为8KB,也就说明每次以同样大小的数据量下载图像数据,第1次下载的8KB数据通常为动态图像的一些控制符,从第2次下载开始,每下载一次8KB大小的第一图像数据,便会判断是否构成了完整的一个图像帧。以800KB图像帧为例,第2次下载图像数据只能构成8KB的图像数据,于是终端设备会继续第3次图像数据的下载,直到完成第101次下载后,刚好构成800KB的完整图像帧,这个时候,终端设备判断当前下载完第一图像数据之后,达到预设帧数据量阙值,也就确定满足数据帧播放条件。
其次,本发明实施例中,介绍了满足数据帧播放条件的具体内容,即由终端设备判断当前是否已达到一帧图像的预设帧数据量阙值,如果已经达到预设帧数据量阙值,则认为第一图像数据满足数据帧播放条件。通过上述方式,能够保证每次都能对完整的一帧图像进行解码,以提升解码的成功率,从而提升解码的可靠性。
可选地,在上述图5或图5对应的第一个实施例的基础上,本发明实施例提供的动态图像播放的方法第二个可选实施例中,对动态图像中的第一图像数据进行解码处理,可以包括:
若第一图像数据不满足数据帧播放条件,则获取动态图像中的第二图像数据;
对动态图像中的第一图像数据和第二图像数据进行解码处理,得到解码后的第一图像和第二图像,其中,第一图像数据和第二图像数据满足数据帧播放条件。
本实施例中,将说明多次下载图像数据的情况。具体地,第一图像数据大小为8KB,则说明每次以同样大小的数据量下载图像数据,第1次下载的8KB数据通常包括动态图像的一些控制符以及图像数据,从第2次下载开始,每下载一次8KB大小的图像数据,便会判断是否构成了完整的一个图像。以16KB的图像帧作为完整的一帧图像为例,若第2次下载图像数据只能构成8KB的图像数据(第2次下载的图像数据为第一图像数据),于是终端设备需要进行第3次图像数据的下载(第3次下载的图像数据为第二图像数据),这时候刚好构成16KB的完整图像帧,终端设备判断当前达到一帧图像的预设帧数据量阙值,如果达到预设帧数据量阙值,也就确定第一图像数据和第二图像数据满足数据帧播放条件。
需要说明的是,第二图像数据是在第一图像数据之后下载的,通常情况下,两者的数据量大小相等,不同之处在于下载的先后,当然,在实际应用中,第一图像数据的数据量和第二图像数据的数据量也可以不等。
再次,本发明实施例中,如果第一图像数据不满足数据帧播放条件,则终端设备会继续获取动态图像中的第二图像数据,直至满足数据帧播放条件为止,再对动态图像中的第一图像帧进行解码处理,得到解码后的第一图像,于是可以播放第一图像。通过上述方式,可以在第一图像数据不满足数据帧播放条件的情况下,继续下载第二图像数据,直到满足数据帧播放条件为止,从而保证是对完整的一个图像帧进行解码,由此提升解码的可靠性。
可选地,在上述图5对应的第二个实施例的基础上,本发明实施例提供的动态图像播放的方法第三个可选实施例中,还可以包括:
若第一图像数据和第二图像数据不满足数据帧播放条件,则确定第一获取次数,其中,第一获取次数为N,N为大于0的正整数;
根据第一获取次数获取N份第三图像数据,其中,第三图像数据用于构成第三图像;
若第一图像数据、第二图像数据以及N份第三图像数据不满足数据帧播放条件,则确定第二获取次数,直至图像数据满足数据帧播放条件,其中,第二获取次数为M,M为大于N的整数。
本实施例中,在第一图像数据和第二图像数据不满足数据帧播放条件的情况下,可以通过调整获取次数来获取后续的图像数据。假设初始的第一获取次数为32次,在获取了32次的图像数据后仍不满足数据帧播放条件,就将第一获取次数N调整为第二获取次数M,通常是在第一获取次数N的基础上乘以2,让其指数增长,这样就能快速完成解析。
可以理解的是,连续32次下载的操作可认为是一个合成式操作,也就是说,每下载32次就进行一次解码,若解码成功,则继续下一帧图像的下载,如果解码失败,则需要增加一个操作中需要下载图像数据的次数,按照新的次数进行后续第三图像数据的下载,直到满足数据帧播放条件。
为了便于介绍,请参阅图6,图6为本发明实施例中下载动态图像的一个流程示意图,如图所示,具体为:
步骤S1中,终端设备接收动态图像播放请求,其中,该动态图像播放请求中携带有待播放动态图像的标识,比如标识号或者下载地址等信息;
步骤S2中,终端设备根据动态图像播放请求从服务器上开始下载图像数据;
步骤S3中,假设每次从服务器上下载的数据量为8KB,则终端设备会从服务器上进行8KB图像数据的下载;
步骤S4中,判断是否下载完整个动态图像,若未下载完,则进入步骤S3继续进行下载,若已下载完毕,则进入步骤S5;
步骤S5中,下载完成则终端设备不需要继续进行下载操作;
步骤S6中,终端设备需要判断读取的次数是否大于P,P为正整数,通常可以设置为32次,若大于P,则进行步骤S7,若未达到P,则继续执行步骤S3;
步骤S7中,在读取次数大于P后还可以继续判断终端设备的本地存储区中是否存在下一帧图像,若本地存储区中存在下一帧图像,则进入步骤S8,反之,若本地存储区中不存在下一帧图像,则会进入步骤S11;
步骤S8中,直接从本地存储区中读取后续需要下载的图像数据;
步骤S9中,计算当前读取的字节数能够展示一帧完整的图像,如果可以,则进入步骤S13,直接进行展示并等待下一帧图像的处理,反之,如果不可以,则进入步骤S10;
步骤S10中,更新P值的大小,通常可以将原本的P值乘以2,通过增加P值来提升完整帧解码的成功率;
步骤S11中,初始化动态图像的图像信息,比如通过path或者byte数组来实现,初始化后可以对图像帧进行解码;
步骤S12中,在读取本地存储区中的图像数据后可以合成完整的一帧图像,并更新动态图像中的信息,比如帧更新位置;
步骤S13中,通知终端设备的播放界面刷新下一帧图像。
进一步地,本发明实施例中,在第一图像数据和第二图像数据不满足数据帧播放条件的情况下,还可以调整获取图像数据的次数,增加获取次数后继续进行条件的判断,直到图像数据满足数据帧播放条件。通过上述方式,可增加图像数据的获取次数将多次下次合成为一次操作,从而提升解码的效率。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的动态图像播放的方法第四个可选实施例中,获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,可以包括:
获取动态图像中的第四图像数据;
对第四图像数据进行解码处理,得到第四图像,其中,第四图像数据满足数据帧播放条件。
本实施例中,由于动态图像包含多帧图像,因此,在播放完第一图像,需要紧接着播放下一帧图像,也就是第二图像。
具体地,终端设备在播放第一图像后,还会继续播放下一帧图像。终端设备从服务器上下载动态图像中的第四图像数据,需要说明的是,第四图像数据的数据量大小通常与第一图像数据的数据量大小一致,此处不作具体限定。第四图像数据的数据量大小是固定的。
如果当前下载完第四图像数据后确定满足数据帧播放条件,则终端设备会对动态图像中的第四图像数据进行解码处理,这里的第四图像数据即为未经过解码的图像数据,经过解码后便得到第四图像。终端设备播放解码后的第四图像。
需要说明的是,在终端设备播放后续的图像时,同样采用如上述步骤101至步骤103所描述的方法进行,此处不作赘述。
其次,本发明实施例中,在完成一帧图像的播放后,还可以再次获取动态图像中的第四图像数据,若第四图像数据满足数据帧播放条件,则对动态图像中的第四图像数据进行解码处理,得到解码后的第四图像,最后播放动态图像中的第四图像。通过上述方式,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验,并且能够连续展示动态图像中的各帧图像。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的动态图像播放的方法第五个可选实施例中,对第一图像数据进行解码处理,得到第一图像之后,还可以包括:
记录第一图像所对应的第一帧更新位置,其中,第一帧更新位置用于指示已解码成功的最后一个图像;
若第二图像解码失败,则根据第一帧更新位置重新对第二图像帧进行解码处理。
本实施例中,由于动态图像在下载过程中是一部分一部分的下载的,为了保证能够正确地解析出一帧图像,可以通过保存解码指针的移动位置来控制下一帧开始的位置。
动态图像包括不同的指针,比如“IMAGE_DESC_RECORD_TYPE”、“EXTENSION_RECORD_TYPE”以及“TERMINATE_RECORD_TYPE”,其中,“IMAGE_DESC_RECORD_TYPE”是指图像帧的开始,“EXTENSION_RECORD_TYPE”是指是图像帧前的图像控制描述,“TERMINATE_RECORD_TYPE”是动态图像结束时的末尾。
具体地,每次在读取“EXTENSION_RECORD_TYPE”之前,都先记录当前的第一帧更新位置,第一帧更新位置可以描述为“lastReadPos”,为了便于介绍,请参阅图7,图7为本发明实施例中通过第一帧更新位置进行解码的一个示意图,如图所示,以三个图像为例,每个图像解码成功后都会通过第一帧更新位置来指示已解码成功的最后一个图像,在第一帧更新位置1处理开始进行解码,解码成功后得到图像1,于是将第一帧更新位置移图像1的结束点,并标识为第一帧更新位置2。这时候可以开始下一帧图像的解码,如果在解码图像2的时候出现了解码错误的情况,那么根据第一帧更新位置2确定图像2的位置,并可以再次进行第二图像的解码。
每次在独权“EXTENSION_RECORD_TYPE”前,都先记录当前的“lastReadPos”,以防当前的解码失败,当读取到“IMAGE_DESC_RECORD_TYPE”,并且能够成功解码出图像的时候,再将“lastReadPos”重新更新。
其次,本发明实施例中,在终端设备对动态图像中的第一图像进行解码处理,得到解码后的第一图像之后,还可以记录第一图像所对应的第一帧更新位置,一旦第二图像解码失败,则根据第一帧更新位置重新对第二图像进行解码处理。通过上述方式,当存在解码失败的情况,可以利用第一帧更新位置回滚到上一次解码成功的位置,从而进一步提升解码效率。
可选地,在上述图5对应的第五个实施例的基础上,本发明实施例提供的动态图像播放的方法第六个可选实施例中,对第一图像数据进行解码处理,得到第一图像之后,还可以包括:
记录动态图像的第二帧更新位置,其中,第二帧更新位置用于指示动态图像中已解码图像数据与未解码图像数据;
若第二帧更新位置小于第一帧更新位置,则确定出现解码异常。
本实施例中,除了可以记录第一帧更新位置以外,为了确认是否出现解码异常,还可以记录第二帧更新位置,第二帧更新位置可以描述为“lastUpdateFilePos”,用于指示动态图像中已解码图像数据与未解码图像数据。具体地,在动态图像创建的时候会先遍历整个动态图像,得到具体的图像帧数。由于在一边下载一边播放的时候,需要不断地更新不完整的数据流,在不断创建的过程中容易出现失真的情况,所以需要采用第二帧更新位置来区分解码时和非解码时的指针状态,并且在解码的时候,为了防止异常情况的出现,必须满足第二帧更新位置大于或等于第一帧更新位置的条件,即“lastUpdateFilePos”大于或等于“lastReadPos”,反之,则认为出现解码异常。
第二帧更新位置出现在图像解析成功的位置,该位置不仅限于图像起始位置或图像结束位置。
再次,本发明实施例中,还可以通过记录动态图像的第二帧更新位置,来判断是否出现解码异常的情况,如图第二帧更新位置小于第一帧更新位置,则终端设备确定出现解码异常。通过上述方式,能够使得终端设备准确地获知解码过程中是否出现异常情况,如果解码异常,则会及时通知,从而提升了解码的准确性,有利于提升方案的可操作性。
可选地,在上述图5对应的第五个或第六个实施例的基础上,本发明实施例提供的动态图像播放的方法第七个可选实施例中,对第一图像数据进行解码处理,可以包括:
通过路径读取第一图像数据,并对第一图像数据进行解码处理;
或,
通过字节数组读取第一图像数据,并对第一图像数据进行解码处理。
本实施例中,在终端设备解码的过程中,可以采用两种方式来实现,第一种方式为,通过路径(path)读取动态图像中的第一图像数据,再对第一图像数据进行解码处理;第二种方式为,通过字节(byte)数组读取动态图像中的第一图像数据,再对第一图像数据进行解码处理。
动态图像的解码过程都在native进行,native属于安卓框架,是通过C语言或C++语言实现的。每一个动态图像都会有一个GIF处理模块(Gifhandler)来控制。Gifhandler的初始化可以通过传入path来完成,或者通过传入byte数组来完成,path不需要传入额外变量,图像帧可以直接从数据层中获取。而byte数组需要传入其他的变量,图像帧则是从应用层传至数据层。
可以理解的是,如果每次从数据层传回byte数组来重新构建Gifhandler,对内存的消耗是很大的,而通过path的话,可以让native直接通过文件方式读取图像帧,从而大大降低内存消耗,本方案可采取用path来回传至解码层。
进一步地,本发明实施例中,介绍了两种读取第一图像数据的方式,既可以通过路径读取动态图像中的第一图像数据,又可以通过字节数组读取动态图像中的第一图像数据。通过上述方式,增加了方案的灵活性,可以根据实际情况选择一种方式读取第一图像数据。此外,采用路径读取无需传入额外变量,可以降低内存消耗,而采用字节数据读取可直接从底层获取,更为方便。
可选地,在上述图5对应的实施例的基础上,本发明实施例提供的动态图像播放的方法第八个可选实施例中,获取动态图像中的第一图像数据之前,还可以包括:
接收动态图像播放指令,其中,动态图像播放指令中携带待播放动态图像的标识;
根据动态图像播放指令判断本地存储区中是否存在动态图像;
若本地存储区中存在动态图像,则播放动态图像;
若本地存储区中不存在动态图像,则执行获取动态图像中的第一图像数据的步骤。
本实施例中,在终端设备获取动态图像中的第一图像数据之前,可以先接收用户触发的动态图像播放指令,在实际情况中,动态图像播放指令也可以是由终端设备自动触发的,此处不作限定。在该动态图像播放指令中携带有待播放动态图像的标识,例如标识号。终端设备可通过标识在本地存储区(cache)中查找是否存在该待播放动态图像。如果本地存储区中已经存在动态图像,那么终端设备直接调用该动态图像,并播放动态图像。
反之,如果终端设备的本地存储区中不存在动态图像,则需要执行获取动态图像中的第一图像数据的步骤,具体可参考步骤101至步骤103所描述的内容,此处不作赘述。
本地存储区可以是缓存,也可以是内存。其中,缓存就是数据交换的缓冲区,当某一硬件要读取数据时,会首先从缓存中查找需要的数据,如果找到了则直接执行,找不到的话则从内存中找。由于缓存的运行速度比内存快得多,故缓存的作用就是帮助硬件更快地运行。缓存的工作原理是当中央处理器(Central Processing Unit,CPU)要读取一个数据时,首先从CPU缓存中查找,找到就立即读取并送给CPU处理。没有找到,就从速率相对较慢的内存中读取并送给CPU处理,同时把这个数据所在的数据块调入缓存中,可以使得以后对整块数据的读取都从缓存中进行,不必再调用内存。
其次,本发明实施例中,在播放动态图像之前,还可以先根据动态图像播放指令去查收终端设备本地存储区中是否存在该动态图像,如果存在,就可以直接从中调用,无需再次下载。通过上述方式,一方面能够提升动态图像播放的效率,不会重复去下载相同的内容,另一方面,节省了下载资源,从而节省了网络资源,有利于提升方案的实用性。
为了便于理解,请参阅图8,图8为本发明应用程序中控制GIF动图播放的一个示意图,如图所示,一个动态图像包含多帧图像,终端设备每次从服务器上下载一定数量大小的图像数据,比如8KB的图像数据,经过多次下载后可以合成一个图像帧,该图像帧在解码后就也就生成一帧完成的图像,终端设备可播放该帧图像。
经过多次尝试和比对后,采用本方案可以有效地减少动态图像播放的等待时间,从而极大提高用户体验。请参阅表1,表1为对比数据。
表1
文件大小 边下边播打开耗 下完再播耗时 打开速度提升
750KB 130时毫秒 524毫秒 4倍
1.88MB 129毫秒 1233毫秒 9.5倍
4.20MB 161毫秒 3942毫秒 24.5倍
6.97MB 186毫秒 6648毫秒 35.7倍
11.80MB 317毫秒 11744毫秒 37倍
在实际应用中,本方案的界面展示效果如图9所示,图9为本发明应用场景中展示GIF动图的一个界面示意图,如图所示,以QQ空间安卓结合版的界面为例,在GIF相册中可以展示多个GIF动图。
下面对本发明中的终端设备进行详细描述,请参阅图10,图10为本发明实施例中终端设备一个实施例示意图,终端设备20包括:
获取模块201,用于获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
解码模块202,用于对所述获取模块201获取的所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放模块203,用于播放所述解码模块202解码得到的所述动态图像中的所述第一图像;
解码模块202,还用于获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放模块203,还用于播放所述解码模块202解码得到的所述动态图像中的所述下一个图像。
本实施例中,获取模块201获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像,解码模块202对所述获取模块201获取的所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件,播放模块203播放所述解码模块202解码得到的所述动态图像中的所述第一图像,解码模块202获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件,播放模块203播放所述解码模块202解码得到的所述动态图像中的所述下一个图像。
本发明实施例中,提供了一种终端设备,首先由终端设备获取动态图像中的第一图像数据,该动态图像包含多帧图像,然后终端设备对第一图像数据进行解码处理,得到第一图像,第一图像数据满足数据帧播放条件,终端设备播放动态图像中的第一图像。终端设备会继续获取动态图像中的下一个图像数据,对下一个图像数据进行解码处理,得到解码后的下一个图像,其中,下一个图像数据满足所述数据帧播放条件,终端设备继续播放动态图像中的下一个图像。通过上述方式,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验。
可选地,在上述图10所对应的实施例的基础上,请参阅图11,本发明实施例提供的终端设备20的另一实施例中,所述终端设备20还包括确定模块204;
所述确定模块204,用于所述获取模块201获取动态图像中的第一图像数据之后,若所述第一图像数据的数据量达到预设帧数据量阙值,则确定所述第一图像数据满足所述数据帧播放条件。
其次,本发明实施例中,介绍了满足数据帧播放条件的具体内容,即由终端设备判断当前是否已达到一帧图像的预设帧数据量阙值,如果已经达到预设帧数据量阙值,则认为第一图像数据满足数据帧播放条件。通过上述方式,能够保证每次都能对完整的一帧图像进行解码,以提升解码的成功率,从而提升解码的可靠性。
可选地,在上述图10或图11所对应的实施例的基础上,本发明实施例提供的终端设备20的另一实施例中,
所述解码模块202,具体用于若所述第一图像数据不满足所述数据帧播放条件,则获取所述动态图像中的第二图像数据;
对所述动态图像中的所述第一图像数据和所述第二图像数据进行解码处理,得到所述解码后的第一图像和第二图像,其中,所述第一图像数据和所述第二图像数据满足所述数据帧播放条件。
再次,本发明实施例中,如果第一图像数据不满足数据帧播放条件,则终端设备会继续获取动态图像中的第二图像数据,直至满足数据帧播放条件为止,再对动态图像中的第一图像帧进行解码处理,得到解码后的第一图像,于是可以播放第一图像。通过上述方式,可以在第一图像数据不满足数据帧播放条件的情况下,继续下载第二图像数据,直到满足数据帧播放条件为止,从而保证是对完整的一个图像帧进行解码,由此提升解码的可靠性。
可选地,在上述图10或图11所对应的实施例的基础上,本发明实施例提供的终端设备20的另一实施例中,
所述获取模块201,还用于若所述第一图像数据和所述第二图像数据不满足所述数据帧播放条件,则确定第一获取次数,其中,所述第一获取次数为N,所述N为大于0的正整数;
根据所述第一获取次数获取N份第三图像数据,其中,所述第三图像数据用于构成第三图像;
所述确定模块204,还若所述第一图像数据、所述第二图像数据以及所述N份第三图像数据不满足所述数据帧播放条件,则确定第二获取次数,直至图像数据满足所述数据帧播放条件,其中,所述第二获取次数为M,所述M为大于所述N的整数。
进一步地,本发明实施例中,在第一图像数据和第二图像数据不满足数据帧播放条件的情况下,还可以调整获取图像数据的次数,增加获取次数后继续进行条件的判断,直到图像数据满足数据帧播放条件。通过上述方式,可增加图像数据的获取次数将多次下次合成为一次操作,从而提升解码的效率。
可选地,在上述图10所对应的实施例的基础上,本发明实施例提供的终端设备20的另一实施例中,
所述获取模块201,具体用于获取所述动态图像中的第四图像数据;
对所述第四图像数据进行解码处理,得到所述第四图像,其中,所述第四图像数据满足所述数据帧播放条件。
其次,本发明实施例中,在完成一帧图像的播放后,还可以再次获取动态图像中的第四图像数据,若第四图像数据满足数据帧播放条件,则对动态图像中的第四图像数据进行解码处理,得到解码后的第四图像,最后播放动态图像中的第四图像。通过上述方式,可将GIF动图切分为多个小数据块进行下载和解码,并且实现一边下载一边播放的效果,将原本等待时间从下载完整个文件的耗时,降低到仅需等待下载完一帧图像的耗时,从而极大的缩短了这一过程的耗时,提升了用户体验,并且能够连续展示动态图像中的各帧图像。
可选地,在上述图10所对应的实施例的基础上,请参阅图12,本发明实施例提供的终端设备20的另一实施例中,所述终端设备20还包括记录模块205;
所述记录模块205,用于所述解码模块202所述第一图像数据进行解码处理,得到第一图像之后,记录所述第一图像所对应的第一帧更新位置,其中,所述第一帧更新位置用于指示已解码成功的最后一个图像;
所述解码模块202,还用于若所述第二图像解码失败,则根据所述第一帧更新位置重新对所述第二图像帧进行解码处理。
其次,本发明实施例中,在终端设备对动态图像中的第一图像进行解码处理,得到解码后的第一图像之后,还可以记录第一图像所对应的第一帧更新位置,一旦第二图像解码失败,则根据第一帧更新位置重新对第二图像进行解码处理。通过上述方式,当存在解码失败的情况,可以利用第一帧更新位置回滚到上一次解码成功的位置,从而进一步提升解码效率。
可选地,在上述图12所对应的实施例的基础上,本发明实施例提供的终端设备20的另一实施例中
所述记录模块206,还用于所述解码模块202对所述第一图像数据进行解码处理,得到第一图像之后,记录所述动态图像的第二帧更新位置,其中,所述第二帧更新位置用于指示所述动态图像中已解码图像数据与未解码图像数据;
所述确定模块204,还用于若所述记录模块206记录的所述第二帧更新位置小于所述第一帧更新位置,则确定出现解码异常。
再次,本发明实施例中,还可以通过记录动态图像的第二帧更新位置,来判断是否出现解码异常的情况,如图第二帧更新位置小于第一帧更新位置,则终端设备确定出现解码异常。通过上述方式,能够使得终端设备准确地获知解码过程中是否出现异常情况,如果解码异常,则会及时通知,从而提升了解码的准确性,有利于提升方案的可操作性。
可选地,在上述图12所对应的实施例的基础上,本发明实施例提供的终端设备20的另一实施例中
所述解码模块202,具体用于通过路径读取所述第一图像数据,并对所述第一图像数据进行解码处理;
或,
通过字节数组读取所述第一图像数据,并对所述第一图像数据进行解码处理。
进一步地,本发明实施例中,介绍了两种读取第一图像数据的方式,既可以通过路径读取动态图像中的第一图像数据,又可以通过字节数组读取动态图像中的第一图像数据。通过上述方式,增加了方案的灵活性,可以根据实际情况选择一种方式读取第一图像数据。此外,采用路径读取无需传入额外变量,可以降低内存消耗,而采用字节数据读取可直接从底层获取,更为方便。
可选地,在上述图12所对应的实施例的基础上,请参阅图13,本发明实施例提供的终端设备20的另一实施例中,所述终端设备20还包括接收模块206、判断模块207以及执行模块208;
所述接收模块206,用于所述获取模块201获取动态图像中的第一图像数据之前,接收动态图像播放指令,其中,所述动态图像播放指令中携带待播放动态图像的标识;
所述判断模块207,还用于根据所述接收模块206接收的所述动态图像播放指令判断本地存储区中是否存在所述动态图像;
所述播放模块203,还用于若所述判断模块204判断得到所述本地存储区中存在所述动态图像,则播放所述动态图像;
所述执行模块208,用于若所述判断模块207判断得到所述本地存储区中不存在所述动态图像,则执行所述获取动态图像中的第一图像数据的步骤。
其次,本发明实施例中,在播放动态图像之前,还可以先根据动态图像播放指令去查收终端设备本地存储区中是否存在该动态图像,如果存在,就可以直接从中调用,无需再次下载。通过上述方式,一方面能够提升动态图像播放的效率,不会重复去下载相同的内容,另一方面,节省了下载资源,从而节省了网络资源,有利于提升方案的实用性。
本发明实施例还提供了另一种终端设备,如图14所示,为了便于说明,仅示出了与本发明实施例相关的部分,具体技术细节未揭示的,请参照本发明实施例方法部分。该终端设备可以为包括手机、平板电脑、个人数字助理(Personal Digital Assistant,PDA)、销售终端(Point of Sales,POS)、车载电脑等任意终端设备,以终端设备为手机为例:
图14示出的是与本发明实施例提供的终端相关的手机的部分结构的框图。参考图14,手机包括:射频(Radio Frequency,RF)电路310、存储器320、输入单元330、显示单元340、传感器350、音频电路360、无线保真(wireless fidelity,WiFi)模块370、处理器380、以及电源390等部件。本领域技术人员可以理解,图14中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图14对手机的各个构成部件进行具体的介绍:
RF电路310可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器380处理;另外,将设计上行的数据发送给基站。通常,RF电路310包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路310还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(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)等。
存储器320可用于存储软件程序以及模块,处理器380通过运行存储在存储器320的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器320可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器320可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元330可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元330可包括触控面板331以及其他输入设备332。触控面板331,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板331上或在触控面板331附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板331可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器380,并能接收处理器380发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板331。除了触控面板331,输入单元330还可以包括其他输入设备332。具体地,其他输入设备332可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元340可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元340可包括显示面板341,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板341。进一步的,触控面板331可覆盖显示面板341,当触控面板331检测到在其上或附近的触摸操作后,传送给处理器380以确定触摸事件的类型,随后处理器380根据触摸事件的类型在显示面板341上提供相应的视觉输出。虽然在图14中,触控面板331与显示面板341是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板331与显示面板341集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器350,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板341的亮度,接近传感器可在手机移动到耳边时,关闭显示面板341和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路360、扬声器361,传声器362可提供用户与手机之间的音频接口。音频电路360可将接收到的音频数据转换后的电信号,传输到扬声器361,由扬声器361转换为声音信号输出;另一方面,传声器362将收集的声音信号转换为电信号,由音频电路360接收后转换为音频数据,再将音频数据输出处理器380处理后,经RF电路310以发送给比如另一手机,或者将音频数据输出至存储器320以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块370可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图14示出了WiFi模块370,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器380是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器320内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器380可包括一个或多个处理单元;可选的,处理器380可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器380中。
手机还包括给各个部件供电的电源390(比如电池),可选的,电源可以通过电源管理***与处理器380逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端所包括的处理器380还具有以下功能:
获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
对所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放所述动态图像中的所述第一图像;
获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放所述动态图像中的所述下一个图像。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read-only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。

Claims (15)

1.一种动态图像播放的方法,其特征在于,包括:
获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
对所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放所述动态图像中的所述第一图像;
获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放所述动态图像中的所述下一个图像。
2.根据权利要求1所述的方法,其特征在于,所述获取动态图像中的第一图像数据之后,所述方法还包括:
若所述第一图像数据的数据量达到预设帧数据量阙值,则确定所述第一图像数据满足所述数据帧播放条件。
3.根据权利要求1所述的方法,其特征在于,所述对所述动态图像中的第一图像数据进行解码处理,包括:
若所述第一图像数据不满足所述数据帧播放条件,则获取所述动态图像中的第二图像数据;
对所述动态图像中的所述第一图像数据和所述第二图像数据进行解码处理,得到所述解码后的第一图像和第二图像,其中,所述第一图像数据和所述第二图像数据满足所述数据帧播放条件。
4.根据权利要求3所述的方法,其特征在于,所述方法还包括:
若所述第一图像数据和所述第二图像数据不满足所述数据帧播放条件,则确定第一获取次数,其中,所述第一获取次数为N,所述N为大于0的正整数;
根据所述第一获取次数获取N份第三图像数据,其中,所述第三图像数据用于构成第三图像;
若所述第一图像数据、所述第二图像数据以及所述N份第三图像数据不满足所述数据帧播放条件,则确定第二获取次数,直至图像数据满足所述数据帧播放条件,其中,所述第二获取次数为M,所述M为大于所述N的整数。
5.根据权利要求1所述的方法,其特征在于,所述获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,包括:
获取所述动态图像中的第四图像数据;
对所述第四图像数据进行解码处理,得到所述第四图像,其中,所述第四图像数据满足所述数据帧播放条件。
6.根据权利要求1所述的方法,其特征在于,所述对所述第一图像数据进行解码处理,得到第一图像之后,所述方法还包括:
记录所述第一图像所对应的第一帧更新位置,其中,所述第一帧更新位置用于指示已解码成功的最后一个图像;
若所述第二图像解码失败,则根据所述第一帧更新位置重新对所述第二图像帧进行解码处理。
7.根据权利要求6所述的方法,其特征在于,所述对所述第一图像数据进行解码处理,得到第一图像之后,所述方法还包括:
记录所述动态图像的第二帧更新位置,其中,所述第二帧更新位置用于指示所述动态图像中已解码图像数据与未解码图像数据;
若所述第二帧更新位置小于所述第一帧更新位置,则确定出现解码异常。
8.根据权利要求6或7所述的方法,其特征在于,所述对所述第一图像数据进行解码处理,包括:
通过路径读取所述第一图像数据,并对所述第一图像数据进行解码处理;
或,
通过字节数组读取所述第一图像数据,并对所述第一图像数据进行解码处理。
9.根据权利要求1所述的方法,其特征在于,所述获取动态图像中的第一图像数据之前,所述方法还包括:
接收动态图像播放指令,其中,所述动态图像播放指令中携带待播放动态图像的标识;
根据所述动态图像播放指令判断本地存储区中是否存在所述动态图像;
若所述本地存储区中存在所述动态图像,则播放所述动态图像;
若所述本地存储区中不存在所述动态图像,则执行所述获取动态图像中的第一图像数据的步骤。
10.一种终端设备,其特征在于,所述终端设备包括:存储器、收发器、处理器以及总线***;
其中,所述存储器用于存储程序;
所述处理器用于执行所述存储器中的程序,包括如下步骤:
获取动态图像中的第一图像数据,其中,所述动态图像包含多帧图像;
对所述第一图像数据进行解码处理,得到第一图像,其中,所述第一图像数据满足数据帧播放条件;
播放所述动态图像中的所述第一图像;
获取所述动态图像中的下一个图像数据,对所述下一个图像数据进行解码处理,得到解码后的下一个图像,其中,所述下一个图像数据满足所述数据帧播放条件;
播放所述动态图像中的所述下一个图像;
所述总线***用于连接所述存储器以及所述处理器,以使所述存储器以及所述处理器进行通信。
11.根据权利要求10所述的终端设备,其特征在于,
所述处理器,还用于若所述第一图像数据的数据量达到预设帧数据量阙值,则确定所述第一图像数据满足所述数据帧播放条件。
12.根据权利要求10所述的终端设备,其特征在于,
所述处理器,具体用于若所述第一图像数据不满足所述数据帧播放条件,则获取所述动态图像中的第二图像数据;
对所述动态图像中的所述第一图像数据和所述第二图像数据进行解码处理,得到所述解码后的第一图像和第二图像,其中,所述第一图像数据和所述第二图像数据满足所述数据帧播放条件。
13.根据权利要求12所述的终端设备,其特征在于,
所述处理器,还用于若所述第一图像数据和所述第二图像数据不满足所述数据帧播放条件,则确定第一获取次数,其中,所述第一获取次数为N,所述N为大于0的正整数;
根据所述第一获取次数获取N份第三图像数据,其中,所述第三图像数据用于构成第三图像;
若所述第一图像数据、所述第二图像数据以及所述N份第三图像数据不满足所述数据帧播放条件,则确定第二获取次数,直至图像数据满足所述数据帧播放条件,其中,所述第二获取次数为M,所述M为大于所述N的整数。
14.根据权利要求10所述的终端设备,其特征在于,
所述处理器,具体用于获取所述动态图像中的第四图像数据;
对所述第四图像数据进行解码处理,得到所述第四图像,其中,所述第四图像数据满足所述数据帧播放条件。
15.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1至9中任一项所述的方法。
CN201810169084.XA 2018-02-28 2018-02-28 一种动态图像播放的方法及终端设备 Active CN110223221B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810169084.XA CN110223221B (zh) 2018-02-28 2018-02-28 一种动态图像播放的方法及终端设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810169084.XA CN110223221B (zh) 2018-02-28 2018-02-28 一种动态图像播放的方法及终端设备

Publications (2)

Publication Number Publication Date
CN110223221A true CN110223221A (zh) 2019-09-10
CN110223221B CN110223221B (zh) 2023-10-03

Family

ID=67821809

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810169084.XA Active CN110223221B (zh) 2018-02-28 2018-02-28 一种动态图像播放的方法及终端设备

Country Status (1)

Country Link
CN (1) CN110223221B (zh)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647378A (zh) * 2019-09-30 2020-01-03 北京金山安全软件有限公司 动态图像的加载方法、装置和电子设备
CN112333521A (zh) * 2020-11-05 2021-02-05 杭州米络星科技(集团)有限公司 表情播放方法、装置、电子设备和计算机可读存储介质
CN113674246A (zh) * 2021-08-20 2021-11-19 百度在线网络技术(北京)有限公司 审核图片文件的方法、装置、电子设备和存储介质

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257996A (zh) * 2012-02-16 2013-08-21 三星电子株式会社 编码和解码图像文件的装置和方法
CN103390260A (zh) * 2012-05-09 2013-11-13 腾讯科技(深圳)有限公司 一种处理图像的方法及图像处理装置
CN103810738A (zh) * 2012-11-14 2014-05-21 腾讯科技(深圳)有限公司 Gif文件渲染方法及装置
CN104519404A (zh) * 2013-09-29 2015-04-15 北京新媒传信科技有限公司 图像互换格式文件的播放方法及装置
CN104915437A (zh) * 2015-06-24 2015-09-16 上海二三四五网络科技有限公司 一种对多帧图像文件进行分割处理的控制方法及控制装置
CN106383880A (zh) * 2016-09-13 2017-02-08 广州视睿电子科技有限公司 一种gif文件的播放方法及***
CN106651995A (zh) * 2016-10-10 2017-05-10 腾讯科技(深圳)有限公司 一种动画资源的配置方法、播放方法和装置
CN107102936A (zh) * 2017-05-27 2017-08-29 腾讯科技(深圳)有限公司 一种流畅度的评估方法和移动终端以及存储介质
CN107247676A (zh) * 2017-05-18 2017-10-13 深圳市小牛在线互联网信息咨询有限公司 动态图播放方法、装置、存储介质和计算机设备
CN107450997A (zh) * 2017-07-27 2017-12-08 东软集团股份有限公司 图片动态播放的方法及装置

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103257996A (zh) * 2012-02-16 2013-08-21 三星电子株式会社 编码和解码图像文件的装置和方法
EP2629297A2 (en) * 2012-02-16 2013-08-21 Samsung Electronics Co., Ltd Apparatus and method of encoding and decoding image files
CN103390260A (zh) * 2012-05-09 2013-11-13 腾讯科技(深圳)有限公司 一种处理图像的方法及图像处理装置
CN103810738A (zh) * 2012-11-14 2014-05-21 腾讯科技(深圳)有限公司 Gif文件渲染方法及装置
CN104519404A (zh) * 2013-09-29 2015-04-15 北京新媒传信科技有限公司 图像互换格式文件的播放方法及装置
CN104915437A (zh) * 2015-06-24 2015-09-16 上海二三四五网络科技有限公司 一种对多帧图像文件进行分割处理的控制方法及控制装置
CN106383880A (zh) * 2016-09-13 2017-02-08 广州视睿电子科技有限公司 一种gif文件的播放方法及***
CN106651995A (zh) * 2016-10-10 2017-05-10 腾讯科技(深圳)有限公司 一种动画资源的配置方法、播放方法和装置
CN107247676A (zh) * 2017-05-18 2017-10-13 深圳市小牛在线互联网信息咨询有限公司 动态图播放方法、装置、存储介质和计算机设备
CN107102936A (zh) * 2017-05-27 2017-08-29 腾讯科技(深圳)有限公司 一种流畅度的评估方法和移动终端以及存储介质
CN107450997A (zh) * 2017-07-27 2017-12-08 东软集团股份有限公司 图片动态播放的方法及装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RINALDI MUNIR 等: "Chaos-based Modified "EzStego" Algorithm for Improving Security of Message Hiding in GIF Image", 2015 INTERNATIONAL CONFERENCE ON COMPUTER, CONTROL, INFORMATICS AND ITS APPLICATIONS (IC3INA) *
谭庆 等: "CAI 课件制作中使用外部函数播放动画的方法", 洛阳师范学院学报 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110647378A (zh) * 2019-09-30 2020-01-03 北京金山安全软件有限公司 动态图像的加载方法、装置和电子设备
CN112333521A (zh) * 2020-11-05 2021-02-05 杭州米络星科技(集团)有限公司 表情播放方法、装置、电子设备和计算机可读存储介质
CN113674246A (zh) * 2021-08-20 2021-11-19 百度在线网络技术(北京)有限公司 审核图片文件的方法、装置、电子设备和存储介质
CN113674246B (zh) * 2021-08-20 2023-09-01 百度在线网络技术(北京)有限公司 审核图片文件的方法、装置、电子设备和存储介质

Also Published As

Publication number Publication date
CN110223221B (zh) 2023-10-03

Similar Documents

Publication Publication Date Title
CN106504185B (zh) 一种渲染优化方法和装置
EP3005223B1 (en) Two-dimensional code recognition method and apparatus
US10817255B2 (en) Scene sound effect control method, and electronic device
CN107770618B (zh) 一种图像处理方法、装置及存储介质
CN107368518B (zh) 一种通知消息的管理方法及终端、计算机可读存储介质
CN108156508B (zh) 弹幕信息处理的方法、装置、移动终端、服务器及***
CN109919836A (zh) 视频抠像处理方法、视频抠像处理客户端及可读存储介质
CN105320687A (zh) 网页显示方法及装置
CN106598996A (zh) 多媒体海报生成方法及装置
CN110020293B (zh) 多媒体数据展示方法、装置及存储介质
CN108205398A (zh) 网页动画适配屏幕的方法和装置
CN105788612A (zh) 一种检测音质的方法和装置
CN111629247B (zh) 一种信息显示方法、装置及电子设备
US20190275428A1 (en) Control method of scene sound effect and related products
CN110223221A (zh) 一种动态图像播放的方法及终端设备
CN106033467A (zh) 一种图片文件的分享方法,及装置
CN110458796A (zh) 一种图像标注方法、装置和存储介质
CN108491219A (zh) 一种应用的更新方法及移动终端
CN111586329A (zh) 一种信息显示方法、装置及电子设备
CN109189576B (zh) 基于Redis的请求处理方法、服务器及计算机可读存储介质
WO2017005080A1 (zh) 网页显示方法、终端设备及存储介质
CN105704542A (zh) 互动信息显示方法及装置
CN107734049B (zh) 网络资源的下载方法、装置和移动终端
CN106446042A (zh) 信息显示方法及装置
CN106383870A (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
GR01 Patent grant
GR01 Patent grant