图像数字水印技术研究综述
摘要:从数字水印的系统模型入手,对多种数字水印算法的精髓思想进行研究综述和对比分析。其中包括LSB算法、Patchwork算法等空间域数字水印算法,DCT、DFT、DWT及其各自衍生发展出的多种频率域数字水印算法,还有基于向量机的数字水印算法和基于跳频技术的数字水印算法。指出了各种算法的特点和适用范围。
关键词:数字水印;图像;版权保护;空间域;频率域 中图分类号:TP391文献标识码:A文章编号:1009-3044(2008)36-2742-03
Summary on Image Watermarking Technology WANG Wen-juan
(School of Information, Capital University of Economic and Business, Beijing 100026, China)
Abstract: Start with Digital Watermarking system model, summary and analysis the essence of many digital watermarking methods. Including the space domain digital watermarking algorithm such as the LSB algorithm, and the Patchwork algorithms , frequency domain digital watermarking algorithm such as DCT, DFT, DWT and their derivatives. There are digital watermarking algorithm based on the vector machines and
digital watermarking algorithm based on frequency-hopping technology. At last point out the various features of the algorithm and its application.
Key words: watermarking; image; copyright; space domain; frequency domain 1 引言
数字水印是解决多媒体信息的版权保护难题的一种技术,它是指利用数字作品中普遍存在的冗余数据和随机性,把版权信息等内容的数据(水印)嵌人到数字作品中,通过从加了水印的数字作品中检测或提取水印(有关版权的信息),从而起到保护数字作品版权的一种技术。1993年,Caronni首次提出了“数字水印”的概念,并用于图像保护。数字水印技术与加密技术的不同在于水印与宿主数据是紧密结合并隐藏在其中的,水印是宿主数据不可分离的组成部分。
数字水印的应用领域非常广泛,比如目前数字产品的盗版问题非常严重,数字水印就是解决盗版问题的有效手段。数字水印还可用来验证数据的完整性,也就是验证数据在传输或存储过程中有没有被篡改过。数字水印可以通过加指纹来避免未经授权的拷贝制作和发行,出品人可以将不同用户的ID或序列号作为不同的水印(指纹)嵌入作品的合法拷贝中,这样一旦发现未经授权的拷贝就可以根据拷贝中所恢
复出的指纹来确定它的来源。数字水印还可以对数字产品进行拷贝保护,例如在产品的数据中包含进一些拷贝信息,限制该产品的拷贝次数等,就可以防止产品被无限拷贝。数字水印还可以为作品加入注释信息,比如为一幅图片加入制作时间、地点和内容描述等信息。
数字水印有多种分类方式,按水印检测时是否需要原数字产品的参与可以分为盲数字水印和非盲数字水印,盲数字水印的检测和提取不需要原始数字产品的参与,而非盲数字水印的检测和提取需要原始数字产品的参与;按数字水印的嵌入位置可以将其分为空间域水印和频率域(变换域)水印。 目前,研究静止图像的数字水印技术的人比较多,研究音频数字水印和视频数字水印的人比较少。静止图像的数字水印算法主要分为两大类:空间域算法和频率域(变换域)算法。
2 数字水印的系统模型
数字水印的系统模型包括:数字水印的嵌入模型、数字水印的检测模型和数字水印的提取模型。这三个模型分别如图1至图3所示。图1是数字水印嵌入模型,将原始数据、数字水印和密钥通过特定的数字水印嵌入算法就可以得到嵌入了数字水印的数据。图2是数字水印的检测模型,该模型可以检测某一数据中是否嵌入了数字水印,数字水印的检测是否需要原始数据的参与是由数字水印是否是盲数字水
印而定;图3是数字水印的提取模型,该模型可以从某一数据中提取出嵌入在其中的数字水印,数字水印的提取是否需要原始数据的参与也是由数字水印是否是盲数字水印而定。 3 现状综述
3.1 空间域数字水印算法
3.1.1 LSB(List Significant Bits)方法[1]
LSB方法是首先通过把一个密钥输入到一个m-序列(maximum-length random sequence)发生器来产生水印信号,然后此m-序列被重新排列成2维水印信号,并按像素点逐一插入到原始图像像素值的最低位,以保证水印的不可见性,而对这种水印的检测则是通过计算m-序列和水印图像行的相关函数来判断的。该算法的优点是简单易行、有较大的信息隐藏量,但该算法实质上相当于在图像中添加一些高频噪声,由于其对图像的几何变形和信号处理,如滤波、压缩、加噪声等抵抗能力差,鲁棒性不好,因此不能应用于实际的图像安全维护。
3.1.2 Patchwork算法[2]
Patchwork算法是通过改变图像数据的统计特性来将信息嵌入到像素的亮度值中。该算法是先通过随机选取图像的N对像素点来进行水印嵌入,这些随机选取的两个像素点的差值呈以0为中心的高斯分布;然后通过增加其中一个点的亮度值,同时相应降低另一个点的亮度值来改变分布的中
心,并且使得整个图像的平均亮度保持不变;最后采用统计的方法来对水印进行检测。为了抵抗诸如有损压缩以及滤波处理对水印的攻击,该算法先将像素点对扩展成小块的像素区域(patch),并增加一个patch中的所有像素点的亮度值,同时减少对应另外一个patch中所有像素点的亮度值。这种算法对抵御有损压缩编码和剪裁攻击非常有效,但由于嵌入的水印信息少,且对仿射变换敏感,所以对多拷贝联合攻击的抵抗力比较脆弱。
3.2 频率域(变换域)数字水印算法 3.2.1 DCT数字水印算法
Cox的扩频水印算法[3] 首先用DCT变换将图像变换为频域表示。从变换后数据D的DCT系数中选取n个最重要的频率分量,组成序列V=v1,v2,……vn以提高对JPEG压缩的鲁棒性。然后,以密钥为种子产生伪随机序列,即水印序列X=x1,x2,……xn,其中xi是满足高斯分布 N(0,1)的随机数,再用伪随机高斯序列来调制(叠加)选定的DCT系数,产生带水印的序列V’=v’1,v’2,……v’n。最后再将V’转换为D’,再反变换为含有水印的图像。 基于DCT变换的数字水印分块算法[4]描述如下: 1) 将原始图像分割为互不重叠的K个图像块fk(x’,y’),0≤x’,y’?8,K=0,1……K-1,然后对fk(x’,y’)进行DCT变换,得到Fk(u’,v’)。