1.一种基于特征块编码的可逆信息隐藏方法,其特征在于,包括如下步骤:
1)确定特征块与特征块的值:选择特征块对图像I进行压缩,压缩时需对位平面进行分块,而每个块都由特征块组成,首先对特征块进行编码,若每个特征块共有n个元素、每个元n素的取值为0或1,有n个元素的特征块共有2个编码,当n>4时编码多,n为奇数时不易构成图像分块,确定特征块的大小为4,结合图像I的平滑和纹理特征,确定5个特征块,特征块构成位平面块时需要特征块平移或者旋转,特征块平移和旋转后与原特征块是同一类型,采用对特征块内元素进行编号,确定特征块内4个元素的先后顺序,特征块中每个元素的取值为0或1,对元素值按照编号的顺序排列,得到从“0000”到“1111”共16个不同序列,每个序列的二进制数为特征块的值,用di(i=0,1,…,15)表示,且0≤di≤15;
2)位平面块的组成:在对位平面进行压缩时,每个位平面块都是由特征块组成,特征块的类型和数量都相同,由于5种类型特征块的大小为4,特征块和平移旋转后的特征块一行或一列最多4个元素,因此位平面块的大小最小为4×4,每个位平面块由4个特征块构成,组成位平面块的特征块类型最多有3种,超过3种类型时无法组成4×4位平面块,假设构成位平面块的4个特征块为B1,B2,B3,B4,位平面块中的特征块的类型数为m,m=1,2,3,每种类型的最大压缩空间为Cm,则:
2‑1)单一类型特征块:由单一类型特征块即m=1组成位平面块共有9种;
2‑2)两种类型特征块:由两种类型特征块即m=2组成4×4位平面块,共有26种组合方式,每个位平面块中每种类型有2个特征块,B1,B2为同一种特征块,B3,B4为同一种特征块;
2‑3)三种类型特征块:当有三种类型特征块即m=3组成4×4位平面块时,共有8种组合方式,每个位平面块中第五种特征块类型有两个特征块,B1,B2为同一种特征块,没有第1种类型特征块,其它类型各为一个特征块;
3)位平面块编码压缩:对图像I中连续λ个高位平面进行分块,得到4×4不重叠的位平面s块,则:
3‑1)当m=1时,位平面块由单一特征块组成,对所有位平面块统计4s个特征块值di的频数h(k),0≤k≤15,则:h(k)=#{0≤k≤15:k=di} (1),
根据h(k)采用哈夫曼编码得到特征块所有值编码T,在对位平面块为压缩时,若块可以压缩用1进行标记,若块不可压缩用0来标记,设单一特征块构成的第μ个位平面块压缩容量为Qμ,1≤μ≤s,位平面块中特征块Bj,j=1,2,3,4在T中对应的编码长度分别为lμ,j,则:Qμ>0时,该位平面块是可压缩块,否则为不可压缩块,设位平面块中有Y个块可压缩,总的压缩空间为Q,则:同理,求出9种由单一特征块构成位平面块的压缩空间,设压缩容量为Q1,Q2,…,Q9,令:t1=argmax(Q1,Q2,...,Q9) (4),由此可得:
3‑2)当m=2时,位平面块由2种特征块组成,B1,B2为同一类型特征块,B3,B4为同一类型特征块,分别统计2s个特征块B1,B2值的频数h1(k)和B3,B4值的频数h2(k),0≤k≤15,根据h1(k)和h2(k)采用哈夫曼编码得到2组独立的编码T1和T2,设由2种特征块构成的第r个位平面
1 1
块压缩容量为Qr,1≤r≤s、位平面块中特征块B1,B2在T1中对应的编码长度为lr,1,lr,2,在
2 2
T2中B3,B4对应的编码长度为lr,1,lr,2,则:
设位平面块中有N个可压缩块,总的压缩空间为D,则
同理,求出26种由2种特征块构成位平面块的压缩空间,设它们压缩容量为D1,D2,…,D26,令:t2=argmax(D1,D2,...,D26) (8),由此可得:
3‑3)当m=3时,位平面块由3种类型特征块构成,B1,B2为同一类型特征块,B3为一类型特征块,B4为一类型特征块,分别统计2s个特征块B1,B2值的频数h1(k),s个特征块B3值的频数h2(k)和s个特征块B4值的频数h3(k),0≤k≤15,根据h1(k),h2(k)和h3(k)通过哈夫曼编码得到3组独立的编码T4和T5和T6;设由3种特征块构成的第v个位平面块压缩容量为Qv,1≤v≤
1 1
s、位平面块中特征块B1,B2在T1中对应的编码长度为lv,1,lv,2,在T2中B3对应的编码长度为
2 3
lv,1,在T3中B4对应的编码长度为lv,1,则:
设位平面块中有p个可压缩块,总的压缩空间为E:
同理,求出8种由三类特征块构成位平面块的压缩空间,设压缩容量为E1,E2,…,E8,令:t3=argmax(E1,E2,...,E8) (12),由此可得:
按照步骤3‑1)‑步骤3‑3)特征块构成方式对连续λ个高位平面块进行压缩,设压缩的最大压缩空间为C,令:mt=argmax(C1,C2,C3) (14),由此可得:
C=Cmt (15);
3‑4)当mt=1时,由单一特征块构成的位平面块压缩空间最大,在这9种由单一特征块构成方式中,由公式(4)和公式(5)知第t1种单一特征块构成的方式取得压缩空间最大值;
3‑5)当mt=2时,由2种特征块构成的位平面块压缩空间最大,通过公式(8)和公式(9)得采用由2种特征块构成位平面的第t2种方法压缩;
3‑6)当mt=3时,通过公式(12)和公式(13)得采用由3种特征块构成位平面的第t3种方式压缩,得到最大的压缩空间隐藏信息;
4)基于位平面块编码压缩的可逆信息隐藏:对图像I连续λ个高位平面按不同的特征块构成编码对位平面块进行压缩,得到最大压缩空间,根据最大压缩空间得到mt的值,根据mt的值得位平面的构成类型方式和与之对应的压缩编码表,采用一维数组Tag记录块是否可以压缩,seq记录对应的数据,过程为:
4‑1)若位平面块为可压缩块,将1存储Tag中:
4‑1‑1)当mt=1时,采用第t1种单一特征块构成的方式进行压缩,根据B1,B2,B3,B4的值,从单一特征块码表T中得到B1,B2,B3,B4对应编码;
4‑1‑2)当mt=2时,采用第t2种由2类征块构成的方式进行压缩,从码表T1中得到B1,B2的编码,从T2中得到B3,B4的编码;
4‑1‑3)当mt=3时,采用第t3种由3类征块构成的方式进行压缩,从码表T3中得到B1,B2的编码,从T4中得到B3的编码,从T5中得到B4的编码,将B1,B2,B3,B4的编码按顺序组合起来得到块的压缩编码,依次保存在seq中;
4‑2)若位平面块为不可压缩块,将0存储Tag,对位平面块中的数据,按从左到右从上到下的顺序扫描,依次存储在seq中;
4‑3)将秘密信息与辅助信息存储在冗余空间中,具体为:
4‑3‑1)按照顺序扫描λ个高位平面所有的块,若为可压缩块,将1存储Tag中,将B1,B2,B3,B4编码按顺序存储seq中,否则将0存储Tag中,将位平面块中的原始数据存储在seq中;
4‑3‑2)将Tag和seq拼接起来,得到压缩数据RD;
4‑3‑3)Tag和seq的长度、压缩码表长度和压缩码表,嵌入秘密信息长度,作为辅助信息;
4‑3‑4)在连续λ个高位平面中,首先嵌入辅助信息长度和辅助信息,然后嵌入位平面压缩数据RD,最后嵌入秘密信息,高位平面λ的值,取得最大压缩空间的类型mt和构成位平面的压缩方式t1,t2,或t3作为密钥传输;
5)秘密信息提取与图像恢复:在图像I连续λ个高位平面提取辅助信息,得到压缩数据RD、Tag和seq的长度、压缩码表长度与压缩码表、秘密信息长度,特征块构成位平面的编码方式,通过压缩数据RD得到块标识Tag、压缩编码seq,按隐藏顺序根据Tag中的数据得到块标识,若块标识为1,则为可压缩块:
5‑1)当mt=1时,只有1个码表T,从seq提取B1,B2,B3,B4的编码,根据码表得4个特征块的值,根据t1的值得到单一特征块位平面构成方式,由单一特征块位平面构成方式与特征块的值恢复位平面块中的原始数据;
5‑2)当mt=2时,有2个码表T1,T2,从seq提取B1,B2的编码,根据码表T1可得B1,B2的值,从seq提取B3,B4的编码,根据码表T2可得B3,B4的值,根据t2的值得到两类特征块位平面构成方式,由两类特征块位平面构成方式与特征块的值恢复位平面块中的原始数据;
5‑3)当mt=3时,有3个码表T3,T4,T5,从seq提取B1,B2的编码,根据码表T3得B1,B2的值,从seq提取B3的编码,根据码表T4得B3的值,从seq提取B4的编码,根据码表T5得B4的值,根据t3的值得到三类特征块位平面构成方式,由三类特征块位平面构成方式与特征块的值恢复位平面块中的原始数据;
5‑4)若块标识为0,则为不可压缩块,从seq中直接提取16个二进制数据按照从左往右,从上往下的顺序恢复块中的原始数据,得到原始图像,通过Tag和seq的长度、压缩码表长度和压缩码表确定嵌入秘密信息的位置、根据嵌入秘密信息的长度,提取嵌入的秘密信息。