<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 模擬技術(shù) > 設(shè)計應(yīng)用 > 一種基于糾錯編碼的小波域數(shù)字圖像水印技術(shù)

          一種基于糾錯編碼的小波域數(shù)字圖像水印技術(shù)

          作者: 時間:2008-02-21 來源:網(wǎng)絡(luò) 收藏
          摘要:提出一種基于數(shù)字水印算法,該算法在檢測時不需要原始圖像,實現(xiàn)了盲檢。算法中對水印圖像進(jìn)行了置亂和混沌加密處理,提高了抗幾何攻擊的能力和安全性,的引入使水印抗攻擊能力明顯增強。實驗結(jié)果表明該算法較好地保持了圖像質(zhì)量,對一般的信號處理,如剪切、JPEG壓縮、噪聲等有很好的魯棒性。
          關(guān)鍵詞:;小波變換;圖像置亂:混沌序列


          1 引言
          多媒體數(shù)據(jù)在網(wǎng)上交易和傳送日益增多,由于數(shù)字信息極易被篡改、復(fù)制與散布,因此如何對數(shù)字作品的知識產(chǎn)權(quán)進(jìn)行保護(hù)已經(jīng)成為迫切需要解決的問題。近年來迅速發(fā)展的數(shù)字為解決該問題提供了新的有效途徑。數(shù)字水印是以噪聲的形式,向數(shù)字產(chǎn)品中嵌入版權(quán)信息,在不影響視覺和聽覺效果的前提下達(dá)到版權(quán)保護(hù)的目的。
          小波變換域上的數(shù)字水印方法兼有時空域方法和DCT變換域方法的優(yōu)點,基于DWT域的數(shù)字是目前主要的研究方向。盲水印的檢測只需要密鑰,不需要原始數(shù)據(jù),而且盲水印的檢測更方便和安全,是研究的重點。目前,國內(nèi)外提出了許多有關(guān)盲水印的算法,但這些算法大都需要提供原始圖像的部分信息,如水印的嵌入位置信息等,因此不是真正意義上的盲水印。筆者提出一種的盲水印算法,該算法利用魯棒性小波嵌入理論在小波變換的低頻區(qū)域嵌入,并且水印在檢測和提取過程中不需要任何來自原始圖像的信息。為了進(jìn)一步提高盲水印的魯棒性,引進(jìn)了簡單的糾錯編碼技術(shù)。

          2 糾錯原理和糾錯碼的編碼方法
          2.1 糾錯原理
          本算法采用(7,4)漢明碼。(7,4)漢明碼的最小碼距do為3,它是可以糾正單個隨機錯誤的高效率分組碼。
          2.2 糾錯編碼
          2k個n重集合C稱為線形分組碼,當(dāng)且僅當(dāng)它是n維線性空間Vn中的1個k維子空間。
          (n,k)線性分組碼的編碼問題是指在滿足一定條件下根據(jù)k個信息元求得n-k個校驗元。由于(n,k)線性分組碼字組成了維線性空間Vn中的一個k維子空間,因此這2k個碼字完全可由k個線性無關(guān)的矢量組成,設(shè)k個碼字分別為:cl,c2……,ck,則


          碼中任一碼字均可由基底的線性組合生成,即Ci=miG,其中mi為信息元。
          2.3 譯碼
          設(shè)發(fā)送端發(fā)送yHT=(c+e)HT,接收端得到碼字xi=(xn-1,xn-2,……x0)。由G可以得到一致校驗矩陣H:


          產(chǎn)生錯誤無非是由1變成0或是由0變成1,因此用錯誤圖樣e=(en-1,en-2……e0)來表示,當(dāng)傳送的碼字的某位發(fā)生錯誤時,相應(yīng)的e中該位為1,無錯就為0。


          3 水印圖像的生成
          設(shè)二值水印圖像W={Wij, 0≤i<M,0≤j<N},其中wij∈{O,1}。因為編碼時用(7,4)漢明碼,所以這里設(shè)MN=4L。
          (1)對水印圖像做置亂處理
          采用Anode矩陣置亂法把K和變換次數(shù)作為密鑰傳遞,并把置亂后的水印圖像按行序變換為一維序列W’(i)={0≤iMxN},與置亂后水印圖像一一對應(yīng)。
          (2)對水印圖像進(jìn)行糾錯編碼
          首先把W’(i)分為L組長為4的碼組,然后對每個碼組進(jìn)行糾錯編碼。假設(shè)信息元為a6a5a4a3,由生成矩陣:


          可得監(jiān)督碼元a2a1a0。信息元和監(jiān)督碼元組成水印信號經(jīng)糾錯編碼后的碼元:a6a5a4a3a2a1a0。水印信息變?yōu)閃”(i)={O≤i7xL}。
          (3)對生成的水印信息進(jìn)行加密
          采用Logistic混沌序列對水印信息進(jìn)行加密處理,產(chǎn)生長度與水印信號相等的序列,再對序列傲二值化處理,最后與水印信息進(jìn)行異或運算,提高水印的安全性。

          4 水印信息的嵌入
          假設(shè)載體圖像為X(i,j)={0≤ip,0≤jq}(一般p>M,q>N)。Cox等人認(rèn)為圖像水印應(yīng)放在視覺上最重要的分量上。由于視覺上重要的分量是圖像信號的主要成分,圖像信號的大部分能量都集中在這些分量上,在圖像有一定失真的情況下,仍能保留主要成分,即視覺上重要的分量的抗干擾能力較強,因此將水印嵌入在這些分量上,可獲得較好的魯棒性。筆者選擇在低頻系數(shù)中嵌入水印信息,算法如下:
          對原始圖像進(jìn)行二級小波變換,根據(jù)人眼視覺特性計算出低頻各個點的視覺誤差門限。根據(jù)門限選取與水印尺寸相同的門限的小波系數(shù),并根據(jù)門限的大小選取1個閾值把系數(shù)分成二類,大于門限的為I類,小于門限的為Ⅱ類。
          對于I類將水印信息嵌入在小波系數(shù)整數(shù)部分的第四位,Ⅱ類則嵌入在整數(shù)部分的第三位。具體算法如下:如果嵌入位置數(shù)據(jù)與水印值相同,則不改變小波系數(shù);如果系數(shù)值為1且水印值為0,則改變系數(shù)值并且把低位整數(shù)部分變?yōu)閘,如果系數(shù)值為O且水印值為1,則改變系數(shù)值并把低位整數(shù)部分變?yōu)?。

          5 水印信息的提取
          提取過程是嵌入過程的反過程。首先對圖像進(jìn)行相同級數(shù)的小波變換,再通過計算視覺門限得到水印信息的嵌入位置,根據(jù)嵌入時小波系數(shù)的關(guān)系提取水印信息。根據(jù)提取的水印信息對提取的信息元進(jìn)行糾錯。由G得校驗矩陣H:

          最后生成與加密處理相同的混沌序列解密,再對圖像進(jìn)行反置亂處理以獲得檢測到的水印圖像。

          6 實驗結(jié)果與分析
          筆者利用上述算法進(jìn)行了計算機仿真實驗。原始載體圖像為256256的Lena灰度圖像,如圖1(a)所示。水印圖像為32x32的“武漢理工”字樣的二值圖像,如圖l(b)所示。進(jìn)行二級小波變換時,混沌加密序列初始值:x01=0.613,μ1=3.784。
          本算法在Matlab 6.5環(huán)境下實現(xiàn)。圖1(c)是嵌入水印后的圖像。圖l(d)是經(jīng)置亂加密后的水印圖像。圖l(f)是對含有水印的圖像加入強度為O.02的椒鹽噪聲后的圖像,圖1(f)是提取的水印圖像。圖1(g)是對含有水印圖像進(jìn)行質(zhì)量因數(shù)為60%的JPEG壓縮后的圖像,圖1(b)是提取的水印圖像。圖1(i)是對含有水印圖像豎直方向剪切84列的后圖像,圖1(j)是提取的水印圖像。表l列出在各種攻擊方式下檢測的圖像峰值信噪比PSNR和水印的歸一化相似度NC。由實驗結(jié)果可知,該算法對常見的圖像處理攻擊具有較好的魯棒性和可感知性。


          7 結(jié)束語
          本文提出一種基于糾錯編碼和小波變換的數(shù)字,并且實現(xiàn)了盲檢。對水印進(jìn)行置亂和混沌加密處理,使水印具有很好的安全性。采用糾錯編碼技術(shù)使水印針對一般的攻擊具有更好的抵抗性能。實驗表明本文算法具有較高的安全性和較大的實用價值。



          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();