一种基于直方图移位的可逆数据隐藏方法及装置与流程

文档序号:29252238发布日期:2022-03-16 10:04阅读:245来源:国知局
一种基于直方图移位的可逆数据隐藏方法及装置与流程

1.本技术涉及数据处理技术领域,尤其涉及一种基于直方图移位的可逆数据隐藏方法及装置。


背景技术:

2.随着隐私保护意识的加强,银行在处理业务时客户信息的保护和系统的生产环境中隐私数据的隐藏也受到银行业的重视。私密信息或密钥绝对不满足于以明文的方式进行网络中的传输和终端上的存储,这些私密信息或密钥需要进行加密或隐藏处理。
3.随着数字图片的广泛使用,目前常基于图片(joint photographic experts group,jpeg)的数据隐藏算法将这些特殊的数据在图片载体上进行嵌入和提取。由于在具有不同质量因子的jpeg图片中,值为“0”的交流系数ac coefficient都集中在图片的高频部分。如果选择类似于“0”系数的高频系数进行修改,一方面由于扩展的系数过多会造成图片严重失真,另一方面会导致ac系数的行程编码中的行程增加,进而导致携带隐藏信息的图片有明显视觉损失和图片文件的大小出现异常变化。


技术实现要素:

4.有鉴于此,本技术实施例提供一种基于直方图移位的可逆数据隐藏方法及装置,以解决现有技术中携带隐藏信息的图片有明显视觉损失和图片文件的大小易出现异常变化的问题。
5.为实现上述目的,本技术实施例提供如下技术方案:
6.本发明实施例第一方面示出了一种基于直方图移位的可逆数据隐藏方法,所述方法包括:
7.将原始图片划分成子块,所述子块的数量为多个;
8.对每一所述子块进行熵解码处理,得到对应的离散余弦变换dct系数块;
9.在确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求时,基于每一所述dct系数块的排序和辅助信息的消息位,确定可嵌入辅助信息的dct系数块,并将所述dct系数块设置为第一目标块,其中,所述每一所述dct系数块的排序是按照预设排序规则进行排序的;
10.基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中,所述辅助信息包括所述待嵌入信息的消息位长度和预先计算得到的条件阈值;
11.根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量,确定可嵌入待嵌入信息的dct系数块为第二目标块;
12.基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中;
13.将嵌入辅助信息的所述第一目标块、嵌入待嵌入信息的所述第二目标块以及剩余的所有dct系数块进行熵编码,生成标记的图片。
14.可选的,还包括:
15.在接收到标记的图片后,对所述图片进行熵解码处理,得到对应的dct系数块,并统计每一dct系数块中交流系数为零的数量;
16.基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块;
17.基于提取算法提取所述第一目标块中的辅助信息;
18.基于所述辅助信息中的阈值信息和每一dct系数块中交流系数为零的数量,从dct系数块中确定第二目标块;
19.基于所述辅助信息中嵌入信息的消息位长度和所述提取算法提取所述第二目标块中的消息位;
20.在提取所有第二目标块中的消息位后,对所有的所述dct系数块进行熵编码,生成jpeg图片。
21.可选的,确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求,包括:
22.统计每一dct系数块中内部系数的个数;
23.判断所述待嵌入消息的消息位的位数是否小于或等于所述内部系数的个数;
24.若小于或等于,确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求;
25.若大于,确定所述原始图片的嵌入容量不满足待嵌入信息的嵌入要求。
26.可选的,所述基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中,包括:
27.针对所述第一目标块中每一内部系数,基于内部系数对辅助信息的每一消息位进行隐藏,确定标记后的内部系数;
28.在确定所述辅助信息中的每一消息位均存在对应的标记后的内部系数时,确定所述辅助信息嵌入完成。
29.可选的,所述根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量,确定可嵌入待嵌入信息的dct系数块为第二目标块,包括:
30.计算每一dct系数块中值为零的ac系数的个数;
31.将每一dct系数块中值为零的ac系数的个数与预先计算的条件阈值进行比较;
32.在确定所述dct系数块中值为零的ac系数的个数大于预先计算的条件阈值时,确定所述dct系数块为第二目标块。
33.可选的,所述基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中,包括:
34.基于所述第二目标块中每一内部系数对嵌入信息的消息位进行隐藏,确定标记后的内部系数;
35.在确定所述嵌入信息中的每一消息位均存在对应的标记后的内部系数时,确定所述嵌入信息嵌入完成。
36.可选的,所述基于提取算法提取所述第二目标块中的提取待嵌入消息的消息位,包括:
37.针对每一所述第二目标块,确定所述第二目标块中每一标记后的内部系数;
38.基于所述提取算法从每一标记后的内部系数中提取所述待嵌入消息的消息位。
39.本发明实施例第二方面示出了一种基于直方图移位的可逆数据隐藏装置,所述装置包括:
40.划分单元,用于将原始图片划分成子块,所述子块的数量为多个;
41.第一处理单元,用于对每一所述子块进行熵解码处理,得到对应的离散余弦变换dct系数块;
42.第一确定单元,用于在确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求时,基于每一所述dct系数块的排序和辅助信息的消息位,确定可嵌入辅助信息的dct系数块,并将所述dct系数块设置为第一目标块,其中,所述每一所述dct系数块的排序是按照预设排序规则进行排序的;及根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量,确定可嵌入待嵌入信息的dct系数块为第二目标块;
43.嵌入处理单元,用于基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中,所述辅助信息包括所述待嵌入信息的消息位长度和预先计算得到的条件阈值;及基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中;
44.第一生成单元,用于将嵌入辅助信息的所述第一目标块、嵌入待嵌入信息的所述第二目标块以及剩余的所有dct系数块进行熵编码,生成标记的图片。
45.可选的,还包括:
46.第二处理单元,用于在接收到标记的图片后,对所述图片进行熵解码处理,得到对应的dct系数块,并统计每一dct系数块中交流系数为零的数量;
47.第二确定单元,用于基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块;基于所述辅助信息中的阈值信息和每一dct系数块中交流系数为零的数量,确定存储隐藏信息的第二目标块;
48.提取单元,用于基于提取算法提取所述第一目标块中的辅助信息;基于辅助信息中嵌入信息的消息位长度和提取算法提取所述第二目标块中的消息位;
49.第二生成单元,用于在提取所有第二目标块中的消息位后,对所述所有的所述dct系数块进行熵编码,生成jpeg图片。
50.可选的,所述确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求的所述第一确定单元,具体用于:统计每一dct系数块中内部系数的个数;判断所述待嵌入消息的消息位的位数是否小于或等于所述内部系数的个数;若小于或等于,确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求;若大于,确定所述原始图片的嵌入容量不满足待嵌入信息的嵌入要求。
51.基于上述本技术实施例提供的一种基于直方图移位的可逆数据隐藏方法及装置,该方法包括:将原始图片划分成子块,子块的数量为多个;对每一子块进行熵解码处理,得到对应的离散余弦变换dct系数块;在确定原始图片的嵌入容量满足待嵌入信息的嵌入要求时,基于每一dct系数块的排序和辅助信息的消息位,确定可嵌入辅助信息的dct系数块,并将dct系数块设置为第一目标块,其中,每一dct系数块的排序是按照预设排序规则进行排序的;基于嵌入算法按照第一预设顺序将辅助信息嵌入第一目标块中,辅助信息包括待嵌入信息的消息位长度和预先计算得到的条件阈值;根据预先计算得到的条件阈值和每一dct系数块中ac系数为零的数量确定可嵌入待嵌入信息的dct系数块为第二目标块;基于嵌入算法按照第二预设顺序将待嵌入信息的消息位依次嵌入第二目标块中;将嵌入辅助信息
的所述第一目标块、嵌入待嵌入信息的所述第二目标块以及剩余的所有dct系数块进行熵编码,生成标记的图片。在本技术实施例中,通过预先计算得到的条件阈值优先选择对图像影响较小的系数块进行嵌入操作,即确定第二目标块。通过嵌入算法将待嵌入信息的消息位依次嵌入第二目标块中,即通过第二目标块中合适的系数对待嵌入信息进行数据隐藏,不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
附图说明
52.为了更清楚地说明本技术实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本技术的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
53.图1a-图1h为图片库中随机选取的图片;
54.图2为在质量因子qf等于60,三种方法不同嵌入容量所对应的psnr示意图;
55.图3为在质量因子qf等于70,三种方法不同嵌入容量所对应的psnr示意图;
56.图4为在质量因子qf等于80,对比三种方法不同嵌入容量所对应的psnr示意图;
57.图5为在质量因子qf等于90,对比三种方法不同嵌入容量所对应的psnr示意图;
58.图6为在qf为90时不同有效载荷的平均psnr值示意图;
59.图7为嵌入容量最大时增加的文件数量示意图;
60.图8为本技术实施例示出的一种基于直方图移位的数据隐藏方法的流程示意图;
61.图9为本技术实施例示出的内部系数嵌入数据的示例示意图;
62.图10为本技术实施例示出的另一种基于直方图移位的数据隐藏方法的流程示意图;
63.图11为本技术实施例示出的dct系数块被标记的内部系数示意图;
64.图12为本技术实施例示出的一种基于直方图移位的数据隐藏装置的结构示意图;
65.图13为本技术实施例示出的另一种基于直方图移位的数据隐藏装置的结构示意图。
具体实施方式
66.下面将结合本技术实施例中的附图,对本技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
67.在本技术中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个
……”
限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
68.由背景技术可知,目前第一种现有方案通过选择值为1和-1的系数进行扩展,以携
带消息位,并且利用块选择策略,实现自适应选择离散余弦变换(dct,discrete cosine transform)系数进行数据隐藏的效果。然而这个算法依然存在不足,在纹理图片中嵌入数据后的图片质量不佳,进而导致图片文件的大小出现异常变化。第二种现有方案对于某些块扩展了内部系数,虽然减少了外部系数的移动,但由于扩展的系数过多也会造成图片严重失真,且导致ac系数的行程编码中的行程增加,即辅助消息的长度增加,且嵌入率以及图片质量均不太高。
69.综上所述,现有技术一方面由于扩展的系数过多会造成图片严重失真,另一方面会导致ac系数的行程编码中的行程增加,进而导致图片文件的大小出现异常变化。
70.因此,在本技术通过预先计算得到的条件阈值优先选择对图像影响较小的系数块进行嵌入操作,即确定第二目标块。通过嵌入算法将待嵌入信息的消息位依次嵌入第二目标块中,即通过第二目标块中合适的系数对待嵌入信息进行数据隐藏,不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
71.本技术人通过对第一种现有方案和第二种现有方案作为对比试验,以分别从嵌入容量、标记图片的视觉质量和文件大小三方面进行对比。
72.本技术人选择usc-sipi数据库中部分512*512的8位灰度图片,如图1a-图1h所示,通过图片jpeg库libjpeg优化对应的哈夫曼表,以按照质量因子qf=60、70、80、90对图片进行压缩,选择随机二进制字符串作为秘密消息位。
73.具体的,首先,按照不同的质量因子qf,以通过第一种现有方案,即现1、第二种现有方案,即现2和本技术示出的方案,即本方法对图1a-图1h中的图片进行处理,确定对应的嵌入容量,也就是说,在不同质量因子下对比三种方法对于同一图片的最大可嵌入容量,如表1所示。
74.表1:
[0075][0076]
其中,本方法的最大可嵌入比特数均要高于另外现1和现2。而且由表1可知,对于不同纹理和不同质量因子的图片,嵌入容量都有不同程度的变化。相比之下,对于纹理较简单的图片如peppers而言,纹理较复杂的图片如baboon可嵌入的比特位更多。而且随着图片质量因子的增大,非零ac系数直方图的分布更加尖锐,因此质量因子较大的图片比质量因子较小的图片的内部系数要多。
[0077]
接着,由于本方法和第二种现有方案相对于第一种现有方案均增加了可嵌入比特数,因此只需要按照不同的质量因子qf,以通过第二种现有方案,即现2和本技术示出的方案,即本方法对图1a-图1h中的图片进行处理,确定对应的可嵌入比特数,也就是说,在不同质量因子下对比二种方法对于同一图片的最大可嵌入比特数,如表2所示。
[0078]
表2:
[0079][0080]
其中,随着质量因子的增大,可嵌入比特数增加,由于特定的块随着质量因子的增加而减少,当qf=90时,很多图片增加的可嵌入系数并不明显,所以第二种现有方案比较适用于质量因子较小的图片。而本文提出的方法,在嵌入容量上无论质量因子的高低,都要优于第二种现有方案等人的方法,大大增加了可嵌入的消息比特位。
[0081]
由于图片的峰值信噪比是评价图片质量的一般指标,为了衡量原始灰度jpeg图片和标记图片之间的差异,通常会通过这个指标来认定图片处理的结果够不够令人满意。因此本技术人采用峰值信噪比(peak signal to noise ratio,psnr)来测量数据,从而确定嵌入后生成的标记图片的图片质量。
[0082]
其中,psnr的计算为公式(1)。
[0083]
公式(1):
[0084][0085]
其中,单位db为对数分贝,均方误差(mean squared error,mse)为隐秘图片和原始载体图片的均方差。
[0086]
然后,通过不同的嵌入容量和不同的质量因子qf,按照第一种现有方案,即现1、第二种现有方案,即现2和本技术示出的方案,即本方法中隐秘图片和原始载体图片的均方差代入公式(1)确定对应的psnr,可通过图2至图5显示。
[0087]
如图2所示,在质量因子qf等于60,对比三种方法不同嵌入容量所对应的psnr。
[0088]
如图3所示,在质量因子qf等于70,对比三种方法不同嵌入容量所对应的psnr。
[0089]
如图4所示,在质量因子qf等于80,对比三种方法不同嵌入容量所对应的psnr。
[0090]
如图5所示,在质量因子qf等于90,对比三种方法不同嵌入容量所对应的psnr。
[0091]
基于上述图2至图5示出的在不同质量因子和相同嵌入容量下的平均psnr值,其水平轴表示嵌入有效载荷,垂直轴表示平均psnr值。可以看出标记图片的图片质量退化程度越低,对应的mse值越低,psnr值越高。
[0092]
由于第二种现有方案需要在第一层标记的dct系数中二次嵌入辅助消息,且需要记录用来区分移动块和非移动块的指标,因此在嵌入较少消息位时它仍然对原始图片造成一定程度的视觉损失。本方案避免了外部系数的无效位移,辅助信息对图片视觉质量的影响不明显。因此与其他两种方案相比,无论嵌入多少消息位,所提出方案的平均psnr都较高。而且随着嵌入比特位的增加,本方法的优越性体现的更加明显,比如当qf=70,嵌入
2.1k位消息比特时,比第二种现有方案的psnr的值提高了3.29db。
[0093]
申请人发现本方法不仅具有高嵌入率,且在嵌入时能够保证图片视觉的高可视性,且能够较好的平衡图像质量以及能够平衡质量和容量之间的关系。当qf=90时,视觉嵌入最大容量消息位时的质量,即psnr的值,如图6所示,示出了在qf为90时不同有效载荷的平均psnr值。与其他两种方案相比,本方法得到的目标图片的psnr值是最大的。psnr越大表示信息隐藏的效果更好,因此这种方法具有更好的嵌入信息的不可见性。
[0094]
最后,申请人发现当qf=70时,嵌入相同位数消息比特后,标记图片的文件大小进行了不同程度的增加,如图7所示。通过实验比较发现,在嵌入16000位二进制流时,第二种现有方案和第一种现有方案得到的结果差异不大。且这两种方法都需要对大量外部系数进行无效移位,在很大程度上造成了增大文件大小与嵌入比特位的不平衡。从而导致标记文件的大小出现异常变化。
[0095]
因此,本技术通过预先计算得到的条件阈值优先选择对图像影响较小的系数块进行嵌入操作,即确定第二目标块。通过嵌入算法将待嵌入信息的消息位依次嵌入第二目标块中,即通过第二目标块中合适的系数对待嵌入信息进行数据隐藏,不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
[0096]
参见图8,为本技术实施例示出的一种基于直方图移位的数据隐藏方法的流程示意图,该方法包括:
[0097]
步骤s801:将原始图片划分成子块。
[0098]
在步骤s801中,所述子块的数量为多个。
[0099]
在具体实现步骤s801的过程中,在需要对待嵌入数据进行隐藏时,将原始图片划分成若干8*8的子块。
[0100]
比如:一个512*512大小的灰度图片a,将图片a划分成若干个8*8的子块。
[0101]
步骤s802:对每一所述子块进行熵解码处理,得到对应的离散余弦变换dct系数块。
[0102]
在具体实现步骤s802的过程中,将所有子块均通过熵解码后,得到对应的量化后的离散余弦变换dct系数块。
[0103]
需要说明的是,每一子块对应一个dct系数块。
[0104]
dct系数块包括1个dc直流系数和63个ac交流系数。
[0105]
步骤s803:确定所述原始图片的嵌入容量是否满足待嵌入信息的嵌入要求,在确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求时,执行步骤s804,若否,则确定该图片嵌入容量有限,该原始图片不能完全嵌入待嵌入数据。
[0106]
需要说明的是,待嵌入信息的消息位为二进制字符串。待嵌入信息的嵌入要求是指要嵌入消息的消息位的个数要满足嵌入要求的内部系数的个数。
[0107]
在具体实现步骤s803的过程中,统计每一dct系数块中内部系数的个数;判断所述要嵌入消息的消息位的位数是否小于或等于允许嵌入的个数,即内部系数的个数,若小于或等于,确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求,执行步骤s804,若大于,确定所述原始图片的嵌入容量不满足待嵌入信息的嵌入要求,此时说明该图片嵌入容量有限,该原始图片不能完全嵌入待嵌入数据。
[0108]
需要说明的是,内部系数是指绝对值为1和2的ac系数。
[0109]
步骤s804:基于每一所述dct系数块的排序和辅助信息的消息位,确定可嵌入辅助信息的dct系数块,并将所述dct系数块设置为第一目标块。
[0110]
在步骤s804中,所述每一所述dct系数块的排序是按照预设排序规则进行排序的。
[0111]
在具体实现步骤s804的过程中,按照预设排序规则对每一所述dct系数块进行排序的,基于辅助消息位的长度,确定可嵌入辅助信息的dct系数。
[0112]
需要说明的是,预设排序规则是指图库中dct系数块从左往右,由上至下的自然顺序确定的。
[0113]
选择的dct系数块的数量根据辅助信息的消息位多少来确定,本技术示出的计算得到的辅助信息的消息位较小,一般一个dct系数块即可隐藏。
[0114]
需要说明的是,辅助信息包括待嵌入信息的消息位长度和预先计算得到的条件阈值。
[0115]
步骤s805:基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中。
[0116]
在步骤s805中,所述辅助信息包括所述待嵌入信息的消息位长度和预先计算得到的条件阈值。
[0117]
需要说明的是,第一预设顺序为之字形的方式。
[0118]
需要说明的是,条件阈值的计算过程包括:
[0119]
首先,根据所有dct系数块中ac系数为“1”,
“‑
1”,“2”,和
“‑
2”的个数,待嵌入信息的消息位,嵌入信息的消息位所需的比特数,和条件阈值所需的比特数代入公式(2)进行计算,得到条件阈值tz。
[0120][0121]
其中,s为所有dct系数块中ac系数为“1”,
“‑
1”,“2”,和
“‑
2”的个数,l为待嵌入信息的消息位,l1为表示l值所需的比特数,l2为表示tz所需的比特数。
[0122]
需要说明的是,tz所需的比特数l2是预先根据实际情况进行设置的。
[0123]
例如:采用原始图片为512*512大小的灰度图片,从而确定可嵌入的最大容量不会超过2
18
位,因此可取l1=18,l2=5,经过公式(2)计算,可以确定由待嵌入信息的消息位长度和预先计算得到的条件阈值组成的辅助信息一共是23位。
[0124]
在具体实现步骤s805的过程中,为了保证所提出的方法可以完整的提取出隐藏数据,需要在图片中嵌入有效嵌入容量长度l和嵌入的优先判断条件值域tz作为辅助消息。针对所述第一目标块中每一内部系数,基于内部系数对辅助信息的每一消息位进行隐藏,确定标记后的内部系数,也就是说,将辅助消息按照之字形方式顺序嵌入到第一目标块中,在确定所述辅助信息中的每一消息位均存在对应的标记后的内部系数时,确定辅助信息中的所有数据均被隐藏之后,确定辅助信息隐藏完成。
[0125]
具体的,首先将第一目标块中的每一ac系数代入公式(3)计算对应的符号函数sign(c)。
[0126]
公式(3):
[0127][0128]
其中,c为dct系数块中的交流系数,c包括c1,c2,...,cn共n个ac系数。
[0129]
可以理解的是,当ac系数值为零时,符号函数值为0,ac系数值为正数时,函数符号值为1,反之函数符号值为-1。
[0130]
需要说明的是,符号函数sign(c)表示jpeg图片中dct系数值的正负情况。
[0131]
接着,将第一目标块中每一内部系数,以及辅助信息的消息位输入嵌入算法,即公式(4),以通过内部系数将辅助信息进行隐藏,得到标记后的内部系数
[0132]
公式(4):
[0133][0134]
其中,表示标记后的第i个内部系数;ci表示第一目标块中的第i个内部系数;b表示辅助信息的数据,其为二进制数,即b∈{0,1};sign(ci)为第i个内部系数对应的符号函数。
[0135]
依次对辅助信息的消息位一一进行隐藏,当辅助信息中的每一消息位均存在对应的标记后的内部系数c~i,即确定辅助信息中的所有数据均被隐藏之后,确定辅助信息隐藏完成。
[0136]
例如:若确定辅助信息为23位,则可以将辅助信息嵌入到从第一个dct系数块开始的前二十三位内部系数中。
[0137]
步骤s806:根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量确定可嵌入待嵌入信息的dct系数块为第二目标块。
[0138]
需要说明的是,具体实现步骤s806的过程,包括以下步骤:
[0139]
步骤s11:计算每一dct系数块中值为零的ac系数的个数。
[0140]
在具体实现步骤s11的过程中,经过多次实验可以确定在具有不同质量因子的jpeg图片中,值为“0”的ac系数都集中在图片的高频部分。因此需要统计每一dct系数块中值为“0”的ac系数的个数。
[0141]
步骤s12:将每一dct系数块中值为零的ac系数的个数与预先计算的条件阈值进行比较,在确定所述dct系数块中值为零的ac系数的个数大于预先计算的条件阈值时,执行步骤s13,在确定所述dct系数块中值为零的ac系数的个数小于或等于预先计算的条件阈值时,确定该dct系数块为不可嵌入块。
[0142]
在具体实现步骤s12的过程中,比较每一dct系数块中值为“0”的ac系数的个数分别与条件阈值tz的大小,在确定值为“0”的ac系数的个数大于条件阈值tz时,执行步骤s13;在确定值为“0”的ac系数的个数小于等于条件阈值tz时,确定该dct系数块为不可嵌入块,不对其块进行任何改动。
[0143]
步骤s13:确定所述dct系数块为第二目标块。
[0144]
在具体实现步骤s13的过程中,将其对应的dct系数块设定为可嵌入块,即第二目标块。
[0145]
步骤s807:基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中。
[0146]
由于jpeg图片空间域上的像素和量化后的dct系数存在很大的联系,对量化的dct系数的任何修改将可能导致图片的失真,所以对嵌入信息的块的选取和对于dct系数的选择一样重要。根据人眼视觉特性中的频率敏感程度发现,人类对较高频率部分的分辨率较低,即对于高频率部分的修改敏感性较低。jpeg压缩后,高频区域包含的最多的是值为0的dct系数,dct系数是指ac交流系数。直观的描述dct系数进行嵌入时系数的变动过程,在该过程中除内部系数外,不对任何系数进行修改,因此大部分系数保持不变。而修改的内部系数至多扩展一位,所以很好的保证了隐藏后图片的视觉质量。
[0147]
在本技术实施例中,dct系数块进行数据嵌入时除内部系数外,不对任何系数进行修改,即将dct系数块中的原始内部系数,即幅度在2以内的非零ac系数进行变化,其他系数在数据隐藏的时候保持不变,在具体实现步骤s807的过程中,基于所述第二目标块中每一内部系数对嵌入信息的消息位进行隐藏,确定标记后的内部系数,也就是说,将由0和1组成的二进制流按照之字形的方式顺序嵌入到第二目标块中;确定所述嵌入信息中的每一消息位均存在对应的标记后的内部系数时,确定所述嵌入信息嵌入完成。
[0148]
具体的,首先将每一ac系数代入上述示出的公式(3)计算对应的符号函数sign(c)。
[0149]
接着,针对第一个第二目标块,将第二目标块中每一内部系数、待嵌入信息中的消息位依次输入嵌入算法,即代入上述示出的公式(4),以通过内部系数将消息位进行隐藏,得到标记后的内部系数
[0150]
公式(4):
[0151][0152]
其中,表示标记后的第i个内部系数;ci表示第二目标块中的第i个内部系数;此时b表示嵌入信息的消息位,其为二进制数,即b∈{0,1};sign(ci)为第i个内部系数对应的符号函数。
[0153]
最后,当该第二目标块中每一内部系数均存在对应的标记后的内部系数c~i,即确定每一内部系数中均隐藏消息位,且待嵌入信息中的消息位并未被隐藏完成时,对下一第二目标块中每一内部系数对嵌入信息剩余的消息位信息进行隐藏,依次类推,直至所有的消息位完全嵌入。
[0154]
例如:如图9所示,第二目标块a包括5个ac系数,c分别包括c1,c2,c3,c4和c5。其中,c1=-2,c2=-1,c3=0,c
4-1,c5=2。其中,第二目标块a内部系数为c1,c2,c4和c5。若待嵌入信息的消息位b=0时,内部系数c1=-2,将其代入上述示出的公式(4),得到标记后的内部系数若待嵌入信息的消息位b=1时,内部系数c1=-2,将其代入上述示出的公式(4),
得到标记后的内部系数若待嵌入信息的消息位b=0时,内部系数c1=-1,将其代入上述示出的公式(4),得到标记后的内部系数若待嵌入信息的消息位b=1时,内部系数c1=-1,将其代入上述示出的公式(4),以通过内部系数将消息位进行隐藏,得到标记后的内部系数若待嵌入信息的消息位b=0时,内部系数c1=1,将其代入上述示出的公式(4),得到标记后的内部系数若待嵌入信息的消息位b=1时,内部系数c1=1,将其代入上述示出的公式(4),以通过内部系数将消息位进行隐藏,得到标记后的内部系数若待嵌入信息的消息位b=0时,内部系数c1=2,将其代入上述示出的公式(4),得到标记后的内部系数若待嵌入信息的消息位b=1时,内部系数c1=2,将其代入上述示出的公式(4),以通过内部系数将消息位进行隐藏,得到标记后的内部系数
[0155]
步骤s808:将嵌入辅助信息的所述第一目标块、嵌入待嵌入信息的所述第二目标块以及剩余的所有dct系数块进行熵编码,生成标记的图片。
[0156]
在具体实现步骤s808的过程中,对数据隐藏后的ac系数进行熵编码,生成标记的jpeg图片。
[0157]
可选的,在生成标记的图片后对其进行压缩。
[0158]
在本技术实施例中,本技术通过预先计算得到的条件阈值优先选择对图像影响较小的系数块进行嵌入操作,即确定第二目标块。通过嵌入算法将待嵌入信息的消息位依次嵌入第二目标块中,即通过第二目标块中合适的系数对待嵌入信息进行数据隐藏,不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
[0159]
在本技术实施例中,在需要获取隐藏信息时需要对隐藏在图片中的数据进行提取。因此基于上述本技术实施例示出的基于直方图移位的可逆数据隐藏方法,参见图10,本技术实施例还示出了另一基于直方图移位的可逆数据隐藏方法的流程示意图,该方法包括:
[0160]
步骤s1001:在接收到标记的图片后,对所述图片进行熵解码处理,得到对应的dct系数块,并统计每一dct系数块中交流系数为零的数量。
[0161]
在具体实现步骤s1001的过程中,利用熵译码器对标记的jpeg图片文件进行解码,得到量化后的dct系数块,并统计每一dct系数块中交流系数为零的数量。
[0162]
需要说明的是,dct系数块的大小为8*8。
[0163]
步骤s1002:基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块。
[0164]
在具体实现步骤s1002的过程中,基于辅助消息位的长度按照预设排序规则确定存储辅助信息的第一目标块。
[0165]
步骤s1003:基于提取算法提取所述第一目标块中的辅助信息。
[0166]
在具体实现步骤s1003的过程中,确定第一目标块中每一标记后的内部系数,并将每一标记后的内部系数依次代入公式(5)中,提取对应的辅助信息的消息位,即辅助信息。
[0167]
公式(5):
[0168][0169]
其中,b'代表提取的消息位,表示标记后的第i个内部系数。
[0170]
由公式(5)可知,当隐藏后的图片的dct系数绝对值为1时,即可以提取出秘密信息位,即待嵌入信息的消息位0;当隐藏后的图片的dct系数绝对值为2时,可以提取出秘密信息位,即待嵌入信息的消息位1。
[0171]
步骤s1004:基于所述辅助信息中的阈值信息和每一dct系数块中交流系数为零的数量,从dct系数块中确定第二目标块。
[0172]
在具体实现步骤s1004的过程中,从标记图片中获取辅助消息,即文件的长度和阈值。比较阈值和标记图片中每一个8*8的dct系数子块中零交流系数的个数,将值为“0”的ac系数的个数大于等于条件阈值tz设置为第二目标块,即嵌入块,其余子块为不可嵌入块。
[0173]
需要说明的是,步骤s1004的具体实现过程与上述步骤s806的具体实现过程相同,可相互参见。
[0174]
步骤s1005:基于辅助信息中嵌入信息的消息位长度和提取算法提取所述第二目标块中的消息位。
[0175]
在具体实现步骤s1005的过程中,针对每一第二目标块,即嵌入块,确定嵌入块中每一标记后的内部系数,基于所述提取算法从每一标记后的内部系数中提取所述待嵌入消息的消息位。也就是说,将每一标记后的内部系数依次代入上述公式(5),即提取算法中,提取对应的待嵌入消息的消息位。进而从嵌入块中连续提取消息比特,即消息位。
[0176]
例如:如图11所示,为一个被嵌入消息位的8*8的dct系数块,阴影部分是被扩展的位置,即标记后的内部系数,将每一内部系数输入公式(5),得到按照之字形的顺序可以提取出值为(1,1,0,0,1,0,1,1,1,0,1,1)的二进制流,即提取出对应的辅助信息。
[0177]
步骤s1006:在提取所有第二目标块中的消息位后,对所述所有的dct系数块进行熵编码,生成jpeg图片。
[0178]
在具体实现步骤s1006的过程中,在提取所有秘密消息比特后,再次对ac系数进行熵编码,生成原始图片。
[0179]
在本技术实施例中,在数据隐藏技术中,应该确保嵌入的数据可以有效提取,即可逆数据,首先从标记好的jpeg图像中对所述图片进行熵解码处理,得到对应的dct系数块。基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块,并从中提取对应法人辅助信息;然后,在确定第二目标块的位置后根据提取算法进行提取。不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
[0180]
基于上述本技术实施例示出的基于直方图移位的可逆数据隐藏方法,相应的,本技术实施例还对应公开了基于直方图移位的可逆数据隐藏装置,如图12所示,为本技术实施例示出的一种直方图移位的可逆数据隐藏装置结构图,该装置包括:
[0181]
划分单元1201,用于将原始图片划分成子块,所述子块的数量为多个。
[0182]
第一处理单元1202,用于对每一所述子块进行熵解码处理,得到对应的离散余弦变换dct系数块。
[0183]
第一确定单元1203,用于在确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求时,基于每一所述dct系数块的排序和辅助信息的消息位,确定可嵌入辅助信息的dct系数块,并将所述dct系数块设置为第一目标块,其中,所述每一所述dct系数块的排序是按照预设排序规则进行排序的;及根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量确定可嵌入待嵌入信息的dct系数块为第二目标块。
[0184]
嵌入处理单元1204,用于基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中,所述辅助信息包括所述待嵌入信息的消息位长度和预先计算得到的条件阈值;及基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中。
[0185]
第一生成单元1205,用于将嵌入辅助信息的所述第一目标块、嵌入待嵌入信息的所述第二目标块以及剩余的所有dct系数块进行熵编码,生成标记的图片。
[0186]
需要说明的是,上述本技术实施例公开的基于直方图移位的可逆数据隐藏中的各个单元具体的原理和执行过程,与上述本技术实施的基于直方图移位的可逆数据隐藏方法相同,可参见上述本技术实施例公开的基于直方图移位的可逆数据隐藏方法中相应的部分,这里不再进行赘述。
[0187]
在本技术实施例中,本技术通过预先计算得到的条件阈值优先选择对图像影响较小的系数块进行嵌入操作,即确定第二目标块。通过嵌入算法将待嵌入信息的消息位依次嵌入第二目标块中,即通过第二目标块中合适的系数对待嵌入信息进行数据隐藏,不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免图片出现明显视觉损失及图片文件的大小出现异常变化的情况。
[0188]
可选的,基于上述本发明实施例示出的可逆数据隐藏装置,所述确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求的所述第一确定单元1203,具体用于:统计每一dct系数块中内部系数的个数;判断所述待嵌入消息的消息位的位数是否小于或等于所述内部系数的个数;若小于或等于,确定所述原始图片的嵌入容量满足待嵌入信息的嵌入要求;若大于,确定所述原始图片的嵌入容量不满足待嵌入信息的嵌入要求。
[0189]
所述根据预先计算的条件阈值和每一dct系数块中ac系数为零的数量,确定可嵌入待嵌入信息的dct系数块为第二目标块的所述第一确定单元1203,具体用于:计算每一dct系数块中值为零的ac系数的个数;将每一dct系数块中值为零的ac系数的个数与预先计算的条件阈值进行比较;在确定所述dct系数块中值为零的ac系数的个数大于预先计算的条件阈值时,确定所述dct系数块为第二目标块。
[0190]
可选的,基于上述本发明实施例示出的可逆数据隐藏装置,基于嵌入算法按照第一预设顺序将辅助信息嵌入所述第一目标块中的嵌入处理单元1204,具体用于:针对所述第一目标块中每一内部系数,基于内部系数对辅助信息的每一消息位进行隐藏,确定标记后的内部系数;在确定所述辅助信息中的每一消息位均存在对应的标记后的内部系数时,确定所述辅助信息嵌入完成。
[0191]
可选的,基于嵌入算法按照第二预设顺序将所述待嵌入信息的消息位依次嵌入第二目标块中的嵌入处理单元1204,具体用于:基于所述第二目标块中每一内部系数对嵌入信息的消息位进行隐藏,确定标记后的内部系数;在确定所述嵌入信息中的每一消息位均存在对应的标记后的内部系数时,确定所述嵌入信息嵌入完成。
[0192]
可选的,基于上述本发明实施例示出的可逆数据隐藏装置,参见图13,还示出了另一可逆数据隐藏装置结构示意图,该装置包括:
[0193]
第二处理单元1301,用于在接收到标记的图片后,对所述图片进行熵解码处理,得到对应的dct系数块,并统计每一dct系数块中交流系数为零的数量。
[0194]
第二确定单元1302,用于基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块;基于所述辅助信息中的阈值信息和每一dct系数块中交流系数为零的数量,确定存储隐藏信息的第二目标块。
[0195]
提取单元1303,用于基于提取算法提取所述第一目标块中的辅助信息;基于所述辅助信息中的阈值信息和每一dct系数块中交流系数为零的数量,从dct系数块中确定第二目标块;基于所述辅助信息中嵌入信息的消息位长度和所述提取算法提取所述第二目标块中的消息位。
[0196]
可选的,基于提取算法提取所述第二目标块中的提取消息位的提取单元1303,具体用于:针对每一所述第二目标块,确定第二目标块中每一标记后的内部系数;基于所述提取算法从每一标记后的内部系数中提取所述待嵌入消息的消息位。
[0197]
第二生成单元1304,用于在提取所有第二目标块中的消息位后,对所有的所述dct系数块进行熵编码,生成jpeg图片。
[0198]
需要说明的是,上述本技术实施例公开的基于直方图移位的可逆数据隐藏中的各个单元具体的原理和执行过程,与上述本技术实施的基于直方图移位的可逆数据隐藏方法相同,可参见上述本技术实施例公开的基于直方图移位的可逆数据隐藏方法中相应的部分,这里不再进行赘述。
[0199]
在本技术实施例中,在数据隐藏技术中,应该确保嵌入的数据可以有效提取,即可逆数据,首先从标记好的jpeg图像中对所述图片进行熵解码处理,得到对应的dct系数块。基于辅助消息位的长度和dct系数块的预设排序规则,确定存储辅助信息的第一目标块,并从中提取对应辅助信息;然后,在确定第二目标块位置后根据提取算法进行提取。不仅能够较好的平衡图像质量和嵌入容量的关系,以及有效的控制辅助消息的长度,且能够避免发生图片文件的大小出现异常变化的情况。
[0200]
本说明书中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统或系统实施例而言,由于其基本相似于方法实施例,所以描述得比较简单,相关之处参见方法实施例的部分说明即可。以上所描述的系统及系统实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性劳动的情况下,即可以理解并实施。
[0201]
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应
认为超出本技术的范围。
[0202]
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本技术。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本技术的精神或范围的情况下,在其它实施例中实现。因此,本技术将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1