一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

基于单向极值预测误差扩展的可逆水印算法

2022-11-12 23:02:16 来源:中国专利 TAG:


1.本发明涉及信息隐藏,数字水印技术领域,具体涉及一种基于单向极值预测误差扩展的可逆水印算法。


背景技术:

2.可逆水印是近年来多媒体信息安全领域的热点研究问题。该技术在信息嵌入端可以隐藏大量信息到载体图像中;在提取端不仅可以盲提取出所隐藏的信息,而且还能够使得载密图像逆向无损恢复,因此其所具备的可逆特性,在军事、遥感以及医疗等特殊行业发挥出了巨大作用,从而引起了研究者们广泛关注。目前可逆水印算法研究的基本目标之一就是通过以最小的图像失真代价换取最大的嵌入容量。
3.ni等人提出的直方图平移算法是经典可逆数字水印算法之一,该算法对数字图像中像素点的灰度值进行统计,生成灰度直方图,并将出现频率最高的两个灰度值所对应的像素用来做秘密信息的嵌入。该算法能够使得载密图像具备较高的视觉质量,但缺点就是水印嵌入容量较低。为了能够弥补嵌入容量的不足,lee等人利用了像素间的高相关性,通过计算相邻像素差值,提出了基于差值直方图的可逆水印算法,该算法很好的利用了峰值点高度集中在0点的分布特性,使得嵌入容量得到了较大的提升。tsai等人同样利用了相邻像素间的强相似性,提出了基于预测误差直方图的可逆水印嵌入策略,通过利用图像像素间的冗余,使得直方图峰值更加陡峭,有效解决了传统直方图平移算法中峰值点数量过小,使得嵌入容量受限问题,此外还大幅度提升了载密图像的不可感知性,随后大量的基于预测误差直方图平移的可逆水印算法被人们所提出。
4.为了能够有效提升水印嵌入容量,预测误差扩展算法(prediction error expansion,pee)被研究者所提出,此类算法主要是将差值扩展与直方图平移两种算法进行结合,从而在提升嵌入容量的同时,还保证了载密图像的视觉质量。在基于pee的可逆水印策略中,目前很多方法都采用了一些特殊的自适应预测器来改善像素的预测精度,例如菱形预测器,基于局部预测的最小二乘预测器,基于最小绝对收缩和选择算子(lasso)的最小二乘预测器,这些像素预测器在基于pee的可逆水印算法中被广泛应用。此外为了能够更好的利用图像像素空间的冗余性,部分研究者将一维直方图映射到了二维空间上,提出了基于二维直方图pee的可逆水印策略,使得嵌入性能得到进一步的提高。
5.近几年一种基于像素补偿的可逆图像水印技术被提出,这是一种双重嵌入技术,其中第一次嵌入水印后被修改的像素可以通过第二次嵌入来进行抵消,以此来降低图像的失真。例如chen等人提出了一种基于定向预测误差直方图的可逆水印策略,通过利用两个不同的预测值所生成非对称预测误差直方图,以此来实现水印的嵌入。
6.因此,如何提高水印嵌入容量和图像视觉质量是亟需解决的问题。


技术实现要素:

