基于DTC鲁棒盲水印算法算法研究

时间:2022-02-26 05:48:17

基于DTC鲁棒盲水印算法算法研究

摘要:该文在对数字水印的分类、原理以及近几年所产生的新进展的基础上,深入研究DCT域变换的方法,并以此方法为基础实现盲水印的嵌入和提取。文中在理论推导的基础上给出实验分析,证实了文中给出方法的正确性,获得盲水印的图像效果较好。

关键词:DCT变换;盲水印;水印嵌入;水印提取

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)06-1280-02

随着3G、4G网络的逐渐普及,人们应用数字图像已经不仅仅局限于普通PC机,而是逐渐扩展到平板电脑、只能手机登领域。由于数字图像包含的信息量巨大,很容易被人们接受和传播,不仅仅给人们的工作带来便利,也为业余生活带进了更多的色彩。然而,多媒体数字图像的版权保护问题则日显突出。而数字水印技术是当今知识产权保护的一种新方法,并逐渐被人们所接受。简单地讲,数字图像水印技术是指在不破坏原有数字作品自身价值的情况下,将某些标志性信息(水印)利用一些特定算法嵌入到数字作品(载体)中去。这些被嵌入的标志性信息(数字水印)可以表示数字作品版权所有者、发行者、日前、作品控制等信息。一旦发现数字作品有盗版情形,利用相应水印提取算法可以提取出这些水印信息来证明数字作品的版权归属,便可以作为指控盗版者侵权的法律依据。另外,还可以在使用数字作品前,通过检测数字作品中的水印信息,来限制该数字作品的操作权限,如复制次数等等。这是常规加密方法难以办到的。

普通的数字水印技术一般都能具有不可见性、安全性和可证明性,其不足则是鲁棒性较低。具体来讲,图像经过常规的信号处理操作化,所能检测到的水印可能变得模糊不清。鉴于此,该文在常规鲁棒盲水印方法上提出一种改进的方式,从而提高水印的鲁棒特性。

所谓鲁棒数字水印是水印技术中的一个分支,是相对于普通水印技术而言的,一般是指通过在原始数据中嵌入秘密信息——水印(watermark)来证实该数据的所有权。鲁棒数字水印技术与传统数字水印技术除都具有信息隐藏的功能外,其具有较强的鲁棒性、安全性和透明性等特点。是一种具有很好前景和巨大竞争力的新技术。

1 DCT域的盲水印算法原理

数字水印(Digital Watermarking)的基本思想是利用图像处理技术将标志信息(如版权所有者、发行者、日前、作品控制等)嵌入到数字图像、音频、视频等数字作品中,用以实现对该数字产品的盗版跟踪、知识产权维护、完整性确认、真伪鉴别等功能。通常而言,嵌入的秘密信息需要经过相应的图像预处理后才形成水印信息。数字水印信息可以定义为:

[w=wi|wi∈O,i=0,1,2,…,N-1]

其中,[N]表示水印长度,[O]表示值域。[O]可以是二值形式,即[O=0,1]或[O=-1,1]或[O=-r,r]等,也可以是高斯白噪声(均值为0,方差为1,[N0,1])。水印信号可以是一维序列,还可以是二维矩阵,或者三维乃至高位信号。为了进一步研究盲水印的实现过程,首先研究DCT变化的基本原理。

1.1 DCT域变换介绍

DCT(离散余弦变换)是一种可逆变换,分为正向(FDCT)和逆向(IDCT)离散余弦变换。其中,正向离散余弦变换(FDCT)是为获得DCT域中的频域系数,由空间域中的像素数据变换而来;逆向离散余弦变换(IDCT)则是将前者变换的频域数据恢复到原有的图像像素数据;两者互逆,一般要配合使用。在图像处理中,FDCT具有图像压缩编码的功能,原因在其具有去除数据相关性的能力。

1.2 DCT域变换算法

对于图像而言,二维FDCT/IDCT的定义可以描述如下:

设[fx,y|x=0,1,…,M-1;y=0,1,…,N-1]为[M×N]的二维图像像素矩阵,则二维FDCT/IDCT定义为:

[Fu,v=CuCv2MNx=0M-1y=0N-1fx,ycos2x+1uπ2Mcos2y+1vπ2N] (1)

[fx,y=2MNx=0M-1y=0N-1CuCvFu,vcos2x+1uπ2Mcos2y+1vπ2N] (2)

其中,[u=0,1,…,M-1];[v=0,1,…,N-1];[Cu]、[Cv]与一维情形相同。

1.3 DCT域盲水印原理

对二维图像进行水印处理,一般要完成两个过程,及水印嵌入和水印提取。

1) 嵌入水印

