一种基于PQT和扫描模式的图像水印算法
2022-11-16代遵超房冬丽
代遵超,房冬丽
(中国电子科技集团公司第三十研究所,四川 成都 610041)
0 引 言
技术的发展使得数字产品的传播更加容易。加密算法可以保证信息传输的安全性,但是不能保证作品不被非法篡改。因此,Trikel在1993年提出了数字水印来解决这一问题。近年来,离散余弦变换(Discrete Cosine Transformation,DCT)、离 散 小波变换(Discrete Wavelet Transformation,DWT)等是图像水印的研究热点。
常用的算法如遗传算法(Genetic Algorithm,GA)[1-2]或神经网络(Back Propagation,BP)[3-4]算法能提高数字图像水印的鲁棒性。文献[2]采用简单遗传算法对参数进行优化。本文提出了一种基于二值图像四叉树(Pattern QuadTree,PQT)和扫描模式的水印处理算法,并提出了一种改进的遗传算法(GA)来优化嵌入强度。
1 现有技术基础
1.1 离散小波变换
小波变换[5](DWT)是信号分析的常用方法。本文将图像分割成四个子带:低频LL,水平HL、垂直LH和对角线HH,选择将LL2子带嵌入水印。图1给出了DWT过程。
图1 两级DWT分解过程图
1.2 奇异值分解
奇异值分解(Singular Value Decomposition,SVD)[5-7]通常用于分析矩阵。在SVD分解中,C是图像矩阵,通过SVD变换,得到三个矩阵U,Σ,V。给出了以下公式:
2 提出的算法
2.1 改进的水印加扰算法
扫描(SCAN)是二维图像常用的加密、压缩方法,通常采用几种扫描路径组合达到加扰目的。本文采用四倍扫描(VN,VT,P,S)。S是起始符号,P是生成规则,VT是终端符号集,VN是非终端符号集。Li是i层中的扫描集。Ri j是本文采用的24种扫描模式之一。扫描本质上是通过像素打乱来重排图像像素,文献[6]和文献[7]已证实这是一种无损伤的加扰算法。算法具体过程如下:
式(2)表示有3个层的PQT,L1,L2和L3。式(3)、式(4)、式(5)分别表示L1,L2,L3的扫描模式。
24种扫描模式如图2所示。
图2 扫描模式
PQT图如图3所示。水印加扰效果如图4、图5所示。
图3 PQT加扰
图4 水印
图5 PQT扫描模式加扰
2.2 水印嵌入
水印嵌入过程如图6所示。
图6 水印嵌入过程
嵌入水印的过程描述如下。
步骤1:用PQT和扫描模式加密水印W,得到W´。
步骤2:将BCH编码算法应用于W´得到W´。
步骤3:作两级DWT并获得LL2子带。
步骤4:将LL2划分为8×8块,并在每个块上应用SVD,分解成U,Σ,V。
步骤5:如果W´(i)=1,更改矩阵U满足|U(i,j)|= |U(p,q)|+λ,否则,更改矩阵U满足|U(p,q)|=|U(i,j)|+λ,λ为嵌入强度。具体如下。
(1)如果W´(i)=1,则U(i,j)→U´(i,j),更改如下元素,m范围是1~8。
ΔLL(i,k)代表了矩阵的损伤。根据峰值信噪比(Peak Signal to Noise Ratio,PSNR),定义适应度,并将其应用到遗传算法中,得到最优λ值。
(2)如果W´(i)=0,则U(p,q)→U´(p,q),更改如下元素,m范围是1~8。
步骤6:重复步骤5,直到W´完全嵌入为止。
2.3 水印提取
水印提取的步骤如下。
步骤1:在嵌入水印图像上应用二级DWT并获取LL2子带。
步骤2:将LL2子带划分为8×8子块,并在每个块上应用SVD,从而得到三个矩阵U,Σ,V。
步骤3:如果|U(i,j)|-|U(p,q)|>0,则水印对应的比特位是1。否则,水印对应的比特位数为0。
步骤4:重复步骤3,直到W´完全提取为止。
步骤5:W´由BCH解码,得到W´。
步骤6:通过PQT和扫描模式解扰,得到水印W。
3 实验结果
为了检测所提出算法的鲁棒性以及不可预见性,本文对水印化后的图像使用了多种攻击方法,包括高斯噪声、椒盐噪声、旋转及裁剪攻击。测试结果如表2所示。
表2 测试结果
归一化相关系数NC和图像的峰值信噪比PSNR是衡量图像保真性能的重要指标。本文算法与其他文献的NC和PSNR的对比结果如表4和表5所示。NC值的对比表明,本文算法能抵抗多种攻击方法,图像相似度较为平稳。本文算法PSNR值优于其他文献,表明图像的失真最小。
表4 NC对比
表5 PSNR对比
4 结 语
本文提出了一种图像水印算法,该算法采用PQT、扫描模式、SVD分解和BCH编码,采用遗传算法获得最佳的嵌入强度λ。测试结果表明,该算法能够抵抗多种攻击,在水印受损的情况下,依然可以得到可识别的水印。