7.发明目的:针对现有技术中存在的问题,本发明提供一种基于单向极值预测误差
扩展的可逆水印算法,利用所构造出的两类非对称预测误差直方图并通过单向预测误差扩展来实现水印的嵌入,能够使得由于预测误差扩展所造成修改的像素得到补偿,大大减少移位的像素数量,该算法在保证图像质量的前提下,能够提高载密信息的嵌入量,减少图像失真。
8.技术方案:本发明提供了一种基于单向极值预测误差扩展的可逆水印算法,包括如下水印嵌入步骤:
9.步骤1:给定一个m
×
n的8位灰度图像i(i,j),0≤i(i,j)≤255,对其进行扫描,并按照像素将图像划分为黑白棋盘格结构,得到黑、白两个半平面;
10.步骤2:对图像进行防溢预处理,并创建一个位置图m,将对于灰度值在[t,255-t]范围内的像素,我们在位置图中赋值为0;否则,赋值为1,并记录它们的坐标信息,最后将位置图采用算术编码算法进行无损压缩,将其位置图大小以及压缩后的位置图附加到水印信息头部,并一起嵌入到图像中;
[0011]
步骤3:完成防溢出处理后,采用局部复杂度函数计算出白色平面各像素的局部复杂度值,并按照复杂度由低到高的顺序进行排列;
[0012]
步骤4:选择白色平面来进行第一轮水印嵌入,首先对白色半平面中的各像素i(i,j)计算出最小像素预测值然后计算出最大预测误差e
max
,并通过复杂度的顺序对最大预测误差进行排序;
[0013]
步骤5:利用所计算白色平面每个像素的最大预测误差e
max
生成最大值非对称预测误差直方图,根据所嵌水印的大小选择合适的容量控制参数t,并将前半部分水印信息b
l
优先嵌入到复杂度较低的像素中,至此完成第一轮水印嵌入得到载密图像i'(i,j);
[0014]
步骤6:由步骤5所得到的载密图像i'(i,j)中,再次采用局部复杂度函数计算出黑色平面各像素局部复杂度值,并按照复杂度由低到高的顺序进行排序;
[0015]
步骤7:在完成像素复杂度排序后,计算黑色半平面中的各像素i(i,j)最大预测像素值和最小预测误差e
min
,并同样通过复杂度的顺序对最小预测误差进行排序;该层水印嵌入时的容量控制参数t与第一层嵌入所选择的t值相等,同样将水印信息br优先嵌入到复杂度较低的像素中,此时完成第二轮水印嵌入得到载密图像i”(i,j);至此,两层嵌入的秘密信息b
l
与br序列长度之和即总的信息嵌入量。
[0016]
进一步地,所述步骤2中对图像进行防溢预处理的具体操作为:
[0017]
位置图m=(m1,....,mi,....,mn)被生成和从原始像素p0到预处理后像素p的实现方式如下:
[0018][0019][0020]
进一步地,所述步骤3局部复杂度函数计算出白色平面各像素的局部复杂度值具体为:设要计算像素p的局部复杂度值,可由下式进行计算:
[0021][0022]
式中:a、b、c、d分别为像素p的垂直和水平方向的四个邻域像素。
[0023]
进一步地,所述步骤4中计算最小像素预测值最大预测误差e
max
的过程为:首先对白平面进行水印嵌入,利用白平面周围的黑平面像素值来进行预测像素值的计算,然后求取预测误差;想要获取像素白平面中i
i,j
的最小预测像素值生成0值偏向右侧的非对称误差直方图,那么需要利用所求得的相邻像素均值,具体如下:
[0024]
定义待预测像素邻域位置集合:φ
i,j
={(i-1,j),(i 1,j),(i,j-1),(i.j 1)}
[0025]
均值预测表达式如下:
[0026][0027]
像素白平面中i
i,j
的最小预测像素值公式如下:
[0028][0029]
取相邻像素最小像素值为该像素的预测像素,其最大预测误差e
max

[0030][0031]
进一步地,所述步骤7中计算黑色半平面中的各像素i(i,j)最大预测像素值和最小预测误差e
min
的过程为:
[0032]
在载密图像i'上对黑平面进行像素值预测,与白平面上像素点预测方法相似,只不过这轮像素预测采用黑平面周围的白平面像素值来进行预测像素值的计算,求取相应的预测误差,以此生成0值偏左的非对称预测误差直方图,获取像素黑平面中像素点i'(i,j)最大预测像素值公式如下:
[0033][0034]
最小预测误差e
min

