摘 要: 基于離散余弦變換(DCT)的特點,提出一種自適應水印算法。選取DCT域三個中頻系數及主對角線系數,并求它們各自的均值,比較嵌入位與這兩個平均值的關系,調整嵌入位的大小自適應實現水印嵌入。利用Arnold變換對水印信息進行預處理,增強水印的安全性。實驗表明,該算法水印提取效果較好,對剪切、旋轉、修改、JPEG等攻擊具有較好的穩健性和魯棒性。
關鍵詞: 自適應算法; 數字圖像水印; Arnold變換; 離散余弦變換
中圖分類號: TN911.72?34; TP309.7 文獻標識碼: A 文章編號: 1004?373X(2013)15?0076?03
Adaptive digital image watermarking technology based on DCT domain
FANG Chun?cheng1, TAN Zhong?ming2, LIN Ruo?bo1, XING Nan?liang3
(1. Department of Mechanical and Electrical Engineering, Jieyang Vocational and Technical College, Jieyang 522051, China;
2. Library, Jieyang Vocational and Technical College, Jieyang 522051, China;
3. Center of Training and Information, Jieyang Vocational and Technical College, Jieyang 522051, China)
Abstract: An adaptive digital watermarking algorithm is proposed based on the characteristics of discrete cosine transformation (DCT). Three medium frequency DCT coefficients and main diagonal coefficients are selected, and their means are calculated. The relation between the embedded coefficient and these two means are analyzed to achieve watermarking embedding adaptively by adjusting the value of embedded coefficient. The watermarking is preprocessed by Arnold transformation before being embedded to enhance the security of the algorithm. The experimental result shows that the algorithm has a good effect in watermarking extraction, as well as enough toughness and robustness for some common attacks, such as cutting, rotation, altering, JPEG compression, etc.
Keywords: adaptive algorithm; digital image watermarking; Arnold transformation; discrete cosine transformation
0 引 言
隨著互聯網技術和計算機技術的廣泛應用,網上辦公、網上商務活動越來越多,信息安全越來越顯示其重要性。網上商務活動的數據必須做得可以防篡改、偽造,數據完整性也必須得到保障。加密技術雖然一定程度上能保護數據的安全性,但在防篡改、偽造方面卻存在一定的缺陷;于是,數字水印(Digital Watermarking)技術應運而生[1?2]。加密技術與水印技術的區別在于,前者對載體的修改攻擊者在感官上能較容易感知,而后者則要求攻擊者對隱蔽載體的改動在感官上不能感知或者不容易感知[2]。水印算法按不同嵌入域,可分為空域算法和變換域算法[1],當前的研究熱點是變換域算法。如根據人類視覺模型特性的DCT(Discrete Cosine Transformation,離散余弦變換)域水印算法等。DCT算法與JPEG(Joint Photographic Experts Group,聯合圖像專家組)國際數據壓縮標準兼容,便于實現,應用也比較多[2?3]。本文提出的算法為DCT域數字水印算法。
1 水印預處理
水印信號都代表一定的意義,如版權、序列號等,水印嵌入前一般先做預處理,以增強其安全性。預處理的技術也較多,這里以Arnold變換對待嵌入的水印進行預處理。該變換的基本原理是把水印圖像原有的像素進行“打亂”,這種“打亂”是將圖像的像素進行移動[2,4?7],直到圖像的像素變成視覺上不規則為止。Arnold變換可以概括為:
[MN=1112MNmod(S)] (1)
式中:[(M,N)],[(M,N)]分別代表進行Arnold變換前后水印圖像的像素,[S]是水印圖像的大小。本文以40×40的帶“水印”字樣的二值圖像作為水印,圖1(a)~(e)分別代表原始水印圖像以及經過1次、5次、10次、20次Arnold變換后的水印圖像。從圖1可以看出,原始水印圖像在經過5次及以上的Arnold變換后在視覺上開始變得不規則、逐漸“混亂”,水印經Arnold變換后達到加密效果。
圖1 水印進行Arnold變換前后的圖像
2 算法原理
2.1 嵌入原理
將載體圖像進行DCT變換,載體圖像C則采用8×8分塊后進行DCT變換,選取每一塊圖像子塊要嵌入水印信息的系數位,嵌入水印。水印信息經Arnold變換后嵌入DCT域的中頻系數中[2]。本文以系數位[(k1(i)+3,k2(i)+2)]作為嵌入位。設定強度因子[α],可以增強水印的提取精度。求出系數矩陣主對角線上8個系數的平均值[d,]選擇嵌入位系數[Di:] [(k1(i)+3,k2(i)+2)],及其前、后的各一位DCT系數[Di-1:][(k1(i)+2,k2(i)+3)]和[Di+1:][(k1(i)+4,k2(i)+1)],并求出這三個系數的平均值[mid=13i=02Di],比較[d],[Di]與mid三者之間的大小,以[Di]為三者的中間值代表信息“1”,否則就代表信息“0”。具體嵌入步驟如下:
(1)水印圖像W進行5次Arnold變換,得到置亂的水印圖像,并轉換為一維序列W′;
(2)載體圖像C進行8×8的DCT變換;
(3)采用隨機序列隨機選取圖像塊[bi],在圖像塊[bi]中嵌入一位水印信息,[i]對應第[i]個比特位編碼,這里采用的隨機序列可以當作該算法的密鑰;這樣處理可以提高水印的安全性[7];
(4)分別求主對角線系數的平均值[d],[Di-1,][Di,][Di+1]的平均值mid;
(5)選取水印比特位[Wi,]比較[d,][Di]與mid三者的大小,如果[Wi=1]而且[Di]為[d、][Di]和mid三者的中間值,則不用修改[Di],否則修改[Di],令[Di=mid±α];如果[Wi=0]而且[Di]不為[d、][Di]和mid的中間值,則[Di]不用修改,否則修改,令[Di=mid±α],其中正負號的選擇,[Di]如果接近mid和[d]的小者則取正號、大者則取負號;
(6)水印嵌入結束,進行IDCT(Inverse Discrete Cosine Transformation,離散余弦逆變換)變換,得到隱蔽載體[C]。
2.2 提取原理
對隱蔽載體[C]進行DCT變換,求出主對角線系數的平均值[d,]對應的系數位[Di]及其與前后的兩個系數[Di-1,][Di+1]的平均值[mid=13i=02Di],比較[d,][Di]和mid三者的大小,以[Di]為三者的中間值代表“1”,否則代表“0”。提取步驟如下:
(1)將隱蔽載體圖像[C]進行8×8的DCT變換;
(2)采用隨機序列隨機選取圖像塊[bi];
(3)求出相應的[d,][Di]和mid,比較它們之間的大小,以[Di]為三者的中間值代表“1”,反之,代表信息“0”,并轉換為二維矩陣[S];
(4)對[S]求Arnold逆變換,獲得水印圖像[W]。
3 實驗分析
一般判斷水印算法優劣,隱蔽圖像采用峰值信噪比(Peak Signal?to?Noise Ratio,PSNR)[2,5?10],水印圖像則采用歸一化相關系數(Normalized Correlation Coefficient, NC)進行評判[2,5?10]。
實驗用標準圖庫的256級灰度圖像lena圖(512×512)作為載體C,以(40×40)帶“水印”兩字的二值圖像作為水印圖像W進行實驗;水印圖像先經過5次Arnold變換,嵌入強度[α]分別為0.05和0.08。[α]越大,穩健性越好,但隨著[α]的增加,水印的不可感知性會變差[2,7?8]。圖2中的(a)圖是[α]為0.05的隱蔽載體及提取的水印;(b)圖是[α]為0.08時的實驗結果。通過實驗發現,[α]的增大會使PSNR值減小,即圖像質量降低,但可以提高水印的相似度,即精度[2]。
依次對隱蔽載體進行攻擊實驗,分別為加0.01椒鹽噪聲、旋轉20°、直方圖均衡化、剪切掉1/4圖像、中值濾波、JPEG攻擊、涂改等攻擊,實驗結果如圖3所示。受到剪切正中間1/4和涂改攻擊的隱蔽載體如圖4所示。表1為受各種攻擊后的PSNR和NC值(強度[α]=0.08)。隱蔽載體在受到椒鹽攻擊、旋轉20°、直方圖均衡化、剪切、涂改五種攻擊時,其PSNR均小于30 dB,其中剪切1/4攻擊的PSNR值低于10 dB,但仍可以恢復出水印圖像,其NC值仍然大于0.7,可見,該算法的魯棒性較強。
圖2 [α]=0.05與[α]=0.08時的隱蔽載體及水印
圖3 受各種攻擊后的水印([α]=0.08)
圖4 剪切與涂改攻擊的隱蔽載體
文獻[2]的算法,是通過求DCT變換中相鄰三個DCT系數的平均值,比較平均值與嵌入系數位的大小,并依據水印信息確定是否修改該系數,從而實現水印的嵌入。圖5(a),(b)分別代表α=0.14時,用本文算法與文獻[2]算法嵌入水印后比較,從兩個圖中可以看出,本文的隱蔽性比文獻[2]的好,將本文算法與文獻[2]算法分別進行實驗,對應的PSNR和NC值列于表2。從表2中的數據也證明了本文算法的有效性。
從表1的數據可以看出,在受到常見攻擊方法的攻擊下,提取出來的水印的NC值仍然大于0.7,保證水印提取的質量;另一方面,表2的PSNR值顯示,在不同的嵌入強度下,本文算法的隱蔽載體的圖像質量明顯優于文獻[2]的情況。由此可見,本文算法在保證較好的魯棒性前提下,比文獻[2]的算法更具隱蔽性。
圖5 分別用本文算法與文獻[2]算法比較([α=]0.14)
4 總 結
本文設計的算法采用(8×8)的DCT變換,避免圖像分割過大或過小的問題,根據嵌入位與鄰近兩個系數的平均值、主對角線系數的平均值進行比較,進行動態的調整,實現水印自適應嵌入。采用Arnold變換對水印預處理,降低水印信息內部的相關性,提高其安全性[7]。實驗結果顯示,該算法具有較好的抗攻擊能力;采用自適應方法,提高水印的穩健性、魯棒性和提取效果。
參考文獻
[1] 方春城.基于WEB的信息隱藏設計與應用[D].廣州:中山大學,2010.
[2] 方春城,譚忠明,林若波,等.基于DCT域的自適應數字水印算法[J].山東理工大學學報:自然科學版,2012,26(2):72?76.
[3] 王麗娜,郭遲,李鵬.信息隱藏技術實驗教程[M].武漢:武漢大學出版社,2004.
[4] 丁瑋,閆偉齊,齊東旭.基于Arnold變換的數字圖像置亂技術[J].計算機輔助設計與圖形學學報,2001,13(4):338?341.
[5] 丁镠,程顯毅,徐波.DCT域加密自適應數字水印算法[J].計算機應用研究,2009,26(12):4768?4770.
[6] 趙峰,袁東風.基于DCT域的數字紋理圖像置亂評價方法[J].吉林大學學報:信息科學版,2008,26(1):27?30.
[7] 呂東岳,徐貴力,李開宇,等.基于DCT與SVD相結合的圖像水印新算法[J].電子科技,2011,24(5):112?115.
[8] 閆麗君,康寶生,岳曉菊.改進的基于DCT的自適應水印算法[J].計算機工程與應用,2011,47(8):197?200.
[9] 黃武輝,劉海英,齊影虹.一種基于DCT的水印算法及其實現[J].電腦知識與技術,2009,5(10):2696?2698.
[10] 袁修貴,周振.一種新的基于DWT、DCT和SVD的魯棒水印算法[J].計算機工程與科學,2011,33(1):112?115.