Flash动画的内容特征分析与图像信息提取研究*
2009-06-02刘菲孟祥增
刘 菲 孟祥增
【摘要】Flash动画是网络上流行的媒体,由文本、图形、图像、声音等多种媒体元素组成,文章基于Flash动画的文件结构,通过分析Flash动画的内容特征,建立内容特征提取平台,完成图像信息的提取,为Flash动画的图像特征建立索引库,是基于内容的Flash动画检索系统的研发工作的一部分。
【关键词】 Flash动画;基于内容;特征分析;图像提取
【中图分类号】 G434 【文献标识码】 A 【论文编号】1009—8097(2009)12—0091—04
Flash是一个基于矢量的交互性影片格式,集各类媒体元素、动态效果、用户交互于一体,通过内部对象及其属性特征表达丰富的语义信息,是Internet上高效传递矢量图形、文本、视频和声音的媒体格式,在教学领域发挥着越来越重要的作用。现阶段Flash动画检索的研究主要集中在基于Flash动画外部特征和网页上下文信息的检索(比如Google),包括Flash动画的文件名、元数据信息、创作时间、所在网页的超链接和锚文本等[1],检索结果的效率和准确性都不高,因此,如何提取Flash动画的内容特征、建立基于内容的Flash动画检索模型、提高Flash动画检索的效率和准确性,成为近年来多媒体研究领域的新课题。
香港城市大学杨骏教授等提出FLAME框架,将Flash动画按对象、事件和交互三个层次进行内容表征,这种方法能够比较全面地描述Flash的内容结构,促进了基于内容的Flash动画检索的发展。本文从Flash动画的文件结构出发,建立了Flash动画内容特征提取平台,并完成了Flash动画中图像信息的提取。
一 Flash动画的结构分析
Flash动画有FLA和SWF两类,FLA文件是Flash动画的源文件(*.fla),SWF文件是嵌入网页或独立播放的Flash影片压缩格式(*.swf),我们研究的是SWF文件。SWF文件使用一系列二进制标签来定义各种对象、事件和交互,与XML文件有着相似的内部结构,前者是二进制文件,后者是ASCII文本文件。随着Flash研究的深入和XML文件格式的迅速发展,应用JaveSWF或SWFmill[2]可以将一个SWF文件转换为XML文件(如图1),SWF文件的每个标签数据块都映射到XML文件对应的标签中,在XML标签中采用属性和参数值来表征SWF标签的结构化数据,XML文件的可读性便于我们挖掘和理解Flash动画的存储结构和内容信息。
图1Flash-To-XML
由图1所示,SWF文件由文件头、文件主体、文件结束标记三部分组成,文件主体由顺序排列的定义型标签(Definition tag)和控制型标签(Control tag)组成。文件头定义了SWF文件的基本信息,包括压缩标识、文件版本、文件长度、舞台大小、帧率和帧数。文件主体中,定义型标签定义了所有组成元素的属性及特征参数,控制型标签控制各类组成元素的属性变化、动态效果和人机交互等。比如,DefineShape和DefineText都是定义型标签,分别用来定义形状和文本;PlaceObject和ShowFrame都是控制型标签,前者在舞台上放置一个对象,后者显示一帧的内容。文件结束标记即END标签,标识着动画文件的结束。SWF动画文件中的标签遵循“先定义,后使用”的原则,如果动画文件有File Attributes标签,则File Attributes标签必须是第一个标签[3]。
在SWF动画文件中,首先由定义型标签定义不同的媒体对象,比如文本、图形、声音等,并为每个对象分配唯一的ID值;Flash播放器在解析SWF文件时,将各种媒体对象放到一个称为“Dictionary”的库中;控制型标签根据对象的ID在对象库中搜索,找到该对象并施加特定的动作,比如显示、旋转、缩放对象或改变整个动画的播放流程等。定义型标签、对象库和控制型标签是SWF文件实现丰富的动态效果必不可少的组成部分,三者相互配合、相互作用形成了Flash动画。
二 Flash动画的内容特征分析
1 Flash动画特征描述
Flash动画的特征包括外部特征和内部特征,外部特征指文件名、创建日期等外部属性,内部特征指文本、图形、图像等组成元素的参数及属性值,要实现基于内容的Flash动画检索就必须提取Flash动画的内部特征。Flash动画的文本可以由关键词、功能描述,图形通过模式识别分为圆形、椭圆、正方形、长方形、凹多边形、凸多边形和复杂形状等,图像由位置、大小、效果等属性描述,效果包括旋转、缩放、渐变、运动。与基于像素点的视频及图像的对象不同,Flash动画的媒体对象是矢量格式的,可以根据SWF文件的结构特征,利用内容分析的方法,通过数学计算从定义型标签中提取出来,而各种动态效果可以从控制型标签中提取出来[4]。Flash动画的各种媒体元素特征描述如表1。
表1Flash动画媒体元素特征描述
表1中,文本的“内容”指从该文本中提取的关键词,“功能”指该文本在Flash中所起的作用,如标题、目录、正文、隐现提示等;图形的“形状”根据图形在SWF文件中的存储数据,通过模式识别分为圆形、椭圆、正方形、长方形、凹多边形、凸多边形和复杂形状等;图像的“位置、大小、效果”是指应用于形状填充时,图像在舞台上的位置、大小、效果等属性;图像、视频、影片剪辑的“效果”指旋转、缩放、渐变、运动等;所有媒体对象的“所在帧号”都是指该对象在SWF文件中的哪一帧。
2 Flash动画内容特征提取平台
SWF文件格式是开源的,通过阅读SWF文件格式说明书,分析Flash动画的形成原理,我们建立了Flash动画内容特征提取平台(如图2)。同时,利用SWFmill工具将SWF文件转换为XML文件作为评估标准,如果Flash动画内容特征提取平台提取的内容信息与XML文件的标签内容能完全吻合,说明实验结果完全正确,再进一步提取Flash动画中组成元素的内容特征描述参数,建立Flash动画内容特征索引库,实现基于内容的Flash动画检索平台。
图2 Flash动画内容特征提取平台
首先提取SWF的文件头信息,包括文件头、压缩标识、文件版本、文件长度、舞台大小、帧数、帧率,描述Flash动画的总体特征;然后提取文件主体包含的所有标签,直到标识文件结束的END标签。Flash动画的内容特征采用标签类型、编码、标签长度、帧号、帧的位置来描述,标签类型指动画文件中定义型标签和控制型标签的名称,通过标签的编码值来标识;标签长度以字节为单位,指标签的数据内容所占的字节数;帧号即处于动画文件中的第几帧;帧的位置以字节为单位,标识该帧所在的字节位置,当我们要修改或删除一帧的内容时,通过帧的位置来判断。
SWF动画文件中的标签由两部分组成:标签头和标签内容。根据标签内容的长度不同,标签头又分两种:短型标签头和长型标签头[5]。当标签的内容长度不超过62个字节时,标签采用短型标签头;大于等于63个字节时采用长型标签头。短型标签头占2个字节,长型标签头占6个字节,因此,计算帧的位置时需要加上标签头的字节数。图2所示,椭圆(填充).swf动画只有一帧内容,帧率为每秒12帧,帧的位置是第292字节,END标签标签长度为0,标签头占2个字节,因此,文件长度为294个字节。
Flash动画内容特征提取平台首先解析动画的基本内容,然后再针对不同的标签,提取标签中的数据信息,并通过基于内容的分析方法获取特征信息,比如图形的形状为圆形。我们通过解析相关的所有标签,提取了Flash动画中文本、图形、图像、声音、视频、影片剪辑、按钮的特征描述参数,并将其放到Flash动画的特征索引库中,采用一定匹配算法返回符合用户请求的检索结果,提高Flash动画检索的效率和准确率。
三 Flash动画的图像信息提取
SWF文件支持多种图像格式,比如bmp、jpg、gif、png等,为了减小动画文件大小,SWF嵌入的图像都经过压缩,包括JPEG提供的有损压缩和ZLIB提供的无损压缩两种压缩图像。JPEG采用的数据格式由ITU T.81或ISO/IEC 10918-1[6]文件描述,ZLIB库采用的数据格式由1950-1952 RFCs[7]文件描述。对于精确度不高的图像采用JPEG压缩格式,如照片;对于精确图像采用ZLIB压缩算法,如图表、图示、屏幕截图等,SWF动画中的两种压缩图像都可以选择包含alpha通道信息。SWF动画中的JPEG图像采用JPEG Interchange 格式(即JFIF),Flash Player能够友好地解析常用的JFIF格式。
JPEG格式是一个由独立联合图像专家组(Joint Photographic Experts Group)开发的开放标准,被广泛应用于多媒体和网络中,是HTML语言支持的标准图像格式之一。JPEG编码采用YCbCr颜色系统,Y是亮度信息,CbCr是色调信息,编码时对Y进行细量化,对CbCr进行粗量化,以提高压缩比。JPEG格式可分为基于离散余弦变换(DCT)的有失真压缩和使用预测器的无失真压缩,按编码顺序又分为顺序式编码(sequential encoding)和递增式编码(progressive encoding),顺序式编码按从左到右、从上到下编码,递增式编码按从模糊到清晰的方式分次处理。基于DCT变换的有失真压缩的编码模式,分为仅能接受每像素点以8位标识的基本图像处理模式(Baseline Process)和接受每像素点8位或12位表示的扩展图像处理模式(Extended Process),我们依据基于DCT变换的顺序式基本图像处理模式(Baseline Process)分析Flash动画的JPEG压缩图像,其编码过程如图3[8]。
图3 基于DCT变换的JPEG压缩编码
在SWF动画中,图像的定义与存储分别由DefineBits、JPEGTables、DefineBitsJPEG2、DefineBitsJPEG3、DefineBitsLossless、DefineBitsLossless2六个标签完成,具体内容及功能如表2。
表2 SWF动画中的图像定义及存储格式
JPEG压缩图像的内容结构包括一个开始标识SOI、一个帧Frame(Baseline Process只有一帧)、一个结束标识EOI,Frame中包含编码表和压缩数据。DefineBits标签中只包含JPEG图像的压缩数据,即Frame Header(帧头)后面的内容,JPEGTables标签中包含了用来编码图像所使用的编码表和量化表等,即Tables/Misc的内容,因此必须综合DefineBits和JPEGTabels的数据内容才能提取SWF动画中的某些图像。一个SWF动画只能有一个JPEGTables标签,所有DefineBits标签定义的图像都必须共享相同的编码表和量化表。DefineBitsJPEG2标签不同于DefineBits,它既包含JPEG编码表,也包含JPEG图像压缩数据,支持采用不同编码表的多类JPEG图像。DefineBitsJPEG3标签是DefineBitsJPEG2的扩展,增加了alpha通道数据,alpha通道信息(即透明度)不是JPEG图象的标准特征,与JPEG图像的数据分开存储,alpha通道采用ZLIB标准压缩存储。
SWF动画中的无损压缩图像由DefineBitsLossless和DefineBitsLossless2定义。DefineBitsLossless定义了采用ZLIB压缩的RGB位图数据,支持8位colormapped图像和15位或24位direct图像,colormapped图像定义了一个包含256种颜色的调色板,每一种颜色由一个24位RGB值表示,图像的每一个像素采用8位索引值来关联调色板;direct图像采用15位或24位存储实际的像素颜色值。DefineBtisLossless2是DefineBitsLossless的扩展,增加了alpha通道信息,支持8位colormapped图像和32位direct图像,colormapped图像的调色板颜色采用RGBA值定义,direct图像每个像素采用32位ARGB颜色值描述。
综上所述,通过分析Flash动画的图像定义标签(见表2),提取不同压缩格式的图像的内容数据,依据不同的编码格式,将提取的图像数据信息写成特定格式的图像,就完成了Flash动画中的图像对象的提取。需要注意的是,DefineBits、JPEGTables、DefineBitsJPEG2、DefineBitsJPEG3标签中定义图像数据的字段以JPEG图像的SOI 开始标记0xFF、0xD8开始,以EOI结束标记0xFF、0xD9结束,但是SWF8之前的版本,在SOI标识之前有一个错误的头,即0xFF、0xD9、0xFF、0xD8。因此,在提取图像数据时,必须排除这4个字节的错误头。再者,DefineBitsLossless和DefineBitsLossless2提供的无损压缩,记录的是图像每个像素的颜色信息,例如RGB、RGBA、ARGB等,包含这些像素颜色信息的每个数据结构都是作为一个单独的数据块压缩的,因此,图像行宽必须是24位或32位位齐的。
四 结束语
基于内容的Flash动画检索将促进Flash动画的发展与应用,为教育资源的获取和管理带来新的活力,使教学活动更好地适应数字时代的要求。随着研究的深入,Flash动画的内容特征提取还将包括媒体对象的动态特征和交互特征,对动画中媒体对象的运动轨迹、运动方式等动态特征进行提取。在媒体对象、动态特征和交互特征提取的基础上,将来还可以自动提取交互程度、动画节奏、动画类别等高层语义特征,从而根据这些高层语义特征在一定程度上能够推断出动画的创作者创作动画的意图。用户检索动画关注的每一个特征都要包含在检索平台中,为教师和学生更好地应用Flash动画,充分发挥Flash的功能提供保证。
——————————
参考文献
[1] Yang Jun, Qing Li, et al. FLAME: A Generic Framework for Content-Based Flash Retrieval [EB/OL].
[2] Jun Yang, Qing Li, Liu Wenyin, Yueting Zhuang. Searching for Flash Movies on the Web: A Content and Context Based Framework[EB/OL].
[3] SWF File Format Specification (Version 10)[EB/OL].
[4] 刘磊. Flash动画的内容分析与特征提取研究[D].山东:山东师范大学,2008.
[5] Meng Xiang-zeng,Liu Lei. On Retrieval of Flash Animations based on Visual Features[J].Lecture Notes of Computer Science,2007:5093, 270-277.
[6] Internet RFC/FYI/STD/BCP Archives Search[EB/OL].
[7] RFC 1950[EB/OL].
[8] 张益贞,刘滔.Visual C++实现MPEG/JPEG编解码技术[M].北京:人民邮电出版社,2002:134-135.