首先对图像进行分块处理,如对原图像进行[16×16]、[32×32]、[64×64]等分块,再将各个子块进行DCT处理,然后定义两个高度不相关的[m]序列,利用置乱后的二值水印图像信息对其进行控制,并按照一定规则使对相应分块图像DCT变换后属于中频位置嵌入相应的水印图像(这里的水印图像也进行相应的DCT变换),最后对分块图像进行DCT逆变换,在按着原有分块的顺序排列,即可恢复为具有水印的新图像。

2) 提取水印

对含数字水印的图像进行分块处理要依据原有图像的分块原则,再按着顺序对分块进行DCT变换。然后生成两个高度不相关的[m]序列与各分块图像DCT变换后水印嵌入位置上的数据做自相关计算,即可使得水印信息从各个分块图像中被提出出来。最后,根据处理前给定的密钥反置乱提取到的水印信息,便得了嵌入在图像中的水印信息。

2 DCT盲水印算法实现过程

2.1 水印潜入

1) 水印图像置乱

所谓水印图像置乱即“扰乱”图像,其原理是对数字图像的像素位置或灰度级等做变换运算,从而获得一定程度的“混乱”状态,从而实现置乱的目的。经典的置乱算法有Arnold函数,表述如下:

[x′y′=11kk+1xymod N k∈1,N] (3)

其中,[k]是控制参数,[N]表征矩阵大小,[x,y]和[x′,y′]表示像素在变换前后的位置,然后对所有的[x,y]都进行式(5)的变化,变产生了一幅加密图像,解密过程即为其反变换过程。

2) 水印嵌入过程

?设图像[IM×N]为原始图像,图像[WM×N]为水印图像;

?计算原始图像大小,并与水印图像相比较,当原始图像小于水印图像时返回;否则计算原始图像分块的大小为[MN×MN];

?用Arnold函数对水印图像[WM×N]进行置乱运算,设定密钥为“O”;[W′M×N]为置乱后的二值水印图像;

?将原始图像[IM×N]分块[Iij],并对各子块的原始图像依次进行二维DCT变换,得到系数矩阵[Mij],即[Mij=DCTIij];

?分别生成两个长度为[MN]的随机序列[m1]、[m2],依据密钥1和密钥2;

?对[Mij]嵌入水印信息,具体过程如下:

[Mij1,M/N=Mij1,M/N+a?k1Mij2,M/N=Mij1,M/N-1+a?k2?MijM/N,1=MijM/N,1+a?kMN]

其中,[a]为嵌入强度,[k]为随机序列[m1]或[m2],定义如下:

当[Wij=1]时,[k=m1],其中[ki=m1i],[i=1,2,…,N];

当[Wij=0]时,[k=m2],其中[ki=m2i],[i=1,2,…,N];

?对[Mij]进行IDCT变换,得到[I′ij],并按分块顺序从新组合为含水印的图像。

3) 水印嵌入实例

图1 原始图像W 图2 水印I 图3 嵌入水印图像

2.2 水印提取

水印提取与上述过程相反,可简要描述如下:

?读取含水印图像[I′];

?将其分块,并做DCT变换;

?对各分块内的水印信息读取;

?用密钥1、密钥2分别生成两个长度为[MN]的随机序列[m1]、[m2];

?分别求出自相关系数[c1]、[c2];

?当[c1≥c2],则估计水印信息[Wij=1],否则[Wij=0];

?利用密钥“O”对水印图像的估计矩阵进行Arnold函数反置乱运算。

实验选用图像为256级灰度、尺寸[512×512]的图像,水印图像为[32×32]的“数字信息”水印,通过嵌入与提取,嵌入水印图像和原始图像没有太大差别,从而实现盲水印的嵌入。

3 结束语

本文通对水印分类的研究理解的基础上,对脆弱水印、盲水印、鲁棒盲水印有了较深刻的理解,然后利用基于DCT域变换的方法实现了水印的嵌入与提取,通过实验验证发现,论文给出的算法具有较好的效果,从嵌入效果看与原始图像没有太大差别,实现了数字信息的隐藏。

参考文献:

[1] H.P.Lu,X.X.Shi,Y.Q.Shi,A.C.Kot and L.H.Chen.Watermark Embedding in DC Components of DCT for Binary Images.International Workshop on Multimedia Signal Processing(MMSP’02),Dec.9-11,2002:300-303

[2] I.J.Cox,Mattew L.Miller,and Jeffrey A.Bloom.数字水印[M].王颖,黄志蓓,等,译.电子工业出版社, 2003.

[3] 朱巧明,李培峰,吴娴,朱晓旭,等.中文信息处理技术教程[M]. 北京:清华大学出版社, 2005

[4] 刘振华, 尹萍. 信息隐藏技术及其应用[M]. 科学出版社, 2002, 11-35

[5] J. Cox, M. L. Miller and J. A Bloom Digital watermarking [M]. Morgan Kaufmann, 2002, 17-24.

上一篇:论高职计算机应用技术专业人才培养目标的改革 下一篇:基于模糊域的图像增强改进算法研究