1 引言
网络技术的迅速发展使多媒体数据的传输更加容易,信息隐藏和版权保护成为迫切需要解决的问题,数字水印技术是保护数据的有效途径。不可见性和鲁棒性是数字水印系统两个最重要的特性。水印被嵌入在图像的一些重要系数中,其抗攻击的鲁棒性较好,但重要系数改变太多,则图像会产生严重失真。所以鲁棒性和不可见性是彼此矛盾的。水印技术可分为空域水印技术和变换域水印技术。空域水印算法鲁棒性差。变换域算法可使所嵌入水印信号的能量分散到空间的所有像素上,有利于保证水印的不可见性,同时鲁棒性强。离散余弦变换DCT(Discrete Cosine Transformation)算法易于在数字信号处理器中快速实现,离散余弦变换域图像水印与常用的图像压缩标准JPEG兼容,对压缩、滤波和其他一些攻击具有较强的稳健性。离散小波变换DWT(DiscreteWavelet Transformation)是将信号分解为不同尺度分量的线性运算,其实现是通过信号与尺度变化的滤波器卷积完成的。离散小波变换是一种多分辨率分析方法,在时域和频域都可表征信号局部特征。小波分解将原始图像分解为一系列的低频分量和高频分量,根据人类感觉系统的掩蔽效应,可将数字水印信息嵌入到原始载体不易被感知的区域,使数字水印具有较强的不可见性。
由于小波变换具有良好的局部时频分析特性和多分辨率分析特性,而离散余弦变换具有良好的聚能效应。综合两种变换的优点,这里提出一种基于DWT和DCT联合变换的数字水印技术。
2 水印的嵌入算法
水印嵌入算法的主要思想:为了提高水印的安全性,在水印嵌入前先进行混沌加密,然后将宿主图像经过DWT得到4个子带:LL、LH、HL、HH,选择HL作为嵌入子带。为了使嵌入的水印可以均匀分布在HL子带,对HL子带分块进行DCT变换。将水印嵌入DCT变换后的中频系数。这里采用经典的比较中频系数法进行水印嵌入,嵌入过程如图1所示。
该算法步骤如下:
(1)对原始水印图像进行混沌置乱加密。置乱水印图像能增强水印算法的安全性。充分利用混沌序列对初值的敏感性高、安全性强、密钥空间大的特点,对水印图像进行置乱。混沌序列由Logistic映射产生,按照Logistic映射式式(1)进行迭代,得到序列:
式中,xn∈(0,1),μ为分叉参数。
由Lyapunov指数的计算可知,当3.569 9≤μ≤4时,Lo-gistic映射处于混沌状态。研究表明,当且仅当μ=4时,映射具有最强的混沌特性,所以在生成混沌序列时取μ=4。xn是实值序列,实值序列不利于计算机处理,通常需要对实值序列进行量化,对xn进行量化得到二值序列Xn。
Logistic序列对初始值敏感,只要设定迭代次数、初始值,就可以得到很多伪随机序列,因此将初始值作为用户的密钥,利用式(1)产生混沌序列混沌序列Xp。加密数字水印的方法很多,这里采用将水印图像W表示为向量形式Wp,P=1,2,…MxN。Wp作为明文空间,利用混沌序列Xp对水印图像进行加密,得到加密后的水印图像Vp:
这里+执行异或运算。解密过程与加密相同,用加密后的水印和混沌序列进行异或运算。将x0=0.800 000 000 1作为用户的密钥,图2为加密后的水印图像。混沌序列对初值极其敏感,即使密钥(初值)相差细微,也无法正确解密水印图像。
(2)对宿主图像进行一级DCT变换。得到4个子带LL、LH、HL、HH,为了兼顾透明性和鲁棒性,选择HL作为嵌入子 、带。提取HL系数组成的矩阵A。
(3)对HL系数组成的矩阵A,按照8x8的大小进行分块。分成8x8的块是为了与JPEG压缩标准兼容。
(4)对分块后的矩阵进行DCT变换。
(5)对于DCT变换后的第i块系数,采用比较DCT中频系数法进行水印的嵌入。比较中频系数法的思想是:从中频区域选择两个位置鼠Bi(v1,v1)和Bi(v2,v2)进行比较,下标i表示第i块。可嵌入22个中频系数,如图3所示。图中FL表示块的低频部分,FH代表高频部分。FM是可选择嵌入的中频区域,因为嵌入FM区域可避免图像质量下降,而且能够提供较好的抗攻击能力。为获得较好的抗压缩攻击性能,选择系数时可参考表1的JPEG量化表。选择的两个DCT系数应满足调整它们的大小不会导致载体图像严重降质。因此要选择JPEG压缩算法中亮度量化值一样的系数。从表1能观察到系数(4,1)和(3,2)或(1,2)和(3,0)量化值相等,较适合用来比较。
水印嵌入算法的具体实现:对于每一个8x8块,选择(4,1)和(3,2)一对系数,比较它们大小,确保满足式(3),若不满足,交换两个系数的值。ωi为第i块嵌入信息位的值。
为了提高鲁棒性,对算法做进一步改进。引入控制量α扩大两个DCT系数差值。引入α虽然会使图像退化。但能够降低检测的误差。
当ωi=1,系数(4,1)大于系数(3,2),且两者差值小于α时,按式(4)调整:
当ωi=0,系数(3,2)大于系数(4,1)且两者差值小于α时,按照式(5)调整:
(6)对于嵌入水印信息后的第i块系数,进行IDCT变换。
(7)按步骤(5)、(6)对其他块进行水印的嵌入。
(8)进行IDWT变换,得到嵌入水印后的图像。
3 水印的提取算法
本算法是盲水印算法,提取时无需水印图像的原宿主图像。提取水印是嵌人的逆过程,图4为水印的提取过程。
其步骤可描述如下:
(1)对嵌入水印的图像进行DWT变换。
(2)选取HL子带,并将其分为8x8的块,进行DCT变换。
(3)按式(6)提取水印。
(4)按提取出的水印位重建水印图像,得到加密的水印。
(5)水印图像使用混沌密钥进行混沌解密,得到解密的水印。
(6)计算恢复出的水印信号和原水印信号的相似程度。
4 试验结果
试验采用大小为512×512的宿主图像。经DWT一级变换后HL子带的大小为256×256。将选择的HL子带分成8×8的块,得到1 024个块。使用这些块能嵌入1 024位水印位到宿主图像。则以32×32的二值图像作为水印嵌入到宿主图像。
4.1 在无攻击的情况下
图5是实验中应用的宿主图像和水印图像。图6a和图6b分别描述该算法嵌入水印后的图像和提取出的水印。为了检验该算法的性能,将该算法和直接应用DCT相印嵌入的结果进行比较。图7为直接应用DCT进行水印嵌入后图像和提取的水印,可看出,水印能够被正确从水印图像中提取,但直接应用DCT算法嵌入水印后的图像不可见性较低。
表2给出该法和单一DCT法的PSNT和NC值,从中看出在未受到攻击的情况下,两种算法的NC均为1。但本方法的峰值信噪比更高,达到36.777 7 dB,因此图像的质量更好。
4.2 在有攻击的情况下
为了测量该算法的不可见性和鲁棒性,对水印图像进行一些常见的攻击实验。包括高斯噪声、椒盐噪声、高斯低通滤波器、JPEG压缩、旋转等攻击。实验结果见表3。在嵌入水印后的图像受到10%高斯噪声、10%椒盐噪声攻击的情况下,NC的值仍然在0.9以上。当水印图像受到50%JPEG压缩攻击时,NC值接近1。从表中还能观察到该算法抗高斯低通滤波攻击的能力较强,但抗旋转攻击能力较差,这是因为原始图像和水印图像的空间关系被打乱。
5 结束语
提出一种新的基于联合DWT-DCT变换的数字图像水印算法。对宿主图像先进行DWT变换,提取HL子带,接着对选择的HL子带计算DCT,将加密后的水印嵌入到DCT变换后的系数中。该算法特点为:(1)原始水印经混沌序列加密,增加水印的保密性;(2)将水印嵌入到经DWT-DCT变换后的数据块,比单一的变换域技术具有较好的不可见性和较强的鲁棒性能;(3)在嵌入过程中,采用比较中频系数法,并参考JEPG压缩模型,提高水印的抗压缩能力;(4)水印的嵌入位置经大量试验选择在分块DCT域的中频段,可在鲁棒性和透明性之间得到较好的协调;(5)水印检测无需原始图像,实现了盲检测。该算法可用于保护数字图像版权,具有一定实用价值。