代遵超,房冬麗
(中國電子科技集團公司第三十研究所,四川 成都 610041)
技術的發展使得數字產品的傳播更加容易。加密算法可以保證信息傳輸的安全性,但是不能保證作品不被非法篡改。因此,Trikel在1993年提出了數字水印來解決這一問題。近年來,離散余弦變換(Discrete Cosine Transformation,DCT)、離 散 小波變換(Discrete Wavelet Transformation,DWT)等是圖像水印的研究熱點。
常用的算法如遺傳算法(Genetic Algorithm,GA)[1-2]或神經網絡(Back Propagation,BP)[3-4]算法能提高數字圖像水印的魯棒性。文獻[2]采用簡單遺傳算法對參數進行優化。本文提出了一種基于二值圖像四叉樹(Pattern QuadTree,PQT)和掃描模式的水印處理算法,并提出了一種改進的遺傳算法(GA)來優化嵌入強度。
小波變換[5](DWT)是信號分析的常用方法。本文將圖像分割成四個子帶:低頻LL,水平HL、垂直LH和對角線HH,選擇將LL2子帶嵌入水印。圖1給出了DWT過程。

圖1 兩級DWT分解過程圖
奇異值分解(Singular Value Decomposition,SVD)[5-7]通常用于分析矩陣。在SVD分解中,C是圖像矩陣,通過SVD變換,得到三個矩陣U,Σ,V。給出了以下公式:

掃描(SCAN)是二維圖像常用的加密、壓縮方法,通常采用幾種掃描路徑組合達到加擾目的。本文采用四倍掃描(VN,VT,P,S)。S是起始符號,P是生成規則,VT是終端符號集,VN是非終端符號集。Li是i層中的掃描集。Ri j是本文采用的24種掃描模式之一。掃描本質上是通過像素打亂來重排圖像像素,文獻[6]和文獻[7]已證實這是一種無損傷的加擾算法。算法具體過程如下:

式(2)表示有3個層的PQT,L1,L2和L3。式(3)、式(4)、式(5)分別表示L1,L2,L3的掃描模式。
24種掃描模式如圖2所示。

圖2 掃描模式
PQT圖如圖3所示。水印加擾效果如圖4、圖5所示。

圖3 PQT加擾

圖4 水印

圖5 PQT掃描模式加擾
水印嵌入過程如圖6所示。

圖6 水印嵌入過程
嵌入水印的過程描述如下。
步驟1:用PQT和掃描模式加密水印W,得到W′。
步驟2:將BCH編碼算法應用于W′得到W′。
步驟3:作兩級DWT并獲得LL2子帶。
步驟4:將LL2劃分為8×8塊,并在每個塊上應用SVD,分解成U,Σ,V。
步驟5:如果W′(i)=1,更改矩陣U滿足|U(i,j)|= |U(p,q)|+λ,否則,更改矩陣U滿足|U(p,q)|=|U(i,j)|+λ,λ為嵌入強度。具體如下。
(1)如果W′(i)=1,則U(i,j)→U′(i,j),更改如下元素,m范圍是1~8。

ΔLL(i,k)代表了矩陣的損傷。根據峰值信噪比(Peak Signal to Noise Ratio,PSNR),定義適應度,并將其應用到遺傳算法中,得到最優λ值。

(2)如果W′(i)=0,則U(p,q)→U′(p,q),更改如下元素,m范圍是1~8。

步驟6:重復步驟5,直到W′完全嵌入為止。
水印提取的步驟如下。
步驟1:在嵌入水印圖像上應用二級DWT并獲取LL2子帶。
步驟2:將LL2子帶劃分為8×8子塊,并在每個塊上應用SVD,從而得到三個矩陣U,Σ,V。
步驟3:如果|U(i,j)|-|U(p,q)|>0,則水印對應的比特位是1。否則,水印對應的比特位數為0。
步驟4:重復步驟3,直到W′完全提取為止。
步驟5:W′由BCH解碼,得到W′。
步驟6:通過PQT和掃描模式解擾,得到水印W。
為了檢測所提出算法的魯棒性以及不可預見性,本文對水印化后的圖像使用了多種攻擊方法,包括高斯噪聲、椒鹽噪聲、旋轉及裁剪攻擊。測試結果如表2所示。

表2 測試結果
歸一化相關系數NC和圖像的峰值信噪比PSNR是衡量圖像保真性能的重要指標。本文算法與其他文獻的NC和PSNR的對比結果如表4和表5所示。NC值的對比表明,本文算法能抵抗多種攻擊方法,圖像相似度較為平穩。本文算法PSNR值優于其他文獻,表明圖像的失真最小。

表4 NC對比

表5 PSNR對比
本文提出了一種圖像水印算法,該算法采用PQT、掃描模式、SVD分解和BCH編碼,采用遺傳算法獲得最佳的嵌入強度λ。測試結果表明,該算法能夠抵抗多種攻擊,在水印受損的情況下,依然可以得到可識別的水印。