CN110881128B - 一种jpeg图像可逆数据隐藏方法 - Google Patents

一种jpeg图像可逆数据隐藏方法 Download PDF

Info

Publication number
CN110881128B
CN110881128B CN201911180183.9A CN201911180183A CN110881128B CN 110881128 B CN110881128 B CN 110881128B CN 201911180183 A CN201911180183 A CN 201911180183A CN 110881128 B CN110881128 B CN 110881128B
Authority
CN
China
Prior art keywords
data
image
jpeg image
embedding
value
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.)
Active
Application number
CN201911180183.9A
Other languages
English (en)
Other versions
CN110881128A (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.)
South China University of Technology SCUT
Original Assignee
South China University of Technology SCUT
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 South China University of Technology SCUT filed Critical South China University of Technology SCUT
Priority to CN201911180183.9A priority Critical patent/CN110881128B/zh
Publication of CN110881128A publication Critical patent/CN110881128A/zh
Application granted granted Critical
Publication of CN110881128B publication Critical patent/CN110881128B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • H04N19/467Embedding additional information in the video signal during the compression process characterised by the embedded information being invisible, e.g. watermarking
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/146Data rate or code amount at the encoder output
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/154Measured or subjectively estimated visual quality after decoding, e.g. measurement of distortion

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本发明公开了一种JPEG图像可逆数据隐藏方法,包括步骤:输入一幅JPEG图像,解析该JPEG图像的比特流,读取量化表,得到BITS和HUFFVAL两个序列,解析出JPEG图像量化DCT系数值的集合;计算各个频率位置的AC系数被选中用于嵌入时的均方差;计算哈夫曼码字长度增长表;计算各个频率位置嵌入时文件体积增长大小;计算各个频率位置的AC系数中绝对值为1的数量;计算每个数据比特的平均图像视觉失真值和平均文件大小变化值;计算每个频率位置的负指标,并对对应频率位置进行升序排列;根据零值AC系数数量对DCT块进行升序排列;综合上述排列序列挑选DCT块进行数据嵌入。本发明可减少图像视觉失真和熵编码比特流增加的数量,从而达到优化载密JPEG图像质量和文件大小的目的。

Description

