摘要:該文介紹了數(shù)字水印的原理及實(shí)現(xiàn)方法,提出了一種基于人類(lèi)視覺(jué)系統(tǒng)的DCT數(shù)字圖像水印算法。借助MATLAB編程工具,設(shè)計(jì)并實(shí)現(xiàn)了一個(gè)小型數(shù)字水印系統(tǒng),可以執(zhí)行數(shù)字水印的嵌入、提取和攻擊。從仿真實(shí)驗(yàn)的結(jié)果可看出,該算法具有較強(qiáng)的不可見(jiàn)性及魯棒性。
關(guān)鍵詞:數(shù)字水印;離散余弦變換;人眼視覺(jué)系統(tǒng)
中圖分類(lèi)號(hào):TP18文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2009)33-9307-04
A DCT Digital Watermarking Algorithm Based on HVS
ZHOU Hong
(Huaiyin Institute of Technology, Huaian 223003, China)
Abstract: This paper introduces the principle of digital watermarking and the methods to realize it and then put forward a watermarking algorithm of the digital image which is based on DCT domain and considering the HVS. With Matlab programming tools, a small digital watermarking system has been designed and realized based on the proposed watermark algorithm which can embed, extract and attack a digital watermark. The results of computer simulation show that this watermark algorithm has a strong non-visibility and robustness.
Key words: digital watermarking; DCT; HVS
隨著信息技術(shù)和計(jì)算機(jī)網(wǎng)絡(luò)的迅速發(fā)展及廣泛應(yīng)用,各種多媒體信息(圖像、文本、視頻、音頻等)紛紛以數(shù)碼形式進(jìn)行存儲(chǔ),并通過(guò)網(wǎng)絡(luò)進(jìn)行發(fā)布和傳播。在人們享受著網(wǎng)絡(luò)帶來(lái)的迅速與便捷時(shí),如何保護(hù)這些數(shù)字化信息如版權(quán)保護(hù)、信息安全、數(shù)據(jù)認(rèn)證以及訪問(wèn)控制等,已成為迫切需要解決的問(wèn)題 [1]。由于傳統(tǒng)加密方法對(duì)多媒體內(nèi)容保護(hù)能力有很大的局限性,數(shù)字水印技術(shù)日益被人們所重視,成為了信號(hào)處理和信息安全領(lǐng)域的研究熱點(diǎn)之一。
1 數(shù)字水印
數(shù)字水印(Digital Watermark)技術(shù)作為一種信息隱藏技術(shù),其核心是在不影響數(shù)據(jù)可用性的前提,通過(guò)一定的算法在多媒體信息中嵌入不可移除的標(biāo)志性信息。這些標(biāo)志性信息可以是版權(quán)標(biāo)志、用戶(hù)序列號(hào)或者是產(chǎn)品相關(guān)信息等,以便保護(hù)數(shù)字產(chǎn)品的版權(quán)、證明產(chǎn)品的真實(shí)可靠性、跟蹤盜版行為或者提供產(chǎn)品的附加信息。但與傳統(tǒng)加密技術(shù)不同的是,數(shù)字水印技術(shù)并不能阻止盜版活動(dòng)的發(fā)生。
1.1 基本分類(lèi)
數(shù)字水印按不同的出發(fā)點(diǎn)可分為不同的類(lèi)型。最常見(jiàn)分類(lèi)有:按特性分為:可見(jiàn)和不可見(jiàn)水印;按載體數(shù)據(jù)分為:圖像、音頻、視頻、文本以及網(wǎng)絡(luò)水印等;按檢測(cè)過(guò)程分為:非盲、半盲和盲水印;按內(nèi)容分為:有意義和無(wú)意義水印;按隱藏位置分為:時(shí)(空)域和變換域數(shù)字水印;按用途分為:票據(jù)防偽、版權(quán)保護(hù)、篡改提示和隱蔽標(biāo)識(shí)水印。
1.2 基本特征
數(shù)字水印應(yīng)具備的基本特征主要有[2-4] :
1) 魯棒性:指不因多媒體文件的某種改動(dòng)(信號(hào)處理、幾何失真、欺騙攻擊等)而導(dǎo)致隱藏信息丟失的能力。不同的水印應(yīng)用對(duì)魯棒性要求不一樣。
2) 不可見(jiàn)性(透明性、不可感知性):利用人類(lèi)視覺(jué)系統(tǒng)或聽(tīng)覺(jué)系統(tǒng)屬性,經(jīng)過(guò)一系列隱藏處理,使目標(biāo)數(shù)據(jù)沒(méi)有明顯的降質(zhì)現(xiàn)象,而隱藏的數(shù)據(jù)卻無(wú)法人為地看見(jiàn)或聽(tīng)見(jiàn)。通常用峰值信噪比PSNR (the Peak of Signal to Noise Ratio) 和掩蔽峰值信噪比MPSNR (Masked Peak Signal to Noise Ratio) 來(lái)衡量[5]。
3) 抗篡改性:與抗毀壞的魯棒性不同,抗篡改性是指:水印一旦嵌入在載體中, 攻擊者就很難改變或偽造。
2 數(shù)字水印的實(shí)現(xiàn)
數(shù)字水印系統(tǒng)實(shí)現(xiàn)的典型過(guò)程包括:水印的嵌入和水印的提取或檢測(cè)。
2.1 數(shù)字水印的嵌入
圖1中的水印信息W為任何形式的數(shù)據(jù),如隨機(jī)序列或偽隨機(jī)序列、字符或柵格、二值圖像、灰度圖像或彩色圖像、3D圖像等。水印生成算法G應(yīng)保證水印的唯一性、有效性、不可逆性等屬性。密鑰K通常可在不同環(huán)節(jié)嵌入如:信息預(yù)處理、嵌入點(diǎn)的選擇和調(diào)制控制等,用來(lái)加強(qiáng)安全性,以避免未授權(quán)的恢復(fù)和修復(fù)水印。所有的實(shí)用系統(tǒng)必須使用密鑰或密鑰的組合。
2.2 數(shù)字水印的檢測(cè)
檢測(cè)水印的手段主要兩種:一是在有原始信息時(shí),做嵌入信號(hào)的提取或相關(guān)性驗(yàn)證;二是在沒(méi)有原始信息時(shí),對(duì)嵌入信息做全搜索或分布假設(shè)檢驗(yàn)等。
3 離散余弦變換(DCT)數(shù)字水印算法
3.1 數(shù)字水印算法
從數(shù)字水印算法實(shí)現(xiàn)的角度來(lái)劃分,水印算法基本上可分為兩大類(lèi):一類(lèi)方法是將數(shù)字水印按某種算法直接疊加到圖像的空間域,即空間域算法,另一類(lèi)方法是先將圖像做某種變換(特別是正交變換),然后把水印嵌入到圖像的變換域(Transform Domain)中(如DCT 域,Wavelet 變換域,或其它變換域等),即變換域算法[6]。
較早的數(shù)字水印算法大都是空間域上的,通過(guò)改變某些像素的灰度將要隱蔽的信息嵌入其中。考慮到視覺(jué)上的不可見(jiàn)性,水印一般是嵌入到圖像中最不重要的像素位上( 如LSB : Least Significant Bits)。空間域算法的普遍缺點(diǎn)是:魯棒性差,尤其對(duì)濾波、量化和壓縮攻擊,而且嵌入信息量受到限制不能太多。但空間域方法的計(jì)算速度通常較快,而且很多算法在提取水印和驗(yàn)證水印的存在時(shí)不需要原始圖像。而變換域水印算法則通常具有很好的魯棒性,對(duì)圖像壓縮、常用的圖像濾波以及噪聲均有一定的抵抗力,同時(shí)還可嵌入大量比特?cái)?shù)據(jù)而不可察覺(jué)。因此基于變換域算法的數(shù)字水印技術(shù)更受青睞,逐漸成為水印技術(shù)的主流。
3.2 DCT基本原理
離散余弦變換(Discrete Cosine Transform)簡(jiǎn)稱(chēng)DCT,是變換域水印算法的典型代表,并常被認(rèn)為是對(duì)語(yǔ)音和圖像信號(hào)的準(zhǔn)最佳變換。DCT算法的基本原理是:利用傅立葉變換的對(duì)稱(chēng)性,采用圖像邊界折疊操作將圖像變換為偶函數(shù)(余弦)形式,然后對(duì)這樣的圖像進(jìn)行二維傅立葉變換,變化后的結(jié)果將僅包含余弦項(xiàng)。
3.3 DCT基本公式
一個(gè)長(zhǎng)度為N的序列f(x)的一位離散余弦變換C(u)的定義為:
(1)
它的離散反余弦變換(IDCT)由下式表示:
(2)
其中a(u)有如下定義:
(3)
在數(shù)字圖像處理中使用的是二維DCT,對(duì)一幅N×N的圖像C(u,v),它的DCT變換為:
(4)
它的離散反余弦變換(IDCT)為:
(5)
4 基于人類(lèi)視覺(jué)系統(tǒng)(HVS)的DCT數(shù)字圖像水印算法
4.1 設(shè)計(jì)思想
基于人類(lèi)視覺(jué)系統(tǒng)(Human Vision System,HVS)的自適應(yīng)DCT數(shù)字圖像水印算法的基本思想是:利用HVS對(duì)于圖像的感知特性來(lái)限制水印嵌入的位置和強(qiáng)度,從而提高水印的不可感知性和魯棒性。從信號(hào)處理的角度看,在載體圖像中嵌入數(shù)字水印可以視為在強(qiáng)背景(即原始圖像)下疊加一個(gè)視覺(jué)上看不到的弱信號(hào)(水印)。而對(duì)人類(lèi)視覺(jué)影響最大的圖像因素就是背景照度、背景紋理和信號(hào)頻率,這三點(diǎn)決定了對(duì)比度門(mén)限值,因此只要疊加信號(hào)的幅度低于HVS 的對(duì)比度門(mén)限,視覺(jué)系統(tǒng)就無(wú)法感覺(jué)到信號(hào)的存在。
4.2 基于HVS頻率響應(yīng)函數(shù)選取DCT嵌入?yún)^(qū)域
視覺(jué)系統(tǒng)的頻率響應(yīng)函數(shù)為:
(6)
其中ω為視角正對(duì)的徑向頻率,單位為周/度 (Cycle/Degree)。a、b、c為確定人類(lèi)視覺(jué)特性(HVS)曲線形狀的常數(shù)。當(dāng)ωmax=3周/度時(shí),HVS曲線的形狀可表示為:
(7)
矯正函數(shù)為:
(8)
其中,a=11.636度-1 ,這樣,矯正后的視覺(jué)系統(tǒng)頻率響應(yīng)函數(shù)為:
(9)
利用公式:可將二維DCT系數(shù)(μ,ν)對(duì)應(yīng)的徑向量頻率ω的值求出。其中,ωx是依賴(lài)于觀測(cè)距離的采樣函數(shù),N是DCT變換塊大小。
現(xiàn)將每個(gè)8×8的圖像子塊分別進(jìn)行DCT變換,并將DCT系數(shù)進(jìn)行Zig_Zag排列,然后將DCT系數(shù)變換為相應(yīng)的ω值來(lái)選取每一子塊的嵌入?yún)^(qū)域。如圖3所示。
根據(jù)矯正后的視覺(jué)頻率響應(yīng)函數(shù),所選取的加水印區(qū)域如圖4所示。為了增強(qiáng)算法的穩(wěn)健性,利用了多重嵌入技術(shù),即pi1(i=0,…,5) 用來(lái)嵌入1 bit的水印信息,同理, pi1,pi2,pi3,pi4(i=0,…,5)分別用來(lái)嵌入1 bit的水印信息。該算法中,每個(gè)8×8的子塊可以用來(lái)隱藏4 bit的水印信息。
4.3 嵌入、提取算法的實(shí)現(xiàn)
基于HVS的DCT數(shù)字圖像水印算法的基本實(shí)現(xiàn)思想是先將原始圖像分成8×8的子塊,并分別對(duì)每一子塊進(jìn)行離散余弦變換(DCT),然后隨機(jī)函數(shù)來(lái)選取(1,8)之間的隨機(jī)數(shù),將隨機(jī)數(shù)與水印分塊一起嵌入到DCT變換系數(shù)的位置,然后將嵌入水印信息的DCT系數(shù)的子塊進(jìn)行逆DCT變換,最后合成為嵌入水印圖像。提取算法與嵌入算法相似。
4.3.1 嵌入算法實(shí)現(xiàn)
1)原始圖像和載體水印圖像分別進(jìn)行劃分為I(N1×N2),W(M1×M2)。
2)將I分成8×8的子塊。對(duì)每一個(gè)子塊分別進(jìn)行DCT變換:
(10)
變換后存入數(shù)組cda0中。
3)將W(M1×M2)分成8×8的子塊。
4)取隨機(jī)數(shù)K嵌入到載體圖像中。公式為:
cda1(x+1,y+8)= cda0(x+1,y+8)+alpha*k1
cda1(x+2,y+7)= cda0(x+2,y+7)+alpha*k2
cda1(x+3,y+6)= cda0(x+2,y+7)+alpha*k3
……
cda1(x+8,y+1)= cda0(x+8,y+1)+alpha*k8
其中alpha為50,x和y分別是水印圖像的8×8的子塊數(shù)。
5)對(duì)嵌入水印信息的圖像cda1進(jìn)行IDCT變換。按照水印子塊相對(duì)應(yīng)的位置進(jìn)行放置,組合成一個(gè)完整圖像。
4.3.2 提取算法實(shí)現(xiàn)
1)將待檢測(cè)圖像分成8×8的子塊。對(duì)每個(gè)子塊分別進(jìn)行DCT變換得DEI1m,n(i,j)
(11)
變換后存入cda1中。
2)對(duì)cda1(x+1,y+8),cda1(x+2,y+7),cda1(x+3,y+6)……,cda1(x+8,y+1)位置進(jìn)行信息提取。其中x和y分別是含水印圖像的8x8的子塊數(shù)。
3)將提取的水印信息讀為二維子塊EWI1m,n(i,j),并將EWI1m,n(i,j)按照水印子塊相對(duì)應(yīng)的位置進(jìn)行放置,組合成一個(gè)完整圖像。
5 仿真實(shí)驗(yàn)結(jié)果及分析
本文用MATLAB語(yǔ)言編程,以數(shù)字圖像為實(shí)驗(yàn)對(duì)象,模擬開(kāi)發(fā)小型數(shù)字水印系統(tǒng),并進(jìn)行了相應(yīng)的魯棒性測(cè)試。該系統(tǒng)實(shí)現(xiàn)了基于HVS的DCT數(shù)字圖像水印算法,執(zhí)行水印圖像的嵌入與提取操作,并針對(duì)此算法執(zhí)行高斯噪聲、剪切、濾波、JPEG壓縮等多種信號(hào)處理操作的攻擊測(cè)試。同時(shí)還計(jì)算了峰值信噪比PSNR及水印相似度。
5.1 水印嵌入及提取仿真
從圖5可看出該系統(tǒng)可成功執(zhí)行水印圖像的嵌入與提取操作,具有較好的可見(jiàn)性。
5.2 魯棒性測(cè)試
圖5未受攻擊的水印圖像嵌入提取結(jié)果 圖6白噪聲攻擊后的水印圖像檢測(cè)結(jié)果 圖7高斯低通濾波后的水印圖像檢測(cè)結(jié)果
圖8JPEG壓縮后的水印圖像檢測(cè)結(jié)果 圖9圖像剪切后的水印圖像檢測(cè)結(jié)果圖10剪切后的含水印圖像
圖11 圖像旋轉(zhuǎn)后的水印圖像檢測(cè)結(jié)果 圖12旋轉(zhuǎn)后的含水印圖像
從圖中可看出信號(hào)處理類(lèi)(噪聲、濾波、壓縮)攻擊對(duì)該算法影響微小;而幾何失真類(lèi)(剪切、旋轉(zhuǎn))對(duì)該算法影響較大。
6 結(jié)論
本文在分析了人類(lèi)視覺(jué)系統(tǒng)(HVS)對(duì)DCT水印算法的影響后,提出了一種基于HVS簡(jiǎn)單的DCT域圖像水印算法。該算法根據(jù)人眼視覺(jué)頻率響應(yīng)理論確定水印嵌入位置以實(shí)現(xiàn)盲水印,利用離散余弦變換(DCT)實(shí)現(xiàn)數(shù)據(jù)的嵌入和提取。借用Matlab編程工具,成功地實(shí)現(xiàn)了水印嵌入、提取及攻擊功能。由攻擊測(cè)試結(jié)果可看出此算法具有較好的不可見(jiàn)性及魯棒性。
參考文獻(xiàn):
[1] 王炳錫.數(shù)字水印技術(shù)[M].西安:西安電子科技大學(xué)出版社,2003:1-5.
[2] 李思靜,楊小帆,石磊.數(shù)字水印: 數(shù)字產(chǎn)品所有權(quán)保護(hù)的有力武器[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(10):16-17.
[3] 汪保友,王俊杰,胡運(yùn)發(fā).數(shù)字水印與版權(quán)保護(hù)[J].計(jì)算機(jī)應(yīng)用與軟件,2004,21(1):30-32.
[4] 張榮,陳勇躍.數(shù)字水印技術(shù)在電子信息安全中的應(yīng)用[J].情報(bào)科學(xué),2005,23(1):140-143.
[5] 王麗娜,張煥國(guó).信息隱藏技術(shù)與應(yīng)用[M].武漢:武漢大學(xué)出版社,2003:243-246.
[6] Bhattacharjee S, Kutter M. Compression tolerant image authentication[C].In Proc.IEEE Int.Conf.in Image Processing,1998.