数字水印-Patchwork.ppt
1,Patchwork数字水印,2,Patchwork数字水印算法,“Patchwork”一词原指一种用各种颜色和形状的碎布片拼接而成的布料,它形象地说明了该算法的核心思想,即在图像域上通过大量的模式冗余来实现鲁棒数字水印。与LSB算法不同,Patchwork是将水印信息隐藏在图像数据的亮度统计特性中,给出了一种原始的扩频调制机制。尽管该算法一般只能隐藏1bit信息,但仍然可以在一定程度上对图像数据的版权给予保护。,3,Patchwork数字水印算法,Patchwork算法是一种数据量较小、能见度很低、鲁棒性很强的数字水印算法,其生成的水印能够抗图像剪裁、模糊化和色彩抖动。以隐藏1bit数据为例,Patchwork算法首先通过伪随机数生成器产生两个随机数序列,分别按图像的尺寸进行缩放,成为随机点坐标序列。然后将其中一个坐标序列对应的像素亮度值降低,同时升高另一坐标序列对应的像素亮度。由于亮度变化的幅度很小,而且随机散布,并不集中,所以不会明显影响图像质量。所选取的伪随机数生成器的种子就是算法的密钥。,4,Patchwork数字水印算法,Patchwork的水印嵌入算法的具体描述如下:,随机选择N对像素点(ai,bi)lum()=像素点亮度值 for(i=1;i=N:i+)(lum(ai),lum(bi))=(lum(ai)+1,lum(bi)-1);,上述算法基于一个基本的假设:给一个值足够大的n值,对于根据伪随机数生成器生成序列选取的图像像素对(ai,bi),所有像素点ai的亮度平均值与所有像素点bi的亮度平均值非常接近。,5,Patchwork数字水印算法,当对图像按Patchwork算法嵌入水印后,使得所有像素点ai的亮度平均值增加1,而所有像素点bi的亮度平均值减少1。在水印被嵌入后,这些像素点的亮度变化是能够被准确检测到的。这个假设是必要的且在水印嵌入和检测过程中可得到证实。,6,Patchwork数字水印算法,水印的检测算法与秘密信息的提取算法不同,不要求原始图像的参与,而仅根据待测图像来鉴别。,7,Patchwork数字水印算法,算法的伪C代码描述为:int k;float;for(i=1;i=N;i+)sum+=(lum(ai)-lum(bi));if()/*此和值足够接近于2k*/存在水印;else 不存在水印;,8,简单的Patchwork实验,用伪随机置换策略选取足够多的像素点,然后取其前一半构成像素集合ai,另一半构成像素集合bi。标准的Patchwork水印检测算法中,主要的判定式是:该式的实际意义是说两组经过调整的像素的平均亮度差值应非常接近于2度。本身应该是个比较小的数,但在理论上不应该小于原始图像未加水印前的平均亮度差值。,9,简单的Patchwork实验,只有当假定原始图像未加水印前的平均亮度差值为0时,才可以无限的将取小以保证在水印检测中不出现将无水印的图像判断为有水印的图像这一错误。但在实际操作中,这样一来的直接结果就是导致了在水印检测中发生将有水印的图像判断为无水印的图像错误的概率大大增加。所以在实验中调整判断方法为,10,简单的Patchwork实验,下表对于未加水印的原始lenna图像在不同种子控制下ai与bi的平均亮度差。ai与bi的选取使用hashreplacement.m。可以看到,在未加水印前,图像像素的平均亮度差远小于1度(1度=1/128=0.0078)。在检测中,可以定义判定阈值为0.0020.005。,11,12,13,14,15,16,简单的Patchwork实验,17,水印检测,18,19,20,考虑到灰度图像实际上就是Yuv模型中的Y分亮,所以,基于亮度统计特性的空域隐藏算法比较多地应用在灰度图像上。当然这并不表示它们只适用于灰度图像。,