黄根岭,刘 成,黄海于
(1.河南省高速铁路运营维护工程研究中心,河南 郑州 450000;2.西南交通大学信息科学与技术学院,四川 成都 611756)
随着信息技术的不断发展发展,人们存储信息的方式发生了巨大变革,由传统的纸质文本逐步被数字化替代,但是数字化存取越来越快速、便捷、高效的同时,也容易被有些不法分子或组织利用,在未经允许的情况下肆意复制和盗版有版权的内容。因此,在复杂的网络环境中如何安全有效地保护信息与数字产品,已经变得日益紧迫[1]。而传统的信息安全加密技术己经无法满足对数字信息产品进行有效的安全保护,为了更好地消除目前存在的隐患,数字水印技术应运而生,它提供了解决这一问题的可能性,已经获得了很大的发展。
本文提出的基于最优块的DWT-DCT-SVD 的数字水印算法,基于离散小波变换(DWT)在图形处理的应用,采用小波系数块信息熵与周围系数块信息熵值波动最小的方法选择最优嵌入块,再结合离散余弦变换(DCT)和奇异值分解(SVD)的方法嵌入水印,保证水印的不可见性和鲁棒性。
图像的离散小波变换一般是通过二维小波变换来实现,小波变换的过程如下图1 所示,首先它将图像数据分割成若干个行与列组成的矩阵,对图像的每一行做一维小波变换获得原始图像在水平方向上的低频分量L 和高频分量H,然后变换所得数据的每一列做一维的小波变换,经过变换之后图像就被分解成左上角的相似的一部分LL1,左下角垂直方向的细节部分LH1,右上角水平方向的细节部分HL1,右下角对角线方向的细节部分HH1,再对其中相似部分LL1再进行一级分解,从而实现图像的二级分解。
图1 图像的小波变换过程
式中:f(t)为L2R空间上的任意函数,ψ(t)为一个基本小波或小波母函数,a为伸缩因子,b为平移因子,Xf(a,b)为f(t)连续小波变换。
通对过两次分解后的图像多分辨率特点进行分析可得,图像多分辨率在空间方向具有很好的选择性,与人类的通过视觉来获取事物的特性过程十分吻合。因此,一般把集中原始图像绝大多数能量的相似部分称为逼近子图[5]。子带图像的左上角细节部分、右上角的细节部分和右下角细节部分分别刻画了原始图像的边缘、轮廓和纹理细节等特征,并都将它们称为细节子图。逼近子图由于保留了原始图像的大部分内容,使其更不容易受到外界影响,具有较强的抗干扰性,稳定性也相对较好而边缘细节子图保留原始图像的细节较少,更则容易受外来噪声、图像处理的攻击,稳定性也较差[6]。
离散余弦变换作为数字信号处理领域最常用的算法之一,也可以同傅里叶变换一样实现快速算法。由于避免了傅里叶变换中的复数运算,离散余弦变换通过实数的正交变换使得计算的速度得到了很大的提升,同时也能够实现很好的能量压缩和去相关的能力,因此该算法在图像压缩领域和数字音频信号压缩等领域都有着普遍的应用[7]。增强水印的抗压缩能力可以通过压缩标准模型的水印嵌入算法来实现,因此,研究离散余弦变换对于数字水印处理技术有着显著的意义[8]。特别是实现离散余弦变换后使得能量集中,同时算法并不复杂,因此可以更容易在数字信号处理器中快速实现。
图像离散余弦变换(DCT)公式如下:
经过调研,国内重点大学和省属老牌院校几乎都成功申请了“省级、国家级计算机实验教学示范中心”建设项目。国内高校的计算机实验教学示范中心蓬勃发展,地方院校认识到了计算机实验中心建设与创新发展的重要性和迫切性,开始研究探索中心建设与改革措施。从现状看,地方高校计算机实验教学中心建设还存在许多问题,主要表现在以下方面。
式中:F(i,j)为离散余弦函数,f(x,y)为图像原始数据。
图像的离散余弦逆变换(IDCT)公式如下:
奇异值分解(Singular Value Decomposition)是矩阵分析应用中一种非常重要的分解方法,尤其是正规矩阵酉对角化在信号处理、数字图像处理、统计学等领域占有重要位置,应用非常广泛[9]。奇异值分解具有转置不变性、旋转不变性、位移不变性以及镜像变换不变性等重要性质,使得奇异值特征在描述图像时更具稳定性。当图像被施加小的扰动时,图像的奇异值不会有很大的变化,而且奇异值所表现的是图像的内蕴特性而非视觉特性,反映的是图像矩阵元素之间的关系。
奇异值分解的公式为:
式中:A是m×n矩阵,U是m×m阶酉矩阵;S是半正定m×n阶对角矩阵;而VT即V的n×n转置矩阵。这样的分解就称作A的奇异值分解。S对角线上的元素即为A的奇异值。
Arnold 变换是俄国数学家Arnold V I[10]在研究环面上的自同态时提出,Amold 变换可分为二维、三维、四维直至N维的变换,主要根据所选择相位空间的不同来进行划分的[10]。一般对于数字图像来说常使用的是二维变换。二维变换可以表示为:
式中:mod()是取模运算,N是正方形图像的边长,(x,y)表示某点在原矩阵中的坐标,(x′,y′)表示变换后该点的坐标。变换可以看作是裁剪和拼接的过程,通过这一过程将离散化的数字图像矩阵中的点重新排列。由于离散数字图像是有限点集,这种反复逐次变换的结果,虽然在开始阶段矩阵中像素点位置的变化出现相当程度的混乱,但是迭代进行到一定的步数,必然又恢复到原来的位置,即Arnold变换具有周期性,我们可以根据Arnold 置乱的周期性进行置乱加密和解密。
本文提出的最优块的DWT-SVD 数字水印算法,首先对载体图像进行3 级小波分解,在HH3 分量上进行分块,利用HH3 分量块的信息熵与HH3分量块的信息熵波动最小,以及HH3 分量块信息熵与周围HH3 分量块信息熵波动最小的原则选出最优嵌入水印块,再结合DCT 和SVD 嵌入水印。
在信息论中信源输出是随机量,因而其不定度可以用概率分布来度量[11],信源的信息熵的公式为:
式中:p(i)是每个符号出现的概率。
信源的信息熵H是从整个信源的统计特性来考虑的,信源的信息熵即是每个符号所含信息量的平均值,它是从平均意义上来表征信源的总体特性的,对于某特定的信源,其信息熵只有一个[12]。
本文选取最优嵌入水印块的原理是通过使图像小波系数块与周围小波系数块的信息熵波动最小,与没分块前的小波系数的信息熵波动最小这两个条件来确定选取的最优嵌入块。
具体实现过程是首先计算小波分解后系数的熵与分块后各块的信息熵差的绝对值,再计算各块的信息熵与周围块的信息熵差的绝对值,找出所得绝对值结果中最小的选为最优嵌入块。
2.2.1 嵌入水印
Step 1 对32∗32 的水印图像进行小波变换,分解得到四个部分LL,LH,HL,HH,对HH 分量进行奇异值分解,A=
Step 2 对512∗512 的载体图像进行3 级离散小波变换,得到64∗64 的四个小波系数LL3,LH3,HL3,HH3,计算HH3 系数的信息熵H0;
Step 3 对64∗64 的HH3 分量上进行16∗16的分块,分别计算每个块的信息熵h(i),根据式(7)选出最优嵌入块,使得最优嵌入块的信息熵与HH3分量的信息熵波动最小,与它周围的HH3 块信息熵波动也最小。
Step 4 对最优嵌入块进行DCT 变换,得到DCT 系数矩阵B;
Step 5 对B进行奇异值分解,B=根据Sz1=Sz+a∗Sw进行嵌入水印,其中a是嵌入水印的强度;
Step 6 根据得到的Sz1,由得到嵌入水印后的HH3 分量块B1;
Step 7 对B1 进行逆离散余弦变换,得到嵌入水印后的小波系数HH3∗;
Step 8 根据HH3∗,进行3 次逆小波变换,得到嵌入水印后的载体图像C。
2.2.2 提取水印
Step 1 对嵌入后的水印图像进行3 级小波分解,得到四个小波分量,并对HH3 进行16∗16 分块,对最优嵌入块进行离散余弦变换得到DCT 系数矩阵,再对DCT 系数矩阵进行奇异值分解,得到奇异值S′;
Step 2 由Sw=(S′-Sw)/a得到水印的奇异值,再由得到提取后的水印A′。
3.1.1 峰值信噪比
图像峰值信噪比(PSNR)在一定程度上反映了图像数据处理前后的图像质量的变化情况,从统计平均看图像数据的变化情况。
在实际的应用中,一般用峰值信噪比作为指标,客观评价图像嵌入水印后的不可感知程度[13],单位为分贝(dB),PSNR 值越高,说明嵌入水印的图像的不可见性越好,其计算公式为:
式中:M和N分为图像的高度和宽度,n为每像素的比特数,一般取8,即像素灰阶数为256,I和I′为当前图像和参考图像,PSNR的单位是dB,数值越大表示失真越小。PSNR 的数值有的时候无法和人眼看到的视觉品质完全一致,有可能PSNR 较高者看起来反而比PSNR 较低者差,这是因为人眼的视觉对于误差的敏感度并不是绝对的,其感知结果会受到许多因素的影响而产生变化(例如:人眼对空间频率较低的对比差异敏感度较高,人眼对亮度对比差异的敏感度较色度高,人眼对一个区域的感知结果会受到其周围邻近区域的影响)。
3.1.2 相似系数NC 系数
相似性系数NC 是衡量提取出来的水印和原始水印的相似程度的重要指标,当水印图像经过多种无意或者有意的攻击后,可分析NC 系数的值,得到数字水印算法的抗攻击的性能[16],其计算公式为:
式中:上述所提到的I(x,y)和I′(x,y)分别表示原始图像和嵌入水印后图像的像素值。
本文的载体图像是512∗512 的lena 图像,水印图像的大小是32∗32,依次对水印图像进行不攻击、添加高斯噪声、通过低通滤波、JPEG 压缩、边缘剪切、旋转10°的攻击实验,实验结果如图2~图7 所示。
图2 未受攻击时的实验结果
图3 高斯噪声攻击时的实验结果
图4 低通滤波攻击时的实验结果
图5 JPEG 压缩攻击时的实验结果
图6 剪切攻击时的实验结果
图7 旋转10 度攻击时的实验结果
计算每个攻击实验数字水印的PSNR 和NC值,并且对比现有3 种算法分析本文算法的不可见性和鲁棒性,四种算法攻击实验的PSNR 值和NC值如表1 和表2 所示。
表1 四种算法攻击实验的PSNR 值
表2 四种算法攻击实验的NC 值
从表1 四种算法攻击实验的PSNR 值可以看出,相比Jiang ZheTao、Nidhi Divecha 和Zhan Hu 的算法,本文的算法对高斯噪声、低通滤波和JPEG 压缩具有更高的PSNR 值,说明本文提出的数字水印算法不可见性更好。从表2 四种算法攻击实验的NC 值可以看出,与其他三种算法对比,本文的算法对添加高斯噪声、通过低通滤波、JPEG 压缩、边缘剪切、旋转10°的攻击均有更高的NC 值,说明本文的算法具有更好的鲁棒性。
改变本文算法水印嵌入的位置,分析分别嵌入在LL3、LH3、HL3、HH3 中最优块DWT-SVD 水印算法的不可见性和鲁棒性,实验结果如表3 和表4所示。
表3 不同嵌入位置攻击实验的PSNR 值
表4 不同嵌入位置攻击实验的NC 值
由表3 和表4 可以看出,基于最优块的DWTSVD 数字水印算法,嵌入位置选在LH3 和HH3 上时,攻击实验得到的PSNR 值和NC 值更大,算法的不可见性和鲁棒性更好,故本文算法的嵌入水印的位置应选在小波系数LH3 和HH3 上。
本文提出的最优块的DWT-DCT-SVD 数字水印算法,利用小波系数块信息熵与周围系数块信息熵波动最小,及小波系数块信息熵与小波系数熵波动最小这两个原则选出最优嵌入水印块,再结合DCT和SVD 技术进行嵌入水印,经实验验证本文提出的算法嵌入在小波系数LH3 或者HH3 上时,对于高斯噪声、低通滤波和JPEG 压缩具有较好的不可见性,对于大多数攻击具有较高的鲁棒性。