李繼光
摘要:視頻隱寫是以視頻為載體的隱寫技術(shù),根據(jù)嵌入時載體視頻是否經(jīng)過壓縮編碼將視頻隱寫分為基于原始視頻的隱寫和基于壓縮視頻的隱寫兩個大類。該文介紹了幾種常見的基于壓縮視頻的隱寫算法,給出了一般原理模型,對AC系數(shù)、DC系數(shù)和運動矢量等編碼單元上隱寫算法進(jìn)行了簡單介紹,提出了提高隱藏率的基本思想。
關(guān)鍵詞:信息隱藏;隱寫術(shù);壓縮視頻
中圖分類號:TP393 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)09-2037-02
隨著高速寬帶網(wǎng)絡(luò)的飛速發(fā)展,音視頻正在取代傳統(tǒng)的文字和圖片成為網(wǎng)絡(luò)信息資源的主流,為以數(shù)字視頻為載體進(jìn)行隱蔽通信提供了基本的平臺?;谝曨l的隱寫[1]由于其更大的隱藏量,逐漸成為更為實用的隱蔽通信方法,在軍事和商業(yè)秘密信息的傳輸上有著很好的應(yīng)用前景。傳統(tǒng)基于密碼的安全通信與基于隱寫的隱蔽通信相比,前者是通過加密算法將信息進(jìn)行加擾置亂形成第三方無法理解的密文,而后者則是利用載體信息中人類感官不易察覺的冗余空間來傳遞秘密信息,使需要保護(hù)的信息由看不懂變?yōu)榭床灰?。簡言兩者的不同,密碼技術(shù)隱藏了信息的內(nèi)容,隱寫技術(shù)不但隱藏了信息的內(nèi)容,更重要的是它隱藏了信息的存在。
1 視頻隱寫的原理
視頻隱寫主要利用了數(shù)字視頻中存在的冗余數(shù)據(jù)來嵌入秘密信息,根據(jù)作為載體的視頻是否經(jīng)過壓縮,可以分為原始視頻隱寫和壓縮視頻隱寫兩大類。前者將視頻幀看作靜態(tài)圖像, 各個視頻幀的原始YUV數(shù)據(jù)按時間順序依次存放,這種視頻常用于專業(yè)的視頻編輯; 現(xiàn)實生活里如VCD、DVD中的視頻是就以MPEG1和MPEG2標(biāo)準(zhǔn)壓縮的視頻流,在互聯(lián)網(wǎng)中大量的音視頻資源多是以壓縮流媒體形式存在。壓縮視頻隱寫技術(shù)通過修改壓縮視頻的變換域系數(shù)、運動矢量或VLC( variable-length code)碼字進(jìn)行數(shù)據(jù)嵌入[2]。
2 基于壓縮視頻的隱寫算法
基于壓縮視頻的隱寫算法是指以特定壓縮格式的視頻為載體的隱寫算法?;趬嚎s視頻隱寫方法的原理如圖1,算法先進(jìn)行部分解碼找到待隱寫的編碼單元,然后使用嵌入算法將需要隱藏的信息嵌入編碼單元,最后將這些隱藏秘密信息的編碼單元重新編碼形成新的包含隱秘信息的壓縮視頻流。此種算法在接收端并不需要對所有信息進(jìn)行解碼,而只需要對包含隱藏信息的單元進(jìn)行部分解碼即可。由于僅僅需要部分解碼,基于壓縮視頻的信息隱藏往往具有較高的算法效率。另外,針對壓縮視頻隱寫還有一個特殊的要求是不變碼長[3],這主要是因為壓縮視頻(如MPEG2)在壓縮時各個編碼單元最終采用可變長編碼(VLC),在隱藏前后碼長往往發(fā)生變換,如果這種變換過大,將會引起播放時音頻視頻的不同步、甚至發(fā)生緩沖溢出。不變碼長正是與視頻壓縮編碼標(biāo)準(zhǔn)相結(jié)合的具體體現(xiàn)。
壓縮視頻流一般具有DC系數(shù)、AC系數(shù)、運動矢量等多種編碼單元,每一種編碼單元都可以作為獨立的隱寫點進(jìn)行隱寫,因此每一種編碼單元的隱寫都是一類獨立的隱寫方法。
2.1 AC系數(shù)上的隱寫方法
Langelaar[4]提出了一種基于AC系數(shù)的隱寫技術(shù),它給出了兩種算法,基于帶標(biāo)簽的VLC隱藏法將MPEG2視頻碼流中AC系數(shù)對應(yīng)的VLC碼分為帶標(biāo)簽和不帶標(biāo)簽的兩個集合,一個帶標(biāo)簽的VLC是指滿足如下條件的VLC:該VLC必須至少有一個run相同level差1而編碼長度相同的其他VLC。隱寫算法首先通過VLC解碼器解析MPEG2視頻流找到每一個屬于帶標(biāo)簽的VLC碼,若秘密信息比特和此VLC碼對應(yīng)level的LSB相同,則保持VLC碼不變,若秘密信息比特和LSB不同,就用另一個Level的LSB等于該比特的VLC碼代替原VLC碼,這樣隱寫后視頻碼流中每一個屬于帶標(biāo)簽的VLC都隱藏了一比特數(shù)據(jù),而不屬于帶標(biāo)簽的VLC沒有隱藏數(shù)據(jù)。該算法可以保持隱寫前后MPEG文件長度不變,但隱藏率取決于視頻碼流中出現(xiàn)的帶標(biāo)簽的VLC碼的個數(shù)。
2.2 DC系數(shù)上的隱寫方法
由于DCT系數(shù)的直流系數(shù)DC是整個象素塊的平均值且采用了差分編碼,基于DC系數(shù)的隱寫算法往往需要采用特殊的處理來避免直接修改DC系數(shù)可能帶來的視覺影響或造成積累誤差。一種基于DC系數(shù)的隱寫法的思路為:通過修改DC系數(shù)在MPEG2壓縮視頻中嵌入水印。由于DC系數(shù)采用差分編碼,修改一個塊的DC的差分值(dc_dct_differential)會對下一塊產(chǎn)生積累誤差,所以為了避免對DC的差分值修改而造成的圖像降質(zhì),采用了下列補償措施:若比特替換dc_dct_differential 的LSB由0變?yōu)?(無論該數(shù)值是正還是負(fù)都是其值加1),在接下來的塊中選擇一個合適的,使其dc_dct_differential在二進(jìn)制下減1;若比特替換dc_dct_differential 的LSB由1變?yōu)?(無論該數(shù)值是正還是負(fù)都是其值減1),在接下來的塊中選擇一個合適的,使其dc_dct_differentia在二進(jìn)制下加1。 所謂合適的就是加1或減1時不會改變dc_dct_differential 的MSB。
2.1運動矢量上的隱寫方法
基于運動矢量的視頻隱寫算法通常綜合利用運動矢量的相位、幅值、方向、水平分量和垂直分量等元素作為載體來嵌入相關(guān)信息。Jordan[5]等首次提出了在運動矢量上嵌入信息的的方法,該方案在每幀幀間圖像(P圖、B圖)僅中選取一個宏塊的運動矢量作為嵌入對象。但此法的信息嵌入量較低。在此基礎(chǔ)上,Zhang[6]提出在幅度大于閾值的運動矢量中嵌入信息,并由運動矢量的相位來具體決定是修改水平分量還是垂直分量。文獻(xiàn)[23]將信息嵌入到值較大的運動矢量的殘差(Motion Residual)中。文獻(xiàn)[24]根據(jù)運動矢量的水平分量和垂直分量的組合關(guān)系來建立特征值,根據(jù)特征值自適應(yīng)的嵌入信息,提高了秘密信息的魯棒性。文獻(xiàn)[7]對Zhang的方法進(jìn)行了改進(jìn),對嵌入信息前后的運動矢量進(jìn)行差值補償,同時通過自適應(yīng)的選取閾值來提高算法的性能。
3 提高隱藏率的基本思想
隱藏率是隱蔽通信性能的重要指標(biāo),反映了秘密信息的傳輸效率。從上述中可以看出,現(xiàn)有的壓縮域隱寫算法往往只利用了一種編碼單元進(jìn)行隱寫,就是針對一種編碼單元這些算法實際上也只利用了其中的一部分系數(shù)。因此為了提高隱藏率,可以從兩個方面進(jìn)行入手:1)同時利用多種編碼單元進(jìn)行隱寫;2)進(jìn)一步提高特定編碼單元的系數(shù)利用率。
從此也可以看出,基于壓縮視頻的隱寫往往具有更大的靈活性,它的隱藏率可以根據(jù)實際需求來進(jìn)行調(diào)整,這在一定程度上也增加了隱寫檢測的難度。
4 結(jié)束語
從上述可以看出,基于原始視頻的隱寫可在空間域、二維變換域、三維變換域等多個角度進(jìn)行嵌入,可供使用的理論和工具較多,在學(xué)術(shù)領(lǐng)域的研究十分活躍?;趬嚎s視頻的隱寫算法往往受到相應(yīng)壓縮編碼技術(shù)的限制,可供使用的方法相對比較局限,但該類算法實時性較高,隱藏率可以根據(jù)應(yīng)用需求進(jìn)行調(diào)整,如采用一種或多種編碼單元的隱寫法達(dá)到要求的隱藏率。
隨著網(wǎng)絡(luò)技術(shù)的發(fā)展和流媒體應(yīng)用的不斷增多,網(wǎng)絡(luò)上視頻的傳輸將越來越常見,基于視頻的隱寫技術(shù)逐漸成為新的研究熱點。雖然目前視頻隱寫取得了一定的研究成果,但仍有大量的問題亟待解決,如在流媒體中秘密信息提取時的同步問題、隱寫算法的抗檢測性、同時抵抗多種幾何攻擊等等。
參考文獻(xiàn):
[1] 施昌林.視頻隱寫分析算法研究[D].上海交通大學(xué),2009.
[2] 梁惠,郭立, 基于視覺感知模型的大容量視頻隱寫算法[J].中國科學(xué)院研究生院學(xué)報,2010(1).
[3] 張江.視頻水印技術(shù)綜述[J].計算機應(yīng)用,2005,25(4):850-852.
[4] Langelaar G, Lagendijk R, Biemond J. Real-time labeling of MPEG-2 compressed video, Journal of Visual Communication and Image Representation,1998,9(4):256-270.
[5] Jordan F, Martin K, Touradj E. Proposal of a watermarking technique for hiding/retrieving data in compressed and decompressed video[R].Technical Report M2281,ISO/IEC Document,JTCI/SC29/WG11,Stockholm:MPEG24 Meeting,1997.
[6] Zhang J , Li J G, Zhang L. Video watermarking technique in motion vector[A]. In: XIV Brazilian Symposium on Computer Graphics and Image Processing,2001:179-182.
[7] 張桂東,茅耀斌,王執(zhí)銓.一種基于運動矢量的視頻水印方案[J].中山大學(xué)學(xué)報,2004(9):58-61.