一种可逆数据隐藏方法及装置转让专利

申请号 : CN202111176499.8

文献号 : CN113923314B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 平萍付德银郝洁赵红泽

申请人 : 河海大学

摘要 :

本发明公开了一种可逆数据隐藏方法及装置,该方法利用图像像素间临近相似性,对原始图像进行分块并选取像素块中的一个像素点作为基准像素,由所有基准像素组成基准图像,对其进行预测生成残差直方图,然后通过平移残差直方图进行秘密数据的嵌入,根据原始图像的大小,可多次分块进行秘密数据的嵌入。本发明不仅实现了在提取秘密信息后,完整恢复原始图像,而且在保证良好的隐写图像质量的同时,提高了嵌入容量。

权利要求 :

1.一种可逆数据隐藏方法,其特征在于,包括:对预处理后的原始图像进行分块得到像素块;

对像素块选取基准像素进行线性预测得到残差值组成原始残差图像,并生成原始图像的残差直方图;

提取像素块的基准像素组成基准图像,对基准图像进行分块和线性预测得到基准残差图像,并生成基准图像的残差直方图;

将秘密数据逐次嵌入至所述原始残差图像和基准残差图像中,得到原始加密图像和基准加密图像;

将原始加密图像和基准加密图像进行合并,得到最终的加密图像;

对最终的加密图像中的秘密数据进行提取和恢复;

所述将秘密数据嵌入至所述原始残差图像中,包括:将原始图像的残差直方图分为NNH和NH,其中,NNH是由所有经过线性预测后得到的非负预测误差值生成的残差直方图,NH是由所有经过线性预测后得到的负预测误差值生成的残差直方图;

对NNH和NH分别进行直方图平移;

基于平移后的残差直方图,将一定数量的秘密数据s1嵌入相应的残差图像中;

将嵌入秘密数据s1的残差图像进行反向线性预测得到原始加密图像P1;

所述将秘密数据嵌入至所述基准残差图像中,包括:对基准图像的残差直方图进行直方图平移;

基于平移后的残差直方图,将一定数量的秘密数据s2嵌入基准残差图像中;

将嵌入秘密数据s2的残差图像进行反向线性预测得到基准加密图像P2;

如果经过原始残差图像和基准残差图像的嵌入后,秘密数据仍然没有被全部嵌入,则提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,组成第二基准图像,对第二基准图像进行分块和线性预测得到第二基准残差图像,将一定数量的秘密数据嵌入第二基准残差图像中,并以此类推。

2.根据权利要求1所述的一种可逆数据隐藏方法,其特征在于,还包括:将原始图像中的像素值为0修改为1,255修改为254,并且在位置地图中标记为1,得到预处理后的原始图像。

3.根据权利要求1所述的一种可逆数据隐藏方法,其特征在于,所述将原始加密图像和基准加密图像进行合并,包括:将第n次嵌入得到的基准加密图像Pn的像素逐个覆盖第n‑1次嵌入得到的加密图像Pn‑1中的基准像素,以此类推,直到原始加密图像P1的基准像素被逐个覆盖,生成最终加密图像。

4.根据权利要求1所述的一种可逆数据隐藏方法,其特征在于,进行直方图平移包括:在残差直方图H(x)中,找到峰值点H(a)a∈[0,255]和零点H(b)b∈[0,255],x表示残差值;

当a

当a>b时,将残差直方图H(x)x∈(a,b)的元素整体向左平移1bit。

5.根据权利要求4所述的一种可逆数据隐藏方法,其特征在于,将秘密数据嵌入至残差图像中,包括:按从上到下,从左到右的顺序扫描残差图像,如果遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变;重复操作,直到秘密信息全部嵌入或者不存在峰值点;

所述残差图像包括原始残差图像和所有的基准残差图像。

6.根据权利要求4所述的一种可逆数据隐藏方法,其特征在于,所述对最终的加密图像中的秘密数据进行提取和恢复,包括:对最终加密图像进行分块,提取所有的像素块的基准像素得到基准加密图像;

对基准加密图像进行分块和线性预测,生成基准残差图像;

遍历基准残差图像,按规则提取嵌入的秘密数据:进行反向线性预测,得到基准图像;

