基于DCT变换的盲水印算法

时间:2022-09-07 12:12:26

基于DCT变换的盲水印算法

摘要:该文提出一种基于DCT变换的盲水印算法。将水印信息按随机产生的0或1嵌入块DCT系数中的DC或AC分量中。该算法思想简单,步骤简便、容易实现。实验结果表明, 该算法对嵌入的水印具有很好的透明性,对JPEG 压缩具有很好的鲁棒性,同时对滤波和加噪等处理具有很好的易碎性。

关键词:盲水印;数字水印;DCT变换;随机序列

中图分类号:TP309文献标识码:A文章编号:1009-3044(2008)29-0418-02

Blind Watermarking Algorithm Based on DCT Transform

ZHANG Hong-mei1,2

(1.College of Computer and Information,Hefei University of Technology,Hefei 230009, China;2.Anhui Electron And Information Professional Technology College,Bengbu 233000,China)

Abstract: This paper proposes a blind watermarking algorithm based on DCT transform,To hide watermarking in the DC or AC components of a DCT, according to random 0 or 1. The algorithm is simple to understand and can be easily realized. Experimental results show that the algorithm has a good transparence of the embedded watermark image, has a good robust against JPEG, and frangibility against the attack of Filtering and noisy.

Key words: blind watermarking; digital watermark; DCT transform; random sequence

1 引言

多媒体技术和互联网技术的发展,使人们能够方便的获得各种多媒体信息。数字化后的多媒体信息具有易于存储、以及二次创作等优点,同时,多媒体信息被非法复制与篡改也变得越来越容易。因此如何在网络环境下保护数字媒体的版权已经成为一个亟待解决的问题。数字水印技术作为实现多媒体信息认证、版权保护的一个有效手段,越来越受到人们的关注。

数字水印根据水印的嵌入方式,可以分为两类:一种方法是直接将水印信息迭加到图像的空域上;另一种是先将图像做某种变换(如DCT、DFT、DWT等),然后再将水印信息迭加到变换后的频域上,最后通过相应的反变换来得到嵌入水印信息的图像。从提取是否需要原始图像,数字水印可分为盲水印和非盲水印。盲水印的提取不需要原始图像,同时可以抵抗IBM攻击;相比之下,非盲水印实用价值较少。目前,数字水印已有大量的研究成果,如基于小波变换的特征定位盲水印[1],基于SVD分解的盲水印[2],还有DFT、DCF变换的盲水印等,多数都是嵌入无意义的随机噪声,相关检测确定有无水印,只有两种状态表示1位信息。若要嵌入有意义的多位信息,如版权序列号、版权标志图等,需精确逐位信息提取;因此嵌入有含义的水印就成为研究的热点。

当前,大多数基于DCT的水印方法将水印嵌入DCT域除DC分量外的中低频系数中。而文献[3]根据对图像DCT系数定性和定量的分析指出:DC分量比任何AC分量有更大的感觉容量;从稳健性的角度,在保证水印透明性的前提下,DC分量更适合嵌入水印。并采用实验的方法验证这一论断,但是该水印算法是非盲的。本文借鉴文献[3]的思想,将水印信息随机的与块DCT的低频DC分量或AC分量进行运算,得到密钥,实现了水印的盲检测。

2 本文算法

2.1 算法原理

首先对图像进行8X8分块DCT变换,然后生成一个二值序列M,并作为密钥K1保存。根据该序列中的0或1决定水印信息,与低频中的DC分量或AC分量进行异或运算,得到密钥K2。认证时利用这两个密钥恢复水印信息。

2.2 构造水印

设原始图像为f(x,y),水印是二值图像W(i,j),提取出的水印为W′(i,j)。

1) 首先利用matlab的随机函数生成一个二值序列M,然后对原始图像f(x,y)进行8X8分块,记为Bk, k=0,1,……,K-1。即:

每块进行DCT 变换得到Fk (u,v):

取左上角的2个低频系数B1,B2。

2) 两个系数分别除以相应的量化因子, 并取整:

其中Alpha 是强度系数, 这里取5,Deta是一个固定参数,取值为0.5, L1和L2为系数B1和B2在量化矩阵中对应位置的值16,11。

3) 求出L1和L2的最低有效位, 记为S1、S2。若序列M为1,则密钥Key为水印信息与S1异或;否则密钥Key为水印信息与S2异或。即:

二值序列M和密钥Key作为水印提取时的密钥, 对于密钥的加密可以使用网络安全中的任一加密算法。

2.3 提取水印

1) 利用公式(1)对被认证的图像进行8×8分块,再利用公式(2)对每块图像进行DCT变换。取两个低频系数B1和B2。

2) 利用公式(3) 、(4) 对两个系数量化、取整得到L′1 和L′2 。

3) 求出L′1和L′2的最低有效位, 记为S1、S2, 若密钥M的值为1,则密钥Key与S1进行异或;否则密钥Key与S2进行异或。得到提取的水印W′,即:

4) 设定阈值T, 通过相关度公式得到提取出的水印信号W′与原始水印信号W的相关度R,相关度的计算方法采用Matlab中的函数corr2(W′,W)来计算。

判别规则如下:

3 仿真实验

实验是用MATLAB仿真模拟得到的,原图像是经典的lena( 256×256) 图像, 水印图像是含有“电子学院”四个字的二值图像( 32×32) , 如图1 所示;利用本文算法得到的水印图像如图2所示。由于水印信息并没有真正的嵌入到图像中,所以水印透明性好。另外,从水印相似度NC值为1看出,本文提供的水印算法,可以完全正确地提取出所嵌入的水印图像。

(a) 原始图像(b) 原始水印图像 (a)嵌入水印的图像(b) 提取的水印图像

图1 原始图像和水印图像 图2 嵌入水印的图像和提取的水印图像

对含水印的图像(图2-a)进行JPEG有损压缩,检测结果如表1所示。

对含水印的图像进行非法攻击, 如滤波、椒盐噪声、高斯噪声、裁剪等,然后对其进行检测,检测结果如表2所示。

实验中的阈值T取为0.8, 从上面两个试验结果可以得出下面的结论:

根据表1中的NC值项,经过JPEG压缩后提取的水印与原水印比较的相似度都在T之上,即使经过深度有损压缩,水印仍然能够被可靠地提取,因此该算法对JEPG压缩具有很好的抵抗能力。

根据表2中提取出的水印图像,除了剪切攻击之外,其他非法攻击提取出的水印图像都非常模糊;根据表2中的NC值项,所有攻击后提取的水印与原始水印的相似度都小于T,因此该算法对滤波、椒盐噪声、高斯噪声、裁剪等非法攻击具有易碎性。

4 结束语

本文根据DCT变换的原理、特点以及在数字水印领域中的应用优势,提出的基于DCT变换的盲水印算法,该算法步骤简单、容易实现。实验结果表明,该方法具有很好的水印透明性,对JPEG 压缩具有很好的鲁棒性, 同时对滤波和加噪等处理具有很好的易碎性。由于并未将水印信息嵌入到原始图像中,因此提取水印信息时无需原始图像,即实现了水印的盲检测。

参考文献:

[1] 张永平,苏广川.基于特征定位的数字图像盲水印技术[J].计算机工程,2007,33(2):125-132.

[2] 张志宏,陈凤祥,王伟.一种基于奇异值分解的盲水印[J].计算机仿真,2005,22(8):115-117.

[3] 程兴国,王裹,曾嵘.DCT域中DC分量上嵌人水印的算法[J].现代电子技术,2007(242):57-59.

上一篇:任务教学法在《单片机原理及应用》教学中的应... 下一篇:基于横向循环配置的线状符号填充算法