一种JPEG图像可逆数据隐藏方法
技术领域
本发明涉及多媒体信息安全技术领域,特别涉及一种JPEG图像可逆数据隐藏方法。
背景技术
JPEG图像是一种有损图像压缩格式,具有高压缩率和高保真的特征,在互联网中应用广泛。JPEG图像可逆数据隐藏技术利用人的视觉冗余和图像的数据冗余,可以把秘密信息隐藏在JPEG图像中而不被他人觉察。隐藏了秘密信息的JPEG图像称为载密JPEG图像,秘密信息可以从载密JPEG图像中完整地提取出来,提取秘密信息后载密JPEG图像可以无损地恢复到原JPEG图像。JPEG图像可逆数据隐藏技术可以应用在军事图像和医学图像中,具有重要的实用价值。
Wedaj等人提出的基于DCT系数选择策略的JPEG图像可逆数据隐藏方法(F.T.Wedaj,S.Kim,H.J.Kim,and F.Huang,“Improved Reversible DataHiding in JPEGImages Based on New Coefficient Selection Strategy,”EURASIP Journal on Imageand Video Processing,vol.2017,no.1,p.63,2017)和Hou等人提出的基于DCT频率选择策略和DCT块选择策略的JPEG图像可逆数据隐藏方法(D.Hou,H.Wang,W.Zhang,and N.Yu,“Reversible data hiding in JPEGimage based on DCT frequency and blockselection,”Signal Processing,vol.148,pp.41–47,2018)都是一种优化载密JPEG图像视觉质量的方法,存在载密JPEG图像文件大小增加明显的问题。
发明内容
本发明的目的在于克服现有技术的缺点与不足,提供一种JPEG图像可逆数据隐藏方法,此方法可尽可能减少熵编码比特流增加的数量,从而达到优化载密JPEG图像文件大小的目的。
本发明的目的通过以下的技术方案实现:一种JPEG图像可逆数据隐藏方法,包括步骤:
步骤一:输入一幅JPEG图像,解析该JPEG图像的比特流,从JPEG图像的头部DHT部分读取量化表Q,得到BITS和HUFFVAL两个序列,读取DCT系数的熵编码比特流,解析出JPEG图像从左到右,从上到下排序的第i个块中量化DCT系数值di(u,v)的集合Di={di(u,v)};
步骤二:根据量化表中的条目q(u,v)计算当前频率位置(u,v)的AC系数被选中用于嵌入时的均方差E(u,v):
Figure GDA0002785759300000021
其中,N表示图像中块的数量;
步骤三:根据JPEG标准协议,由BITS和HUFFVAL计算得到R/C哈夫曼码字长度表hclt,hclt表中包含熵编码所有中间符号R/C需要的哈夫曼码字长度,基于R/C哈夫曼码字长度表整理得到哈夫曼码字长度增长表hcit;
步骤四:根据hcit表和量化DCT系数值dj(u,v),将因为第j块中频率位置为(u,v)的AC系数增加了1而造成C增加1时文件体积增长大小记为Sj(u,v),其对应的两个中间符号记为(rj(u,v)/cj(u,v),dj(u,v)):
Figure GDA0002785759300000022
则当所有频率位置为(u,v)的AC系数被选中用于数据嵌入时的文件大小变化S(u,v)为:
Figure GDA0002785759300000023
其中,ω为权值参数,有:
Figure GDA0002785759300000031
步骤五:计算频率位置为的(u,v)的AC系数中绝对值为1的数量L(u,v):
Figure GDA0002785759300000032
其中,δ为权值参数,有:
Figure GDA0002785759300000033
则每个数据比特的平均图像视觉失真值Ud(u,v)和平均文件大小变化值Uf(u,v):
Figure GDA0002785759300000034
Figure GDA0002785759300000035
步骤六:计算每个频率位置的负指标Neg(u,v),并根据Neg(u,v)值对63个频率位置进行升序排列;
具体的,赋予每个数据比特平均图像视觉失真值和平均文件大小变化值在不同频率位置的权重,则当前频率位置负指标
Figure GDA0002785759300000036
Figure GDA0002785759300000037
其中,Ud(u,v)、Uf(u,v)分别表示每个数据比特的平均图像视觉失真值和平均文件大小变化值,
Figure GDA0002785759300000038
分别表示当前频率位置的图像视觉失真值和文件大小变化值,max{Ud(u,v)}和min{Ud(u,v)}分别表示Ud(u,v)的最大和最小值,max{Uf(u,v)}和min{Uf(u,v)}分别表示Uf(u,v)的最大和最小值,α(0≤α≤1)为权重参数;
根据Neg(u,v)值对63个频率位置进行升序排列;
步骤七、根据步骤六得到的频率位置顺序进行数据嵌入。
优选的,在所述步骤六得到DCT块频率位置排列顺序后,再根据Di中零值AC系数的数量的多少对DCT块进行第二次升序排列;在数据嵌入时,根据排列后的频率位置及DCT块顺序进行数据嵌入。
更进一步的,从步骤六中得到的频率位置排序序列按顺序挑选前k个频率位置,1≤k≤63,k取使得在所有块中被选中的k个频率位置对应的参数能够提供不少于要嵌入数据长度的嵌入容量的最小值。
更进一步的,从第二次升序排列中得到的DCT块排序序列按顺序挑选尽可能少的块,使得数据能够嵌入到这些块中被选中的k频率位置的非零AC系数处。
更进一步的,令k=k+1,并重复五至七以及DCT块排列,直到k=63,将能够使得出现最小图像失真和最小文件尺寸增长的k值和对应块的数量分别记为
Figure GDA0002785759300000041
Figure GDA0002785759300000042
令run=1,将数据嵌入到被选中的
Figure GDA0002785759300000043
个块中被选中的
Figure GDA0002785759300000044
个频率位置,且游程长度等于run的非零AC系数中,如果遍历完所有选中块后还有数据待嵌入,则令run=run+1并重复该过程,直到所有数据能够被嵌入,记该过程中最后一个游程长度为
Figure GDA0002785759300000045
将嵌入修改后的量化DCT系数根据JPEG标准协议熵编码获得载密JPEG图像,并将
Figure GDA0002785759300000046
个被选中的频率位置映射和6-bit的
Figure GDA0002785759300000047
以及数据长度一起嵌入到载密JPEG图像的头部。
优选的,数据嵌入后造成的数据失真使用峰值信噪比PSNR来测量,数据嵌入前后的两幅灰度图的PSNR定义公式(1)-(2)所示,其中E表示均方差MSE,Pi={pi(x,y)}和P′i={p′i(x,y)}分别表示嵌入前后图像中第i块中的像素,‖·‖F表示矩阵的Frobenius范数:
PSNR=10log10(2552/E) (1)
Figure GDA0002785759300000051
令Di={di(u,v)}和
Figure GDA0002785759300000052
分别表示图像中从左到右,从上到下排序的第i个块中量化和反量化DCT系数的集合,而D′i={d′i(u,v)}和
Figure GDA0002785759300000053
则分别表示Di
Figure GDA0002785759300000054
在原图像嵌入完成后生成的载密图像中的对应部分,AT是DCT转换矩阵A={a(m,n)}的转置矩阵,根据逆离散余弦变换IDCT的矩阵形式,可将Pi和P′i表示为:
Figure GDA0002785759300000055
Figure GDA0002785759300000056
Figure GDA0002785759300000057
假设第j块中频率位置
Figure GDA0002785759300000058
的量化AC系数在数据嵌入的过程中增加或减少了1,即
Figure GDA0002785759300000059
那么反量化AC系数满足以下公式,其中q(u,v)表示图像量化表Q中第u行第v列的条目:
Figure GDA00027857593000000510
将公式(3)(4)代入公式(2),再根据公式(6)得到:
Figure GDA00027857593000000511
优选的,在熵编码过程中,将中间符号(R/C,V)中的游程长度扩展至[0,62]。
优选的,所述步骤三具体为:
对于每个哈夫曼码字长度i,获取对应BITS中记录的数量的HUFFVAL值,即哈夫曼码字长度为i的Li个HUFFVAL值Vi,j,并根据Vi,j得到对应的R/C;如果C为0,则跳过;如果C不为0,则将i记录在hclt表中对应的[R,C]位置(即是将i写进表中第R行第C列),由此得到每个R/C的哈夫曼码字长度,进而整理得到hclt表;
根据得到的hclt表计算各个位置当C+1时带来的比特数增长量,并整理得到哈夫曼码字长度增长表hcit。
本发明与现有技术相比,具有如下优点和有益效果:
1、本发明在数据隐藏过程中尽可能减少熵编码比特流增加的数量,从而达到优化载密JPEG图像文件大小的目的。
2、本发明充分考虑了数据隐藏过程中对DCT系数的修改会造成的熵编码大小变化新情况,通过统计和求平均值来估计每个频率位置的文件大小增加系数,以选择更优的频率位置进行数据隐藏。
3、本发明通过与直方图平移法结合,可有效降低载密JPEG图像文件大小增加的幅度。
附图说明
图1为本发明实施例一种JPEG图像可逆数据隐藏方法总流程图。
图2为本发明实施例从一幅JPEG图像头部DHT部分中的数据计算哈夫曼码字长度增长表hcit的过程示例图。
具体实施方式
为了更好的理解本发明的技术方案,下面结合附图详细描述本发明提供的实施例,但本发明的实施方式不限于此。
本发明实施例通过提供一种JPEG图像可逆数据隐藏方法,解决了在数据隐藏过程中造成的图像视觉失真和文件大小过大的问题。
首先需要说明的是,在本发明各个实施例中,所提及的术语为:
熵编码:又叫熵保存编码、信息保持编码、无失真压缩编码,要求编码输出码字的平均码长,只能大于等于信源熵,若不满足这个条件,在信源编码的过程中就要丢失信息,所以信源熵是无失真信源编码,输出码字平均码长的下限。
DCT:离散余弦变换(discrete cosine transform),为一种图像压缩算法,一般先将图像分割成8×8的小块,再对每个小块进行DCT变换,图像通过DCT变换后DCT系数能量主要集中在左上角,即低频区域。右下角的高频系数一般保存的是图像的边界、纹理信息,低频信息主要是保存的图像中平坦区域信息。
图像比特流:图像信息经过编码后形成一串数据比特序列,在图像传输、存储等过程中使用。
哈夫曼码表:通过构造哈夫曼树,获得平均长度最短的码字,
DCT系数:图像通过DCT变换后生成一个8×8的矩阵,矩阵左上角第一个系数称为DCT的DC系数,其余63个系数称为AC系数。
频率位置:DCT系数矩阵中的横竖坐标(x,y),如DC系数的频率位置为(0,0)。
Zigzag顺序:在8×8DCT系数块中,量化后系数经过锯齿形扫描,并排成一个串行数据序列。
实施例
如图1-2所示,一种JPEG图像可逆数据隐藏方法,具体步骤如下:
步骤一:输入一幅JPEG图像,解析该JPEG图像的比特流,从JPEG头部DHT(分布式哈希表)部分读取得到量化表Q、以及AC哈夫曼码表中的两个的序列BITS和HUFFVAL,然后从熵编码数据段读取DCT系数的熵编码比特流。解析出JPEG图像的DCT系数块Di
步骤二:数据嵌入后造成的数据失真使用峰值信噪比PSNR来测量,嵌入前后的两幅灰度图的PSNR定义公式(1)-(2)所示,其中E表示均方差MSE,Pi={pi(x,y)}和P′i={p′i(x,y)}分别表示嵌入前后图像中第i块中的像素,‖·‖F表示矩阵的Frobenius范数:
PSNR=10log10(2552/E) (1)
Figure GDA0002785759300000081
令Di={di(u,v)}和
Figure GDA0002785759300000082
分别表示图像中从左到右,从上到下排序的第i个块中量化和反量化DCT系数的集合,而D′i={d′i(u,v)}和
Figure GDA0002785759300000083
则分别表示Di
Figure GDA0002785759300000084
在原图像嵌入完成后生成的载密图像中的对应部分,AT是DCT转换矩阵A={a(m,n)}的转置矩阵,根据逆离散余弦变换IDCT的矩阵形式,可将Pi和P′i表示为:
Figure GDA0002785759300000085
Figure GDA0002785759300000086
Figure GDA0002785759300000087
假设第j块中频率位置
Figure GDA0002785759300000088
的量化AC系数在数据嵌入的过程中增加或减少了1,即
Figure GDA0002785759300000089
那么反量化AC系数满足以下公式,其中q(u,v)表示图像量化表Q中第u行第v列的条目:
Figure GDA00027857593000000810
将公式(3)(4)代入公式(2),再根据公式(6)得到:
Figure GDA0002785759300000091
由该公式可知,
Figure GDA0002785759300000092
只决定于量化表中对应被改变的AC系数频率位置的条目平方,因此为了减少嵌入过程载密图像的图像视觉失真,数据应该尽量嵌入到有着更小量化步长的频率位置的量化AC系数处。
因此,可直接根据量化表中的条目q(u,v)计算所有频率位置(u,v)的AC系数被选中用于嵌入时的均方差E(u,v):
Figure GDA0002785759300000093
其中,N表示图像中块的数量;
步骤三:对于不同幅值的非零AC系数,在JPEG标准协议中规定了类别和VLI码字的分配,当非零AC系数在数据嵌入过程中被修改成其他值,对应的哈夫曼和VLI码字可能也会相应地发生改变,这有可能造成载密图像的文件大小发生改变。对于每个哈夫曼码字长度i(i=1,2,…,16),获取对应BITS中记录的数量的HUFFVAL值,即哈夫曼码字长度为i的Li个HUFFVAL值Vi,j,并根据Vi,j得到对应的R/C;如果C为0,则跳过;如果C不为0,则将i记录在hclt表中对应的[R,C]位置,由此得到每个R/C的哈夫曼码字长度,进而整理得到hclt表;根据得到的hclt表计算各个位置当C+1时带来的比特数增长量,并整理得到哈夫曼码字长度增长表hcit。如图2中的(a)所示,根据JPEG标准协议可知,第一部分为DHT标记,第二部分为DHT长度,第三部分为表类和标识符,第四部分为BITS序列,第五部分为HUFFVAL序列。一共解析出162个R/C符号,他们对应的哈夫曼码字长度如图2中的(b)所示,最终每个R/C符号中当C增加1而造成哈夫曼码字长度增长表hcit如图2中的(c)所示。
步骤四:根据hcit表和量化DCT系数值dj(u,v),将因为第j块中频率位置为(u,v)的AC系数增加了1而造成C增加1时文件体积增长大小记为Sj(u,v),其对应的两个中间符号记为(rj(u,v)/cj(u,v),dj(u,v));其中rj(u,v)∈{0,1,…,62},cj(u,v)∈{1,2,…,9},一般熵编码过程中,(R/C,V)中的游程长度会被限定不大于15,但是事实上很多非零AC系数的游程会超过15,因此本方法中将(R/C,V)中的游程长度扩展至[0,62],在数据嵌入过程中优先嵌入到长游程的非零AC系数中,因为在量化表中,DCT块中右下角部分一般拥有较大量化步长,这样可以尽量避免修改这部分非零AC系数,减少图像质量失真:
Figure GDA0002785759300000101
则当所有频率位置为(u,v)的AC系数被选中用于数据嵌入时的文件大小变化S(u,v)为:
Figure GDA0002785759300000102
其中,ω为权值参数,在嵌入过程中,如果dj(u,v)=0,那么嵌入后其值不会改变;如果|dj(u,v)|=1,该AC系数会用来嵌入数据,当嵌入比特0时,其值不会改变,当嵌入比特1时,|d′j(u,v)|=|dj(u,v)|+1;如果|dj(u,v)|>1,那么在嵌入前需要进行|d′j(u,v)|=|dj(u,v)|+1操作,故ω有:
Figure GDA0002785759300000103
步骤五:计算频率位置为的(u,v)的AC系数中绝对值为1的数量L(u,v):
Figure GDA0002785759300000104
其中,δ为权值参数,有:
Figure GDA0002785759300000111
则每个数据比特的平均图像视觉失真值Ud(u,v)和平均文件大小变化值Uf(u,v):
Figure GDA0002785759300000112
Figure GDA0002785759300000113
步骤六:计算(u,v)∈{(0,1),…,(0,7),(1,0),…,(1,7),…(7,0),…,(7,7)}中的Ud(u,v)、Uf(u,v),得到4个最值max{Ud(u,v)}、max{Uf(u,v)}和min{Ud(u,v)}、min{Uf(u,v)},并根据需求自行选择权重系数α,计算每个频率位置的负指标Neg(u,v),并根据Neg(u,v)值对63个频率位置进行升序排列;
具体的,赋予每个数据比特平均图像视觉失真值和平均文件大小变化值在不同频率位置的权重,则当前频率位置负指标
Figure GDA0002785759300000114
Figure GDA0002785759300000115
其中,Ud(u,v)、Uf(u,v)分别表示每个数据比特的平均图像视觉失真值和平均文件大小变化值,
Figure GDA0002785759300000116
分别表示当前频率位置的图像视觉失真值和文件大小变化值,max{Ud(u,v)}和min{Ud(u,v)}分别表示Ud(u,v)的最大和最小值,max{Uf(u,v)}和min{Uf(u,v)}分别表示Uf(u,v)的最大和最小值,α(0≤α≤1)为权重参数;
步骤七、根据Neg(u,v)值对63个频率位置进行升序排列;
步骤八:根据Di中零值AC系数的数量的多少对DCT块进行升序排列。
步骤九:从步骤七中得到的频率位置排序序列按顺序挑选前k个频率位置,1≤k≤63,使得在所有块中被选中的k个频率位置对应的参数能够提供不少于要嵌入数据长度的嵌入容量,并保证k尽可能小。
步骤十:根据选中的k个频率位置和要嵌入数据的长度,从步骤八中得到的DCT块排序序列按顺序挑选尽可能少的块,然后将数据嵌入到这些块中被选中的k频率位置的非零AC系数处。实际情况中可以先根据频率位置排序进行嵌入后根据DCT块排序进行嵌入,也可以先根据DCT块排序进行嵌入后根据频率位置排序进行嵌入。
步骤十一:令k=k+1,并重复步骤九至步骤十一直到k=63,能够使得出现最小图像失真和最小文件尺寸增长的k值和对应块的数量分别记为
Figure GDA0002785759300000121
Figure GDA0002785759300000122
步骤十二:令run=1,将数据比特b嵌入到被选中的
Figure GDA0002785759300000123
个块中被选中的
Figure GDA0002785759300000124
个频率位置且游程长度等于run的非零AC系数中:
Figure GDA0002785759300000125
Figure GDA0002785759300000126
如果遍历完所有选中块后还有数据待嵌入,则令run=run+1并重复该过程,直到所有数据能够被嵌入,记该过程中最后一个游程长度为
Figure GDA0002785759300000127
步骤十三:将嵌入修改后的量化DCT系数根据JPEG标准协议熵编码获得载密JPEG图像,并将
Figure GDA0002785759300000128
个被选中的频率位置映射和6-bit的
Figure GDA0002785759300000129
以及数据长度一起嵌入到载密JPEG图像的头部。
上述实施例为本发明较佳的实施方式,但本发明的实施方式并不受上述实施例的限制,其他的任何未背离本发明的精神实质与原理下所作的改变、修饰、替代、组合、简化,均应为等效的置换方式,都包含在本发明的保护范围之内。

