吳慧琳 周激流 龔小剛 李炳法 文 揚(yáng) 尹 皓
①(四川大學(xué)電子信息學(xué)院 成都 610064)
②(四川大學(xué)計(jì)算機(jī)學(xué)院 成都 610064)
數(shù)字水印是將一個(gè)信號(水印)以不可見方式嵌入另一個(gè)信號(宿主信號,原始信號)的處理過程,其中宿主信號可以是圖像、音頻或視頻;被嵌入的水印信號最后可以被提取或檢測出來。自1954年水印技術(shù)問世以來,已經(jīng)涌現(xiàn)出大量適用于不同應(yīng)用的靜態(tài)圖像的水印算法?,F(xiàn)有的數(shù)字圖像水印算法多適用于靜態(tài)圖像;而近年來國際上趨向于采用簡單可行的軟硬件實(shí)現(xiàn)水印算法[1]。因此結(jié)合了數(shù)字圖像水印技術(shù)與圖像壓縮標(biāo)準(zhǔn)的、計(jì)算復(fù)雜度低、易于硬件實(shí)現(xiàn)且健壯性較好的壓縮圖像水印算法吸引了許多研究人員進(jìn)行研究。
細(xì)胞自動(dòng)機(jī)變換提供了一種把細(xì)胞自動(dòng)機(jī)理論和數(shù)學(xué)、物理、工程等理論聯(lián)系起來的工具[2];被用于圖像增強(qiáng)、邊緣檢測、降噪處理、圖像加密等;但將其及其變換應(yīng)用到數(shù)字圖像水印中,是近幾年才開始出現(xiàn)的。文獻(xiàn)[3]提出一個(gè)基于細(xì)胞自動(dòng)機(jī)變換的數(shù)字圖像水印算法的框架結(jié)構(gòu)。文獻(xiàn)[4]利用細(xì)胞自動(dòng)機(jī)的混沌特性,對圖像進(jìn)行擴(kuò)頻調(diào)制將水印嵌入在圖像的頻域。文獻(xiàn)[5]利用細(xì)胞自動(dòng)機(jī)的分形特性來對圖像進(jìn)行處理,并將水印嵌入處理后的圖像中。文獻(xiàn)[6]提出一個(gè)基于細(xì)胞自動(dòng)機(jī)變換的水印算法,該算法適用于普通未壓縮的圖像,且水印的提取需要依賴原始圖像。
JPEG是當(dāng)前廣泛使用的圖像壓縮標(biāo)準(zhǔn)之一,與其相關(guān)的水印算法,按照算法輸入輸出的不同大體可以分為兩類。第1類的輸入輸出均為JPEG壓縮文件,如文獻(xiàn)[7,8];第 2類的輸入為原始文件,輸出為 JPEG 文件,如文獻(xiàn)[9-11]。其中大部分算法是在進(jìn)行JPEG壓縮的量化步驟時(shí)嵌入水印。本文的算法,屬于第2類。
本文結(jié)合JPEG圖像壓縮編碼和細(xì)胞自動(dòng)機(jī),提出一種用于JPEG壓縮圖像的數(shù)字盲水印算法。該算法先用Moore型細(xì)胞自動(dòng)機(jī)對水印圖像進(jìn)行置亂;隨后用細(xì)胞自動(dòng)機(jī)變換對原圖進(jìn)行分解,并在分解后得到的低頻系數(shù)子帶中嵌入置亂后的水印信息。最后將嵌入了水印的圖像按JPEG圖像壓縮標(biāo)準(zhǔn)進(jìn)行編碼。水印的提取是在解碼過程中進(jìn)行的。實(shí)驗(yàn)證明該算法在保證水印不可見性的同時(shí),對常見的攻擊如JPEG壓縮攻擊,濾波攻擊,高斯噪聲攻擊,旋轉(zhuǎn)攻擊等有較好的魯棒性。
本文余下部分的內(nèi)容安排如下。第2章提供了關(guān)于細(xì)胞自動(dòng)機(jī)的理論基礎(chǔ)。第3章先介紹了基于細(xì)胞自動(dòng)機(jī)的圖像置亂;同時(shí)詳細(xì)給出了基于JPEG 圖像壓縮編碼的細(xì)胞自動(dòng)機(jī)域數(shù)字盲水印算法的嵌入與提取算法。第4章展示了仿真實(shí)驗(yàn)與實(shí)驗(yàn)結(jié)果。第5章是結(jié)論。
Moore鄰域是由細(xì)胞aij自身及其上、下、左、右的4個(gè)細(xì)胞,與對角線上4個(gè)細(xì)胞共同構(gòu)成,如圖1(a)中所示,表達(dá)式如式(1)。
若狀態(tài)集S={ 0,1},鄰域半徑r=1,Moore鄰域細(xì)胞自動(dòng)機(jī)的局部規(guī)則為“外全加”如式(2)所示。規(guī)則編號由式(3)確定。
其中s表示狀態(tài)集的個(gè)數(shù);n表示細(xì)胞鄰域內(nèi)元素個(gè)數(shù)。根據(jù)組合排列,可以得知共有 22×9=262144種映射,即規(guī)則。
細(xì)胞自動(dòng)機(jī)變換(Cellular Automata Transform,CAT)的主要優(yōu)勢是可以得到大量不同性質(zhì)的正交、半正交、雙正交,非正交等的基函數(shù)。
(1)變換與逆變換 由N×N個(gè)細(xì)胞構(gòu)成的二維細(xì)胞空間,二維細(xì)胞自動(dòng)機(jī)變換與逆變換如式(4)所示。
其中fij表示原始圖像系數(shù);ckl表示變換系數(shù);是細(xì)胞自動(dòng)機(jī)基函數(shù)。如式(5)所示,本文采用由一維細(xì)胞自動(dòng)機(jī)基函數(shù)衍生二維細(xì)胞自動(dòng)機(jī)基函數(shù)的方式,即Type8類型基函數(shù)。
其中Lw≥ 2 表示的是細(xì)胞可能有的所有狀態(tài)的數(shù)量。在二值狀態(tài)的細(xì)胞自動(dòng)機(jī)空間,二維細(xì)胞自動(dòng)機(jī)基函數(shù)可表示為式(6)。
(2)圖像的細(xì)胞自動(dòng)機(jī)變換 細(xì)胞自動(dòng)機(jī)變換是一種分層編碼方案[12]。設(shè)給定原始圖像為w×h,其中w=2m,h=2n(要求m和n都是正整數(shù),若2的整數(shù)次冪則通過補(bǔ)0的方式滿足要求)。將原始圖像分成 2 (m+n)/(8 × 8)個(gè)字塊,每個(gè)子塊有 64個(gè)像素。對每個(gè)子塊進(jìn)行二維正交細(xì)胞自動(dòng)機(jī)變換,則變換系數(shù)Ckl落在4個(gè)不同的子帶中。即當(dāng)k和l都為偶數(shù)時(shí),Ckl為低頻系數(shù)。將所有表示低頻的系數(shù)分離出來,可以組成一幅新的低分辨率圖像,稱為 LL子帶。k為偶數(shù)和l為奇數(shù)時(shí),得到 HL子帶;k為奇數(shù)和l為偶數(shù)時(shí),得到LH子帶;k和l都為偶數(shù)時(shí),得到HH子帶。后3個(gè)子帶,均表示圖像的高頻部分,如圖1(b)所示。圖1(c)展示的是一個(gè)Type8類型二維正交基函數(shù)。圖1(d)是對圖像 Baboon進(jìn)行二維細(xì)胞自動(dòng)機(jī)變換分解后,得到的4個(gè)子帶圖。
本文所提的與 JPEG圖像編碼結(jié)合的水印算法,其整體流程如圖2所示。
如圖3所示,為水印嵌入算法圖示。
(1)用二維 Moore型細(xì)胞自動(dòng)機(jī)對二值水印圖像進(jìn)行置亂。設(shè)需要置亂的圖像I,大小為m×n,I(i,j)表示圖像I在(i,j)的像素值。演化次數(shù)(迭代次數(shù))為k。P是m×n的零矩陣,設(shè)置計(jì)數(shù)器t=0 。水印圖像置亂算法步驟如下:
(a)由種子δ生成與圖像I等大同維的隨機(jī)矩陣E0,其中只含有0和1元素。
(b)將隨機(jī)初始矩陣E0與圖像I按坐標(biāo)位置一一對應(yīng)起來。按光柵掃描線順序,從上到下、從左到右掃描E0。每當(dāng)掃描到E0(i,j)=1,1 ≤i≤m,1≤j≤n,就按順序?qū)D像I中(i,j)位置的像素值取出來,以掃描線策略存放在P中。
(c)選取具有混沌性質(zhì)的總和規(guī)則,將E0作為Moore鄰域細(xì)胞自動(dòng)機(jī)初始構(gòu)形,若t<k,則執(zhí)行①到③步操作。
①依照總和規(guī)則進(jìn)行一次迭代演化,將得到的構(gòu)形記錄到一個(gè)新矩陣Et+1中。Et+1與圖像I等大同維。
圖1 Moore鄰域細(xì)胞自動(dòng)機(jī)
圖2 本文算法中的與JPEG圖像編碼結(jié)合的水印算法
圖3 水印嵌入算法圖示
②按掃描線順序:從左到右、從上到下依次將同時(shí)滿足式(7)條件的(i,j)對應(yīng)的圖像I(i,j)像素值取出,存放在矩陣P中。
③令t=t+ 1 。
(d)將I中剩余未被提走的像素按掃描線順序取出,依次加到P中。最后P就是置亂后的水印圖像矩陣。
k次迭代演化,得到一組構(gòu)形序列:{E1,E2,…,Ek}。只要細(xì)胞自動(dòng)機(jī)的總和變換規(guī)則號固定,種子δ不變,則會(huì)得到同樣的構(gòu)形序列。將構(gòu)形序列序列也即是置亂算法的遷移路線,將E1和Ek相接形成環(huán)路,則以置亂后的圖像矩陣P作為初始構(gòu)形,沿著遷移路線一步一步回退,最終可以得到原圖I。綜上,反置亂步驟與置亂步驟順序相反,需要將規(guī)則號和種子δ作為密鑰。
(2)用包括Wolfram規(guī)則號、細(xì)胞鄰域、細(xì)胞初始構(gòu)形、邊界等在內(nèi)的幾個(gè)關(guān)鍵值,生成一個(gè)二維正交細(xì)胞自動(dòng)機(jī)基函數(shù)Bij(i,j=1,2,…,8)。
(3)對原始圖像進(jìn)行一級正交細(xì)胞自動(dòng)機(jī)變換。變換后得到4個(gè)子帶。其中一個(gè)是低頻子帶LL,其余均是高頻子帶。由于LL是存有圖像的大量信息,選擇高頻子帶HL嵌入水印。
(4)將高頻子帶HL分成不重復(fù)的塊,每個(gè)塊包含8×8=64個(gè)像素。每一塊將被嵌入一位水印。
(5)生成兩個(gè)小于 8的隨機(jī)整數(shù)x和y,目的是為了組合起來得到一個(gè)坐標(biāo)(x,y)。然后從64個(gè)基函數(shù)中選擇坐標(biāo)為(x,y)的基函數(shù)子塊作為一個(gè)模板P1=Bij(i=x,j=y)。由于細(xì)胞自動(dòng)機(jī)的基函數(shù)取值范圍S={ 0,1},對選擇的模板P1取反,則得到模板P0。
(6)用兩個(gè)模板P1,P0以及一個(gè)強(qiáng)度因子α,根據(jù)式(8),將置亂后的水印按位(watermark bit)嵌入到HL子帶中。
(7)執(zhí)行細(xì)胞自動(dòng)機(jī)逆變換,將所有分塊重組,得到嵌了水印的圖像。
(8)對圖像進(jìn)行標(biāo)準(zhǔn)JPEG壓縮處理。即將嵌了水印的圖像分成8×8的塊,對每個(gè)塊進(jìn)行DCT變換。隨后使用64元素量化表,對每個(gè)64的系數(shù)進(jìn)行量化。量化后的系數(shù),采用Zigzag掃描方式進(jìn)行掃描,最后使用Huffman編碼方式進(jìn)行編碼。這些操作完成后,就可以得到嵌入了水印的壓縮圖像數(shù)據(jù)。
如圖2中所示,本算法的解碼,是在標(biāo)準(zhǔn)JPEG解碼器的離散余弦反變換(IDCT)步驟后多了一個(gè)水印提取處理模塊。該模塊主要是從重建的圖像中提取水印,其操作步驟如下:
(1)對嵌入了水印的JPEG壓縮圖像數(shù)據(jù),進(jìn)行反熵編碼,反Zigzag掃描,反量化,離散余弦反變換(IDCT)等操作。得到一個(gè)重建的圖像信號。
(2)使用與水印嵌入算法中相同的細(xì)胞自動(dòng)機(jī)關(guān)鍵值,生成相同的二維正交細(xì)胞自動(dòng)機(jī)基函數(shù)Bij(i,j=1,2,…,8)。
由于不同的關(guān)鍵值,可以生成不同的細(xì)胞自動(dòng)機(jī)基函數(shù);所以當(dāng)關(guān)鍵值不同時(shí),細(xì)胞自動(dòng)機(jī)基函數(shù)就無法被反算出來。這就增加了水印算法的安全性。
(3)對重建的圖像信號進(jìn)行細(xì)胞自動(dòng)機(jī)變換。得到4個(gè)細(xì)胞自動(dòng)機(jī)變換系數(shù)子帶。
(4)選取HL低頻系數(shù)子帶,將其分成多個(gè)互不重疊的分塊,每一塊大小為8×8。
(5)用與嵌入算法中相同的兩個(gè)隨機(jī)整數(shù)x和y,組合為坐標(biāo)(x,y)。從64個(gè)基函數(shù)中選擇一個(gè)基函數(shù),即模板P1;求補(bǔ)集得到模板P0。
(6)用模板P1(或模板P0),與HL低頻系數(shù)子帶的每一個(gè)8×8的分塊進(jìn)行相關(guān)性判斷,從而將嵌入在每一分塊中的每一位水印(watermark bit)提取出來,提取如式(9)所示。
(7)將提取出來的水印圖像,進(jìn)行Moore型細(xì)胞自動(dòng)機(jī)反置亂。反置亂步驟與 3.1節(jié)中置亂步驟順序相反。
為了檢驗(yàn)本文水印算法的性能,選取了3個(gè)大小均為512×512的灰度圖Lena,Crowd和Goldhill進(jìn)行多組試驗(yàn)。其中圖 Lena含有較小的細(xì)節(jié);圖Crowd相比之下含有大量的細(xì)節(jié)。以二值圖像‘W’(32×32)作為水印圖像。用于生成Type8正交細(xì)胞自動(dòng)機(jī)基函數(shù)的關(guān)鍵值如表1所示。
表1 產(chǎn)生Type8型的細(xì)胞自動(dòng)機(jī)關(guān)鍵值
選取具有混沌性質(zhì)的,規(guī)則號為224的;轉(zhuǎn)換規(guī)則為外全加規(guī)則;對應(yīng)的映射函數(shù)f(1,2)=1,f(0,3)=1,f(1,3)=1且其他狀態(tài)值均為0的Moore型細(xì)胞自動(dòng)機(jī)對二值水印圖像進(jìn)行置亂。設(shè)定置亂次數(shù)k為100。
在不改變圖像壓縮率的前提下,水印的隱蔽性與式(8)中的強(qiáng)度因子α相關(guān)。α取值較小時(shí)算法具有很好的水印隱蔽性,魯棒性較差。α取值較大時(shí)算法魯棒性較好,水印隱蔽性較差。在理想狀況下,經(jīng)過多次實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)強(qiáng)度因子取值為4時(shí),本文算法的水印隱蔽性較好。故本實(shí)驗(yàn)強(qiáng)度因子取值為α=4 。
為了對水印算法進(jìn)行客觀的評價(jià),本文用峰值信噪比(Peak Signal Noise Ratio,PSNR)作為一個(gè)衡量標(biāo)準(zhǔn),以便清晰地判斷出原始圖像和受到攻擊后的嵌有水印的JPEG壓縮圖像之間的差別,如式(11)所示。
用歸一化相關(guān)系數(shù)(Normalized Correlation,NC)作為提取出的水印與原始水印相似度的評價(jià)指標(biāo)。NC值越大,表明兩者相似度越大,即水印提取效果越好。NC定義如式(12)所示。
對圖像Lena,Crowd和Goldhill分別進(jìn)行水印嵌入和水印提取實(shí)驗(yàn)。圖4顯示的是Lena圖實(shí)驗(yàn)結(jié)果。其中4(a)是Lena原始圖像;4(b)表示未嵌入水印的JPEG壓縮格式的Lena。此時(shí)圖像的壓縮比為4.0815,PSNR為33.07。4(c)是嵌入了水印的JPEG壓縮格式Lena。原始圖像與嵌入了水印的JPEG格式Lena的圖像壓縮比為3.8370,PSNR為32.63。此時(shí)原始水印與提取出來的水印的NC值為0.98。此外,圖像Crowd與圖像Goldhill的實(shí)驗(yàn)結(jié)果為:(1)Crowd:原始圖與未嵌入水印的JPEG格式圖像的壓縮比為2.6336,PSNR為26.14。原始圖與嵌入了水印的JPEG格式圖像的壓縮比為2.5428,PSNR為26.05。此時(shí)原始水印與提取出來的水印的NC值為 0.9698。(2)Goldhill:原始圖與未嵌入水印的JPEG格式圖像的壓縮比為2.5550,PSNR為26.84。原始圖與嵌入了水印的JPEG格式圖像的壓縮比為2.4521,PSNR為26.72。此時(shí)原始水印與提取出來的水印的NC值為0.9844。
圖4 Lena的實(shí)驗(yàn)結(jié)果
從視覺上看,嵌入了水印的壓縮圖像與原圖基本一致。由實(shí)驗(yàn)結(jié)果可以得出,嵌入了水印以后的圖像的壓縮率有所降低,PSNR有所減小,但是提取出來的水印與原始水印的相似度很高。說明本文水印算法的隱蔽性較好。
為了檢測水印的魯棒性,我們對 Lena,Crowd和Goldhill分別進(jìn)行了幾組攻擊實(shí)驗(yàn)。包括加性噪聲攻擊,高斯低通濾波攻擊,剪切攻擊,旋轉(zhuǎn)攻擊,JPEG 壓縮攻擊,直方圖均衡化攻擊以及線性銳化攻擊等。實(shí)驗(yàn)結(jié)果表明該算法具有較好的魯棒性,且可以將NC值(約0.8),作為對水印圖像存在的閾值。實(shí)驗(yàn)結(jié)果如表2所示。
表2 從各種攻擊實(shí)驗(yàn)提取出來的水印圖像及相關(guān)性能數(shù)據(jù)
本文提出了一種與JPEG圖像壓縮編碼相結(jié)合的細(xì)胞自動(dòng)機(jī)域數(shù)字盲水印算法。該算法不同于常規(guī)壓縮圖像水印算法,首先利用Moore型細(xì)胞自動(dòng)機(jī)對水印圖像進(jìn)行置亂。隨后對圖像進(jìn)行細(xì)胞自動(dòng)機(jī)變換,變換后的系數(shù)被分為4個(gè)子帶;選取其中表示低頻系數(shù)的子帶,將置亂后的水印圖像嵌入;利用反變換生成嵌入水印后的圖像。最后,對嵌入了水印的圖像進(jìn)行JPEG壓縮編碼,得到壓縮后的嵌入了水印的圖像。即本文所提水印算法可以用于JPEG壓縮圖像。水印的提取是在JPEG解碼過程中進(jìn)行的;實(shí)驗(yàn)證明,該算法在保證水印不可見性的同時(shí),對常見的攻擊如JPEG壓縮,濾波,加性噪聲攻擊等有較好的魯棒性。
[1]Ni Zhi-cheng,Shi Yun-qing,et al..Reversible data hiding[J].IEEE Transactions on Circuits and Systems for Video Technology,2006,16(3): 354-362.
[2]Lafe O E.Method and apparatus for data encryption/decrption using cellular automata transform[P].Patent,USA,5677956,1997.
[3]Reiko Shiba,Seok Kang,and Yoshinao Aoki.An image watermarking technique using cellular automata transform[C].TENCON 2004,2004 IEEE Region 10 Conference,Japan,2004,1: 303-306.
[4]Vijay Harishchandra Mankar,Tirtha Sankar Das,et al..Cellular automata based robust watermarking architecture towards the VLSI realization[J].World Academy of Science,Engineering and Technology,2007,31(8): 20-29.
[5]Li Hui-liang and Ye Rui-song.Image scrambling and watermarking technique based on 2D cellular automata[J].Journal of Image and Graphics,2008,13(11): 2076-2080.
[6]Li Xiao-wei,Nam Tae-hee,Lee Seok-ki,et al..Digital watermarking in transform-domain based on cellular automata transform[C].2011 The 2nd International Conference on Next Generation Information Technology(ICNIT),China,2011: 132-136.
[7]Wong Peter H W,Chang A,and Oscar A C.Capacity estimation technique for JPEG-to-JPEG image watermarking[J].IEEE Transactions on Circuits and Systems for Video Technology,2003,13(8): 746-752.
[8]Wong Peter H W,Chang A,and Oscar A C.On improving the iterative watermark embedding technique for JPEG-to-JPEG watermarking[C].Proceedings of the 2004 International Symposium,China,2004: 161-164.
[9]Mohammad Amrollahzadeh and Siamak Talebi.A blind JPEG image watermarking in the DCT domain[C].Proceedings of the 18th Conference on Electrical Enqineering(ICEE),Iranian,2010: 311-315.
[10]Koch E,Rinafrey J,and Zhao J.Copyright protection for multimedia data[C].Proceedings of the International Conference on Digital Media and Electronic Publishing,Germany,1994: 321-329.
[11]Jasni Mohamad Zain.Strict authentication watermarking with JPEG compression (SAW-JPEG)for medical images[J].European Journal of Scientific Research,2010,4(2): 232-241.
[12]Lafe O.Cellular Automata Transforms: Theory and Applications in Multimedia Compression,Encryption,and Modeling (Multimedia Systems and Applications)[M].1st Edition,London: Springer,2000: 31-42.