[0035][0036]
进一步地,所述步骤5中进行第一轮水印嵌入的过程为:
[0037]
选取峰值点与0点左侧多对峰值对来完成秘密信息的嵌入,在峰值点p1左侧附近选取t峰值对进行水印嵌入,嵌入表达式如下:
[0038][0039]
其中,e'
max
是修改后的预测误差,b
l
∈{0,1}是准备嵌入的前半部分二进制水印信息,p1为第一层非对称预测误差直方图峰值点,t为嵌入容量控制参数,是需要根据实际水印大小来自适应选择的,若t=1无法满足嵌入容量,那么则需增大t的值;
[0040]
设i'(i,j)为嵌入第一轮嵌入水印后的载密图像,其计算公式为:
[0041][0042]
其中,为像素的最小预测值。
[0043]
进一步地,所述步骤7中第二轮水印嵌入的过程为:
[0044]
在载密图像i'(i,j)上计算出黑平面各像素的最大预测像素值,并得到其最小预测误差,生成相应的最小值预测误差直方图,该直方图呈现出偏向于0点左侧的分布特性,选择峰值点p2与其右侧t个峰值对进行单向预测误差扩展,实现第二轮秘密信息嵌入,嵌入表达式如下:
[0045][0046]
其中,e'
min
是修改后的预测误差,br∈{0,1}是准备嵌入的后半部分二进制水印信息,p2为第二层非对称预测误差直方图峰值点,t为嵌入容量控制参数;
[0047]
设i”(i.j)为嵌入第二轮嵌入水印后的载密图像,其计算公式为:
[0048][0049]
其中,为像素的最大预测值。
[0050]
进一步地,还包括如下水印提取的步骤:
[0051]
s1:扫描图像并按照像素将含水印图像划分为黑白棋盘格结构,得黑、白两个半平面;
[0052]
s2:采用局部复杂度函数计算黑色平面各像素的局部复杂度,并按升序进行排序;
[0053]
s3:对黑色半平面中的各像素计算出最大预测像素值和最小预测误差e'
min

[0054]
s4:通过最小预测误差e'
min
,如果e'
min
∈[p2,p2 2t),p2为水印嵌入时第二层非对称预测误差直方图峰值点,t为嵌入容量控制参数,提取所嵌入的水印信息br,br为水印嵌入时后半部分水印信息,遍历所有子块,直到黑色半平面所嵌入的水印信息全部提取完毕,并恢复成载密图像i'(i,j);
[0055]
s5:采用局部复杂度函数计算白色半平面各像素的局部复杂度,并按升序进行排序;
[0056]
s6:由图像i'(i,j)针对白色平面像素计算出最小预测像素值和预测误差e'
max

[0057]
s7:如果e'
max
∈(p
1-2t,p1],p1为水印嵌入时第一层非对称预测误差直方图峰值
点,t为嵌入容量控制参数,提取所嵌入的水印信息b
l
,b
l
为水印嵌入时前半部分水印信息,遍历所有子块,直到白色半平面全部提取完毕,并恢复成载密图像i(i,j)。
[0058]
进一步地,所述s4中提取所嵌入的水印信息br,并恢复成载密图像i'(i,j)具体为:
[0059]
提取所嵌入的水印信息br:
[0060][0061]
恢复原始的预测误差e
min
和像素值i'(i,j):
[0062][0063]
i'(i,j)=i”(i,j)-e
min
p2 br。
[0064]
进一步地,所述s7中提取所嵌入的水印信息b
l
,并恢复成载密图像i(i,j)具体为:
[0065]
利用像素已经恢复完成的黑平面i'(i.j)来对白平面所嵌入的水印进行提取以及恢复图像,最小预测像素值以及嵌入水印后的最大预测误差值e'
max
,提取水印信息b
l
由以下公式可得:
[0066][0067]
恢复原始的预测误差e
max
和像素值i(i,j):
[0068][0069]
i(i,j)=i'(i,j)-e
max-p
1-b
l

