劉 菲 孟祥增
【摘要】Flash是一種重要的多媒體形式,在教學(xué)中應(yīng)用十分廣泛。通過分析Flash動畫的內(nèi)部結(jié)構(gòu),提取關(guān)鍵幀圖象,采用區(qū)域顏色差加權(quán)綜合算法進(jìn)行關(guān)鍵幀聚類,生成基于場景的Flash動畫摘要,實(shí)現(xiàn)Flash動畫的快速瀏覽,有利于準(zhǔn)確檢索、更好地使用Flash教學(xué)資源。
【關(guān)鍵詞】Flash;場景分割;關(guān)鍵幀;動畫摘要;教育應(yīng)用
【中圖分類號】G40-057 【文獻(xiàn)標(biāo)識碼】B 【論文編號】1009—8097(2009)05—0111—04
引言
Flash集文本、圖形、圖象、聲音等多種媒體元素于一體,通過內(nèi)部特征表達(dá)豐富的語義,是一個基于矢量的交互性影片格式,動畫摘要是實(shí)現(xiàn)基于表達(dá)語義的Flash檢索技術(shù)的有效工具。隨著網(wǎng)絡(luò)遠(yuǎn)程教育及多媒體教學(xué)的發(fā)展,F(xiàn)lash成為多媒體教學(xué)資源的一種重要形式,如何建立Flash內(nèi)部特征索引、實(shí)現(xiàn)基于挖掘和理解影片語義信息的Flash自動檢索模型成為多媒體檢索領(lǐng)域研究的新課題[1]。本文提出的Flash動畫摘要利用關(guān)鍵幀來表達(dá)內(nèi)容特征,基于關(guān)鍵幀的顏色特征完成視覺場景分割,形成可循環(huán)播放的GIF動畫,高度概括原始動畫的主要內(nèi)容,為Flash動畫檢索和內(nèi)容管理服務(wù)。
一 Flash動畫結(jié)構(gòu)分析及形成原理
1 結(jié)構(gòu)分析
一般來說,F(xiàn)lash動畫有FLA和SWF兩類,F(xiàn)LA文件是Flash動畫的源文件,SWF文件是嵌入到網(wǎng)頁中并直接播放的Flash影片壓縮格式,我們研究的是SWF文件。SWF文件有著和XML文件相似的內(nèi)部結(jié)構(gòu),是二進(jìn)制編碼XML文件,使用一系列二進(jìn)制標(biāo)簽來定義文件中的各種對象及其屬性[2]。
SWF文件由文件頭、文件主體、文件結(jié)束標(biāo)記三部分組成,文件主體由按順序排列的定義型標(biāo)簽和控制型標(biāo)簽組成,存儲結(jié)構(gòu)如圖1。
文件頭定義了動畫的基本信息,包括是否經(jīng)過壓縮、文件版本、文件大小、舞臺大小、幀率和幀數(shù)。一般以“FSW”或“CSW”開始,這個標(biāo)記用來標(biāo)識文件是Flash動畫,“FSW”表征沒有經(jīng)過壓縮的SWF文件,“CSW”表明該SWF文件從第9個字節(jié)開始使用ZLIB無損壓縮算法進(jìn)行了壓縮[3]。對于壓縮SWF文件,必須先解壓縮才能進(jìn)行內(nèi)容分析和特征提取。文件版本用一個字節(jié)標(biāo)識,如果版本是4,則字段的值為0x04。
文件主體由一系列用來定義各種媒體對象的標(biāo)簽組成,按功能分為定義型標(biāo)簽(Definition tag)和控制型標(biāo)簽(Control tag)。定義型標(biāo)簽用來定義SWF文件的對象及其屬性,對象包括文本、圖形、圖像、聲音、視頻。定義型標(biāo)簽在定義每一個對象時,都會為對象分配唯一的ID標(biāo)識;控制型標(biāo)簽通過ID標(biāo)識找到特定對象并控制對象的顯示、屬性的改變、整個動畫的播放流程等。
2 形成原理
Flash動畫是一種基于關(guān)鍵幀的動畫,通過在兩個關(guān)鍵幀之間使用一定的插補(bǔ)算法插入一些中間幀形成,由定義型標(biāo)簽和控制型標(biāo)簽實(shí)現(xiàn)各種復(fù)雜的動畫效果。首先由定義型標(biāo)簽定義不同的媒體對象,為每個對象分配唯一的ID,F(xiàn)lash播放器在對SWF文件進(jìn)行解析時,將各種媒體對象放到一個稱為“Dictionary”的庫中;控制型標(biāo)簽根據(jù)對象的ID在對象庫中搜索,找到對象并施加特定的動作,比如顯示、旋轉(zhuǎn)或者縮放[4]。定義型標(biāo)簽、對象庫和控制型標(biāo)簽是SWF文件實(shí)現(xiàn)豐富的動態(tài)視覺效果必不可少的組成部分。它們?nèi)叩年P(guān)系如圖2。
PlaceObject標(biāo)簽用來在當(dāng)前播放列表中添加一個新對象或改變已有對象的屬性,ShowFrame標(biāo)簽用來將播放列表中的對象顯示到舞臺上,并停留一幀所應(yīng)持續(xù)的時間。每個ShowFrame標(biāo)簽都代表動畫中的一幀,通過分析Flash動畫的內(nèi)部結(jié)構(gòu),就能提取其中的對象和相關(guān)屬性。
二 Flash動畫關(guān)鍵幀的提取
Flash動畫中的關(guān)鍵幀指定義了動畫中對象屬性的變化、分配了動作、在舞臺上添加對象、移除對象、形變動畫等的幀。含有動作的幀指添加了Action Script腳本的幀,使用DoAction標(biāo)簽定義;使用PlaceObject標(biāo)簽在舞臺上添加一個對象,使用RemoveObject標(biāo)簽或者RemoveObject2標(biāo)簽移除一個對象,使用DefineMorph標(biāo)簽定義形變動畫。因此,通過判斷某幀所包括的所有標(biāo)簽中是否含有DoAction、PlaceObject、RemoveObject、RemoveObject2或DefineMorph標(biāo)簽就可以提取關(guān)鍵幀,包含任意一個就是關(guān)鍵幀。
改變對象屬性的關(guān)鍵幀判斷要復(fù)雜一些,一般使用PlaceObject2和PlaceObject3標(biāo)簽。PlaceObject2標(biāo)簽中有兩個標(biāo)志位PlaceFlagMove和PlaceFlagHasCharacter,用來標(biāo)識PlaceObject2標(biāo)簽是添加一個對象還是修改已有對象的屬性[5]。添加對象和替換對象操作所在的幀肯定是關(guān)鍵幀,而改變動畫的屬性操作所在的幀卻不一定是關(guān)鍵幀,即Flash動畫中的形變動畫,漸變動畫在Flash動畫中按照表1所示的方式存儲。
表1所示動畫包含三幀內(nèi)容,每一幀都使用了PlaceObject2標(biāo)簽來修改對象的一個或多個屬性,但是只有第一幀和第三幀是關(guān)鍵幀,中間幀的標(biāo)簽雖然也是Place Object2和Show Frame,卻是由Flash動畫自動生成的普通幀。因此,在提取Flash動畫關(guān)鍵幀時,當(dāng)在某幀中遇到PlaceObject2標(biāo)簽或PlaceObject3標(biāo)簽時,首先判斷它們是不是要改變對象的屬性。如果不是,則該幀為關(guān)鍵幀;如果是,則判斷是否為形變動畫,如果不是,則該幀為關(guān)鍵幀,如果是形變動畫,則只有形變動畫的起始幀和結(jié)束幀為關(guān)鍵幀。
綜上所述,通過對播放列表標(biāo)簽的檢測和分析就可以獲得關(guān)鍵幀的索引,然后利用Flash Player ActiveX控件提供的跳轉(zhuǎn)到某一幀暫停并顯示的功能,截屏獲取關(guān)鍵幀圖像,這種截屏的方法比內(nèi)容分析法簡單、高效[6]。
三 基于場景的Flash動畫摘要
我們提出的Flash動畫摘要以場景作為基本粒度單位,持續(xù)時間不能低于3.5秒,這樣能比較全面地反映動畫的內(nèi)容,并且有效地減少冗余信息。場景指在時間軸線上相鄰、視覺效果相似的一段連續(xù)幀序列,并且可以用一個或多個代表幀來概括其含義,它們在內(nèi)容上包含相似的對象或類似的背景,兩個場景的視覺特征對比較大,因此,我們又稱為視覺場景。通過基于視覺特征的關(guān)鍵幀聚類,實(shí)現(xiàn)視覺場景分割,形成表達(dá)Flash動畫主要內(nèi)容的動畫摘要。
關(guān)鍵幀圖像聚類采用不均勻分塊方法將關(guān)鍵幀圖像按照3:4:3的比例分割,使用區(qū)域顏色差的加權(quán)綜合,將場景畫面劃分為9份,9個區(qū)域的顏色差權(quán)重和大小如圖3。這種不均勻分塊方法能夠較好地體現(xiàn)動畫中主要內(nèi)容的變化,避免了屏幕上下部分黑色塊或字幕的干擾。計算兩幅關(guān)鍵幀圖象的顏色直方圖距離,使用全局單一閾值法判斷場景的邊界,經(jīng)過多次實(shí)驗(yàn),選擇幀差閾值47。判斷場景邊界時,把閾值與所有相鄰關(guān)鍵幀直方圖的差值做比較,如果直方圖的差值大于設(shè)定的閾值,則認(rèn)為兩個關(guān)鍵幀屬于不同的場景,這兩個關(guān)鍵幀圖象就是場景的邊界;如果直方圖的差值小于設(shè)定的閾值,則認(rèn)為兩個關(guān)鍵幀圖象屬于同一個場景,繼續(xù)向后比較其它的差值,直到場景邊界。到達(dá)場景邊界后,再根據(jù)場景中關(guān)鍵幀的數(shù)量和持續(xù)時間來確定該場景代表幀的位置和數(shù)目[7]。
四 實(shí)驗(yàn)結(jié)果分析
實(shí)驗(yàn)中,我們從建立的Flash動畫庫選取卡通動畫、mtv、游戲各30個,每類小于2MB的15個,大于2MB的15個,最大的文件9.20MB,最小的文件167KB。首先對每個Flash動畫進(jìn)行視覺場景的人工標(biāo)注,利用snagit截取場景畫面,雖然人工標(biāo)注存在主觀性,但由于人類視覺感受的相似性,經(jīng)過多次實(shí)驗(yàn),人工標(biāo)注的場景數(shù)差別不超過5。利用查準(zhǔn)率和查全率兩個指標(biāo)來評估場景分割的實(shí)驗(yàn)效果,計算每一個樣本Flash動畫場景分割的查準(zhǔn)率和查全率,再對每一類Flash動畫求平均查準(zhǔn)率和查全率。表2是實(shí)驗(yàn)中樣本Flash分析表的樣例,我們對每個Flash進(jìn)行人工標(biāo)注場景,同時利用程序分割場景。表3是卡通動畫類和mtv類的實(shí)驗(yàn)結(jié)果,game類的實(shí)驗(yàn)結(jié)果不理想,必須分析action腳本,才能提取出游戲的場景畫面,這是我們下一步需要解決的問題。
查準(zhǔn)率=正確分割場景數(shù)/分割的總場景數(shù)
查全率=正確分割場景數(shù)/人工標(biāo)注場景數(shù)
cartoon類和mtv類,生成的動畫摘要能夠良好地反映Flash的內(nèi)容信息,實(shí)現(xiàn)通過縮略圖快速瀏覽Flash動畫的目的。其中,影響查全率的因素在于關(guān)鍵幀的判斷,我們判斷的是主場景中時間軸上的關(guān)鍵幀,sprite即movie clip中的關(guān)鍵幀沒有提取出來,查全率達(dá)不到70%;影響查準(zhǔn)率的因素在于關(guān)鍵幀聚類,卡通動畫類和mtv類漸變動畫比較多,基于動畫摘要簡潔表達(dá)Flash內(nèi)容的原則,我們?nèi)u變動畫的開始幀和結(jié)束幀,中間的漸變效果忽略,因此關(guān)鍵幀聚類算法對漸變動畫場景的提取出現(xiàn)冗余信息,查準(zhǔn)率達(dá)到75%以上。
五 Flash動畫摘要的教育應(yīng)用
1 動畫摘要以GIF格式展現(xiàn)Flash的主要內(nèi)容,實(shí)現(xiàn)了快速瀏覽,促進(jìn)了師生與數(shù)字環(huán)境及媒體的相互作用。無論課件點(diǎn)播系統(tǒng)、網(wǎng)絡(luò)教學(xué)系統(tǒng)、開放教學(xué)平臺還是精品課程,越來越多地教學(xué)資源選擇Flash作為多媒體承載工具,面對網(wǎng)絡(luò)上大量的Flash教學(xué)資源,如何判斷其內(nèi)容是否滿足學(xué)習(xí)者的需要是一項(xiàng)艱難的工作,動畫摘要正是瀏覽Flash內(nèi)容最有效的工具。
2 動畫摘要為基于挖掘和理解影片內(nèi)容的完全自動化Flash檢索技術(shù)帶來了新的發(fā)展。Flash具有文件小、兼容性好、包含豐富語義、強(qiáng)大交互能力等特征,不論搜索Flash游戲的少年、音樂mv的愛好者還是動畫的開發(fā)者,通過動畫摘要顯示檢索結(jié)果都是理想的選擇。[6]通常檢索系統(tǒng)返回的是大量的動畫文件,不僅耗費(fèi)系統(tǒng)及網(wǎng)絡(luò)資源,也不便于學(xué)習(xí)資源的內(nèi)容管理。GIF是專門為網(wǎng)絡(luò)交換而設(shè)計的一種圖像格式,語義表達(dá)能力強(qiáng),有助于大量Flash教學(xué)資源的內(nèi)容理解和快速獲??;利用Flash動畫摘要實(shí)現(xiàn)實(shí)例檢索,在教學(xué)中有效檢索和利用數(shù)字資源。
3 動畫摘要促進(jìn)了遠(yuǎn)程教學(xué)系統(tǒng)和網(wǎng)絡(luò)課程的發(fā)展。在遠(yuǎn)程教育系統(tǒng)中,教學(xué)過程存在帶寬和費(fèi)用的矛盾,F(xiàn)lash多媒體的存在解決了信息傳遞的速度問題。動畫摘要通過可視化查詢接口,對不同類型的信息分別進(jìn)行高效編碼和描述,建立適于瞬息萬變的數(shù)字時代教學(xué)活動的遠(yuǎn)程教育系統(tǒng)。數(shù)字時代的教學(xué)工作需要技術(shù)與知識的相互作用,突出強(qiáng)調(diào)和鼓勵學(xué)生的創(chuàng)新、參與和使用數(shù)字環(huán)境及媒體進(jìn)行交流、學(xué)習(xí)、合作、創(chuàng)造的能力,F(xiàn)lash動畫摘要推動了師生與數(shù)字環(huán)境及媒體的交互。
六 小結(jié)
為了提高動畫摘要的查準(zhǔn)率和查全率,必須進(jìn)一步提取Flash動畫的圖形、視頻、音頻等媒體對象,分析對象的動態(tài)特征和交互特征,綜合場景復(fù)雜度、動畫節(jié)奏等高層語義信息分割場景,生成準(zhǔn)確全面的反映Flash豐富語義的動畫摘要,為教育資源的獲取和管理服務(wù),有效實(shí)現(xiàn)Flash的教育價值。同時積極開展Flash特征提取與內(nèi)容管理的研究,探索Flash動畫檢索在教學(xué)領(lǐng)域的應(yīng)用,推動教育信息化和教師專業(yè)化發(fā)展,適應(yīng)基礎(chǔ)教育課程改革的要求,為師生提供豐富精煉的信息與資源,主動、積極完成知識建構(gòu)。
參考文獻(xiàn)
[1] Yang Jun, Qing Li, Liu Wenyin, Yueting Zhuang . FLAME: A Generic Framework for Content-based Flash Retrieval[DB/OL]. ACM Multimedia 2002, December, 2002.
[2] Jun Yang, Qing Li, Liu Wenyin, Yueting Zhuang. Searching for Flash Movies on the Web: A Content and Context Based Framework[DB/OL].
[3] GIURL.GZIP,Zlib,PNG壓縮算法詳解[DB/OL].
[4] Adobe Corporation. Flash File Format Specification[DB/OL].
[5] Meng Xiang-zeng,Liu Lei. On Retrieval of Flash Animations based on Visual Features,Lecture Notes of Computer Science[J].2007.
[6] Jun Yang, Qing Li, Liu Wenyin, Yueting Zhuang. Content-Based Retrieval of Flash Movies: Research Issues, Generic Framework, and Futrue Directions[DB/OL].
[7] 彭強(qiáng),李華.基于塊直方圖分析的視頻背景提取方法[J].西南交通大學(xué)學(xué)報. 2006,(1):48-56.