金淵智
(三門峽職業(yè)技術學院信息工程系,河南三門峽 472000)
當前,數字水印技術(Digital Watermarking)是國際信息安全領域研究的重要分支,它的研究目的主要是為了應對當前網絡盜版橫行的趨勢,以此來保障數字作品原作者的版權。
基于DCT的數字水印技術是目前國內外學者研究的重點。圖像在經8*8分塊DCT變換后的系數分為DC系數(1個)和AC(63個)系數,根據數據的大小可知,圖像的能量主要集中在系數矩陣的左上角,右下角的系數基本上全部為“0”,這就是DCT系數的特點。黃繼武在文獻[1]中總結了利用DC系數嵌入和AC系數嵌入的優(yōu)劣性,同時指出,DC系數的穩(wěn)健性較好,而AC系數的水印容量較大。在此基礎上又出現了大量的DCT域水印算法。[2-5]由于AC分量可嵌入的水印容量較大,因此,本文提出了一種基于AC低頻系數作為水印嵌入的位置的算法。同時結合HVS的兩大特性,將圖像塊(8*8)分為3大類,以便在每類分塊中疊加不同強度的水印信號,實現水印的自適應嵌入。
1.HVS特點。
關于HVS的研究結果,在水印嵌入時,對于嵌入強度來說會存在一個臨界值(T),如果嵌入強度大于T的話,攜帶水印的圖像就會出現明顯的圖像失真;如果小于這個臨界值,人類視覺系統(tǒng)就無法感知出載體圖像中存在水印信號,這樣就滿足了水印的不可見性。T的取值通常情況下會受到圖像的背景照度、背景紋理以及邊緣等因素的影響,如果圖像背景亮度越強、紋理越復雜,那么T的值也就大,[6-7]相反T的值就越小。
載體圖像背景亮度即DCT塊的DC分量,載體圖像的紋理即塊內方差。塊內方差可由公式<1>求出:
其中-m為每個圖像塊的像素均值:
這里f(x,y)為每個圖像塊在(x,y)處的像素值。
結合HVS的特點和文獻[8],在水印嵌入前,先將圖像塊進行分類。我們可以將圖形塊分成3大類(R1,R2,R3)對于這三大類分塊的水印嵌入強度依次增強。
2.水印預處理。
一般來說,在嵌入水印之前要對水印圖像進行預處理操作。常用的預處理操作有加密類和變換類,由于加密類操作需要較大的計算量,影響水印的處理速度,而變換類預處理操作速度較快,因此在此選擇Arnold變換來對水印圖像進行預處理操作。
對M*M的水印圖像按照公式<3>進行Arnold變換,
再將得到的矩陣按列優(yōu)先轉換為一維二進制序列W={w1,w2,w3,…,wt},其中 t=M2。
3.水印的嵌入。
水印的嵌入基本流程如圖1,算法的基本思路是:將原始圖像分割成不相交的8*8子塊,再進行分塊DCT,同時利用HVS的性質對分塊進行分類,最后在DCT域的低頻AC系數上實現水印的嵌入。
圖1 自適應水印嵌入算法框圖
具體的嵌入步驟如下:
①將水印圖像按照上一小節(jié)的方法進行預處理,得到水印圖像的一維序列W。
②設原始載體圖像I為N*N階的灰度圖像,先將I分成互不相交且個數最多的 8 *8子塊記為 Ist,s,t∈{1,2…,},按式<1>、<2>計算每一塊的方差備用,然后對每個子塊進行DCT變換,將變換后的DCT系數矩陣記為 IDlCT,l∈{1,2…,()2},其中 IDlCT,(i,j)1 < i ,j≤8 即AC系數。
③將為IDCTl進行分類。根據②計算出的方差和DC值,為IDCTl分成3類:R1、R2和R3,同時計算所有DCT系數的均值。
④水印嵌入。我們選擇AC低頻系數為IDCTl(2,2)來嵌入水印。AC系數的調整方法按公式<4>進行:
其中-μ為系數的改變量:[9]
其中,Δ為量化步長,-x為③計算出的均值,-r為量化噪聲:
量化步長Δ可以理解為嵌入強度,我們根據不同分類的塊,選擇合適的嵌入強度,達到自適應嵌入的目的。
⑤對上述的嵌入了水印的分塊系數IDCTl分別進行IDCT,即可還原得到含有水印的載體圖像。
4.水印的提取。
設待測水印圖像為A*,則水印的提取過程如下:
圖2 水印提取算法的框圖
具體的提取方法如下:
①將待A*分割為互不重疊8*8分塊I*l,計算每一塊的方差,并進行DCT變換得到I*DCTl。
②將I*DCTl進行分類。根據上面計算出的方差和DC值,I*DCTl分成3類:R1、R2和R3。
③對于每一塊的AC系數按照公式<7>進行比較大小即可提取水印:
④將上述恢復出的一維水印序列w*變成二維序列,再根據Arnold變換的周期性特點進行逆置亂變換,得到最終的提取結果。
本文所有的實驗均在Matlab2010上完成,處理器Intel Celeron 1.8GHz,內存1GB,操作系統(tǒng)為 Windows 2003。在實驗中選用的載體圖像是256*256的Lena圖像(如圖3(a)所示),水印信息為32*32的二值圖像(如圖 3(b)所示)。根據嵌入方法可知,這樣做已經達到了水印信息的最大嵌入量,即256*256的Lena圖像最多可以嵌入1024比特的信息,這樣更能說明該水印算法具有良好的不可見性以及具有較強的魯棒性。我們采用峰值信噪比(PSNR)評價嵌入水印后灰度圖像與原始灰度圖像間的失真度,并采用歸一化相關系數(NC)來定量的評價提取的水印與原始水印之間的相似度。
圖3 水印嵌入前后對比
1.不可見性。
對水印不可見性進行測試,圖4是水印嵌入實例。圖4(a)是嵌入了水印的原始宿主圖像。與圖3(a)相比,在視覺上觀察不出有任何明顯的變化,同時計算PSNR為29.2839,因此算法具有良好的不可見性。
2.其他攻擊測試。
為了驗證算法的魯棒性,本文還做了噪聲攻擊、壓縮攻擊、濾波和剪切攻擊下的提取實驗,實驗的參數和結果如表1所示。與此同時,通過計算水印提取的時間,也說明了該算法具有較高的執(zhí)行效率。
圖4 水印不可見性及檢測
表1 各類攻擊下的實驗數據匯總
針對不同塊分類R1、R2和R3我們分別采用不同的嵌入強度 Δ(0.01,0.02,0.03)實現了水印的自適應嵌入。由于本文采用的是有意義的水印信息,即便是當NC的值小于0.5時,也能通過主觀判斷來獲得正確的水印信息,而NC的值越接近1,則表明該水印算法的效果越好。
本文首先介紹了DCT系數的特點和HVS的研究成果,然后研究前人的水印算法的基礎上,提出了一種奇偶量化AC系數實現的自適應水印嵌入方案。最后,通過仿真實驗,主觀感覺無法感知到水印的存在,表明水印具有不可見性,在魯棒性方面,當含水印圖像遭受各種信號處理和噪聲攻擊的情況下,提取時依然具有較強的穩(wěn)健性和魯棒性。
[1]黃繼武,Yun Q.Shi,程衛(wèi)東.DCT域圖像水印:嵌入對策和算法[J].電子學報,2000,28(4):57 -60.
[2]閆麗君,康寶生,岳曉菊.改進的基于DCT的自適應水印算法[J].計算機工程與應用,2011,47(5)186-187.
[3]李 昊,呂建平,楊芳芳.基于正負量化的DCT域數字圖像盲水印算法研究[J].計算機工程與應用,2011,47(8)197 -200.
[4]王 靜,王 冰.基于DCT域和紋理復雜度的圖像水印算法[J].計算機工程,2011,37(18)148-150.
[5]黃繼武,Yun Q.Shi,姚若河.基于塊分類的自適應圖像水印算法[J].中國圖形圖像學報,1999,4(8)640-643.
[6]Watson A B.DCT quantization matrices visually optimized for individual images.In:Proc.of SPIE:Human Vision,Visual Processing and Digital Display IV,Washington:SPIE,1993,1913:202-216.
[7]Jayant N,Johnston J,Safranek R.Signal compression based on model of human perception.Proceedings of the IEEE,1993,81(10):1385-1421.
[8]黃繼武,Yun Q.Shi,一種自適應圖像水印算法[J].自動化學報,vol.25,No.4.1999.7:476 -482.
[9]YU Gwo-jong,LU Chun-shien,LIAO Mark Hong-yuan,et al.Mean quantization-based fragile watermarking for image authentication [J].Optical Engineering(S0091-3286),2001,40(7):1396-1408.