将最终的加密图像中的基准像素逐个替换为基准图像的像素,得到原始加密图像;

对原始加密图像进行分块和线性预测,得到原始残差图像;

遍历原始残差图像,按规则提取嵌入的秘密数据;

进行反向线性预测,得到原始图像;

将所有提取的秘密数据进行合并得到初始的秘密数据;

所述提取秘密数据的规则如下:

Ⅰ)像素值与峰值点像素值a相等,则提取值为1的1bit秘密数据,并且保持像素值不变;

Ⅱ)像素值与峰值点像素值a的绝对差为1,则提取值为0的1bit秘密数据,并且将像素值修改为a;

Ⅲ)将不满足Ⅰ)和Ⅱ)的像素值向峰值点a的方向调整1,不提取秘密数据。

7.根据权利要求1或6所述的一种可逆数据隐藏方法,其特征在于,进行分块包括:对图像按照从上到下从左到右的顺序进行分块,分块大小为n×n。

8.一种可逆数据隐藏装置,其特征在于,包括:初始模块,用于对预处理后的原始图像进行分块得到像素块;

第一生成模块,用于对像素块选取基准像素进行线性预测得到残差值组成的原始残差图像,并生成原始图像的残差直方图;

第二生成模块,用于提取像素块的基准像素组成基准图像,对基准图像进行分块和线性预测得到基准残差图像,并生成基准图像的残差直方图;

嵌入模块,用于将秘密数据逐次嵌入至所述原始残差图像和基准残差图像中,得到原始加密图像和基准加密图像;具体为,将原始图像的残差直方图分为NNH和NH,其中,NNH是由所有经过线性预测后得到的非负预测误差值生成的残差直方图,NH是由所有经过线性预测后得到的负预测误差值生成的残差直方图;

对NNH和NH分别进行直方图平移;

基于平移后的残差直方图,将一定数量的秘密数据s1嵌入相应的残差图像中;

将嵌入秘密数据s1的残差图像进行反向线性预测得到原始加密图像P1;

对基准图像的残差直方图进行直方图平移;

基于平移后的残差直方图,将一定数量的秘密数据s2嵌入基准残差图像中;

将嵌入秘密数据s2的残差图像进行反向线性预测得到基准加密图像P2;

如果经过原始残差图像和基准残差图像的嵌入后,秘密数据仍然没有被全部嵌入,则提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,组成第二基准图像,对第二基准图像进行分块和线性预测得到第二基准残差图像,将一定数量的秘密数据嵌入第二基准残差图像中,并以此类推;

合并模块,用于将原始加密图像和基准加密图像进行合并,得到最终的加密图像;

以及,

恢复模块,用于对最终的加密图像中的秘密数据进行提取和恢复。

9.根据权利要求8所述的一种可逆数据隐藏装置,其特征在于,所述嵌入模块还用于,在残差直方图H(x)中,找到峰值点H(a)a∈[0,255]和零点H(b)b∈[0,255],x表示残差值;

当a

当a>b时,将残差直方图H(x)x∈(a,b)的元素整体向左平移1bit;

按从上到下,从左到右的顺序扫描残差图像,如果遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变;重复操作,直到秘密信息全部嵌入或者不存在峰值点;

所述残差图像包括原始残差图像和所有的基准残差图像。

说明书 :

一种可逆数据隐藏方法及装置

技术领域

[0001] 本发明涉及信息安全技术领域,尤其是一种可逆数据隐藏方法及装置。

背景技术

[0002] 可逆数据隐藏是指将秘密信息以可逆、无损的方式嵌入到载体媒介中,其中可逆、无损是指秘密信息和载体媒介均可以完整无误的恢复。可逆数据隐藏技术的这种特性对很多领域如军事、医疗、版权保护等领域具有十分重要的意义。
[0003] 常见的可逆隐藏算法有基于无损压缩的可逆算法、基于整数变换的可逆算法、基于直方图平移的可逆算法和基于差值扩展的可逆算法。其中基于差值扩展的可逆算法是目前的主流算法。其核心思想为对载体图像进行预测,然后利用原始像素灰度值和预测值的差值进行数据嵌入。该算法相比于基于直方图平移的可逆算法在嵌入容量上有很大的提升,但是在使用预测方法进行预测时,有一部分的像素点并未进行充分利用,造成一定的资源浪费。

