摘 要: 針對(duì)現(xiàn)有盲水印算法" title="盲水印算法">盲水印算法穩(wěn)健性差的問(wèn)題,,提出一種新的數(shù)字圖像盲水印方案。詳細(xì)介紹了利用LDPC碼良好的糾錯(cuò)性能以及改進(jìn)的盲水印算法,,嵌入及提取水印的具體算法,并通過(guò)實(shí)驗(yàn)驗(yàn)證算法的穩(wěn)健性和復(fù)雜度。
關(guān)鍵詞: 數(shù)字水印" title="數(shù)字水印">數(shù)字水印 LDPC碼 離散余弦變換
隨著現(xiàn)代數(shù)字技術(shù)的發(fā)展,數(shù)據(jù)媒體的復(fù)制和傳輸越來(lái)越廣泛,。與此同時(shí),版權(quán)的保護(hù)措施顯得相對(duì)薄弱,。在此情況下,,引進(jìn)數(shù)字水印技術(shù)" title="數(shù)字水印技術(shù)">數(shù)字水印技術(shù)顯得至關(guān)重要,。數(shù)字水印技術(shù)通過(guò)一定算法將水印信息(如公司標(biāo)志,、版權(quán)序列號(hào)等)嵌入到媒體中,但不影響媒體的使用,。數(shù)字水印分為明文水印和盲水印,。明文水印在檢測(cè)過(guò)程中需要原始數(shù)據(jù),具有較強(qiáng)的穩(wěn)健性,,但存儲(chǔ)成本較高,;盲水印的檢測(cè)不需要原始數(shù)據(jù),存儲(chǔ)成本低,較為實(shí)用,,但其穩(wěn)健性稍差,。
低密度校驗(yàn)LDPC(Low Density Parity Check)碼[1,2]是繼Turbo碼之后的又一性能趨近香農(nóng)限的優(yōu)秀碼種,。實(shí)驗(yàn)證明它在多方面具有突出優(yōu)點(diǎn):逼近香農(nóng)限的性能,;描述和實(shí)現(xiàn)簡(jiǎn)單;適合硬件實(shí)現(xiàn),;在碼長(zhǎng)較大時(shí)LDPC碼性能優(yōu)于Turbo碼且譯碼復(fù)雜度更低,。
文獻(xiàn)[3]提出基于Turbo碼的水印算法,利用Turbo碼的糾錯(cuò)性能來(lái)改善水印傳輸中的誤碼率,。本文利用性能更優(yōu)的LDPC碼來(lái)改善水印傳輸?shù)恼`碼率,,以增強(qiáng)水印的穩(wěn)健性。
本水印系統(tǒng)的結(jié)構(gòu)框圖如圖1所示,。原始圖像采用256×256像素的灰度Lena圖像,。原始水印采用16×32像素的字母“W”的二值圖像(像素值為0或1)。交織采用偽隨機(jī)交織器,。
1 水印的LDPC編碼及嵌入
1.1 水印的LDPC編碼
一個(gè)(n,,j,k)的LDPC碼由它的校驗(yàn)矩陣H定義,。其中n表示碼長(zhǎng),,j、k分別表示校驗(yàn)矩陣H的每行和每列中含1的個(gè)數(shù),,其他元素為0,。一般,j<k,,j<<(n×k)/j,,k<<n。
正則LDPC碼中的每列(行)的列(行)重相等,,若不相等則為非正則LDPC碼,。LDPC碼的H矩陣一般由非系統(tǒng)形式給出。(10,,2,,5)的H矩陣如下,其Tanner圖如圖2所示,。
LDPC碼的校驗(yàn)矩陣的行對(duì)應(yīng)校驗(yàn)方程,,即校驗(yàn)位,列對(duì)應(yīng)著傳輸?shù)奈?,即信息位,。它們之間的關(guān)系可以用Tanner圖來(lái)表示:如果hij=1,,則表示第i個(gè)校驗(yàn)位和第j個(gè)信息位之間存在一條連線。例如上面的正則LDPC碼H矩陣對(duì)應(yīng)的Tanner圖,,由圖2所示(上端5個(gè)節(jié)點(diǎn)對(duì)應(yīng)校驗(yàn)比特,,下端10個(gè)節(jié)點(diǎn)對(duì)應(yīng)信息比特)。
LDPC碼的編碼過(guò)程主要依賴于校驗(yàn)矩陣H的構(gòu)造,,可歸納為下列幾個(gè)步驟:
(1)生成一個(gè)全0矩陣,,然后隨機(jī)在每列插入j個(gè)1;
(2)調(diào)整行重,,盡量使行重保持一致,;
(3)調(diào)整列中1的位置,使得相鄰兩列1的位置在行上不重疊,;
(4)消除矩陣中的短循環(huán)(長(zhǎng)度為4的環(huán)),;
(5)通過(guò)高斯" title="高斯">高斯-約旦變換,把H變成系統(tǒng)形式H=[PT,,I1],,其中I1為M階的單位矩陣。
求得該H矩陣對(duì)應(yīng)的生成矩陣G=[I2,,P],,其中I2為N-M階的單位陣。用信息比特去乘生成矩陣G得到編碼后的碼字,,即完成編碼過(guò)程,。
本算法采用正則LDPC碼,碼長(zhǎng)為32,,校驗(yàn)矩陣每列含1的個(gè)數(shù)j=3,,碼率r=1/2。將原始水印的二值圖像進(jìn)行偽隨機(jī)亂序后,,作為信息比特輸入到LDPC編碼器進(jìn)行碼率為1/2的編碼,,得到的輸出結(jié)果為32×32的二值矩陣V。
1.2 水印的嵌入算法
本文采用在DCT變換域上嵌入水印,。采用盲嵌入方法,,并對(duì)文獻(xiàn)[4]作了改進(jìn)和簡(jiǎn)化。具體過(guò)程為:
(1)將原始圖像I分成8×8像素的子塊M8×8(i),,分塊進(jìn)行DCT,,得到系數(shù)矩陣N8×8(i),i=1,,2,,……1 024,;
(2)將二值矩陣V組成長(zhǎng)為1 024的序列W(i),;同時(shí),生成兩個(gè)長(zhǎng)度為10的偽隨機(jī)數(shù)序列S0、S1,;選中N8×8(i)的10個(gè)特定的次高頻系數(shù)C(i,,j);對(duì)于N8×8(i),,更新這10個(gè)DCT系數(shù)(其中α為嵌入因子):
2 水印的提取及譯碼
2.1 水印提取過(guò)程
采用改進(jìn)的盲檢測(cè)算法,。過(guò)程如下:
2.2 水印的LDPC譯碼過(guò)程
將檢測(cè)出來(lái)的二值矩陣進(jìn)行LDPC譯碼。置信傳播BP算法,,又稱和積算法SPA(Sum Product Algorithm),,是最普遍的LDPC碼譯碼算法" title="譯碼算法">譯碼算法[2]。這種算法的優(yōu)點(diǎn)是:運(yùn)算可以完全并行,,因此譯碼速度極高,,譯碼復(fù)雜性很低,其運(yùn)算量不會(huì)因?yàn)榇a長(zhǎng)增加而急劇增加,。本文的譯碼算法采用BP迭代譯碼算法,。主要包括以下四個(gè)步驟:(1)概率初始化:對(duì)特定的信道(本文假設(shè)為高斯信道)設(shè)置信息比特的先驗(yàn)概率。(2)橫向步驟:由信息比特的先驗(yàn)概率按照置信傳播算法得出各校驗(yàn)比特的后驗(yàn)概率,。(3)縱向步驟:由校驗(yàn)比特的后驗(yàn)概率得出信息比特的后驗(yàn)概率,。(4)似然值判決:將各信息比特的后驗(yàn)概率的比值取對(duì)數(shù)得到似然值,根據(jù)其符號(hào)做出硬判決,,得到譯碼結(jié)果,,則譯碼結(jié)束;若不滿足,,則跳轉(zhuǎn)至步驟(2),,進(jìn)行反復(fù)迭代,直到滿足條件,,得出正確的譯碼結(jié)果,。如果循環(huán)次數(shù)達(dá)到預(yù)先設(shè)定值但仍不滿足條件,就停止循環(huán),,宣告譯碼失敗,。
3 實(shí)驗(yàn)結(jié)果及分析
仿真在Matlab 6.5 平臺(tái)上進(jìn)行。LDPC碼的碼率為1/2,,譯碼最大迭代次數(shù)設(shè)置為100,。嵌入因子α=0.1。實(shí)驗(yàn)圖像如圖3所示,。
水印圖像的質(zhì)量用峰值信噪比PSNR進(jìn)行質(zhì)量評(píng)價(jià),。峰值信噪比PSNR為39.51dB時(shí),由圖3(c)可以看到,含水印的圖像與原始圖像的視覺效果無(wú)太大差異,。因此,,本算法具有良好的隱蔽性,。
為了驗(yàn)證本算法的穩(wěn)健性,本文采用了幾種信道攻擊試驗(yàn),,以考察檢測(cè)到的水印質(zhì)量,。由于嵌入水印前是否加入LDPC編碼對(duì)原始圖像視覺效果的影響不明顯,因此本文重點(diǎn)是針對(duì)水印質(zhì)量在有無(wú)LDPC編碼的情況下做出比較,。
(1)加噪,。將高斯噪聲和椒鹽噪聲加到含有水印的圖像中,考察噪聲對(duì)提取出的水印質(zhì)量的影響,。
(2)旋轉(zhuǎn)處理,。對(duì)含水印圖像進(jìn)行旋轉(zhuǎn)45度進(jìn)行了試驗(yàn)。
(3)剪切,。對(duì)含有水印的圖像左上角剪切1/4,,考察其對(duì)水印提取效果的影響。
(4)高通濾波,。通過(guò)增強(qiáng)圖像的高頻分量以減小圖像的模糊程度,,也稱為銳化。
(5)JPEG壓縮,。將含水印的圖像進(jìn)行質(zhì)量參數(shù)為0~100的JPEG有損壓縮編碼,。選定質(zhì)量參數(shù)為10時(shí)對(duì)提取出的水印效果作比較。
有無(wú)LDPC碼的抗攻擊效果對(duì)比如表1所示,。從表中的各種攻擊實(shí)驗(yàn)結(jié)果看出,,對(duì)原始水印采用了LDPC編碼之后,提取出的水印質(zhì)量均有明顯的改善,。
基于LDPC編碼的新型數(shù)字圖像盲水印方案具有如下優(yōu)點(diǎn):(1)與普通水印相比,,該方案不依賴原始圖像;(2)水印對(duì)加噪,、旋轉(zhuǎn),、剪切、濾波,、JPEG壓縮等攻擊所表現(xiàn)出的抵抗能力比未加LDPC編碼時(shí)更強(qiáng),;(3)總體復(fù)雜度低。LDPC碼的編譯碼復(fù)雜度比同性能的Turbo碼低很多,,因此該方案具有很強(qiáng)的實(shí)用性,。
參考文獻(xiàn)
1 Gallager R G.Low-density parity-check codes[J].IRE Transactions on Information Theory,1962,;(1):21~28
2 Gallager R G.Low-density parity-check codes[A].Cam-bridge,,Mass,1963
3 陳心浩,,陳軍波.基于Turbo碼的數(shù)字水印技術(shù).電視技術(shù),,2003,;(8):73~75
4 徐亞哲,金聰.一種新的DCT域盲數(shù)字水印嵌入和檢測(cè)方法.計(jì)算機(jī)工程與應(yīng)用,,2004;(2):47~49
5 David J C.Good error-correcting codes based on very sparse matrices.IEEE Transactions on Information Theory,,1999,;45(2):399~431
6 Cox I J著,王穎譯.數(shù)字水印.北京:電子工業(yè)出版社,,2003