离散余弦变换和离散小波变换相结合的数字水印算法研究
2014-01-20许郡
许 郡
(扬州职业大学,江苏 扬州 225009)
数字水印是通过在原始数据中嵌入水印来证实该数据的所有权。近年来,数字水印技术研究取得了很大的进步,除特别指明外,这些算法主要针对图像数据(某些算法也适合视频和音频数据)。算法主要分为空域算法、变化域算法、压缩域算法、NFC 算法、生理模型算法几大类,其中又以空域算法和变化域算法应用范围最广。三种最经典的算法是:(1)Nikolaidis -Pitas 空域算法[1]。文献[1]于1996 年提出了一种在空间域中适当修改随机选择的像素点的亮度值的水印算法,通过比较嵌入水印的像素的平均亮度值和未嵌入水印的像素的平均亮度值来进行水印检测;(2)离散余弦变换的水印算法[2]。简称DCT,是一种实数域变换,其变换核为实数的余弦函数,计算速度较快,它是一种近似最佳变换,很适合于作图像压缩和随机信号处理;(3)离散小波变换的水印算法。小波变换[3,4]在科学研究和工程技术中有着广泛应用,是图像分析和处理领域多分辨分析的有效工具。实际应用过程中,主要使用小波变换的离散形式,即离散小波变换(简称DWT)。
本文在DWT 和DCT 基础上做了改良,将两种算法相结合,先将图像进行小波变换后,再将低频系数经过DCT 处理,最后将水印信号嵌入到低频系数中,确保对任何可接受保真度的处理过程的鲁棒性。
1 改进的数字水印算法
1.1 水印的产生
改进算法具体步骤如下:数字水印不是选用比较常见的二值图,而是选用灰度图像。在嵌入前先对水印图像进行加密,用密钥为伪随机发生器的种子生成加密密钥,用DES 算法加密后得到水印信息W。
1.2 水印的嵌入
水印模板是随机数序列,使用Logistic 映射来构建随机数序列发生器。只要给定合适的μ 值,就能使产生的序列满足混沌[5]特性。为了更好的生成随机数序列,要求3.5699 <μ≤4。在算法里,使用两个Logistic 生成了两组大小相同的混沌序列,将它们相同位置的序列值相加,得到的和再减1。对于一个混沌序列发生器,由两个不同初始条件产生的混沌序列,混沌映射对初始值和参数具有很强的依赖性,能保证信息的安全性,因此赋给两个Logistic 的初值都不同。另外,由于生成的混沌序列初始时会发生振荡,所以两个Logistic都未选用初始段部分序列。
第一步:小波变换。设原始图像为I,大小为N×N,对其进行L 级小波分解,得到不同分辨率级下的多个细节子图(k =1,2,3,j =1,2,…,L)和一个逼近子图GAL,其中原图被分解为cA 和cH、cV、cD 的低频系数和高频系数,每一部分的大小为
对Bk进行DCT 变换,得到:
第三步:嵌入水印。为了增强算法的安全性,选取图像的某一个区域作为水印信息嵌入区(不在整幅图像中嵌入),区域大小的选择参考水印信息量,但原则上不小于图像的四分之一,嵌入的位置由水印信息嵌入者掌握。
在选择的区域中将DCT 系数由大到小排序,然后根据如下公式将水印信息添加到图像中:
其中ai是比例系数,其大小决定了水印信号修改图像频率的强度,在不影响图像质量的前提下通常取0.1。
第四步:离散余弦逆变换与小波变换。嵌入所有水印信息后,做块IDCT 获得嵌入水印后得到低频系数图像,然后进行嵌入水印的图像。
1.3 水印的提取
从待检测的图像中提取水印的过程类似于水印的嵌入过程,根据水印的嵌入过程反推来提取水印,而提取出的水印必须和原始水印进行相似度比较来检测水印是否存在,具体的提取和检测水印的过程如下:
第一步:小波变换。对待测图像进行L 级小波分解,得到不同分辨率级下的多个细节子图和一个逼近子图。
第二步:离散余弦变换。对小波变换的细节分量部分进行离散余弦变换,用v'。
第三步:计算原图像的小波变换,提取小波变换的近似信号做DCT 变换,用v 表示。
第四步:分析水印加入的位置,应用下式恢复水印信号X'i:
第五步:将水印信号解密,得到水印图像。
第六步:利用相似度公式,比较恢复出来的水印信号X'和原水印信号X 的相似程度。
根据相似度的值就可以判断图像中是否含有水印,判断准则是:事先设定一个阀值T,若sim >T,可以判定被测对象中含有水印W,否则,没有水印W。
在水印嵌入和水印提取中都用到了值α,可以称之为水印强度因子,其取值在[0.1,1]之间。如果水印强度因子α 不断增大,水印对原始图像的破坏也就越来越大,水印的不可见性降低。
2 算法的仿真实验和结果分析
选用大小为256 ×256、灰度值为256 的位图lena.bmp(图1 左上)作为原始图像,即水印载体图像。Logisticembed 函数的仿真参数取值为seed=0.7314,u=3.9899,alpha=0.1。
图1 基于混沌系统的数字图像水印算法仿真结果
经仿真实验显示这种算法嵌入水印后,具有很好的视觉效果,嵌入的水印对原始图像的改变很小,以至不易察觉。从响应值可以看出提取出的水印具有唯一性,相似检测值达到32 左右。
嵌入水印的图像加入salt&pepper 噪声后进行水印的检测,响应值为20 左右,可以看出对于这种高频的噪声,这种算法具有很好的抗攻击能力。相似检测值达到11 左右。
对嵌入水印后的图像和原始图像进行对比,以及对加入salt&pepper 噪声后进行水印的检测结果,表明该图像水印算法能成功实现向载体图像中加入水印,并且具有较强的透明性、鲁棒性、无歧义性、通用性和安全性。采用混沌算法来生成随机序列,难伪造,不易被破译,实现了对图像信息的版权保护。
3 结论
本文提出一种DWT 与DCT 相结合的数字水印算法,首先对原始图像一级小波分解,再对其低频系数进行离散余弦变换,水印图像用DES 加密后作为水印信号嵌入到DCT 变换后的像素块中,检测水印的时候需要原始图像,而嵌入算法主要针对的是DCT 变换后的中频余弦系数,从而保证水印存储在图像信号的重要部分,嵌入的信息不容易被破坏。实验结果显示,本算法虽然嵌入水印后图像的质量有所下降,但能够抵抗很多种类的攻击,具有良好的视觉效果和鲁棒性。
[1] 孟兵,周良校,万建伟,等.基于小波变换的静态图像数字水印算法[J]. 计算机辅助设计与图形学学报,2000,12(10):751 -755.
[2] 易开祥. 数字图像加密与数字水印技术研究[D].杭州:浙江大学,2001.
[3] 王丹奎.基于离散小波变换的图像数字水印技术研究[D].北京:北京科技大学,2003.
[4] 梁嘉超. 基于小波变换的数字水印算法研究[D].哈尔滨:哈尔滨工业大学,2001.
[5] ZHENG YONG AI. Controlling chaos using Takagi -Sugeno fuzzy model and adaptive adjustment[J]. Chinese Physics,2006,15(11):2549 -2552.