发明内容
为解决上述技术问题,本发明提供了一种基于DCT系数差值的鲁棒图像隐写方法。
本发明采用如下技术方案:
一种基于DCT系数差值的鲁棒图像隐写方法,其特征在于,包括以下步骤:
S02:对载体图像cI进行鲁棒嵌入域构造;
S04:对所述嵌入域的嵌入信息进行最小化代价编码;
S06:根据经所述最小化代价编码的嵌入比特信息,通过对鲁棒嵌入域提取与解码处理,从而得到相应的载密信息。
优选的,在本发明中,在所述步骤S02之前,还具有步骤S01:对所述载体图像cI的复杂度进行计算与排序;
其中,所述载体图像cI的复杂度计算公式为:
其中,uB,vB分别为所述载体图像cI经过所述DCT变换后所述DCT系数块的行数和列数;c(i,j)为表示位于位置(i,j)处所述DCT系数块的所述复杂度,c(i,j)=maxco-minco,其中,maxco,minco分别为所述DCT系数块c(i,j)的极大值和极小值,i,j均为正整数。
优选的,在本发明中,在所述步骤S02中,还包括以下步骤S021:
对所述载体图像cI进行判断;当所述载体图片cI为空载图像时,对所述载体图像cI进行分块DCT变换处理;当所述载体图像cI为非空载图像时,对所述载体图像cI进行Huffman解码和反量化操作,进而获得DCT系数块。
优选的,在本发明中,在所述步骤S021之后,具有以下步骤:
S022:鲁棒载体元素提取
对所述载体图像c
I进行所述分块DCT变换处理,得DCT系数块B={B
(i,j)|1≤i≤u
B,1≤j≤v
B},其中
且
表示对·下取整;
按照蛇型顺序得到与DCT系数块B(i,j)相邻的系数块B(i′,j′),其中,所述系数块B(i′,j′)可用下式表示:
其中,mod(·,2)指对整数·进行模2取余;
计算两相邻DCT块相同位置处的系数差值,得到DCT系数差值块C={C(i,j)=B(i,j)-B(i′,j′)|1≤i,i′≤uB,1≤j,j′≤vB};
按照序列
从所述DCT系数差值块C
(i,j)中选择部分系数差值作为载体元素,其中,1≤r.,w.≤64,n
b为从每个DCT系数差值块中提取出的载体元素数量,且
l
m为待嵌入的秘密信息长度,
为对整数·进行下取整;
按照如下公式从DCT系数差值块C(i,j)中提取载体元素序列S(i,j):
其中,C
(i,j)(r.),C
(i,j)(w.)分别为所述DCT系数差值块C
(i,j)中的第r.,w.个系数;基于所述相邻DCT块系数差值间的相对关系,构造并提取对常见图像处理操作鲁棒的载体序列
从而形成鲁棒嵌入域。
优选的,在本发明中,在所述步骤S022之后,具有以下步骤:
S023:嵌入方式设计
嵌入信息前载体元素si和嵌入信息后载密元素si′之间的关系表示:
其中,mi为待嵌入第i个的信息比特,Tn=round(si/T)为与mi相对就的距离si最近的区间,round(·)表示距离·最近的整数,Δ1,Δ2表示如下:
其中,se为强度参数且通常取值为0.5。
优选的,在本发明中,在所述步骤S04中,具体包括以下步骤:
S041:对所述嵌入域进行嵌入信息置乱,并对所述嵌入信息进行RS纠错编码;
S042:根据嵌入失真函数,设置与所述鲁棒嵌入域相对应的嵌入代价函数,所述嵌入代价函数为
其中,X表示载体图像DCT系数块,Y=X+Δ
(i,j)(r
0)为载体图像位置(i,j)处DCT系数块r
0处系数增加Δ
(i,j)(r
0)后,对应的载密图像,X
S,Y
S分别为X,Y对应的空域图像;
为图像·对应的在k子带第一层分解中的第uv个小波系数,k=1,2,3,u∈{1,2,...,n
1},v∈{1,2,...,n
2},σ>0是用于稳定数值计算的常数。
优选的,在本发明中,在所述步骤S06中,具体包括以下步骤:
S061:所述鲁棒嵌入域提取出载密信息序列包括:
采用以下公式进行提取:
其中,
为提取出的第i比特秘密信息,
且
为按所述步骤S022提取出的第i个载密元素;
S062:对所述载密信息序列进行STC译码和RS译码,并进行逆置乱处理,进而得到相应的载密信息。
本发明有益技术效果
本发明通过用DCT系数差值对于常见图像处理操作的鲁棒性,构造可同时应用于空域、频域的鲁棒隐写载体;结合嵌入代价函数设计及最小化嵌入代价编码方法,实现兼具鲁棒性与抗统计检测性的信息嵌入,并生成对应的载密图像。采用本发明所提供的方法,可实现抵抗JPEG压缩、高斯噪声、椒盐噪声、图像旋转等多种攻击的信息嵌入及提取,并同时较好地保持了载密图像的抗检测性能。
具体实施方式
下面结合附图对本发明所提出的一种基于DCT(离散余弦变换,Discrete CosineTransform,DCT)系数差值的鲁棒图像隐写方法作进一步阐述说明。
本方法主要由信息嵌入和提取两个部分组成,如图1所示。其中,嵌入部分主要包括载体图像选择、鲁棒嵌入域构造、最小化代价编码和信息嵌入等四个部分;提取部分主要包括鲁棒嵌入域提取、信息解码两部分。
方法的主要嵌入过程如下:
1、载体图像选择:为提高载密图像的鲁棒性和抗检测性,需要对载体图像进行预选择,以删去内容和纹理过于简单,不适合进行信息隐藏的载体图像。具体地,对于候选图像集中每幅给定的载体图像cI,首先按照如下公式计算图像cI的复杂度:
其中,uB,vB分别为图像cI经过8×8分块DCT变换后,DCT系数块的行数和列数;c(i,j)为位于位置(i,j)处DCT系数块的复杂度,并定义为c(i,j)=maxco-minco,maxco,minco分别为系数块c(i,j)的极大值和极小值。此外,若某幅图像中存在复杂度小于门限值cT的DCT系数块,即该幅图像中存在过于平滑、不适合隐写的系数块,则将该幅图像的复杂度置0。根据经验,通常令门限值cT=20。最后,按照复杂度对候选载体图像集中的图像降序排列,并按此顺序依次选取图像作为鲁棒隐写的载体图像。
2、鲁棒嵌入域构造:若载体图像为空载图像,则首先对每幅图像进行分块DCT变换,若载体图像为JPEG图像,则首先对图像进行Huffman解码和反量化,从而获得DCT系数块。随后,利用基于DCT系数差值的鲁棒载体构造方法,确定载体图像中对常见图像处理操作鲁棒的载体元素及修改方式。具体地,基于DCT系数差值的鲁棒载体构造方法主要包括鲁棒载体元素提取和嵌入方式设计两部分,下面将分别进行详细阐述。
2.1鲁棒载体元素提取
对一幅给定的高度为u
I、宽度为v
I载体图像I
c,鲁棒载体元素的提取过程如图2所示。首先,对图像I
c进行8×8的分块DCT变换获得对应的DCT系数块B={B
(i,j)|1≤i≤u
B,1≤j≤v
B},其中
且
表示对·下取整。随后,按照蛇型顺序得到与DCT系数块B
(i,j)相邻的系数块B
(i′,j′)。具体地,B
(i′,j′)可用下式表示:
其中,mod(·,2)指对整数·进行模2取余。
然后,计算两相邻DCT块相同位置处的系数差值,得到DCT系数差值块C={C
(i,j)=B
(i,j)-B
(i′,j′)|1≤i,i′≤u
B,1≤j,j′≤v
B}。在此基础上,为了去除DCT系数差值间的相互影响,根据系数的鲁棒性和抗检测性,按照序列
从C
(i,j)中选择部分系数差值作为载体元素(L
1和L
2中元素各不相同),其中,1≤r.,w.≤64,n
b为从每个DCT系数差值块中提取出的载体元素数量,且
l
m为待嵌入的秘密信息长度,
为对整数·进行下取整。最后,按照如下公式从DCT系数差值块C
(i,j)中提取载体元素序列S
(i,j)。
其中,C
(i,j)(r
.),C
(i,j)(w
.)分别为DCT系数差值块C
(i,j)中的第r
.,w.个系数。由上述过程,可基于相邻DCT块系数差值间的相对关系,构造并提取对常见图像处理操作鲁棒的载体序列
从而为后续信息嵌入提供鲁棒性较好的嵌入域。
2.2嵌入方式设计
借鉴抖动调制的信息嵌入方式,可利用门限值T和辅助参数E将DCT系数差值分为‘0’、‘1’两个区间集,如图3所示。
本发明由BOSSbase-1.01图像库中随机选取了100幅灰度图像,当门限值T分别取10,20,...100时,在DCT系数差值块中的64个不同位置处,嵌入随机的载密信息。然后按照如下公式计算原始载体图像与载密图像间的峰值信噪比(PSNR):
其中,MSE为载密图像Is与载体图像Ic的均方差。
随后,在嵌入信息时,将载体元素按照待嵌入的信息比特调整到与其最相近的区间中。为了更清晰地表示嵌入方式,嵌入信息前载体元素si和嵌入信息后载密元素si′之间的关系可用下式表示:
其中,mi为待嵌入第i个的信息比特,Tn=round(si/T)为与mi相对就的距离si最近的区间,round(·)表示距离·最近的整数,Δ1,Δ2可由下式表示:
其中,se为强度参数且通常取值为0.5。若载体元素si由DCT系数差值C(m,n)(rp)=B(m,n)(rp)-B(m′,n′)(rp)决定,其中1≤m,m′≤uB,1≤n,n′≤vB,且1≤rp≤64,则信息嵌入后,此8×8的DCT系数块该位置处系数值B′(m,n)(rp)可按照式(4)、(5)以同样的方式计算。
3、最小化代价编码:首先,对待嵌入信息进行置乱,并进行RS纠错编码,从而提高嵌入信息在遭受攻击后被正确提取的概率。然后,借鉴J-UNIWARD隐写算法中的嵌入失真函数,设计与鲁棒信息嵌入域相对应的嵌入代价函数。具体地,嵌入代价函数可用如下公式表示:
其中,X表示载体图像DCT系数块,Y=X+Δ
(i,j)(r
0)为载体图像位置(i,j)处DCT系数块r
0处系数增加Δ
(i,j)(r
0)后,对应的载密图像,X
S,Y
S分别为X,Y对应的空域图像;
为图像·对应的在k子带第一层分解中的第uv个小波系数,k=1,2,3,u∈{1,2,...,n
1},v∈{1,2,...,n
2},σ>0是用于稳定数值计算的常数。结合以上失真函数,利用最小化嵌入失真的STC编码,即可对置乱和纠错编码后的信息进行最小化代价编码。
4、信息嵌入:首先,根据编码后的信息比特,利用(3)中定义的载密元素的修改方式,将载密元素调整至对应的‘0’、‘1’区间。然后,若载体图像为空域图像,则对修改后的DCT系数块进行分块逆变换;若载体图像为频域图像,则对修改后的DCT系数块进行量化和Huffman编码,从而获得对应的载密图像。
通过上述过程,秘密信息以最小代价被嵌入至构造出的载体元素中,从而兼顾了嵌入信息对常见图像处理操作的鲁棒性和载密图像对基于统计特征隐写检测的安全性。相似地,方法的提取过程主要包括以下两个部分:
4.1鲁棒嵌入域提取:若载体图像为空载图像,则首先对每幅图像进行分块DCT变换,若载体图像为JPEG图像,则首先对图像进行Huffman解码和反量化,从而获得DCT系数块。随后,利用上述鲁棒嵌入域构造方法,利用DCT系数差值间的相对关系,按照所述2.1中方式提出载密元素,并匹配其对应的‘0’、‘1’区间,从而实现载密序列的提取。具体地,信息的提取方式可以用如下公式描述:
其中,
为提取出的第i比特秘密信息,
且
为所述2.1中方式提取出的第i个载密元素。
4.2信息解码:对提取出的载密信息序列,先后进行STC译码和RS译码,并进行逆置乱,从而提取出相应的载密信息。
针对本发明所提供的方法进行试验验证
本发明共对比了三种空域、5种频域信息隐藏及水印相关方法,具体地实验参数等设置如表1所示。
表1实验参数设置
实验中随机选择每组载密图像的1/2用于分类器训练,其余1/2用于测试抗检测性能,不同方法对应的载体图像的检测错误率EOOB
相比现有的鲁棒水印算法,本文方法在经典隐写检
测SPAM特征下,载密图像的检测错误率显著提高。当嵌入比率为0.001时,本文方法对应载密图像的检测错误率为0.4483,与现有的自适应隐写S-UNIWARD算法相当;而鲁棒水印算法对应载密图像的检测错误率仅为0.1417。图4(b)给出了本文方法在经典隐写检测SRM特征下的抗检测性能,从而实验验证了低嵌入比率条件下,本文方法用于空域图像隐蔽通信时的安全性。
实验结果表明,在CCPEV和DCTR特征下,本文方法生成载密图像的检测错误率明显高于鲁棒水印算法。在低嵌入比率下,本文方法可以达到与现有自适应隐写算法及鲁棒隐写方法相当的抗检测性能
综上,通过以上信息嵌入和提取过程,本方法可在继承自适应隐写良好安全性和鲁棒水印方法较强鲁棒性的基础上,实现JPEG压缩、高斯噪声、椒盐噪声、图像旋转等多种攻击条件下的安全隐蔽通信,从而兼顾载密图像的抗检测性与嵌入信息的鲁棒性。值得一提的是,本方案中的鲁棒嵌入域构造方式不仅可应用于空域、频域图像,且可适用于灰度、彩色图像。对于彩色图像,所提方法可分别应用于三个颜色通道,从而实现彩色图像的鲁棒嵌入域构造。因此,本方法可适用于较为广泛的应用场景。
最后应说明的是:以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解,其依然可以对前述实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换,而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例技术方案的范围。