新聞中心

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

基于DCT的數(shù)字水印改進算法

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

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

本文引用地址:http://butianyuan.cn/article/201901/397285.htm

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

  關(guān)鍵詞;;

  0 引言

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

  1 基本DCT算法

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

1549699292232494.jpg

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

nEO_IMG_2.jpg

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

 0.1.jpg

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

  2 改進DCT算法

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

1549699330415050.jpg

1549699330610004.jpg

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

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

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

  3 攻擊測試

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

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

nEO_IMG_7.jpg

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

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

1549699456948649.jpg

1549699456675682.jpg

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

  參考文獻

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

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

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

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

  [5]楊一言.擴頻水印序列的研究及開發(fā)平臺的實現(xiàn)[D].北京工業(yè)大學,2014.

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



關(guān)鍵詞: 數(shù)字水印 DCT n次DCT 201902

評論


相關(guān)推薦

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

關(guān)閉