学术堂首页 | 文献求助论文范文 | 论文题目 | 参考文献 | 开题报告 | 论文格式 | 摘要提纲 | 论文致谢 | 论文查重 | 论文答辩 | 论文发表 | 期刊杂志 | 论文写作 | 论文PPT
学术堂专业论文学习平台您当前的位置:学术堂 > 计算机论文 > flash论文

基于内容的Flash动画元素特征提取

来源:学术堂 作者:韩老师
发布于:2015-07-03 共8701字

  一、前 言
  
  进入 21 世纪的信息时代以来,网络技术和信息技术的发展日益迅速, 作为教育信息化基础的数字化学习资源愈加丰富, 数字化学习资源建设更受到专家学者的广泛关注。 作者从中国知网(CNKI)上以“数字化学习资源建设”为关键词检索到 2000-2014年相关论文 15661 篇,并呈逐年递增趋势。 可见数字化学习资源建设目前仍是教育技术学科内的重要研究领域。

  数字化学习资源指的是在教育教学或者学生自主学习过程中使用的所有数据、知识和信息资源[1]. 目前网络中的数字化学习资源多以网页、文档、表格、图像、视频、声音、Flash、课件等形式为主,学者曾对数字化学习资源需求情况做过调查,利用李克特五点量表用 1 至 5 表示教师从不用到经常用,数据显示教师下载用于备课的教学资源中, 使用最多的是文本教参(平均数 3.31)、图形图像素材(平均数 3.30)和动画素材(平均数 3.02),而其他资源相对较少[2]. 另一方面,通过对教师数字化学习资源需求类型的问卷调查,结果显示,在教师教育教学过程中对动画、视频等多媒体集成资源的需求量远高于单一形式的文本。 超过60%的教师表示需要动画或者其他集成化的多媒体资源, 仅有 7%的教师明确表示需要文本形式的教学资源[3]. 可见,Flash 动画类型的数字化学习资源在教师教育教学和学生自主学习过程中起着重要的作用。

  本文从 Flash 文件结构出发,对内容特征进行分析,进而提取 Flash 内部特征, 并完成了基于内容的 Flash基本元素、动态效果、交互方式的提取,用于完善基于内容的 Flash 检索系统。

  二、国内外研究现状
  
  Flash 动画应用非常广泛, 它是一个基于矢量的交互性影片格式, 除了本身能够嵌入文本、 图形、视频、图像、按钮等各类媒体元素外,还集动态效果、用户交互于一体。 Flash 动画中的课件、实验演示、教学游戏都是重要的数字化学习资源,Flash 动画获取的效率和准确性直接影响教师的教育教学和学生的自主学习效果。 目前,教师以及学生主要通过百度、360搜索等搜索引擎检索并下载 Flash 动画, 但这些搜索引擎主要是通过关键字进行检索, 主要用于文本、图像、音频、视频领域,基于关键字的 Flash 检索主要依赖上传者输入的 Flash 标题和所在网页的上下文信息,无法分析 Flash 内容结构,不能表达 Flash 动画丰富的视觉特征和交互特征。 现阶段 Flash 动画检索系统研究主要集中在动画的外部特征和上下文信息的检索。 2008 年 7 月,Adobe 公司发表声明,将与谷歌、雅虎等搜索引擎开展合作优化 Adobe Flash Player 技术,便于将 Flash 内容用于搜索引擎检索,从而增强搜索引擎对 Flash 内容的搜索能力。然而,到目前为止没有新的研究报告或者检索系统出现。 基于内容多媒体检索弥补了基于关键词检索的局限性, 并在图像、视频数据库检索中进行了广泛研究,取得了显着的研究成果。但由于 Flash 自身内容复杂,具有非线性结构等特征,基于内容的 Flash 检索研究较少。目前进行研究并取得一定研究成果的是美国卡内基梅隆大学的杨骏博士。 杨骏博士提出以 FLAME 框架为主的基于内容的 Flash 检索方法, 该方法将 Flash 动画的内容特征分为三个层次,分别是对象、事件以及交互,并在此基础上提出了 Flash 动画检索系统的三层架构, 首先是表示层,对 Flash 动画内容特征进行表示,然后是索引层,把表示层的内容特征生成索引,最后是检索层,用户使用检索系统搜索所需资源[4]. 杨骏博士提取的这种检索方法能够较全面地描述 Flash 动画内容,对基于内容的 Flash 检索起到了极大的促进作用, 但该方法并没有进行实际应用。

  三、Flash 动画的文件结构和形成原理
  
  Flash 动画的文件格式主要有两种,FLA 是 Flash动画的源文件(*.fla),可以在 Flash 动画制作软件中进行编辑和修改, 而 SWF 是 Flash 动画的播放文件(*.swf), 是能够嵌入网页或者独立播放的压缩格式,不能再修改。本文中 Flash 动画指的是 SWF 格式的动画。 SWF 文件与 XML 文件有着类似的内部结构,采用一系列二进制标签对动画文件中的各种对象、动态效果、 交互方式进行定义。 随着 XML 文件格式的发展, 应用 JavaSWF 或者 SWFmill 能够将 SWF 文件转换为 XML 文件,XML 的可读性便于我们对 Flash 动画存储结构和内容信息的理解。使用标签,在 Flash 动画播放过程中,能够自动跳过不能识别或者已经损坏的标签,而不影响 Flash 动画的正常播放,具有很好的兼容性。

  (一)Flash 动画的存储结构
  
  Flash 动画文件主要由三部 分 组 成 , 分 别 为Header(文件头)、Body(文件主体)以及 End Tag(文件结束标签)。 其存储结构如图 1 所示。

  文件头定义了 Flash 动画的基本信息, 包括Signature(文件标识 )、Version(文件版本 )、FileLength(文件大小 )、FileSize(舞台大小 )、FrameRate(帧率 )、FrameCount(帧数)。 Header(文件头)以三个字节的压缩标识开始,“FWS”表示 SWF 文件没有经过压缩,而“CWS” 则表示该文件从第 8 个字节之后开始压缩,“CWS” 文件必须经过解压缩之后才能进行正常的内容特征描述及其提取,“CWS” 文件使用 ZLIB 算法压缩。 文件版本的值不是 ASCII 码而是一个 8 位数字,例如 0x06 代表文件版本为 6. 播放器的 CPU 等硬件性能决定了 Flash 动画的帧率, 通常正常播放速度难以达到该数值。 帧数指的是 SWF 动画的总帧数。

  文件主体由顺序排列的 Tag 标签组成,标签又由标签头和内容组成,文件主体标签都是如此。 文件主体标签依据功能, 分为定义型标签和控制型标签。

  文本、视频、图形、图像、按钮、影片剪辑等组成 Flash动画的各组成元素及其属性用定义型标签标识。 定义型标签在对媒体元素定义时, 会分配一个唯一的 ID标识,并把 ID 标识存放到“字典”数据库中。 例如,DefineShape 是定义形状的标签,DefineSprinte 则是定义影片剪辑的标签,有时一个元素由多种定义标签标识,如 DefineButton 和 DefineButton2 都是用来定义按钮。 控制标签又分为播放列表标签、控制型标签和动作标签。 Flash 动画组成元素的属性变化、动态效果以及交互方式由控制型标签控制。 例如,End 表示 Flash动画文件的结束,ShowFrame 用来显示 Flash 动画播放列表中的所有对象。 一般来说,SWF 文件中的标签可以任意排列, 同时, 必须遵循下面的几点小规则:

  (1)Flash 动画中的各种组成元素遵循 “先定义 ,后使用”的原则,即所有组成元素首先要使用定义型标签进行定义,之后才可以使用;(2)SWF 文件中 END(结束)标签只能有一个;(3)声音流标签必须顺序播放,结束标签必须在 SWF 文件末尾。

  (二)Flash 动画的形成原理
  
  Flash 动画是在两个关键帧之间使用插补算法插入中间帧形成的[5],两个关键帧之间有形状补间动画和动作补间动画。 定义型标签和控制型标签共同作用形成 Flash 动画的各种效果和交互。首先,定义型标签对导入到库的基本元素进行定义,并分配给每个基本元素唯一的 ID 标识,Flash 播放器在解析文件时,基本元素及其标识存储到字典(Dictionary)数据库中。接着控制型标签通过唯一的 ID 标识在对象库中搜索,找到对应的元素, 根据 PlaceObject 等标签中对基本元素特征的描述,施加缩放、旋转、移动等动态效果到播放列表。之后使用 ShowFrame 标签将播放列表中的所有媒体对象显示到舞台。 Flash 动画的形成是在定义标签、控制标签、对象库三者相互协同作用下完成的。 其三者的调用关系如图 2 所示。四、Flash 动画的内容特征提取Flash 动画包括丰富的媒体元素以及属性特征 ,加载在媒体元素上面的各种动态效果、 交互更使Flash 具有极强的表现能力和人机交互。 根据研究分析 Flash 动画的内部结构以及形成原理, 学者提出Flash 动画的内容特征主要有四个层次: 第一层次 ,Flash 动画的基本信息; 第二层次,Flash 动画基本元素的属性特征; 第三层次,Flash 动画视觉场景特征;第四层次,Flash 动画逻辑场景特征[6]. Flash 动画基本信息主要有名称、类型、大小、创建日期、作者等,这些信息都是 Flash 的外部属性, 无法描述 Flash 动画的内部特征。 逻辑场景和视觉场景特征主要包括场景个数、主色调、画面的复杂度、标题等,并要生成对应的动画摘要 Gif 文件,用于检索的时候预览。 逻辑场景和视觉场景描述的是 Flash 动画的内部特征, 相对复杂,但学者已经进行深入研究并取得一定成果,这里将不再赘述。

  (一)Flash 动画基本元素内容特征提取
  
  1. Flash 动画基本元素内容特征描述
  
  基本元素是 Flash 动画的重要组成部分, 是文件骨架与核心, 效果与代码附加在基本元素上。 提取Flash 动画基本元素的内容特征是整个 Flash 动画内容特征提取的首要工作。Flash 动画基本元素主要包括文本、图形、图像、按钮、音频、视频、影片剪辑、蒙版、形变等。 依据元素类型不同,内容特征属性并不相同,文本的关键词特征可用于对 Flash 动画进行标注, 完善文本注释描述。 声音的采样率、声道、分类等特征则可体现 Flash 动画的感情基调。 Flash 动画基本元素内容特征见表 1. Flash 动画的基本组成元素由定义型标签进行定义,如 Defineshape(标识值为 2)用于形状的定义,DefineVideoStream(标识值为 60)用于视频的定义,依据定义型标签的标识值便可分析是何种类型的基本元素。 定义型标签的标识值位于标签头部分,由Header 标签描述,类型为 Recordheader,定义型标签的主 体 部 分 则 描 述 了 该 元 素 的 详 细 信 息 , 例 如DefineVideoStream 标签中的 Width 描述了视频的宽度,Height 描述了视频的高度。 Flash 动画基本元素内容特征的描述主要依靠定义型标签的标签头信息和标签主体信息。另外,还有一些特殊标签对基本元素内容特征进行补充说明, 如图像中的 DefineBits 标签用于说明该位图元素采用的是 JPEG 压缩, 即该位图格式为 JPEG.【1】
 

  

  2. Flash 动画基本元素内容特征提取
  
  Flash 动画基本元素内容 特 征 提 取 平 台 使 用VC++6.0 软件用 C++语言开发, 依据 SWF 文件格式版本 10 对元素及其标签的描述和说明, 其基本步骤为:①读入 SWF 文件,判断是否能够打开,如果能够打开继续,打开失败转向⑤;②解析 SWF 文件结构,读取第一个标签内容,如果是定义型标签继续,如果不是转向⑤;③根据定义型标签的标识值判断是何种基本元素,根据判断的基本元素种类转向对应的特征提取模块; ④将提取的基本元素内容特征存入数据库;⑤读取下一个标签内容,如果是结束标签,程序结束,如果不是转向②。

  需要注意的是, 一个元素可能会有不同的定义标签进行定义,例如形状的定义标签有 DefineShape(标识值为 2)、DefineShape2(标识值为 22)、DefineShape3(标识值为 32)、DefineShape4(标识值为 83),视频的定 义 标 签 有 DefineVideoStream ( 标 识 值 为 60)、VideoFrame(标识值为 61)。 所以从 SWF 动画中读取标签内容与标识值比较时,要考虑全面,否则会影响基本元素提取的准确性。

  (二)Flash 动画动态效果特征提取
  
  1. Flash 动画动态效果特征描述
  
  Flash 动画具有生动、形象、吸引观赏者注意力等特点,与其附加在媒体元素上面的各种动态效果密不可 分 . Flash 动 画 的 动 态 效 果 有 Move ( 移 动 )、ColorChange (色变)、ShapeChange (形变)、Scale (缩放)、Rotate(旋转)。 动态效果作用于动画创作者导入到库或者直接绘制的各种媒体元素,而不能脱离媒体元素起作用。 定义标签分配给媒体元素唯一的 ID 标识,ID 标识存入到数据字典中, 当播放器解析的时候, 会根据之前存入的 ID 标识到对象库中搜索对应的媒体元素,并根据控制标签中的描述或者代码施加动态效果。 动态效果存在于控制标签中的播放列表标签(Display List Tags)中,用于增加一个特征或者特征属性到播放列表。 播放列表标签包括三种, 分别为PlaceObject 标 签 、PlaceObject2 标 签 和 PlaceObject3标签。PlaceObject 标签功能为增加一个对象到播放列表。 PlaceObject2 标签和 PlaceObject3 标签不仅能够增加一个对象到播放列表,还能够修改指定对象的特征以及特征属性。 移动、色变、形变、缩放、旋转就在PlaceObject2 标签和 PlaceObject3 标签中进行定义 .

  PlaceObject2 标签和 PlaceObject3 对动态效果定义及其属性见表 2.【2】

  
  PlaceObject2 标签结构较为简单, 从开始依次为各 效 果 标 签 , 而 PlaceObject3 标 签 还 包 括PlaceFlagHasFilterList 等 标 签 , 之 后 才 是 需 要 的PlaceFlagMove 等动态效果标签, 所以提取之前需要将指针移动到 PlaceFlagMove 之前。 移动、色变、形变特征提取直接取相应标签与之相与,如果为 1 则表示该媒体元素存在相应动态效果,如果为 0 则表示不存在。 PlaceFlagHasMatrix 标签较为复杂,缩放、旋转都通过该标签描述,需要定义 MATRIX 类型变量,依据SWF 文件版本说明 10 中对 MATRIX 类型的说明,根据媒体元素位置和尺寸的变化,从而判断是否有缩放和旋转效果。

  2. Flash 动画动态效果特征提取
  
  ①读入数据库中的 SWF 文件, 判断是否能够打开,如果能够打开继续,如果不能打开转到⑤。②解析Flash 动画文件结构, 读取第一个标签内容, 如果为PlaceObject2 标签(标识值为 26)或 PlaceObject3 标签(标识值为 70)继续,如果不是转到⑤。 ③读取 Depth和 CharacterID,Depth 用 于 判 断 标 签 的 深 度 ,CharacterID 用于判断动态效果施加在何种媒体元素。

  之后和对应标签相与,判断是否有移动、色变、形变、旋转、缩放。 ④将运行结果显示到程序界面并存入数据库。⑤读取下一个标签,判断是否是结束标识,如果是程序结束,如果不是转到②。

  由于 PlaceObject2 标签和 PlaceObject3 标签结构差异,所以在③中需要根据②的判断,作不同的处理,如 果 PlaceObject2 标 签 , 只 需 要 读 取 掉 Depth 和CharacterID 标签 , 之后便是需要的效果标签 . 而PlaceObject3 标签, 除了读取掉 Depth 和 CharacterID标签之后, 还要读取掉字符串类型的 ClassName 标签,然后再进行效果特征提取。

  (三)Flash 动画交互特征提取
  
  1. Flash 动画交互特征描述
  
  Flash 是一种交互式的矢量动画, 具有极强的交互性,便于用户对动画的控制,满足用户的需要,用户可以使用键盘、鼠标等输入设备,通过点击、输入等交互,决定动画的运行结果。正是由于 Flash 动画具有强大的交互功能, 使之具有极强的趣味性和吸引力。

  SWF6 之前的版本 Flash 动画交互较为简单, 主要是键盘和鼠标的点击、弹起等简单交互,SWF6 及以后的版本完善了交互特征, 增加了之前没有的鼠标拖拽、鼠标拖进响应区域等方式。 SWF6 及以后版本的交互方式有键盘弹起、键盘点击、鼠标弹起、鼠标点击、鼠标移动、剪辑释放、帧事件、鼠标经过、剪辑载入,还有当鼠标从按钮上方移出按钮范围时触发事件,当鼠标移到按钮上方时触发事件, 当在按钮上按下鼠标,然后在按钮外释放时触发事件等。 Flash 动画交互特征同样在 PlaceObject2 标签和 PlaceObject3 标签中进行定义,但由于交互特征较为复杂,定义方式和动态效果特征有很大的不同。 首先 PlaceObject2 标签和PlaceObject3 标签中的 PlaceFlagHasClipActions 标签定义媒体元素是否有交互特征, 如果有将会读取ClipActions 标签,该标签中的 AllEventFlags 标签描述的 是 媒 体 元 素 采 用 了 何 种 方 式 的 交 互 特 征 ,ClipActionRecords 标签描述的是媒体元素交互特征的详细信息。 ClipEventFlags 标签定义了所有的媒体元素交互方式, 其中 AllEventFlags 标签的类型便是ClipEventFlags, 即 AllEventFlags 标 签 描 述 的 是ClipEventFlags 标签的其中之一。 ClipEventFlags 标签对交互方式的定义见表 3.【3】

  
  2. Flash 动画交互特征提取
  
  Flash 动画交互特征的提取相对于动态效果特征的提取较为复杂,首先需要判断某媒体元素是否具有交互特征,如果有交互特征将再判断是何种类型的交互特征以及交互特征的详细信息。 在 SWF6 之前的版本中 ClipEventFlags 是 2 个字节, 在 SWF6 及之后的版本中是 6 个字节。 Flash 动画交互提取的具体步骤为:①从 Flash 动画库中读取 SWF 文件,判断是否能够正常打开, 如果能打开则继续, 如果不能打开转向⑥;②解析 SWF 文件结构,读取第一个标签,判断是否是控制型标签中的 PlaceObject2 标签 (标识值为 26)或 PlaceObject3 标签(标识值为 70),如果是程序继续,如果不是转向⑥;③提取 Depth 和 CharacterID 相应的字节,然后与 PlaceFlagHasClipActions 标签相与,如果为真继续,如果为假转向⑥;④读取 ClipAtions 标签中AllEventFlags 的相应字节,因为 AllEventFlags 标签数据结构是 ClipEventFlags 类型, AllEventFlags 标签内包含的便是交互特征信息, 所以与 ClipEventFlags 标签相与,判断是何种交互特征;⑤读取 ClipAtions 标签中 ClipActionRecords 的相应字节,ClipActionRecords标签内包含的是交互特征的详细信息, 所以再读取ClipActionRecord 标签内的相关信息,将交互特征以及交互特征的信息存入数据库; ⑥读取下一个标签,如果是结束标签,程序结束,如果不是转向②。

  需要说明的是,PlaceObject2 标签和 PlaceObject3标签中 Depth 和 CharacterID 信息处在标签的起始位置,所以需要先读取,之后才是需要相与判断是否有动态效果或者交互特征的标签。 由于 PlaceObject3 标签更加复杂, 读取 Depth 和 CharacterID 的同时还要读 取 String 类 型 的 ClassName 信 息 . 另 外 ,AllEventFlags 标签的类型是 ClipEventFlags,所以读取AllEventFlags 标签内的交互特征 , 就是读取标签ClipEventFlags. ClipActionRecords 标签也是如此 ,只不过它是 ClipActionRecord 类型。

  五、实验结果分析
  
  根据 Flash 动画内容特征的描述和提取步骤,作者使用 VC++6.0 软件利用 C++语言开发了基于内容的 Flash 动画内容特征提取平台。 为验证内容特征提取平台的查准率和查全率,随机选取从不同网站下载的 MTV、贺卡、3D、广告、虚拟现实、游戏、课件、卡通、网站等类型的各 100 个 Flash 动画, 组成一个共有900 个 Flash 动画的样本库。 样本库选取具有随机性,并保证所有 Flash 动画都能正常播放。

  硕思闪客精灵是一款专业的 Flash 动画反编译软件,目前常用的是 7.0 版本,利用该软件可以对 Flash进行反编译,显示 Flash 动画的基本信息和标签信息,并对 Flash 动画里面的各媒体元素及其脚本进行解析,生成 FLV 动画源文件。通过硕思闪客精灵对 Flash动画进行反编译, 提取 Flash 动画的内容特征及其个数,与作者开发的内容特征提取平台提取的内容特征及其个数相比较,验证内容特征提取平台的查准率和查全率。【4】

  
  查准率=平台正确提取的内容特征个数/平台提取的内容特征总数查全率=平台提取内容特征总数/闪客精灵提取内容特征总数利用作者开发的 Flash 动画内容特征提取平台和硕思闪客精灵软件分别提取样本库 Flash 动画的内容特征,包括基本元素、动态效果、交互方式。 提取后进行数据分析, 如果查全率和查准率能够达到80%,则达到实验目的,说明内容特征提取平台具有较好的准确性和实用价值。 实验数据分析统计后见表 4.

  表 4 中提取的平均个数指的是每一类别 Flash 动画内容特征总数的平均值,包括基本元素、动态效果、交互特征。 实验数据见表 4,贺卡、3D、虚拟现实、卡通查全率达到 100%,广告查全率较低为 82.20%,查全率的平均值为 96.13%,达到预期的实验目的。 MTV、广告、游戏、课件、网站查准率为 100%,贺卡的查准率较低为 84.60%,查准率的平均值为 98.00%,同样达到预期实验目的。 提取平台是通过 Flash 动画标签中的定义标签和控制标签提取内容特征,而硕思闪客精灵提取的是实际应用到场景的内容特征,部分媒体元素定义之后并没有应用到场景, 或者多次应用到场景,所以提取平台和闪客精灵提取的数量有所差距,但整体来看,实验数据均达到预期的 80%,说明作者开发的内容特征提取平台能够较为准确地提取 Flash 动画中的内容特征,并具有实际应用价值。

  六、结 束 语
  
  随着翻转课堂、移动学习的兴起,作为重要数字化学习资源的 Flash 动画以其特有的优势越来越受到人们的重视。 基于内容的 Flash 动画内容特征的提取经过多年的研究,取得了显着的成果,并得以应用,使教师、学生能够准确、快捷地检索到需要的 Flash 动画资源。 基本元素、动态效果、交互方式都是 Flash 动画重要的内容特征,对它们进行分析、提取,能够完善检索平台,使 Flash 动画检索项更加全面、个性化,并提高检索的准确性和效率。 Flash 动画内容特征复杂,不同类别的不同媒体元素各有其特点,需要继续深入研究,从而提高 Flash 动画检索的查准率和查全率。随着技术的发展,对于 3D、虚拟现实等新兴 Flash 动画类型,需要进一步研究,根据其特有的内容特征确定其类型。 Flash 动画种类繁多,Flash 课件等教育资源在庞大的 Flash 动画数量中占的比重并不小, 但目前其在教育领域的应用还比较薄弱, 希望通过对 Flash 动画内容特征更加全面的分析, 为 Flash 动画分类等深层次研究提供依据,使 Flash 动画发挥更大作用,为教育信息化作出应有的贡献。

  [参考文献]

  [1] 孟祥增。教育网站中的数字化学习资源调查[J].远程教育杂志,2012,(6):65~71.
  [2] 谭金波,石晋阳,李艺。基础教育网络资源现状与教师需求的调查研究[J].中国远程教育,2005,(6):63~66.
  [3] 孙默。网络多媒体教学资源建设中的问题与对策[J].中国电化教育,2011,(7):88~91.
  [4] Yang Jun,Qing Li,Liu Wenyin,Yueting Zhang.FLAME:A Generic Framework for Content -Based Flash Retrieval [DB/OL].ACMMultimedia 2002,2002~12.
  [5] 刘磊,丁巧荣,孟祥增。Flash 动画的特征提取研究[J].中国电化教育,2007,(9):103~106.
  [6] 孟祥增。 基于内容的 Flash 网络教学资源检索研究[J].电化教育研究,2009,(9):77~79,90.

相关标签:动画论文
  • 报警平台
  • 网络监察
  • 备案信息
  • 举报中心
  • 传播文明
  • 诚信网站