新闻中心

EEPW首页 > 设计应用 > 基于DCT的数字水印改进算法

基于DCT的数字水印改进算法

作者:韦晓林时间:2019-01-29来源:电子产品世界收藏

作者 晓林(东南大学,江苏 南京 211189)

本文引用地址:http://www.eepw.com.cn/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页,欢迎您写论文时引用,并注明出处



评论


相关推荐

技术专区

关闭