基于分块DCT的自适应扩频水印算法(1)(3)
2017-08-08 04:02
导读:,则 。若上述两种情况均不满足,则 ,其中t1、t4为门限,可由实验确定。3.3 水印的预处理 设二值水印表示为: , ,很明显,如果不打乱水印的空域关

,则

。若上述两种情况均不满足,则

,其中t1、t4为门限,可由实验确定。3.3 水印的预处理 设二值水印表示为:

,

,很明显,如果不打乱水印的空域关系,直接把可视的二值水印加到原始图像的中频段,那么一个简单的图像剪切操作就会把水印破坏掉,因此,在嵌入水印之前,首先对其进行置乱处理,本文采用一个时间复杂度较低的随机算法来打乱水印的空间顺序。

}(4)其中,

是原始像素点

经过随机排序后得到的乱序水印像素点。

图2 水印随机排序示意图首先,利用密钥k1产生0到

的随机数作为原始水印每个像素点的标号,然后利用桶分类排序算法将这些随机标号按由小到大排序,随机标号的顺序排序使得标号所标识的原始水印像素点随机排序,这种方法的时间复杂度为

,以32×32二值水印为例,排序过程由图2所示。3.4 水印扩频 扩频调制具有抗干扰、低功率谱密度、保密性好等许多优点,它是利用伪随机序列对被传输信号进行频谱扩展,使之占据的带宽远远超过所必需的最小带宽,其本质是利用带宽换取信噪比。在水印算法中,它是利用水印信道的容量换取算法稳健性的改善。本文提出采用两个不相关的伪随机序列来代表二值水印信息中的0和1,从而实现频谱扩展的目的,首先利用密钥k2产生一个种子,在此种子下,生成两个不相关的伪随机序列:pn_zero,pn_one。

,

(5)其中 l 由8×8dct系数矩阵的中频段长度决定,然后根据二值水印信息的0或1,分别嵌入pn_zero或pn_one。本文采用的扩频方案具有简单易实现和稳健性好的优点。3.5 水印嵌入 为了在鲁棒性和透明性之间进行折中,本文将二值水印经扩频后的伪随机序列嵌入到各图像块的中低频段系数中。实验中采用的二值图像是 16×16 的字符图像,原始图像是256× 256 的lena图像。原始图像经过8×8分块后,有1024个子块,而二值图像的总长度为256,因此把二值图像周期扩展为长度为1024的向量,然后再嵌入到原始图像,使水印具有更好的抵抗剪切攻击能力。首先对b`m(m =0,1,...,m-1) 的系数按zig-zag顺序读取(如图3(a)),本文对水印的嵌入位置和伪随机序列的长度进行了大量的实验,发现在图3(b)为1的位置嵌入伪随机序列, 水印具有较好的鲁棒性和透明性。 将按zig-zag顺序读取的每一分块系数重新排列为一维向量

,并取出系数中第 l 1到l n 的中低频段部分,得:

,

根据图3知 l =14, n =13,伪随机序列由 n 个实数随机数组成:


按下式将伪随机序列嵌入到