Claims (7)

1.一种JPEG图像可逆数据隐藏方法,其特征在于,包括步骤:
步骤一:输入一幅JPEG图像,解析该JPEG图像的比特流,从JPEG图像的头部DHT部分读取量化表Q,得到BITS和HUFFVAL两个序列,读取DCT系数的熵编码比特流,解析出JPEG图像从左到右,从上到下排序的第i个块中量化DCT系数值di(u,v)的集合Di={di(u,v)};
步骤二:根据量化表中的条目q(u,v)计算当前频率位置(u,v)的AC系数被选中用于嵌入时的均方差E(u,v):
Figure FDA0002785759290000011
其中,N表示图像中块的数量;
步骤三:根据JPEG标准协议,由BITS和HUFFVAL计算得到R/C哈夫曼码字长度表hclt,hclt表中包含熵编码所有中间符号R/C需要的哈夫曼码字长度,基于R/C哈夫曼码字长度表整理得到哈夫曼码字长度增长表hcit;具体为:
对于每个哈夫曼码字长度i,获取对应BITS中记录的数量的HUFFVAL值,即哈夫曼码字长度为i的Li个HUFFVAL值Vi,j,并根据Vi,j得到对应的R/C;如果C为0,则跳过;如果C不为0,则将i记录在hclt表中对应的[R,C]位置,由此得到每个R/C的哈夫曼码字长度,进而整理得到hclt表;
根据得到的hclt表计算各个位置当C+1时带来的比特数增长量,并整理得到哈夫曼码字长度增长表hcit;
步骤四:根据hcit表和量化DCT系数值dj(u,v),将因为第j块中频率位置为(u,v)的AC系数增加了1而造成C增加1时文件体积增长大小记为Sj(u,v),其对应的两个中间符号记为(rj(u,v)/cj(u,v),dj(u,v)):
Figure FDA0002785759290000012
则当所有频率位置为(u,v)的AC系数被选中用于数据嵌入时的文件大小变化S(u,v)为:
Figure FDA0002785759290000021
其中,ω为权值参数,有:
Figure FDA0002785759290000022
步骤五:计算频率位置为(u,v)的AC系数中绝对值为1的数量L(u,v):
Figure FDA0002785759290000023
其中,δ为权值参数,有:
Figure FDA0002785759290000024
则每个数据比特的平均图像视觉失真值Ud(u,v)和平均文件大小变化值Uf(u,v):
Figure FDA0002785759290000025
Figure FDA0002785759290000026
步骤六:计算每个频率位置的负指标Neg(u,v),并根据Neg(u,v)值对63个频率位置进行升序排列;
具体的,赋予每个数据比特平均图像视觉失真值和平均文件大小变化值在不同频率位置的权重,则当前频率位置负指标
Figure FDA0002785759290000027
Figure FDA0002785759290000028
其中,Ud(u,v)、Uf(u,v)分别表示每个数据比特的平均图像视觉失真值和平均文件大小变化值,
Figure FDA0002785759290000029
分别表示当前频率位置的图像视觉失真值和文件大小变化值,max{Ud(u,v)}和min{Ud(u,v)}分别表示Ud(u,v)的最大和最小值,max{Uf(u,v)}和min{Uf(u,v)}分别表示Uf(u,v)的最大和最小值,α(0≤α≤1)为权重参数;
根据Neg(u,v)值对63个频率位置进行升序排列;
步骤七、根据步骤六得到的频率位置顺序进行数据嵌入;具体地:从步骤六中得到的频率位置排序序列按顺序挑选前k个频率位置,1≤k≤63,k取使得在所有块中被选中的k个频率位置对应的参数能够提供不少于要嵌入数据长度的嵌入容量的最小值,并保证k尽可能小。
2.根据权利要求1所述的JPEG图像可逆数据隐藏方法,其特征在于,在所述步骤六得到DCT块频率位置排列顺序后,再根据Di中零值AC系数的数量的多少对DCT块进行第二次升序排列;在数据嵌入时,根据排列后的频率位置及DCT块顺序进行数据嵌入。
3.根据权利要求1所述的JPEG图像可逆数据隐藏方法,其特征在于,从第二次升序排列中得到的DCT块排序序列按顺序挑选尽可能少的块,使得数据能够嵌入到这些块中被选中的k频率位置的非零AC系数处。
4.根据权利要求3所述的JPEG图像可逆数据隐藏方法,其特征在于,令k=k+1,并重复步骤五至七以及DCT块排列,直到k=63,将能够使得出现最小图像失真和最小文件尺寸增长的k值和对应块的数量分别记为
Figure FDA0002785759290000036
Figure FDA0002785759290000037
令run=1,将数据嵌入到被选中的
Figure FDA0002785759290000039
个块中被选中的
Figure FDA0002785759290000038
个频率位置,且游程长度等于run的非零AC系数中,如果遍历完所有选中块后还有数据待嵌入,则令run=run+1并重复该过程,直到所有数据能够被嵌入,记该过程中最后一个游程长度为
Figure FDA0002785759290000031
将嵌入修改后的量化DCT系数根据JPEG标准协议熵编码获得载密JPEG图像,并将
Figure FDA0002785759290000032
个被选中的频率位置映射和6-bit的
Figure FDA0002785759290000033
以及数据长度一起嵌入到载密JPEG图像的头部。
5.根据权利要求3所述的JPEG图像可逆数据隐藏方法,其特征在于,所述将数据嵌入到被选中的
Figure FDA0002785759290000034
个块中被选中的
Figure FDA0002785759290000035
个频率位置为通过直方图平移法。
6.根据权利要求1所述的JPEG图像可逆数据隐藏方法,其特征在于,数据嵌入后造成的数据失真使用峰值信噪比PSNR来测量,数据嵌入前后的两幅灰度图的PSNR定义公式(1)-(2)所示,其中E表示均方差MSE,Pi={pi(x,y)}和P′i={p′i(x,y)}分别表示嵌入前后图像中第i块中的像素,||·||F表示矩阵的Frobenius范数:
PSNR=10log10(2552/E) (1)
Figure FDA0002785759290000041
令Di={di(u,v)}和
Figure FDA0002785759290000042
分别表示图像中从左到右,从上到下排序的第i个块中量化和反量化DCT系数的集合,而D′i={d′i(u,v)}和
Figure FDA0002785759290000043
则分别表示Di
Figure FDA0002785759290000044
在原图像嵌入完成后生成的载密图像中的对应部分,AT是DCT转换矩阵A={a(m,n)}的转置矩阵,根据逆离散余弦变换IDCT的矩阵形式,可将Pi和P′i表示为:
Figure FDA0002785759290000045
Figure FDA0002785759290000046
Figure FDA0002785759290000047
假设第j块中频率位置
Figure FDA0002785759290000048
的量化AC系数在数据嵌入的过程中增加或减少了1,即
Figure FDA0002785759290000049
那么反量化AC系数满足以下公式,其中q(u,v)表示图像量化表Q中第u行第v列的条目:
Figure FDA00027857592900000410
将公式(3)(4)代入公式(2),再根据公式(6)得到:
Figure FDA00027857592900000411
7.根据权利要求1所述的JPEG图像可逆数据隐藏方法,其特征在于,在熵编码过程中,将中间符号(R/C,V)中的游程长度扩展至[0,62]。
CN201911180183.9A 2019-11-27 2019-11-27 一种jpeg图像可逆数据隐藏方法 Active CN110881128B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911180183.9A CN110881128B (zh) 2019-11-27 2019-11-27 一种jpeg图像可逆数据隐藏方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911180183.9A CN110881128B (zh) 2019-11-27 2019-11-27 一种jpeg图像可逆数据隐藏方法

