首先抛弃的就是AC分量中的高频成分,因此,所有把水印信号嵌入中低频部分的算法一般都具有较好的抗JPEG压缩、抗缩放重采样性。当然,基于DCT变换域的算法也有频域算法的缺点:计算复杂。但是,这些算法可以嵌入较多的信息,对视觉影响较小即隐蔽性较好,嵌入水印信号较健壮,基于DCT变换域的算法可以更好的结合HVS模型,进一步改进算法性能。目前,已经有针对DCT变换的硬件芯片了,所以计算复杂的缺点可以在一定程度上得到削弱。
2.3 图像隐形水印的性能评估
对图像数字水印系统建立标准统一的评估方法是数字水印研究的重要内容之一。数字水印系统的性能评估主要包括稳健性分析和含水印图像的失真度评估两个方面。通常,需要在数字水印的稳健性和不可见性之间需要进行折衷。为了进行公平合理的性能评估,应该在给定的图像视觉可见性的前提下进行测试。
2.3.1 水印的稳健性分析
含水印的数字作品在日常的使用中可能会发生改变,很多应用要求能够从这些改变的数字作品中正确地检测水印,这就涉及到水印的稳健性。稳健性与安全性不同,稳健性指能经受住常规的信号处理,而安全性则用于防止非授权者任何破坏水印的攻击行为。水印可能经受的常规处理主要发生在水印的嵌入和检测过程之间,它包括:有损压缩、滤波和加噪等。要想获得较好的稳健性,常会以牺牲一些计算花费、数据的有效载荷和保真度等为代价。以下分析以下分析了影响水印系统稳健性的主要因素。
(1)水印的结构:目前有关数字水印结构的研究比较少,大部分的研究都运用了Cox等人的水印结构理论。Cox指出,符合正态分布的随机序列构成的水印具有最好的稳健性,并能获得较低的虚警率和漏警率。
(2)嵌入强度:水印的嵌入强度是影响数字水印稳健性的重要因素。 (3)重复嵌入:通常,嵌入水印的数字图像在经受信号处理时,图像中的所有系数会受到不同程度地影响。信号处理对有些系数可能影响较大,而对有些系数影响可能较弱,对另一些可能毫无影响。因此,利用这一特性,可以将水印重复
- 11 -
地嵌入到多个系数中,即将水印多次嵌入到不同的系数中,即使其中某些系数在信号处理的过程中受到的影响较大,但仍然可能在其余的系数中检测到水印信号的存在。
(4)扩频编码:扩频编码的优良性能运用于数字水印中,可以提高水印系统的稳健性。
(5)嵌入位置:数字作品中的不同系数具有不同的特性,选择不同的系数嵌入水印影响水印的性能。
(6)纠错编码:对待嵌入的水印信号进行纠错编码,可以提高数字水印系统的稳健性。
(7)图像的尺寸和特性:图像的尺寸对数字水印系统的稳健性产生直接地影响;图像的特性对数字水印系统产生重要影响。
(8)密钥:密钥不直接影响数字水印的稳健性,但对数字水印系统的安全性起了重要的作用,因此,可以间接地影响对数字水印的稳健性。当密钥空间越大,则搜索的次数越多,则系统的安全性越强。
(9)嵌入信息量:所需嵌入数字作品中的水印信息量直接影响数字水印作品的稳健性。通常,对于同一种数字水印算法,需嵌入的水印信息量越大,数字水印的稳健性越差。
2.3.2 图像质量评价方法
在比较图像隐形水印系统时,需要采用图像质量评价方法来评价数字水印的不可见性。近年来,应用需求地增长使得这方面的研究变得越来越重要。但人类并没有充分地了解自己的视觉特性,因此,到目前为止还没有提出通用的图像质量评价标准。在实际应用中,主要采用两种具有代表性的评价方法:
(1)主观性评价方法:指采用主观上打分的方法。主观性评价方法对图像质量评价具有一定的实用价值,但在实际应用中,该方法费时费力,而且具有不同专业背景的人对水印图像的主观评价结果差异很大,因此在实际中很难实现。
(2)客观性评价方法:目前有两种基本的客观图像质量评价方法。一种是用数学方法定义的客观图像质量评价方法,例如广泛运用的均方误差、信噪比和峰值
- 12 -
信噪比等。另一种是结合人类视觉系统特性的客观图像质量评价方法,该方法计算起来比较复杂。而且,在实际的严格测试中,该方法比基于数学的评价方法(如PSNR)并没有表现出明显的优势。基于数学的图像质量评价方法易计算,且不依赖于视觉环境和观察者个人等特性,因此,在实际中广泛运用。常用的MSE和PSNR基于原始图像和失真图像的像素差值。
MSE的表达式为: 其中,
表示原始图像,
表示经过处理后的失真图像。M和N
分别表示图像的长和宽。PSNR与MSE有相似之处,其表达式为:
2.3.3 水印的性能测试
一般,对水印图像进行一系列测试来评价水印系统的稳健性,并即时解决测试过程中出现的各种问题。测试需要在多个不同的具有代表性的图像上进行,这些图像应具有以下特征:具有纹理/光滑区域、图像边缘明显、可进行尖锐化处理、模糊处理和亮度/对比度调整等。
为了能够进行统一的性能评估,需要一个标准的测试步骤,常用的测试过程如下:
(1)在一定的视觉质量的前提下,以较大的强度嵌入水印。 (2)含水印的图像进行一系列的攻击测试。 (3)对经受攻击后的图像进行水印的提取和检测。 (4)通过相似度判断该算法是否能经受此类攻击。 (5)对多幅图像反复嵌入水印重复上述过程。
由于水印系统之间性能评估的困难性,目前没有统一的、客观的水印测试标准。通常采用PJEG压缩、添加噪声、滤波和剪切等方法进行测试,但这些方法还远远不够,必须有一套完善统一的测试标准来比较各个水印系统的优劣,否则,
- 13 -
必将阻碍数字水印技术的发展。剑桥大学FahinePetietolas等人开发了通用的水印测试软件StriMark,己被广泛地应用于水印系统的测试中,它集成了几十种典型的水印攻击方法,可以比较全面地测试水印算法的稳健性,因此striMakr己被当作测试水印算法稳健性的标准工具。
通常对图像隐形水印系统进行一系列的信号处理测试,然后从被处理过的图像中提取出水印,计算它与原始水印的相似度来判断水印系统的稳健性。信号处理测试主要包括:
(1)PJEG压缩:图像压缩会去掉图像信息中的冗余量,数字水印必须能够经受住某种程度的有损图像压缩,并能够从其中提取出水印信息。PJEG是广泛地应用于数字图像中的压缩算法。测试中常用的压缩品质从10到95。目前的水印算法对JEPG压缩具有较好的稳健性,今后若出现更高压缩比的压缩算法,则不能保证是否也具有同样好的稳健性。
(2)滤波:经过滤波应该无法删掉图像中的水印,常用的滤波有高斯滤波、中值滤波和均值滤波等。事实上当前很多针对水印的攻击行为是用滤波完成的。
(3)噪声:数字图像信息在传输和处理的过程中,会遭受一定程度的噪声攻击,许多数字水印系统能够在一定的限度内经受住这种攻击。高斯噪声和椒盐噪声是常用的噪声攻击测试。
(4)几何失真:很多水印算法对几何操作都比较脆弱,容易被去除,因此,研究数字水印经受图像几何失真变换后的稳健性也是人们所关注的。
通常包括下述几何操作:
①剪切:对图像进行剪切可以破坏水印,这在某些情况下很有用处,比如盗版者仅对版权保护的原始图像某一部分感兴趣。测试中通常剪掉图像的部分区域来验证水印的稳健性。
②旋转:一般进行小角度的旋转不会改变图像的商业价值,但能使图像的水平特征重新分布,从而使水印无法被检测到。
③缩放:实验中按照一定的比例,对图像的长度和宽度统一进行一定程度的缩放处理。
(5)直方图均衡化:将原始图像的直方图变换成均匀分布的形式,这样增加了图像灰度值的动态范围,可以增强照明条件较差的图像的整体对比度,它不应对
- 14 -
水印的提取和检测有严重影响。
以上是一些基本的测试操作,当然,还有许多其它的测试方法。虽然已提出的许多算法能够经受住以上的部分操作,但目前还没有能够经受住所有处理操作的水印算法。
3 基于DCT域的图像隐形水印算法实现
根据目前图像隐形水印中存在的问题,提出了一种基于DCT域的图像隐形水印算法,该算法在水印的嵌入位置、嵌入强度和含水印图像的质量评估等方面给出了较好的解决方案。
3.1 问题分析
3.1.1 水印嵌入位置的选择
DCT域系数分为低频、中频和高频三种,各系数的稳健性不同,对人类视觉的影响也不同。因此,选择不同的系数来嵌入水印会对算法的性能产生不同的影响。通常低频系数集中了信号的大部分能量,水印嵌于此也具有较强的稳健性,但人眼对低频部分的噪声相对敏感;水印嵌入高频系数中有利于提高水印的不可见性,但水印很容易因量化等处理而丢失;直流系数代表了块的平均亮度,水印嵌于其中造成直流系数的改变容易导致分块效应。权衡了水印的不可见性和稳健性,我们仅仅选择了8个DCT中频系数来嵌入水印,见表4一1中的阴影部分,用集合A表示为:
- 15 -