发明内容

[0004] 本发明的目的在于提供一种可逆数据隐藏方法及装置,对预测过程中没有充分利用的像素点进行处理,在保证载体图像质量的同时,进一步提高了嵌入容量。
[0005] 为达到上述目的,本发明采用的技术方案如下:
[0006] 本发明提供一种可逆数据隐藏方法,包括:
[0007] 对预处理后的原始图像进行分块得到像素块;
[0008] 对像素块选取基准像素进行线性预测得到残差值组成原始残差图像,并生成原始图像的残差直方图;
[0009] 提取像素块的基准像素组成基准图像,对基准图像进行分块和线性预测得到基准残差图像,并生成基准图像的残差直方图;
[0010] 将秘密数据逐次嵌入至所述原始残差图像和基准残差图像中,得到原始加密图像和基准加密图像;
[0011] 将原始加密图像和基准加密图像进行合并,得到最终的加密图像;
[0012] 对最终的加密图像中的秘密数据进行提取和恢复。
[0013] 进一步的,还包括:
[0014] 将原始图像中的像素值为0修改为1,255修改为254,并且在位置地图中标记为1,得到预处理后的原始图像。
[0015] 进一步的,将秘密数据嵌入至所述原始残差图像中,包括:
[0016] 将原始图像的残差直方图分为NNH和NH,其中,NNH是由所有经过线性预测后得到的非负预测误差值生成的残差直方图,NH是由所有经过线性预测后得到的负预测误差值生成的残差直方图;
[0017] 对NNH和NH分别进行直方图平移;
[0018] 基于平移后的残差直方图,将一定数量的秘密数据s1嵌入相应的残差图像中;
[0019] 将嵌入秘密数据s1的残差图像进行反向线性预测得到原始加密图像P1。
[0020] 进一步的,将秘密数据嵌入至所述基准残差图像中,包括:
[0021] 对基准图像的残差直方图进行直方图平移;
[0022] 基于平移后的残差直方图,将一定数量的秘密数据s2嵌入基准残差图像中;
[0023] 将嵌入秘密数据s2的残差图像进行反向线性预测得到基准加密图像P2。
[0024] 进一步的,
[0025] 如果经过原始残差图像和基准残差图像的嵌入后,秘密数据仍然没有被全部嵌入,则提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,组成第二基准图像,对第二基准图像进行分块和线性预测得到第二基准残差图像,将一定数量的秘密数据嵌入第二基准残差图像中,并以此类推。
[0026] 进一步的,所述将原始加密图像和基准加密图像进行合并,包括:
[0027] 将第n次嵌入得到的基准加密图像Pn的像素逐个覆盖第n‑1次嵌入得到的加密图像Pn‑1中的基准像素,以此类推,直到原始加密图像P1的基准像素被逐个覆盖,生成最终加密图像。
[0028] 进一步的,进行直方图平移包括:
[0029] 在残差直方图H(x)中,找到峰值点H(a)a∈[0,255]和零点H(b)b∈[0,255],x表示残差值;
[0030] 当a
[0031] 当a>b时,将残差直方图H(x)x∈(a,b)的元素整体向左平移1bit。
[0032] 进一步的,将秘密数据嵌入至残差图像中,包括:
[0033] 按从上到下,从左到右的顺序扫描残差图像,如果遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变;重复操作,直到秘密信息全部嵌入或者不存在峰值点;
[0034] 所述残差图像包括原始残差图像和所有的基准残差图像。
[0035] 进一步的,所述对最终的加密图像中的秘密数据进行提取和恢复,包括:
[0036] 对最终加密图像进行分块,提取所有的像素块的基准像素得到基准加密图像;
[0037] 对基准加密图像进行分块和线性预测,生成基准残差图像;
[0038] 遍历基准残差图像,按规则提取嵌入的秘密数据:
[0039] 进行反向线性预测,得到基准图像;
[0040] 将最终的加密图像中的基准像素逐个替换为基准图像的像素,得到原始加密图像;
[0041] 对原始加密图像进行分块和线性预测,得到原始残差图像;
[0042] 遍历原始残差图像,按规则提取嵌入的秘密数据;
[0043] 进行反向线性预测,得到原始图像;
[0044] 将所有提取的秘密数据进行合并得到初始的秘密数据;
[0045] 所述提取秘密数据的规则如下:
[0046] Ⅰ)像素值与峰值点像素值a相等,则提取值为1的1bit秘密数据,并且保持像素值不变;
[0047] Ⅱ)像素值与峰值点像素值a的绝对差为1,则提取值为0的1bit秘密数据,并且将像素值修改为a;
[0048] Ⅲ)将不满足Ⅰ)和Ⅱ)的像素值向峰值点a的方向调整1,不提取秘密数据。
[0049] 进一步的,进行分块包括:
[0050] 对图像按照从上到下从左到右的顺序进行分块,分块大小为n×n。
[0051] 本发明还提供一种可逆数据隐藏装置,包括:
[0052] 初始模块,用于对预处理后的原始图像进行分块得到像素块;
[0053] 第一生成模块,用于对像素块选取基准像素进行线性预测得到残差值组成的原始残差图像,并生成原始图像的残差直方图;
[0054] 第二生成模块,用于提取像素块的基准像素组成基准图像,对基准图像进行分块和线性预测得到基准残差图像,并生成基准图像的残差直方图;
[0055] 嵌入模块,用于将秘密数据逐次嵌入至所述原始残差图像和基准残差图像中,得到原始加密图像和基准加密图像;
[0056] 合并模块,用于将原始加密图像和基准加密图像进行合并,得到最终的加密图像;
[0057] 以及,
[0058] 恢复模块,用于对最终的加密图像中的秘密数据进行提取和恢复。
[0059] 进一步的,所述嵌入模块具体用于,
[0060] 将原始图像的残差直方图分为NNH和NH,其中,NNH是由所有经过线性预测后得到的非负预测误差值生成的残差直方图,NH是由所有经过线性预测后得到的负预测误差值生成的残差直方图;
[0061] 对NNH和NH分别进行直方图平移;
[0062] 基于平移后的残差直方图,将一定数量的秘密数据s1嵌入相应的残差图像中;
[0063] 将嵌入秘密数据s1的残差图像进行反向线性预测得到原始加密图像P1;
[0064] 对基准图像的残差直方图进行直方图平移;
[0065] 基于平移后的残差直方图,将一定数量的秘密数据s2嵌入基准残差图像中;
[0066] 将嵌入秘密数据s2的残差图像进行反向线性预测得到基准加密图像P2;
[0067] 如果经过原始残差图像和基准残差图像的嵌入后,秘密数据仍然没有被全部嵌入,则提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,组成第二基准图像,对第二基准图像进行分块和线性预测得到第二基准残差图像,将一定数量的秘密数据嵌入第二基准残差图像中,并以此类推。
[0068] 进一步的,所述嵌入模块还用于,
[0069] 在残差直方图H(x)中,找到峰值点H(a)a∈[0,255]和零点H(b)b∈[0,255],x表示残差值;
[0070] 当a
[0071] 当a>b时,将残差直方图H(x)x∈(a,b)的元素整体向左平移1bit;
[0072] 按从上到下,从左到右的顺序扫描残差图像,如果遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变;重复操作,直到秘密信息全部嵌入或者不存在峰值点;
[0073] 所述残差图像包括原始残差图像和所有的基准残差图像。
[0074] 本发明所达到的有益效果为:
[0075] 本发明利用图像像素间临近相似性,对原始图像进行分块并选取像素块中的一个像素点作为基准像素,由所有基准像素组成基准图像,对其进行预测生成残差直方图,然后通过平移残差直方图进行秘密数据的嵌入,根据原始图像的大小,可多次分块进行秘密数据的嵌入。本发明是基于残差直方图的可逆数据隐藏,对于同一幅原始图像,分块大小不同,生成的残差直方图不同,嵌入容量也截然不同。此外,本方法不仅实现了在提取秘密信息后,完整恢复原始图像,而且在保证良好的隐写图像质量的同时,提高了嵌入容量。

附图说明

[0076] 图1是本发明实施例中的原始图像P;
[0077] 图2是本发明实施例中的原始图像的残差直方图H(x);
[0078] 图3是本发明实施例中第一次嵌入过程中经过平移后的残差直方图;
[0079] 图4是本发明实施例中第一次嵌入后的加密图像P1;
[0080] 图5是本发明实施例中的基准图像B;
[0081] 图6是本发明实施例中的基准图像的残差直方图HB;
[0082] 图7是本发明实施例中第二次嵌入过程中经过平移后的基准残差直方图;
[0083] 图8是本发明实施例中第二次嵌入后的基准加密图像P2;
[0084] 图9是本发明实施例中的最终加密图像C。

具体实施方式

[0085] 下面对本发明作进一步描述。以下实施例仅用于更加清楚地说明本发明的技术方案,而不能以此来限制本发明的保护范围。
[0086] 本发明实施例提供一种可逆数据隐藏方法,包括如下步骤:
[0087] (1)图像预处理:为避免在后续操作过程中出现上溢或者下溢问题,首先对原始图像中像素值为0或255进行修改。
[0088] 具体实施过程是,将0修改为1,将255修改为254,并且在位置地图中标记为1。另外对于其他像素,如果它们由于后续操作被修改为0或255,则在位置地图中标记为0。位置地图将无损压缩到更小的大小作为有效载荷的一部分。
[0089] (2)对预处理后的图像进行分块:
[0090] 对大小为N×N的原始图像P按照从上到下从左到右的顺序进行分块,分块大小为n×n,则可以得到 个像素块。
[0091] (3)生成残差直方图:
[0092] 在每一个像素块中选取同一位置的像素点作为基准像素,接着进行线性预测,即将基准像素与像素块内的其余像素分别作差得到残差值,从而得到由 个残差值组成的残差图像,最后生成残差直方图H(x),其中x代表残差值。
[0093] 残差值计算公式为:
[0094] p′(i,j)=p0‑p(i,j);
[0095] 其中p0代表像素块中的基准像素值,p(i,j)和p′(i,j)分别代表像素块内除基准像素外的其余像素的初始值和残差值,i和j分别代表像素块内像素点的位置,即第i行的第j列。
[0096] 需要说明的是,由于残差值是由基准像素值与像素块内的其余像素值直接作差得到,不能确保基准像素值为像素块内的最大值或最小值,因此得到的残差值可能为负值,也可能为非负值。
[0097] (4)将秘密数据嵌入至残差直方图中:
[0098] 在残差直方图H(x)中,找到峰值点h(a)a∈[0,255]和零点h(b)b∈[0,255]。利用峰值点h(a)的每个残差值来嵌入1bit的秘密数据,直到秘密信息全部嵌入,得到加密图像。
[0099] (5)对隐藏的秘密数据进行提取和恢复:
[0100] 该步骤需要使用到步骤(2)中的分块大小和步骤(4)中的峰值点h(a)a∈[0,255]和零点h(b)b∈[0,255]。
[0101] 本发明实施例中,将秘密数据嵌入至残差直方图中具体包括如下过程:
[0102] (4.1)第一次嵌入:将步骤(3)中得到的残差直方图H(x)分为两部分NNH和NH。其中NNH是由所有经过线性预测后得到的非负预测误差值生成的直方图,NH是由所有经过线性预测后得到的负预测误差值生成的直方图。对NNH和NH分别进行直方图平移和秘密信息s1嵌入,最后进行反向线性预测得到加密图像P1。
[0103] (4.2)第二次嵌入:提取原始图像P中所有的基准像素点,组成大小为 的基准图像B,接着对其按照n×n进行分块,通过线性预测得到基准图像B的残差直方图HB,然后对HB进行直方图平移和秘密信息s2嵌入,最后进行反向线性预测得到大小为 的基准加密图像P2。
[0104] (4.3)多次嵌入:若经过步骤(4.1)和步骤(4.2)后,秘密数据仍然没有被全部嵌入,剩余部分记为s3,则需要再次进行嵌入。首先提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,接着按照步骤(4.2)中的过程进行嵌入。
[0105] (4.4)图像合并:
[0106] 用第n次嵌入得到的基准加密图像Pn的像素逐个覆盖第n‑1次嵌入得到的加密图像Pn‑1中的基准像素,以此类推,直到加密图像P1的基准像素被逐个覆盖为止,生成大小为N×N的最终加密图像C。
[0107] 本发明实施例中,对隐藏的秘密数据进行提取和恢复具体包括如下过程:
[0108] (5.1)对加密图像C进行分块,分块大小为n×n,提取所有的基准像素生成基准加密图像P2。其中基准像素位置与步骤3中选取的基准像素位置一致。
[0109] (5.2)第一次提取和恢复:对基准加密图像P2进行分块和线性预测,生成基准残差图像。检测基准残差图像的像素,提取嵌入的秘密信息s2。遍历残差图像,如果像素值不在峰值和零点之间,则不对其进行修改。否则将修改该点的像素值。修改时遵循以下三个原则:
[0110] Ⅰ)像素值与峰值a相等,则提取值为1的1bit秘密数据,并且保持像素值不变;
[0111] Ⅱ)像素值与峰值a的绝对差为1,则提取值为0的1bit秘密数据,并且将像素值修改为峰值a;
[0112] Ⅲ)将不满足上述条件的像素值向峰值a的方向调整1,不提取秘密信息。
[0113] 接着进行反向线性预测,恢复基准图像B。将加密图像C中的基准像素逐个替换为基准图像B的像素,然后得到加密图像P1。
[0114] (5.3)第二次提取和恢复:对加密图像P1进行分块和线性预测,得到原始残差图像。检测原始残差图像的像素,提取嵌入的秘密信息s1。对像素值进行修改时遵循(5.2)中的三个原则,接着进行反向线性预测,最终恢复原始图像P。
[0115] (5.4)如果进行了多次嵌入,则对加密图像C按照步骤(5.1)进行分块提取得到基准加密图像P2,再对P2进行分块提取得到P3,以此类推,直到得到基准加密图像Pn。接着按照步骤(5.2)对Pn、Pn‑1……P1分别进行提取和恢复,得到嵌入的秘密信息sn、sn‑1……s1。最后将秘密信息sn、sn‑1……s1合并为s。
[0116] 本发明实施例中,进行直方图平移包括:
[0117] 在残差直方图H(x)中,找到峰值点h(a)a∈[0,255]和零点h(b)b∈[0,255]。不失一般性,当ab,则向左平移1bit。
[0118] 本发明实施例中,进行秘密信息嵌入包括:
[0119] 按从上到下,从左到右的顺序扫描残差图像,一旦遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变。重复该步骤,直到秘密信息全部嵌入。
[0120] 本发明实施例中,进行反向线性预测包括:
[0121] 在残差图像中,将每个像素块的基准像素与像素块内的其余像素分别求和得到初始像素值,从而得到恢复后的图像。
[0122] 计算公式为:p(i,j)=p0+p′(i,j);
[0123] 其中p0代表像素块中的基准像素值,p(i,j)和p′(i,j)分别代表像素块内除基准像素外的其余像素的初始值和残差值,i和j分别代表像素块内像素点的位置,即第i行的第j列。
[0124] 实施例
[0125] 如图1所示,本具体实施例采用MATLAB2016软件进行仿真,原始图像选用大小为512×512的标准测试灰度图像Lena,图像的每一个像素由8比特组成,对Lena图像进行秘密信息的嵌入,本实施例中以2次分块嵌入过程为例,具体过程如下:
[0126] (1)图像预处理:首先对原始图像中像素值为0或255进行修改。具体操作是,将0修改为1,将255修改为254,并且在位置地图中标记为1。另外对于其他像素,如果他们它们由于后续操作被修改为0或255,则在位置地图中标记为0。位置地图将无损压缩到更小的大小作为有效载荷的一部分。
[0127] 本实施例中,原始图像Lena不存在上述问题,所以不需要进行操作。
[0128] (2)分块:对大小为N×N的原始图像P按照从上到下从左到右的顺序进行分块,分块大小为n×n,则可以得到 个像素块;
[0129] 具体的,N=512,n=3,
[0130] (3)进行线性预测生成残差直方图:在每一个像素块中选取同一个位置的像素点作为基准像素,将基准像素与像素块内的其余像素分别作差得到残差值,从而得到由残差值组成的残差图像,最后生成残差直方图H(x)。
[0131] 计算公式为:p′(i,j)=p0‑p(i,j);
[0132] 其中p0代表像素块中的基准像素值,p(i,j)和p′(i,j)分别代表像素块内除基准像素外的其余像素的初始值和残差值,i和j分别代表像素块内像素点的位置,即第i行的第j列;
[0133] 本实施例中,选取3×3分块的中心像素作为基准像素,生成残差直方图如图2所示。
[0134] (4)秘密数据嵌入:
[0135] (4.1)第一次嵌入:将步骤(3)中得到的残差直方图H(x)分为两部分NNH和NH。其中NNH是由所有非负预测误差值生成的直方图,NH是由所有负预测误差值生成的直方图。对NNH和NH分别进行直方图平移和秘密信息s1嵌入,最后进行反向线性预测得到如图4所示的加密图像P1。
[0136] (4.1.1)直方图平移:在残差直方图H(x)中,找到峰值点h(a)a∈[0,255]和零点h(b)b∈[0,255]。不失一般性,当ab,则向左平移1bit。
[0137] 本实施例中,在残差直方图NNH中,峰值点h(a)=h(0)=23585和零点h(b)=h(131)=1,此时ab,将残差直方图NH中x∈(‑101,‑1)的部分整体向左平移1bit,最终得到平移后的残差直方图3。
[0138] (4.1.2)秘密信息嵌入:按从上到下,从左到右的顺序扫描残差图像,一旦遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变。重复该步骤,直到秘密信息s1全部嵌入;
[0139] 本实施例中,在残差直方图NNH中,a=0,在残差直方图NH中,a=‑1,秘密信息s1的数量为45497=23585+21912,其中23585和21912分别为残差直方图NNH和NH的峰值点个数。
[0140] (4.1.3)反向线性预测:在残差图像中,将每个像素块的基准像素与像素块内的其余像素分别求和得到初始像素值,从而得到恢复后的图像。
[0141] 计算公式为:p(i,j)=p0+p′(i,j);
[0142] 其中p0代表像素块中的基准像素值,p(i,j)和p′(i,j)分别代表像素块内除基准像素外的其余像素的初始值和残差值,i和j分别代表像素块内像素点的位置,即第i行的第j列;
[0143] 本实施例中,p0为每个像素块的中心像素值。
[0144] (4.2)第二次嵌入:提取原始图像P中所有的基准像素点,组成大小为 的基准图像B,如图5所示;接着对其按照n×n进行分块,通过线性预测得到基准图像B的残差直方图HB,如图6所示;然后对HB进行直方图平移和秘密信息s2嵌入,最后进行反向线性预测得到如图8所示的大小为 的基准加密图像P2,图7为第二次嵌入中经过平移后的基准残差直方图。
[0145] 本实施例中,分块大小为3×3,秘密信息s2的数量为3537=1843+1694,其中1843和1694分别为残差直方图HB的NNH和NH的峰值点个数。
[0146] (4.3)图像合并:将加密图像P1中的基准像素逐个替换为基准加密图像P2的像素,生成大小为N×N的最终加密图像C,如图9所示。
[0147] (5)提取和恢复:
[0148] (5.1)对加密图像C进行分块,分块大小为n×n,提取所有的基准像素生成基准加密图像P2。
[0149] (5.2)第一次提取和恢复:对基准加密图像P2进行分块和线性预测,生成基准残差图像。检测残差图像的像素,提取嵌入的秘密信息s2。遍历残差图像,如果像素值不在峰值和零点之间,则不对其进行修改。否则将修改该点的像素值。修改时遵循以下三个原则:
[0150] i)像素值与峰值a相等,则提取值为1的1bit秘密数据,并且保持像素值不变;
[0151] ii)像素值与峰值a的绝对差为1,则提取值为0的1bit秘密数据,并且将像素值修改为峰值a;
[0152] iii)将其余像素值向峰值a的方向调整1,不提取秘密信息。
[0153] 接着进行反向线性预测,恢复基准图像B。将加密图像C中的基准像素逐个替换为基准图像B的像素,然后得到加密图像P1。
[0154] (5.3)第二次提取和恢复:对加密图像P1进行分块和线性预测,得到原始残差图像。检测原始残差图像的像素,提取嵌入的秘密信息s1。对像素值进行修改时遵循(5.2)中的三个原则,接着进行反向线性预测,最终恢复原始图像P。
[0155] (5.4)将秘密数据s1和s2合并为s。
[0156] 最后进行嵌入容量和加密图像质量对比,
[0157] 像素间临近相似性的高低决定着嵌入容量的大小,使用线性预测方法进行预测时,不同的分块大小影响像素块中像素间的临近相似性,从而影响嵌入容量。
[0158] 目前,图像质量评价指标使用最为广泛的是峰值信噪比(PSNR),其数值越大表示失真越小,计算公式为:
[0159] 不同分块情况下,一次嵌入和两次嵌入容量的大小以及加密图像质量如下表所示。
[0160]
[0161] 从以上实验结果可以看到,当分块大小为3×3时,嵌入容量较高,并且加密后的图像质量也较好,所以在本实施例中采取3×3的分块。
[0162] 本发明的另一个实施例提供一种可逆数据隐藏装置,包括:
[0163] 初始模块,用于对预处理后的原始图像进行分块得到像素块;
[0164] 第一生成模块,用于对像素块选取基准像素进行线性预测得到残差值组成的原始残差图像,并生成原始图像的残差直方图;
[0165] 第二生成模块,用于提取像素块的基准像素组成基准图像,对基准图像进行分块和线性预测得到基准残差图像,并生成基准图像的残差直方图;
[0166] 嵌入模块,用于将秘密数据逐次嵌入至所述原始残差图像和基准残差图像中,得到原始加密图像和基准加密图像;
[0167] 合并模块,用于将原始加密图像和基准加密图像进行合并,得到最终的加密图像;
[0168] 以及,
[0169] 恢复模块,用于对最终的加密图像中的秘密数据进行提取和恢复。
[0170] 本实施例中,嵌入模块具体用于,
[0171] 将原始图像的残差直方图分为NNH和NH,其中,NNH是由所有经过线性预测后得到的非负预测误差值生成的残差直方图,NH是由所有经过线性预测后得到的负预测误差值生成的残差直方图;
[0172] 对NNH和NH分别进行直方图平移;
[0173] 基于平移后的残差直方图,将一定数量的秘密数据s1嵌入相应的残差图像中;
[0174] 将嵌入秘密数据s1的残差图像进行反向线性预测得到原始加密图像P1;
[0175] 对基准图像的残差直方图进行直方图平移;
[0176] 基于平移后的残差直方图,将一定数量的秘密数据s2嵌入基准残差图像中;
[0177] 将嵌入秘密数据s2的残差图像进行反向线性预测得到基准加密图像P2;
[0178] 如果经过原始残差图像和基准残差图像的嵌入后,秘密数据仍然没有被全部嵌入,则提取上一次嵌入完成后得到的基准加密图像P2中的所有基准像素点,组成第二基准图像,对第二基准图像进行分块和线性预测得到第二基准残差图像,将一定数量的秘密数据嵌入第二基准残差图像中,并以此类推。
[0179] 本实施例中,嵌入模块还用于,
[0180] 在残差直方图H(x)中,找到峰值点H(a)a∈[0,255]和零点H(b)b∈[0,255],x表示残差值;
[0181] 当a
[0182] 当a>b时,将残差直方图H(x)x∈(a,b)的元素整体向左平移1bit;
[0183] 按从上到下,从左到右的顺序扫描残差图像,如果遇到峰值点像素值a,则检查待嵌入位,如果待嵌入位为1,则将该点像素值向零点b的方向移动1个单元,否则不做任何改变;重复操作,直到秘密信息全部嵌入或者不存在峰值点;
[0184] 所述残差图像包括原始残差图像和所有的基准残差图像。
[0185] 本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD‑ROM、光学存储器等)上实施的计算机程序产品的形式。
[0186] 本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
[0187] 这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
[0188] 这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
[0189] 最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。