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

一种基于JPEG图像的通用可逆数据隐藏方法

2023-01-15 08:19:33 来源:中国专利 TAG:

一种基于jpeg图像的通用可逆数据隐藏方法
技术领域
1.本发明涉及可逆信息隐藏技术领域,具体涉及了一种基于jpeg图像的通用可逆数据隐藏方法。


背景技术:

2.随着计算机网络和数字媒体信息的快速发展,使信息的存储、传播、获取越来越容易。在大数据时代,移动端设备的使用随处可见,数字媒体形式更加多样化、携带信息量更大、传播速度更快,对信息安全的要求越来越高。然而在享受科技成果带来便利的同时,媒体的版权、内容的真伪和信息内容的安全等问题随之而来。信息隐藏技术是将一些秘密信息隐藏在信息载体中,而且不能导致信息载体无法正常使用,可逆水印技术是利用数字载体的冗余嵌入秘密信息,在检测时无失真的恢复原始载体和秘密信息。
3.现在的技术中已经有很多可逆信息隐藏方法,但其中大多数都是为未压缩的图像而设计的,只有少数基于jpeg图像的可逆信息隐藏方法,而jpeg图像格式在日常生活中应用广泛,对jpeg图像的可逆信息隐藏算法的创新和优化有非常重大的意义。


技术实现要素:

4.针对现有技术的不足,本发明提供一种视觉质量和文件大小增量方面都实现了性能提升的基于jpeg图像的通用可逆数据隐藏方法。
5.本发明的一种基于jpeg图像的通用可逆数据隐藏方法,采用以下技术方案:其包括以下步骤:
6.s1、将原始jpeg图像进行熵解码得到量化后的离散余弦变换dct系数块,计算每个位置平滑度值,并按块平滑度降序调整块顺序,构造多个直方图;
7.s2、确定自适应二维直方图映射规则,将秘密信息嵌入每个直方图的dct系数对中,并获得嵌入容量和嵌入失真;
8.s3、嵌入失真和嵌入容量组成的嵌入对,生成二维直方图的矩阵,并从矩阵中的每一行中挑选出一个嵌入对;利用改进的离散粒子群优化方法获得了每一个二维直方图的最优嵌入方式和最优阈值;
9.s4、用最优阈值生成二维直方图,按照其对应的最优嵌入方式进行水印嵌入进行熵编码得到含秘密信息jpeg图像;并将附加信息嵌入到含秘密信息jpeg图像中。
10.进一步,所述步骤s1包括:
11.s11、将原始jpeg图像进行熵解码后分成互不重叠的8
×
8大小的量化后的dct系数块其中,代表块的数量,表示第k个dct系数块;
12.s12、每个dct系数块中包含1个dc系数和63个ac系数,形成64个频带;即将dc系数的频带记为0,dc系数组成频带将位于第l个位置的ac系数组成第l个频带
并为每一个频带分配一个阈值t
l
(t
l
∈[t
min
,t
max
]),其中l∈{1,2,

,63};即每个块包含1个dc系数c
k,0
和63个ac系数
[0013]
s13、dc系数不参与数据嵌入过程,计算中的每个ac系数c
k,l
的平滑度,即c
k,l
所在dct系数块的平滑度的平滑度其中,l是ac系数位置的编号,l∈{1,2,

,63},表示第k个dct系数块,#表示一个集合的秩,c
k,l
表示中第l个ac系数,c
k,l
=0代表值为零的ac系数;
[0014]
s14、挑选出平滑度大于t
l
的ac系数,将挑选出来的系数按照平滑度的降序排序获得排序后的ac系数其中,σ是一种映射关系,是一个一对一的映射,使得是一个一对一的映射,使得是频带中满足大于阈值t
l
的ac系数的数量,将中每两个相邻的ac系数组成一个系数对,构造出第l个二维直方图:
[0015][0016]
其中,#表示一个集合的秩,表示向下取整函数,(cn,c
n 1
)代表一个ac系数对,(s1,s2)代表(cn,c
n 1
)的具体取值。
[0017]
进一步,所述步骤s2包括:
[0018]
s21、二维直方图有10种映射规则,代表10种嵌入方式其中第10种映射规则代表的是ac系数对没有做任何修改的嵌入方式,即在中ac系数对保持不变,其他9种映射规则代表了9种ac系数对的修改方式;
[0019]
s22、二维直方图以平面直角坐标系的形式表达,c
x
为横轴,cy为纵轴,即一个ac系数对用(c
x
,cy)代表,每一种映射将ac系数对分成四类:和类;假设类;假设和分别对应和中ac系数对的数量,中和的点(c
x
,cy)进行嵌入和移位操作,包括:
[0020]
若存在三个映射方向,嵌入1bit或2bits秘密信息,根据点的位置和映射的不同可将的a类点分为五种,具体来说:
[0021]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0022]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
,cy 1);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0023]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
,cy 1);
[0024]
当属于时,(c
x
,cy)=(cu,cv 1),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
,cy 1);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0025]
当属于时,(c
x
,cy)=(cu 1,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0026]
计算9种映射带来嵌入容量和嵌入失真,其中,对于来说,a类点的嵌入容量而嵌入失真分为两种情况,对于来说,对于来说,
[0027]
若存在两个或三个映射方向,嵌入1bit或2bits秘密信息,b类点按照个数和映射方向可分为四类,的嵌入容量和嵌入失真计算如下:
[0028]
当属于时,
[0029]
当属于时,(c
x
,cy)存在两个点,记为(cu,cv)和(cu 1,cv 1),假设(cu,cv)系数对的数量为那么(cu 1,cv 1)的数量为此时,此时,
[0030]
当属于时,
[0031]
当属于时,
[0032]
若存在两个映射方向,嵌入1bit秘密信息,当s1=
‘0’
时,(c
x
,cy)沿坐标轴方向映射;当s1=
‘1’
时,(c
x
,cy)沿对角线方向映射;对于来说,的嵌入失真
[0033]
若指坐标空间中a、b、c三类点以外的点,存在一个映射方向,不嵌入秘密信息,所以d类点不提供容量,d类点的嵌入容量和嵌入失真计算公式如下:
[0034]
当属于时,
[0035]
当属于时,(c
x
,cy)存在两种点,假设第一种点的数量为那么另一类点的个数为此时,
[0036]
对于二维直方图来说,嵌入失真是嵌入容量是
即直方图的嵌入容量为a类点、b类点和c类点所带来的容量之和,直方图的嵌入失真为a类点、b类点、c类点和d类点引起的嵌入失真之和。
[0037]
进一步,所述步骤s3包括:
[0038]
s31、二维直方图h
l
的平滑度阈值t
l
取值为t
min
时,采用第m(m∈{1,2,

,n
ω
})个嵌入方式,其中n
ω
代表嵌入方式的数量;则嵌入失真和嵌入容量组成的嵌入对表示为n
ω
种嵌入方式产生n
ω
个嵌入对,即当t
l
取值为t
min
1时,也会产生n
ω
个嵌入对当t
l
从t
min
增大到t
max
时,全部的嵌入方式是在数据嵌入过程中,只有个二维直方图被用于数据嵌入;由于一个二维直方图会产生一个长度为(t
max-t
min
1)
×nω
的序列,个二维直方图会产生一个大小为的矩阵,具体如下:
[0039][0040]
s32、设置g=0,和g=3,000,其中代表粒子数量,g代表迭代次数,g代表第g次迭代,且g≤g,产生个粒子,每一个粒子包含位置信息和速度信息两个部分,每个粒子的位置信息是由个元素组成,表示为其中对应步骤s31矩阵中的第行中随机选取的嵌入对的位置的位置即其中同样,每个粒子的速度信息也是由个元素组成,表示为其中初始化速度公式rand代表从(0,1)中随机选的一个数,θ
max
=25和θ
min
=-25;第n个粒子的自适应度值定义为其中,是h
l
对应的量化表中量化步长的值;定义全局最优粒子其代表了给定容量下能实现最小适应度值的粒子;定义代表的最优值,其代表的所有取值中适应度最小的粒子,当g=0时,
[0041]
s33、迭代粒子,其包括:
[0042]
s331、设n=1;
[0043]
s332、更新每一个粒子的速度:
[0044][0045]
其中w1=0.9,w2=0.4,α
1s
=α
2e
=5,α
2s
=α
1e
=0.5,r1和r2是两个从0和1之间选出的随机数;
[0046]
更新每一个粒子位置信息:
[0047][0048]
在改变每一个粒子的位置后,当的某一元素超过了[1,(t
max-t
min
1)
×nω
]时,则上溢和下溢会发生,为了阻止溢出的发生,如果则如果则
[0049]
更新后的粒子的适应度值记录为如果且n<n,则n=n 1并执行步骤s332;如果且n≥n,则g=g 1,并执行步骤s332;否则,进行执行步骤s333;
[0050]
s333、变异操作:
[0051]
从第(g-1)
th
次迭代中随机选出来两个个体最优粒子和其中opt1≠opt2;产生一个新的粒子
[0052][0053]
计算的适应度值产生
[0054][0055]
在变异操作后,如果且n<n,则n=n 1并执行步骤s332;如果且n≥n,则g=g 1并执行步骤s332;;否则,则执行步骤s334;
[0056]
s334、交叉操作:
[0057]
设置γ=0.6;
[0058]
从的个元素中随机选择个元素,并记录这些随机选择出来的位置,用
的随机选出来的元素代替的相同位置的元素,从而产生一个其自适应值是
[0059]
如果则否则,如果n<n,n=n 1,并执行步骤s332;否则,g=g 1并执行步骤s332;
[0060]
s335、重复执行步骤332至334直到g>g,输出全局最优的粒子
[0061]
第个最优的嵌入方式被计算如下:
[0062][0063]
第个最优阈值被计算如下:
[0064][0065]
进一步,所述步骤s4中附加信息包括:待嵌入水印信息的长度(18比特)、的值(6比特)、ω的取值(2比特)、个最优的嵌入方式(比特)、个最优的阈值(比特)、结束符(eos,18比特),所述附加信息依次代替每个块的直流系数的最低有效位,被代替的最低有效位和待嵌入水印信息连接起来生成最终的待嵌入的数据。
[0066]
进一步,还包括步骤s5,所述步骤s5是对原始jpeg图像进行恢复,其包括:
[0067]
s51、抽取含密jpeg图像的附加信息:获取每个块的直流系数的最低有效位组成一个比特流,在此比特流中找到eos,在eos之前比特按照各自的大小被分成五个部分:待嵌入水印信息的长度(18比特),的值(6比特),ω的三个取值(2比特),个最优的嵌入方式(比特),个最优的阈值(比特);
[0068]
s52、根据抽取出来的个最优的阈值构建二维直方图,并根据对应的最优的嵌入方式进行水印的抽取,恢复原始jpeg图像。
[0069]
与现有技术相比,本发明的有益效果如下:采用直方图生成根据直方图系数的局部属性自适应地为不同的直方图分配阈值,尽可能保留位于平滑区域的ac系数从而构造出尖锐的直方图。另外,本发明巧妙地设计了多个自适应二维直方图映射,能根据自适应二维直方图的分布特征自适应地为不同的自适应二维直方图选择自适应二维直方图映射。通过稍微调整每个自适应二维直方图映射,可以在数据嵌入中包含零ac系数或仅使用非零ac系数进行数据嵌入的情况下使用每个映射。自适应阈值和自适应二维直方图映射选择提供更高的容量和更低的失真,但不可避免地导致相当大的复杂性成本,为了显着降低计算代价,本发明通过结合差分进化提出了改进的离散粒子群优化。改进的离散粒子群优化具有收敛速度快和最佳解好的优点。在差分进化的帮助下,改进的离散粒子群优化扩展了粒子的多样性,有效地避免了陷入局部最优的问题。实验结果还证明了该方法在视觉质量、文件大小增量和复杂性成本方面的有效性。
附图说明
[0070]
此处所说明的附图用来提供对本技术的进一步理解,在附图中:
[0071]
图1为本发明的流程示意图;
[0072]
图2为本发明的第一种嵌入方式的和的嵌入规则示例图;
[0073]
图3为本发明的第二种嵌入方式的和的嵌入规则示例图;
[0074]
图4为本发明的第三种嵌入方式的和的嵌入规则示例图;
[0075]
图5为本发明的第四种嵌入方式的和的嵌入规则示例图;
[0076]
图6为本发明的第五种嵌入方式的和的嵌入规则示例图;
[0077]
图7为本发明的第六种嵌入方式的和的嵌入规则示例图;
[0078]
图8为本发明的第七种嵌入方式的和的嵌入规则示例图;
[0079]
图9为本发明的第八种嵌入方式的和的嵌入规则示例图;
[0080]
图10为本发明的第九种嵌入方式的和的嵌入规则示例图;
[0081]
图11为本发明的第十种嵌入方式的和的嵌入规则示例图;
[0082]
图12为本发明方法的六张测试图像的平均psnr值的与黄等人、肖等人方法的比较示意图;
[0083]
图13为本发明方法的六张测试图像的平均文件大小增长与黄等人、肖等人方法的比较示意图。
具体实施方式
[0084]
参见图1所示,实施例一种基于jpeg图像的通用可逆数据隐藏方法,其包括以下步骤:
[0085]
s1、将原始jpeg图像进行熵解码得到量化后的离散余弦变换dct系块数,计算每个位置平滑度值,并按块平滑度降序调整块顺序,构造多个直方图;
[0086]
s2、确定自适应二维直方图映射规则,将秘密信息嵌入每个直方图的dct系数对中,并获得嵌入容量和嵌入失真;
[0087]
s3、嵌入失真和嵌入容量组成的嵌入对,生成二维直方图的矩阵,并从矩阵中的每一行中挑选出一个嵌入对;利用改进的离散粒子群优化方法获得了每一个二维直方图的最优嵌入方式和最优阈值;
[0088]
s4、用最优阈值生成二维直方图,按照其对应的最优嵌入方式进行水印嵌入进行熵编码得到含秘密信息jpeg图像;并将附加信息嵌入到含秘密信息jpeg图像中。
[0089]
进一步,所述步骤s1包括:
[0090]
s11、将原始jpeg图像进行熵解码后分成互不重叠的8
×
8大小的量化后的dct系数块其中,代表块的数量,表示第k个dct系数块;
[0091]
s12、每个dct系数块中包含1个dc系数和63个ac系数,形成64个频带;即将dc系数的频带记为0,dc系数组成频带将位于第l个位置的ac系数组成第l个频带
并为每一个频带分配一个阈值t
l
(t
l
∈[t
min
,t
max
]),其中l∈{1,2,

,63};即每个块包含1个dc系数c
k,0
和63个ac系数
[0092]
s13、dc系数不参与数据嵌入过程,计算中的每个ac系数c
k,l
的平滑度,即c
k,l
所在dct系数块的平滑度的平滑度其中,l是ac系数位置的编号,l∈{1,2,

,63},表示第k个dct系数块,#表示一个集合的秩,c
k,l
表示中第l个ac系数,c
k,l
=0代表值为零的ac系数;
[0093]
s14、挑选出平滑度大于t
l
的ac系数,将挑选出来的系数按照平滑度的降序排序获得排序后的ac系数其中,σ是一种映射关系,是一个一对一的映射,使得是一个一对一的映射,使得是频带中满足大于阈值t
l
的ac系数的数量,将中每两个相邻的ac系数组成一个系数对,构造出第l个二维直方图:
[0094][0095]
其中,#表示一个集合的秩,表示向下取整函数,(cn,c
n 1
)代表一个ac系数对,(s1,s2)代表(cn,c
n 1
)的具体取值。
[0096]
进一步,参见图2至图11所示,所述步骤s2包括:
[0097]
s21、二维直方图有10种映射规则,代表10种嵌入方式其中第10种映射规则代表的是ac系数对没有做任何修改的嵌入方式,即在中ac系数对保持不变,其他9种映射规则代表了9种ac系数对的修改方式;
[0098]
s22、二维直方图以平面直角坐标系的形式表达,c
x
为横轴,cy为纵轴,即一个ac系数对用(c
x
,cy)代表,每一种映射将ac系数对分成四类:和类;假设类;假设和分别对应和中ac系数对的数量,中和的点(c
x
,cy)进行嵌入和移位操作,这里以第一象限(c
x
≥0,cy≥0)为例,其他三个象限的映射与第一象限类似,具体如下:
[0099]
若存在三个映射方向,嵌入1bit或2bits秘密信息,根据点的位置和映射的不同可将的a类点分为五种,具体来说:
[0100]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0101]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
,cy 1);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0102]
当属于时,(c
x
,cy)=(cu,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
,cy 1);
[0103]
当属于时,(c
x
,cy)=(cu,cv 1),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
,cy 1);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0104]
当属于时,(c
x
,cy)=(cu 1,cv),如果待嵌入的比特是s1=
‘0’
,则(c
x
,cy)保持不变;如果待嵌入的比特s1s2=

10’,则(c
x
,cy)修改为(c
x
1,cy);如果待嵌入的比特s1s2=

11’,则(c
x
,cy)变为(c
x
1,cy 1);
[0105]
计算9种映射带来嵌入容量和嵌入失真,其中,对于来说,a类点的嵌入容量而嵌入失真分为两种情况,对于来说,对于来说,
[0106]
若存在两个或三个映射方向,嵌入1bit或2bits秘密信息,b类点按照个数和映射方向可分为四类,的嵌入容量和嵌入失真计算如下:
[0107]
当属于时,
[0108]
当属于时,(c
x
,cy)存在两个点,记为(cu,cv)和(cu 1,cv 1),假设(cu,cv)系数对的数量为那么(cu 1,cv 1)的数量为此时,此时,
[0109]
当属于时,
[0110]
当属于时,
[0111]
若存在两个映射方向,嵌入1bit秘密信息,当s1=
‘0’
时,(c
x
,cy)沿坐标轴方向映射;当s1=
‘1’
时,(c
x
,cy)沿对角线方向映射;对于来说,的嵌入失真
[0112]
若指坐标空间中a、b、c三类点以外的点,存在一个映射方向,不嵌入秘密信息,所以d类点不提供容量,d类点的嵌入容量和嵌入失真计算公式如下:
[0113]
当属于时,
[0114]
当属于时,(c
x
,cy)存在两种点,假设第一种点的数量为那么另一类点的个数为此时,
[0115]
对于二维直方图来说,嵌入失真是嵌入容量是即直方图的嵌入容量为a类点、b类点和c类点所带来的容量之和,直方图的嵌入失真为a类点、b类点、c类点和d类点引起的嵌入失真之和。
[0116]
进一步,所述步骤s3包括:
[0117]
s31、二维直方图h
l
的平滑度阈值t
l
取值为t
min
时,采用第m(m∈{1,2,

,n
ω
})个嵌入方式,其中n
ω
代表嵌入方式的数量;则嵌入失真和嵌入容量组成的嵌入对表示为n
ω
种嵌入方式产生n
ω
个嵌入对,即当t
l
取值为t
min
1时,也会产生n
ω
个嵌入对当t
l
从t
min
增大到t
max
时,全部的嵌入方式是在数据嵌入过程中,只有个二维直方图被用于数据嵌入;由于一个二维直方图会产生一个长度为(t
max-t
min
1)
×nω
的序列,个二维直方图会产生一个大小为的矩阵,具体如下:
[0118][0119]
s32、设置g=0,和g=3,000,其中代表粒子数量,g代表迭代次数,g代表第g次迭代,且g≤g,产生个粒子,每一个粒子包含位置信息和速度信息两个部分,每个粒子的位置信息是由个元素组成,表示为其中对应步骤s31矩阵中的第行中随机选取的嵌入对的位置的位置即其中同样,每个粒子的速度信息也是由个元素组成,表示为其中初始化速度公式rand代表从(0,1)中随机选的一个数,θ
max
=25和θ
min
=-25;第n个粒子的自适应度值定义为其中,是h
l
对应的量化表中量化步长的值;定义全局最优粒子其代表了给定容量下能实现最小适应度值的粒子;定义代表的最优值,其代表的所有取值中适应度最小的粒子,当g=0时,
[0120]
s33、迭代粒子,其包括:
[0121]
s331、设n=1;
[0122]
s332、更新每一个粒子的速度:
[0123][0124]
其中w1=0.9,w2=0.4,α
1s
=α
2e
=5,α
2s
=α
1e
=0.5,r1和r2是两个从0和1之间选出的随机数;
[0125]
更新每一个粒子位置信息:
[0126][0127]
在改变每一个粒子的位置后,当的某一元素超过了[1,(t
max-t
min
1)
×nω
]时,则上溢和下溢会发生,为了阻止溢出的发生,如果则如果则
[0128]
更新后的粒子的适应度值记录为如果且n<n,则n=n 1并执行步骤s332;如果且n≥n,则g=g 1,并执行步骤s332;否则,进行执行步骤s333;
[0129]
s333、变异操作:
[0130]
从第(g-1)
th
次迭代中随机选出来两个个体最优粒子和其中opt1≠opt2;
[0131]
产生一个新的粒子
[0132][0133]
计算的适应度值产生
[0134][0135]
在变异操作后,如果且n<n,则n=n 1并执行步骤s332;如果且n≥n,则g=g 1并执行步骤s332;;否则,则执行步骤s334;
[0136]
s334、交叉操作:
[0137]
设置γ=0.6;
[0138]
从的个元素中随机选择个元素,并记录这些随机选择出来的位置,用的随机选出来的元素代替的相同位置的元素,从而产生一个其自适应值是
[0139]
如果则否则,如果n<n,n=n 1,并执行步骤s332;否则,g=g 1并执行步骤s332;
[0140]
s335、重复执行步骤332至334直到g>g,输出全局最优的粒子
[0141]
第个最优的嵌入方式被计算如下:
[0142][0143]
第个最优阈值被计算如下:
[0144][0145]
进一步,所述步骤s4中附加信息包括:待嵌入水印信息的长度(18比特)、的值(6比特)、ω的取值(2比特)、个最优的嵌入方式(比特)、个最优的阈值(比特)、结束符(eos,18比特),所述附加信息依次代替每个块的直流系数的最低有效位,被代替的最低有效位和待嵌入水印信息连接起来生成最终的待嵌入的数据。
[0146]
进一步,还包括步骤s5,所述步骤s5是对原始jpeg图像进行恢复,其包括:
[0147]
s51、抽取含密jpeg图像的附加信息:获取每个块的直流系数的最低有效位组成一个比特流,在此比特流中找到eos,在eos之前比特按照各自的大小被分成五个部分:待嵌入水印信息的长度(18比特),的值(6比特),ω的三个取值(2比特),个最优的嵌入方式(比特),个最优的阈值(比特);
[0148]
s52、根据抽取出来的个最优的阈值构建二维直方图,并根据对应的最优的嵌入方式进行水印的抽取,恢复原始jpeg图像。
[0149]
参见图12-图13所示,以常用的六幅图像lena、baboon、peppers、boat、splash和tank作为测试图像,来证明本发明在嵌入失真和文件大小增加方面的优势。从图2和图3可以看出,本发明相比于李等人(li,nan;huang,fangjun.reversible data hiding for jpeg images based on pairwise nonzero ac coefficient expansion.signal processing,2020,171:107476.)和肖等人(xiao m,li x,ma b,et al.efficient reversible data hiding for jpeg images with multiple histograms modification[j].ieee transactions on circuits and systems for video technology,2020.)的方法,实现了不错的性能提升。
[0150]
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
再多了解一些

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

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

相关文献