Publications (2)

Publication Number Publication Date
CN110881128A CN110881128A (zh) 2020-03-13
CN110881128B true CN110881128B (zh) 2021-01-19

Family

ID=69729718

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911180183.9A Active CN110881128B (zh) 2019-11-27 2019-11-27 一种jpeg图像可逆数据隐藏方法

Country Status (1)

Country Link
CN (1) CN110881128B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111756950B (zh) * 2020-06-17 2022-06-24 绍兴聚量数据技术有限公司 基于跳跃序列的面向jpeg的可逆信息隐藏方法
CN113034334B (zh) * 2021-03-22 2023-07-14 绍兴聚量数据技术有限公司 联合JPEG和Huffman编码的加密图像可逆信息隐藏方法、装置
CN113676616B (zh) * 2021-08-24 2023-06-06 齐鲁工业大学 基于dct系数相关性的图像可逆信息隐藏方法及系统
CN114866657B (zh) * 2022-03-09 2023-06-13 西南交通大学 选择明文安全且密文图像文件大小减小的jpeg图像加密方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6898323B2 (en) * 2001-02-15 2005-05-24 Ricoh Company, Ltd. Memory usage scheme for performing wavelet processing
CN101572819B (zh) * 2009-06-03 2011-09-14 北京航空航天大学 一种基于量化dct系数零值索引的可逆图像水印方法
CN106127667B (zh) * 2016-06-13 2019-05-17 天津大学 一种jpeg图像自适应隐写方法
CN109151486B (zh) * 2018-09-06 2020-10-09 西南交通大学 Jpeg图像比特流加密域可逆数据隐藏方法
CN109361926B (zh) * 2018-11-27 2020-04-28 华南理工大学 H.264/avc视频视觉质量无损可逆信息隐藏方法

