可逆数据隐藏(reversible data hiding, RDH)[1]是一种特殊的数据隐藏方法,允许用户将附加数据嵌入到载体图像中,且授权用户能够完全可逆地从含密图像中提取嵌入的附加数据并恢复出原始载体图像.RDH要求嵌入数据后可以无差错恢复出原始载体和附加数据[2],且嵌入的数据对人眼是不可见的,已被应用在数字图像版权认证[3]、存档管理[4]及内容敏感载体,如军事图像、医学图像的内容安全和隐私保护等领域[5].
联合图像专家组(joint photographic experts group, JPEG)是目前互联网上最流行的图像格式之一[6],其文件小、兼容性好且可通过可变的压缩比控制文件大小,在网络传输和云存储中可节约带宽与存储空间.目前,JPEG图像的RDH有3种常用方法:基于量化离散余弦变换(discrete cosine transform, DCT)系数修改的RDH[7-10]、基于量化表修改的RDH[11-13]和基于霍夫曼表修改的RDH[14-15].其中,第2种方法修改量化表破坏了JPEG文件大小和视觉质量之间的平衡,会导致含密图像的文件大小显著增加;第3种方法能保持较小的JPEG文件,但隐藏容量有限;第1种方法通过修改量化的DCT系数选择一些特定系数用于嵌入附加数据,在保持较小的含密图像文件大小的同时实现较高的隐藏容量和良好的视觉质量,且随着嵌入数据的增加,视觉质量和文件大小能达到很好的平衡.因此,基于DCT系数修改的RDH受到关注,直方图平移(histogram shifting, HS)作为空域RDH的主要嵌入方法之一,在JPEG图像的应用成为DCT系数修改RDH的研究热点[16].下面对JPEG图像的HS算法详细描述.
基于直方图平移的JPEG图像RDH首次由Huang等人[16]提出.在该方案中,量化后的DCT直流(direct current, DC)系数保持不变,生成量化后的DCT交流(alternating current, AC)系数直方图,通过直方图平移技术,将值为“±1”的AC系数作为峰值点扩展以嵌入附加数据,同时保留零AC系数不变.由于“±1”AC系数的高峰值性,该算法最大隐藏容量较其他方案有显著提高.当附加数据长度小于最大隐藏容量时,为减小图像的失真,该算法提出一种嵌入图像块选择策略,根据附加数据的长度自适应选取零AC系数较多的DCT块嵌入数据.基于Huang算法[16]的块选择策略,Wedaj等人[17]提出改进方案,通过直方图平移嵌入附加数据,在嵌入数据达不到最大隐藏容量时,为减少失真,设计一种嵌入频率选择策略.首先计算63个频率的最大隐藏容量与相应的估计失真(即总移位AC系数数量之和与相应位置的量化表元素平方之积)的比值,记为嵌入效率,然后根据嵌入效率对频率排序,优先选取嵌入效率较高的频率嵌入数据.基于上述方案,Hou等人[18]综合考虑嵌入不同频率和DCT块对失真的影响,提出基于模拟失真的嵌入块选择和频率选择策略.嵌入频率选择策略首先计算63个频率的单位模拟失真,然后根据单位模拟失真将所有频率按从小到大排序,嵌入数据时优先选择单位模拟失真较小的频率.选择频率后,从量化DCT块中根据选择的频率提取子块并计算每个子块的模拟失真,具有较小模拟失真的子块将优先用于嵌入数据.
在嵌入数据长度小于最大隐藏容量时,上述基于直方图平移的JPEG图像RDH方案从嵌入不同频率和DCT块的角度分别提出不同的嵌入块和频率选择策略,在保持高隐藏容量的同时能有效减小嵌入数据引起的图像失真,提高了含密图像的视觉质量.但这些方案未考虑嵌入附加数据而导致图像文件大小扩展代价问题.为保证高隐藏容量的同时兼顾含密图像的文件增量和视觉质量,本文提出一种基于失真-扩展代价的JPEG图像RDH算法.在数据嵌入过程中,嵌入频率选择从图像文件增量角度模拟并计算不同频率的单位文件增量并优先选取单位文件增量较小的频率嵌入数据.嵌入块选择时首先根据每个量化DCT块中的零AC系数数量从大到小排序,然后对具有相同零AC系数数量的DCT块再计算其平滑度并依此重排序,并优先在平滑块嵌入数据.实验结果表明,本文算法兼顾文件增量和视觉质量,在降低图像文件增量的同时保持较高的视觉质量.
本文算法主要包括2部分:1)基于自适应频率和块选择的数据嵌入;2)数据提取与图像恢复.
1) 基于自适应频率和块选择的数据嵌入.重点研究如何根据嵌入容量自适应选择嵌入频率和图像块,以最小化数据嵌入引起的含密图像视觉失真和文件增量.原始JPEG图像Io解码得到DCT块,根据频率选择策略和块选择策略对频率和块排序得到嵌入频率排列Pe和嵌入块排列Be,根据嵌入容量按Pe和Be的排列顺序选择频率和块通过直方图平移嵌入数据,JPEG编码后生成含密图像Ie.
2) 数据提取与图像恢复.含密JPEG图像Ie解码得到DCT块,直方图平移提取嵌入数据并恢复原始DCT块,JPEG编码后恢复原始图像.下面对算法按2个部分详细描述.
数据嵌入过程,对量化DCT系数执行3步操作:根据嵌入频率选择策略选取数据嵌入的频率;根据嵌入块选择策略选择数据嵌入的图像块;通过HS根据嵌入容量实现自适应选择频率和块嵌入数据.上述3步骤具体操作描述为:
1) 根据文件增量模拟选择嵌入频率
Fig. 1 Comparison of DCT block before and after embedding data
图1 嵌入数据前后DCT块对比
基于HS在非零AC系数中选择±1AC系数嵌入数据,此时±1AC系数被扩展携带附加数据,其他非零AC系数移位1,而其他非零AC系数的移位是无效移位,选取无效移位小的频率嵌入数据可降低含密图像的视觉失真和文件增量.非零AC系数通过HS嵌入数据不影响(R
S,V)(中间格式)的数量,且游程R不变,仅AC系数值V可能变.尺寸S为V的VLI编码码长,S可能发生变化,在V=±(2N-1),N=1,2,3…时嵌入数据后S+1.
为了更详细说明数据嵌入前后的JPEG比特流变化,下面通过一个例子说明.如图1(a)表示一个原始8×8DCT块,zigzag扫描后AC系数游程编码的中间格式为(0
1,1),(1
2,3),(0
3,4),(4
1,-1),(EOB).其中,EOB表示块的结束.嵌入数据后,部分AC系数被修改,如图1(b)所示,此时中间格式变为(0
1,1),(1
3,4),(0
3,5),(4
2,-2),(EOB).可看出当V为3和-1时,S由2变为3,由1变为2.熵编码阶段对R
S执行霍夫曼编码,V执行可变长度编码.通过分析可看出是(1
3,4)和(4
2,-2)导致JPEG比特流增长,(0
3,5)不会.因此,JPEG比特流增长与2个因素有关:当V=±(2N-1)时V变化引起对V进行可变长度编码时的增长和S变化引起对R
S进行霍夫曼编码时的增长.
熵编码阶段R
S执行霍夫曼编码,R(0≤R≤15)取不同值嵌入数据时引起的比特流增长不同,这与AC系数熵编码有关.基于AC系数霍夫曼编码表及VLI编码表设计实验,计算当游程长度R不同,且AC系数值V增加导致尺寸S变化时的熵编码长度差值.通过实验测试,不同游程时的比特增长统计如表1所示:
Table 1 Statistics of Bitstream Increase in Different Run
表1 不同游程时的比特流增长统计量
R|V|137153163127255012223237123336111243351111344511111457111111556111111665111111755111111872111111981111111108111111111711111111271111111136111111114111111111511111111
表1中R表示游程长度,|V|表示VLI编码时不同S的临界值的绝对值,V=±(2N-1),对于256级灰度图像1≤N≤8,游程长度为R,且AC系数值处于临界时,值V增加会导致尺寸S变化,熵编码后比特长度发生变化,表1中数据即表示S变化时导致的比特增长.可看出,在嵌入±1AC系数时,R越大,比特流增长越多,因此,嵌入数据时应优先选择R较小的系数.
上述分析从JPEG编码方面解释了数据嵌入引起比特流增长的原因,下文将提出基于文件增量模拟的频率选择策略.频率选择时,首先根据表1的统计结果模拟嵌入数据到所有DCT块中不同频率处引起的文件增量G(u,v),然后计算单位文件增量UG(u,v),最后优先选择单位文件增量小的频率嵌入数据.
Fig. 2 Image block distribution with the same number of zero AC coefficients of Lena image with QF=70
图2 QF=70的Lena图像零AC系数相同的图像块分布
假设嵌入数据全为“1”,第n个DCT块中频率(u,v)由于嵌入数据引起的文件增量In1(u,v)表示为
(1)
其中,1≤n≤num,num为8×8 DCT块数量,u和v为DCT块的频率且满足0≤u≤7,0≤v≤7,L[R
(S+1)]表示值为±1的AC系数嵌入数据后R
S经霍夫曼编码后的比特流长度,L(R
S)表示值为±1的AC系数原始R
S经霍夫曼编码后的比特流长度,1为嵌入到±1AC系数时VLI编码引起的比特增量.在AC系数值为±1时,S=1,In1(u,v)可用1+[L(R
2)-L(R
1)]表示.
In1(u,v)为嵌入数据引起的文件增量,第n个DCT块频率(u,v)无效移位引起的文件增量In2(u,v)表示为
(2)
其中,N=±2,±3,±4……表示除±1之外的其他非零AC系数.
根据In1(u,v)和In2(u,v)可得到不同频率的模拟文件增量G(u,v)
(3)
根据所有DCT块中不同频率的有效载荷C(u,v)和模拟文件增量G(u,v),计算单位文件增量UG(u,v):
(4)
不同频率的UG(u,v)计算完成后,根据UG(u,v)从大到小的顺序对63个频率排序,数据嵌入时优先选择UG(u,v)较小的频率.
2) 根据块平滑度选择嵌入图像块
嵌入块选择时,首先根据每个DCT块中零AC系数数量从大到小排序;然后再针对相同零AC系数个数的块计算不同块的平滑度并根据平滑度进行重排序;最后优先选取较平滑的图像块嵌入附加数据.
Huang算法的嵌入块策略时仅根据每个DCT块中的零AC系数数量排序,再根据嵌入量确定阈值选取零AC系数数量大于该阈值的块嵌入数据.这种方法未考虑到零AC系数数量相同的图像块有很多的情况,选取平滑图像块不精确.如图2表示质量因子为70的Lena图像中零AC系数个数相同的图像块的个数分布,可看出零AC系数数量为59的图像块最多有400个,因此仅通过零AC系数数量判断平滑块是不准确的.针对这个问题,本文提出一种更加精确的图像块平滑度计算公式.
由于原始图像经DCT变换后能量大部分集中在左上角DC系数上,其他频率变得很小,且直方图平移嵌入仅在AC系数中嵌入数据,DC系数不发生变化,因此为保证算法的可逆性,每个DCT块中的DC系数被用来计算图像块(i,j)的平滑度S(i,j):
![]()
![]()
(5)
其中,DC(i,j)表示图像块(i,j)的DC系数,N表示(i,j)的4个相邻块(UP,RT,DW和LF)个数,具体4个相邻块位置如图3所示.N(i,j)分别对应UP坐标(i-1,j),RT坐标(i,j+1),DW坐标(i+1,j)和LF坐标(i,j-1).DC(i′,j′)为对应位置图像块的DC系数.
Fig. 3 Adjacent block diagram of smoothness calculation
图3 平滑度计算相邻块示意图
3) 数据嵌入步骤
数据嵌入时,首先对原始JPEG图像Io解码;然后分别根据嵌入频率和块选择策略选择嵌入频率和图像块;最后通过HS嵌入数据后编码生成含密JPEG图像Ie.具体操作描述为:
步骤1. 图像解码.将大小为A×B的原始JPEG图像Io解码,得到n个量化DCT块
其中,n=
A
8
×
B
8
.
步骤2. 嵌入频率排序.根据嵌入频率选择策略计算不同频率(u,v)的单位文件增量UG(u,v);然后根据UG(u,v)从大到小的顺序对全部频率排序得到频率排列Pe.
步骤3. 嵌入图像块排序.统计每个DCT块
的零AC系数数量,记为Z(i)(i=1,2,…,n).首先将所有DCT块
根据Z(i)从大到小排序得到排列Bn,然后针对Z(i)值相等的块根据式(5)计算块平滑度S(i)并对Bn根据S(i)的值从小到大进行重排序得到图像块排列Be.
步骤4. 数据嵌入.首先,从频率排列Pe中选择满足嵌入容量C的前K个频率,并从DCT块
中提取子块
(即仅在K个频率上有值,其他频率处均为零);然后,再从图像块排列Be中选择满足嵌入容量C的前M个嵌入块;为保证算法的可逆性,需将嵌入数据长度L、选取的最后一个嵌入块在Be的位置Plb和嵌入频率Pec作为辅助信息记录存放在JPEG头文件的APPn字段,其中,由于嵌入数据长度一般小于224b,512×512图像的图像块排列为4096,频率排列长度为63,故可选择L=24,Plb=12和Pec=63;最后,将附加数据通过式(6)嵌入至选择的M个嵌入块的K个频率,得到含有附加数据的DCT系数块![]()
(6)
其中,F(u,v)表示频率为(u,v)的原始DCT系数,F′(u,v)为嵌入数据后的系数,b∈{0,1}为附加数据.
步骤5. 熵编码生成含密图像.所有嵌入数据后的DCT块
返回原始位置,熵编码后得到含密JPEG图像Ie.
附加数据提取与原始图像恢复过程,是数据嵌入的逆过程.针对含密JPEG图像,提取含密图像Ie头文件中的辅助信息,利用HS实现数据提取与图像的完全恢复.具体操作描述为:
步骤1. 含密图像解码.将大小为A×B的含密JPEG图像Ie解码,得到n个含有附加数据的量化DCT块
其中:
n=
A
8
×
B
8
.
步骤2. 提取辅助信息.从JPEG头文件APPn字段提取辅助信息,包括附加数据长度L、选取的最后一个嵌入块在Be中的排列位置Plb和嵌入频率Pec.
步骤3. 确定嵌入图像块.从
中提取零AC系数数量Z(i)和不同图像块的DC系数,根据块选择策略确定嵌入块排列Be,然后根据Plb确定所有嵌入块.
步骤4. 提取附加数据.对所有嵌入块根据嵌入频率Pec提取子块
然后提取
中所有的非零AC系数记为E并提取附加数据b′:
(7)
步骤5. 恢复原始DCT块.从非零AC系数序列E中恢复原始DCT系数,并将修改后的DCT系数返回原始位置生成DCT块![]()
(8)
其中,F′(u,v)表示频率为(u,v)的含密图像DCT系数,F″(u,v)为恢复的DCT系数.
步骤6. 熵编码恢复原始图像.提取数据后的DCT块
返回原始位置,熵编码后得到恢复图像Io.
Fig. 4 Four test images
图4 4幅测试图像
本节通过实验分析本文算法性能.实验中秘密数据随机生成,测试图像从图像库[19]选取4幅大小为512×512的JPEG灰度图像,如图4所示:Lena,Baboon,Airplane和Man,质量因子(quality factor, QF)分别取70,80,90,使用IJG工具箱[20]优化的霍夫曼表压缩.主要从含密图像的文件扩展、视觉质量和算法时间复杂度3方面对本文算法对比分析.其中,通过计算原始图像和含密图像之间的峰值信噪比(peak signal to noise ratio, PSNR)作为评估含密图像视觉质量的度量,单位为dB;文件扩展用含密图像文件增量(increased of file size, IFS)和单位数据嵌入增量(unit increase of file size, UIFS)衡量,IFS计算为
IFS=Se-So,
(9)
其中,Se为嵌入C位数据后的JPEG图像Ie的文件大小,So为原始JPEG图像Io的文件大小.因此单位数据嵌入增量UIFS为
(10)
JPEG图像RDH方案中,含密图像的文件增量是一个重要的算法性能评估指标,文件增量越小,说明嵌入数据前后载体图像的文件尺寸变化越小,利于网络传输的同时也可提高数据隐藏的安全性,相应算法性能越好.为验证本文算法性能,选择Huang算法[16]和Hou算法[18]进行比较分析.4幅测试图像在不同质量因子和嵌入容量时的性能对比如表2所示.图5~7以Lena,Baboon,Airplane图像为例,给出不同质量因子和嵌入容量的单位增长量对比图.其中横坐标表示嵌入容量C,纵坐标表示单位文件增长UIFS.可以看出,本文算法能够有效降低含密图像的单位文件增长,在降低图像文件扩展方面,优于Huang算法和Hou算法,且嵌入数据越多,文件增量越大.另外,随着质量因子的增加,本文算法优势更大,质量因子为90时本文算法的单位文件增长平均值较Huang算法和Hou算法降低0.15~0.25.主要原因是,Huang算法选择嵌入图像块时仅根据每块中零AC系数数量对所有块排序,根据提出的自适应块选择策略选取零AC系数较多的块嵌入数据,但忽略了每块中不同频率的修改成本不同问题,选择在全部频率嵌入数据必定会使嵌入数据引起的视觉失真增大,也会增大含密图像的文件增量.而本文算法根据频率选择策略对不同频率的失真扩展代价进行模拟,嵌入数据时优先选取模拟文件增量较小的频率嵌入,而不是全部频率嵌入,因此本文算法文件增量更小;另外,Hou算法的块选择和频率选择策略仅从视觉失真的角度对嵌入不同块和频率造成的视觉失真进行模拟,嵌入数据时优先选取单位模拟失真较小的块和频率位置,却没有考虑图像文件扩展代价问题.而本文算法的频率选择策略模拟不同频率的单位文件增量,且嵌入块选择时引入更精确的平滑度计算公式,优先选取单位文件增量较小的频率和较平滑的块嵌入数据,因此本文算法文件增量更小.
Table 2 Performance Comparison of Four Test Images with Different Effective Embedding Payloads
表2 4幅测试图像在不同有效嵌入容量时的性能对比
ImageQFReferenceC=4000bC=8000bC=12000bC=16000bC=20000bPSNR,UIFSPSNR,UIFSPSNR,UIFSPSNR,UIFSPSNR,UIFSLenaBaboonAirplaneManHuang[16]49.10,1.3745.07,1.2742.13,1.2239.65,1.1537.45,1.0670Hou[18]49.80,1.2945.59,1.2542.71,1.2040.25,1.4137.89,1.05Proposed49.45,1.2245.42,1.1942.45,1.1839.90,1.1237.60,1.03Huang[16]51.60,1.5148.30,1.3045.79,1.2343.57,1.2041.36,1.1180Hou[18]52.39,1.3548.73,1.2446.35,1.1944.09,1.1741.72,1.09Proposed51.98,1.2048.49,1.1046.09,1.1143.74,1.1341.48,1.07Huang[16]55.32,1.6151.93,1.4549.67,1.3348.05,1.2646.45,1.2590Hou[18]56.20,1.4152.72,1.3550.53,1.2848.82,1.2147.23,1.23Proposed55.72,1.2552.30,1.1649.90,1.1548.41,1.1246.76,1.14Huang[16]46.57,1.3142.22,1.2339.52,1.2437.07,1.3035.22,1.3170Hou[18]46.89,1.2142.76,1.1939.93,1.2237.58,1.2835.89,1.30Proposed46.71,0.8942.47,1.1339.74,1.1837.24,1.2635.53,1.28Huang[16]48.01,1.3444.10,1.2741.01,1.3039.02,1.3437.13,1.3680Hou[18]48.55,1.1544.57,1.1841.74,1.2439.47,1.3137.79,1.30Proposed48.23,0.8044.37,1.1341.31,1.2139.21,1.2737.39,1.28Huang[16]49.09,1.4846.08,1.5343.84,1.5141.79,1.4740.02,1.4890Hou[18]50.99,1.2647.16,1.3044.63,1.2842.68,1.3241.02,1.30Proposed49.59,0.9546.68,1.1044.25,1.1142.32,1.1740.37,1.19Huang[16]47.95,1.1944.01,1.1840.58,1.1738.04,1.1170Hou[18]49.92,1.1745.64,1.1242.04,1.1439.18,1.10Proposed48.25,1.1144.86,1.1041.28,1.1138.69,1.09Huang[16]52.06,1.2247.86,1.1745.01,1.1542.37,1.1740.03,1.1280Hou[18]52.62,1.1548.92,1.1245.78,1.1142.90,1.1640.34,1.11Proposed52.36,0.9748.47,1.0445.56,1.0742.50,1.1340.24,1.10Huang[16]56.20,1.5952.74,1.3550.18,1.2748.23,1.2546.21,1.1990Hou[18]56.81,1.4853.16,1.2850.84,1.2248.78,1.2146.62,1.17Proposed56.51,1.2252.93,1.1350.53,1.1548.40,1.1846.31,1.14Huang[16]47.02,1.2842.92,1.2240.53,1.2338.49,1.2736.82,1.2870Hou[18]48.50,1.0644.52,1.0242.16,1.1739.84,1.1937.82,1.21Proposed47.22,0.8743.50,1.0041.64,1.0739.26,1.1337.75,1.17Huang[16]49.50,1.3245.48,1.2842.67,1.2940.89,1.3238.82,1.3480Hou[18]50.16,1.1946.51,1.1343.54,1.1941.65,1.2539.68,1.88Proposed49.83,0.9846.23,1.0543.15,1.0841.23,1.1739.33,1.22Huang[16]52.95,1.3149.41,1.2847.11,1.3245.01,1.3043.73,1.3190Hou[18]54.24,1.1650.53,1.1248.26,1.1845.84,1.2144.32,1.23Proposed53.62,0.8750.02,1.0147.87,1.0545.45,1.1443.99,1.16
Fig. 5 Comparison of UIFS of marked Lena image under different embedding payloads
图5 不同嵌入容量下含密Lena图像的UIFS对比
Fig. 6 Comparison of UIFS of marked Baboon image under different embedding payloads
图6 不同嵌入容量下含密Baboon图像的UIFS对比
Fig. 7 Comparison of UIFS of marked Airplane image under different embedding payloads
图7 不同嵌入容量下含密Airplane图像的UIFS对比
Fig. 8 Comparison of UDIR of marked Lena image under different embedding payloads
图8 不同嵌入容量下含密Lena图像的UDIR对比
Fig. 9 Comparison of UDIR of marked Baboon image under different embedding payloads
图9 不同嵌入容量下含密Baboon图像的UDIR对比
Fig. 10 Comparison of UDIR of marked Airplane image under different embedding payloads
图10 不同嵌入容量下含密Airplane图像的UDIR对比
含密图像的视觉质量是衡量算法性能的重要指标之一,通常用PSNR度量.PSNR越高,说明含密图像视觉质量越好,数据隐藏的安全性也越高,相应的算法性能越好.从表2可以看出,嵌入容量越大,含密图像的PSNR越小;质量因子越大,含密图像的PSNR越大.由此可见,用户可通过嵌入较少的数据或采用质量因子较高的JPEG载体图像以获得较好的含密图像视觉质量.
一个好的JPEG图像可逆信息隐藏算法,应该综合考虑含密图像的视觉质量和文件增量.为定量比较算法兼顾视觉质量和文件扩展的性能,定义单位失真-增长比(unit distortion-increase ratio, UDIR)为
![]()

