文档介绍:基于DCT变换域的数字水印算法研究
 
 
王珂 黄玉萍
Summary:针对数字产品的版权保护问题已变得尤为迫切。数字水印技术对原始文件的保护是不可见的,即插入水印后的文件并不会引起人们对水印的注意。仅法很多,最常用的有离散余弦变换、离散小波变换、离散傅立叶变换等方法。本章以离散余弦变换为例,对变换域下的数字水印算法和仿真方法进行了研究。
1 基于DCT变换域的数字水印原理
DCT变换域算法
DCT变换算法是一种常用的数码率压缩编码方法。其基本思想是先将原图分成N×N的子块,然后逐个对各个子块作DCT变换,将水印信息嵌入,再把嵌有水印信息的DCT系数子块进行逆向DCT变换,即合成了嵌入水印的图像。而水印的提取与嵌入算法类似。 对N×N像素矩阵px(a,b)的二维DCT变换定义为:
其中,N为每个图像块的垂直与水平像素数,通常情况下设N=8,当N值大于8时会大大增加算法的复杂性。8×8的二维数据块经过DCT变换会产生8×8个有明确物理意义的变换系数。当a=0,b=0时,DCT(0,0)是原来64个样值的平均值;假设一个由64个像素值组成的基本图像,该图像任何一块在作了离散余弦变换后都可用64个不同大小的系数组合起来表示。但如果把该图像看成变换域中的单一系数,则任何像元都可被看成是由64个不同幅度的基本图像的组合。因此,使用DCT算法嵌入水印过程如下:首先将载体划分为8×8块,然后将二维水印图像作降维处理,可得到一串二进制数Wi;
经过调整,再对该块进行离散余弦逆变换。当64块处理完后,即得到嵌入水印的图像。
DCT变换是将空域信号转换成变换域中的一系列AC分量与一个DC分量,其中,原图像块的主要能量被集中在AC分量中,而图像的平均亮度则用DC分量表示。用JPEG压缩图像时,首先要将AC分量中的高频成分抛弃掉,从而使图形中所有水印信号嵌入的中低频部分具有很好的抗缩放重采样性和抗JPEG压缩能力。
图像DCT系数
2 变换域数字水印DCT算法与仿真
变换域数字水印嵌入算法实现
首先,将读入的图像进行分块并作DCT变换,再利用随机函数随机选取像素块,通过比较像素块(5,4)和(4,3)的两个系数进行信息嵌入。嵌入信息后,再通过控制变量α对两个差值进行扩大,以保证编码的正确性。控制变量α是作为参数人为输入的。,,具体算法流程如下:
DCT变换域水印信息提取方法实现
水印信息提取相对简单,只需首先将载有秘密信息的图像载入,再对图像分别作分块处理与DCT变换,最后按随机控制顺序直接比较两个DCT系数大小,完成秘密信息的提取。,过程如下:
控制阈值α对隐藏鲁棒性的影响
控制量α是为了避免发生图像在传输过程中Bj(u1,v1)与Bj(u2,v2)的相对大小出现错位致使编码出现错误而引入的。研究发现,α的值越大,编码
越不容易出错,并且图像的鲁棒性越强。因此,采用JPEG压缩的后一段来探查不同控制阈值α下隐藏的鲁棒性。,~1十个等差0.