1 引言 網絡技術的迅速發展使多媒體數據的傳輸更加容易,信息隱藏和版權保護成為迫切需要解決的問題,數字水印技術是保護數據的有效途徑。不可見性和魯棒性是數字水印系統兩個最重要的特性。水印被嵌入在圖像的一些重要系數中,其抗攻擊的魯棒性較好,但重要系數改變太多,則圖像會產生嚴重失真。所以魯棒性和不可見性是彼此矛盾的。水印技術可分為空域水印技術和變換域水印技術。空域水印算法魯棒性差。變換域算法可使所嵌入水印信號的能量分散到空間的所有像素上,有利于保證水印的不可見性,同時魯棒性強。離散余弦變換DCT(Discrete Cosine Transformation)算法易于在數字信號處理器中快速實現,離散余弦變換域圖像水印與常用的圖像壓縮標準JPEG兼容,對壓縮、濾波和其他一些攻擊具有較強的穩健性。離散小波變換DWT(DiscreteWavelet Transformation)是將信號分解為不同尺度分量的線性運算,其實現是通過信號與尺度變化的濾波器卷積完成的。離散小波變換是一種多分辨率分析方法,在時域和頻域都可表征信號局部特征。小波分解將原始圖像分解為一系列的低頻分量和高頻分量,根據人類感覺系統的掩蔽效應,可將數字水印信息嵌入到原始載體不易被感知的區域,使數字水印具有較強的不可見性。 由于小波變換具有良好的局部時頻分析特性和多分辨率分析特性,而離散余弦變換具有良好的聚能效應。綜合兩種變換的優點,這里提出一種基于DWT和DCT聯合變換的數字水印技術。 2 水印的嵌入算法 水印嵌入算法的主要思想:為了提高水印的安全性,在水印嵌入前先進行混沌加密,然后將宿主圖像經過DWT得到4個子帶:LL、LH、HL、HH,選擇HL作為嵌入子帶。為了使嵌入的水印可以均勻分布在HL子帶,對HL子帶分塊進行DCT變換。將水印嵌入DCT變換后的中頻系數。這里采用經典的比較中頻系數法進行水印嵌入,嵌入過程如圖1所示。 該算法步驟如下: (1)對原始水印圖像進行混沌置亂加密。置亂水印圖像能增強水印算法的安全性。充分利用混沌序列對初值的敏感性高、安全性強、密鑰空間大的特點,對水印圖像進行置亂。混沌序列由Logistic映射產生,按照Logistic映射式式(1)進行迭代,得到序列: 式中,xn∈(0,1),μ為分叉參數。 由Lyapunov指數的計算可知,當3.569 9≤μ≤4時,Lo-gistic映射處于混沌狀態。研究表明,當且僅當μ=4時,映射具有最強的混沌特性,所以在生成混沌序列時取μ=4。xn是實值序列,實值序列不利于計算機處理,通常需要對實值序列進行量化,對xn進行量化得到二值序列Xn。 Logistic序列對初始值敏感,只要設定迭代次數、初始值,就可以得到很多偽隨機序列,因此將初始值作為用戶的密鑰,利用式(1)產生混沌序列混沌序列Xp。加密數字水印的方法很多,這里采用將水印圖像W表示為向量形式Wp,P=1,2,…MxN。Wp作為明文空間,利用混沌序列Xp對水印圖像進行加密,得到加密后的水印圖像Vp: 這里+執行異或運算。解密過程與加密相同,用加密后的水印和混沌序列進行異或運算。將x0=0.800 000 000 1作為用戶的密鑰,圖2為加密后的水印圖像。混沌序列對初值極其敏感,即使密鑰(初值)相差細微,也無法正確解密水印圖像。 (2)對宿主圖像進行一級DCT變換。得到4個子帶LL、LH、HL、HH,為了兼顧透明性和魯棒性,選擇HL作為嵌入子 、帶。提取HL系數組成的矩陣A。 (3)對HL系數組成的矩陣A,按照8x8的大小進行分塊。分成8x8的塊是為了與JPEG壓縮標準兼容。 (4)對分塊后的矩陣進行DCT變換。 (5)對于DCT變換后的第i塊系數,采用比較DCT中頻系數法進行水印的嵌入。比較中頻系數法的思想是:從中頻區域選擇兩個位置鼠Bi(v1,v1)和Bi(v2,v2)進行比較,下標i表示第i塊。可嵌入22個中頻系數,如圖3所示。圖中FL表示塊的低頻部分,FH代表高頻部分。FM是可選擇嵌入的中頻區域,因為嵌入FM區域可避免圖像質量下降,而且能夠提供較好的抗攻擊能力。為獲得較好的抗壓縮攻擊性能,選擇系數時可參考表1的JPEG量化表。選擇的兩個DCT系數應滿足調整它們的大小不會導致載體圖像嚴重降質。因此要選擇JPEG壓縮算法中亮度量化值一樣的系數。從表1能觀察到系數(4,1)和(3,2)或(1,2)和(3,0)量化值相等,較適合用來比較。 水印嵌入算法的具體實現:對于每一個8x8塊,選擇(4,1)和(3,2)一對系數,比較它們大小,確保滿足式(3),若不滿足,交換兩個系數的值。ωi為第i塊嵌入信息位的值。 為了提高魯棒性,對算法做進一步改進。引入控制量α擴大兩個DCT系數差值。引入α雖然會使圖像退化。但能夠降低檢測的誤差。 當ωi=1,系數(4,1)大于系數(3,2),且兩者差值小于α時,按式(4)調整: 當ωi=0,系數(3,2)大于系數(4,1)且兩者差值小于α時,按照式(5)調整: (6)對于嵌入水印信息后的第i塊系數,進行IDCT變換。 (7)按步驟(5)、(6)對其他塊進行水印的嵌入。 (8)進行IDWT變換,得到嵌入水印后的圖像。 3 水印的提取算法 本算法是盲水印算法,提取時無需水印圖像的原宿主圖像。提取水印是嵌人的逆過程,圖4為水印的提取過程。 其步驟可描述如下: (1)對嵌入水印的圖像進行DWT變換。 (2)選取HL子帶,并將其分為8x8的塊,進行DCT變換。 (3)按式(6)提取水印。 (4)按提取出的水印位重建水印圖像,得到加密的水印。 (5)水印圖像使用混沌密鑰進行混沌解密,得到解密的水印。 (6)計算恢復出的水印信號和原水印信號的相似程度。 4 試驗結果 試驗采用大小為512×512的宿主圖像。經DWT一級變換后HL子帶的大小為256×256。將選擇的HL子帶分成8×8的塊,得到1 024個塊。使用這些塊能嵌入1 024位水印位到宿主圖像。則以32×32的二值圖像作為水印嵌入到宿主圖像。 4.1 在無攻擊的情況下 圖5是實驗中應用的宿主圖像和水印圖像。圖6a和圖6b分別描述該算法嵌入水印后的圖像和提取出的水印。為了檢驗該算法的性能,將該算法和直接應用DCT相印嵌入的結果進行比較。圖7為直接應用DCT進行水印嵌入后圖像和提取的水印,可看出,水印能夠被正確從水印圖像中提取,但直接應用DCT算法嵌入水印后的圖像不可見性較低。 表2給出該法和單一DCT法的PSNT和NC值,從中看出在未受到攻擊的情況下,兩種算法的NC均為1。但本方法的峰值信噪比更高,達到36.777 7 dB,因此圖像的質量更好。 4.2 在有攻擊的情況下 為了測量該算法的不可見性和魯棒性,對水印圖像進行一些常見的攻擊實驗。包括高斯噪聲、椒鹽噪聲、高斯低通濾波器、JPEG壓縮、旋轉等攻擊。實驗結果見表3。在嵌入水印后的圖像受到10%高斯噪聲、10%椒鹽噪聲攻擊的情況下,NC的值仍然在0.9以上。當水印圖像受到50%JPEG壓縮攻擊時,NC值接近1。從表中還能觀察到該算法抗高斯低通濾波攻擊的能力較強,但抗旋轉攻擊能力較差,這是因為原始圖像和水印圖像的空間關系被打亂。 5 結束語 提出一種新的基于聯合DWT-DCT變換的數字圖像水印算法。對宿主圖像先進行DWT變換,提取HL子帶,接著對選擇的HL子帶計算DCT,將加密后的水印嵌入到DCT變換后的系數中。該算法特點為: (1)原始水印經混沌序列加密,增加水印的保密性; (2)將水印嵌入到經DWT-DCT變換后的數據塊,比單一的變換域技術具有較好的不可見性和較強的魯棒性能; (3)在嵌入過程中,采用比較中頻系數法,并參考JEPG壓縮模型,提高水印的抗壓縮能力; (4)水印的嵌入位置經大量試驗選擇在分塊DCT域的中頻段,可在魯棒性和透明性之間得到較好的協調; (5)水印檢測無需原始圖像,實現了盲檢測。該算法可用于保護數字圖像版權,具有一定實用價值。 |