摘要:該文提出一種基于DCT變換的盲水印算法。將水印信息按隨機產(chǎn)生的0或1嵌入塊DCT系數(shù)中的DC或AC分量中。該算法思想簡單,步驟簡便、容易實現(xiàn)。實驗結(jié)果表明, 該算法對嵌入的水印具有很好的透明性,對JPEG 壓縮具有很好的魯棒性,同時對濾波和加噪等處理具有很好的易碎性。
關(guān)鍵詞:盲水印;數(shù)字水印;DCT變換;隨機序列
中圖分類號:TP309文獻標識碼:A文章編號:1009-3044(2008)29-0418-02
Blind Watermarking Algorithm Based on DCT Transform
ZHANG Hong-mei1,2
(1.College of Computer and Information,Hefei University of Technology,Hefei 230009, China;2.Anhui Electron And Information Professional Technology College,Bengbu 233000,China)
Abstract: This paper proposes a blind watermarking algorithm based on DCT transform,To hide watermarking in the DC or AC components of a DCT, according to random 0 or 1. The algorithm is simple to understand and can be easily realized. Experimental results show that the algorithm has a good transparence of the embedded watermark image, has a good robust against JPEG, and frangibility against the attack of Filtering and noisy.
Key words: blind watermarking; digital watermark; DCT transform; random sequence
1 引言
多媒體技術(shù)和互聯(lián)網(wǎng)技術(shù)的發(fā)展,使人們能夠方便的獲得各種多媒體信息。數(shù)字化后的多媒體信息具有易于存儲、發(fā)布以及二次創(chuàng)作等優(yōu)點,同時,多媒體信息被非法復(fù)制與篡改也變得越來越容易。因此如何在網(wǎng)絡(luò)環(huán)境下保護數(shù)字媒體的版權(quán)已經(jīng)成為一個亟待解決的問題。數(shù)字水印技術(shù)作為實現(xiàn)多媒體信息認證、版權(quán)保護的一個有效手段,越來越受到人們的關(guān)注。
數(shù)字水印根據(jù)水印的嵌入方式,可以分為兩類:一種方法是直接將水印信息迭加到圖像的空域上;另一種是先將圖像做某種變換(如DCT、DFT、DWT等),然后再將水印信息迭加到變換后的頻域上,最后通過相應(yīng)的反變換來得到嵌入水印信息的圖像。從提取是否需要原始圖像,數(shù)字水印可分為盲水印和非盲水印。盲水印的提取不需要原始圖像,同時可以抵抗IBM攻擊;相比之下,非盲水印實用價值較少。目前,數(shù)字水印已有大量的研究成果,如基于小波變換的特征定位盲水印[1],基于SVD分解的盲水印[2],還有DFT、DCF變換的盲水印等,多數(shù)都是嵌入無意義的隨機噪聲,相關(guān)檢測確定有無水印,只有兩種狀態(tài)表示1位信息。若要嵌入有意義的多位信息,如版權(quán)序列號、版權(quán)標志圖等,需精確逐位信息提取;因此嵌入有含義的水印就成為研究的熱點。
當前,大多數(shù)基于DCT的水印方法將水印嵌入DCT域除DC分量外的中低頻系數(shù)中。而文獻[3]根據(jù)對圖像DCT系數(shù)定性和定量的分析指出:DC分量比任何AC分量有更大的感覺容量;從穩(wěn)健性的角度,在保證水印透明性的前提下,DC分量更適合嵌入水印。并采用實驗的方法驗證這一論斷,但是該水印算法是非盲的。本文借鑒文獻[3]的思想,將水印信息隨機的與塊DCT的低頻DC分量或AC分量進行運算,得到密鑰,實現(xiàn)了水印的盲檢測。
2 本文算法
2.1 算法原理
首先對圖像進行8X8分塊DCT變換,然后生成一個二值序列M,并作為密鑰K1保存。根據(jù)該序列中的0或1決定水印信息,與低頻中的DC分量或AC分量進行異或運算,得到密鑰K2。認證時利用這兩個密鑰恢復(fù)水印信息。
2.2 構(gòu)造水印
設(shè)原始圖像為f(x,y),水印是二值圖像W(i,j),提取出的水印為W′(i,j)。
1) 首先利用matlab的隨機函數(shù)生成一個二值序列M,然后對原始圖像f(x,y)進行8X8分塊,記為Bk, k=0,1,……,K-1。即:
每塊進行DCT 變換得到Fk (u,v):
取左上角的2個低頻系數(shù)B1,B2。
2) 兩個系數(shù)分別除以相應(yīng)的量化因子, 并取整:
其中Alpha 是強度系數(shù), 這里取5,Deta是一個固定參數(shù),取值為0.5, L1和L2為系數(shù)B1和B2在量化矩陣中對應(yīng)位置的值16,11。
3) 求出L1和L2的最低有效位, 記為S1、S2。若序列M為1,則密鑰Key為水印信息與S1異或;否則密鑰Key為水印信息與S2異或。即:
二值序列M和密鑰Key作為水印提取時的密鑰, 對于密鑰的加密可以使用網(wǎng)絡(luò)安全中的任一加密算法。
2.3 提取水印
1) 利用公式(1)對被認證的圖像進行8×8分塊,再利用公式(2)對每塊圖像進行DCT變換。取兩個低頻系數(shù)B1和B2。
2) 利用公式(3) 、(4) 對兩個系數(shù)量化、取整得到L′1 和L′2 。
3) 求出L′1和L′2的最低有效位, 記為S1、S2, 若密鑰M的值為1,則密鑰Key與S1進行異或;否則密鑰Key與S2進行異或。得到提取的水印W′,即:
4) 設(shè)定閾值T, 通過相關(guān)度公式得到提取出的水印信號W′與原始水印信號W的相關(guān)度R,相關(guān)度的計算方法采用Matlab中的函數(shù)corr2(W′,W)來計算。
判別規(guī)則如下:
3 仿真實驗
實驗是用MATLAB仿真模擬得到的,原圖像是經(jīng)典的lena( 256×256) 圖像, 水印圖像是含有“電子學(xué)院”四個字的二值圖像( 32×32) , 如圖1 所示;利用本文算法得到的水印圖像如圖2所示。由于水印信息并沒有真正的嵌入到圖像中,所以水印透明性好。另外,從水印相似度NC值為1看出,本文提供的水印算法,可以完全正確地提取出所嵌入的水印圖像。
(a) 原始圖像(b) 原始水印圖像(a)嵌入水印的圖像(b) 提取的水印圖像
圖1 原始圖像和水印圖像圖2 嵌入水印的圖像和提取的水印圖像
對含水印的圖像(圖2-a)進行JPEG有損壓縮,檢測結(jié)果如表1所示。
對含水印的圖像進行非法攻擊, 如濾波、椒鹽噪聲、高斯噪聲、裁剪等,然后對其進行檢測,檢測結(jié)果如表2所示。
實驗中的閾值T取為0.8, 從上面兩個試驗結(jié)果可以得出下面的結(jié)論:
根據(jù)表1中的NC值項,經(jīng)過JPEG壓縮后提取的水印與原水印比較的相似度都在T之上,即使經(jīng)過深度有損壓縮,水印仍然能夠被可靠地提取,因此該算法對JEPG壓縮具有很好的抵抗能力。
根據(jù)表2中提取出的水印圖像,除了剪切攻擊之外,其他非法攻擊提取出的水印圖像都非常模糊;根據(jù)表2中的NC值項,所有攻擊后提取的水印與原始水印的相似度都小于T,因此該算法對濾波、椒鹽噪聲、高斯噪聲、裁剪等非法攻擊具有易碎性。
4 結(jié)束語
本文根據(jù)DCT變換的原理、特點以及在數(shù)字水印領(lǐng)域中的應(yīng)用優(yōu)勢,提出的基于DCT變換的盲水印算法,該算法步驟簡單、容易實現(xiàn)。實驗結(jié)果表明,該方法具有很好的水印透明性,對JPEG 壓縮具有很好的魯棒性, 同時對濾波和加噪等處理具有很好的易碎性。由于并未將水印信息嵌入到原始圖像中,因此提取水印信息時無需原始圖像,即實現(xiàn)了水印的盲檢測。
參考文獻:
[1] 張永平,蘇廣川.基于特征定位的數(shù)字圖像盲水印技術(shù)[J].計算機工程,2007,33(2):125-132.
[2] 張志宏,陳鳳祥,王偉.一種基于奇異值分解的盲水印[J].計算機仿真,2005,22(8):115-117.
[3] 程興國,王裹,曾嶸.DCT域中DC分量上嵌人水印的算法[J].現(xiàn)代電子技術(shù),2007(242):57-59.