方春城,林若波
(揭阳职业技术学院 机电工程系,广东 揭阳 522051)
随着现代信息技术的广泛应用,数字媒体版权保护越来越受到重视,数字水印(digital watermarking)技术就是在这种背景下产生的[1-3].水印技术按不同嵌入域,可分为频域(变换域)和空域[1-4],变换域算法是当前的研究热点,它是将水印嵌入到载体的变换域里,其抗攻击性能较好,因此得到广泛的应用.本文结合DCT(discrete cosine transform)变换的特点,提出一种改进的自适应水印算法.
水印信息一般采用随机序列、序列号或者有特殊意义的图像等.为提高水印信息的安全性,在嵌入前有必要做预处理.这里采用Arnold变换对水印信息进行预处理.该变换的核心思想是将图像的像素进行有规律的调整[2,4-6],直到图像变得无规则,该变换可归纳为
(1)
其中,(M,N),(M′,N′)分别是水印图像进行Arnold变换前后的像素,P为图像的大小.本文采用40×40像素的二值图像作为水印,图1是水印图像经过Arnold变换前后的图像,可见水印经过5次以上Arnold变换开始变“乱”,经过Arnold变换可以达到加密效果.
图像经DCT变换后,大部分能量集中在中低频段系数,低频段系数稍微的改动,在感官上很容易被觉察,高频段系数在遇到压缩等攻击时容易丢失,因此常常把水印嵌入DCT变换的中频段系数[1-3].对载体图像进行8×8 DCT变换,选取每个图像子块一位中频段系数进行水印嵌入.按zigzag排列求取该位系数与前后各一位系数的平均值、DCT系数矩阵主对角线系数平均值,比较嵌入位与这2个平均值的大小,修改嵌入位系数大小,实现水印信息嵌入.
水印嵌入位选择如图2,选取每个图像子块DCT变换后中频系数A,即D(3,2)作为水印嵌入位,按zigzag排列选取与其相邻的2个系数B、C,即D(4,1)、D(2,3),并计算三者的平均值M=(A+B+C)/3,再计算主对角线系数的平均值Q;比较A,M,Q之间的大小,将A作为“游标”,如果A在M与Q之间,代表“1”;A小于或大于M,Q的最小值或者最大值,代表“0”.为提高水印的精度,引入强度因子α.
嵌入过程:
Step1 读取水印图像W和载体图像C;
Step2 对水印图像进行Arnold置乱加密,载体图像进行8×8 DCT变换;
Step3 选择当前子图像块的嵌入位系数A即D(3,2),及按zigzag排列的前后2个系数B、C,即D(4,1)、D(2,3),并计算它们的平均值M=(A+B+C)/3;
Step5 读取水印信息位Wi,判断该位是否为“1”,若是,则不修改嵌入位;否则,A=M±α,如果A
Step6 判断水印信息是否结束,如果还没结束则选择下一子图像块并返回Step3;
Step7 重构载体C′,C′即为隐蔽载体.
通过判断嵌入位系数A与M、Q之间的大小关系,如果A在M与Q之间,提取“1”;A小于或大于M、Q的最小值或者最大值,提取“0”.
提取过程:
Step1 读取隐蔽载体图像C′,并进行8×8像素DCT变换;
Step2 选择当前子图像块的嵌入位系数A,即D(3,2),及按zigzag排列的前后2个系数B、C,即D(4,1)、D(2,3),并计算它们的平均值M=(A+B+C)/3;
Step4 比较A与M、Q的大小,如果A∈[min(M,Q), max(M,Q)],则提取“1”,否则提取“0”;
Step5 判断水印信息是否提取结束,如果还没结束,则选择下一子图像块并返回Step2;
Step6将提取的信息进行解处理,得到水印信息W′.
用峰值信噪比(peak signal-to-noise ratio, PSNR)[5-8]和归一化相关系数(normalized correlation coefficient, NC)[5-10]评价隐蔽载体图像和水印图像的质量.
选用512×512像素、256级灰度lena图像作为原始载体C,以40×40像素二值图像作为水印W进行实验;水印图像经过5次Arnold置乱加密,α分别为0.05和0.08.α越大,稳健性越好,但载体的不可感知性就越差[2,7].图3(a)为α=0.05时的隐蔽载体、加密水印图像及经过Arnold反变换的水印图像;图3(b)为α=0.08时对应的结果.通过实验可以看出,α为0.05和0.08时,2幅隐蔽载体图像在感官上的变化不明显,但PSNR值有所减小,NC值有所增大;可见α的增大可以提高水印的精度.
进行攻击实验:分别加椒盐噪声、旋转(20°)、直方图均衡化、剪切、中值滤波、JPEG压缩攻击、涂改等.受到各种攻击后的隐蔽载体图像如图4,提取的水印如图5.将对应的PSNR值和NC值归纳为表1.
表1 在不同攻击方式下水印提取效果(α=0.08)
结果椒盐(0.01)旋转(20°)直方图均衡化剪切正中间1/4中值滤波JPEG压缩(quality=50)任意涂改PSNR/dB25.261811.14816.91869.690333.585834.050419.8292NC0.76840.80140.91790.82590.7750.72920.8567
表1的数据显示,隐蔽载体受到椒盐攻击、旋转(20°)、直方图均衡化、剪切正中间1/4、涂改等5种攻击时,隐蔽载体的PSNR值均不超过20 dB,且剪切正中间1/4攻击时甚至小于10 dB,仍然能够恢复出水印图像,而且相应的NC值都大于0.7,由此可见,本算法鲁棒性较强.
文献[2]提出一种自适应DCT域水印嵌入算法,该算法比较嵌入位及相邻2个系数的大小,通过修改嵌入位大小实现水印嵌入.文献[3]是经典的DCT域水印嵌入算法,该算法直接比较相邻2个DCT系数的大小,并根据水印信息确定是否交换它们的位置而实现水印嵌入.分别用本算法与文献[2-3]算法进行实验,并将数据归纳于表2,将实验结果进行比较,如图6.
表2 本算法与文献[2-3]算法实验数据
强度因子α 本文算法 文献[2]算法 文献[3]算法 PSNR/dBNCPSNR/dBNCPSNR/dBNC0.0153.43600.766951.82060.836646.71560.98810.0251.87460.876050.52360.911945.805010.0449.11910.950247.93000.970244.396210.1043.54280.975942.74010.991939.971410.1441.01140.980540.30700.997937.81621
通过图6进一步比较不难发现,虽然本算法水印提取效果比文献[2-3]的效果稍差一点,其对应的NC值仍然大于0.7,仍能够保证水印的有效性,但本算法隐蔽载体的PSNR值却远大于文献[2-3]对应的值,隐蔽效果明显优于文献[2-3]的算法,可见本算法在3种算法中隐蔽性最好.虽然文献[3]算法提取的水印效果要好一点,但是,该算法中强度因子α对图像质量破坏更为明显.
本算法通过设置一个“游标”,比较“游标”与嵌入位及前后2个系数的平均值、主对角线系数平均值的关系,根据水印信息调节嵌入位系数的大小,从而实现水印的自适应嵌入.水印嵌入前先进行预处理,达到加密的效果.本算法在图像质量、隐蔽性、鲁棒性等方面明显优于文献[2-3]的算法,但本算法的不足在于水印的提取效果要稍差于后2种算法.从实验数据和分析可以看出,本算法具有较好的抗攻击能力,水印的鲁棒性、稳健性和提取效果得到进一步提升.
参考文献:
[1] 方春城.基于Web的信息隐藏设计与应用[D].广州:中山大学,2010.
[2] 方春城,谭忠明,林若波,等.基于DCT域的自适应数字水印算法[J].山东理工大学学报:自然科学版,2012,26(2):72-76.
[3] 王丽娜,郭迟,李鹏.信息隐藏技术实验教程[M].武汉:武汉大学出版社:2004:194-207.
[4] 赵峰,袁东风.基于DCT域的数字纹理图像置乱评价方法[J].吉林大学学报:信息科学版,2008,26(1):27-30.
[5] 丁玮,闫伟齐,齐东旭.基于Arnold变换的数字图像置乱技术[J].计算机辅助设计与图形学学报,2001,13(4):338-341.
[6] 丁镠,程显毅,徐波.DCT域加密自适应数字水印算法[J].计算机应用研究,2009,26(12):4768-4770.
[7] 袁修贵,周振.一种新的基于DWT、DCT和SVD的鲁棒水印算法[J].计算机工程与科学,2011,33(1):112-115.
[8] 黄武辉,刘海英,齐影虹.一种基于DCT的水印算法及其实现[J].电脑知识与技术,2009,5(10):2696-2698.
[9] 闫芬,王康碧,李晨,等.一种基于NSCT与抖动量化的盲水印算法[J].云南民族大学学报:自然科学版,2013,22(3):226-229.
[10] 吕东岳,徐贵力,李开宇,等.基于DCT与SVD相结合的图像水印新算法[J].电子科技,2011,24(5):112-115.