劉 娜
(西安產(chǎn)品質(zhì)量監(jiān)督檢驗(yàn)院輕工室,陜西 西安 710065)
隨著信息技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)的飛速發(fā)展以及數(shù)字圖像的廣泛應(yīng)用,以數(shù)字圖像為載體的信息通信和交流變得越來越便捷,但隨之而來的盜版和侵權(quán)行為也愈發(fā)猖獗[1]。特別是針對醫(yī)學(xué)、遙感、軍事等領(lǐng)域的應(yīng)用,在進(jìn)行版權(quán)保護(hù)的同時(shí),希望最大限度地保證圖像內(nèi)容的真實(shí)性與完整性。針對這一問題,可逆水印技術(shù)作為一種有效的解決手段,一經(jīng)提出就吸引了來自工業(yè)界和學(xué)術(shù)界研究者的濃厚興趣。
可逆水印是利用圖像中人眼不易察覺的冗余信息,將數(shù)字簽名、商標(biāo)等信息作為水印嵌入到圖像中,并在水印提取之后無損地恢復(fù)原始圖像內(nèi)容。Honsinger等[2]設(shè)計(jì)了第一個(gè)可逆水印算法,采用模256運(yùn)算將Hash值嵌入到圖像中。Fridrich等[3]通過壓縮DCT系數(shù)的位平面來實(shí)現(xiàn)水印嵌入。文獻(xiàn)[4]另辟蹊徑,提出了一種基于差值擴(kuò)展的水印方法以追求更高的嵌入容量。在小波域,文獻(xiàn)[5]提出了一種基于整數(shù)小波變換的擴(kuò)頻可逆水印技術(shù);隨后通過在小波系數(shù)直方圖中不斷形成間隙,文獻(xiàn)[6]提出了一種基于整數(shù)小波直方圖間隙的水印技術(shù)。雖然上述方法取得了較好的性能,但水印嵌入位置與嵌入強(qiáng)度的無控制性等問題制約著這些算法性能的有效提高。
基于上述分析,文獻(xiàn)[8]提出了一種基于JND的自適應(yīng)可逆水印算法。該算法首先利用直方圖調(diào)整技術(shù)將原始圖像的灰度值調(diào)整到有效的范圍內(nèi),然后對圖像進(jìn)行整數(shù)小波變換,計(jì)算小波系數(shù)的恰可失真門限,最后通過JND選擇嵌入?yún)^(qū)域并修改小波系數(shù)來實(shí)現(xiàn)水印的嵌入與提取。實(shí)驗(yàn)結(jié)果表明,該算法在保證水印最大嵌入容量的情況下顯著提高了含水印圖像的視覺質(zhì)量。
近年來,人類視覺系統(tǒng)的感知特性已經(jīng)被廣泛應(yīng)用到水印算法的設(shè)計(jì)中,以折衷容量與不可見性之間的需求,提高水印算法的性能[7]。采用 Lewis和Knowles[8]提出的JND模型,通過衡量人眼在頻率、亮度、紋理等方面的敏感性來自適應(yīng)地選擇水印嵌入位置與嵌入強(qiáng)度。根據(jù)該模型,首先需要對圖像進(jìn)行4層小波分解,得到不同分解級別不同方向的子帶。若令 Il,θ表示第 l∈{0,1,2,3}層分解級別中 θ∈{LL,HL,LH,HH}方向的子帶,則θ子帶中處于(k,m)位置的小波系數(shù)的恰可失真門限定義為
這里,β是歸一化常數(shù);Θ(·)表示第l層分解級別中θ方向的子帶中人眼的頻率敏感性,具體為
Λ(·)表示人眼在第l層分解級別中(k,m)位置的亮度敏感性,它由第3分解級別中的低頻子帶決定,定義為
Ξ(·)表示第l層分解級別中(k,m)位置的紋理敏感性,定義為
這里var表示方差。
文中算法將上述JND模型與擴(kuò)頻嵌入[5]相結(jié)合,通過自適應(yīng)地選擇水印嵌入位置與嵌入強(qiáng)度,顯著提高了文獻(xiàn)[5]方法的性能。
隨著信息安全需求的不斷增長,元胞自動(dòng)機(jī)變換(CAT)已被用于數(shù)據(jù)加密、圖像壓縮、數(shù)字水印等眾多領(lǐng)域[9-10]。給定圖像 fij,CAT 變換表示為[9]
其中,Aijkl表示二維基函數(shù);ckl表示變換系數(shù);G表示元胞空間大小。對于Aijkl而言,它可以通過兩種方法產(chǎn)生:一是由一個(gè)含G×G個(gè)元胞的二維元胞自動(dòng)機(jī)(CA)演化產(chǎn)生,二是由一維基的Canonical Product計(jì)算得到。表1給出了CA的典型建模參數(shù),不同的建模參數(shù)會(huì)構(gòu)造出不同的CA,從而帶來由CAT變換系數(shù)所表示的圖像信息和特征的多樣性[9]。
表1 元胞自動(dòng)機(jī)建模參數(shù)
水印嵌入過程如圖1所示,其主要步驟可描述為:
圖1 水印嵌入過程
步驟1 根據(jù)原始圖像的像素分布,利用直方圖調(diào)整技術(shù)[5]將像素的灰度值調(diào)整到有效的范圍內(nèi),如圖2所示,其中定義為調(diào)整尺度,與水印的嵌入強(qiáng)度有關(guān)。這里需要記錄調(diào)整部分的像素在原始圖像中的位置,將其作為輔助信息提供給接收方,以便在水印提取之后利用記錄的位置信息恢復(fù)像素的原始灰度值。如文獻(xiàn)[5]所述,通過這樣的方式,可以有效解決水印嵌入過程中像素的溢出問題,從而保證水印提取之后能無失真地恢復(fù)原始圖像。
步驟2 將調(diào)整后的圖像進(jìn)行變換,得到其低頻和高頻子帶,記為LL,HL,LH,HH。在可逆水印的算法設(shè)計(jì)中,為了避免因修改后的小波系數(shù)在小波逆變換后發(fā)生像素溢出問題,本文中采用整數(shù)小波變換。同時(shí),考慮到人眼對高頻信息不敏感的特性,減少因水印嵌入造成的圖像失真,將水印信息嵌入在3個(gè)高頻子帶 HL,LH,HH 中。
步驟3 為增強(qiáng)算法的安全性,加密技術(shù)在數(shù)字水印領(lǐng)域取得了廣泛的應(yīng)用,常用于對水印進(jìn)行加密[9]。本文算法中利用CAT對二值水印圖像進(jìn)行加密,起到安全保護(hù)的作用。為嵌入方便,文中將加密后的新水印圖像調(diào)節(jié)成一維向量的形式,記為W=[w1,w2,…]。
圖2 直方圖調(diào)整
步驟4 利用JND模型分別計(jì)算3個(gè)高頻子帶HL,LH,HH中小波系數(shù)的恰可失真門限,在水印嵌入時(shí)通過自適應(yīng)地控制水印的嵌入?yún)^(qū)域與強(qiáng)度來保證水印的不可見性。
步驟5 結(jié)合JND模型,利用改進(jìn)的擴(kuò)頻技術(shù)將水印信息嵌入到原始圖像中,嵌入規(guī)則定義為
其中,c是原始高頻子帶的小波系數(shù);c′是嵌入水印后新高頻子帶的小波系數(shù),JND是該小波系數(shù)的恰可失真門限,s是嵌入序列,由水印信息和填充信息構(gòu)成:即當(dāng)<JND時(shí),s對應(yīng)的是水印信息,定義為
這里,w表示一個(gè)水印位。通過這樣的方式,可以構(gòu)造嵌入序列,從而有效避免記錄嵌入位置的問題,從而大大簡化了嵌入過程。更為重要的是,與文獻(xiàn)[5]的嵌入規(guī)則相比,借助JND模型,本文算法在最大嵌入容量的情況下,保證了含水印圖像的視覺質(zhì)量達(dá)到最佳,克服了文獻(xiàn)[5]通過不斷測試參數(shù)的方式尋求容量與視覺質(zhì)量最優(yōu)值的缺陷,實(shí)現(xiàn)自適應(yīng)地在不同圖像中進(jìn)行嵌入的目的。
步驟6 將低頻子帶LL與嵌入水印后的3個(gè)高頻子帶 LL′,LH′,HH′進(jìn)行整數(shù)小波逆變換,得到含水印圖像 I′。
水印提取是水印嵌入的逆過程,如圖3所示,具體步驟如下:
圖3 水印提取及圖像恢復(fù)過程
步驟1 與水印嵌入步驟2相同,對待檢測圖像進(jìn)行整數(shù)小波變換,從中提取3個(gè)高頻子帶,記為:HL′,LH′,HH′。
步驟2 分別從三個(gè)高頻子帶中提取嵌入序列,提取規(guī)則為
當(dāng)水印提取之后,采用嵌入規(guī)則的逆過程恢復(fù)高頻子帶的小波系數(shù),即
步驟3 將得到的水印信息采用CAT進(jìn)行變換,得到恢復(fù)的二值水印圖像。
步驟4 與水印嵌入的步驟6相似,將低頻子帶LL′與提取水印后的 3 個(gè)高頻子帶 HL′,LH′,HH′進(jìn)行整數(shù)小波逆變換,得到近似圖像。
步驟5 利用水印嵌入的步驟1所記錄的位置信息調(diào)整近似圖像的直方圖,得到恢復(fù)的圖像。因?yàn)樗∏度胨惴ㄊ强赡娴?,在沒有攻擊的情況下,恢復(fù)的圖像與原始圖像一樣,從而也就實(shí)現(xiàn)了在版權(quán)保護(hù)的同時(shí),保證了原始圖像信息的真實(shí)性與完整性。
為驗(yàn)證算法的性能,從不可見性和容量兩方面進(jìn)行測試,并與文獻(xiàn)[5]的算法進(jìn)行比較。實(shí)驗(yàn)中選用12幅 大小的標(biāo)準(zhǔn)灰度圖像 Lena、Baboon、Barb、Airplane、House、Jet、Peppers、Sailboat、Tiffany、Elaine 、Crowd和Boat作為測試集,如圖4所示。
圖4 測試圖像
表2給出了圖像Lena、Baboon和Barb不可見性與容量的實(shí)驗(yàn)結(jié)果以及與文獻(xiàn)[5]算法的對比,其中水印的容量用位/像素(bpp)來衡量,而水印圖像與原始圖像的峰值信噪比(PSNR)用來衡量水印的不可見性,定義為
表2 不可見性與容量對比實(shí)驗(yàn)結(jié)果
其中,X×Y是原始圖像和水印圖像的大小;I(i,j)是原始圖像 I中位于(i,j)位置的像素的灰度值;I′(i,j)是水印圖像I′中位于(i,j)位置的像素的灰度值。
從表2可知,在最大嵌入容量下,文中算法的PSNR明顯高于文獻(xiàn)[5]。表3為其余圖像不可見性與容量的測試結(jié)果,從中可以看出,由于文中算法在水印嵌入過程中結(jié)合了人類視覺系統(tǒng)的感知特性,其PSNR普遍高于42 dB,說明了含水印圖像具有良好的視覺質(zhì)量。
表3 不可見性與容量的實(shí)驗(yàn)結(jié)果
結(jié)合JND模型選擇嵌入?yún)^(qū)域并控制嵌入強(qiáng)度,提出了一種基于JND和元胞自動(dòng)機(jī)變換的可逆水印算法。通過直方圖調(diào)整技術(shù)有效解決了水印嵌入過程中的像素溢出問題,使得原始圖像的無失真恢復(fù)成為可能。借助于估計(jì)高頻子帶中小波系數(shù)的恰可失真門限來調(diào)節(jié)嵌入強(qiáng)度,有效增強(qiáng)了水印的不可見性,并利用元胞自動(dòng)機(jī)變換對水印圖像進(jìn)行加密,提高了算法的安全性。仿真結(jié)果表明,文中算法的性能高于同類算法,在最大嵌入容量下顯著提高了含水印圖像的視覺質(zhì)量。
[1]金聰.數(shù)字水印理論與技術(shù)[M].北京:清華大學(xué)出版社,2008.
[2]HONSINGER C,JONES P,RABBANI M,et al.Lossless recovery of an original image containing embedded data:U.S.,6278791[P/OL].(2001-05-06)[2010-09-18]http://www.patentstorm.us/patents.
[3]FRIDRICH J,GOLJAN M,DU R.Invertible authentication[C].Proceedings of the International Society for Optics and Photonics,2001,3971:197 -208.
[4]TIAN Jun.Reversible data embedding using a difference expansion[J].IEEE Transaction on Circuits and Systems for Video Technology,2003,13(8):890 -896.
[5]XUAN Guorong,YANG Chengyun,ZHEN Yizhan,et al.Reversible data hiding based on wavelet spread spectrum[C].Proceedings of IEEE 6th Workshop on Multimedia Signal Processing,2004:211 -214.
[6]姚秋明,宣國榮,楊程云,等.基于整數(shù)小波直方圖間隙的無損數(shù)據(jù) 隱藏[J].計(jì)算機(jī) 應(yīng)用,2007,27(7):1623-1643.
[7]劉紅軍,楊勝,夏太武.一種基于視覺模型的DCT域公開水印算法[J].計(jì)算機(jī)科學(xué),2009,36(7):281 -283.
[8]LEWIS A,KNOWLES G.Image compression using the 2 - D wavelet transform[J].IEEE Transaction on Image Processing,1992,1(2):244 -250.
[9]金軍,舒紅平.一種基于元胞自動(dòng)機(jī)的安全多重圖像水印算法[J].西安電子科技大學(xué)學(xué)報(bào),2010,37(1):174-180.
[10]黃鵬濤,陳賢富.基于元胞自動(dòng)機(jī)模型的新型二值圖像壓縮算法[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2010,19(12):75 -80.