【摘要】本文提出了一種基于AVI視頻的信息隱藏系統(tǒng),該系統(tǒng)的最主要的作用是將數(shù)據(jù)隱藏到AVI文件中并且將AVI視頻中所隱藏的信息準(zhǔn)確無誤地提取出來。上述功能可以通過采用整型DCT和改進(jìn)型的LSB算法將數(shù)據(jù)隱藏到視頻的關(guān)鍵幀中實(shí)現(xiàn),并且該AVI視頻并不會(huì)有明顯的變化。與此同時(shí),我們采用了VFW來將AVI視頻解析成幀,并將關(guān)鍵幀和非關(guān)鍵幀合成為AVI視頻。在提取階段,只需直接從壓縮的視頻流中直接提取所隱藏的信息而不需要隱藏前的原始視頻。實(shí)驗(yàn)結(jié)果表明,宿主圖像的視覺質(zhì)量沒有明顯的改變,而且該系統(tǒng)能夠很好地抵御有損壓縮。
【關(guān)鍵詞】數(shù)據(jù)隱藏;AVI;離散余旋變換(DCT);量化;中頻系數(shù)
1.背景介紹
信息隱藏,伴隨著網(wǎng)絡(luò)通信與信號(hào)處理技術(shù)的發(fā)展,同時(shí)作為近年來信息安全領(lǐng)域一個(gè)新的研究熱點(diǎn),各項(xiàng)技術(shù)都得到了很好的發(fā)展。信息隱藏即是以數(shù)字媒體信號(hào)(圖像、音頻、視頻、文本等)為載體,嵌入不可察覺的隱蔽數(shù)據(jù)。而現(xiàn)階段,信息隱藏技術(shù)的研究重點(diǎn)主要集中于靜止圖像的隱藏分析,而針對(duì)于視頻信息隱藏的技術(shù)研究的發(fā)展相對(duì)緩慢。而數(shù)字視頻作為將來網(wǎng)絡(luò)信息資源的重要組成元素,基于視頻的信息隱藏技術(shù)與信息隱藏分析技術(shù)將成為研究的趨向。
任何信息隱藏系統(tǒng)都需要保證其安全性,魯棒性和一定的隱藏的信息容量。所有的需求特征都是相互影響的,本文提出的方法在各個(gè)需求特征指標(biāo)維持較高標(biāo)準(zhǔn)的前提下力圖使得影響降低為最小。
信息隱藏不同于數(shù)字加密,但是引用其相關(guān)基本特征[1]?;谝曨l的信息隱藏需求如下:
a)不可感知性—原視頻與隱藏信息后的視頻感知一致;b)魯棒性—嵌入視頻中的數(shù)據(jù)在處理過程之后仍維持精確;c)安全性—安全性是關(guān)鍵;d)高容量性—嵌入視頻中的有效負(fù)載最大化。
在本文中,我們提出了一種基于整型DCT變換的AVI視頻信息隱藏方案,主要實(shí)現(xiàn)了用戶隱秘?cái)?shù)據(jù)可靠傳輸。
2.已有工作
AVI視頻文件是由一連串被稱為幀的圖像組成,所以基于靜止圖像信息隱藏技術(shù)仍可用于基于視頻的信息隱藏。
2.1 LSB(Least-Significant bit)替換
LSB是最廣泛使用的隱藏?cái)?shù)據(jù)技術(shù)。即使這種方法還有一定的缺陷,但由于其容易實(shí)現(xiàn),仍然比較流行。將隱秘?cái)?shù)據(jù)隱藏到一張圖片內(nèi),首先需要一個(gè)合適的原始載體。LSB替換會(huì)用到圖像每個(gè)像素點(diǎn),所以該圖片應(yīng)該為無損的壓縮格式,否則隱藏的信息將會(huì)在壓縮的過程中遺失。
經(jīng)過大量的實(shí)驗(yàn),我們發(fā)現(xiàn)當(dāng)使用較大的原始圖像隱藏信息時(shí),圖像中只有大約一半的位需要改變。因?yàn)橹粚?duì)最低位進(jìn)行變換,因此圖片的變化非常小,人眼無法辨別,所以隱秘?cái)?shù)據(jù)能夠很好的隱藏入圖片中。
2.2 DCT變換
使用和修改DCT系數(shù)是一個(gè)用來在圖片中隱藏?cái)?shù)據(jù)的更復(fù)雜方法。而對(duì)于不同的編碼方式,其DCT的計(jì)算方法也不盡相同。例如,在H.263中其使用的是傳統(tǒng)的DCT變換,其公式如下:
但其缺陷為:a)浮點(diǎn)運(yùn)算以及除法運(yùn)算多,效率低;b)反變換會(huì)產(chǎn)生誤匹配,隱藏的數(shù)據(jù)會(huì)丟失。
而對(duì)于H.264/AVC編碼來說,其采用的是最新的整型DCT變換,在計(jì)算效率和處理誤匹配方面更好[2]。其主要原理如下:
整型DCT變化:
量化:
反量化:
整型反DCT變化:
說明:a)一般是放在量化里,避免了浮點(diǎn)運(yùn)算;b)整型DCT量化過程仍有損失,但損失很小。
在本方案中,我們采用了H.264編碼算法,同時(shí)利用整型DCT變換及其量化過程實(shí)現(xiàn)了信息的隱藏。
3.解決方案
AVI視頻由文件頭、數(shù)據(jù)塊和索引塊組成。其中數(shù)據(jù)塊包含實(shí)際數(shù)據(jù)流,即圖像和聲音序列數(shù)據(jù)。索引塊包括數(shù)據(jù)塊列表和它們?cè)谖募械奈恢?。文件頭包括文件的通用信息,定義的數(shù)據(jù)格式,所用的壓縮算法等參數(shù)[3]。因此,AVI視頻就是一串連續(xù)的圖像和音頻流。我們采用了VFW解析AVI視頻,同時(shí)將其頭部信息和音頻流保存下來。
3.1 隱藏算法
要將數(shù)據(jù)隱藏到AVI視頻中,我們需要使用一個(gè)數(shù)據(jù)結(jié)構(gòu)來記錄隱藏的數(shù)據(jù)信息,以便之后能夠正確提取。
#define MAGIC_NUMBER 0x6428 //判斷視頻中是否隱藏了信息
#define MAGIC_NUMBER_SIZE 2 // magic number的大小
#define PARASITE_NAME_SIZE 150 // 隱藏文件名
#define PARASITE_FILE_SIZE_SIZE 4 // 隱藏文件的大小
#define CSUM_SIZE 1 // 校驗(yàn)和
在隱藏算法開始時(shí),首先需要獲取頭部信息、關(guān)鍵幀、非關(guān)鍵幀以及音頻流。然后在將要隱藏的頭部信息設(shè)置好之后,得到該文件的二進(jìn)制流。
隱藏算法具體步驟如下:
for 1:總關(guān)鍵幀數(shù)
Step 1:將該幀進(jìn)行4x4像素點(diǎn)分塊,總共可以分為塊count=(x/4)*(y/4)
Step 2:從上到下,從左到右對(duì)分塊進(jìn)行編號(hào),記為1……count
for 1:count
Step 2.1:對(duì)該塊進(jìn)行整型DCT變換,得到該塊的整型DCT系數(shù)
Step 2.2:對(duì)DCT系數(shù)進(jìn)行量化
Step 2.3:用隱藏文件二進(jìn)制流對(duì)量化的中頻系數(shù)進(jìn)行LSB替換
step 2.4:對(duì)替換后的系數(shù)進(jìn)行逆量化,得到DCT系數(shù)
step 2.5:進(jìn)行逆DCT計(jì)算,得到該塊的像素值
end for
end for
最后將關(guān)鍵幀、非關(guān)鍵幀和音頻流合成為AVI視頻。
3.2 提取算法
信息提取過程就是隱藏的逆過程,但稍有不同。要從AVI視頻中提取隱藏的信息,首先需要確認(rèn)該AVI視頻中是否存在Magic Number,然后獲取隱藏的文件名,文件大小并對(duì)校驗(yàn)和進(jìn)行檢查。在得到上述數(shù)據(jù)后,開始信息提取,具體步驟如下:
for 1:總隱藏信息關(guān)鍵幀數(shù)(通過文件大小判斷信息是否提取完整)
Step 1:將該幀進(jìn)行4x4像素點(diǎn)分塊,總共可以分為塊count=(x/4)*(y/4)
Step 2:從上到下,從左到右對(duì)分塊進(jìn)行編號(hào),記為1……count
for 1:count
Step 2.1:對(duì)該塊進(jìn)行整型DCT變換,得到該塊的整型DCT系數(shù)
Step 2.2:對(duì)DCT系數(shù)進(jìn)行量化
Step 2.3:根據(jù)量化的中頻系數(shù)得到隱藏文件的二進(jìn)制流
end for
end for
4.實(shí)驗(yàn)結(jié)果及分析
本系統(tǒng)工作平臺(tái)為Visual C++6.0和GDI Plus,使用的編碼器為x264vfw.2273kMod.x86。
表4-1列出了碼率不同的視頻嵌入數(shù)據(jù)前后的對(duì)比情況。總體而言,視頻在嵌入數(shù)據(jù)前后其大小基本保持不變,而其消耗的時(shí)間也隨著處理的視頻的大小和幀數(shù)的增加而增加。
5.結(jié)束語
本文提出了一種基于整型DCT變換的AVI視頻信息隱藏方案,改進(jìn)了信息隱藏的算法,通過修改視頻中關(guān)鍵幀的DCT中頻系數(shù)的量化值嵌入比特信息。宿主圖像在嵌入數(shù)據(jù)后圖像質(zhì)量沒有明顯地下降,且其在H.264等有損壓縮編碼過程中具有較強(qiáng)的魯棒性,實(shí)現(xiàn)了隱秘?cái)?shù)據(jù)的可靠傳輸。
參考文獻(xiàn)
[1]Arup Kumar Bhaumik,Minkyu Choi,Rosslin J.Robles,and Maricel O.Balitanas(2009)“Data Hiding in Video”[J].International Journal of Database Theory and Application Vol.2(2):27-45.
[2]倪偉,郭寶龍,陳龍?zhí)?,馮宗哲.H.264變換編碼和量化算法的研究[J].計(jì)算機(jī)工程與應(yīng)用,2004(3):33-36.
[3]徐殿武.AVI文件格式及其應(yīng)用研究[J].現(xiàn)代電子技術(shù),2008(2).
作者簡(jiǎn)介:
王小天(1991—),男,四川巴中人,大學(xué)本科,現(xiàn)就讀于四川大學(xué)軟件學(xué)院軟件工程專業(yè)。
王亦寧(1990—),男,山西太原人,大學(xué)本科,現(xiàn)就讀于四川大學(xué)軟件學(xué)院軟件工程專業(yè)。