2023预测误差位平面冗余-RDHEI Based on Bit-Plane Redundancy of Prediction

本文介绍了一种利用简化梯度调整预测器(SGAP)进行图像预测误差处理的方法,通过预处理、加密、数据隐藏和嵌入,实现了图像的保护和秘密信息的隐藏。实验结果分析了嵌入容量、视觉质量和可逆性等指标。
摘要由CSDN通过智能技术生成

RRBE

本文仅供学习,切勿转载和搬运,如有侵权,联系立删~

一、背景知识

The Gradient-Adjusted Predictor(GAP,梯度调整预测器)

根据被预测像素周围的七个像素进行预测

具体流程可参考文献X. Wu and N. Memon, "Context-based, adaptive, lossless image coding," IEEE Trans. Communications, vol. 45, no. 4, pp. 437-444, April 1997.

本文利用GAP的简化版本SGAP,只使用四个相邻像素进行预测,如图一:

 二、提出方法框架

内容拥有者首先对原始图像进行预处理,得到预测误差图像和误差矩阵块对应的块类型。然后对预测误差图像和矩阵块分别进行流密码加密和置乱。最后,将块类型编码并嵌入到块中以获得最终的加密图像并发送给数据隐藏器。

数据隐藏者从最终的加密图像块中提取其对应的块类型值并解码,计算剩余空间并将加密秘密数据嵌入其中,标记后的加密图像发送给接收方。

接收端对标记后的加密图像中的矩阵进行分块,提取图像中的辅助信息。根据不同的密钥,可以分别提取秘密数据和恢复原始图像。

三、详细介绍

A预处理

A.1计算预测误差 

边缘像素P_r作为参考像素保持不变,使用SGAP对其他像素进行计算,如下式,从而获得预测像素P_x

 除参考像素外,计算每个像素的预测误差:

 抛去参考像素,留下黄色区域矩阵P((M-1)\times (N-2)),如左图:

 由于预测误差存在正负,所以需要记录误差标志图作为辅助信息如右图,负1正0,总长度为MN-2M-N+2。因此获得了绝对值矩阵P',与参考像素共同组成预测误差图I_{op}

A.2误差矩阵类型

将上一步得到的矩阵P',分成n个互不重叠的s\times s大小的块矩阵B_i(i=1,2,...,n .n=\left \lfloor \frac{(M\times N)\times (N-2)}{s\times s} \right \rfloor),以下步骤用来依次处理每个B_i,块矩阵的像素被标记为e_t(t\in [1,t^2]),其中e_1作为参考像素,将所有像素转化为8位二进制

 再转换成十进制可通过下式:

 将块内除e_1外的像素的8位二进制序列与e_1的8位二进制序列进行MSB-LSB进行比较,获得相同比特的\alpha(\alpha \in [0,8]),通过下图给出一个例子:

这是针对预测误差做的处理,保留块内第一位参考像素的值好像没有什么意义,反倒占用了可嵌入的空间。

A.3合并块类型以生成β映射

遍历完所有的B_i矩阵块后,就会得到一个\alpha序列,可以计算\alpha序列中每个值[0,8]的频率,对纹理平滑和粗糙的图像作实验,以下表为例,

给出了一个较为普适性的结论: 统计结果表明,对于纹理简单的平滑图像,块类型主要分布在α = 4,5,6.纹理粗糙的复杂图像块类型主要分布在α = 2,3,4。因此可以进行块类型的合并来减少不必要的空间浪费。

本文提出了六种块类型,用\beta表示:

对平滑图像\beta _s

\alpha\beta
0,10
2,32
44
55
66
7,87

对复杂图像 \beta _c

\alpha\beta
0,10
22
33
44
5,65
7,87

因此得到一个\left \lfloor \frac{M-1}{s} \right \rfloor\times \left \lfloor \frac{N-2}{s} \right \rfloor大小的\beta标记图。举个平滑图例子:

因此,对于标记为\beta的块来说,所能腾出的空间是\beta (s^2-1)

A.4霍夫曼编码压缩\beta

以平滑图像Lena,块大小设置为2×2为例,按照\beta出现的频率,使用{00,01,100,101,110,111}进行编码,如下表:

这样原始图像的 \beta信息就会根据霍夫曼编码规则得到了一个\beta-映射。

为了恢复原始图像,需要将\beta的霍夫曼编码规则作为辅助信息嵌入到图像中,共占用32位比特:

由此,每一小块的所腾出的空间容量SEC_i和整个图像可嵌入空间MEC可计算为:

B图像加密

先对预测误差图I_{op}进行像素级别的流密码加密,再对误差绝对值矩阵P'分块进行置乱加密。

B.1流密码加密图像

