梁 猛,赵 惠
(西安邮电大学 电子工程学院, 陕西 西安 710121)
提高信息隐藏[1]容量有助于较大容量信息的隐式传输,图像信息隐藏技术的容量提升是信息隐藏研究的热点[2]。目前提升隐藏容量的算法主要是基于变换域方法[3-4],变换域分为离散小波变换和离散余弦变换,离散小波变换具有良好的时频局部特性及较高的安全性[5-6],在容量扩充方面具有更好的特性。基于分块的图像小波变换域信息隐藏算法实现简单、抗攻击性强、鲁棒性较好[5]。文献[7]中对小波系数进行分块,根据小波特征树的对应关系进行信息隐藏,该算法对于裁剪攻击的鲁棒性较好。文献[8]提出了一种将分块离散小波变换与分块离散余弦变换结合的算法进行信息隐藏,该算法具有较好的抗攻击性。但上述两种算法的容量都较小,适合版权保护等领域,而很难用于隐藏存储和隐蔽通信等领域[3]。
针对基于分块的离散小波变换域信息隐藏算法容量有限的缺点,本文拟提出一种通过分块复用来增加信息容量的隐藏算法。该算法将小波系数分块进行重叠,利用分块数量的增加进行较大容量数据的隐藏。首先将DWT域水平分量和垂直分量的小波系数进行重叠分块,然后定义不同的数学逻辑关系进行信息的隐藏,最后进行分块整合,完成信息的隐藏。
复用技术最初是在信道传输中提出来的,它是在发送端将多路信号进行组合,使多路信号共享一个信道,接收端再将组合信号分离出来,最大限度提高信道利用率[9-10]。在图像信息隐藏算法中,为了提高信息隐藏容量,将复用思想引入到图像信息隐藏算法中,提出小波系数分块复用。
小波系数分块复用就是将图像经过离散小波变换后,对部分小波系数进行重叠式分块,使小波分量较无重叠分块拥有更多分块个数,从而提高小波系数利用率。提取信息时,再将重叠分块分离开,分别对每块系数进行信息提取,以实现隐藏信息容量提升。分块模型如图1所示。
图1 分块模型
为了使算法具有通用性,采用灰度图像作为载体图像,对二值图像信息进行隐藏。根据Mallat的塔式分解算法[11],图像经过一层小波变换后分解成大小为原图1/4的4个子图像,分别为低频分量LL、水平分量LH、垂直分量HL和高频分量HH。低频分量含有原图片的大部分信息,虽然在此部分隐藏信息具有很好的抗攻击性,但是低频分量的改变对视觉影响较大,不利于隐藏容量的提高。图像只有少部分能量集中在水平分量LH、垂直分量HL和高频分量HH。高频分量含有原图像的能量最少并且频率最高,如果将信息隐藏到高频分量中,在图像经过低通滤波器时会损失大量的信息。基于上述问题,将秘密信息隐藏到水平分量LH和垂直分量HL中。
步骤2(重叠分块)对水平分量LH和垂直分量HL小波系数分别进行有重叠分块,分块大小为4×4,设其中第i个分块的小波系数为矩阵Ii。
步骤3(第一部分信息的隐藏)隐藏时选取每块中的2个点Ii(2,2)和Ii(3,3)进行隐藏,为了提高算法的信噪比,减少小波系数改变的幅度,定义1个阈值T1(T1>0)。
(1) 若隐藏信息i1(1,i)=0,判断每块中的2个系数是否同时满足Ii(2,2)<0和Ii(3,3)<0,若不满足,则对系数进行处理使之满足上述逻辑关系。由于2个点处理方式相同,以Ii(2,2)为例
若0 若Ii(2,2)>T1或者Ii(2,2)=0,则 (2) 若隐藏信息i1(1,i)=1,判断每块中的2个系数是否同时满足Ii(2,2)>0和Ii(3,3)>0,若不满足,则对系数进行处理使之满足上述逻辑关系。以Ii(2,2)为例 若-T1 若Ii(2,2)<-T1或者Ii(2,2)=0,则 步骤4(第二部分信息的隐藏)通过比较每个分块中的第1行与第4行4个系数与每块中间4个系数的均值大小进行信息隐藏。Ii(1,1)、Ii(1,2)、Ii(4,1)和Ii(4,2)为所选的4个系数,中间4个点的均值 为了使算法更加灵活,定义一个改变因子T2,改变T2的大小可以直接观察实验结果,分析算法性能。 (1) 若隐藏信息i2(1,i)=0,判断每块中的系数是否都满足 Ii(1,1) 若不满足,则对系数进行处理使之满足逻辑关系 (2) 若隐藏信息i2(1,i)=1,判断每块中的系数是否都满足 Ii(1,1)>Ag、Ii(1,2)>Ag、 若不满足,则对系数进行处理使之满足逻辑关系 步骤5(小波系数的分块合并)小波系数分块合并是小波系数重叠分块的逆过程,将每一块小波系数进行重叠合并,恢复小波系数矩阵原有大小。 步骤6(图像的小波逆变换)对隐藏了信息的图像进行小波逆变换,得到载密图像。 步骤1(载密图像小波变换)将含有秘密信息的载体图像进行DWT变换得到各自的水平分量LH和垂直分量HL频带系数。 步骤2(重叠分块)对水平分量LH和垂直分量HL小波系数进行有重叠分块。分块方式与隐藏信息分块方式相同。 步骤3(第一部分信息的提取)若每个分块中Ii(2,2)和Ii(3,3)这2个点的值都小于0,则秘密信息i1(1,i)=0;若Ii(2,2)和Ii(3,3)这2个点的值都大于0,则秘密信息i1(1,i)=1。 步骤4(第二部分信息的提取)求每块中间4个点的平均值Ag。若Ii(1,1)、Ii(1,2)、Ii(4,1)和Ii(4,2)的值都小于Ag,则秘密信息i2(1,i)=0;若Ii(1,1)、Ii(1,2)、Ii(4,1)和Ii(4,2)的值都大于Ag,则秘密信息i2(1,i)=1。 选取大小为512×512大小的灰度图像Lena作为载体图像,待隐藏秘密信息选取180×180大小的二值图像。实验中对载体图像以haar小波作为小波基函数进行小波一级分解,并选取LH和HL系数分量进行信息的隐藏。 从算法原理来看,参数阈值T1用来控制LH、HL参数改变的范围,改变因子T2用来调整LH、HL参数改变的大小。当阈值T1和改变因子T2增大时,对LH和HL中部分系数改变将增大,使隐藏的失真越大,在一定程度上会对隐藏图像的视觉效果造成影响。 但从另一方面来说,载体图像LH和HL系数容许可失真的范围越大,算法的鲁棒性就越强。这样在选择阈值T1和改变因子T2时,既应考虑隐藏图像的视觉效果,也应尽量增强算法的鲁棒性。经过反复试验,T1和T2取3时算法的鲁棒性最好。 本文采用峰值信噪比[12]和误码率对算法进行度量,误码率定义为 其中m×n为秘密图像的像素数,f2(i,j)为原始秘密图像,f1(i,j)为恢复出的秘密图像。 实验中,取参数阈值T1=3,改变因子T2=3。原始灰度载体图像和隐藏秘密信息后的灰度载体图像,如图2所示。 图2 图像隐藏仿真结果 从图2可以看出,算法在提高隐藏容量的基础上具有较好的视觉效果,并且在接收端几乎能无误差的恢复出秘密信息。根据峰值信噪比和误码率公式得,载密图像的峰值信噪为36.042 8dB,误码率为0.000 4。 本文算法的隐藏容量和隐秘图像的峰值信噪比与其他DWT分块算法的比较,如表1所示。 表1 不同算法的隐藏容量与峰值信噪比值的比较 本文算法与其他同类算法相比较,同等条件下,大小为512×512大小的灰度图像Lena能够隐藏35 056 bit信息,图像的隐藏容量有大幅度提高。载密图像峰值信噪比为36.042 8 dB,图像的隐藏效果较好。 从图2(b)的载密图像中提取信息,原始秘密图像、提取出的秘密图像、受到参数为0.002的椒盐噪声后提取出的秘密图像、受到1/16裁剪攻击后提取出的秘密图像信息,如图3所示。 图3 恢复仿真结果 从图3中可以看出,本文算法在提升二值数据隐藏容量的基础上,能够对抗一般程度的攻击。 通过小波系数分块复用来增加图像信息隐藏容量,将小波水平分量和垂直分量小波系数重叠分块进行信息隐藏,利用Lena图像进行仿真及性能分析,结果表明,载体图像可以隐藏35 056bit二值图像信息,隐藏容量较其他同类算法有了明显的提升;对其进行抗攻击分析,一般噪声及裁剪攻击后,载密图像仍能恢复出秘密信息,算法能够对抗一般攻击。
Ii(4,1)>Ag、Ii(4,2)>Ag,2.2 提取秘密信息
3 实验结果及分析
3.1 参数确定
3.2 性能测试
3.3 容量分析
3.4 抗攻击分析
4 结语