(11)
其中,Io和Ie分别为嵌入数据后的JPEG图像和原始JPEG图像.分子用来评价嵌入数据后载体图像的质量或失真(即PSNR),其值越小表示含密图像失真越大,分母UIFS是根据式(10)计算得到的单位数据嵌入增量.视觉失真越小(即PSNR越高),单位文件增量越小,对应的UDIR值越大,说明视觉质量和文件扩展之间的兼顾性越好,相应的算法性能越好.
图8~10以Lena,Baboon和Airplane图像为例,给出不同质量因子和嵌入容量的UDIR,并与Huang算法和Hou算法对比.其中横坐标表示嵌入容量C,纵坐标为单位失真-增长比UDIR.可看出,本文算法UDIR高于Huang算法和Hou算法,说明本文算法在含密图像视觉质量和文件增量之间的兼顾性能更好.主要原因是,Huang算法仅通过每块中零AC系数数量对所有块排序并根据嵌入容量自适应选取,而本文算法在Huang算法的基础上引入平滑度计算公式,提高了图像块平滑度衡量的精确度,同时在模拟文件增量较小的频率嵌入数据,减少了直方图平移无效移位引起的失真,因此本文算法兼顾性能更好.另外,Hou算法的嵌入块选择和频率选择策略都是根据模拟数据嵌入数据引起的视觉失真选择模拟失真较小的块和频率嵌入数据,仅考虑降低视觉失真,在文件增量方面未进行有效控制,因此本文在文件增量方面和含密图像视觉质量和文件增量的平衡兼顾方面均优于Hou算法.
JPEG图像RDH算法主要包括数据嵌入和数据提取与图像恢复2个阶段,算法的运行速度决定了该算法的现实意义,时间复杂度低的算法更适用于现实的应用场景.本文算法采用直方图平移的数据嵌入方法,下面对本文数据嵌入算法的时间复杂度分析,并选取同样采用直方图平移嵌入方法的Huang算法和Hou算法作对比.实验运行环境如下:软件系统为Windows10操作系统(家庭中文版)、MATLAB 2016a;硬件配置为Intel® CoreTM i7-8700 CPU@3.2 GHz 3.19 GHz,8.00 GB内存(7.9 GB可用),64 b操作系统.
实验测试图像为大小512×512的pgm灰度图像,采用IJG工具箱[20]压缩,取质量因子为70,80和90,嵌入10 000 b数据,运行时间统计10次求取平均值,实验结果如表3所示.
可以看出,Huang算法运行时间最短,主要原因是Hou算法是通过穷举所有频率的方式求最优解,而Huang算法则是一次求解.本文算法是对Hou算法的改进,在质量因子为70,80和90时的平均运行时间为5.01 s,5.1 s和5.29 s,另外在纹理图像数据嵌入运行时间比平滑图像长,平均运行时间较Hou算法降低71.66%.
Table 3 Comparison of Time Complexity of Data Embedding Algorithms
表3 数据嵌入算法时间复杂度对比 s
ImageQF of Ref [16]QF of Ref [18]QF of Proposed Algorithm708090708090708090Lena0.480.480.4916.3517.1319.334.794.905.03Baboon0.480.490.5018.7120.2220.275.375.615.81Airplane0.470.490.5115.6016.4317.844.884.804.94Man0.480.480.5418.0317.7018.535.005.075.37Average0.480.490.5117.1717.8718.995.015.105.29
本文提出一种基于失真-扩展代价模拟的JPEG图像可逆信息隐藏算法.本文算法的嵌入频率选择策略从图像文件扩展代价方面计算不同频率的单位模拟文件增量并优先选取单位模拟文件增量较小的频率嵌入数据;嵌入块选择时考虑视觉失真问题首先根据每块中零AC系数数量排序,对于具有相同零AC系数数量的块计算其平滑度并重排序,优先选取平滑块嵌入数据.实验结果表明:本文算法在含密图像的文件增量和视觉质量的兼顾性能优于现有算法,有效降低含密图像文件增量的同时保持较高的视觉质量.
[1]Shi Yunqing, Li Xiaolong, Zhang Xinpeng, et al. Reversible data hiding: Advances in the past two decades[J]. IEEE Access, 2016, 4(1): 3210-3237
[2]Ke Yan, Zhang Minqing, Su Tingting. A novel multiple bits reversible data hiding in encrypted domain based on R-LWE[J]. Journal of Computer Research and Development, 2016, 53(10): 2307-2322 (in Chinese)(柯彦, 张敏情, 苏婷婷. 基于R-LWE的密文域多比特可逆信息隐藏算法[J]. 计算机研究与发展, 2016, 53(10): 2307-2322)
[3]Su Wengui, Shen Yulong, Wang Xiang. Two-layer reversible watermarking algorithm using difference expansion[J]. Journal of Computer Research and Development, 2019, 56(7): 1498-1505 (in Chinese)(苏文桂, 沈玉龙, 王祥. 双层差值扩展可逆数字水印算法[J]. 计算机研究与发展, 2019, 56(7): 1498-1505)
[4]Lee Sunil, Yoo C D, Kalker Ton. Reversible image watermarking based on integer-to-integer wavelet transform[J]. IEEE Transactions on Information Forensics and Security, 2007, 2(3): 321-330
[5]Deng Xiaohong, Chen Zhigang, Liang Diqing, et al. Region-based lossless data hiding with high capacity for medical images[J]. Journal on Communications, 2015, 36(1): 189-198 (in Chinese)(邓小鸿, 陈志刚, 梁涤青, 等. 分区域的医学图像高容量无损信息隐藏方法[J]. 通信学报, 2015, 36(1): 189-198)
[6]Wallace G K. The JPEG still picture compression standard[J]. Communications of the ACM, 1991, 34(4): 30-44
[7]Xuan Guorong, Shi Yunqing, Ni Zhicheng, et al. Reversible data hiding for JPEG images based on histogram pairs[C] //Proc of the 4th Int Conf on Image Analysis and Recognition. Berlin: Springer, 2007: 715-727
[8]Sakai H, Kuribayashi M, Morii M. Adaptive reversible data hiding for JPEG images[C] //Proc of 2008 Int Symp on Information Theory and Its Application. Piscataway, NJ: IEEE, 2008: 1-6
[9]Li Qiming, Wu Yongdong, Bao Feng. A reversible data hiding scheme for JPEG images[C] //Proc of the 11th Pacific Rim Conf on Advances in Multimedia Information Processing. Berlin: Springer, 2010: 653-664
[10]Nikolaidis A. Reversible data hiding in JPEG images utilising zero quantised coefficients[J]. IET Image Processing, 2015, 9(7): 560-568
[11]Fridrich J, Goljan M, Du R. Lossless data embedding for all image formats[C] //Proc of Security and Watermarking of Multimedia Contents IV. Bellingham, WA: SPIE, 2002: 572-583
[12]Wang Kan, Lu Zheming, Hu Yongjian. A high capacity lossless data hiding scheme for JPEG images[J]. The Journal of System and Software, 2013, 86(7): 1965-1975
[13]Chen Shuteng, Lin SianJheng, Lin Jachen. Reversible JPEG-based hiding method with high hiding-ratio[J]. International Journal of Pattern Recognition and Artificial Intelligence, 2010, 24(3): 433-456
[14]Mobasseri B G, Berger R J I, Marcinak M P, et al. Data embedding in JPEG bitstream by code mapping[J]. IEEE Transactions on Image Processing, 2010, 19(4): 958-966
[15]Hu Yongjian, Wang Kan, Lu Zheming. An improved VLC-based lossless data hiding scheme for JPEG images[J]. Journal of Systems and Software, 2013, 86(8): 2166-2173
[16]Huang Fangjun, Qu Xiaochao, Kim H J, et al. Reversible data hiding in JPEG images[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2015, 26(9): 1610-1621
[17]Wedaj F T, Kim S, Kim H J, et al. Improved reversible data hiding in JPEG images based on new coefficient selection strategy[J]. Eursip Journal on Image and Video Processing, 2017, 2017: No.63
[18]Hou Dongdong, Wang Haoqian, Zhang Weiming, et al. Reversible data hiding in JPEG image based on DCT frequency and block selection[J]. Signal Processing, 2018, 148(2): 41-47
[19]University of Granada, Computer Vision Group.Miscelaneous gray level images[OL]. [2019-11-28]. http://decsai.ugr.es/cvg/dbimagenes/
[20]Independent jpeg group. jpegsr9b.zip[OL]. [2019-09-15]. http://www.ijg.org