Also Published As

Publication number Publication date
CN110881128A (zh) 2020-03-13

Similar Documents

Publication Publication Date Title
CN110881128B (zh) 一种jpeg图像可逆数据隐藏方法
US7848580B2 (en) Image encoding method, image decoding method, moving-image compression method, moving-image expansion method, image encoding program, image decoding device, image encoding device, image encoding/decoding system, and extended image compression/expansion system
JP5107495B2 (ja) 品質ベースのイメージ圧縮
JP4365957B2 (ja) 画像処理方法及びその装置及び記憶媒体
KR100880039B1 (ko) 웨이블릿 기반 이미지 코덱에서의 부호화 이득을 달성하는방법 및 시스템
US8873871B2 (en) Image processing apparatus and method
CN110933438B (zh) 一种jpeg图像可逆信息隐藏方法
US8213727B2 (en) Image encoding apparatus and image decoding apparatus, and control method thereof
JP2004531995A5 (zh)
JP5935695B2 (ja) 埋め込みグラフィック符号化:並列復号に向けて並べ替えられたビットストリーム
JP3948619B2 (ja) 画像圧縮装置、画像圧縮方法、プログラム及び記録媒体
KR101346942B1 (ko) 벡터 임베디드 그래픽 코딩
CN109951614B (zh) 基于jpeg图像的自适应可逆信息隐藏方法
CN114143557B (zh) 一种针对视频图像小波变换高频系数的低复杂度编码方法
US8873878B2 (en) Image processing apparatus and method with reduced processing load
JP4215269B2 (ja) 領域ベースのスケーラブルな画像コーディング
KR20150041963A (ko) Ac 계수를 이용한 jpeg 압축 이미지의 워터마크 삽입 및 추출 방법
CN108024114B (zh) 一种基于标志位参数修改的大容量无损hevc信息隐藏方法
CN108683921A (zh) 一种基于零量化dct系数组的视频可逆信息隐藏方法
JP2003204436A (ja) 画像符号化装置及び画像符号化プログラム
CN114598887A (zh) 一种控制比特率增加的抗重压缩视频水印方法
George et al. A novel approach for image compression using zero tree coding
JP4737665B2 (ja) 符号処理装置、符号処理方法、プログラム及び情報記録媒体
JP4919213B2 (ja) 電子透かし挿入方式および検出方式
KR100930186B1 (ko) 압축영상 내 정보 삽입 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant