石紅芹,呂方亮
(華東交通大學(xué) 軟件學(xué)院,江西 南昌 330013)
在網(wǎng)絡(luò)環(huán)境中實施有效的版權(quán)保護(hù)和信息安全是目前人們特別關(guān)注的1個問題。數(shù)字水印作為一種能夠比較有效實施版權(quán)保護(hù)和信息安全的技術(shù)而成為1個新的研究熱點。
從1993年Tirkel等人[1]提出了數(shù)字水印的一種方法以來,就不斷的有數(shù)字水印算法涌現(xiàn)出來?,F(xiàn)有方法[2,3]大致可分為空間域方法和變換域方法兩個方面。整數(shù)小波變換作為新一代圖像壓縮標(biāo)準(zhǔn)JPEG 2000的核心部分已經(jīng)被廣泛應(yīng)用,整數(shù)小波變換的優(yōu)點在于能夠在圖像分解和重構(gòu)過程中,保證圖像在變換部分損失為0,從而提高嵌入水印的質(zhì)量。根據(jù)水印在提取時是否需要原始載體又可將水印分為盲水印和非盲水印。在網(wǎng)絡(luò)環(huán)境中,非盲水印的提取是不方便和不現(xiàn)實的。因此盲水印是更為實用的方案,同時越來越多的數(shù)字作品都是由非灰度圖像構(gòu)成的,所以對彩色圖像水印的研究成為水印研究的熱點。
在PAL彩色電視制式中使用YUV模型,其中Y表示亮度,U,V用來表示色差,U,V是構(gòu)成彩色的兩個分量。YUV表示法的重要性是它的亮度信號(Y)和色度信號(U,V)是相互獨立的,也就是由Y信號分量構(gòu)成的黑白灰度圖與用U,V信號構(gòu)成的另外兩幅單色圖是相互獨立的。由于Y,U,V是獨立的,所以可以對這些單色圖分別進(jìn)行編碼。此外,黑白電視能接收彩色電視信號也就是利用了YUV分量之間的獨立性。
YUV表示法的優(yōu)點是可以利用人眼的特性來降低數(shù)字彩色圖像所需要的存儲容量。人眼對彩色細(xì)節(jié)的分辨能力遠(yuǎn)比對亮度細(xì)節(jié)的分辨能力低。若把人眼剛能分辨出的黑白相間的條紋換成不同顏色的彩色條紋,眼睛就不再能分辨出條紋來。由于這個原因,就可以把彩色分量的分辨率降低而不明顯影響圖像的質(zhì)量,因而就可以把幾個相鄰像素不同的彩色值當(dāng)作相同的彩色值來處理,從而減少所需的存儲容量。
對載體圖像(彩色圖像)進(jìn)行彩色空間整數(shù)變換。當(dāng)載體還原時還要通過彩色空間整數(shù)逆變換處理,所以這里介紹算法中的彩色空間可逆整數(shù)變換。根據(jù)HVS水印策略,人眼對亮度的信息不太敏感,而一般的彩色圖像采用RGB彩色空間來表示一幅圖像。所以,首先要將彩色圖像由RGB彩色空間轉(zhuǎn)換到Y(jié)UV彩色空間以得到亮度Y分量。YUV彩色空間與RGB空間的轉(zhuǎn)換關(guān)系見式(1)。
式中:Y表示亮度;U,V用來表示色差;R,G,B分別紅綠藍(lán)。
在上述關(guān)系中,R,G,B的值為整數(shù)(0-255),但由于轉(zhuǎn)換的系數(shù)矩陣不是整數(shù),因此Y,U,V的值也不是整數(shù)。為了得到整數(shù),在這將Y,U,V的值都乘以1 000并取整,假設(shè)取整后的變量為KY,KU,KV,則可得到轉(zhuǎn)換關(guān)系式(2)。
式中:int[?]為取整運算。
通過式(2)就可以建立R,G,B與KY,KU,KV之間的整數(shù)到整數(shù)的可逆變換,它們的逆變換如式(3)。
彩色空間可逆整數(shù)變換用于對載體圖像的預(yù)處理(載體圖像為彩色圖像)。這主要是根據(jù)人類視覺系統(tǒng)(HVS)的特性,人眼對YUV空間中亮度分量Y的敏感性低于RGB彩色空間中各個顏色分量的敏感性。這樣將水印信息嵌入到Y(jié)分量中具有較高的魯棒性。采用整數(shù)可逆轉(zhuǎn)換是由于在接下來的水印嵌入中,將用到離散整數(shù)小波變換,故先要得到1個整數(shù)的預(yù)處理域KY。
整數(shù)小波分解就是把數(shù)字圖像在不同尺度的頻率上進(jìn)行分解和重構(gòu)[4]。經(jīng)過二維離散小波多分辯率分解以后,原始數(shù)字圖像被分解成具有水平、垂直和對角方向在不同分辨率下的多個高頻圖,水平和垂直方向的低頻子帶圖LL1、水平方向的低頻和垂直方向的高頻子帶圖LH1、水平方向的高頻和垂直方向的低頻子帶圖HL1以及水平和垂直方向的高頻子帶圖HH1。若對子帶圖LL1再進(jìn)行小波分解,又可以得到更低分辨率的4個子帶圖像,如此反復(fù),可對數(shù)字圖像進(jìn)行多級小波分解得LHj,HLj,HHj和LLj。其中LLj表示由小波變換分解級數(shù)決定的最大尺度、最小分辨率下對原始圖像的最佳逼近,稱為小波變換子圖,它集中了原始圖像的絕大部分能量,其系數(shù)分布、統(tǒng)計特性與原始圖像相似,有較好的穩(wěn)定性。HHj表示了原始圖像的水平邊緣細(xì)節(jié)、垂直邊緣細(xì)節(jié)和斜邊緣細(xì)節(jié)信息,稱其為高頻子圖。而LHj和HLj則是介于HHj與LLj之間的,可以稱其為中頻子圖。一般我們將高頻子圖和中頻子圖統(tǒng)稱為小波細(xì)節(jié)子圖。細(xì)節(jié)子圖的大部分能量集中在原始圖像的邊緣、輪廓、紋理信息對應(yīng)的一些小波系數(shù)上。低頻域LLj可以不斷的分解下去,直到滿足一定的分辨率要求。圖1分別給出了對二維信號進(jìn)行二維離散小波1級、2級的分解結(jié)果示意圖。本文算法將水印信息嵌入到小波分解的低頻域[5],即LLn(n表示小波分解的級數(shù))。
圖1 二維小波分解示意圖
在選擇小波分解級數(shù)n時有兩種選擇策略:一是根據(jù)要嵌入的水印信息選擇小波分解的級數(shù),另一種是根據(jù)小波分解的級數(shù)選擇嵌入水印的信息量[6]。本算法中采用的是后者即用于有意義二值圖片的嵌入算法,根據(jù)小波分解的級數(shù)自動調(diào)整二值圖片的大小以滿足嵌入要求,同理,分解級數(shù)越大,則二值圖片會被調(diào)整的越小,反之則越大。
該文提出了一種在彩色圖像Y分量的離散小波變換(DWT)域嵌入水印的方案。提取原始載體圖像的KY(經(jīng)過取整后的Y)分量,利用離散小波變換將其進(jìn)行小波分解,得到不同空間、不同分辨率的子帶圖像。選擇在子帶圖像LLn中嵌入水印,其優(yōu)點是經(jīng)小波分解后,KY分量的絕大部分能量都集中在LLn中,其系數(shù)的值非常大,在其中嵌入水印的強(qiáng)度可以適當(dāng)加大,而不影響圖像的視覺效果。在LLn中嵌入水印,經(jīng)受各種攻擊后水印的頑健性最好。
原始載體圖像分別是512×512的真彩色測試圖像,如圖2所示。首先將原始載體圖像進(jìn)行彩色空間轉(zhuǎn)換(由RGB轉(zhuǎn)換到Y(jié)UV)提取KY分量進(jìn)行整數(shù)小波變換,得到低頻分量LLn,然后按式(4)求LLn的平均能量E,并對LLn的系數(shù)平方值按大小排序。根據(jù)LLn的系數(shù)的平方值與E值的比值關(guān)系,確定嵌入水印的強(qiáng)度。比值越大,可以隱藏的水印強(qiáng)度越大。用E表示低頻子帶LLn的能量,其計算公式見(4)。
式中:X(i,j)表示子帶圖像LLn中(i,j)位置像素的值。對X(i,j)按大小值排序,得到一維序列X'(k),k=1~128×128。水印嵌入強(qiáng)度由公式(5)確定。
水印的嵌入公式見(6)
水印提取是水印嵌入的逆過程,具體提取過程如下。
(1)先對可能被破壞的含水印圖像進(jìn)行可逆整數(shù)彩色空間轉(zhuǎn)換,得到Y(jié)UV彩色空間的KY′分量,然后對KY′分量進(jìn)行相應(yīng)級數(shù)的整數(shù)小波分解得到低頻域LLn′;
(2)對于子帶LLn′通過計算提取水印,得到用0,1表示的水印信息。再結(jié)合水印處理過程將得到的信息還原即得到可能已經(jīng)失真的水印。
水印不可見性是數(shù)字水印研究的1個重要內(nèi)容。在這里進(jìn)行水印嵌入對原圖像質(zhì)量的比較,比較參數(shù)使用峰值信噪比(PSNR)來評價原始圖像與含水印圖像間的差別,PSNR值越大,不可感性越好.水印的原圖為同1張圖像,見圖3。對同1張載體圖像分別在不同小波分解級數(shù)下進(jìn)行比較。根據(jù)前面提出的算法[7],不同級數(shù)嵌入的水印圖像在水印原圖的基礎(chǔ)上自動調(diào)整大小以適應(yīng)嵌入域的大小。共選擇7張不同的水印標(biāo)準(zhǔn)圖像作為載體,它們分別是狒狒、F16、漁船、麗娜、歌劇院、辣椒和水,見圖2。
圖2 載體原始圖像
圖3 水印原始圖像
測試時,先將選中的7張圖片分別調(diào)整到512×512大小,然后分別在每張圖片的1到5級小波域中嵌入水印圖片,獲得每次嵌入水印后的圖像的峰值信噪比(PSNR),結(jié)果見表1。在此列舉其中的1幅圖片水印的嵌入效果圖,見圖4,圖中從左到右分別是1級、2級、3級、4級以及5級小波分解域中嵌入水印的效果。
圖4 水印嵌入效果圖
從圖4以及表1中可看出,本文所提出的算法對原圖質(zhì)量的影響較小,故該水印算法是有效的。
表1 水印對圖像的影響PSNR值 dB
水印原圖見圖3,載體的原始圖像為上述7張圖片,見圖2。載體的大小先調(diào)整為512×512,先分別將水印嵌入到7張圖的小波1級分解域中,然后對嵌入后的圖像進(jìn)行JPEG壓縮,即將圖片存儲為jpg格式。然后分別從jpg格式的圖片中提取出水印圖片。最終嵌入的水印圖片見圖5,壓縮域提取出來的水印見圖6,在圖6中,從左到右分別是從狒狒、F16、漁船、麗娜、歌劇院、辣椒及水的JPEG壓縮圖片中提取出來的水印。
從圖6可知,該水印算法可抵抗JPEG壓縮攻擊。
圖5 嵌入的水印
圖6 JPEG壓縮后提取出的水印
基于離散整數(shù)小波變換的水印圖像對原圖質(zhì)量的影響較小且可抵抗JPEG壓縮攻擊,具有抗篡改性和可證明性的優(yōu)點。另外水印的提取并不需要原始載體圖像的參與,實現(xiàn)了真正意義上的盲水印提取。對有意義二值圖片的嵌入與提取結(jié)果較為理想,而對有意義字符串嵌入與提取還需要進(jìn)一步的研究與改善。一方面是由于字符串本身的精確性,只要有一位二進(jìn)制位發(fā)生變化,字符串就會發(fā)生改變;另一方面是由于在提取時字符串信息不象二值圖片容易定位。
[1]COX I J,MILLERM L.The first 50 years of electronic water-marking[J].Journal of Applied Signal Processing,2002(2):126-132.
[2]SWELDENS W.The lifting scheme:a custom-design construction of biorthogonal wavelets[J].Applied and Computational Harmonic Analysis,2001,3(2):186-200.
[3]DAUBECHIES I,SWELDENS W.Factoring wavelet transforms into lifting step[J].Journal of Fourier Analysis and Applications,1998,4(3):247-269.
[4]吳永宏,潘泉,張洪才,等.基于提升框架的整數(shù)小波變換[J].電子與信息學(xué)報,2004(4):659-663.
[5]張曉黎.基于整數(shù)小波變換的盲數(shù)字水印算法[J].計算機(jī)應(yīng)用與軟件,2007(4):32-34.
[6]郝小峰,孫德輝.基于整數(shù)小波變換和零樹編碼的監(jiān)控圖像壓縮[J].微計算機(jī)信息,2006(10):287-289.
[7]范宇,胡訪宇,趙愛華.基于整數(shù)提升小波變換圖像壓縮的優(yōu)化與實現(xiàn)[J].計算機(jī)工程與應(yīng)用,2004(8):81-82.