一種基于糾錯(cuò)編碼的小波域數(shù)字圖像水印技術(shù)
關(guān)鍵詞:糾錯(cuò)編碼;小波變換;圖像置亂:混沌序列
1 引言
多媒體數(shù)據(jù)在網(wǎng)上交易和傳送日益增多,由于數(shù)字信息極易被篡改、復(fù)制與散布,因此如何對(duì)數(shù)字作品的知識(shí)產(chǎn)權(quán)進(jìn)行保護(hù)已經(jīng)成為迫切需要解決的問題。近年來迅速發(fā)展的數(shù)字水印技術(shù)為解決該問題提供了新的有效途徑。數(shù)字水印是以噪聲的形式,向數(shù)字產(chǎn)品中嵌入版權(quán)信息,在不影響視覺和聽覺效果的前提下達(dá)到版權(quán)保護(hù)的目的。
小波變換域上的數(shù)字水印方法兼有時(shí)空域方法和DCT變換域方法的優(yōu)點(diǎn),基于DWT域的數(shù)字水印技術(shù)是目前主要的研究方向。盲水印的檢測(cè)只需要密鑰,不需要原始數(shù)據(jù),而且盲水印的檢測(cè)更方便和安全,是研究的重點(diǎn)。目前,國內(nèi)外提出了許多有關(guān)盲水印的算法,但這些算法大都需要提供原始圖像的部分信息,如水印的嵌入位置信息等,因此不是真正意義上的盲水印。筆者提出一種小波域的盲水印算法,該算法利用魯棒性小波嵌入理論在小波變換的低頻區(qū)域嵌入,并且水印在檢測(cè)和提取過程中不需要任何來自原始圖像的信息。為了進(jìn)一步提高盲水印的魯棒性,引進(jìn)了簡單的糾錯(cuò)編碼技術(shù)。
2 糾錯(cuò)原理和糾錯(cuò)碼的編碼方法
2.1 糾錯(cuò)原理
本算法采用(7,4)漢明碼。(7,4)漢明碼的最小碼距do為3,它是可以糾正單個(gè)隨機(jī)錯(cuò)誤的高效率分組碼。
2.2 糾錯(cuò)編碼
2k個(gè)n重集合C稱為線形分組碼,當(dāng)且僅當(dāng)它是n維線性空間Vn中的1個(gè)k維子空間。
(n,k)線性分組碼的編碼問題是指在滿足一定條件下根據(jù)k個(gè)信息元求得n-k個(gè)校驗(yàn)元。由于(n,k)線性分組碼字組成了維線性空間Vn中的一個(gè)k維子空間,因此這2k個(gè)碼字完全可由k個(gè)線性無關(guān)的矢量組成,設(shè)k個(gè)碼字分別為:cl,c2……,ck,則
碼中任一碼字均可由基底的線性組合生成,即Ci=miG,其中mi為信息元。
2.3 譯碼
設(shè)發(fā)送端發(fā)送yHT=(c+e)HT,接收端得到碼字xi=(xn-1,xn-2,……x0)。由G可以得到一致校驗(yàn)矩陣H:
產(chǎn)生錯(cuò)誤無非是由1變成0或是由0變成1,因此用錯(cuò)誤圖樣e=(en-1,en-2……e0)來表示,當(dāng)傳送的碼字的某位發(fā)生錯(cuò)誤時(shí),相應(yīng)的e中該位為1,無錯(cuò)就為0。
3 水印圖像的生成
設(shè)二值水印圖像W={Wij, 0≤i<M,0≤j<N},其中wij∈{O,1}。因?yàn)榫幋a時(shí)用(7,4)漢明碼,所以這里設(shè)M×N=4L。
(1)對(duì)水印圖像做置亂處理
采用Anode矩陣置亂法把K和變換次數(shù)作為密鑰傳遞,并把置亂后的水印圖像按行序變換為一維序列W’(i)={0≤i<MxN},與置亂后水印圖像一一對(duì)應(yīng)。
(2)對(duì)水印圖像進(jìn)行糾錯(cuò)編碼
首先把W’(i)分為L組長為4的碼組,然后對(duì)每個(gè)碼組進(jìn)行糾錯(cuò)編碼。假設(shè)信息元為a6a5a4a3,由生成矩陣:
可得監(jiān)督碼元a2a1a0。信息元和監(jiān)督碼元組成水印信號(hào)經(jīng)糾錯(cuò)編碼后的碼元:a6a5a4a3a2a1a0。水印信息變?yōu)閃”(i)={O≤i<7xL}。
(3)對(duì)生成的水印信息進(jìn)行加密
采用Logistic混沌序列對(duì)水印信息進(jìn)行加密處理,產(chǎn)生長度與水印信號(hào)相等的序列,再對(duì)序列傲二值化處理,最后與水印信息進(jìn)行異或運(yùn)算,提高水印的安全性。
4 水印信息的嵌入
假設(shè)載體圖像為X(i,j)={0≤i<p,0≤j<q}(一般p>M,q>N)。Cox等人認(rèn)為圖像水印應(yīng)放在視覺上最重要的分量上。由于視覺上重要的分量是圖像信號(hào)的主要成分,圖像信號(hào)的大部分能量都集中在這些分量上,在圖像有一定失真的情況下,仍能保留主要成分,即視覺上重要的分量的抗干擾能力較強(qiáng),因此將水印嵌入在這些分量上,可獲得較好的魯棒性。筆者選擇在低頻系數(shù)中嵌入水印信息,算法如下:
對(duì)原始圖像進(jìn)行二級(jí)小波變換,根據(jù)人眼視覺特性計(jì)算出低頻各個(gè)點(diǎn)的視覺誤差門限。根據(jù)門限選取與水印尺寸相同的門限的小波系數(shù),并根據(jù)門限的大小選取1個(gè)閾值把系數(shù)分成二類,大于門限的為I類,小于門限的為Ⅱ類。
對(duì)于I類將水印信息嵌入在小波系數(shù)整數(shù)部分的第四位,Ⅱ類則嵌入在整數(shù)部分的第三位。具體算法如下:如果嵌入位置數(shù)據(jù)與水印值相同,則不改變小波系數(shù);如果系數(shù)值為1且水印值為0,則改變系數(shù)值并且把低位整數(shù)部分變?yōu)閘,如果系數(shù)值為O且水印值為1,則改變系數(shù)值并把低位整數(shù)部分變?yōu)?。
5 水印信息的提取
提取過程是嵌入過程的反過程。首先對(duì)圖像進(jìn)行相同級(jí)數(shù)的小波變換,再通過計(jì)算視覺門限得到水印信息的嵌入位置,根據(jù)嵌入時(shí)小波系數(shù)的關(guān)系提取水印信息。根據(jù)提取的水印信息對(duì)提取的信息元進(jìn)行糾錯(cuò)。由G得校驗(yàn)矩陣H:
最后生成與加密處理相同的混沌序列解密,再對(duì)圖像進(jìn)行反置亂處理以獲得檢測(cè)到的水印圖像。
6 實(shí)驗(yàn)結(jié)果與分析
筆者利用上述算法進(jìn)行了計(jì)算機(jī)仿真實(shí)驗(yàn)。原始載體圖像為256×256的Lena灰度圖像,如圖1(a)所示。水印圖像為32x32的“武漢理工”字樣的二值圖像,如圖l(b)所示。進(jìn)行二級(jí)小波變換時(shí),混沌加密序列初始值:x01=0.613,μ1=3.784。
本算法在Matlab 6.5環(huán)境下實(shí)現(xiàn)。圖1(c)是嵌入水印后的圖像。圖l(d)是經(jīng)置亂加密后的水印圖像。圖l(f)是對(duì)含有水印的圖像加入強(qiáng)度為O.02的椒鹽噪聲后的圖像,圖1(f)是提取的水印圖像。圖1(g)是對(duì)含有水印圖像進(jìn)行質(zhì)量因數(shù)為60%的JPEG壓縮后的圖像,圖1(b)是提取的水印圖像。圖1(i)是對(duì)含有水印圖像豎直方向剪切84列的后圖像,圖1(j)是提取的水印圖像。表l列出在各種攻擊方式下檢測(cè)的圖像峰值信噪比PSNR和水印的歸一化相似度NC。由實(shí)驗(yàn)結(jié)果可知,該算法對(duì)常見的圖像處理攻擊具有較好的魯棒性和可感知性。
7 結(jié)束語
本文提出一種基于糾錯(cuò)編碼和小波變換的數(shù)字水印技術(shù),并且實(shí)現(xiàn)了盲檢。對(duì)水印進(jìn)行置亂和混沌加密處理,使水印具有很好的安全性。采用糾錯(cuò)編碼技術(shù)使水印針對(duì)一般的攻擊具有更好的抵抗性能。實(shí)驗(yàn)表明本文算法具有較高的安全性和較大的實(shí)用價(jià)值。