竇永梅
(運(yùn)城學(xué)院 物理與電子工程系,山西 運(yùn)城044000)
隨著Internet及數(shù)字媒體技術(shù)的飛速發(fā)展,數(shù)字化的文本、音頻、圖像、視頻等已應(yīng)用到各行各業(yè),由此帶來(lái)的信息安全與版權(quán)保護(hù)的問(wèn)題就顯得尤為重要[1],數(shù)字水印技術(shù)逐漸得到國(guó)內(nèi)外研究學(xué)者的重視,成為近年來(lái)一個(gè)非常熱門的研究領(lǐng)域[2]。
具體到圖像水印領(lǐng)域,空間域算法如最低有效位法(LSB)算法與patchwork算法等,一般直接修改圖像的像素,簡(jiǎn)便易行,但大部分算法魯棒性不強(qiáng),抗攻擊能力較差[3]。變換域水印嵌入算法通常修改部分變換域系數(shù)來(lái)嵌入水?。夯贒CT變換的方法主要為交換、修改部分中頻系數(shù)等[4],也有部分算法為增強(qiáng)魯棒性,不選中頻系數(shù),而是選取直流系數(shù)實(shí)現(xiàn)水印的嵌入;DWT域因其良好的時(shí)頻特性得到了很多研究者的重視,其最大好處是在不同子帶可通過(guò)實(shí)驗(yàn)選取不同的水印嵌入強(qiáng)度來(lái)提升算法魯棒性[5]。文獻(xiàn)[6]將差分進(jìn)化算法和奇異值分解(SVD)思想相結(jié)合實(shí)現(xiàn)水印嵌入,算法魯棒性較好,但基于SVD的算法最大問(wèn)題是無(wú)法實(shí)現(xiàn)水印的盲提取。文獻(xiàn)[7]結(jié)合DWT與DCT嵌入二值水印雖取得了較好的實(shí)驗(yàn)結(jié)果,但是嵌入的水印容量不夠大。
傳統(tǒng)的基于DCT變換的二值水印嵌入算法通常是在8×8分塊系數(shù)矩陣中選擇一對(duì)中頻系數(shù)實(shí)現(xiàn)1bit水印信息的嵌入,以512×512灰度載體圖像為例,可實(shí)現(xiàn)64×64二值水印信息的嵌入。即使每塊系數(shù)矩陣選擇兩對(duì)共4個(gè)中頻系數(shù)實(shí)現(xiàn)2bit水印信息的嵌入,512×512灰度載體圖像僅能實(shí)現(xiàn)兩個(gè)64×64二值水印信息的嵌入。本文針對(duì)傳統(tǒng)方法水印嵌入容量較小的問(wèn)題,提出的一種新的基于DCT的大容量二值水印嵌入算法,載體圖像分塊DCT變換后每塊選擇4個(gè)中頻系數(shù)進(jìn)行排序,充分利用兩兩之間的3個(gè)差值關(guān)系,若待嵌入水印位為0,通過(guò)改變系數(shù)值使得差值大于或等于閾值A(chǔ),若待嵌入水印位為1,通過(guò)改變系數(shù)值使得差值等于閾值B,即每塊僅選擇4個(gè)系數(shù)值但成功實(shí)現(xiàn)了3bit二值水印信息的嵌入。仍以512×512灰度載體圖像為例計(jì)算,運(yùn)用本文算法可實(shí)現(xiàn)3個(gè)64×64二值水印信息的嵌入,水印嵌入容量大大優(yōu)于傳統(tǒng)方法,安全性得到了極大地提升。
本文采用二值有意義圖像作為待嵌入水印。為增加安全性,嵌入前首先進(jìn)行Arnold置亂,目的是為了消除相鄰像素間的相關(guān)性。二維Arnold置亂變換公式如下[8]:
其中,(i,j)∈ {0,1,2,…M-1 }代表 圖像像素點(diǎn)原先位置 ,(i′j′)代表經(jīng)置亂變換后原先像素點(diǎn)的新位置,M代表圖像矩陣 的 階 數(shù) ,mod M是 為 了 確 保 i′和 j′仍 屬 于 集 合{0,1,2,…M-1 }。
水印具體嵌入步驟如下:
1)對(duì)選取的3個(gè)有意義二值水印圖像分別記作J1“運(yùn)城學(xué)院”、J2“物理與電子工程系”及J3“竇永梅印”,均進(jìn)行5 次 Arnold 置亂加密處理,置亂后記作 J11、J21、J31。
2)將載體圖像進(jìn)行8×8分塊DCT變換,在每一個(gè)子塊中挑出4個(gè)中頻系數(shù),文中用K(a,b)表示(a,b)位置處的系數(shù)值,將 K(4,5)、K(5,4)、K(6,2)、K(3,5)由大到小進(jìn)行排序,將排序后的值依次賦給上述所選取的4個(gè)中頻系數(shù)值,使得賦值后的系數(shù)滿足 K(4,5)>K(5,4)>K(6,2)>K(3,5)。
3)水印J11嵌入規(guī)則如下:
當(dāng)嵌入 “0”時(shí),若 K(4,5)-K(5,4)<A,則;當(dāng)嵌入 “1”時(shí),則K(4,5)=K(5,4)+B。通過(guò)對(duì)水印透明性與算法魯棒性進(jìn)行綜合考慮,式中A和B取值由多次仿真試驗(yàn)的psnr值確定,峰值信噪比psnr用來(lái)衡量水印嵌入前后載體圖像的差別,已有的實(shí)踐證明,當(dāng)psnr大于或等于38 dB時(shí),人眼分辨不出嵌入水印前后圖像的區(qū)別,此處取A=12,B=6,,psnr=38.636 1 dB,符合要求。
4)水印 J2′嵌入規(guī)則如下:
當(dāng)嵌入 “0”時(shí),若 K(5,4)-K(6,2)<A,則 K(5,4)=K(5,4)+A。由于在水印J1′嵌入過(guò)程中K(4,5)和K(5,4)設(shè)定了特定的大小和差值關(guān)系,為使得修改K(5,4)值不影響與K(4,5)的大小關(guān)系,需同步增大K(4,5)值,即K(4,5)=K(4,5)+A。 當(dāng)嵌入 “1”時(shí),則K(6,2)=K(5,4)-B,為了使得K(3,5)的值小于K(6,2)的值,需,K(3,5)=K(5,4)-A其中A和B取值同上。
5)水印J3′嵌入規(guī)則如下:
當(dāng)嵌入 “0”時(shí),若 K(6,2)-K(3,5)<A,則 K(3,5)=K(3,5)-A;當(dāng)嵌入信息為“1”時(shí),則K(3,5)=K(6,2)-B,其中A和B取值同上。
6)對(duì)完成水印信息嵌入的上述各個(gè)8×8子塊均進(jìn)行DCT逆變換得到含水印載體圖像。
水印信息的提取具體步驟如下:
1)對(duì)含水印圖像進(jìn)行8×8分塊DCT變換,選取并依次比較每塊中的 4 個(gè)中頻系數(shù)值 K(4,5)、K(5,4)、K(6,2)、K(3,5)兩兩差值的大小來(lái)確定水印信息。
2)J1′水印提取規(guī)則為:
如果 K(4,5)-K(5,4)≥A-2,則水印位為“0”,否則水印位為“1”。此處之所以差值與A-2而非A比較是考慮到含水印圖像遭受攻擊后可能影響變換域系數(shù)值,為保證水印信息提取的準(zhǔn)確性,閾值設(shè)置了一定的浮動(dòng)范圍。
3)J2′水印提取規(guī)則為:
如果 K(5,4)-K(6,2)≥A-2,則水印位為“0”,否則水印位為“1”。
4)J3′水印提取規(guī)則為:
如果 K(6,2)-K(3,5)≥A-2,則水印位為“0”,否則水印位為“1”。
5)將 J1′、J2′、J3′再分別進(jìn)行 5 次 Arnold 置亂反變換,就能夠得到原始嵌入的二值水印圖像J1、J2、J3。
本文通過(guò)MATLAB軟件進(jìn)行算法可行性的仿真實(shí)驗(yàn),選取 512×512×256 的“PEPPERS”灰度圖像作載體,3 個(gè) 64×64×2二值有意義圖像作為待嵌入水印。采用峰值信噪比psnr來(lái)衡量嵌入水印前后圖像的差別,其值越大越好;采用歸一化互相關(guān)系數(shù)來(lái)衡量提取恢復(fù)出的水印和嵌入水印的相似度,其值越接近于1越好,具體公式為:
其中 M×N 代表圖像的大小,W(x,y)、W′(x,y)代表不含水印和含水印圖像像素位置為(x,y)的灰度值,當(dāng)psnr≥38 dB即可滿足人眼的不可感知性。
其中M、N仍代表圖像大小,W(x,y)、W′(x,y)代表位置為(x,y)的原始待嵌入水印和提取恢復(fù)出水印的灰度值,nc值最大為1。
運(yùn)用本文算法進(jìn)行水印的嵌入與提取,原始選擇的載體圖像、待嵌入的二值水印圖像如圖1所示。
圖1 原始載體圖像及3個(gè)待嵌入二值有意義水印圖像Fig.1 Original cover image and the threemeaningful binary watermarks to be embedded
經(jīng)Arnold 5次置亂后的水印效果如圖2所示,可以看出之前的二值有意義水印圖像已分辨不出,效果有些像噪聲,安全性大大增強(qiáng)。
運(yùn)用本文算法實(shí)現(xiàn)水印嵌入,嵌入后載體圖像如圖3(a)所示,其為38.6361dB,符合人眼不易感知性要求。在未受到任何攻擊的情況下提取出的水印經(jīng)恢復(fù)后的圖像如圖3(b)—(d)所示,歸一化相似度分別為 0.9995、0.9994、0.9992,均非常接近于1,幾乎可以不失真地提取出原始水印。
對(duì)含水印載體圖像進(jìn)行不同部位的裁剪攻擊實(shí)驗(yàn),攻擊后水印提取恢復(fù)效果如圖4所示。
圖2 原始待嵌入二值水印經(jīng)Arnold置亂后的效果Fig.2 Arnold transformation consequent of the original binary watermarks to be embedded
圖3 含水印圖像及未受攻擊下提取并恢復(fù)出的水印效果Fig.3 Watermarked image and the effect of extracting and recovering
圖4 算法抗裁剪攻擊實(shí)驗(yàn)效果圖Fig.4 Test results of the algorithm against various cutting attacks
對(duì)含水印載體圖像進(jìn)行人為添加強(qiáng)度為0.000 2乘積性噪聲攻擊、添加強(qiáng)度為0.000 1高斯噪聲攻擊、添加強(qiáng)度為0.000 5脈沖噪聲攻擊實(shí)驗(yàn),攻擊后水印提取恢復(fù)效果如圖5所示。
圖5 算法抗噪聲攻擊實(shí)驗(yàn)效果圖Fig.5 Test results of the algorithm against noise attacks
對(duì)含水印載體圖像進(jìn)行質(zhì)量因子Q=95的JPEG壓縮攻擊實(shí)驗(yàn),攻擊后水印提取恢復(fù)效果如圖6所示。
由上述攻擊實(shí)驗(yàn)?zāi)軌蚩闯?,由于本算法是基于變換域而非空間域?qū)崿F(xiàn)水印的嵌入,嵌入后信息分布在整個(gè)平面而非局部,算法抗不同程度的裁剪攻擊能力較強(qiáng);人為添加乘性、高斯、脈沖噪聲,提取恢復(fù)出的水印效果較好,算法具備一定的抗噪聲攻擊能力;針對(duì)JPEG壓縮攻擊,在壓縮因子為95時(shí)水印提取效果較好,算法抗JPEG壓縮攻擊能力較強(qiáng)。
圖6 算法抗JPEG壓縮攻擊實(shí)驗(yàn)效果圖Fig.6 Test results of the algorithm against JPEG compression
本文提出的一種新的基于DCT的大容量二值水印嵌入算法,通過(guò)各類常規(guī)攻擊實(shí)驗(yàn)表明對(duì)于裁剪、圖像加噪、JPEG壓縮等攻擊具有較好的魯棒性。相對(duì)于通常在每個(gè)分塊DCT變換后系數(shù)矩陣選擇一對(duì)中頻系數(shù)嵌入1bit二值水印,本算法通過(guò)選擇4個(gè)中頻系數(shù)進(jìn)行排序,充分利用兩兩之間的3個(gè)差值關(guān)系,通過(guò)修改系數(shù)值以使得差值滿足特定的閾值,每塊中實(shí)現(xiàn)了3bit二值水印的嵌入和盲提取,較傳統(tǒng)算法水印嵌入容量增大為原來(lái)的3倍,體現(xiàn)了較明顯的優(yōu)勢(shì)。但是,所提出的算法對(duì)于濾波、旋轉(zhuǎn)、尺寸變換及更為復(fù)雜的一些幾何攻擊有待于進(jìn)一步提升抗攻擊能力。
[1]Cox IJ.Secure spread spectrum watermarking formultimedia[J].IEEE Transactions on Image Processing,1997,6(12):1673-1687.
[2]孫 圣 和,哲 明,夏 牧,等.數(shù) 字 水 印 技 術(shù) 及 應(yīng) 用[M].北 京:科 學(xué)出版社,2004.
[3]蘇慶堂,牛玉剛,劉賢喜.空域中實(shí)現(xiàn)基于DC系數(shù)的圖像水印算法[J].計(jì)算機(jī)應(yīng)用研究,2012,29(4):1441-1444.SU Qing-tang,NIU Yu-gang,LIU Xian-xi.Image watermarking algorithm based on DC components implementing in spatial domain[J].Application Researth of Computers,2012,29(4):1441-1444.
[4]Voloshynovskiy S,Pun T,Fridrich J,et al.Security of data hiding technologies[J].Signal Processing,2003,83(10):2065-2067.
[5]王向陽(yáng),楊藝萍,楊紅穎.基于小波矩的抗幾何攻擊數(shù)字圖像水印算法研究[J].中國(guó)圖象圖形學(xué)報(bào),2010,15(1):15-19.WANG Xiang-yang,YANG Yi-ping,YANG Hong-ying.A new robust digital image watermarking based on wavelet moments[J].Journalof Image and Graphics,2010,15(1):15-19.
[6]王文輝,徐榮聰.基于差分進(jìn)化算法改進(jìn)SVD圖像水印[J].計(jì)算機(jī)應(yīng)用與軟件,2011,28(7):277-280.WANG Wen-hui,XU Rong-cong.Improve SVD image watermarking based on differential evolution algorithm[J].Computer Applications and Software,2011,28(7):277-280.
[7]杜肖山,廖述劍.一種DWT與DCT相結(jié)合的圖像水印算法[J].計(jì)算機(jī)技術(shù)與發(fā)展,2011,21(1):147-150.DU Xiao-shan,LIAO Shu-jian.A novel image watermarking algorithm based on DWT and DCT[J].Computer Technology and Development,2011,21(1):147-150.
[8]姚軍財(cái).基于離散余弦變換的圖像半盲水印技術(shù)研究[J].電視技術(shù),2012,36(17):37-39.YAO Jun-cai.Semi-blind watermarking technique of digital image based on discrete cosine transform[J].Ideo Engineering,2012,36(17):37-39.