CN100514992C - 一种移动终端帧动画的处理方法 - Google Patents
一种移动终端帧动画的处理方法 Download PDFInfo
- Publication number
- CN100514992C CN100514992C CNB2007100650226A CN200710065022A CN100514992C CN 100514992 C CN100514992 C CN 100514992C CN B2007100650226 A CNB2007100650226 A CN B2007100650226A CN 200710065022 A CN200710065022 A CN 200710065022A CN 100514992 C CN100514992 C CN 100514992C
- Authority
- CN
- China
- Prior art keywords
- data
- frame
- image
- carboon
- mobile
- 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
Landscapes
- Processing Or Creating Images (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本发明提供了一种移动终端帧动画的处理方法,包括:步骤一,依次将移动终端帧动画中相邻的原始图像帧中的图像像素数据进行比较,将后一个图像帧与前一个图像帧中相同的图像像素数据部分设置为透明色,将透明化处理后的图像帧数据编码进新的移动终端帧动画文件并上传至服务器;步骤二,移动终端下载新的移动终端帧动画文件,解码出图像帧数据,通过依次将后一个图像帧的图像叠加至相邻的前一个图像帧的图像上,在有透明色的部分显示前一图像帧的图像,在没有透明色的部分显示后一图像帧的图像,从而把帧动画图像渲染在移动终端的屏幕上,本发明以帧动画代替矢量动画技术,以较高压缩率的文件格式保存动画数据,提高播放效率,并支持在线播放功能。
Description
技术领域
本发明涉及移动终端增值业务领域,特别是有关于一种移动终端帧动画的处理方法。
背景技术
在现有的无线通信网络平台上,缺少真正意义上的动画播放,大多数的移动终端动画其实只是几幅图片简单的拼接,类似于幻灯片播放。
例如,在现有的BREW(Binary Runtime Environment for Wireless,无线二进制运行时环境)平台上实现动画播放,最大的技术难点在于移动终端运算能力的限制,由此而产生两个技术问题需要解决:
1.播放速率。传统的动画都是矢量动画,需要CPU做大量的运算处理,适合在PC机上流畅播放。而大多数BREW移动终端是无法完成这样的运算量。
2.播放质量。为了提高播放速率可以对矢量动画作一个简化处理,减小运算量,但这样会牺牲播放质量,无法得到更好的用户体验。
现有的移动终端动画播放技术做得较好的有:WIVG(Wireless InteractiveVector Graphics,无线交互矢量图形)技术和FlashShow技术。
这两种技术都是采用矢量动画方案,理论上可以适配各种不同的移动终端屏幕,降低动画内容制作的成本。
WIVG技术是从Flash衍生出的矢量动画技术。它的播放速度与播放质量都不错,但对终端的要求较高,现在只支持Symbian和WindowMobile两种移动终端操作***,这意味着它只能用于高端的智能移动终端,无法在大多数CDMA终端上使用。
FlashShow技术基于BREW平台,是一种简化的矢量动画技术。正如上面所述,它通过降低画面质量来适应移动终端。
此外,在PC上存在类似于帧动画的视频编解码技术(如MPEG,运动图像专家组,Moving Picture Experts Group)。它能实现较大的压缩率和图像清晰度。但是大量而复杂的运算过程,使得它并不适合在大多数移动终端上实现。
发明内容
本发明的目的在于提出一种移动终端帧动画的处理方法。以解决在移动终端无线通信网络平台上实现在线播放帧动画的问题。
为实现上述目的,本发明提出了一种移动终端帧动画的处理方法,其中,包括以下步骤:
步骤一,依次将移动终端帧动画中相邻的原始图像帧中的图像像素数据进行比较,将后一个图像帧与前一个图像帧中相同的图像像素数据部分设置为透明色,将透明化处理后的图像帧数据编码进新的移动终端帧动画文件并上传至所述服务器;
步骤二,所述移动终端下载所述新的移动终端帧动画文件,解码出所述图像帧数据,通过依次将后一个图像帧的图像叠加至相邻的前一个图像帧的图像上,在有透明色的部分显示前一图像帧的图像,在没有透明色的部分显示后一图像帧的图像,从而把所述帧动画图像渲染在所述移动终端的屏幕上。
上述的移动终端帧动画的处理方法,其中,所述步骤一进一步包括:
将每个图像帧中的图像像素数据以8×8像素为一个图像块,分成多个图像块,依次对相邻的图像帧中显示相同位置的图像块进行比较,并对所述图像块进行透明化处理的步骤。
上述的移动终端帧动画的处理方法,其中,所述步骤一进一步包括:
在完成所述图像像素数据的透明化处理后,对所述图像像素数据进一步压缩的步骤;和
所述步骤二进一步包括:
所述移动终端从所述新的移动终端帧动画文件分解出所述图像帧数据后,对所述图像帧中的图像像素数据先进行解压缩的步骤。
上述的移动终端帧动画的处理方法,其中,所述步骤一进一步包括:
提取移动终端帧动画中每个原始图像帧中相同的公共图像头数据,只在图像帧中保留所述图像像素数据,并将所述公共图像头数据作为独立的数据块编码进所述新的移动终端帧动画文件中的步骤;和
所述步骤二进一步包括:
所述移动终端从所述新的移动终端帧动画文件中解码出所述图像帧数据和独立的公共图像头数据之后,将所述公共图像头数据添加进每个图像帧中的步骤。
上述的移动终端帧动画的处理方法,其中,所述步骤一进一步包括:
步骤51,判断每个图像帧中的图像像素数据是否有关联音效,若存在关联音效,则在存在关联音效的图像帧的数据头中设置关联音效块数据的索引值;
步骤52,将所述音效块数据编码进所述新的移动终端帧动画文件,然后将所述图像帧中的图像像素数据编码进所述新的移动终端帧动画文件中。
上述的移动终端帧动画的处理方法,其中,所述步骤51之前进一步包括:
将所述移动终端动画中的源音效数据进行分段,生成多个音效段数据,将所述音效段数据压缩成所述音效块数据的步骤。
上述的移动终端帧动画的处理方法,其中,所述步骤二进一步包括:
循环检查每个图像帧是否存在所述关联音效块数据的索引值,判断所述图像帧是否存在关联音效,若存在关联音效,读取所述索引值,从所述新的移动终端帧动画文件中获取并解压缩所述音效块数据,还原出所述音效段数据,并在所述移动终端上进行播放的步骤。
上述的移动终端帧动画的处理方法,其中,所述步骤二具体包括:
步骤81,解码所述新的移动终端帧动画文件,获取所述公共图像头数据;
步骤82,循环检查每个图像帧是否存在所述关联音效块数据的索引值,判断所述图像帧是否存在关联音效,若存在关联音效,读取所述索引值,从所述新的移动终端帧动画文件中获取并解压缩所述音效块数据,然后进入步骤83,若不存在关联音效,则直接进入步骤83;
步骤83,解码所述新的移动终端帧动画文件,获取每个图像帧的图像像素数据;
步骤84,判断所述每帧的图像像素数据和关联的音效块数据是否经过压缩,若经过压缩,则进行解压缩,然后进入步骤85,若没有经过压缩,则直接进入步骤85;
步骤85,在每个图像帧中添加所述公共图像头数据;
步骤86,通过依次将后一个图像帧的图像叠加至相邻的前一个图像帧的图像上,将所述移动终端帧动画图像渲染在所述移动终端的屏幕上,并播放所述关联音效。
上述的移动终端帧动画的处理方法,其中,所述移动终端帧动画文件中图像数据的编码格式为流式网络图形格式或者位图格式;
所述移动终端帧动画文件中音效数据的声音编码格式为MIDI、QCP或者MMF。
上述的移动终端帧动画的处理方法,其中,所述步骤二进一步包括:
所述移动终端解码所述新的移动终端帧动画文件,判断获取的数据是音效数据还是图像数据,然后将所述音效数据和图像数据分别通过独立的播放通道和缓存空间进行处理的步骤。
本发明以帧动画代替矢量动画技术,以较高压缩率的文件格式保存动画数据,极大地减少了文件尺寸,提高了播放效率,并支持在线播放功能。
附图说明
图1是本发明图像编码的工作流程示意图;
图2是本发明图像帧间压缩的工作流程示意图;
图3是本发明图像帧内压缩的工作流程示意图;
图4是本发明音效压缩的工作流程示意图;
图5是本发明音效与图像关联的工作流程示意图;
图6是本发明UFO文件编码的工作流程示意图;
图7是本发明图像解码的工作流程示意图;
图8是本发明音效还原的工作流程示意图;
图9是本发明图像帧还原的工作流程示意图;
图10是本发明在线播放的工作流程示意图。
具体实施方式
下面结合附图对本发明实施例进行详细说明。
本发明提供了一个移动终端帧动画的处理方法。在移动终端上采用帧动画技术代替矢量动画技术播放动画,本发明具体可分为编码和解码两大部分。
图1是本发明图像编码的工作流程示意图。如图所示,编码的过程具体包括以下步骤:
步骤S101,对图像进行帧间压缩;
步骤S102,对图像进行帧内压缩;
步骤S103,判断图像是否有关联音效,若有关联音效,则进入步骤S104,若没有,则进入步骤S106;
步骤S104,在图像帧的图像头中写入关联音效的索引,再进入步骤S106;
步骤S105,对音效数据进行压缩;
步骤S106,将压缩后的音效数据与图像数据写入UFO(UniFrame Object,UNI帧对象)动画文件。
下面详述图1中的每一具体步骤:
图2是本发明图像帧间压缩的工作流程示意图。本发明支持PNG(PortableNetwork Graphic Format,流式网络图形格式)、BMP(Bitmap,位图)两种图像编码格式。我们需要利用PNG/BMP所具有的两个特性:
特性一:PNG/BMP均可以支持局部设置透明;
特性二:同样面积的两张图像颜色简单的比颜色复杂的在文件体积上会减小很多。
考虑到动画是连续变化的,它的相邻帧图像的相似度非常高,本发明以局部透明化处理来实现相邻两帧图像的重复数据的消除。例如,有连续图像帧A-B-C-D,要比较第二帧B图像与第一帧A图像的差异,因为两帧图像的尺寸是一样的,可以从图像的左上角开始,逐点比较两张图在同一个位置上的像素点的颜色,如果颜色相同则说明这个点是重复的,可以消除。于是我们用自定义的透明色来替换当前的颜色,这样这个点的颜色就被替换成透明色,也就是说该点被“透明化”了。遍历完整个图像就能得到一个新的B帧图像(其中相对于A帧的重复像素点的颜色已全部替换为透明色),即B′帧图像。
事实上,如果我们逐点比较的话,不但处理速度较慢,而且过于零散的透明点并不能真正提高图像的压缩率,根据PNG/BMP的特性二,要减小图像的文件大小应该有大面积的单色(透明色)才能有好的效果。所以,我们是以8×8个像素点作为一个处理单元(图像块)来进行比较的,即在一个8×8的方块中,只要有一个点不是重复点,则将当前整个图像块(8×8个像素点)均认为是不重复的。只有也必须要8×8个像素点全部相同,才将这个图像块的像素点全部替换成透明色。
在移动终端可以根据已获取的A图像与B′经过合并还原出B,即先渲染A图像,然后简单地将B′叠加在A之上,因为B′与A相同部分的像素点被透明色替换了,移动终端会忽略这些具有透明色的像素点,于是就显示出底下的A图像的在同一位置上的像素点,而B’上与A不相同的部分的像素点,由于没有被透明色替换,所以仍显示B’图像在该位置的像素点。最终的整体效果就是在屏幕上展示出了原始的B图像。
本发明利用透明色替换实现图像“镂空”,与对比文件CN1035797C中的“镂空”技术相比较,对比文件中是通过仅导出不相同(非空白)部分图像像素数据,相同部分图像像素数据完全丢弃的方法实现的,B′中只有不相同部分图像的像素数据(数据残缺,必须经过运算才能恢复)。本发明将相同部分图像像素点用透明色替换后仍保留在B′图像中(数据完整,简单叠加即可恢复)。简单地说,就是本发明与对比文献的差别在于,对比文件并不是对像素点的颜色进行操作而是直接操作图像文件的二进制数据,镂空时需要删除数据,还原时需要计算来恢复被删除的数据。而本发明恰恰相反,是对图像的像素点的颜色进行操作而不是操作图像文件的二进制数据,镂空时需要替换颜色,还原时不需要做任何处理。
同样的,公知技术中MPEG技术也采用了帧间压缩,但是它是基于运动补偿预测技术实现的,需要进行大量的运算处理。并且,为了得到最大的压缩率,MPEG的帧间压缩也是将重复数据从帧图像中删除(即B′是一个残缺的数据块),本发明利用透明色的特性进行相同图像块中全部像素点的颜色替换来取代MPEG的前向/双向预测技术,并且保证B′中数据的完整(只是部分像素点的颜色被另一种颜色代替),这样最大限度地简化了在还原时的运算过程。在本发明中,因为B′也是一个有效的图像帧(只是图像中有部分像素被替换成另一种颜色),可以直接显示,只要将它叠加显示在A图像之上就能得到原始的B图像(该还原过程并不是通过运算还原出真正B图像,只是在移动终端屏幕上展现出B图像即可,事实上本发明并没有得到一个真正的B图像,而只是屏幕上的表现出B图像而已)。比较MPEG和对比文件CN1035797C,它们都是需要通过运算在内存中还原出真正的B图像,然后将B图像渲染到屏幕上。
因此,本发明与MPEG和对比文件比较,采用的方法相对简单,具有还原运算量小、图像失真小的特点,更适合在移动终端上实现。
下表描述了是否经透明化处理对最终动画文件尺寸的影响:
如图2所示,图像帧间压缩具体包括以下步骤:
步骤S201,打开连续两帧图像;
步骤S202,将每帧图像分割成8x8图像块;
步骤S203,循环比较相邻的两个图像帧的对应的图像块的像素,判断两个图像块中的图像像素是否相同,若两个图像块的所有像素均相同,则认为此两个图像块相同,进入步骤S204,若都不相同,则进入步骤S205;
步骤S204,将后一帧中与前一帧相同的图象块进行透明化处理(即用特定的透明色替换),再进入步骤S205;
步骤S205,将后一帧的完整图像像素数据写入相应的UFO文件数据块中。
图3是本发明图像帧内压缩的工作流程示意图。本发明选择支持PNG、BMP两种图像编码格式。由于动画是由多个静态图像帧组成,而每张静态帧图像均包括图像头(记录此图像的类型、色深、调色板、宽度、高度等数据)和具体的图像像素数据,对于一段动画而言,它所包含的每张静态图片的图像头数据完全一样,因此,若在每个帧内不保存这些文件头的数据,可以节省较大的空间(以100帧的BMP动画为例,它的图像头占54个字节,这样就可以减少5400个字节),每个帧内的数据只保存具体的图像像素数据(即帧图像每个像素点的具体信息)。如上所述,本发明将每个帧图像的文件头的数据抽提出来,编码成8+X格式的数据,写入最终的动画文件(具体编码格式及实现步骤在“图6-UFO文件编码”中详细描述)。同时,通过标准的GZIP(GeneralPublic License ZIP)压缩方法将每一帧图像的图像像素数据进行压缩处理,也减小了帧内的数据量大小。通过以上两种方式,可以得到更小的帧数据。对比MPEG技术,MPEG采用的是复杂的离散余弦变换(Discrete Cosine Transform,DCT)实现帧内压缩(即类似JPEG的压缩技术),然而本发明拼弃了复杂的DCT技术,简单地采用削减图像公共数据的方法实现帧内的压缩,并可以更快地进行解码渲染,适合在移动终端上实现。
如图3所示,图像帧内压缩具体包括以下步骤:
步骤S301,从每个静态图像帧中抽提出该图像的图像头数据;
步骤S302,判断该静态图像帧是否是动画文件的第一帧,若是,则进入步骤S303,若不是,则进入步骤S304;
步骤S303,将该静态图像帧中的图像头数据(包括当前帧图像的基本信息,如长、宽、色深等信息,在所有帧图像中,图像头数据的内容都是一样的,因此只需要保存第一帧的图像头数据)编码成公共图像头数据(8+X格式)写入UFO动画文件中,再进入步骤S304;
步骤S304,将每个静态图像帧中的图像像素数据提取出来;
步骤S305,对提取的图像像素数据进行GZIP压缩;
步骤S306,将压缩后的图像像素数据写入UFO动画文件中。
图4是本发明音效压缩的工作流程示意图。本发明支持MIDI(MusicalInstrument Digital Interface,一种标准的声音格式)、QCP(Qualcomm’sPurevoice,高通公司定义的声音格式)、MMF(APP Mind Messagement File,雅马哈公司定义的声音格式)三种音效编码格式。
其中,音效压缩步骤包括:首先,将动画源音效进行分段,得到多个音效段文件(仍保持原始的音效编码格式),即完整动画所包含的音效序列。然后,分别读取每个音效段文件,进行标准GZIP压缩处理,得到压缩后的音效段数据,编码进UFO动画文件(如果设置了关联音效,则在编码时需要先进行音效与图像的关联操作)。
相比MEPG而言,MPEG中的音效编码是采用自有的MP3(Moving PictureExperts Group Audio Layer III,一种音频压缩技术)/AAC(先进声音编码技术)方案,并不能被大多数移动终端所支持。并且,MPEG的音效与图像处理类似,也是用分帧实现的(即一系列连续的音效帧),而本发明采用音效分段。“音效段”比“音效帧”粒度更粗,在解码播放时的处理也更简单,比较适合在移动终端上实现。并且,考虑到大多数移动终端内置了对GZIP压缩数据的解码技术,因此,使用GZIP压缩技术能更充分地利用移动终端自身的运算能力。
本发明也支持背景音乐的播放,与音效相比较,背景音乐是一个完整的音乐数据,不需要进行分段处理。所以,本发明将背景音乐看作一个特殊类型的音效段进行处理,在编码过程中并没有专门的处理步骤。
如图4所示,音效压缩具体包括以下步骤:
步骤S401,将动画音效原始数据分段切割为多个音效段(保持原始编码);
步骤S402,分别打开每个音效段文件;
步骤S403,读取每个音效段文件中的数据,对其进行GZIP压缩处理,压缩成UFO文件中的音效块数据;
步骤S404,判断该音效段文件是否指定了音效关联,若是,则进入步骤S405,若不是,则进入步骤S406;
步骤S405,设置该音效块数据(源于当前音效段文件)和对应的图像数据之间的关联(在图像帧数据头中记录关联的音效块索引),再进入步骤S406;
步骤S406,将经上面步骤得到的音效块数据写入UFO动画文件。
图5是本发明音效与图像关联的工作流程示意图。本发明在图像帧序列中设定了一些特殊的帧(关键帧),在关键帧的数据头中保存一个关联的音效块的索引,以达到将音效与相应图像关联的效果。这一步骤主要就是在图像关键帧数据头保存一个与之相关联的音效块数据的索引值。并且保证,此音效块数据在UFO动画文件的位置位于此关键帧中图像数据之前,因为在渲染该关键帧图像之时,应该保证它所关联的音效已经事先被解码并能播放。例如:在图像帧头里保存一个字节01表示此图像帧关联音效块01,在显示该图像帧时播放音效段01;如果此字节为00表示此帧图像没有关联音效。MPEG因为音效也是分帧的,所以不需要进行这样的处理。
如图5所示,音效与图像关联具体包括以下步骤:
步骤S501,读取音效块数据的索引值;
步骤S502,读取单帧图像数据索引值;
步骤S503,对音效块数据进行UFO编码;
步骤S504,进行UFO单帧图像数据编码。
图6是本发明UFO文件编码的工作流程示意图。经过帧内压缩处理后得到的每个图像帧的数据,以及经过音效压缩处理得到的音效帧的数据,依次编码进一个我们最终的动画文件中,此文件命名为UFO文件。每个UFO文件包括多个数据,每个数据又是由8个字节的块头和X个字节的块体组成。其中,每个数据8字节块头的格式基本类似,如下表所示:
其中“背景音乐数据”和“音效数据”中的头两个字节′Q′、′C′表示此段音效以QCP格式保存,如果为′MF′表示以MMF格式保存,如果为′MD′表示以MIDI格式保存。
音乐标识是将“背景音乐数据”与“音效数据”区分开的标识,在解码时根据此标识来进行不同的处理。
音效索引是对音效编号的有效引用。例如,音效编号:1、2、3,表示有三段音效。而音效索引2表示此帧图像引用第二段音效(即音效2)。音效编号是唯一的,而音效索引是可以重复的,例如:不同的两帧图像可以引用同一段音效,那么它们的音效索引就是一样的。
而由多个块组成的UFO动画文件格式如下:
UFO文件头 | 公共图像头 | 背景音乐数据 | 音效数据(N) | 图像数据(N) |
8+X | 8+X | 8+X | N<sup>*</sup>(8+X) | N<sup>*</sup>(8+X) |
首先,写入UFO动画文件的公共文件头(包含了UFO文件的信息,如版本号等),接着写入公共图像头数据(这是整个动画文件中图像帧数据的公共头,将来要根据这个公共头还原出完整的图像数据)。然后,遍历每个图像帧的压缩后数据,判断是否此图像是关键帧,如果是关键帧,先将关联的音效段数据(也是经压缩后的)写入动画文件,接着再写入此图像帧数据。如果不是关键帧,则直接写入此图像帧数据。如图6所示,编码UFO文件具体包括以下步骤:
步骤S601,写入UFO文件头信息;
步骤S602,将UFO公共图像信息(包括公共图像头信息)写入UFO文件中;
步骤S603,开始循环对每帧图像数据进行UFO编码;
步骤S604,判断每帧中的图像数据是否有关联音效,若有,则进入步骤S605,若没有,则进入步骤S606;
步骤S605,若有关联音效,则将关联的音效块数据写入UFO文件,再进入步骤S606;
步骤S606,将单帧图像数据写入UFO文件中。
图7是本发明图像数据解码的工作流程示意图。解码是编码的逆过程,是将特定的动画文件格式(UFO)展示在移动终端的过程。因为在编码UFO文件时充分考虑了解码的简单性要求,所以整个解码方案相对编码方案简单许多,具体包括:音效还原步骤和图像帧还原步骤。如图7所示:
步骤S701,解码UFO文件,读取UFO原始数据流;
步骤S702,判断该UFO原始数据流是否有关联音效,即图像帧序列中是否有保存的关联的音效块的索引,若有,则进入步骤S703,若没有,则进入步骤S704;
步骤S703,若有关联,则先对关联的音效块数据进行还原,再进入步骤S704;
步骤S704,对UFO文件中的图像数据进行还原。
其中,音效还原步骤是音效压缩步骤的逆过程。图8是本发明音效还原的工作流程示意图。如图所示,包括以下步骤:
步骤S801,读取当前UFO文件中的数据块,如果是音效块数据,则解码获取该音效块数据;
步骤S802,判断该音效块数据是否经过GZIP压缩的,如果经过压缩,则进入步骤S803,如果未经压缩,则进入步骤S804;
步骤S803,对经过压缩的音效块数据使用GZIP的解压缩操作,还原出音效原始数据;
步骤S804,将音效的原始数据通过移动终端平台提供的播放接口进行播放。
图像帧还原是图像帧压缩的逆过程。包括:帧内还原步骤和帧间还原步骤,其中,帧内还原步骤具体包括:
首先,解码UFO文件(流),根据编码时定义的数据格式(8+X),先读8个字节的数据(数据的头部分),然后根据这8个字节中包含的信息(数据的类型、数据的长度等),再读取相应长度的数据(数据的体部分),构成一个完整的数据,将读取的数据保存在一个缓冲区(该缓冲区保存着多个数据结构的链表),该缓冲区也包含UFO的公共信息以及公共图像头部分。
然后,读取该缓冲区的内容,进行判断,如果是图像块,判断是否经过GZIP压缩,如果是GZIP压缩后数据,则使用GZIP的解压缩操作,还原出GZIP压缩前图像像素数据,如果未压缩,则直接得到图像像素数据。将得到的图像像素数据组合公共的图像头信息,通过移动终端平台提供的显示接口渲染在移动终端屏幕上。
帧间还原步骤包括:在移动终端上渲染图像时,简单地通过图像叠加,还原出透明化处理前的图像显示效果。即图像A与B是连续两帧,在编码时将B透明化成B′(只保留有B中与A不同的图像像素数据,相同部分已用透明色涂抹掉),在渲染时,先显示A,然后再叠加B′,这样最终的显示效果与B完全一样。
图9是本发明图像帧还原的工作流程示意图。如图所示,包括以下步骤:
步骤S901,遍历UFO文件中的数据。首先分解出UFO文件中公共信息部分以及公共图像头部分;
步骤S902,循环检查每个图像帧,读取图像块数据头部分;
步骤S903,判断每个图像帧中是否有关联音效的索引值,从而判断该图像帧是否存在关联音效,若存在,则进入步骤S904,若不存在,则进入步骤S905;
步骤S904,解码UFO动画文件,获取关联的音效块数据,解压缩该音效块数据,然后进入步骤S905;
步骤S905,解码UFO动画文件,获取每个图像帧的图像数据;
步骤S906,判断每帧的图像数据是否经过GZIP压缩,如果是GZIP压缩后数据,则进入步骤S907,若未经过压缩,则进入步骤S908;
步骤S907,进行GZIP解压缩,还原出原始图像帧的图像数据,然后进入步骤S908;
步骤S908,在每个图像帧中添加公共图像头信息;
步骤S909,通过移动终端提供的显示接口,将移动终端动画图像渲染在移动终端屏幕上,在渲染时通过图像叠加,将后一图像帧的图像叠加至相邻的前一图像帧的图像上,还原出图像帧间透明化处理前的图像显示效果,音效数据也同步播放。
其中,图像还原与音效还原是同步的,以图像还原为主流程,在执行过程中,会根据情况进入音效还原。所以,在音效还原中解压缩音效是在图像还原中触发的。
在线流式播放是针对优质的CDMA 1X网络,提供UFO文件的边下载边播放功能。其具体实现在普通解码过程中增加了一个应用层的双通道同步处理机制。如图10所示,在移动终端,建立两个独立的播放通道,分别处理音效与图像的播放,并分别为之设置缓存空间。首先,从网络中得到的UFO数据包,经分析其块头即可区分出是音效数据还是图像数据,经过初次解码分解出图像数据和音效数据,然后再对压缩的图像数据和音效数据进行二次解码,还原出原始数据,分别进入对应的通道,渲染在移动终端屏幕上。
当然,本发明还可有其它多种实施例,在不背离本发明精神及其实质的情况下,熟悉本领域的普通技术人员当可根据本发明做出各种相应的改变和变形,但这些相应的改变和变形都应属于本发明所附的权利要求的保护范围。
Claims (9)
1.一种移动终端帧动画的处理方法,其特征在于,包括以下步骤:
步骤一,依次将移动终端帧动画中相邻的原始图像帧中同一位置的图像像素数据进行比较,将后一个图像帧与前一个图像帧中同一位置且相同的图像像素数据部分设置为透明色,将透明化处理后的图像帧数据编码进新的移动终端帧动画文件并上传至服务器;原始的移动终端帧动画中的图像数据的编码格式为PNG格式或BMP格式;
步骤二,移动终端下载所述新的移动终端帧动画文件,解码出所述图像帧数据,通过依次将后一个图像帧的图像叠加至相邻的前一个图像帧的图像上,在有透明色的部分显示前一图像帧的图像,在没有透明色的部分显示后一图像帧的图像,从而把移动终端帧动画图像渲染在所述移动终端的屏幕上。
2.根据权利要求1所述的移动终端帧动画的处理方法,其特征在于,所述步骤一中,依次将移动终端帧动画中相邻的原始图像帧中同一位置的图像像素数据进行比较包括:
将每个图像帧中的图像像素数据以8×8像素为一个图像块,分成多个图像块,依次对相邻的图像帧中相同位置的图像块进行比较;
所述步骤一中,将后一个图像帧与前一个图像帧中同一位置且相同的图像像素数据部分设置为透明色包括:对所述图像块进行透明化处理。
3.根据权利要求1或2所述的移动终端帧动画的处理方法,其特征在于,所述步骤一进一步包括:
在完成图像像素数据的透明化处理后,对透明化处理后的图像像素数据进一步利用GZIP压缩方法压缩的步骤;和
所述步骤二中,解码出所述图像帧数据包括:
所述移动终端从所述新的移动终端帧动画文件分解出所述图像帧数据后,对所述图像帧中的图像像素数据先进行解压缩的步骤。
4.根据权利要求3所述的移动终端帧动画的处理方法,其特征在于,所述步骤一进一步包括:
提取移动终端帧动画中每个原始图像帧中相同的公共图像头数据,只在图像帧中保留图像像素数据,并将所述公共图像头数据作为独立的数据块编码进所述新的移动终端帧动画文件中的步骤;和
所述步骤二中,移动终端下载所述新的移动终端帧动画文件,解码出所述图像帧数据进一步包括:
所述移动终端从所述新的移动终端帧动画文件中解码出图像帧数据和独立的公共图像头数据之后,将所述公共图像头数据添加进每个图像帧中。
5.根据权利要求4所述的移动终端帧动画的处理方法,其特征在于,所述步骤一进一步包括:
步骤51,判断每个图像帧中的图像像素数据是否有关联音效,若存在关联音效,则在存在关联音效的图像帧的数据头中设置关联音效块数据的索引值;原始的移动终端帧动画文件中音效数据的声音编码格式为MIDI、QCP或者MMF;
步骤52,将所述关联音效块数据编码进所述新的移动终端帧动画文件,然后将透明化处理后的图像帧数据中的图像像素数据编码进所述新的移动终端帧动画文件中,并将数据头编码进所述新的移动终端帧动画文件中。
6.根据权利要求5所述的移动终端帧动画的处理方法,其特征在于,所述步骤51之前进一步包括:
将所述移动终端帧动画中的源音效数据进行分段,生成多个音效段数据,将所述音效段数据利用GZIP压缩方法压缩成所述关联音效块数据的步骤。
7.根据权利要求6所述的移动终端帧动画的处理方法,其特征在于,所述步骤二进一步包括:
循环检查每个图像帧是否存在所述关联音效块数据的索引值,判断所述图像帧是否存在关联音效,若存在关联音效,读取所述索引值,从所述新的移动终端帧动画文件中获取并解压缩所述关联音效块数据,还原出所述音效段数据,并在所述移动终端上进行播放的步骤。
8.根据权利要求7所述的移动终端帧动画的处理方法,其特征在于,所述步骤二具体包括:
步骤81,解码所述新的移动终端帧动画文件,获取所述公共图像头数据;
步骤82,循环检查每个图像帧是否存在所述关联音效块数据的索引值,判断所述图像帧是否存在关联音效,若存在关联音效,读取所述索引值,从所述新的移动终端帧动画文件中获取并解压缩所述关联音效块数据,还原出所述音效段数据,然后进入步骤83,若不存在关联音效,则直接进入步骤83;
步骤83,解码所述新的移动终端帧动画文件,获取每个图像帧的图像像素数据;
步骤84,判断所述每个图像帧的图像像素数据是否经过压缩,若经过压缩,则进行解压缩,然后进入步骤85,若没有经过压缩,则直接进入步骤85;
步骤85,在每个图像帧中添加所述公共图像头数据;
步骤86,通过依次将后一个图像帧的图像叠加至相邻的前一个图像帧的图像上,将所述移动终端帧动画图像渲染在所述移动终端的屏幕上,并播放所述关联音效。
9.根据权利要求8所述的移动终端帧动画的处理方法,其特征在于,所述步骤二进一步包括:
所述移动终端解码所述新的移动终端帧动画文件,判断获取的数据是音效数据还是图像数据,然后将所述音效数据和图像数据分别通过独立的播放通道和缓存空间进行处理的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100650226A CN100514992C (zh) | 2007-03-30 | 2007-03-30 | 一种移动终端帧动画的处理方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007100650226A CN100514992C (zh) | 2007-03-30 | 2007-03-30 | 一种移动终端帧动画的处理方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101031085A CN101031085A (zh) | 2007-09-05 |
CN100514992C true CN100514992C (zh) | 2009-07-15 |
Family
ID=38716105
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007100650226A Active CN100514992C (zh) | 2007-03-30 | 2007-03-30 | 一种移动终端帧动画的处理方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100514992C (zh) |
Families Citing this family (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101656878B (zh) * | 2008-08-19 | 2013-02-20 | 新奥特(北京)视频技术有限公司 | 一种改进的帧间压缩的方法 |
CN101656877A (zh) * | 2008-08-19 | 2010-02-24 | 新奥特(北京)视频技术有限公司 | 一种改进的图片序列生成动画文件的方法 |
EP2526674B1 (en) * | 2010-01-18 | 2017-03-15 | Telefonaktiebolaget LM Ericsson (publ) | Method and arrangement for supporting playout of content |
CN101930367B (zh) | 2010-08-25 | 2014-04-30 | 中兴通讯股份有限公司 | 切屏动画实现方法及移动终端 |
CN102186110B (zh) * | 2011-05-11 | 2012-08-22 | 深圳市茁壮网络股份有限公司 | 一种图片的处理方法及机顶盒 |
CN102215428B (zh) * | 2011-06-23 | 2012-12-26 | 深圳市茁壮网络股份有限公司 | 一种图片的处理方法及机顶盒 |
CN103634587A (zh) * | 2012-08-22 | 2014-03-12 | 联想(北京)有限公司 | 图像处理方法、装置及电子设备 |
US9894421B2 (en) * | 2012-10-22 | 2018-02-13 | Huawei Technologies Co., Ltd. | Systems and methods for data representation and transportation |
CN103971391A (zh) * | 2013-02-01 | 2014-08-06 | 腾讯科技(深圳)有限公司 | 一种动画生成方法及装置 |
CN104142924A (zh) * | 2013-05-06 | 2014-11-12 | ***通信集团福建有限公司 | 一种动画图片格式的压缩方法和装置 |
CN105917651B (zh) * | 2014-05-30 | 2019-05-14 | 富士通株式会社 | 图像编码方法、装置以及图像处理设备 |
CN104008388A (zh) * | 2014-06-06 | 2014-08-27 | 杨军辉 | 通过识别产品标识获取商家业务数据的方法及*** |
US9774793B2 (en) * | 2014-08-01 | 2017-09-26 | Adobe Systems Incorporated | Image segmentation for a live camera feed |
CN104732574B (zh) * | 2014-12-30 | 2017-12-12 | 北京像素软件科技股份有限公司 | 一种角色游戏的压缩方法及装置 |
KR102051985B1 (ko) | 2015-09-30 | 2019-12-04 | 애플 인크. | 이질적인 네트워킹 환경들에서 미디어 렌더링의 동기화 |
CN105469361B (zh) * | 2015-12-24 | 2018-12-04 | 努比亚技术有限公司 | 一种局部图像处理方法和装置 |
CN105760238B (zh) * | 2016-01-29 | 2018-10-19 | 腾讯科技(深圳)有限公司 | 图形指令数据的处理方法和装置及*** |
CN108364338B (zh) * | 2018-02-06 | 2022-03-15 | 创新先进技术有限公司 | 一种图像数据的处理方法、装置及电子设备 |
CN110473275B (zh) * | 2018-05-09 | 2023-05-30 | 鸿合科技股份有限公司 | 一种安卓***下的帧动画实现方法、装置、电子设备 |
CN108810622B (zh) | 2018-07-09 | 2020-01-24 | 腾讯科技(深圳)有限公司 | 视频帧的提取方法、装置、计算机可读介质及电子设备 |
CN109559270B (zh) * | 2018-11-06 | 2021-12-24 | 华为技术有限公司 | 一种图像处理方法及电子设备 |
CN112070867A (zh) * | 2019-06-11 | 2020-12-11 | 腾讯科技(深圳)有限公司 | 动画文件处理方法、装置、计算机可读存储介质和计算机设备 |
CN113034653B (zh) * | 2019-12-24 | 2023-08-08 | 腾讯科技(深圳)有限公司 | 一种动画渲染方法及装置 |
CN111603771B (zh) * | 2020-05-22 | 2023-06-23 | 腾讯科技(深圳)有限公司 | 动画生成方法、装置、设备及介质 |
CN113556575A (zh) * | 2021-07-19 | 2021-10-26 | 北京百度网讯科技有限公司 | 用于压缩数据的方法、装置、设备、介质和产品 |
-
2007
- 2007-03-30 CN CNB2007100650226A patent/CN100514992C/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN101031085A (zh) | 2007-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100514992C (zh) | 一种移动终端帧动画的处理方法 | |
CN103703779B (zh) | 使用次分辨率图像的图像压缩 | |
US10325172B2 (en) | Transmitting video and sharing content via a network | |
CN101242531B (zh) | 为小尺寸或全尺寸播放提供独立编码链的视频编码*** | |
EP1886503A1 (en) | Compression and decompression of media data | |
KR100708180B1 (ko) | 화상 압축 장치 및 방법 | |
CN111901603A (zh) | 一种用于静态背景视频的编码方法及解码方法 | |
US20230276063A1 (en) | Npu for encoding or decoding videostream format for machine analisys | |
CN111193928B (zh) | 用于传递视频中的感兴趣区域信息的方法和设备 | |
CN105704489A (zh) | 一种基于宏块复杂度的自适应视频运动矢量隐写方法 | |
CN1852403A (zh) | 影片转换编辑装置及其方法 | |
CN101511025A (zh) | 图像压缩/解压缩的方法、装置 | |
JPH09331536A (ja) | 誤り訂正デコーダ及び誤り訂正デコーディング方法 | |
CN102656884A (zh) | 使用像素流执行视频编码 | |
TW567729B (en) | Method and system for compressing motion image information | |
CN111464812B (zh) | 编码解码的方法、***、装置、存储介质及处理器 | |
CN114257818A (zh) | 视频的编、解码方法、装置、设备和存储介质 | |
CN111212322A (zh) | 一种基于多视频去重拼接的视频压缩方法 | |
TW201338553A (zh) | 用於評估要轉換成被跳過巨集區塊的巨集區塊候選者的方法、系統和電腦程式產品 | |
CN111279694A (zh) | Gdr码流编码方法、终端设备、机器可读存储介质 | |
Rizzo et al. | LZ-based image compression | |
CN112806017B (zh) | 用于编码变换系数的方法和设备 | |
GB2610397A (en) | Encoding and decoding video data | |
KR100693296B1 (ko) | 컴퓨터 스크린 이미지 압축 장치 및 그 방법 | |
WO2024119419A1 (zh) | 编解码方法、码流、编码器、解码器以及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |