本发明涉及可逆图像水印技术领域,特别是一种基于预测误差加法扩展的可逆图像水印方法及装置。
背景技术:
可逆水印是目前数字水印技术的研究热点,与传统的数字水印技术比较,可逆水印可无失真地完全恢复原始宿主信息,具有较大的研究价值和良好的应用前景,尤其是对原始宿主信息的保真度要求极高的应用领域,例如航拍情报收集等应用领域。现有的可逆水印技术,大多都是基于位移扩展的方式进行水印数据的嵌入,当这种方式存在像素值溢出的问题,从而容易导致图像的视觉质量出现明显的降低。
技术实现要素:
为了克服现有技术的不足,本发明的目的在于提供一种基于预测误差加法扩展的可逆图像水印方法及装置,通过采用加法操作替代传统的位移操作来进行水印数据的嵌入,避免出现像素值溢出的问题,从而能够明显降低由水印引起的视觉失真。
本发明解决其问题所采用的技术方案是:
基于预测误差加法扩展的可逆图像水印方法,包括以下步骤:
s1、对图像进行扫描,得到当前像素x[i,j]及其周围的已知像素;
s2、根据当前像素x[i,j]及其周围的已知像素建立预测器;
s3、利用预测器计算当前像素x[i,j]的预测误差;
s4、利用加法扩展算法对特定值的预测误差进行扩展处理,完成对图像的水印嵌入处理。
进一步,步骤s2中根据当前像素x[i,j]及其周围的已知像素建立预测器,包括以下步骤:
s21、把当前像素x[i,j]及其周围的已知像素构成预测器的上下文;
s22、根据预测器的上下文建立预测器的表达式为:
其中,
进一步,步骤s3中的预测误差由以下公式求得:
其中,e[i,j]为像素x[i,j]的预测误差。
进一步,步骤s4中的加法扩展算法的公式为:
其中,sign(e)为符号函数,b为待嵌入的二进制数据,me和le都为预先取定的值。
进一步,符号函数sign(e)的公式为:
进一步,加法扩展算法的提取逆操作的公式为:
一种储存基于预测误差加法扩展的可逆图像水印方法的装置,包括控制模块和用于储存控制指令的储存介质,控制模块读取储存介质中的控制指令并执行以下步骤:
q1、对图像进行扫描,得到当前像素x[i,j]及其周围的已知像素;
q2、根据当前像素x[i,j]及其周围的已知像素建立预测器;
q3、利用预测器计算当前像素x[i,j]的预测误差;
q4、利用加法扩展算法对特定值的预测误差进行扩展处理,完成对图像的水印嵌入处理。
进一步,控制模块执行步骤q2时,根据当前像素x[i,j]及其周围的已知像素建立预测器,包括以下步骤:
q21、把当前像素x[i,j]及其周围的已知像素构成预测器的上下文;
q22、根据预测器的上下文建立预测器的表达式为:
其中,
进一步,控制模块执行步骤q3时,利用预测器计算当前像素x[i,j]的预测误差,预测误差由以下公式求得:
其中,e[i,j]为像素x[i,j]的预测误差。
进一步,控制模块执行步骤q4时,利用加法扩展算法对特定值的预测误差进行扩展处理,加法扩展算法的公式为:
其中,sign(e)为符号函数,b为待嵌入的二进制数据,me和le都为预先取定的值。
本发明的有益效果是:基于预测误差加法扩展的可逆图像水印方法及装置,在传统的位移扩展方法中,通常需要使用一个位置表来区别已扩展的差值,由于在位置表中的每一个差值或者每一个像素的差值都需要一个位来进行记录,因此位置表的开销往往比较大,虽然位置表的可压缩性很强,但即使是压缩后的位置表仍然会占用比较大的空间。而本发明则首先根据像素x[i,j]及其周围的已知像素建立预测器,接着利用预测器计算像素x[i,j]的预测误差,最后利用加法扩展算法对特定值的预测误差进行扩展处理,因此,通过对预测误差进行加法处理而达到平移的目的,从而能够为扩展腾出空间而实现水印数据的嵌入,不仅占用比较小的空间,并且能够避免出现像素值溢出的问题,从而能够明显降低由水印引起的视觉失真。
附图说明
下面结合附图和实例对本发明作进一步说明。
图1是本发明的预测误差加法扩展方法的流程图;
图2是预测器的上下文示意图;
图3是本发明的预测误差加法扩展方法的示意图。
具体实施方式
参照图1-图3,基于预测误差加法扩展的可逆图像水印方法,包括以下步骤:
s1、对图像进行扫描,得到当前像素x[i,j]及其周围的已知像素;
s2、根据当前像素x[i,j]及其周围的已知像素建立预测器;
s3、利用预测器计算当前像素x[i,j]的预测误差;
s4、利用加法扩展算法对特定值的预测误差进行扩展处理,完成对图像的水印嵌入处理。
其中,步骤s2中根据当前像素x[i,j]及其周围的已知像素建立预测器,包括以下步骤:
s21、把当前像素x[i,j]及其周围的已知像素构成预测器的上下文;
s22、根据预测器的上下文建立预测器的表达式为:
其中,
其中,步骤s3中的预测误差由以下公式求得:
其中,e[i,j]为像素x[i,j]的预测误差。
其中,步骤s4中的加法扩展算法的公式为:
其中,sign(e)为符号函数,b为待嵌入的二进制数据,me和le都为预先取定的值。
具体地,符号函数sign(e)的公式为:
其中,加法扩展算法的提取逆操作的公式为:
此外,一种储存基于预测误差加法扩展的可逆图像水印方法的装置,包括控制模块和用于储存控制指令的储存介质,所述控制模块读取所述储存介质中的控制指令并执行以下步骤:
q1、对图像进行扫描,得到当前像素x[i,j]及其周围的已知像素;
q2、根据当前像素x[i,j]及其周围的已知像素建立预测器;
q3、利用预测器计算当前像素x[i,j]的预测误差;
q4、利用加法扩展算法对特定值的预测误差进行扩展处理,完成对图像的水印嵌入处理。
其中,控制模块执行步骤q2时,根据当前像素x[i,j]及其周围的已知像素建立预测器,包括以下步骤:
q21、把当前像素x[i,j]及其周围的已知像素构成预测器的上下文;
q22、根据预测器的上下文建立预测器的表达式为:
其中,
其中,控制模块执行步骤q3时,利用预测器计算当前像素x[i,j]的预测误差,预测误差由以下公式求得:
其中,e[i,j]为像素x[i,j]的预测误差。
其中,控制模块执行步骤q4时,利用加法扩展算法对特定值的预测误差进行扩展处理,加法扩展算法的公式为:
其中,sign(e)为符号函数,b为待嵌入的二进制数据,me和le都为预先取定的值。
其中,符号函数sign(e)的公式为:
其中,储存介质之中还保存有对应于加法扩展算法的提取逆操作算法,其公式为:
具体地,在传统的位移扩展方法中,通常需要使用一个位置表来区别已扩展的差值,由于在位置表中的每一个差值或者每一个像素的差值都需要一个位来进行记录,因此位置表的开销往往比较大,虽然位置表的可压缩性很强,但即使是压缩后的位置表仍然会占用比较大的空间。而本发明则首先根据像素x[i,j]及其周围的已知像素建立预测器,接着利用预测器计算像素x[i,j]的预测误差,最后利用加法扩展算法对特定值的预测误差进行扩展处理,因此,通过对预测误差进行加法处理而达到平移的目的,从而能够为扩展腾出空间而实现水印数据的嵌入,不仅占用比较小的空间,并且能够避免出现像素值溢出的问题,从而能够明显降低由水印引起的视觉失真。
具体地,传统的差值扩展以像素间的差值作为扩展对象,并且使用位移操作进行扩展,其数字形式可表示为d'=2×d+b,其中b为待嵌入的二进制数据,如0或1,而d则为二个像素之间的差值d=p1-p2。而本发明的预测误差加法扩展方法中,预测误差为
预测器通常只用到前面已经处理过的像素,这样,在提取水印时,只要采用和水印嵌入时相同的扫描顺序来处理图像,就可以重建和嵌入时相同的预测器的上下文,也就可以恢复其预测值,达到水印方法可逆的要求。预测器可以使用当前像素及其之前的所有像素,而不仅仅是某一个具体像素,并且设计良好的预测器都是经过大量实验和线性回归得到的,因此能够达到比较高的预测精度。因此,预测误差一般都要小于像素间的差值,所以预测误差更适用于进行扩展处理,因此,使用预测误差而不是像素间的差值进行扩展是可行且具有优势的。
本发明的加法扩展算法通过对预测误差进行平移来为扩展腾出空间,而每一次的扩展操作只对特定值的预测误差进行。例如,设定需要扩展的预测误差的绝对值为1,那么在进行平移时先把绝对值大于2的预测误差加1,这样就不会存在绝对值为2的预测误差了。然后,如果待嵌入的位为0,则保持待扩展的预测误差不变,即为1;如果待嵌入的位为1,则将待扩展的预测误差加1,使其变为2。在水印提取时,如果预测误差的绝对值大于2,则表示其没有嵌入水印,将其减1就可以恢复到原始的预测误差;如果预测误差的绝对值为2,则表示嵌入了一个为1的位,只要将1提取出来,再将预测误差置为1就可将其恢复了;如果预测误差的绝对值为1,则表示嵌入了一个为0的位,由于将0提取出来,预测误差并无发生变化,因此无需对其进行任何操作。这样,只要记录下1这个数值就可以区分嵌有数据和没有嵌数据的预测误差,而无需使用位置表这样大开销的数据结构。在加法扩展算法中,由于预测误差的分布高度集中于绝对值很小的区域,即使只是等于特定值的预测误差,比如绝对值为1的预测误差,其数量仍然可以占到总数比较大的一部分。
因此,基于上述原理,可以得到加法扩展算法的公式为:
此外,加法扩展算法的提取逆操作的公式为:
其中,sign(e)为符号函数,并且
由于me和le必须在水印提取前确定,因此,可以将它们作为密钥和嵌有水印的图像一起传输,也可以使用其它的水印嵌入方法将它们嵌入在图像中,从而能够有效防止他人盗取信息。如果将原图像和预测图像之间的差看做一幅误差图像,并且将预测误差的分布看作该误差图像的直方图,那么基于预测误差的加法扩展方法就类似于基于直方图操作的水印嵌入方式,其示意图如图3所示。在图3中,me对应的是直方图的最高点,而le则对应直方图的最低点。加法扩展方法就是先将me和le之间的直方图柱向右平移1,然后利用me和me+1对应的两根直方图柱分别嵌入0或1。
此外,在进行扩展处理时还需要考虑像素溢出的问题,例如取值为0的像素不能减1,而取值为255的像素不能加1。因此,本发明中的加法扩展方法只对取值为1至254之间的像素进行水印嵌入,同样地,进行水印提取时也只对取值为1至254之间的像素进行。如果原值为1或254的像素经过加法扩展而变为0和255,则会将它们记录在水印信息的头部。因此,当遇到取值为0或255的像素时,先判断其是不是经由1和254变化而来,再确定如何对其进行操作。由于本发明中的加法扩展方法最多只会将像素增加1,而取值为255和0的边缘像素在真实应用场景的图像中所占比例非常有限,所以这一开销非常小,因此,本发明中的加法扩展方法不仅能够提供更大的嵌入容量,并且能够避免出现像素值溢出的问题。
另外,经过本发明中的加法扩展方法处理过的图像保真度也高于使用传统的基于位移的差值扩展方法的图像保真度。由位移扩展的数学表达式可知,其带来的变化为:
而本发明中的加法扩展方法为:
因此其带来的变化仅仅为:
由于b取0或1,因此本发明中的加法扩展方法最多只会将像素值增加1,因此与传统的基于位移的差值扩展方法相比较,本发明中的加法扩展方法所带来的失真更小。
以上是对本发明的较佳实施进行了具体说明,但本发明并不局限于上述实施方式,熟悉本领域的技术人员在不违背本发明精神的前提下还可作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。