摘 要:提出一種新的盲灰度級水印算法。它充分利用離散小波變換的多分辨率特性和離散余弦變換的能量壓縮能力,將預處理后的灰度水印圖像隱藏在原始圖像DCT系數量化值的奇偶性中,在水印的提取過程中不需要原始圖像的參與。實驗結果表明,該算法對圖像剪切、JPEG有損壓縮、中值濾波等攻擊有很強的魯棒性,對旋轉、噪聲等攻擊也具備了一定的抵抗能力。
關鍵詞:數字水印;預處理;DCT;DWT
中圖法分類號:TP309.2文獻標識碼:A
文章編號:1001—3695(2007)02—0194—02
1 引言
數字水印技術的基本思想是在數字圖像音頻和視頻等產品中嵌入秘密信息,以保護數字產品的版權或增強嵌入信息的隱蔽性。水印技術主要可以分為空間域方法和變換域方法兩類。空間域嵌入水印算法相對簡單,實用性強,文獻[1, 2]是空間域嵌入技術的經典算法。在變換域方法中,應用較多的集中于對DCT[3, 4],DWT[5, 6]等變換的利用,它們比空間域水印有更強的魯棒性。圖像二維DCT變換后, 變換系數幾乎不相關, 經過反變換重構圖像, 信道誤差和量化誤差將像隨機噪聲一樣分散到塊中的各個像素中去, 不會造成誤差累積; 并且變換能將數據塊中的能量壓縮到為數不多的部分低頻系數中,但是DCT變換沒有利用圖像的空間頻率特性,而這種特性正好與人眼的某些視覺特性一致。另外,采用分塊DCT會使重構圖像出現馬賽克現象,而DWT不會出現這種現象。DWT本身具有良好的空間頻率特性和多分辨率表示的優點,但數字圖像經過小波變換后的各個子帶圖像中相鄰小波系數之間存在著很強的相關性。
作為水印信息,不管采用何種形式,所構成水印的序列應該具有不可預測的隨機性。因此,高斯噪聲、隨機分布的{0,l},{-1,l}序列均可作為水印[7]。為了讓水印攜帶更多的版權信息,有些系統是以圖像等有意義的信號作為水印信息,目前使用較多的是二值水印圖像[4],但從信息量和識別性能來看,灰度級水印[8]更具有優勢。
2 灰度水印預處理
以大小為32×32的八位灰度圖像為例,說明水印圖像預處理的過程:
(1)對該圖像進行仿射變換置亂n次,從而消除水印圖像像素空間的相關性。這里的n可以視為加密水印圖像的密鑰。
(2) 對置亂后的圖像進行一級小波分解,再分別對其逼近系數A和細節系數H按列讀取變為一維序列,根據需要嵌入的數據量確定LA,LH,然后進行量化,量化公式[6]如下:
(3) 分別把A′i和H′i的絕對值轉換為二進制,位數分別為LA和LH。這里,把符號位序列作為水印的密鑰。
(4) 按行讀取所有A′i的二進制序列,對生成的一維二進制序列進行(7,4)漢明糾錯編碼,然后按列讀取,生成一維二進制序列Wa。
(3) 分別把A′i和H′i的絕對值轉換為二進制,位數分別為LA和LH。這里,把符號位序列作為水印的密鑰。
(4) 按行讀取所有A′i的二進制序列,對生成的一維二進制序列進行(7,4)漢明糾錯編碼,然后按列讀取,生成一維二進制序列Wa。
(5) 按列讀取所有H′i的二進制序列, 生成一維二進制序列Wh。
(6) 將Wa和Wh串聯起來。
(7) 而后將數據0轉換成-1,用PN序列對其進行調制,即得到要嵌入的二進制數據流W。這里的PN 序列即為水印的密鑰。
對水印序列W進行相應的逆操作即可唯一恢復灰度水印圖像。對于仿射變換[9]可以不進行逆變換,而是根據仿射變換的周期T,再把圖像置亂T-n次,即提取出解密后的水印信息。
由上可知,本處理方法首先在空間域對水印圖像進行仿射變換置亂處理,以提高水印的抗攻擊性;對置亂后的水印圖像進行小波分解及量化處理,可以根據實際需要增縮水印的嵌入量,以便在水印的不可見性和魯棒性之間折中選取;對感知重要的逼近系數位分解后,又進行了漢明糾錯編碼,增加了感知重要水印信息位的冗余,進一步提高水印的魯棒性。為了實現保密性,本方法中多處用密鑰來控制。
3 水印的嵌入和提取
以512×512真彩色圖Lena 作為載體圖像I,32×32 的八位灰度水印圖像W為例,說明水印的嵌入與提取過程。
(1)采用本文第2節的水印預處理方法,對水印圖像進行處理,LA和LH分別取8和6,得到的比特總數為16×16×(8+6)+3×16×16×6,即8 192bits。
(2)將原來RGB模式下的彩色宿主圖像轉換到相應的YCbCr 模式空間,分解為一個亮度分量Y和兩個色差分量Cb與Cr,僅在亮度分量Y上嵌入水印信號。對亮度分量Y進行一級離散小波分解,分解為cA和cH,cV,cD的逼近系數與細節系數。由于僅在cA中嵌入水印,因此,只對cA進行8×8分塊DCT 變換,每塊嵌入八位數據。
對嵌入水印后的逼近系數圖像進行IDWT,得到含水印的亮度分量Y,將Y以及兩個色差分量Cr和Cb重新組合并轉換到RGB空間,得到含水印的彩色圖像。
提取時,只要提取方已知JPEG缺省量化矩陣、密鑰及其嵌入水印的位置,即可以實現盲提取。
讀入含水印的圖像,分解到色差空間YCbCr,對亮度分量Y進行一級離散小波分解,從逼近系數中提取水印。
(4)當對所有嵌入水印的子塊處理完后,將得到的一維水印序列進行水印預處理的逆過程,即可得到嵌入的灰度水印圖像。
4 實驗結果
本文選擇Lena(512×512)真彩色圖像作為宿主圖像來嵌入水印,水印是大小為32×32的八位灰度圖。對水印進行預處理時,可以根據實際需要增縮水印的數據量,指定不同的LA和LH分別對灰度水印進行位分解。對于較小水印容量的圖像,指定較小的LA和LH可以有效地縮短水印的長度,使水印的不易察覺性更好。為了便于比較,本實驗中LA取8,LH取6,水印序列的長度為8 192bits,與文獻[ 8]相同。引用含水印圖像和原宿主圖像的峰值信噪比(PSNR)來定量地描述算法的不易察覺性,PSNR越大,不易察覺性越高。引用提取出的水印信息與嵌入水印信息之間的歸一化互相關系數(NC)來客觀定量地描述算法的魯棒性,NC越大,魯棒性越強,如表1所示。
從表1中可以看出,由于該算法對原始灰度水印圖進行了預處理以及對宿主圖像作了DWT與DCT相結合的變換,使水印在抗剪切、中值濾波、旋轉及噪聲等不同攻擊下的魯棒性和不易察覺性較文獻[8]中的方法有了很大的改善。
圖1(a)—圖1(c)為含水印的Lena圖,在JPEG有損壓縮不同品質因數(QF)下提取出來的水印圖像。可以清楚地看出,該算法對JPEG壓縮也有較強的魯棒性。
5 結論
水印信息隱藏前,結合仿射變換、小波分解、位平面分解、糾錯編碼等技術對灰度水印圖像進行了預處理,提高了算法的安全性和魯棒性。該算法還充分利用離散小波變換的多分辨率特性和離散余弦變換的能量壓縮能力,把預處理后的灰度水印圖像隱藏在原始圖像DCT系數量化值的奇偶性中,在水印的提取過程中不需要原始圖像的參與。如果宿主圖像和水印圖像都進行多級小波分解,將感知重要的水印序列嵌入到感知重要的宿主圖像系數中,效果也許會更理想。
本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文。