<th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
    <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

    <listing id="nb95r"><meter id="nb95r"></meter></listing>
    <thead id="nb95r"><meter id="nb95r"></meter></thead>
    <font id="nb95r"><meter id="nb95r"></meter></font>
    <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

    <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

      <thead id="nb95r"></thead>

      <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>

      新聞中心

      EEPW首頁 > 設計應用 > 基于DCT的數字水印改進算法

      基于DCT的數字水印改進算法

      作者:韋曉林時間:2019-01-29來源:電子產品世界收藏

      作者 曉林(東南大學,江蘇 南京 211189)

      本文引用地址:http://www.ytvs.tw/article/201901/397285.htm

        摘要:隨著社會的發展,信息安全越來越成為人們關注的焦點。技術在版權保護等方面有著非常好的效果,因而成為信息隱藏技術研究領域的重要研究方向。本設計在基本算法上進行了改進,提出了n次嵌入算法,能夠明顯提高水印的嵌入效果。通過測試,結果表明這種設計較好地兼顧了水印技術的不可見性和魯棒性的要求,可以用在知識產權的保護等方面,具有較高的實用性。

        關鍵詞;;

        0 引言

        水印嵌入有很多種方法,其中廣泛使用的方法是在DCT變換域上嵌入水印。DCT(離散余弦變換,Discrete Cosine Transform)是與傅里葉變換相關的一種變換,類似于離散傅里葉變換。但是離散傅里葉變換需要進行復數運算,盡管有FFT可以提高運算速度,但在圖像實時處理中非常不便。而DCT除了具有一般的正交變換性質外,也是一種準最佳變換。另外,在靜止圖像編碼標準JPEG中,使用了離散余弦變換。因此,使用DCT進行水印添加可以提高抗JPEG壓縮能力。因此本設計選擇在DCT域進行水印嵌入。

        1 基本DCT算法

        對于彩色圖片,基本DCT算法的流程圖1所示。首先將RGB圖片轉成YUV格式,然后再將圖像矩陣分成互不重疊的8*8塊,DCT模塊對其中的Y分量進行8*8 DCT變換,其后Watermarker將讀取的水印信息嵌入對應的DCT系數上,后經IDCT反變換輸出嵌入水印的Y分量,而后經YUV2RGB輸出嵌入后的RGB流。另外,為了保證水印信息的安全性,基本DCT會加入了Arnold置亂和混沌加密模塊。Arnold置亂將圖像像素信息打亂的操作,從而使得水印圖像變的雜亂無章。這其實是一種加密操作,置亂的迭代次數就是密鑰1。混沌加密是將混沌序列與水印信息逐個進行異或處理,其中混沌序列是對初值極度敏感的非周期的類隨機序列,不同的初值會產生完全不一樣的序列,因此可將這個初值當作密鑰2。即使水印被正確的提取,沒有這兩個密鑰,也不能恢復出原水印,因此保證了水印的安全性。

      1549699292232494.jpg

        圖1中比較核心的模塊是Watermarker模塊,該模塊實現水印信息的嵌入,即將二值水印(0和1的序列)加到8*8的DCT變換域上。本例中載體圖片大小為800800(可分為100100個88塊),而水印圖片為200200,所以每個88的DCT矩陣需要嵌入4個水印信息,也就是需要選擇4個DCT系數(s1~s4)進行嵌入。另外,本設計選擇盲水印嵌入,即提取水印時不需要原載體圖片參與。因此,還需選擇4個參考系數(r1~r4)。由于DCT模塊是按列輸出DCT矩陣的,所以參考系數r選擇在嵌入系數s上一列位置。系數選擇位置如下圖所示:

      nEO_IMG_2.jpg

        具體嵌入方法為:讀取水印信息w(這里w取1或-1),按下列公式更改s系數的值,其中T是選定的閾值:

       0.1.jpg

        可以看出,如果水印信息w=-1,則s=r-T。反之,s=r+T。提取水印時只需判斷r系數和對應s系數的大小,即可提取嵌入的水印。T的選取對載體圖片和提取的水印圖片都有很大影響。T越小,對載體圖片的影響越小,但提取出的水印質量越差。相反,T越大,嵌入水印的載體圖片越差,而提取出的水印質量越好。因此為了同時保證載體圖片和提取水印的質量,提出了的算法。

        2 改進DCT算法

        本文提出水印嵌入對前面的設計進行改進。在前面提到T的選取影響載體圖片和從中提取水印的質量,而且對兩者的影響是相反的。由圖3可以看出T=5時基本DCT提取出的水印有較多的雜點,一般情況下想要提高水印圖片質量的方法是增加T值,但這樣會使載體圖片的質量變差。看起來兩者不可兼得,但是事實上可以通過多次DCT來同時得到好的嵌入水印圖片和水印圖片,如圖4所示。

      1549699330415050.jpg

      1549699330610004.jpg

        理想情況下,如果嵌入水印的圖片未遭受任何攻擊,那么提取出的水印應該沒有誤差,但事實上由于Y分量的“截取誤差”會導致在沒有任何攻擊的情況下提取出的水印有雜點,如圖5所示。這里的截取誤差指:Y分量的取值范圍為-128~127,而IDCT輸出的Y分量有時會超出這個范圍,所以需要截取,大于127的取127,小于-128的取-128。截取誤差會改變r系數和對應s系數的大小關系,從而導致水印像素點的判決錯誤。當然,還有可能是量化誤差引起的。圖5和圖6分別為T=5時1次DCT和3次DCT提取水印結果。

        從圖6可以看出n次DCT提取出的水印有很大改善,而產生這種改善的具體原因還有待分析。一般情況下,n=2水印圖片就會有明顯的改善。另外n次循環后,T值并沒有累加,對比圖5和圖6發現左列嵌入水印圖片的質量是差不多的,說明T值并沒有在循環中累加。

        提取水印的質量與T的選取有很大關系,表1為不同T下水印圖像質量的測評。從表1可以看出T選取越大,對載體圖片的影響就越大。相反的,提取出的水印質量就越好。從T=10起,水印的NC值就一直保持為1,如果是一次循環DCT,要想達到NC=1,需要更大的T值。這說明水印能完整無差的提取出來,證明了算法的高魯棒性。

        3 攻擊測試

        為了驗證水印算法的魯棒性,對嵌入水印圖片進行攻擊,再按照水印提取算法從隱藏有水印的圖像中提取出水印序列,比較提取出來的水印和原始水印,來檢測水印的算法的抗攻擊性能,越相似,該水印系統的魯棒性越強。下列圖為各種攻擊下的水印提取結果圖

        圖7為裁剪攻擊測試效果。由于加入了Arnold置亂的原因,剪切所丟失的水印信息分布在整個水印圖片上,所以依然可以從中提取出水印的大致內容。

      nEO_IMG_7.jpg

        圖8和圖9分別為方差為0.005和0.01高斯噪聲攻擊的效果。對噪聲的抵抗性與參數T的選取有關,T越大則能抵抗更大的噪聲攻擊。

        表2給出本設計的水印檢測對品質因數由100到20的JPEG壓縮魯邦的實驗。表中附圖為后處理后的結果,T值為40。

      1549699456948649.jpg

      1549699456675682.jpg

        表3為各種攻擊下的的魯棒性測試。有關參數利用歸一化相關值NC和峰值信噪比PSNR來表示。結果表明這種水印算法對各種攻擊具有很好的隱蔽性和魯棒性。

        參考文獻

        [1]郭丹.基于變換域的彩色圖像水印的研究與實現[D].西北大學,2013.

        [2]梁亮亮.變換域自適應數字圖像魯棒水印算法研究[D].江西理工大學,2017.

        [3]張海彥.基于擴頻的數字視頻水印技術研究[D].河北科技大學,2016.

        [4]王星茹.抗剪切攻擊的彩色圖像水印算法研究[D].西安電子科技大學,2015.

        [5]楊一言.擴頻水印序列的研究及開發平臺的實現[D].北京工業大學,2014.

      本文來源于科技期刊《電子產品世界》2019年第2期第88頁,歡迎您寫論文時引用,并注明出處



      評論

      技術專區

      關閉
      v98彩票是不是骗局

        <th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
        <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

        <listing id="nb95r"><meter id="nb95r"></meter></listing>
        <thead id="nb95r"><meter id="nb95r"></meter></thead>
        <font id="nb95r"><meter id="nb95r"></meter></font>
        <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

        <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

          <thead id="nb95r"></thead>

          <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>

            <th id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></th>
            <nobr id="nb95r"><menuitem id="nb95r"><var id="nb95r"></var></menuitem></nobr>

            <listing id="nb95r"><meter id="nb95r"></meter></listing>
            <thead id="nb95r"><meter id="nb95r"></meter></thead>
            <font id="nb95r"><meter id="nb95r"></meter></font>
            <sub id="nb95r"><menuitem id="nb95r"></menuitem></sub>

            <sub id="nb95r"><meter id="nb95r"><dfn id="nb95r"></dfn></meter></sub>

              <thead id="nb95r"></thead>

              <sub id="nb95r"><meter id="nb95r"><cite id="nb95r"></cite></meter></sub>