使用加密密钥K_{e1}生成与原矩阵相同大小的伪随机矩阵R,转化成8位二进制,与原像素值对每一比特进行异或计算,得到加密的值。

B.2块置乱

使用置乱密钥K_{e2}生成与块个数相同的没有重复的序列\left \{ \delta _1,\delta _2,...,\delta _n \right \},按照这个序列打乱所有的块,得到一个新的块的排序\left \{ {B'_{\delta _1}}{B'_{\delta _2}},...,{B'_{\delta _N}} \right \},进一步获得了加密图像I_E。注意,如果原始图像的尺寸不能被完整的分块,则不在块中的像素只进行流密码加密。

这一步的块加密除了增加图像安全性之外没有什么意义,本就是预处理得到图像的冗余空间,更何况对每一个像素进行了流加密,原始图像的空间相关性已经被破坏了

C数据隐藏

C.1嵌入块类型β值

这一步是通过内容持有者进行操作,对加密图像I_E包含的P'_E也分成s×s大小的小块,用块置乱密钥K_{e2}将β-映射置乱到对应的矩阵块位置的,得到P''_E。在嵌入过程中,每一个小块中的参考像素保持不变,将β-映射到其它剩余可嵌入位置,如下图:

平滑图像小块矩阵腾出的空间β为6
β映射嵌入的例子

其中蓝色区域就是可嵌入秘密信息的位置,灰色区域不变,黄色区域是小块内的参考像素,绿色区域是嵌入的β-映射。 完成所有β-映射嵌入后将得到的I'_E传给数据隐藏者。

 注意,当β=0时,霍夫曼编码111,此时嵌入的β映射取代的位置是没有腾出嵌入空间的,这些被替换的原有的值就需要被记录下来!

C.2秘密数据嵌入

数据隐藏者先将P''_E进行划分块处理,再根据块中提取到的β-映射以及霍夫曼编码规则进行解码恢复类型。将秘密信息通过密钥K_h进行加密,嵌入到每个块中可嵌入的空间

C.3多级嵌入

开始对每一个块的参考像素下手,将其组成一个新的块参考误差像素矩阵,再分块获得二级块类型二级块参考像素,直至不能参考像素不能在进行分割成小矩阵块。

C.4辅助信息嵌入

(1)块大小的值,4比特信息;

(2)记录误差正负MN-2M-N+2比特;

(3)六个霍夫曼编码规则34比特;

(4)对于β=0时嵌入的霍夫曼映射所取代的值,被称为溢出像素;

(5)多级嵌入级数\gamma

(6)最后的嵌入坐标(m,n),长度log_2(m\times n)

边缘参考像素;连接辅助信息来替换这些像素的LSB。统计辅助信息的长度表示为L_\xi,即替换参考像素P_rL_\xi LSB.将长度值L_\xi和替换的LSB连接在秘密数据的前面,并且将信息流顺序地嵌入到由每个加密块空出的位平面中。获得标记的加密图像I_w,发送到接收者。

D数据提取和图像恢复

D.1只有数据隐藏密钥

首先从标记的加密图像的边缘像素LSB位中提取辅助信息,包括块的大小、误差正负映射、编码规则、溢出像素被替换的MSB,多级嵌入级别和最后嵌入坐标;接着根据提取的信息对标记的加密图像中划分为小块,根据小块内的β-映射获得要提取的数据个数;然后再对所有块内的参考像素进行矩阵重组,根据提取的多级嵌入级别进行秘密信息提取;最后将提取到的信息连接在一起,可以获得替换的LSB和加密的信息,通过K_h解密即可获得原始秘密信息。

D.2只有图像加密密钥

首先从标记的加密图像的边缘像素LSB位中提取辅助信息,β-映射、溢出像素被替换的MSB、边缘像素的LSB,并还原LSB位;接着根据β-映射,将β=0块中所替换的MSB还原;将标记的加密图像中的误差矩阵划分为大小为s的块,并使用加密密钥K_{e2}对该块进行逆置乱以恢复加密块。使用由加密密钥K_{e1}生成的M× N伪随机序列解密图像;每个块中的参考误差像素仅在嵌入之前和之后被加密。在解密之后,参考误差像素的前β MSB可以用于恢复块中剩余像素的β MSB。块内剩余像素的(8−β)LSB已通过解密恢复;由边缘像素的LSB提取的正负映射用于恢复相应位置的预测误差像素;边缘像素使用SGAP来预测目标像素值,并且添加预测误差以恢复原始图像I_o

D.3同时拥有两个密钥

参照前两步进行操作即可。

四、实验结果分析

分别用ER(嵌入容量)、PSNR【用原始图像估计恢复图像的视觉质量】、MSE(测试方法可逆性)、SSIM(图像相似性的度量)来进行实验性能分析。

  • 11
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值