CN103123720A - 基于差值图像直方图循环平移的无损数据隐藏方法 - Google Patents

基于差值图像直方图循环平移的无损数据隐藏方法 Download PDF

Info

Publication number
CN103123720A
CN103123720A CN2013100791709A CN201310079170A CN103123720A CN 103123720 A CN103123720 A CN 103123720A CN 2013100791709 A CN2013100791709 A CN 2013100791709A CN 201310079170 A CN201310079170 A CN 201310079170A CN 103123720 A CN103123720 A CN 103123720A
Authority
CN
China
Prior art keywords
image
formula
data
prime
concealed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2013100791709A
Other languages
English (en)
Other versions
CN103123720B (zh
Inventor
陈志刚
邓小鸿
翦鹏
梁涤青
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Central South University
Original Assignee
Central South University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Central South University filed Critical Central South University
Priority to CN201310079170.9A priority Critical patent/CN103123720B/zh
Publication of CN103123720A publication Critical patent/CN103123720A/zh
Application granted granted Critical
Publication of CN103123720B publication Critical patent/CN103123720B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Editing Of Facsimile Originals (AREA)
  • Image Processing (AREA)

Abstract

本发明公开了一种基于差值图像直方图循环平移的无损数据隐藏方法,包括:加密步骤:在发送端,将原图像分块为多个子图像块,利用子图像块差值直方图进行循环平移操作实现隐秘数据的逐级嵌入,形成隐秘图像C′并发送给接收端;密钥发送步骤:图像分块大小、嵌入数据长度和嵌入级别L作为密钥分发给接收端;数据恢复步骤:接收端通过嵌入过程的逆方法从隐秘图像C′中逐级提取出隐秘数据,并恢复块差值和原始图像数据,实现了基于图像载体的隐秘数据传输和无损恢复。本方法改进了原始直方图平移算法的容量依赖于单一峰值点的特点,利用循环嵌入方法增大了嵌入容量。实验结果表明本发明的方法很好满足无损数据隐藏方法的高容量、低失真和高效率的需求。

Description

基于差值图像直方图循环平移的无损数据隐藏方法
技术领域
本发明涉及一种基于差值图像直方图循环平移的无损数据隐藏方法,属于图像无损数据隐藏(加密)领域。
背景技术
无损图像数据隐藏技术,也称为可逆图像数据隐藏,通过特定的无损数据嵌入方法将隐秘数据嵌入在载体图像中形成隐秘图像,隐秘图像在提取完数据后能恢复到原始状态。无损数据隐藏技术和先前的有损方法的最大区别就是载体本身的数据不会遭到任何变化,极大的扩展了数据隐藏的应用范围。比如在一些特定的医学、法律、军事(不涉及到军事机密,仅仅为了说明军事图像对完整性要求严格)和艺术等载体图像由于自身对完整性具有极高的要求,一方面要求能进行隐秘通信,另一方面要保证载体数据的完整性。
图像载体具有较高的冗余性,特别适合于大容量的数据隐藏,常见的无损数据隐藏方法分为两大类,一类是基于空域的算法,此类算法直接对图像像素进行修改完成数据嵌入,算法嵌入容量大,计算简单,常用于图像的数据隐藏,但其最大的特点是鲁棒性差,即隐秘图像在受到任何程度的篡改时均会影响隐秘数据的提取和图像恢复;第二类是基于频域的算法,此类算法通过将图像像素转换成对应的变换域,然后对变换域的系数进行修改完成数据的嵌入,算法嵌入容量较小,计算复杂,常用于图像的版权保护,其优点就是鲁棒性较好,能抵抗一定程度的攻击。基于空域的算法中最常用的就是直方图平移和差值扩展方法,前者比后者计算更为简单,图像质量更好,但其缺点就是嵌入容量依赖于位于图像直方图中峰值点像素的个数。
为了增大直方图方法的嵌入容量,提出利用图像中相邻像素相关性和冗余性高的特点,在差值直方图中嵌入数据,虽然这种方法大大增大了处于峰值点像素的个数,但采用单一峰值点嵌入仍然损失了很多可用来嵌入数据的像素。
因此,有必要设计一种基于差值图像直方图循环平移的无损数据隐藏方法。
发明内容
本发明所要解决的技术问题是提供一种基于差值图像直方图循环平移的无损数据隐藏方法,该基于差值图像直方图循环平移的无损数据隐藏方法,基于数字图像载体,利用小图像块中相邻像素差值收敛于一个较小的值的特点,利用循环直方图平移方法进一步增大嵌入容量,并保持隐秘图像较好的视觉质量,有效用于数字图像的隐秘通信。
发明的技术解决方案如下:
一种基于差值图像直方图循环平移的无损数据隐藏方法,包括以下步骤:
加密步骤:在发送端,将原图像分块为多个子图像块,利用子图像块差值直方图进行循环平移操作实现隐秘数据的逐级嵌入,形成隐秘图像C′并发送给接收端;
密钥发送步骤:图像分块大小、嵌入数据长度和嵌入级别L作为密钥分发给接收端;
数据恢复步骤:接收端通过嵌入过程的逆方法从隐秘图像C′中逐级提取出隐秘数据,并恢复块差值和原始图像数据,实现了基于图像载体的隐秘数据传输和无损恢复。
在所述的加密步骤包括:
步骤1:读取原始载体图像C={C(i,j)|1≤i≤M,1≤j≤N},M,N为载体图像的维数,即载体图像的长和宽;
步骤2:将原始载体图像C分块,块尺寸为A*B,块扫描顺序为Zig-zag方式,分块后图像块集合表示为CB={Cb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)},这里floor(*)为向下取整函数;
步骤3、如果原始载体图像不能全部划分在图像块中,条件表示为if mod(M,A)or mod(N,B)≠0,这里mod(*)为取余函数,则得到剩余部分的图像块的集合CNB=C-CB,否则CNB置为空,并且后续执行过程跳过步骤12;
步骤4:对CB块中的元素计算图像块差值,即块中相邻的元素像素值差的绝对值:
Db(i,j)=abs(Cb(i,j)-Cb(i,j+1));公式1
步骤5:读取指定嵌入阈值L,L为正整数;
步骤6:形成图像块差值直方图,并在每块子图像的差值直方图中形成间隙(间隙不是新的差值,间隙的形成是由于将所有大于L的差值进行了增加L+1操作,使得差值直方图中值为L的差值右边出现了连续的L+1个空白区域),按照下式计算;Db′(i,j)为调整后得到的新的差值;
Figure BDA00002911446100031
公式2
步骤7:读取待传输的隐秘数据WM={wmk|1≤k≤WM_Length},wmk∈{0,1},WM_Length为隐秘数据长度;
步骤8:在每块差值直方图中嵌入数据,按照下式计算:
Figure BDA00002911446100032
公式3;
Db″(i,j)代表嵌入隐秘数据后的差值,wm代表隐秘数据的1bit,em_count记录差值直方图中可嵌入的隐秘数据位数,其初值为0,该公式表明如果满足差值等于P,根据要隐藏的信息是1或是0,差值相应会增加P+1或者P,并且可嵌入的隐秘数据位数增1,即em_count++;P初值为L,向下递减直到为0,利用上式逐级嵌入;
步骤9:产生每个图像块对应的隐秘图像块,首先按照公式4和5生成每个图像块中每行的前两个像素,然后按照公式6得到其他像素:
Figure BDA00002911446100033
公式4;
Figure BDA00002911446100034
公式5;
这里1≤i≤A,1≤b≤floor(M*N/A*B)
S b ( i , j ) = S b ( i , j - 1 ) + D b ′ ′ ( i , j - 1 ) if C b ( i , j - 1 ) ≤ C b ( i , j ) S b ( i , j - 1 ) - D b ′ ′ ( i , j - 1 ) otherwise 公式6;
其中,1≤i≤A,3≤j≤B,1≤b≤floor(M/A)*floor(N/B);
步骤10、防止溢出处理,在公式4-6执行的过程中会产生溢出现象,公式7和8分别给出了上溢和下溢发生条件,其中Eq(4)代表公式4;
overflow = C b ( i , 2 ) + D b ′ ′ ( i , 1 ) > 255 in Eq ( 4 ) C b ( i , 1 ) + D b ′ ′ ( i , 1 ) > 255 in Eq ( 5 ) S b ( i , j - 1 ) + D b ′ ′ ( i , j - 1 ) > 255 in Eq ( 6 ) 公式7;
underflow=Sb(i,j-1)-Db″(i,j-1)<0 in Eq(6)公式8;
在发生溢出现象后,将公式4-6分别用公式9-11替换:
S b ( i , 1 ) = C b ( i , 1 ) if C b ( i , 1 ) ≤ C b ( i , 2 ) C * floor ( C b ( i , 2 ) / C ) + mod ( C b ( i , 2 ) + D b ′ ′ ( i , 1 ) , C ) otherwise 公式9;
S b ( i , 2 ) = C * floor ( C b ( i , 1 ) / C ) + mod ( C b ( i , 1 ) + D b ′ ′ ( i , 1 ) , C ) if cb ( i , 1 ) ≤ C b ( i , 2 ) C b ( i , 2 ) otherwise
公式10;
S b ( i , j ) = C * floor ( S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) + D b ′ ′ ( i , j - 1 ) , C ) if Cb ( i , j - 1 ) ≤ C b ( i , j ) C * floor ( - S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) - D b ′ ′ ( i , j - 1 ) , C ) otherwise
公式11;
其中C取为具体载体图像的最大差值Dmax+L;
步骤11:合并所有的隐秘图像块Sb(i,j)形成隐秘图像CB′={Sb(i,j)1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)}(将所有的隐秘图像块Sb(i,j)合并即形成了整个隐秘图像CB′);
步骤12:对CNB中的像素值,依次提取所有CNB中像素的最低有效位CNB_LSB,采用无损压缩方法,产生嵌入空间,其长度为LS,将LSbit隐秘信息和CNB_LSB采用最低有效位LSB替换算法嵌入到CNB中,形成隐秘图像CNB′;
步骤13、组合CB′和CNB′形成整幅隐秘图像C′=CB′∪CNB′。
L初始值设为2。
在密钥发送步骤中,将分块尺寸A*B、嵌入阈值L和隐秘信息长度em_count+LS(作为图像接收端的解密密钥,传给接收方,LS初值设为0,最终值为实际在CNB中隐藏的数据位数;
利用公钥密码体制,将图像分块大小、嵌入数据长度、和嵌入级别L作为秘密消息M,利用下式传输:
E PK B ( M ) = HM D SK B ( HM ) = M ;
其中E代表加密操作,D代表解密操作,PKB为接收端公钥,SKB为接收端私钥,HM为公网上传输的密文。
首先用公式12恢复隐藏了数据的块差值,然后用公式13恢复公式1所产生的直方图间隙:
S Db ′ ( i , j ) = S Db ( i , j ) - ( P + 1 ) if S Db ( i , j ) = 2 P + 1 S Db ( i , j ) - P otherwise 公式12
R Db ( i , j ) = S Db ′ ( i , j ) - ( P + 1 ) if S Db ( i , j ) > 2 P + 1 S Db ′ ( i , j ) otherwise 公式13;
其中公式11中的P从0开始逐步递增为L;公式13中的P=L;SDb(i,j)为CB′中图像块的差值:SDb(i,j)=abs(Sb(i,j)-Sb(i,j+1))。
本发明的简要步骤如下:
a)图像分块。
b)数据嵌入。
c)数据提取。
上述图像分块方法进一步包含如下步骤:
a1)按照分块尺寸A*B获取每个子图像块;
a2)按照Zig-zag扫描顺序组织每个子图像块,然后依次进行数据嵌入。
上述数据嵌入方法进一步包含如下步骤:
b1)计算每个子图像块差值,形成差值直方图;
b2)根据给定的嵌入阈值L形成直方图间隙;
b3)设定调整幅度P=L,扫描所有等于P的差值,根据水印信息调整差值直方图嵌入水印;
b4)依次减小P的值,直到P=0,重复b3步骤;
b5)根据调整后差值计算每个子图像块的像素值;
b6)重复b1~b5步骤,形成隐秘图像。
上述数据提取方法进一步包含如下步骤:
c1)将隐秘图像进行a)步骤的分块操作;
c2)计算每个隐秘子图像块差值;
c3)设定提取阈值P=0,扫描所有等于2*P和2*P+1的差值,如果差值等于2*P,提取数据0,并将差值减去P,否则提取1,并将差值减去P+1;
c4)依次增大P的值,直到P=L,重复c3步骤;
c5)根据调整后差值计算每个子图像块的像素值;
c6)重复c1~c5步骤,得到恢复后图像。
有益效果:
本发明的基于差值图像直方图循环平移的无损数据隐藏方法,本发明涉及无损图像数据隐藏技术,提供一种在高完整性需求背景下的数字图像中无损隐藏大容量数据的方法及装置。所述方法及装置首先利用子图像块相邻像素之间的高相关性和冗余性,产生块差值图像直方图;然后,根据给定的嵌入阈值L,在差值图像直方图中形成嵌入间隙;其次,逐步减小L的值直到0,利用直方图平移方法逐级嵌入数据,最后,根据调整后的差值和严格的防止溢出处理形成隐秘图像。本方法在隐秘图像没有遭到篡改时,拥有解密密钥的图像接收端可以正确提取出所嵌入的数据,并且无失真地还原出原始载体图像。本方法改进了原始直方图平移算法的容量依赖于单一峰值点的特点,利用循环嵌入方法增大了嵌入容量。实验结果表明本发明的方法很好满足无损数据隐藏方法的高容量、低失真和高效率的需求。
本发明在图像的差值直方图中,采用循环直方图平移方法逐级嵌入数据,利用到了所有小于等于给定嵌入阈值点的差值,极大增大了差值直方图嵌入数据的容量;同时,本方法通过合理嵌入阈值的选择,在保证嵌入容量的同时,将隐秘图像的质量控制在合理的范围内。
本发明的优点在于数据嵌入容量大,由于本方法是基于差值直方图平移方法,但传统的差值直方图平移方法只会用到单个或选定的差值嵌入,本方法利用了所有小于等于阈值的差值,增大了嵌入容量;其次,本方法采用module-C方法(C为图像相邻像素差值,远小于256)进行防止溢出处理,该方法比传统的module-256方法具有更高的图像质量;最后,本方法所有的操作均是简单的算术数学运算,具有较高的效率。图5和表1给出了本方法的部分实验结果,图5说明了嵌入阈值L=2的情况下的隐秘图像质量,其峰值信噪比PSNR>=37dB。表1对嵌入容量进行了说明,其中Airplane载体图像当嵌入阈值等于3时,其嵌入容量可达到0.5bpp左右。
附图说明
图1是本发明中涉及的数据嵌入执行过程图。
图2是本发明中涉及的数据提取和图像恢复执行过程图。
图3是本发明中子图像块嵌入数据实例图。
图4是本发明中子图像块提取数据实例图。
图5是本发明方法在5种测试图像和嵌入阈值L=2时的嵌入情况下的隐秘图像对比图。
在图5中,
(a)代表原始Lena图像512*512*8bit
(b)代表嵌入97315bit数据和PSNR=37.50dB的隐秘Lena图像
(c)代表原始Baboon图像512*512*8bit
(d)代表嵌入30898bit数据和PSNR=37.24dB的隐秘Baboon图像
(e)代表原始Boat图像512*512*8bit
(f)代表嵌入54303bit数据和PSNR=38.74dB的隐秘Boat图像
(g)代表原始Airplane图像512*512*8bit
(h)代表嵌入108696bit数据和PSNR=38.52dB的隐秘Airplane图像
(i)代表原始Pepper图像512*512*8bit
(j)代表嵌入68634bit数据和PSNR=38.13dB的隐秘Pepper图像
附表说明
表1是本发明中所用的测试图像在不同嵌入阈值L下的最大嵌入容量和峰值信噪比。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明:
虽然本发明是关于特定实施例进行描述的,但是本发明的原则,如所附的权利要求书定义的,显然可以应用于超出在此特定表述的实施例的范围。而且,这里略去了一些细节为了不模糊本发明的发明方面。在本申请内没有描述的特定细节在领域内的任何普通技术人员的所知范围内。
本申请的附图和其所附的详细描述仅用于示出本发明的示例实施例。为保持简洁性,使用本发明原理的本发明的其他实施例不在本申请中特定描述,且不由本附图特定说明。“示例”在此仅指“用作为例子、实例或说明”。
参见图1,图1为本发明中涉及的数据嵌入执行过程图。该数据嵌入过程包含如下步骤(Em_1代表嵌入步骤的):
Em_1、读取原始载体图像C={C(i,j)|1≤i≤M,1≤j≤N},M,N为载体图像的维数,即图像的长和宽;
Em_2、将C分块,块尺寸为A*B,块扫描顺序为Zig-zag方式,分块后图像块集合表示为CB={Cb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)},这里floor(*)为向下取整函数;
Em_3、如果原始载体图像不能全部划分在图像块中,条件表示为if mod(M,A)ormod(N,B)≠0,这里mod(*)为取余函数,则执行图1中“备选执行流程”,得到剩余部分的图像块的集合CNB=C-CB,否则CNB置为空,并且后续执行过程跳过步骤Em_12;
Em_4、对CB块中的元素计算图像块差值,即块中相邻的元素像素值差的绝对值:
Db(i,j)=abs(Cb(i,j)-Cb(i,j+1))(1)
这里,1≤i≤A,1≤j≤B-1,1≤b≤foor(M/A)*floor(N/B),abs(*)为取绝对值函数;
Em_5、读取指定嵌入阈值L,L为正整数,通过大量实验分析,L取2时容量和峰值信噪比均达到较好的效果,本专利中不做特别申明,L初始值设为2;
Em_6、形成图像块差值直方图,并在每块子图像的差值直方图中形成间隙,按照公式(2)计算;Db′(i,j)为调整后得到的新的差值。
D b ′ ( i , j ) = D b ( i , j ) + L + 1 if D b ( i , j ) > L D b ( i , j ) otherwise - - - ( 2 )
Em_7、读取隐秘数据WM={wmk|1≤k≤WM_Length},wmk∈{0,1}WM_Length为隐秘数据长度;
Em_8、在每块差值直方图中嵌入数据,按照公式(3)计算:
Figure BDA00002911446100092
Db″(i,j)代表嵌入隐秘数据后的差值,wm代表隐秘数据的1bit,em_count记录差值直方图中可嵌入的隐秘数据位数,其初值为0,公式(3)表明如果满足差值等于P,根据要隐藏的信息是1或是0,差值相应会增加P+1或者P,并且可嵌入的隐秘数据位数增1;P初值为L,向下递减直到为0,利用(3)逐级嵌入;
Em_9、产生每个图像块对应的隐秘图像块,首先按照公式(4)(5)生成每个图像块中每行的前两个像素,然后按照公式(6)得到其他像素:
S b ( i , 1 ) = C b ( i , 1 ) if C b ( i , 1 ) ≤ C b ( i , 2 ) C b ( i , 2 ) + D b ′ ′ ( i , 1 ) otherwise - - - ( 4 )
S b ( i , 1 ) = C b ( i , 1 ) + D b ′ ′ if C b ( i , 1 ) ≤ C b ( i , 2 ) C b ( i , 2 ) otherwise - - - ( 5 )
这里1≤i≤A,1≤b≤floor(M*N/A*B)
S b ( i , j ) = S b ( i , j - 1 ) + D b ′ ′ ( i , j - 1 ) if C b ( i , j - 1 ) ≤ C b ( i , j ) S b ( i , j - 1 ) - D b ′ ′ ( i , j - 1 ) otherwise - - - ( 6 )
这里1≤i≤A,3≤j≤B,1≤b≤floor(M/A)*floor(N/B);
Em_10、防止溢出处理,在公式(4)(5)(6)执行的过程中会产生溢出现象,比如处于上界边缘的像素在加上一个差值时会超过8bit灰度图像的上限255,公式(7)(8)分别给出了上溢和下溢发生条件(注:Eq(4)代表上述提到的第4个公式):
overflow = C b ( i , 2 ) + D b ′ ′ ( i , 1 ) > 255 in Eq ( 4 ) C b ( i , 1 ) + D b ′ ′ ( i , 1 ) > 255 in Eq ( 5 ) S b ( i , j - 1 ) + D b ′ ′ ( i , j - 1 ) > 255 in Eq ( 6 ) - - - ( 7 )
underflow=Sb(i,j-1)-Db″(i,j-1)<0inEq(6)(8)
在发生溢出现象后,将公式(4)(5)(6)分别用公式(9)(10)(11)替换:
S b ( i , 1 ) = C b ( i , 1 ) if C b ( i , 1 ) ≤ C b ( i , 2 ) C * floor ( C b ( i , 2 ) / C ) + mod ( C b ( i , 2 ) + D b ′ ′ ( i , 1 ) , C ) otherwise - - - ( 9 )
S b ( i , . 2 ) = C * floor ( C b ( i , 1 ) / C ) + mod ( C b ( i , 1 ) + D b &prime; &prime; ( i , 1 ) , C ) if C b ( i , 1 ) < C b ( i , 2 ) C b ( i , 2 ) otherwise - - - ( 10 )
S b ( i , j ) = C * floor ( S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) + D b &prime; &prime; ( i , j - 1 ) , C ) if Cb ( i , j - 1 ) &le; C b ( i , j ) C * floor ( - S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) - D b &prime; &prime; ( i , j - 1 ) , C ) otherwise - - - ( 11 )
这里C取为具体载体图像的最大差值Dmax+L,L为指定的嵌入阈值;
Em_1:合并所有的隐秘图像块Sb(i,j)形成隐秘图像CB′={Sb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)}(将所有的隐秘图像块Sb(i,j)合并即形成了整个隐秘图像CB′);
Em_12、对CNB中的像素值,依次提取所有CNB中像素的最低有效位CNB_LSB,采用无损压缩方法,(如游程编码,先在CNB中依次取N个像素的最低有效位,进行压缩,得到的数据长度为CN,如果N-CN等于需要隐秘的数据长度LS,则停止,否则增大N的值,直到能压缩产生LS个额外空间)产生嵌入空间,其长度为LS,将LS bit隐秘信息和CNB_LSB采用最低有效位LSB替换算法嵌入到CNB中,形成隐秘图像CNB′;
Em_13、组合CB′和CNB′形成整幅隐秘图像C′=CB′∪CNB′;
Em_14、将分块尺寸A*B,嵌入阈值L和隐秘信息长度em_count+LS(LS初值设为0,最终值为实际在CNB中隐藏的数据位数)作为图像接收端的解密密钥,通过安全传输机制传给接收方。
参见图2,图2为本发明中涉及的数据提取和图像恢复执行过程图。该数据提取和图像恢复过程包含如下步骤(E&R_1代表提取和恢复过程中的第一步):7
E&R_1、读取隐秘图像C′,其维数为M*N;
E&R_2、读取解密密钥,获得分块尺寸A*B、嵌入级别L和隐秘数据长度em_count+LS;
E&R_3、隐秘图像C′分块,分块顺序与嵌入阶段Em_2相同,得到CB′;
E&R_4、if mod(M,A)||mod(N,B)≠0,这里mod(*)为取余函数,得到CNB′,否则RCNB设为空,并且后续执行过程跳过步骤E&R_12;
E&R_5、按公式(12)计算所有CB′中图像块的差值:
SDb(i,j)=abs(Sb(i,j)-Sb(i,j+1))   (12)
这里1≤i≤A,1≤j≤B-1,1≤b≤floor(M/A)*floor(N/B);
E&R_6、提取隐秘信息并恢复部分差值,提取和恢复公式如(13)(14)所示:
wm = 0 , ex _ count + + if S Db ( i , j ) = 2 P 1 , ex _ count + + if S Db ( i , j ) = 2 P + 1 - - - ( 13 )
S Db &prime; ( i , j ) = S Db ( i , j ) - ( P + 1 ) if S Db ( i , j ) = 2 P + 1 S Db ( i , j ) - P otherwise - - - ( 14 )
这里1≤i≤A,1≤j≤B-1,1≤b≤floor(M/A)*floor(N/B),ex_count为提取出隐秘信息的长度,初值为0;P从0开始递增直到L;
E&R_7、形成隐秘数据集合WM1′={wmk′|1≤k≤count};
E&R_8、差值还原(将第Em_5步中的间隙还原),按照公式(15)计算;
R Db ( i , j ) = S Db &prime; ( i , j ) - ( L + 1 ) if S Db ( i , j ) > 2 L + 1 S Db &prime; ( i , j ) otherwise - - - ( 15 )
E&R_9、如果RDb(i,j)中的差值小于等于C-L,恢复CB′中每块图像,按公式(16)(17)恢复每块每行的前两个像素,然后按照公式(18)恢复其他像素:
R Cb ( i , 1 ) = S b ( i , 2 ) + R Db ( i , 1 ) if S b ( i , 1 ) &GreaterEqual; S b ( i , 2 ) S b ( i , 1 ) otherwise - - - ( 16 )
R Cb ( i , 1 ) = S b ( i , 2 ) + R Db ( i , 1 ) if S b ( i , 1 ) &GreaterEqual; S b ( i , 2 ) S b ( i , 1 ) otherwise - - - ( 17 )
R Cb ( i , j ) = R Cb ( i , j - 1 ) + R Db ( i , j - 1 ) if S b ( i , j - 1 ) &le; S b ( i , j ) R Cb ( i , j - 1 ) - R Db ( i , j - 1 ) otherwise - - - ( 18 )
这里1≤i≤A,3≤j≤B,1≤b≤floor(M/A)*floor(N/B);
E&R_10、如果RDb(i,j)中的差值大于C-L,代表有溢出发生,则把公式(16)(17)(18)修改为公示(19)(20)(21);
R Cb ( i , 1 ) = S b ( i , 1 ) if S b ( i , 1 ) < S b ( i , 2 ) C * floor ( S b ( i , 2 ) / C ) + mod ( S b ( i , 2 ) + R Db ( i , 1 ) , C ) otherwise - - - ( 19 )
R Cb ( i , 2 ) = C * floor ( S b ( i , j 1 ) / C ) + mod ( S b ( i , 1 ) + R Db ( i , 1 ) , C ) if S b ( i , 1 ) &le; S b ( i , 2 ) S b ( i , 2 ) otherwise - - - ( 20 )
R Cb ( i , 1 ) = C * floor ( R Cb ( i , j - 1 ) / C ) + mod ( R Cd ( i , j - 1 ) + R Db ( i , j - 1 ) , C ) if S b ( i , j - 1 ) &le; S b ( i , j ) C * floor ( - R Cb ( i , j - 1 ) / C ) + mod ( R Cb ( i , j - 1 ) - R Db ( i , j - 1 ) , C ) otherwise - - - ( 21 )
E&R_11、恢复图像RCB={RCb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)}
E&R_12、在CNB′中采用LSB提取算法提取隐秘数据WM2′,并恢复CNB′得到RCNB
E&R_13、重组提取出隐秘数据(WM2′初值设为0),表示拼接操作,如果WM′长度等于em_count+LS,数据提取正确;
E&R_14、重组恢复出图像RC=RCB∪RCNB
参见图3,图3为本发明中涉及的子图像块嵌入数据实例。
在图3中,
(a)表示原始的子图像块数据;
(b)表示按照数据嵌入步骤中计算得到的差值,数据流向“→”上面(或右边)的数字标号代表计算所用公式,下面(或左边)的数字标号代表隐秘数据信息;
(c)代表产生直方图间隙后的块差值;
(d)代表P=L=2时,嵌入第一级数据“10101”后的块差值;
(e)代表P=1时,嵌入第二级数据“0101”后的块差值;
(f)代表P=0时,嵌入第三级数据“10”后的块差值;
(g)代表隐秘图像块数据
参见图4,图4为本发明中涉及的子图像块数据提取和图像恢复实例。
在图4中,
(a)代表隐秘图像块数据;
(b)代表按照数据嵌入步骤中计算得到的差值,数据流向“→”上面(或右边)的数字标号代表计算所用公式,下面(或左边)的数字标号代表隐秘数据信息;
(c)代表P=0时,提取第三级数据“10”后的块差值;
(d)代表P=1时,提取第二级数据“0101”后的块差值;
(e)代表P=L=2时,提取第三级数据“10101”后的块差值;
(f)代表直方图间隙还原后的块差值;
(g)代表恢复出的图像块数据。
参见图5,图5为本发明方法在5种测试图像和嵌入阈值L=2时的嵌入情况下的隐秘图像对比图。
表1
Figure BDA00002911446100131
本发明的具体实施过程中,一些小的步骤用到了其他文献公开发表的算法和专利中申明的方法,如图像分块方法、图像块差值计算、LSB嵌入和提取方法在此不再详细说明。

