摘要:提出一種基于位平面分解技術(shù)的JPEG壓縮水印算法。該算法首先對圖像進(jìn)行置亂變換;然后采用位平面分解技術(shù)對灰度水印圖像進(jìn)行預(yù)處理操作,將該灰度水印圖像轉(zhuǎn)換成二值信息流;最后把水印嵌入載體圖像中。實驗表明,該算法對于不同類型的攻擊有較強(qiáng)的魯棒性。
關(guān)鍵詞:數(shù)字水??; 位平面分解; 置亂變換; 靜止圖像壓縮; 魯棒性
中圖分類號:TP309.2文獻(xiàn)標(biāo)志碼:A
文章編號:1001-3695(2007)11-0121-03
0引言
計算機(jī)和網(wǎng)絡(luò)技術(shù)的發(fā)展使人們對各種多媒體信息尤其是圖像信息的需求不斷增大。圖像信息由于其自身龐大的信息量,給其后期處理﹑傳輸帶來了時間和空間上的困難。為了節(jié)約網(wǎng)絡(luò)帶寬和存儲資源,圖像進(jìn)行壓縮成為必然。然而圖像壓縮技術(shù)的迅速發(fā)展和推廣應(yīng)用,給圖像數(shù)字水印技術(shù)帶來了很大的問題。眾所周知,數(shù)字水印技術(shù)是版權(quán)保護(hù)的一種重要技術(shù),數(shù)字水印圖像是將水印信息通過一定的原則嵌入到載體圖像中得到的。嵌入水印后的載體圖像(即水印圖像)在進(jìn)行公開發(fā)表或在網(wǎng)絡(luò)中進(jìn)行傳播時,必須經(jīng)過壓縮處理。壓縮后的圖像要丟失或修改部分的圖像信息,這些修改或丟棄操作就很可能將嵌入圖像中的水印信息進(jìn)行較大的修改或者完全丟棄,造成網(wǎng)絡(luò)接收方只能提取到修改后的水印信息甚至無法提取到水印信息。由此可見,數(shù)字水印和數(shù)據(jù)壓縮是一對矛盾體。壓縮域的數(shù)字水印技術(shù)直接將水印嵌入到壓縮位流中,能夠很好地解決數(shù)字壓縮與數(shù)據(jù)水印之間的矛盾。
近幾年來,壓縮域數(shù)字水印技術(shù)的研究得到了一定的關(guān)注并取得了一些進(jìn)展。文獻(xiàn)[1]給出了壓縮域量化方法的嵌入框架,并利用Watsen視覺模型分析了量化嵌入的容量,但并沒有給出實際的嵌入方法。文獻(xiàn)[2]給出了一種迭代嵌入方案。該方案在每次迭代時均包含基本嵌入操作和檢測操作,以確保嵌入的水印信息能夠在未受到攻擊的情況下提取出來。雖然該方案抗JPEG量化操作的能力得到了保證,但嵌入過程是一個不斷迭代嘗試的復(fù)雜過程,所以沒有得到廣泛的推廣應(yīng)用。B. Tao等人[3]提出了一種自適應(yīng)的DCT域水印技術(shù)。它將水印嵌入到DCT系數(shù)的AC系數(shù)中,根據(jù)默認(rèn)的JPEG格式壓縮量化表,選擇合適的系數(shù),使量化的單位最小,同時利用視覺模型決定各塊的噪聲敏感指數(shù)自適應(yīng)地嵌入水印信息。該方法考慮到人類視覺模型,在保證抵御壓縮性能的同時也能很好地保證水印圖像的視覺效果。但是該算法對于視覺模型的考慮不夠深入,沒有很好地考慮到各塊自身的視覺掩蔽特性和敏感性。伍宏濤等人[4]提出了一種抗壓縮與圖像合并的水印算法。該算法將DCT系數(shù)集合分成M類,每類有N個元素,在每一類中嵌入1 bit的水印信息。以上方法的嵌入過程和提取過程均比較簡單,嵌入過程大多集中在量化后的系數(shù)之中。這種在量化壓縮后進(jìn)行嵌入的水印圖像在傳輸和存儲過程中再進(jìn)行量化壓縮時性能相對較差。
文獻(xiàn)[5]提出了WDCM算法(watermarking by DC coefficient modification)。該算法假設(shè)壓縮質(zhì)量因子已知,通過修改紋理豐富的塊的DC直流分量系數(shù)來嵌入水印。算法的明顯優(yōu)點是不需要重編碼操作,能夠?qū)崟r實現(xiàn)。實驗證明該算法對已知質(zhì)量因子的壓縮攻擊具有很好的魯棒性。劉化波等人[6]提出了雙位嵌入法。該方法首先將水印圖像和載體圖像劃分成相同個數(shù)的塊;然后將水印信息按照一定的原則序列化,并將每一位的信息變?yōu)閮晌唬ㄔ畔⒑推湎喾磾?shù))之后嵌入到載體圖像的紋理復(fù)雜﹑亮度較弱的區(qū)域塊中。雙位嵌入法與一次重復(fù)嵌入法嵌入的信息量相等,但效果卻比一次重復(fù)嵌入的方法要好。因為其提取水印時,能較容易準(zhǔn)確地判斷出水印信息。李霞等人[7]提出對水印圖像信息進(jìn)行預(yù)處理,即將水印圖像DCT系數(shù)進(jìn)行量化得到的矩陣分割為直流分量矩陣和交流分量矩陣兩個部分,并將直流分量矩陣的值按比例進(jìn)行縮??;然后將縮小后的直流分量矩陣信息與交流分量矩陣按照一定的規(guī)則重新組合成新的矩陣信息;再將該矩陣信息嵌入到載體圖像量化后的系數(shù)中。該方法在量化后嵌入數(shù)據(jù),可以將數(shù)據(jù)隱藏在低﹑中頻段,不宜被發(fā)現(xiàn)及被濾波器濾掉。同時,對水印信息進(jìn)行分解和再合并,也增強(qiáng)了水印的隱蔽性。
本文在分析比較現(xiàn)有的JPEG壓縮算法模型和水印算法基本模型的基礎(chǔ)上,提出一種基于位平面分解技術(shù)的JPEG水印算法。該算法將水印技術(shù)與JPEG壓縮技術(shù)結(jié)合起來,針對不同類型的水印信息,首先將不同類型的水印信息進(jìn)行處理轉(zhuǎn)換成統(tǒng)一的二值水印信息序列流;然后在JPEG壓縮的過程中嵌入水印信息,從而使算法能夠適用于各種形式的水印信息。
1位平面分解技術(shù)
對于圖像的二值化分解,文獻(xiàn)[8]提出了信號的閾值分解方法。根據(jù)圖像信號的閾值分解,一幅L灰度圖像可以分解為L-1幅二值圖像。這樣,對于常用的256灰度圖像,將被分解為255幅二值圖像。若將這些二值圖像作為水印信號均嵌入到原始圖像中,會使含水印圖像的質(zhì)量大大下降,甚至有可能破壞原始圖像。下面介紹另一種圖像二值化分解方法,即圖像信號的位平面分解方法。
一幅圖像經(jīng)過位平面分解得到的各個位平面在原始圖像中的權(quán)重是不同的,高位的位平面所包含的信息要比低位的位平面所包含的信息重要得多。因此,在實際嵌入過程中,應(yīng)根據(jù)水印各位平面權(quán)重的不同,盡量考慮那些高權(quán)重位平面的魯棒性。如果將這8個二值平面均嵌入圖像,數(shù)據(jù)信息量較大,勢必造成加入水印后圖像質(zhì)量的下降。實驗表明,高4位平面基本包含了視覺可見的有意義的信息。本文把高4位平面作為水印信息嵌入到數(shù)字圖像中。
2改進(jìn)后的水印算法
2.1水印算法模型
將水印圖像進(jìn)行位平面分解之后,一般256灰度圖像就變成8個二值平面。本文選用的是高4位的平面。由于各個平面又相當(dāng)于一個二值圖像,這就與基本算法模型的初值一致。其他處理基本可以保持算法模型的方法不變,需要改進(jìn)的地方是糾錯編碼部分。糾錯編碼是以增加冗余信息的代價來增強(qiáng)水印的魯棒性。在二值圖像時,水印信息量較少,一般均采用(7,4)漢明碼。但是,將水印圖像進(jìn)行位平面分析后,一般灰度圖像的數(shù)據(jù)信息量明顯增加,如果繼續(xù)采用(7,4)漢明碼,勢必給水印信息增加過多的冗余數(shù)據(jù),水印信息量太大,就會影響到載體圖像的視覺效果,即水印的不可見性降低。為了避免這種情況發(fā)生,筆者在糾錯編碼中采用(31,26)漢明碼,即在一個圖像塊上增加10 bit的冗余信息來實現(xiàn)糾錯編碼。
針對一般灰度圖像進(jìn)行改進(jìn)后的水印算法模型的嵌入方法如圖2所示。
提取過程是嵌入模型的逆過程,只需在原基本模型的基礎(chǔ)上進(jìn)行簡單修改,即將得到的水印信息進(jìn)行位平面重組就可以得到水印灰度圖。具體提取模型如圖3所示。
2.2塊分類模型
上述算法模型的核心技術(shù)是塊分類技術(shù)。塊分類標(biāo)準(zhǔn)不同,對圖像嵌入水印的強(qiáng)度就不同,進(jìn)而水印圖像的視覺效果也有所不同。
現(xiàn)有的塊分類模型已經(jīng)考慮到圖像的各種特性,但是對圖像塊的分類還不夠詳細(xì),只是進(jìn)行了比較粗略的劃分。本文提出的改進(jìn)的塊分類模型對圖像塊劃分進(jìn)行了更加詳盡的處理,全面考慮到了圖像的亮度特性﹑紋理特性和邊緣特性。具體的劃分方法如下:
a)第一類照度較低,紋理簡單,HVS對其像素點值的改變較為敏感,其疊加的水印分量強(qiáng)度應(yīng)小些;
b)第二類照度較低,紋理復(fù)雜且不包含邊緣,HVS對其像素點值的改變敏感性弱,疊加的水印分量的強(qiáng)度應(yīng)最大;c)第四類照度較高,紋理復(fù)雜,且是邊緣,其疊加的水印分量的強(qiáng)度較小;
d)第五類照度較高,紋理復(fù)雜,也不是邊緣,而且HVS對其中像素點值的改變敏感性最弱,疊加的水印分量的強(qiáng)度應(yīng)最大;
e)第六類亮度適中,紋理簡單,疊加的水印的強(qiáng)度應(yīng)最??;
f)其余為第三類。
分類的方法是利用灰度平均值、DCT系數(shù)的方差以及邊緣檢測點作為參數(shù),對圖像塊進(jìn)行分類。具體步驟如下:
a)對圖像進(jìn)行邊緣檢測,識別邊緣點的位置;然后標(biāo)志出邊緣塊。如果DCT塊包含有足夠多的邊緣點,則認(rèn)為是邊緣塊。本文采用拉普拉斯算子檢測邊緣。
圖4(b)是嵌入水印之后的圖像。從視覺效果看,圖像基本上沒有變化,即該算法滿足水印的不可見性要求。(d)是未受到攻擊時提取出來的圖像。從圖中可以看出,提取出的水印有了較大程度的改變。這是由于嵌入的圖像舍棄了部分圖像信息,然而提取出的圖像從視覺上仍然可以很清楚地辨認(rèn)出來,在位平面分解時舍棄了對視覺不太敏感的低頻信息,保留了視覺敏感性較高的高頻信息。顯然(b)完全可以起到版權(quán)保護(hù)的作用。從進(jìn)行噪聲、濾波、JPEG壓縮后提取出來的水印圖像(圖4 (e)(f)(g))可以得知,該算法對于這些常見攻擊均有較強(qiáng)的魯棒性,提取出的水印圖像可以很容易地辨認(rèn)出來,已達(dá)到版權(quán)保護(hù)的目的。這些說明本文提出的算法是有效的。
參考文獻(xiàn):
[1]WONG P H W, AU Q C.A capacity estimation technique for JPEG image watermarking[J]. IEEE Transactions on Circuits and Systems for Video Technology,2003,13(8):746-752.
[2]WONG P H W, AU Q C.A blind watermarking technique in JPEG compressed domain[J]. IEEE International Conference on Image Processing,2002 (3):497-500.
[3]TAO B,DICKISON B.Adaptive watermarking in the DCT domain[C]//Proc of IEEE International Conference Acoustics,Speech,and Signal Processing.1997:2985-2988.
[4]伍宏濤,胡云,鈕心忻,等.抗JPEG壓縮和圖像合并的水印算法[J]. 電子與信息學(xué)報,2005,27(6):914-918.
[5]WONG P H W, OSCAR C,WONG J W C.Data hiding and watermarking in JPEG compresseddomain by DC coefficient modification[C]//Proc of SPIE.2000:237-244.
[6]劉化波,李秀艷,謝海燕,等.基于圖像壓縮標(biāo)準(zhǔn)JPEG和人類視覺系統(tǒng)的數(shù)字水印算法[J].大連海事大學(xué)學(xué)報,2005,31(1):99-101.
[7]李霞,姚璐.一種基于JPEG壓縮的信息隱藏方法[J]. 計算機(jī)工程與應(yīng)用,2003,29:164-166.
[8]LIN Yin.Stack filter design:a structural approach[J]. IEEE Tran ̄sactions on Signal Processing,1995,43(4):831-840.
“本文中所涉及到的圖表、注解、公式等內(nèi)容請以PDF格式閱讀原文”