[0070]
有益效果:
[0071]
1、本发明提出的一种基于单向极值预测误差扩展的可逆水印算法,首先将原始图像分成黑白两个平面,并利用局部复杂度函数来计算各像素的局部复杂度值,然后分别通过所设计的像素极值预测机制,生成两个非对称预测误差直方图,最后采用单向直方图位移与预测误差扩展相结合的方法将水印分成两部分优先嵌入到局部复杂度较低的像素中。本算法通过利用非对称直方图在两层嵌入时所发生的像素补偿还原效应,使得大量被修改后的像素恢复到原始图像像素值,此外本算法还根据像素局部复杂度值自适应地选择水印的嵌入位置,因此这两种方法的叠加进而大大降低了图像失真程度,保证了载密图像的视觉质量。实验结果表明,该算法的水印嵌入率较高,载密图像视觉质量较好,相较于其他可逆信息因算法,具有一定的性能优势。
[0072]
2、本发明利用四个邻域像素来预测中间像素可以得到较好的预测效果,基于此本发明提出的一种基于菱形像素的极值预测机制,不仅考虑到了像素局部梯度的变化对于直方图峰值点数量的影响,而且在一定程度上也保证了直方图的非对称性。
[0073]
3、本发明通过利用周围像素间的相关性,采用局部方差构造像素局部复杂度近似
度量函数,由于本发明是分平面进行水印嵌入的,因此其中一个平面像素的改变不会影响到另一个平面,因此复杂度在水印逆向提取时,其值依然不会发生改变,这也保证了算法的可逆性。
[0074]
4、本发明为了能够提高图像隐写质量,在第一轮水印嵌入时将最大值预测误差直方图往左侧进行平移,以此来减少无效平移像素数量,降低图像失真度。此外为了进一步增加秘密信息的嵌入容量,通过采用单向预测误差扩展来实现秘密信息嵌入量的有效提升。
附图说明
[0075]
图1为本发明水印嵌入流程图;
[0076]
图2为本发明水印提取流程图;
[0077]
图3为本发明实施例的测试图像;
[0078]
图4为本发明实施例中某个图像水印嵌入以及图像恢复前后对比图,其中a为原始图像,b为嵌入水印后的图像,c为恢复后的图像,d为水印信息;
[0079]
图5为本发明黑白棋盘格结构;
[0080]
图6为本发明像素预测模式;
[0081]
图7为本发明实施例像素分布示意图;
[0082]
图8为本发明基于lena图像的非对称直方图,a为最小预测误差直方图,b为最大预测误差直方图;
[0083]
图9为本发明单向预测误差扩展示意图;
[0084]
图10为本发明3种方法在4幅测试图像中psnr值曲线对比图;
[0085]
图11为本发明3种算法的最高嵌入容量对比。
具体实施方式
[0086]
下面结合附图对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0087]
本发明公开了一种基于单向极值预测误差扩展的可逆水印算法,包括水印嵌入和水印提取两个部分,其中水印嵌入的步骤如下:
[0088]
步骤1:给定一个m
×
n的8位灰度图像i(i,j),0≤i(i,j)≤255,对其进行扫描,并按照像素将图像划分为黑白棋盘格结构,得到黑、白两个半平面,参见附图5所示。将原宿主图像i划分成黑白两个平面类似于棋盘格结构,这两个平面互不相交,预测时也互不影响,可以无损的恢复图像。在此基础上为了尽量保持水印信息的嵌入量,以及减少无效平移像素的个数,因此通过利用待嵌入像素横向与纵向四个相邻像素,两两求其均值,并计算出最大(最小)均值来作为预测像素,这样做的好处在于不仅考虑到了像素局部梯度的变化对于直方图峰值点数量的影响,而且在一定程度上也保证了直方图的非对称性。
[0089]
步骤2:对图像进行防溢预处理,并创建一个位置图m,将对于灰度值在[t,255-t]范围内的像素,我们在位置图中赋值为0;否则,赋值为1,并记录它们的坐标信息,最后将位置图采用算术编码算法进行无损压缩,将其位置图大小以及压缩后的位置图附加到水印信息头部,并一起嵌入到图像中。
[0090]
对图像进行防溢预处理的具体操作为:
[0091]
位置图m=(m1,....,mi,....,mn)被生成和从原始像素p0到预处理后像素p的实现方式如下:
[0092][0093][0094]
步骤3:完成防溢出处理后,采用局部复杂度函数计算出白色平面各像素的局部复杂度值,并按照复杂度由低到高的顺序进行排列。
[0095]
在利用预测误差直方图实现水印嵌入过程中,通常用于水印嵌入的像素点称为有效平移像素,而只用于平移的像素点为无效平移像素。一般而言无效平移像素越多,嵌入容量不会有着任何的增加,相反则会造成载密图像较大的失真。因此通过利用相邻像素计算各像素点的复杂度,然后按照升序进行排列,将水印信息优先嵌入到低复杂度的像素点中,这种方法能够在一定程度上减少无效平移像素数量,提高载密图像的视觉质量。为此,本发明通过利用周围像素间的相关性,采用局部方差构造像素局部复杂度近似度量函数,由于本发明是分平面进行水印嵌入的,因此其中一个平面像素的改变不会影响到另一个平面,因此复杂度在水印逆向提取时,其值依然不会发生改变,这也保证了算法的可逆性。像素分布如图7所示,假设要计算p的局部复杂度值,可由如下进行计算:
[0096][0097]
式中:a、b、c、d分别为像素p的垂直和水平方向的四个邻域像素。
[0098]
步骤4:选择白色平面来进行第一轮水印嵌入,首先对白色半平面中的各像素i(i,j)计算出最小像素预测值然后计算出最大预测误差e
max
,并通过复杂度的顺序对最大预测误差进行排序。
[0099]
通常一个中间像素与其垂直和水平方向的四个邻域像素的相关性最大,利用这四个邻域像素来预测中间像素可以得到较好的预测效果。基于此本发明提出了一种基于菱形像素的极值预测机制,如图5所示,将原宿主图像i划分成黑白两个平面类似于棋盘格结构,这两个平面互不相交,预测时也互不影响,可以无损的恢复图像。在此基础上为了尽量保持水印信息的嵌入量,以及减少无效平移像素的个数,因此通过利用待嵌入像素横向与纵向四个相邻像素,两两求其均值,并计算出最大(最小)均值来作为预测像素,这样做的好处在于不仅考虑到了像素局部梯度的变化对于直方图峰值点数量的影响,而且在一定程度上也保证了直方图的非对称性。
[0100]
定义待预测像素邻域位置集合:φ
i,j
={(i-1,j),(i 1,j),(i,j-1),(i.j 1)}
[0101]
均值预测表达式如下:
[0102][0103]
如果首先对白平面进行水印嵌入,那么就需要利用白平面周围的黑平面像素值来进行预测像素值的计算,然后求取预测误差。想要获取像素白平面中i
i,j
的最小预测像素值生成0值偏向右侧的非对称误差直方图,那么需要利用所求得的相邻像素均值,公式如下:
[0104][0105]
因为取相邻像素最小像素值为该像素的预测像素,那么其最大预测误差e
max

