基于分块DCT的自适应扩频水印算法

时间:2022-07-23 06:53:46

基于分块DCT的自适应扩频水印算法

摘要:本文提出了一个利用块分类的DCT域自适应扩频图像水印算法。嵌人的水印是一个可视二值图像,用两个不相关的伪随机序列分别代表水印信息中的0和1,从而达到扩频的目的。将扩频后的水印信号,嵌入到分块DCT域的中低频段系数中的过程中,充分考虑到了局部图像的复杂度,能够自适应地调整嵌入强度,提取水印信号无需使用原始图像。仿真实验表明:图像经过JPEG有损压缩、低通与中值滤波和剪切等图像处理操作后仍是稳健的。

关键词:分块DCT 扩频 HVS 图像 水印 算法

1 引言

数字水印技术是指在宿主数字媒体(图像、声音、视频)等中嵌入一定量的数字信息,例如作者的电子签名、日期、公司图标等,用以证明作品的所有权,并可作为非法侵权的证据,从而保护作品原创者的合法利益。数字水印技术不同于传统的数据加密,其目的不是限制对数据的存取,而是保证嵌入的数据不可侵犯和可恢复。其基本要求有:透明性,是指在宿主数字媒体中嵌入一定量的数字水印信息后,不会引起原媒体明显的降质现象,隐藏数据不易察觉,即无法人为地看见或听见;鲁棒性,是指数字水印必须对施加于宿主媒体的各种变换操作(如有损压缩、滤波和剪切等)具有免疫性,即水印信息不能因为施加于宿主媒体的某种变换操作而丢失;安全性,是指数字水印能够抵挡各种蓄意的攻击,很难被他人所复制和伪造,只要其不知道控制该算法的密钥。

2 已有的基于DCT域的图像水印算法分析

较早利用分块DCT的水印技术是Koch .E、Zhao.J的文章[1],他们的水印方案是用一个密钥随机的选择图像的一些分块,在频域的中频上稍稍改变一个三元组来隐藏二进制序列信息。这种方法对有损压缩和低通滤波是稳健的。Cox等[2]提出了著名的基于图像全局变换的数字水印技术,该方案对整个图像作离散余弦变换(DCT),然后将水印嵌入到预先设定的低频分量中,水印信号由高斯分布的实数序列组成,算法不仅在视觉上具有不可察觉性,而且稳健性也非常好,可经受JPEG压缩、滤波、剪切等攻击。Barni等[3]提出一种利用HVS掩蔽特性的基于DCT的水印算法,在水印嵌入阶段,对 的图像进行 的DCT变换,对DCT系数按Zig-Zag扫描重新排列为一维向量,留下向量中开始的L个系数不作修改,对第L个系数后面的M个系数进行修改以嵌入水印。黄继武等人[4] 在对DCT系数DC和AC分量的定性和定量分析的基础上,指出DC分量比AC分量更适合嵌入水印,嵌入DC分量的水印具有更好的稳健性,并提出了一个利用DC分量的自适应算法。

以上算法至少有以下两个缺点:①在水印提取过程中使用了原始图像,这一点在实时的网络环境中很难做到;②只能给出水印存在有无的回答,在许多应用场合要求水印是有意义的,如一个二维图像(商标、印鉴等)。显然,这种有意义的水印所包含的信息量、可感知性、可辩识性及保密性,是无意义的伪随机噪声所不能比拟的。

本文在研究了前人算法的基础上,提出了一个利用块分类的DCT域自适应扩频图像水印算法,嵌入的水印是一个可视二值图像。用两个不相关的伪随机序列分别代表水印信息中的0和1,从而达到扩频的目的,将扩频后的水印信号,嵌入到分块DCT域的中低频段系数中。在嵌人过程中充分考虑到了局部图像的复杂度,能够自适应地调整嵌人强度,水印检测算法不需要原始图像,实现了盲检测。仿真实验表明:图像经过JPEG有损压缩、低通与中值滤波、剪切等图像处理操作后仍是稳健的。

3 数字水印嵌入算法具体步骤

本文算法基本框图如图1所示,以下对各步骤作详细介绍。

图1 水印嵌入算法框图

数字水印提取算法具体步骤

水印提取框图如图4所示,水印检测不需要原始图像。

图4 水印检测算法

4.1 含水印图像分块

设嵌入水印的图像为 ,首先将 分割为互不覆盖的8×8子块,记为 ,对 进行DCT变换,得到:

= =DCT{ ,0≤ ≤7} (8)

4.2 解扩

对各8×8DCT分块系数矩阵 按Zig-Zag读取顺序排列为一维向量,提取每一列向量 L+1到 L+N的系数,设该系数组成的一维向量为:

将 和嵌入过程中的两伪随机序列分别作相关运算,从而判决嵌入的原始水印信息是0或1。

设:Sequence_zero(m)=corr2(PN_zero, ),

Sequence_one(m)=corr2(PN_one, )

则:if Sequence_zero(m)> Sequence_one(m)

message(m)=0;

else message(m)=1;

对每一子图像块进行相关运算,就可把置乱水印的一维向量message提取出来。

4.3 水印反置乱

原始水印在嵌入前经过了置乱处理,因此须对提取出的水印message进行反置乱。首先根据密钥K1产生0到 的随机数,该随机数即为message向量中每个像素点的标号,按照正常顺序重新排列message向量,就可还原出原始水印的一维向量,因为水印嵌入过程中是重复4次嵌入的,因此把该一维向量分为4段,运用多数原则提取原始水印,再将原始水印逆变换为二维矩阵,即恢复出二值水印。

4.4 水印的检测与评价

本文是将视觉上可直观认知的二值水印作为水印,所以人眼的主观评价可以作为水印抽取的一个评价标准,除此之外,也可从理论上定义归一化相关系数 作为另一个评价水印抽取算法的客观标准,设初始水印为 ,抽取水印为 ,则:

(9)

相关系数在0、1之间,其值越大,水印鲁棒性越好。如果该相关系数 超过某一阈值,就判定图像中存在此二值数字水印图像(阈值由用户根据数字水印的具体应用背景而确定),本文阈值选为0.5。

5 实验结果

本文的实验结果是基于MATLAB6.5仿真得到的,图5给出的是二值水印嵌入与提取的实例。其中256×256的标准Lena图像作为原始图像,16 ×16的二值字符图像作为水印。

(a)原始图像 (b)嵌入水印后的图像 PSNR=35.761

(c)初始水印 (d)乱序水印 (e)抽取水印 ρ=1

图5 算法水印加入与抽取实例

上一篇:三维动态对比增强磁共振血管成像在颅内静脉系... 下一篇:中国会计标准改革与发展的历程及其启示