一种基于奇异值分解的鲁棒水印算法
2016-10-31王超
王超
摘 要 本文提出了一种基于奇异值分解的数字水印算法,用于提高水印的鲁棒性。在该算法中,首先,对原始载体图像进行分块的奇异值分解,然后把经过Logistic映射产生的混沌序列调制的水印信号嵌入到分块的奇异值分解的最大系数中的十位数字上去。实验结果表明,该算法对各种攻击具有较强的鲁棒性。
关键词 数字水印 鲁棒性 奇异值分解
中图分类号:TN911 文献标识码:A
0引言
信息媒体的数字化为信息的存取提供了极大的便利性,同时也显著地提高了信息表达的效率和准确度。人们借助于计算机、数字扫描仪、打印机等电子设备可以方便、迅捷地将数字信息传达到世界各地。随之而来的副作用是通过网络传输数据文件或作品使有恶意的个人或团体有可能在没有得到作品所有者的许可下拷贝和传播有版权的内容。
数字水印是指在数字化的数据内容中嵌入隐蔽的记号,它是信息隐藏技术的一个重要分支,主要目的是对数字作品的版权保护和完整性认证。从这两个方面可以将数字水印分为鲁棒水印,脆弱水印和半脆弱水印。鲁棒水印有鲁棒性、安全性和透明性等特点。
本文对大量水印算法进行了研究,提出了一种鲁棒性较高,透明性较好的水印算法。
1水印算法
1.1嵌入水印
水印的嵌入算法流程如图1所示。
1.1.1水印产生
设O={o(i,j)|1≤i≤M,≤j≤N}为水印图像。
(1)利用Arnold变换将图像进行置乱,将置乱次数作为密钥Key1;
(2)提取置乱后的图像的像素值,并生成二值化序列W={w(i)|w(i)∈{0,1},1≤i≤(MN8)}。将w(i)作为初始水印。
(3)利用Logistic映射简单且性能优异的特点生成实值混沌序列X={x(i)|i=1,2,…},其中Logistic迭代函数的初始值为Key1;
(4)用生成的混沌序列X对W进行了调制,得到需要嵌入的水印。
(5)对调制后的水印信号进行置乱。
1.1.2水印嵌入
设Z={z(i,j)|1≤i≤MX,1≤j≤NY}为原始载体图像。
将图像Z进行2€?分块,然后依次对各个分块进行奇异值分解,提取每个分块的Smax。计算Smax的十位数为r。然后按如下方法嵌入水印:
如果水印比特为1,而r为奇数,则不作任何改变;如果r为偶数,则将r加1。
如果水印比特为0,而r为偶数,则不作任何改变;如果r为奇数,则将r减1。
对图像做逆奇异值分解,得到含水印图像Z1。
1.2水印提取算法
水印提取算法的流程如图2所示。
(1)接收到载水印图像Z后,将其进行2€?分块,然后对每个分块进行奇异值分解,求得r1。
(2)根据ri的值进行水印提取,提取方式如下式:
得到提取水印序列W。对W进行逆置乱,再利用密钥KEY1生成的混沌序列对它进行解调。
(3)将解调后的水印序列恢复为原始水印图像,得到最终的水印信息。
2仿真实验
2.1水印嵌入实验
Logistic 迭代函数的初始值选取为K1=0.24,迭代参数选取为K2 =3.966,T1 = 50。
本文以Lena 512€?12 的灰度图像作为载体图像(图3a),以一幅64€?4的灰度图像作为水印图像(图3b)。采用上述水印嵌入算法嵌入水印的载水印图像如图3a所示,计算其峰值信噪比为37.1163。从该图可见,图像嵌入水印后视觉上基本没有差异,实现了水印的不可见性。并且通过对其水印的提取,可以得到提取出来的水印如图3b所示。
2.2水印抗攻击实验
2.2.1 JPEG压缩
对原始图像分别进行质量因子为50、65、80的JPEG压缩,实验结果如图4所示。
2.2.2添加高斯噪声
对原始图像添加噪声方差为0.005和0.01的高斯噪声,实验结果如图5所示。
2.2.3剪切
对原始图像进行左上角1/4处剪切和右半部分剪切实验,实验结果如图6所示。
3结语
本文利用奇异值的稳定性,提出了一种基于奇异值分解的鲁棒水印技术。实验表明,该算法具有良好的不可见性,并且对各种攻击具有较强的鲁棒性。
参考文献
[1] 刘瑞祯,谭铁牛.数字图像水印研究综述[J].通信学报,2000(8):39-48.
[2] Information Technology-JPEG 2000 Image Coding System-Part 8:JPSEC[S]. 2004.
[3] 王丽娜,张焕国,叶登攀.信息隐藏技术与应用[M].武汉:武汉大学出版社,2009.
[4] 吕林涛,郝亮.面向图像内容认证的半脆弱数字水印算法[J].计算机应用,2010(5):1239-1242.