[0106][0107]
当计算出白平面每个像素的预测误差后就能够生成相应的最大值预测误差直方图,然后利用该直方图完成第一部分水印的嵌入,生成载密图像i'。
[0108]
步骤5:利用所计算白色平面每个像素的最大预测误差e
max
生成最大值非对称预测误差直方图,根据所嵌水印的大小选择合适的容量控制参数t,并将前半部分水印信息b
l
优先嵌入到复杂度较低的像素中,至此完成第一轮水印嵌入得到载密图像i'(i,j)。
[0109]
选取峰值点与0点左侧多对峰值对来完成秘密信息的嵌入,在峰值点p1左侧附近选取t峰值对进行水印嵌入,嵌入表达式如下:
[0110][0111]
其中,e'
max
是修改后的预测误差,b
l
∈{0,1}是准备嵌入的前半部分二进制水印信息,p1为第一层非对称预测误差直方图峰值点,t为嵌入容量控制参数,是需要根据实际水印大小来自适应选择的,若t=1无法满足嵌入容量,那么则需增大t的值;
[0112]
设i'(i,j)为嵌入第一轮嵌入水印后的载密图像,其计算公式为:
[0113][0114]
其中,为像素的最小预测值。
[0115]
步骤6:由步骤5所得到的载密图像i'(i,j)中,再次采用局部复杂度函数计算出黑色平面各像素局部复杂度值,参见步骤3所述,并按照复杂度由低到高的顺序进行排序。
[0116]
步骤7:在完成像素复杂度排序后,计算黑色半平面中的各像素i(i,j)最大预测像素值和最小预测误差e
min
,并同样通过复杂度的顺序对最小预测误差进行排序;该层水印嵌入时的容量控制参数t与第一层嵌入所选择的t值相等,同样将水印信息br优先嵌入到复杂度较低的像素中,此时完成第二轮水印嵌入得到载密图像i”(i,j);至此,两层嵌
入的秘密信息b
l
与br序列长度之和即总的信息嵌入量。
[0117]
在载密图像i'上对黑平面进行像素值预测,与白平面上像素点预测方法相似,只不过这轮像素预测采用黑平面周围的白平面像素值来进行预测像素值的计算,求取相应的预测误差,以此生成0值偏左的非对称预测误差直方图,获取像素黑平面中像素点i'(i,j)最大预测像素值公式如下:
[0118][0119]
最小预测误差e
min

[0120][0121]
第二轮水印嵌入的过程为:
[0122]
在载密图像i'(i,j)上计算出黑平面各像素的最大预测像素值,并得到其最小预测误差,生成相应的最小值预测误差直方图,该直方图呈现出偏向于0点左侧的分布特性,选择峰值点p2与其右侧t个峰值对进行单向预测误差扩展,实现第二轮秘密信息嵌入,嵌入表达式如下:
[0123][0124]
其中,e'
min
是修改后的预测误差,br∈{0,1}是准备嵌入的后半部分二进制水印信息,p2为第二层非对称预测误差直方图峰值点,t为嵌入容量控制参数;
[0125]
设i”(i.j)为嵌入第二轮嵌入水印后的载密图像,其计算公式为:
[0126][0127]
其中,为像素的最大预测值,至此所有的水印信息全部嵌入完成。图9为设定t=2时水印两层嵌入及单向预测误差扩展示意图。
[0128]
本发明公开的水印提取的步骤:
[0129]
水印提取和图像无损恢复是上述水印嵌入的逆向过程。对于收到载密图像,因为对于原宿主图像i将其划分成基于黑白平面的棋盘格结构,并且是依次按照白,黑的顺序来进行水印的嵌入,因此在提取水印时则需要进行逆向操作,原因在于水印嵌入与提取必须使用相同的参考像素才能够正确提取出水印信息。因此在该阶段首先对黑平面所嵌入的水印进行提取以及像素恢复。
[0130]
s1:扫描图像并按照像素将含水印图像划分为黑白棋盘格结构,得黑、白两个半平面。
[0131]
s2:采用局部复杂度函数计算黑色平面各像素的局部复杂度,并按升序进行排序。
[0132]
s3:对黑色半平面中的各像素计算出最大预测像素值和最小预测误差e'
min

[0133]
s4:通过最小预测误差e'
min
,如果e'
min
∈[p2,p2 2t),p2为水印嵌入时第二层非对称预测误差直方图峰值点,t为嵌入容量控制参数,提取所嵌入的水印信息br,br为水印嵌入时后半部分水印信息,遍历所有子块,直到黑色半平面所嵌入的水印信息全部提取完毕,并恢复成载密图像i'(i,j)。
[0134]
提取所嵌入的水印信息br,并恢复成载密图像i'(i,j)具体为:
[0135]
提取所嵌入的水印信息br:
[0136][0137]
恢复原始的预测误差e
min
和像素值i'(i,j):
[0138][0139]
i'(i,j)=i”(i,j)-e
min
p2 br。
[0140]
s5:采用局部复杂度函数计算白色半平面各像素的局部复杂度,并按升序进行排序。
[0141]
s6:由图像i'(i,j)针对白色平面像素计算出最小预测像素值和预测误差e'
max

[0142]
s7:如果e'
max
∈(p
1-2t,p1],p1为水印嵌入时第一层非对称预测误差直方图峰值点,t为嵌入容量控制参数,提取所嵌入的水印信息b
l
,b
l
为水印嵌入时前半部分水印信息,遍历所有子块,直到白色半平面全部提取完毕,并恢复成载密图像i(i,j)。
[0143]
提取所嵌入的水印信息b
l
,并恢复成载密图像i(i,j)具体为:
[0144]
利用像素已经恢复完成的黑平面i'(i.j)来对白平面所嵌入的水印进行提取以及恢复图像,最小预测像素值以及嵌入水印后的最大预测误差值e'
max
,提取水印信息b
l
由以下公式可得:
[0145][0146]
恢复原始的预测误差e
max
和像素值i(i,j):
[0147][0148]
i(i,j)=i'(i,j)-e
max-p
1-b
l

[0149]
至此所有的信息已经全部被提取出,并且图像也实现了无损恢复。
[0150]
根据上述实施例,下表1和表2分别给出了图3中各测试图像在10000bit以及20000bit嵌入量下,本发明算法与其他两种算法的psnr值。通过表中可以得出,当嵌入10000bit水印信息时,采用本发明算法所得到的图像psnr均值比其他两种方法分别高出5.7%和3.5%;当嵌入20000bit水印信息时,则比其他两种方法分别高出2.6%和1.2%,因此本发明算法相较于文献[16](何玉芬,殷赵霞,汤进.基于非对称直方图平移的可逆信息隐藏算法[j].网络与信息安全学报,2019,5(5):80-9)和文献[17](熊祥光,韦立.基于直方图平移和互补嵌入的可逆水印方案[j].计算机工程,2015,41(8):180-5.)两种算法,其嵌入水印后的载密图像视觉质量更高。
[0151]
表1三种算法的psnr值比较(嵌入10000bit)
[0152][0153]
表2三种算法的psnr值比较(嵌入20000bit)
[0154][0155]
为了进一步证明本算法所具有的嵌入性能优势,实验结果如图10所示,该图为嵌入容量不同时,本发明算法与文献[16]和文献[17]两种算法的psnr对比曲线图。
[0156]
从图10中可以看出当嵌入容量相同时,本发明算法的psnr值均高于其他两种算法。尤其是本发明算法在plane图中的实验结果表现出了更加优良的嵌入性能,而这主要是由于plane图纹理较为简单,因此具有较多的平滑区域,因此就使得直方图峰值点数量较多,无效平移像素数量相对较少,在增大嵌入量下,使得载密图像仍旧具有较高的视觉质量。因此对于plane这类纹理平滑的图像来说,本算法相较于文献[16]和文献[17]两种算法,更具有一定的性能优势。对于sailboat这类纹理较为粗糙的图像来说,采用文献[16]算法所得到的载密图像失真度最大,其原因在于该算法在进行水印两层嵌入时仅仅只用相邻单个像素值作为预测值,预测精度较低,所生成的差值直方图峰值点个数较少,而且在在水印嵌入过程中也会使得单个像素最多被修改2次,因此这就造成了图像较大失真,降低了载密图像视觉质量。而文献[17]由于同样利用所构造的非对称直方图来嵌入水印信息,因此在一定程度上降低了图像的失真程度,然而该算法同样会使得单个像素会在水印两层嵌入时其最大修改量为2,从而对载密图像视觉质量造成一定的影响;本发明算法由于采用双平面两层的水印嵌入策略,使得单个像素的修改量最多为1,而且还利用了非对称直方图两层嵌入时所具有的像素补偿特性,因此表明本算法相较于其他两种算法,对于这类纹理较为复杂的图像,在不可感知性上更优。
[0157]
本发明所提出的是基于单向极值预测误差扩展的可逆水印算法,通过利用两层单向预测误差扩展来使得本算法具有较大嵌入容量,而且由于在分两层嵌入时,峰值的扩展是反向单向进行的,因此就会使得部分像素扩展量发生抵消,避免载密图像出现过大的失真。此外由于本算法的嵌入容量会随着t(嵌入容量参数)的增加而提升,但psnr值则会随之降低,因此经分析,设t=2时已经远远满足一般水印信息嵌入容量需求,而且还保证了载密
图像的视觉质量。图11给出了文献[16]和文献[17]以及本算法设t=1和t=2时最大嵌入容量情况对比。
[0158]
从图11可以看出,当本算法设t=1时,其最高嵌入容量均小于其他两种算法。主要是由于文献[16]算法所生成的两类非对称直方图都是利用图像所有的像素值预测得到的,也就是说两层嵌入时都将图像的所有像素均作为待嵌入像素,因此其直方图的峰值较为陡峭,其嵌入容量也往往较大。文献[17]算法则是分别通过对相邻像素水平和垂直作差,生成差值直方图,将水印分两轮嵌入到原始图像中,因此也具有较大的嵌入容量。而本发明算法为了能够使得在水印分两层嵌入时,各像素最多被修改1次,因此将原始图像分为两个半平面,每一层嵌入时只是将半平面的像素作为待嵌入像素,因此本发明算法在每层嵌入时的待嵌入像素要远远少于其他两种算法。但为了增大本算法的嵌入量,t值可以根据水印大小自适应进行调整,当设t=2时,此时本算法的最高嵌入容量就远远大于其他两种算法。以lena图像为例,当t=2时,本发明算法的嵌入容量达到59894bit,分别高出其他两种算法21569bit,17951bit。
[0159]
当t值增大时其psnr值往往会随之降低,但通过表3可看出,当t=2时本算法的最高嵌入容量所对应的psnr值仍然略高于其他两种算法,使得载密图像不会发生较大的失真,因此本算法在嵌入容量以及视觉质量上相较于其他两种算法都具有一定的性能优势。
[0160]
表3三种算法嵌入容量及psnr值对比结果
[0161][0162]
上述实施方式只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所做的等效变换或修饰,都应涵盖在本发明的保护范围之内。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献