Claims (5)

1.一种基于差值图像直方图循环平移的无损数据隐藏方法,其特征在于,包括以下步骤:
加密步骤:在发送端,将原图像分块为多个子图像块,利用子图像块差值直方图进行循环平移操作实现隐秘数据的逐级嵌入,形成隐秘图像C′并发送给接收端;
密钥发送步骤:图像分块大小、嵌入数据长度和嵌入级别L作为密钥分发给接收端;
数据恢复步骤:接收端通过嵌入过程的逆方法从隐秘图像C′中逐级提取出隐秘数据,并恢复块差值和原始图像数据,实现了基于图像载体的隐秘数据传输和无损恢复。
2.根据权利要求1所述的基于差值图像直方图循环平移的无损数据隐藏方法,其特征在于,在所述的加密步骤包括:
步骤1:读取原始载体图像C={C(i,j)|1≤i≤M,1≤j≤N},M,N为载体图像的维数,即载体图像的长和宽;
步骤2:将原始载体图像C分块,块尺寸为A*B,块扫描顺序为Zig-zag方式,分块后图像块集合表示为CB={Cb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)},这里floor(*)为向下取整函数;
步骤3、如果原始载体图像不能全部划分在图像块中,条件表示为if mod(M,A)or mod(N,B)≠0,这里mod(*)为取余函数,则得到剩余部分的图像块的集合CNB=C-CB,否则CNB置为空,并且后续执行过程跳过步骤12;
步骤4:对CB块中的元素计算图像块差值,即块中相邻的元素像素值差的绝对值:
Db(i,j)=abs(Cb(i,j)-Cb(i,j+1));公式1
步骤5:读取指定嵌入阈值L,L为正整数;
步骤6:形成图像块差值直方图,并在每块子图像的差值直方图中形成间隙,按照下式计算;Db′(i,j)为调整后得到的新的差值;
公式2
步骤7:读取待传输的隐秘数据WM={wmk|1≤k≤WM_Length},wmk∈{0,1},WM_Length为隐秘数据长度;
步骤8:在每块差值直方图中嵌入数据,按照下式计算:
Figure FDA00002911446000022
公式3;
Db″(i,j)代表嵌入隐秘数据后的差值,wm代表隐秘数据的1bit,em_count记录差值直方图中可嵌入的隐秘数据位数,其初值为0,该公式表明如果满足差值等于P,根据要隐藏的信息是1或是0,差值相应会增加P+1或者P,并且可嵌入的隐秘数据位数增1,即em_count++;P初值为L,向下递减直到为0,利用上式逐级嵌入;
步骤9:产生每个图像块对应的隐秘图像块,首先按照公式4和5生成每个图像块中每行的前两个像素,然后按照公式6得到其他像素:
Figure FDA00002911446000023
公式4;
公式5;
这里1≤i≤A,1≤b≤floor(M*N/A*B)
S b ( i , j ) = S b ( i , j - 1 ) + D b &prime; &prime; ( i , j - 1 ) if C b ( i , j - 1 ) &le; C b ( i , j ) S b ( i , j - 1 ) - D b &prime; &prime; ( i , j - 1 ) otherwise 公式6;
其中,1≤i≤A,3≤j≤B,1≤b≤floor(M/A)*floor(N/B);
步骤10、防止溢出处理,在公式4-6执行的过程中会产生溢出现象,公式7和8分别给出了上溢和下溢发生条件,其中Eq(4)代表公式4;
overflow = C b ( i , 2 ) + D b &prime; &prime; ( i , 1 ) > 255 in Eq ( 4 ) C b ( i , 1 ) + D b &prime; &prime; ( i , 1 ) > 255 in Eq ( 5 ) S b ( i , j - 1 ) + D b &prime; &prime; ( i , j - 1 ) > 255 in Eq ( 6 ) 公式7;
underflow=Sb(i,j-1)-Db″(i,j-1)<0 in Eq(6)公式8;
在发生溢出现象后,将公式4-6分别用公式9-11替换:
S b ( i , 1 ) = C b ( i , 1 ) if C b ( i , 1 ) &le; C b ( i , 2 ) C * floor ( C b ( i , 2 ) / C ) + mod ( C b ( i , 2 ) + D b &prime; &prime; ( i , 1 ) , C ) otherwise 公式9;
S b ( i , 2 ) = C * floor ( C b ( i , 1 ) / C ) + mod ( C b ( i , 1 ) + D b &prime; &prime; ( i , 1 ) , C ) if cb ( i , 1 ) &le; C b ( i , 2 ) C b ( i , 2 ) otherwise 公式10;
S b ( i , j ) = C * floor ( S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) + D b &prime; &prime; ( i , j - 1 ) , C ) if Cb ( i , j - 1 ) &le; C b ( i , j ) C * floor ( - S b ( i , j - 1 ) / C ) + mod ( S b ( i , j - 1 ) - D b &prime; &prime; ( i , j - 1 ) , C ) otherwise 公式11;
其中C取为具体载体图像的最大差值Dmax+L;
步骤11:合并所有的隐秘图像块Sb(i,j)形成隐秘图像CB′={Sb(i,j)|1≤i≤A,1≤j≤B,1≤b≤floor(M/A)*floor(N/B)};
步骤12:对CNB中的像素值,依次提取所有CNB中像素的最低有效位CNB_LSB,采用无损压缩方法,产生嵌入空间,其长度为LS,将LS bit隐秘信息和CNB_LSB采用最低有效位LSB替换算法嵌入到CNB中,形成隐秘图像CNB′;
步骤13、组合CB′和CNB′形成整幅隐秘图像C′=CB′∪CNB′。
3.根据权利要求2所述的基于差值图像直方图循环平移的无损数据隐藏方法,其特征在于,L初始值设为2。
4.根据权利要求2所述的基于差值图像直方图循环平移的无损数据隐藏方法,其特征在于,在密钥发送步骤中,将分块尺寸A*B、嵌入阈值L和隐秘信息长度em_count+LS(作为图像接收端的解密密钥,传给接收方,LS初值设为0,最终值为实际在CNB中隐藏的数据位数;
利用公钥密码体制,将图像分块大小、嵌入数据长度、和嵌入级别L作为秘密消息M,利用下式传输:
E PK B ( M ) = HM D SK B ( HM ) = M ;
其中E代表加密操作,D代表解密操作,PKB为接收端公钥,SKB为接收端私钥,HM为公网上传输的密文。
5.根据权利要求1-4任一项所述的基于差值图像直方图循环平移的无损数据隐藏方法,其特征在于,首先用公式12恢复隐藏了数据的块差值,然后用公式13恢复公式1所产生的直方图间隙:
S Db &prime; ( i , j ) = S Db ( i , j ) - ( P + 1 ) if S Db ( i , j ) = 2 P + 1 S Db ( i , j ) - P otherwise 公式12
S Db &prime; ( i , j ) = S Db ( i , j ) - ( P + 1 ) if S Db ( i , j ) = 2 P + 1 S Db ( i , j ) - P otherwise 公式13;
其中公式11中的P从0开始逐步递增为L;公式13中的P=L;SDb(i,j)为CB′中图像块的差值:SDb(i,j)=abs(Sb(i,j)-Sb(i,j+1))。
CN201310079170.9A 2013-03-13 2013-03-13 基于差值图像直方图循环平移的无损数据隐藏方法 Expired - Fee Related CN103123720B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310079170.9A CN103123720B (zh) 2013-03-13 2013-03-13 基于差值图像直方图循环平移的无损数据隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310079170.9A CN103123720B (zh) 2013-03-13 2013-03-13 基于差值图像直方图循环平移的无损数据隐藏方法

Publications (2)

Publication Number Publication Date
CN103123720A true CN103123720A (zh) 2013-05-29
CN103123720B CN103123720B (zh) 2015-09-23

Family

ID=48454686

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310079170.9A Expired - Fee Related CN103123720B (zh) 2013-03-13 2013-03-13 基于差值图像直方图循环平移的无损数据隐藏方法

Country Status (1)

Country Link
CN (1) CN103123720B (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310406A (zh) * 2013-06-25 2013-09-18 同济大学 基于直方图对的图像可逆数据隐藏方法
CN103414840A (zh) * 2013-07-25 2013-11-27 西安空间无线电技术研究所 一种基于图像集的数据隐藏方法
CN103605928A (zh) * 2013-11-18 2014-02-26 清华大学 一种图像隐私保护方法和系统
CN103795889A (zh) * 2014-01-17 2014-05-14 西安空间无线电技术研究所 一种基于直方图的鲁棒信息隐藏传输方法
CN105046633A (zh) * 2015-06-30 2015-11-11 合肥高维数据技术有限公司 一种图像无损变换方法
CN105120325A (zh) * 2015-09-15 2015-12-02 中国人民解放军信息工程大学 一种信息传输方法及系统
CN105426724A (zh) * 2015-11-24 2016-03-23 上海斐讯数据通信技术有限公司 电子图像的加密、解密方法、装置及设备
CN106097241A (zh) * 2016-06-13 2016-11-09 西安交通大学 基于八邻域像素的可逆信息隐藏方法
CN108171643A (zh) * 2017-12-08 2018-06-15 西安电子科技大学 一种基于直方图移位的鲁棒可逆图像水印方法及应用
CN109803142A (zh) * 2019-01-08 2019-05-24 宁波工程学院 一种基于邻域预测的加密域图像可逆数据隐藏方法
CN109617682B (zh) * 2018-12-12 2020-11-13 北京邮电大学 一种基于直方图左右移位的密文域可逆信息隐藏方法
CN112351275A (zh) * 2019-08-06 2021-02-09 浙江宇视科技有限公司 一种基于原始图像的特征区域隐私保护的方法及装置
CN113256674A (zh) * 2021-06-28 2021-08-13 恒银金融科技股份有限公司 一种基于差值的复杂背景分离方法
CN113923314A (zh) * 2021-10-09 2022-01-11 河海大学 一种基于多重残差直方图平移的可逆数据隐藏方法及装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449278A (zh) * 2003-12-05 2009-06-03 新泽西理工学院 在空间域中的健壮可逆数据隐藏和数据恢复的系统和方法

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101449278A (zh) * 2003-12-05 2009-06-03 新泽西理工学院 在空间域中的健壮可逆数据隐藏和数据恢复的系统和方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
尚冠宇等: "基于采样预测和差值变换的医学图像可逆水印算法", 《计算机应用与软件》, vol. 29, no. 6, 15 June 2012 (2012-06-15) *
李晓博等: "基于图像块像素差的大容量无损信息隐藏算法", 《计算机工程》, vol. 38, no. 17, 5 September 2012 (2012-09-05) *
熊志勇等: "基于预测误差差值扩展和最低有效位替换的可逆数据隐藏", 《计算机应用》, vol. 30, no. 4, 1 April 2010 (2010-04-01) *

Cited By (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103310406B (zh) * 2013-06-25 2016-04-06 同济大学 基于直方图对的图像可逆数据隐藏方法
CN103310406A (zh) * 2013-06-25 2013-09-18 同济大学 基于直方图对的图像可逆数据隐藏方法
CN103414840A (zh) * 2013-07-25 2013-11-27 西安空间无线电技术研究所 一种基于图像集的数据隐藏方法
CN103605928A (zh) * 2013-11-18 2014-02-26 清华大学 一种图像隐私保护方法和系统
CN103605928B (zh) * 2013-11-18 2016-03-30 清华大学 一种图像隐私保护方法和系统
CN103795889A (zh) * 2014-01-17 2014-05-14 西安空间无线电技术研究所 一种基于直方图的鲁棒信息隐藏传输方法
CN105046633B (zh) * 2015-06-30 2018-05-11 合肥高维数据技术有限公司 一种图像无损变换方法
CN105046633A (zh) * 2015-06-30 2015-11-11 合肥高维数据技术有限公司 一种图像无损变换方法
CN105120325A (zh) * 2015-09-15 2015-12-02 中国人民解放军信息工程大学 一种信息传输方法及系统
CN105120325B (zh) * 2015-09-15 2018-12-14 中国人民解放军信息工程大学 一种信息传输方法及系统
CN105426724A (zh) * 2015-11-24 2016-03-23 上海斐讯数据通信技术有限公司 电子图像的加密、解密方法、装置及设备
CN105426724B (zh) * 2015-11-24 2018-05-01 上海斐讯数据通信技术有限公司 电子图像的加密、解密方法、装置及设备
CN106097241A (zh) * 2016-06-13 2016-11-09 西安交通大学 基于八邻域像素的可逆信息隐藏方法
CN106097241B (zh) * 2016-06-13 2019-07-19 西安交通大学 基于八邻域像素的可逆信息隐藏方法
CN108171643A (zh) * 2017-12-08 2018-06-15 西安电子科技大学 一种基于直方图移位的鲁棒可逆图像水印方法及应用
CN108171643B (zh) * 2017-12-08 2021-06-15 西安电子科技大学 一种基于直方图移位的鲁棒可逆图像水印方法及应用
CN109617682B (zh) * 2018-12-12 2020-11-13 北京邮电大学 一种基于直方图左右移位的密文域可逆信息隐藏方法
CN109803142A (zh) * 2019-01-08 2019-05-24 宁波工程学院 一种基于邻域预测的加密域图像可逆数据隐藏方法
CN109803142B (zh) * 2019-01-08 2021-04-13 宁波工程学院 一种基于邻域预测的加密域图像可逆数据隐藏方法
CN112351275A (zh) * 2019-08-06 2021-02-09 浙江宇视科技有限公司 一种基于原始图像的特征区域隐私保护的方法及装置
CN113256674A (zh) * 2021-06-28 2021-08-13 恒银金融科技股份有限公司 一种基于差值的复杂背景分离方法
CN113256674B (zh) * 2021-06-28 2021-10-26 恒银金融科技股份有限公司 一种基于差值的复杂背景分离方法
CN113923314A (zh) * 2021-10-09 2022-01-11 河海大学 一种基于多重残差直方图平移的可逆数据隐藏方法及装置
CN113923314B (zh) * 2021-10-09 2022-08-05 河海大学 一种可逆数据隐藏方法及装置

Also Published As

Publication number Publication date
CN103123720B (zh) 2015-09-23

Similar Documents

Publication Publication Date Title
CN103123720B (zh) 基于差值图像直方图循环平移的无损数据隐藏方法
Huang et al. Reversible data hiding in JPEG images
Wu et al. A high-capacity reversible data hiding method for homomorphic encrypted images
CN101105857B (zh) 一种基于预测和压扩技术的高容量可逆水印方法
CN109981918B (zh) 一种基于四叉树动态块分割的加密图像可逆信息隐藏方法
CN103268588B (zh) 基于载体图像校验码的加密域无损可逆信息隐藏方法
CN103413269A (zh) 一种图像隐写方法和秘密信息提取方法
CN101419702A (zh) 用于彩色图像篡改定位与恢复的半脆弱数字水印方法
Ke et al. A multilevel reversible data hiding scheme in encrypted domain based on LWE
CN105227962A (zh) 一种基于数据差值的无损信息隐藏方法
CN103116871A (zh) 具有鲁棒性的双重脆弱数字水印的嵌入方法及其提取方法
CN106611400A (zh) 一种密文图像的可逆水印算法
CN114745475A (zh) 一种鲁棒的加密图像可逆信息隐藏方法
CN103996163A (zh) 一种数字水印嵌入、提取方法、嵌入、提取装置以及系统
Liu et al. A reversible data hiding algorithm based on image camouflage and bit-plane compression
Ong et al. Rotational based rewritable data hiding in JPEG
CN103996162A (zh) 一种基于人眼视频特征的柔性图像水印方法和装置
CN103440615A (zh) 一种基于余数不变性的高容量可逆水印方法
Raju et al. Modified encryption standard for reversible data hiding using AES and LSB steganography
Sivadasan A survey paper on various reversible data hiding techniques in encrypted images
Qiu et al. Reversible contrast mapping based reversible data hiding in encrypted images
Li et al. Data-Loss resilience video steganography using frame reference and data ensemble reconstruction
Navas et al. High security data embedding in video
CN115242930B (zh) 一种基于秘密共享的密文域极端预测双层可逆信息隐藏方法
Chang et al. High-Capacity Reversible Data Hiding Method for JPEG Images.

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150923

Termination date: 20170313