蔣文娟 陸娜
摘要:該文基于Matlab實(shí)現(xiàn)了一個flash動畫的數(shù)字水印算法,將水印圖像嵌入到flash動畫文件的結(jié)束標(biāo)簽之后,并能夠成功從已嵌入水印的flash動畫中提取水印圖像。實(shí)驗(yàn)結(jié)果表明,該算法不會影響到flash動畫的播放效果,提取出的水印圖像也能夠正確識別。
關(guān)鍵詞:flash;swf;數(shù)字水印
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)16-3891-02
Abstract: In this paper, a digital watermark algorithm is implemented by Matlab. The watermark image is embedded behind the end tag of flash animation file, then the water image can be extracted from watermark-embedded flash animation. The experiment results show that the watermark-embedded flash file can be played clearly and the extracted watermark can be recognized correctly
Key words:flash; swf; digital watermark
1 概述
近年來,隨著多媒體技術(shù)和計算機(jī)網(wǎng)絡(luò)的迅速普及,包括圖像、音頻、視頻、動畫等多媒體信息的傳播日益頻繁和廣泛。但同時,也為盜版者非法占有和傳播數(shù)字化制品提供了方便;為了對數(shù)字化制品提供版權(quán)保護(hù)和完整性驗(yàn)證,數(shù)字水印技術(shù)是常用的一種有效手段。
數(shù)字水印技術(shù)利用數(shù)字化制品(即載體)中的冗余信息,使用某些算法把水印信息嵌入到數(shù)字化制品中。水印信息可以是無意義的信息,但一般情況下會選擇能夠標(biāo)識數(shù)字化制品版權(quán)的有意義的信息,比如作者身份信息。嵌入水印到數(shù)字化制品中,既不會影響數(shù)字化制品的正常使用,且當(dāng)出現(xiàn)版權(quán)爭議或需要驗(yàn)證數(shù)字化制品完整性時,數(shù)字水印能夠達(dá)到有效判斷數(shù)字化制品的版權(quán)歸屬或者判斷數(shù)字化制品內(nèi)容是否被非法篡改等目的。嵌入水印的數(shù)字化載體可以是任何一種多媒體類型,目前文本水印、圖像水印和音頻視頻水印研究較受關(guān)注,而對flash動畫的水印研究相對較少。該文對以flash動畫為載體嵌入和提取水印的算法進(jìn)行了研究和實(shí)現(xiàn)。
Micromedia Flash是一套專門用來設(shè)計影音動畫的軟件,該軟件的動畫源文件的擴(kuò)展名是.fla,此類文件還可再次被編輯;而.swf則是由源文件進(jìn)行動畫發(fā)布后的flash動畫的擴(kuò)展名,此類文件發(fā)布后在flash工具中則不能再被編輯。這兩種是flash的主要文件格式,由于flash swf動畫被廣泛應(yīng)用于網(wǎng)頁動畫、MTV、課件制作等,因此本文研究的是對swf動畫嵌入和提取水印的方法。
2 swf文件結(jié)構(gòu)
Swf文件由三部分組成:文件頭、文件主體和文件結(jié)束標(biāo)簽,這三部分順序組成swf文件。
2.1文件頭
Swf文件頭定義了Swf動畫文件的一些基本結(jié)構(gòu)。第一個字段是三個字節(jié)的文件標(biāo)識,用以表明該動畫文件是否經(jīng)過了壓縮;緊接著的字段用一個字節(jié)標(biāo)識swf動畫文件的版本;文件長度字段用來標(biāo)識該動畫文件的大??;舞臺大小字段定義了動畫顯示區(qū)域的大?。粠屎蛶瑪?shù)字段分別表明了動畫的播放速度和動畫文件的幀數(shù)量。
2.2文件主體和結(jié)束標(biāo)簽
文件主體使用一系列的二進(jìn)制標(biāo)簽來定義動畫文件中的各種對象及其屬性,結(jié)束標(biāo)簽一般是swf文件的最后一個標(biāo)簽,所有標(biāo)簽采用通用格式。使用標(biāo)簽定義文件可以在解析的時候跳過不能識別的標(biāo)簽,從而保持文件良好的兼容性,同時也利于文件的擴(kuò)展。
Swf文件中的標(biāo)簽分為定義型標(biāo)簽和控制型標(biāo)簽。定義型標(biāo)簽定義了swf動畫的內(nèi)容,如各種形狀、文字、位圖、聲音等;控制型標(biāo)簽用來對角色實(shí)例進(jìn)行渲染,并且控制影片的流程。Swf文件主體部分的每一個標(biāo)簽都是獨(dú)立的,任何一個標(biāo)簽都與其它標(biāo)簽沒有數(shù)據(jù)上的關(guān)聯(lián),任何一個標(biāo)簽都可以被插入、移除和修改。
3 基于flash動畫的數(shù)字水印設(shè)計與實(shí)現(xiàn)
對swf動畫文件的數(shù)字水印方案,通常都是通過分析swf動畫文件的文件格式,然后在swf文件的某些位置或結(jié)構(gòu)中嵌入數(shù)字水印。比如,在文件主體標(biāo)簽中嵌入水印、在文件的幀中嵌入水印、替換動畫文件的物件屬性來嵌入水印、在結(jié)束標(biāo)簽后添加額外的標(biāo)簽來嵌入水印等。不管用哪種方法,不管選擇將水印信息嵌入到動畫文件的什么位置,前提都是嵌入水印后不能影響動畫文件的正常播放。
3.1數(shù)字水印算法流程
本文的數(shù)字水印方案選擇在flash動畫的結(jié)束標(biāo)簽之后嵌入水印信息。由于播放器能夠忽略結(jié)束標(biāo)簽之后的內(nèi)容,所以在Flash動畫中要嵌入的某些隱秘信息,可以放在結(jié)束標(biāo)簽之后,而這不會影響Flash動畫的正常播放。
嵌入流程:
1)置亂水印圖像;
2)按標(biāo)簽順序讀入swf文件;
3)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)2;
4)是結(jié)束標(biāo)簽,則將置亂水印添加至結(jié)束標(biāo)簽之后。
提取流程(提取流程是嵌入流程的逆過程):
1)按標(biāo)簽順序讀入嵌入水印的swf文件;
2)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)1;
3)如是結(jié)束標(biāo)簽,則提取結(jié)束標(biāo)簽后的數(shù)據(jù);
4)恢復(fù)被置亂的數(shù)據(jù)提取水印。
3.2運(yùn)行結(jié)果
本文選擇基于Matlab來實(shí)現(xiàn)數(shù)字水印算法,首先使用Matlab GUI設(shè)計界面,再對相應(yīng)控件編寫callback方法。運(yùn)行過程中,我們選擇了一個swf動畫文件作為載體,而水印圖像則是一幅96*96的灰度圖像。運(yùn)行結(jié)果如圖1所示:
從圖1可以看出,嵌入水印后的flash可以正常播放,并且不影響播放質(zhì)量;提取出的水印清晰,可以正確識別。
4 結(jié)論
本文用Matlab GUI實(shí)現(xiàn)了一個有效的基于flash動畫的數(shù)字水印算法,能夠在swf動畫中嵌入和提取數(shù)字水印圖像;能夠保證嵌入水印的flash動畫正常播放,也就是實(shí)現(xiàn)了水印的不可感知性;能夠正確地識別提取出是水印圖像。
但是對該flash動畫的數(shù)字水印算法可以進(jìn)一步改進(jìn)和優(yōu)化:
1)此算法雖然能夠順利嵌入和提取水印圖像,但是嵌入水印的flash動畫文件和原始flash動畫文件的大小發(fā)生了較大的變化,如圖2所示,其中video.swf是嵌入水印后的swf文件,videobk.swf是原始swf文件。
2)此算法中嵌入水印的flash動畫,通過一些flash的反編譯軟件,較容易發(fā)現(xiàn)其中的隱藏的水印信息。
在進(jìn)一步的研究中可以實(shí)現(xiàn)更隱蔽、魯棒性更強(qiáng)的數(shù)字水印算法,比如嵌入水印到Flash文件的未知標(biāo)簽中,或者嵌入水印到Flash動畫的某些非敏感屬性中,可起到更好的隱藏隱藏水印的目的。
參考文獻(xiàn):
[1] 鄧華,司瑾,王光宇.基于Flash動畫的數(shù)字水印設(shè)計方法[J].電腦編程技巧與維護(hù),2011,(14):99-100.
[2] 張曉彥,張曉明.基于Flash動畫的信息隱藏算法[J].計算機(jī)工程.2010,36(1):181-183.
[3] 丁光華,劉嘉勇,孫克強(qiáng).基于XML的信息隱藏方法[J].計算機(jī)工程,2008,34(6):155-157.
[4] 劉磊.Flash動畫的內(nèi)容分析與特征提取研究[D].濟(jì)南:山東師范大學(xué),2008:10-15.
[5] 孫圣和,陸哲明,牛夏牧,等.數(shù)字水印技術(shù)及應(yīng)用[M].北京:科學(xué)出版社.2004:205-207.endprint
摘要:該文基于Matlab實(shí)現(xiàn)了一個flash動畫的數(shù)字水印算法,將水印圖像嵌入到flash動畫文件的結(jié)束標(biāo)簽之后,并能夠成功從已嵌入水印的flash動畫中提取水印圖像。實(shí)驗(yàn)結(jié)果表明,該算法不會影響到flash動畫的播放效果,提取出的水印圖像也能夠正確識別。
關(guān)鍵詞:flash;swf;數(shù)字水印
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)16-3891-02
Abstract: In this paper, a digital watermark algorithm is implemented by Matlab. The watermark image is embedded behind the end tag of flash animation file, then the water image can be extracted from watermark-embedded flash animation. The experiment results show that the watermark-embedded flash file can be played clearly and the extracted watermark can be recognized correctly
Key words:flash; swf; digital watermark
1 概述
近年來,隨著多媒體技術(shù)和計算機(jī)網(wǎng)絡(luò)的迅速普及,包括圖像、音頻、視頻、動畫等多媒體信息的傳播日益頻繁和廣泛。但同時,也為盜版者非法占有和傳播數(shù)字化制品提供了方便;為了對數(shù)字化制品提供版權(quán)保護(hù)和完整性驗(yàn)證,數(shù)字水印技術(shù)是常用的一種有效手段。
數(shù)字水印技術(shù)利用數(shù)字化制品(即載體)中的冗余信息,使用某些算法把水印信息嵌入到數(shù)字化制品中。水印信息可以是無意義的信息,但一般情況下會選擇能夠標(biāo)識數(shù)字化制品版權(quán)的有意義的信息,比如作者身份信息。嵌入水印到數(shù)字化制品中,既不會影響數(shù)字化制品的正常使用,且當(dāng)出現(xiàn)版權(quán)爭議或需要驗(yàn)證數(shù)字化制品完整性時,數(shù)字水印能夠達(dá)到有效判斷數(shù)字化制品的版權(quán)歸屬或者判斷數(shù)字化制品內(nèi)容是否被非法篡改等目的。嵌入水印的數(shù)字化載體可以是任何一種多媒體類型,目前文本水印、圖像水印和音頻視頻水印研究較受關(guān)注,而對flash動畫的水印研究相對較少。該文對以flash動畫為載體嵌入和提取水印的算法進(jìn)行了研究和實(shí)現(xiàn)。
Micromedia Flash是一套專門用來設(shè)計影音動畫的軟件,該軟件的動畫源文件的擴(kuò)展名是.fla,此類文件還可再次被編輯;而.swf則是由源文件進(jìn)行動畫發(fā)布后的flash動畫的擴(kuò)展名,此類文件發(fā)布后在flash工具中則不能再被編輯。這兩種是flash的主要文件格式,由于flash swf動畫被廣泛應(yīng)用于網(wǎng)頁動畫、MTV、課件制作等,因此本文研究的是對swf動畫嵌入和提取水印的方法。
2 swf文件結(jié)構(gòu)
Swf文件由三部分組成:文件頭、文件主體和文件結(jié)束標(biāo)簽,這三部分順序組成swf文件。
2.1文件頭
Swf文件頭定義了Swf動畫文件的一些基本結(jié)構(gòu)。第一個字段是三個字節(jié)的文件標(biāo)識,用以表明該動畫文件是否經(jīng)過了壓縮;緊接著的字段用一個字節(jié)標(biāo)識swf動畫文件的版本;文件長度字段用來標(biāo)識該動畫文件的大?。晃枧_大小字段定義了動畫顯示區(qū)域的大??;幀率和幀數(shù)字段分別表明了動畫的播放速度和動畫文件的幀數(shù)量。
2.2文件主體和結(jié)束標(biāo)簽
文件主體使用一系列的二進(jìn)制標(biāo)簽來定義動畫文件中的各種對象及其屬性,結(jié)束標(biāo)簽一般是swf文件的最后一個標(biāo)簽,所有標(biāo)簽采用通用格式。使用標(biāo)簽定義文件可以在解析的時候跳過不能識別的標(biāo)簽,從而保持文件良好的兼容性,同時也利于文件的擴(kuò)展。
Swf文件中的標(biāo)簽分為定義型標(biāo)簽和控制型標(biāo)簽。定義型標(biāo)簽定義了swf動畫的內(nèi)容,如各種形狀、文字、位圖、聲音等;控制型標(biāo)簽用來對角色實(shí)例進(jìn)行渲染,并且控制影片的流程。Swf文件主體部分的每一個標(biāo)簽都是獨(dú)立的,任何一個標(biāo)簽都與其它標(biāo)簽沒有數(shù)據(jù)上的關(guān)聯(lián),任何一個標(biāo)簽都可以被插入、移除和修改。
3 基于flash動畫的數(shù)字水印設(shè)計與實(shí)現(xiàn)
對swf動畫文件的數(shù)字水印方案,通常都是通過分析swf動畫文件的文件格式,然后在swf文件的某些位置或結(jié)構(gòu)中嵌入數(shù)字水印。比如,在文件主體標(biāo)簽中嵌入水印、在文件的幀中嵌入水印、替換動畫文件的物件屬性來嵌入水印、在結(jié)束標(biāo)簽后添加額外的標(biāo)簽來嵌入水印等。不管用哪種方法,不管選擇將水印信息嵌入到動畫文件的什么位置,前提都是嵌入水印后不能影響動畫文件的正常播放。
3.1數(shù)字水印算法流程
本文的數(shù)字水印方案選擇在flash動畫的結(jié)束標(biāo)簽之后嵌入水印信息。由于播放器能夠忽略結(jié)束標(biāo)簽之后的內(nèi)容,所以在Flash動畫中要嵌入的某些隱秘信息,可以放在結(jié)束標(biāo)簽之后,而這不會影響Flash動畫的正常播放。
嵌入流程:
1)置亂水印圖像;
2)按標(biāo)簽順序讀入swf文件;
3)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)2;
4)是結(jié)束標(biāo)簽,則將置亂水印添加至結(jié)束標(biāo)簽之后。
提取流程(提取流程是嵌入流程的逆過程):
1)按標(biāo)簽順序讀入嵌入水印的swf文件;
2)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)1;
3)如是結(jié)束標(biāo)簽,則提取結(jié)束標(biāo)簽后的數(shù)據(jù);
4)恢復(fù)被置亂的數(shù)據(jù)提取水印。
3.2運(yùn)行結(jié)果
本文選擇基于Matlab來實(shí)現(xiàn)數(shù)字水印算法,首先使用Matlab GUI設(shè)計界面,再對相應(yīng)控件編寫callback方法。運(yùn)行過程中,我們選擇了一個swf動畫文件作為載體,而水印圖像則是一幅96*96的灰度圖像。運(yùn)行結(jié)果如圖1所示:
從圖1可以看出,嵌入水印后的flash可以正常播放,并且不影響播放質(zhì)量;提取出的水印清晰,可以正確識別。
4 結(jié)論
本文用Matlab GUI實(shí)現(xiàn)了一個有效的基于flash動畫的數(shù)字水印算法,能夠在swf動畫中嵌入和提取數(shù)字水印圖像;能夠保證嵌入水印的flash動畫正常播放,也就是實(shí)現(xiàn)了水印的不可感知性;能夠正確地識別提取出是水印圖像。
但是對該flash動畫的數(shù)字水印算法可以進(jìn)一步改進(jìn)和優(yōu)化:
1)此算法雖然能夠順利嵌入和提取水印圖像,但是嵌入水印的flash動畫文件和原始flash動畫文件的大小發(fā)生了較大的變化,如圖2所示,其中video.swf是嵌入水印后的swf文件,videobk.swf是原始swf文件。
2)此算法中嵌入水印的flash動畫,通過一些flash的反編譯軟件,較容易發(fā)現(xiàn)其中的隱藏的水印信息。
在進(jìn)一步的研究中可以實(shí)現(xiàn)更隱蔽、魯棒性更強(qiáng)的數(shù)字水印算法,比如嵌入水印到Flash文件的未知標(biāo)簽中,或者嵌入水印到Flash動畫的某些非敏感屬性中,可起到更好的隱藏隱藏水印的目的。
參考文獻(xiàn):
[1] 鄧華,司瑾,王光宇.基于Flash動畫的數(shù)字水印設(shè)計方法[J].電腦編程技巧與維護(hù),2011,(14):99-100.
[2] 張曉彥,張曉明.基于Flash動畫的信息隱藏算法[J].計算機(jī)工程.2010,36(1):181-183.
[3] 丁光華,劉嘉勇,孫克強(qiáng).基于XML的信息隱藏方法[J].計算機(jī)工程,2008,34(6):155-157.
[4] 劉磊.Flash動畫的內(nèi)容分析與特征提取研究[D].濟(jì)南:山東師范大學(xué),2008:10-15.
[5] 孫圣和,陸哲明,牛夏牧,等.數(shù)字水印技術(shù)及應(yīng)用[M].北京:科學(xué)出版社.2004:205-207.endprint
摘要:該文基于Matlab實(shí)現(xiàn)了一個flash動畫的數(shù)字水印算法,將水印圖像嵌入到flash動畫文件的結(jié)束標(biāo)簽之后,并能夠成功從已嵌入水印的flash動畫中提取水印圖像。實(shí)驗(yàn)結(jié)果表明,該算法不會影響到flash動畫的播放效果,提取出的水印圖像也能夠正確識別。
關(guān)鍵詞:flash;swf;數(shù)字水印
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)16-3891-02
Abstract: In this paper, a digital watermark algorithm is implemented by Matlab. The watermark image is embedded behind the end tag of flash animation file, then the water image can be extracted from watermark-embedded flash animation. The experiment results show that the watermark-embedded flash file can be played clearly and the extracted watermark can be recognized correctly
Key words:flash; swf; digital watermark
1 概述
近年來,隨著多媒體技術(shù)和計算機(jī)網(wǎng)絡(luò)的迅速普及,包括圖像、音頻、視頻、動畫等多媒體信息的傳播日益頻繁和廣泛。但同時,也為盜版者非法占有和傳播數(shù)字化制品提供了方便;為了對數(shù)字化制品提供版權(quán)保護(hù)和完整性驗(yàn)證,數(shù)字水印技術(shù)是常用的一種有效手段。
數(shù)字水印技術(shù)利用數(shù)字化制品(即載體)中的冗余信息,使用某些算法把水印信息嵌入到數(shù)字化制品中。水印信息可以是無意義的信息,但一般情況下會選擇能夠標(biāo)識數(shù)字化制品版權(quán)的有意義的信息,比如作者身份信息。嵌入水印到數(shù)字化制品中,既不會影響數(shù)字化制品的正常使用,且當(dāng)出現(xiàn)版權(quán)爭議或需要驗(yàn)證數(shù)字化制品完整性時,數(shù)字水印能夠達(dá)到有效判斷數(shù)字化制品的版權(quán)歸屬或者判斷數(shù)字化制品內(nèi)容是否被非法篡改等目的。嵌入水印的數(shù)字化載體可以是任何一種多媒體類型,目前文本水印、圖像水印和音頻視頻水印研究較受關(guān)注,而對flash動畫的水印研究相對較少。該文對以flash動畫為載體嵌入和提取水印的算法進(jìn)行了研究和實(shí)現(xiàn)。
Micromedia Flash是一套專門用來設(shè)計影音動畫的軟件,該軟件的動畫源文件的擴(kuò)展名是.fla,此類文件還可再次被編輯;而.swf則是由源文件進(jìn)行動畫發(fā)布后的flash動畫的擴(kuò)展名,此類文件發(fā)布后在flash工具中則不能再被編輯。這兩種是flash的主要文件格式,由于flash swf動畫被廣泛應(yīng)用于網(wǎng)頁動畫、MTV、課件制作等,因此本文研究的是對swf動畫嵌入和提取水印的方法。
2 swf文件結(jié)構(gòu)
Swf文件由三部分組成:文件頭、文件主體和文件結(jié)束標(biāo)簽,這三部分順序組成swf文件。
2.1文件頭
Swf文件頭定義了Swf動畫文件的一些基本結(jié)構(gòu)。第一個字段是三個字節(jié)的文件標(biāo)識,用以表明該動畫文件是否經(jīng)過了壓縮;緊接著的字段用一個字節(jié)標(biāo)識swf動畫文件的版本;文件長度字段用來標(biāo)識該動畫文件的大?。晃枧_大小字段定義了動畫顯示區(qū)域的大?。粠屎蛶瑪?shù)字段分別表明了動畫的播放速度和動畫文件的幀數(shù)量。
2.2文件主體和結(jié)束標(biāo)簽
文件主體使用一系列的二進(jìn)制標(biāo)簽來定義動畫文件中的各種對象及其屬性,結(jié)束標(biāo)簽一般是swf文件的最后一個標(biāo)簽,所有標(biāo)簽采用通用格式。使用標(biāo)簽定義文件可以在解析的時候跳過不能識別的標(biāo)簽,從而保持文件良好的兼容性,同時也利于文件的擴(kuò)展。
Swf文件中的標(biāo)簽分為定義型標(biāo)簽和控制型標(biāo)簽。定義型標(biāo)簽定義了swf動畫的內(nèi)容,如各種形狀、文字、位圖、聲音等;控制型標(biāo)簽用來對角色實(shí)例進(jìn)行渲染,并且控制影片的流程。Swf文件主體部分的每一個標(biāo)簽都是獨(dú)立的,任何一個標(biāo)簽都與其它標(biāo)簽沒有數(shù)據(jù)上的關(guān)聯(lián),任何一個標(biāo)簽都可以被插入、移除和修改。
3 基于flash動畫的數(shù)字水印設(shè)計與實(shí)現(xiàn)
對swf動畫文件的數(shù)字水印方案,通常都是通過分析swf動畫文件的文件格式,然后在swf文件的某些位置或結(jié)構(gòu)中嵌入數(shù)字水印。比如,在文件主體標(biāo)簽中嵌入水印、在文件的幀中嵌入水印、替換動畫文件的物件屬性來嵌入水印、在結(jié)束標(biāo)簽后添加額外的標(biāo)簽來嵌入水印等。不管用哪種方法,不管選擇將水印信息嵌入到動畫文件的什么位置,前提都是嵌入水印后不能影響動畫文件的正常播放。
3.1數(shù)字水印算法流程
本文的數(shù)字水印方案選擇在flash動畫的結(jié)束標(biāo)簽之后嵌入水印信息。由于播放器能夠忽略結(jié)束標(biāo)簽之后的內(nèi)容,所以在Flash動畫中要嵌入的某些隱秘信息,可以放在結(jié)束標(biāo)簽之后,而這不會影響Flash動畫的正常播放。
嵌入流程:
1)置亂水印圖像;
2)按標(biāo)簽順序讀入swf文件;
3)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)2;
4)是結(jié)束標(biāo)簽,則將置亂水印添加至結(jié)束標(biāo)簽之后。
提取流程(提取流程是嵌入流程的逆過程):
1)按標(biāo)簽順序讀入嵌入水印的swf文件;
2)判斷是否結(jié)束標(biāo)簽,如不是結(jié)束標(biāo)簽則轉(zhuǎn)1;
3)如是結(jié)束標(biāo)簽,則提取結(jié)束標(biāo)簽后的數(shù)據(jù);
4)恢復(fù)被置亂的數(shù)據(jù)提取水印。
3.2運(yùn)行結(jié)果
本文選擇基于Matlab來實(shí)現(xiàn)數(shù)字水印算法,首先使用Matlab GUI設(shè)計界面,再對相應(yīng)控件編寫callback方法。運(yùn)行過程中,我們選擇了一個swf動畫文件作為載體,而水印圖像則是一幅96*96的灰度圖像。運(yùn)行結(jié)果如圖1所示:
從圖1可以看出,嵌入水印后的flash可以正常播放,并且不影響播放質(zhì)量;提取出的水印清晰,可以正確識別。
4 結(jié)論
本文用Matlab GUI實(shí)現(xiàn)了一個有效的基于flash動畫的數(shù)字水印算法,能夠在swf動畫中嵌入和提取數(shù)字水印圖像;能夠保證嵌入水印的flash動畫正常播放,也就是實(shí)現(xiàn)了水印的不可感知性;能夠正確地識別提取出是水印圖像。
但是對該flash動畫的數(shù)字水印算法可以進(jìn)一步改進(jìn)和優(yōu)化:
1)此算法雖然能夠順利嵌入和提取水印圖像,但是嵌入水印的flash動畫文件和原始flash動畫文件的大小發(fā)生了較大的變化,如圖2所示,其中video.swf是嵌入水印后的swf文件,videobk.swf是原始swf文件。
2)此算法中嵌入水印的flash動畫,通過一些flash的反編譯軟件,較容易發(fā)現(xiàn)其中的隱藏的水印信息。
在進(jìn)一步的研究中可以實(shí)現(xiàn)更隱蔽、魯棒性更強(qiáng)的數(shù)字水印算法,比如嵌入水印到Flash文件的未知標(biāo)簽中,或者嵌入水印到Flash動畫的某些非敏感屬性中,可起到更好的隱藏隱藏水印的目的。
參考文獻(xiàn):
[1] 鄧華,司瑾,王光宇.基于Flash動畫的數(shù)字水印設(shè)計方法[J].電腦編程技巧與維護(hù),2011,(14):99-100.
[2] 張曉彥,張曉明.基于Flash動畫的信息隱藏算法[J].計算機(jī)工程.2010,36(1):181-183.
[3] 丁光華,劉嘉勇,孫克強(qiáng).基于XML的信息隱藏方法[J].計算機(jī)工程,2008,34(6):155-157.
[4] 劉磊.Flash動畫的內(nèi)容分析與特征提取研究[D].濟(jì)南:山東師范大學(xué),2008:10-15.
[5] 孫圣和,陸哲明,牛夏牧,等.數(shù)字水印技術(shù)及應(yīng)用[M].北京:科學(xué)出版社.2004:205-207.endprint