Print

发布时间: 2017-12-16
摘要点击次数:
全文下载次数:
DOI: 10.11834/jig.170101
2017 | Volume 22 | Number 12




    图像处理和编码    




  <<上一篇 




  下一篇>> 





图像分区选择的像素值排序可逆数据隐藏
expand article info 李蓉, 李向阳
广东农工商职业技术学院计算机系, 广州 510507

摘要

目的 基于像素值排序(PVO)的数据隐藏算法因其高保真的优越性受到广泛重视,并不断得到改进。本文提出一种图像分区选择思想,以进一步充分利用图像的嵌入空间,改善PVO算法的嵌入性能,提高载秘图像的信噪比。方法 原始PVO算法通常采用预测差值“1”进行数据隐藏,对平滑像素组有较好的利用率和隐蔽性,而对毛躁像素组隐秘性能明显下降,算法性能与图像像素分布情况密切相关。本文在PVO算法基础上提出图像分区选择的思想,首先,将原始图像分为若干区域,然后按移位率从小到大的顺序依次选择图像区域;其次,在每个区域中选择合适的嵌入预测误差;最后,按顺序在被选区域利用该区域的最优嵌入差值完成信息嵌入。结果 假设将图像划分为8×8个区域,对本文算法与原始PVO算法进行比较,当嵌入量为1×104 bit时,Elaine图像的移位率由81.59%降为74.40%,载秘图像的峰值信噪比(PSNR)值由55.388 2提高为56.996 9,提高了1.608 7,采用其他图像并就不同嵌入量进行实验,各图像PSNR值均表现出不同程度的提高。其次,将图像分别划分为2×2、4×4、8×8、16×16个分区,当嵌入量为1×104 bit时,Lena图像PSNR由原始PVO的59.204 6逐渐增加至60.846 9,其他图像在不同嵌入量时PSNR均随着分区数的增加而有不同程度的提高。结论 本文提出的基于图像分区选择的改进PVO算法,可根据像素分布情况增加对嵌入空间的利用,在相同嵌入量情况下,改进后的算法能够获得更高的PSNR值;在一定分区数量条件范围内,分区数量与图像PSNR值表现出正相关性,随着分区数量的增加,图像PSNR值随之增加;本文方法在一定程度上改善了嵌入容量,弥补了因分区数量增加带来的辅助信息增加的问题。

关键词

像素值排序; 分区选择; 嵌入预测误差; 可逆数据隐藏; 移位率; 信噪比

Pixel value ordering reversible data hiding algorithm based on image block selection
expand article info Li Rong, Li Xiangyang
Guangdong AIB Polytechnic, Computer Department, Guangzhou 510507, China

Abstract

Objective Reversible image data hiding refers to hiding information in an image. The information receiver not only can extract complete secret information correctly but also can restore the original image without loss. Reversible image data hiding is widely used in various fields, such as covert communication, medical image processing, copyright protection, and remote sensing technology. At present, many methods are used to implement image data hiding, including reversible data hiding method based on lossless compression, reversible data hiding method based on integer transform, reversible data hiding method based on histogram translation, and reversible data hiding method based on prediction error expansion. The reversible data hiding algorithm based on pixel value ordering (PVO) is widely regarded and improved constantly because of its high fidelity superiority. In this study, an improved PVO reversible data hiding algorithm based on the idea of image block selection is proposed to improve the embedding performance of PVO algorithm and improve the peak value signal-to-noise ratio (PSNR) of stego-image. Method The PVO method prosed by Li et al. is performed using the following procedures. First, the cover image is divided into non-overlapped groups. Second, the pixel values are sorted in an ascending order for each group. Third, the maximum pixel value is predicted by the sub-maximum pixel value to obtain the maximum prediction error for the pixel values after sorting in each group; the minimum pixel value is predicted by the sub-minimum pixel value to obtain the minimum prediction error. Finally, if prediction errors are equal to 1, then the pixels are used to carry the secret data. If prediction errors are greater than 1, then the pixels are shifted to create vacancy; otherwise, prediction errors are discarded in data embedding. The PVO algorithm usually uses the prediction errors equal to 1 for information hiding and thus exhibits good utilization and concealment capability for smooth image region. Otherwise, algorithm performance is obviously decreased and the performance of PVO algorithm is closely related to pixel distribution. Given that the distribution of pixels in different regions is non-uniform, if the image is divided equally into several regions, the embedding capacity used in the PVO algorithm in different regions differs. When the same amount of information is embedded in each partition, PSNR values also differ. Thus, this study proposes the idea of image block selection to fully utilize embedded space and improve image embedding performance. First, the original image is divided into several non-overlapping block areas, and the block area is selected on the basis of the order of the shift rate from small to large. Second, the appropriate embedding prediction error is selected in each block area. Finally, information embedding is carried out using the original PVO method on the basis of the block selection order and the optimal embedding difference of each block. Result First, images divided into 8×8 blocks are used in comparing the improved algorithm with the original PVO algorithm. When the embedding amount is 1×104 bit, the shift rate of the Elaine image is reduced from 81.59% to 74.40%, the PSNR is increased from 55.388 2 to 56.996 9, the growth is 1.608 7, the PSNR value of the Aerial image is improved by 1.88, and the PSNR value of the Baboon image is improved by 2.29. The PSNR value of each image shows various degrees of improvement when the experiments are performed using different embedding amounts. Second, images divided into different number blocks, such as 2×2, 4×4, 8×8, or 16×16, are used in comparing the PSNR with the original PVO algorithm. The PSNR value of the Lena image is gradually increased from 59.204 6 to 60.846 9 when the embedding amount is 1×104 bit, and the PSNR values of other images are increased with the increase in the number of blocks. Finally, the maximum embedding amount of the algorithm is counted in the case of different partitions. The maximum embedding amount of the original PVO algorithm is 14 972 bit, the maximum embedding is 14 992 bit when the image is divided into 4×4 blocks, and the maximum embedding is increased to 15 753 bit when the image is divided into 16×16 blocks. The maximum embedding of the image is improved with the increase in the number of blocks. Conclusion In this study, an improved PVO algorithm based on image block selection is proposed to increase the use of embedded space according to the distribution of pixels. The improved PVO algorithm can obtain high PSNR values and improve the visual experience of secret image in the same embedding amount by adopting image block selection and embedding prediction error optimization strategy in the process of information hiding. Within a certain number of blocks, the number of blocks shows positive correlation with the PSNR value of image. As the number of blocks increases, the PSNR value of image also increases. The method improves the embedding capacity to a certain extent and compensates for the increase in auxiliary information caused by the increase in the number of partitions. The algorithm exhibits a certain improvement in embedding capacity and image fidelity compared with the original PVO algorithm. Subsequent research will focus on the partition rules and optimization issues to further improve the performance of PVO-based algorithm.

Key words

pixel value ordering; block selection; embedding prediction-error; reversible data hiding; shift pixels rate; peak value signal-to-noise ratio

0 引言

可逆数据隐藏(RDH)旨在将信息隐藏在载体中,信息接收者在正确提取完整隐秘信息的同时可无失真地恢复原始载体。图像可逆数据隐藏是指利用图像作为隐秘载体,因其失真小且较易无损恢复的优点被广泛应用于隐蔽通信、医学图像处理、版权保护、遥感技术等领域。当前,图像可逆数据隐藏领域具有代表性的算法包括基于无损压缩的可逆数据隐藏方法[1-2]、基于整数变换的可逆数据隐藏方法[3-5]、基于直方图平移的可逆数据隐藏方法[6-7]、基于预测误差扩展的可逆数据隐藏方法[8-10]等几类。基于无损压缩的可逆数据隐藏方法因隐藏容量有限且对原始图像改动较大,在实际使用过程中存在局限性;基于整数变换的可逆数据隐藏方法嵌入容量较大,但嵌入效率较低;基于直方图平移的可逆数据隐藏方法对图像的依赖性较大,且嵌入容量不高;基于预测误差扩展的可逆数据隐藏方法以预测误差代替原有的实际差值从而实现信息嵌入,在嵌入容量和嵌入性能上均有较大提高。

除此之外,文献[11]在预测误差扩展思想基础上提出基于像素值排序(PVO)的数据隐藏方法,该方法首先将图像像素进行分组,然后对每组像素值进行排序,针对排序后的像素分别利用次大值预测最大值和次小值预测最小值,从而得到最大值预测误差与最小值预测误差,并选择预测误差值“1”完成信息嵌入,预测差值大于“1”的则执行移位操作以便于信息的提取,该方法极大地改善了嵌入性能和载秘图片视觉效果。文献[12-13]对PVO算法进行了进一步改进,引入了对预测误差值“0”的使用,提高了嵌入容量。文献[14]提出基于多直方图修改的PVO算法,引入对嵌入误差的优选过程,提高了载秘图像的信噪比。

PVO算法由于多使用差值“1”进行信息隐藏,对图像中平滑的像素块有较好的利用率和隐蔽性,而对较毛躁的像素块隐藏性能明显下降。通过分析图像像素分布情况,图像中不同区域的像素分布不均匀,如果将图像平均分为若干区域,则每个区域采用PVO算法时的预测误差分布情况也不相同。若定义完成信息嵌入时执行移位操作的像素数量占执行嵌入与移位操作的像素总量的比值为移位率,在嵌入相同信息量情况下,各区域完成数据嵌入引起的像素移位情况存在差别,移位率越小,载秘图像的失真度越小。再者,若对图像的不同分区采用同一预测误差并按传统PVO算法执行信息嵌入则不能很好地利用图像的嵌入空间。因此,为了得到更好的嵌入效果,本文提出图像区域分块的思想,首先统计分区后的每个图像区域像素移位率和该区域的最佳嵌入差值,在信息嵌入过程中根据移位率从小到大顺序对图像分块区域进行选择,并在该区域中选取优化后的嵌入误差进行信息嵌入,以提高嵌入性能和载秘图片质量。相应的实验结果表明,改进PVO算法在隐藏容量和图像的保真度上都有一定的提高。

1 PVO算法及性能分析

1.1 PVO算法简介

PVO算法作为PEE(prediction error expansion)算法的分支,通过利用分组排序后的像素最大值预测误差和像素最小值预测误差来实现信息嵌入,算法过程如下:

1) 将大小为$M$×$N$的图像分为若干个小像素组,假设每个像素组大小为$m$×$n$(假设$m$=2, $n$=2),则像素组数量为$B$=($M$×$N$)/($m$×$n$);

2) 对每个像素组${P_i}\left( {i = 1,2, \cdots ,B} \right)$中的像素值${X_i} = \left\{ {{x_{i1}},{x_{i2}}, \cdots ,{x_{it}}} \right\}\left( {t = m \times n} \right)$进行升序排序得到新序列${{x'}_i} = \left\{ {{{x'}_{i1}},{{x'}_{i2}}, \cdots ,{{x'}_{it}}} \right\}\left( {t = m \times n} \right)$,满足${{x'}_{i1}} \le {{x'}_{i2}} \le \cdots \le {{x'}_{it}}$,且当像素值相等时下标小的像素值排在前面;

3) 对像素组${P_i}$,分别利用次小值${{x'}_{{i_2}}}$预测最小值${{x'}_{{i_1}}}$和利用次大值${{x'}_{{i_{t - 1}}}}$预测最大值${{x'}_{{i_{t}}}}$,得到最小值预测误差${E_{{\rm{min}},i}} = {{x'}_{{i_2}}} - {{x'}_{{i_1}}}$和最大值预测误差${E_{{\rm{max}},i}} = {{x'}_{{i_t}}} - {{x'}_{{i_{t - 1}}}}$,其中$i$=1, 2, …, $B$

4) 假设待嵌入秘密信息为$s$∈0, 1,当最大值预测误差值和最小值预测误差值等于1时进行信息嵌入;当差值大于1时执行移位操作,便于数据提取;否则像素值不变。具体过程为

$ x_{{i_t}}^ * = \left\{ \begin{array}{l} {{x'}_{{i_t}}}\;\;\;\;\;\;\;\;\;\;{E_{\max ,i}} = 0\\ {{x'}_{{i_t}}} + s\;\;\;\;\;\;{E_{\max ,i}} = 1\\ {{x'}_{{i_t}}} + 1\;\;\;\;\;\;{E_{\max ,i}} > 1 \end{array} \right. $ (1)

$ x_{{i_1}}^ * = \left\{ \begin{array}{l} {{x'}_{{i_1}}}\;\;\;\;\;\;\;\;\;\;{E_{\min ,i}} = 0\\ {{x'}_{{i_1}}} - s\;\;\;\;\;\;{E_{\min ,i}} = 1\\ {{x'}_{{i_1}}} - 1\;\;\;\;\;\;{E_{\min ,i}} > 1 \end{array} \right. $ (2)

由于嵌入过程没有改变像素的排序结果,因此对信息接受者来说可以使用相同的分组排序方法提取隐秘信息并无损恢复原始图像。

1.2 PVO算法分析

根据上述算法描述,嵌入过程主要使用预测差值“1”来完成,这是由于通常情况下差值“1”出现的概率较大,算法的最大嵌入量主要由差值“1”的个数决定。若对图像进行区域划分,每个不同分区的预测差值分布情况呈现差异,以图像baboon为例,将其划分为4×4个区域(如图 1),采用PVO算法思想,对每个区域分别进行像素分组排序,统计得到各区域出现频率最多的预测误差值,并计算各差值在所属区域的分布密度结果如表 1所示。

图 1 图像baboon及其区域划分示例
Fig. 1 The image of baboon and regional division example

表 1 不同区域最大数量预测误差值及移位率统计情况
Table 1 Statistics of the maximum number of prediction errors in different regions

下载CSV
区域最大数量预测误差值像素点统计情况
差值个数密度/%移位率/%
$I$1133724.5494.88
$I$1217308.9190.72
$I$1326838.3490.45
$I$1424265.2094.37
$I$2115106.2393.57
$I$2211 45817.8080.32
$I$2311 63319.9377.72
$I$2415666.9192.84
$I$3111 01612.4086.79
$I$3211 28615.7082.73
$I$3311 20714.7383.96
$I$34183010.1389.30
$I$4111 19714.6184.15
$I$4211 06212.9686.01
$I$43193211.3887.84
$I$4411 08413.2385.60

通常情况下,利用移位率$R$来衡量信息嵌入对图片带来的影响,计算方法为

$ R = \frac{S}{{S + E}} $ (3)

式中,$S$为执行移位操作的差值数量,$E$为执行嵌入操作的差值数量。给定嵌入量时,移位数越少,移位率越小,图片失真越小。

图 1中各分块区域利用出现频率最高的差值进行信息嵌入带来像素移位情况,结果如表 1所示。

表 1可知,图像分区后每个区域出现次数最多的预测误差值不同,且随着分块数量的增加差异性愈加明显,这导致每个分区是否使用个数最多的预测差值进行嵌入的嵌入量和移位率有很大差别。

同时,采用不同差值进行信息嵌入对图像的影响也不相同,以区域$I$11为例,分别利用预测差值“1”和预测差值“3”进行信息嵌入过程带来的直方图变化如图 2所示。可以看出,采用预测差值“3”实现数据隐藏引起的像素变动情况更少,直方图变化较小,因此在每个区域分别选择最大个数差值嵌入信息可以提高载密图像的信噪比。

图 2 信息嵌入过程直方图修改示意图
Fig. 2 Schematic diagram of histogram modification in information embedding ((a) using the prediction difference "1"; (b) using the prediction difference "3")

其次,每个区域进行最大容量嵌入情况下,各区域的移位率差别很大,区域$I$23出现最小值77.72%,区域$I$11移位率最大为94.88%,那么选择适当区域进行信息隐藏将得到更好的图片质量。

由于每个区域的最大个数预测差值分布密度差别较大,各区域利用最大个数预测差值进行信息隐藏完成的嵌入量和带来的像素移位情况也不相同,当嵌入相同信息量的情况下,对图片带来的改变程度也不一样,因此,当给定嵌入量情况下,选择哪些图像区域或者哪些区域的组合完成数据隐藏对原始图像的影响程度不同。

2 改进的PVO可逆数据隐藏算法

2.1 图像分区优选机制

对某一图像来说,信息隐藏性能由像素改变情况来决定。根据上述分析,在进行图像分块后,应该根据实际像素分布情况进行区域优化选择,而对选定的区域选择最优嵌入差值完成信息嵌入。基于此思想,建立图像分块选择优化过程如下:

1) 嵌入区域优选过程。假设图像$I$的大小为$M$×$N$,被平均分为$T$1×$T$2个区域,记每个图像区域为${I_{ij}}$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2)。

对区域${I_{ij}}$来说,利用PVO方法进行像素分组,设第$k$组的最大值预测误差和最小值预测误差分别为$e\_max_{ij}^k$$e\_min _{ij}^k$,若进行信息嵌入的最大值预测误差和最小值预测误差分别为$E\_Max_{ij}^,$$E\_Min_{ij}^,$,则嵌入信息差值数量为

$ \begin{array}{*{20}{c}} {{E_{ij}} = \# \left( {e\_\mathit{max}_{ij}^k = E\_Ma{{x'}_{ij}}} \right) + }\\ {\# \left( {e\_\mathit{min}_{ij}^k = E\_Mi{{n'}_{ij}}} \right)} \end{array} $ (4)

式中,#表示对满足条件的误差值进行计数。移位差值数量为

$ \begin{array}{*{20}{c}} {{S_{ij}} = \# \left( {e\_\mathit{max}_{ij}^k > E\_Ma{{x'}_{ij}}} \right) + }\\ {\# \left( {e\_\mathit{min}_{ij}^k > E\_Mi{{n'}_{ij}}} \right)} \end{array} $ (5)

移位率为

$ {R_{ij}} = {S_{ij}}/\left( {{S_{ij}} + {E_{ij}}} \right) $ (6)

对每个区域进行相同操作,可得到所有区域的移位率序列$\mathit{\boldsymbol{R}} = \left\{ {{R_{11}},{R_{12}}, \cdots ,{R_{{T_1}{T_2}}}} \right\}$,对该序列进行升序排序得到$\mathit{\boldsymbol{R'}} = \left\{ {{{R'}_{11}},{{R'}_{12}}, \cdots ,{{R'}_{{T_1}{T_2}}}} \right\}$,且满足${{R'}_{11}} \le {{R'}_{12}} \le \cdots {{R'}_{{T_1}{T_2}}}$。信息嵌入过程将按移位率由低到高的顺序依次选择区域块进行,直至完成所有秘密信息的嵌入。

2) 嵌入差值的选择方法。采用原始PVO算法方法,对区域${I_{ij}}$中的像素进行分组,假设分组大小为2×2。设选定进行信息嵌入的最大值预测误差和最小值预测误差分别为$E\_Max_{ij}^*$$E\_Min_{ij}^*$,利用式(4)—式(6)中的定义,建立区域${I_{ij}}$优化目标函数

$ \begin{array}{*{20}{c}} {{\rm{Min}}\;F\left( {E\_Max_{ij}^ * ,E\_Min_{ij}^ * } \right) = \frac{{{S_{ij}}}}{{{S_{ij}} + {E_{ij}}}}}\\ {{\rm{s}}{\rm{.}}\;{\rm{t}}{\rm{.}}\;{E_{ij}} \ge {C_{ij}};i = 1,2, \cdots ,{T_1};j = 1,2, \cdots ,{T_2}} \end{array} $ (7)

式中,${C_{ij}}$为区域${I_{ij}}$的需要嵌入的信息量,由此可以得到最佳嵌入预测误差组合。

2.2 改进的PVO可逆数据隐藏算法

2.2.1 信息嵌入算法

1) 假设原始图像$I$大小为$M$×$N$,被平均分为$T$1×$T$2个区域,记每个区域为${I_{ij}}$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2),则区域数量为$T$1×$T$2,每个区域像素个数为($M$×$N$)/($T$1×$T$2)。

2) 对区域${I_{ij}}$采用原始PVO算法进行分组排序(设为2×2),设分组数量为$u$,估计第$k$组的最大值预测误差$e\_max_{ij}^k$和最小值预测误差$e\_min _{ij}^k$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2; $k$=1, 2, …, $u$)。

3) 统计区域${I_{ij}}$不同最大预测误差值个数$n\_max_{ij}^t$和不同最小预测误差值个数$n\_min _{ij}^t$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2; $t$=0, 1, 2…255)。

4) 对区域${I_{ij}}$求最大预测误差值个数与最小预测误差值个数之和最大的差值$E\_Max_{ij}^,$$E\_Min_{ij}^,$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2)。

5) 利用式(4)—式(6),计算区域${I_{ij}}$使用差值$E\_Max_{ij}^,$$E\_Min_{ij}^,$完成信息嵌入的最大嵌入量${E_{ij}}$和移位率${R_{ij}}$($i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2)。

6) 对所有区域的移位率进行升序排序,得到序列${R^,} = \left\{ {{{R'}_{11}},{{R'}_{12}}, \cdots ,{{R'}_{{T_1}{T_2}}}} \right\}$,且满足${{R'}_{11}} \le {{R'}_{12}} \le \cdots {{R'}_{{T_1}{T_2}}}$

7) 设待嵌入秘密信息$S = \left\{ {{s_1},{s_2}, \cdots ,{s_L}} \right\}$,长度为$L$,其中${s_l}$∈{0, 1},$l$=1, 2, …, $L$

8) 假设${t_i} = 1$

(1) 根据序列${R'}$中的排序结果,在当前未使用过的区域中,获取最小移位率${{R'}_{{i^*}{j^*}}}$,并记对应区域为${I_{{i^*}{j^*}}}$

(2) 获取区域${I_{{i^*}{j^*}}}$的最大嵌入量${E_{{i^*}{j^*}}}$

(3) 完成信息嵌入,过程如下:

① 如果${E_{{i^*}{j^*}}}$$L$,则区域${I_{{i^*}{j^*}}}$选择嵌入误差分别为$E\_Max_{{i^*}{j^*}}^,$$E\_Min_{{i^*}{j^*}}^,$,嵌入量$E\_Bi{t_{{i^*}{j^*}}} = {E_{{i^*}{j^*}}}$,实现信息嵌入过程为:

像素最大值$x_{{i^*}{j^*}}^{'k4}$执行修改操作并得到新像素值$x_{{i^*}{j^*}}^{*k4}$,即

$ x_{i * j * }^{ * k4} = \left\{ \begin{array}{l} x_{i * j * }^{'k4}\;\;\;\;\;\;\;\;\;e\_\mathit{max}_{i * j * }^k < E\_Ma{{x'}_{i * j * }}\\ x_{i * j * }^{'k4} + {s_l}\;\;\;\;e\_\mathit{max}_{i * j * }^k = E\_Ma{{x'}_{i * j * }}\\ x_{i * j * }^{'k4} + 1\;\;\;\;\;e\_\mathit{max}_{i * j * }^k > E\_Ma{{x'}_{i * j * }} \end{array} \right. $ (8)

像素最小值$x_{{i^*}{j^*}}^{'k1}$执行修改操作并得到像素值$x_{{i^*}{j^*}}^{*k1}$,即

$ x_{i * j * }^{ * k1} = \left\{ \begin{array}{l} x_{i * j * }^{'k1}\;\;\;\;\;\;\;\;\;e\_\mathit{min}_{i * j * }^k < E\_Mi{{n'}_{i * j * }}\\ x_{i * j * }^{'k1} - {s_l}\;\;\;\;e\_\mathit{min}_{i * j * }^k = E\_Mi{{n'}_{i * j * }}\\ x_{i * j * }^{'k1} - 1\;\;\;\;\;e\_\mathit{min}_{i * j * }^k > E\_Mi{{n'}_{i * j * }} \end{array} \right. $ (9)

记区域${I_{{i^*}{j^*}}}$的最大嵌入差值$E\_Ma{x_{{i^*}{j^*}}}$=$E\_Max{'_{{i^*}{j^*}}}$及最小嵌入差值$E\_Mi{n_{{i^*}{j^*}}}$=$E\_Min{'_{{i^*}{j^*}}}$

② 如果${E_{{i^*}{j^*}}}$$L$,利用式(7)求得最优嵌入误差$E\_Ma{x_{{i^*}{j^*}}^*}$$E\_Mi{n_{{i^*}{j^*}}^*}$,区域${I_{{i^*}{j^*}}}$嵌入信息量$E\_Bi{t_{{i^*}{j^*}}} = L$,进行信息嵌入过程为:

像素最大值$x_{{i^*}{j^*}}^{'k4}$执行修改操作并得到新像素值$x_{{i^*}{j^*}}^{*k4}$,即

$ x_{i * j * }^{ * k4} = \left\{ \begin{array}{l} x_{i * j * }^{'k4}\;\;\;\;\;\;\;\;\;e\_\mathit{max}_{i * j * }^k < E\_Max_{i * j * }^ * \\ x_{i * j * }^{'k4} + {s_l}\;\;\;\;e\_\mathit{max}_{i * j * }^k = E\_Max_{i * j * }^ * \\ x_{i * j * }^{'k4} + 1\;\;\;\;\;e\_\mathit{max}_{i * j * }^k > E\_Max_{i * j * }^ * \end{array} \right. $ (10)

像素最小值$x_{{i^*}{j^*}}^{'k1}$执行修改操作并得到像素值$x_{{i^*}{j^*}}^{*k1}$,即

$ x_{i * j * }^{ * k1} = \left\{ \begin{array}{l} x_{i * j * }^{'k1}\;\;\;\;\;\;\;\;\;e\_\mathit{min}_{i * j * }^k < E\_Min_{i * j * }^ * \\ x_{i * j * }^{'k1} - {s_l}\;\;\;\;e\_\mathit{min}_{i * j * }^k = E\_Min_{i * j * }^ * \\ x_{i * j * }^{'k1} - 1\;\;\;\;\;e\_\mathit{min}_{i * j * }^k > E\_Min_{i * j * }^ * \end{array} \right. $ (11)

记区域${I_{{i^*}{j^*}}}$的最大嵌入差值$E\_Ma{x_{{i^*}{j^*}}}$=$E\_Ma{x_{{i^*}{j^*}}^*}$及最小嵌入差值$E\_Mi{n_{{i^*}{j^*}}}$=$E\_Mi{n_{{i^*}{j^*}}^*}$

秘密信息${s_l}$∈{0, 1},$k$=1, 2, …, $u$

(4) 令$L = L - E\_Bi{t_{{i^*}{j^*}}}$,若$L$>0返回步骤(1),否则嵌入过程结束。

9) 生成辅助头信息$HI$,包括压缩位图$H$及其长度$len$、图像分块数量$T$1$T$2,每个被选择嵌入信息区域相关信息,包括区域标号$i$$j$、嵌入差值$E\_Ma{x_{ij}}$$E\_Mi{n_{ij}}$、嵌入信息量$E\_Bi{t_{ij}}$。各分块区域信息的保存顺序即为区域被选择嵌入信息的顺序,以便信息提取过程的实现。将生成的长度为$N$的辅助头信息$HI$利用原始LSB方法嵌入到图像起始位置中,至此得到最终的载秘图像$I$′。

2.2.2 信息提取及图像恢复算法

对应的信息提取与图像恢复过程如下:

1) 读取负载图像中前$N$个像素的最低有效位LSB,获取信息提取所需的辅助头信息,包括压缩位图$H$及其长度$len$、图像分块数量$T$1$T$2,每个被选择嵌入信息区域的标号$i$$j$,嵌入差值$E\_Ma{x_{ij}}$$E\_Mi{n_{ij}}$以及嵌入信息量$E\_Bi{t_{ij}}$,并对位图进行解压,根据获取的标号顺序得到区域被选择进行信息嵌入的顺序。

2) 根据图像分块数$T$1$T$2,利用与嵌入过程相同的规则对图像进行分块。

3) 对区域${I_{ij}}$,采用原始PVO方法对每一区域中的像素进行分组排序,假设分组大小为2×2,分组数量为$u$,估算每个像素组的最大值预测误差$e\_max_{ij}^k$和最小值预测误差$e\_min _{ij}^k$,其中$i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2; $k$=1, 2, …, $u$

4) 根据区域标号$i$$j$,嵌入差值$E\_Ma{x_{ij}}$$E\_Mi{n_{ij}}$以及嵌入信息量$E\_Bi{t_{ij}}$,进行信息提取和图像恢复。区域${I_{ij}}$的像素分组排序后,最大值预测误差按式(12)的定义提取秘密信息,最小值预测误差按式(13)的定义提取秘密信息。

$ {s_j} = \left\{ \begin{array}{l} 0\;\;\;\;\;\;\;\;\;e\_\mathit{max}_{ij}^k = E\_Ma{x_{ij}}\\ 1\;\;\;\;\;\;\;\;\;\;e\_\mathit{max}_{ij}^k = E\_Ma{x_{ij}} + 1\\ null\;\;\;\;\;其他 \end{array} \right. $ (12)

$ {s_j} = \left\{ \begin{array}{l} 0\;\;\;\;\;\;\;\;\;e\_\mathit{min}_{ij}^k = E\_Mi{n_{ij}}\\ 1\;\;\;\;\;\;\;\;\;\;e\_\mathit{min}_{ij}^k = E\_Mi{n_{ij}} + 1\\ null\;\;\;\;\;其他 \end{array} \right. $ (13)

图像恢复过程中,最大像素值按式(14)完成恢复,最小像素值按式(15)完成恢复。

$ x_{i * j * }^{ \wedge k4} = \left\{ \begin{array}{l} x_{i * j * }^{ * k4}\;\;\;\;\;\;\;e\_\mathit{max}_{ij}^k \le E\_Ma{x_{ij}}\\ x_{i * j * }^{ * k4} - 1\;\;\;e\_\mathit{max}_{ij}^k > E\_Ma{x_{ij}} + 1 \end{array} \right. $ (14)

$ x_{i * j * }^{ \wedge k1} = \left\{ \begin{array}{l} x_{i * j * }^{ * k1}\;\;\;\;\;\;\;e\_\mathit{min}_{ij}^k \le E\_Mi{n_{ij}}\\ x_{i * j * }^{ * k1} + 1\;\;\;e\_\mathit{min}_{ij}^k > E\_Mi{n_{ij}} + 1 \end{array} \right. $ (15)

5) 根据头信息中保存区域信息的顺序将提取到的秘密信息组合起来,并将恢复后的各图像区域重新组织还原,从而得到所需的秘密信息$S$和原始图像$I$

2.2.3 溢出处理机制

在信息嵌入过程中,像素值的改变很可能引起溢出现象。以区域${I_{ij}}$中像素块$k$为例,当$x_{ij}^{'k4}$=255且$x_{ij}^{'k4}$-$x_{ij}^{'k3}$$E\_Ma{x_{ij}}$或者$x_{ij}^{'k1}$=0且$x_{ij}^{'k2}$-$x_{ij}^{'k1}$$E\_Mi{n_{ij}}$时,对像素值$x_{ij}^{'k4}$$x_{ij}^{'k1}$的改变即会引起溢出现象。为了避免溢出的发生,同时在信息提取过程中能够无损地恢复图像,采用位图对产生溢出的像素位进行记录,当$x_{ij}^{'k4}$=255且$x_{ij}^{'k4}$-$x_{ij}^{'k3}$$E\_Ma{x_{ij}}$时,令$h1_{ij}^k$=1,否则,令$h1_{ij}^k$=0;当$x_{ij}^{'k1}$=0且$x_{ij}^{'k2}$-$x_{ij}^{'k1}$$E\_Mi{n_{ij}}$时,令$h2_{ij}^k$=1,否则,令$h2_{ij}^k$=0。对每一预测差值执行相同的操作,可以得到位图$H$={$h1_{ij}^k$}∪{$h2_{ij}^k$},$i$=1, 2, …, $T$1; $j$=1, 2, …, $T$2; $k$=1, 2, …, $u$$H$长度为$T$1×$T$2×$u$。由于在$H$当中只有极少量的“1”值存在,因此可以使用无损压缩技术减少位图的大小,大大压缩头信息的大小。压缩位图$H$作为头信息的一部分嵌入到图像当中,溢出信息记录的顺序与嵌入区域选择顺序相同,以便用于图像恢复。

3 实验结果

为了验证改进后的PVO算法的有效性,我们使用如图 3所示的6幅图像进行仿真实验,每幅图像的大小为512×512像素。

图 3 用于嵌入信息的原始图像
Fig. 3 Original image for embedding information ((a)Aerial; (b)Baboon; (c)Elaine; (d)Plane; (e) Lena; (f) Couple)

通常情况下,可逆数据隐藏使用峰值信噪比(PSNR)和嵌入量(bit/pixel)来衡量算法性能,PSNR值越大,则载秘图像性能越高,越不容易被肉眼所觉察;其次,嵌入量越大,算法的负载秘密信息能力就越强。选用了文献[8, 11]及其他PEE类算法与本文中的算法进行比较。将图像划分为8×8个区域进行实验,改进PVO算法与其他算法的性能比较情况如图 4(a)(f)所示,其分别为使用图 3(a)(f)中6幅图像进行信息嵌入后载秘图像的信噪比比较情况。

图 4 不同算法的载秘图像PSNR比较
Fig. 4 Comparison of stego-image PSNR for different algorithms ((a)Aerial; (b)Baboon; (c)Elaine; (d)Plane; (e) Lena; (f) Couple)

图 4可以看出,在原始PVO算法基础上采用图像区域分块的思想,在信息嵌入过程中根据移位率进行分区选择,并对所选区域进行嵌入预测误差优选,在相同嵌入量的条件下,图片嵌入秘密信息后的PSNR较之前有了进一步的提高,由此可知,对PVO算法进行改进后提高了图片的载秘质量和视觉感受。

以图像Elaine为例,假设嵌入量为1×104bit,采用8×8分块完成信息嵌入过程的分块区域选择情况如表 2所示。

表 2 嵌入区域选择及嵌入量情况
Table 2 Embedding area selection and embedding capacity

下载CSV
顺序嵌入区域区域移位率区域嵌入量最大嵌入误差最小嵌入误差
1$I$110.559 690200
2$I$240.584 268911
3$I$140.588 265411
4$I$330.708 950811
5$I$650.732 147111
6$I$150.756 444911
7$I$130.758 042411
8$I$780.761 043111
9$I$230.763 441622
10$I$880.765 141611
11$I$840.765 541511
12$I$810.768 639411
13$I$870.772 939111
14$I$610.774 139911
15$I$830.775 240111
16$I$430.777 240611
17$I$210.789 231611
18$I$760.789 538611
19$I$710.790 937511
20$I$770.794 337811
21$I$660.801 436511
22$I$160.803 235711
23$I$510.805 25711

表 2可知,完成1×104 bit嵌入量的需求,共选择了64个分区中的23个区域来完成,由于根据移位率依次从小到大选择分区实现,与原始PVO方法相比,完成信息嵌入后的移位率由原来的81.59%下降为74.40%,载秘图像的PSNR由原来的55.388 2增加至56.996 9。

在本文中,由于区域分区数量是不确定参数,分区数量和分区方式不同对算法的性能存在一定影响,因此,针对图 3中的每幅图像在不同分区数情况下对信息嵌入性能进行了比较,结果如表 3表 8所示。在相同嵌入量情况下,随着分区数量的增加,图像完成嵌入发生的移位情况减少,载秘图像信噪比增加,可以通过适当的增加分区数量来进一步提高算法性能。然而,这并不能说明分区数量越多越好,因为分区数越大,需要保存的辅助信息就越多,而且分区数达到一定数值时,算法出现性能退化现象,信噪比开始下降,所以在采用分区选择思想实现信息嵌入的过程中,如何优选分区数量和分区规则可以做进一步的探讨,这将是后续的研究内容之一。

表 3 Aerial图像不同分区情况算法的性能比较
Table 3 Performance comparison of different partitioning(Aerial sample)

下载CSV
分区情况性能指标嵌入量
5 00010 00015 00020 00025 000
原始PVOPSNR/dB59.606 956.677 054.944 653.747 752.724 1
移位率0.760 90.760 00.758 60.756 20.758 8
2×2PSNR/dB61.094 758.084 655.750 954.287 552.737 9
移位率0.682 80.682 80.716 30.728 30.758 1
4×4PSNR/dB61.507 858.254 456.106 954.332 652.893 6
移位率0.656 70.672 30.695 80.725 60.750 4
8×8PSNR/dB62.181 558.558 356.255 454.534 252.915 6
移位率0.610 30.652 70.686 90.714 80.749 3
16×16PSNR/dB62.976 859.104 656.678 854.815 953.229 5
移位率0.549 80.615 10.660 30.698 60.733 1

表 4 Baboon图像不同分区情况的算法性能比较
Table 4 Performance comparison of different partitioning(Baboon sample)

下载CSV
分区情况性能指标嵌入量
4 0006 0008 00010 00012 00014 000
原始PVOPSNR/dB55.844 354.759 753.893 153.131 852.521 451.901 8
移位率0.913 80.900 00.891 30.886 20.881 70.880 4
2×2PSNR/dB58.571 756.602 555.292 553.950 452.938 252.010 4
移位率0.844 30.851 10.853 00.864 30.870 50.877 6
4×4PSNR/dB59.860 157.681 256.139 754.885 353.729 152.530 5
移位率0.796 10.813 10.824 10.834 40.846 70.863 0
8×8PSNR/dB60.276 158.376 956.818 155.427 354.007 352.848 3
移位率0.777 90.784 20.797 40.814 40.837 40.853 4
16×16PSNR/dB61.033 559.007 457.439 656.067 554.823 353.605 9
移位率0.741 10.754 60.769 90.788 10.807 00.827 9

表 5 Elaine图像不同分区情况算法的性能比较
Table 5 Performance comparison of different partitioning(Elaine sample)

下载CSV
分区情况性能指标嵌入量
3 0006 0009 00012 00015 00018 000
原始PVOPSNR/dB61.371 858.132 955.943 954.425 453.448 952.699 9
移位率0.784 70.794 80.812 00.822 40.822 60.821 1
2×2PSNR/dB62.089 058.457 156.473 055.072 354.057 453.119 6
移位率0.750 80.780 60.790 20.796 80.798 70.804 7
4×4PSNR/dB63.007 759.078 957.170 255.360 254.230 852.237 3
移位率0.700 90.751 10.758 10.784 40.791 30.799 9
8×8PSNR/dB64.272 159.943 357.610 555.904 754.572 353.491 2
移位率0.609 10.704 40.735 70.759 10.776 20.789 1
16×16PSNR/dB65.408 960.993 058.322 956.561 755.139 254.023 3
移位率0.531 80.638 40.695 80.725 20.548 90.764 9

表 6 Plane图像不同分区情况算法的性能比较
Table 6 Performance comparison of different partitioning(Plane sample)

下载CSV
分区情况性能指标嵌入量
5 00010 00015 00020 00025 00030 000
原始PVOPSNR/dB62.033 359.493 258.077 856.706 355.279 054.129 1
移位率0.620 90.586 60.559 70.569 90.604 20.629 5
2×2PSNR/dB63.577 860.199 158.194 356.691 655.416 054.462 9
移位率0.499 80.530 90.550 40.571 10.594 10.605 7
4×4PSNR/dB65.431 161.053 959.024 557.426 256.215 655.203 2
移位率0.324 10.456 70.480 40.511 50.531 50.549 1
8×8PSNR/dB65.234 561.608 859.250 057.667 456.377 355.275 2
移位率0.344 20.404 90.460 20.490 80.518 00.543 2
16×16PSNR/dB65.398 361.900 359.737 058.115 756.855 755.648 9
移位率0.327 50.376 50.415 00.450 80.476 70.512 3

表 7 Lena图像不同分区情况算法的性能比较
Table 7 Performance comparison of different partitioning(Lena sample)

下载CSV
分区情况性能指标嵌入量
5 00010 00015 00020 00025 00030 000
原始PVOPSNR/dB62.892 359.204 657.096 655.679 954.621 553.740 5
移位率0.549 50.607 90.632 30.644 10.649 90.655 7
2×2PSNR/dB62.471 859.273 257.524 856.107 055.146 254.114 2
移位率0.589 00.602 90.601 80.614 50.613 80.630 5
4×4PSNR/dB63.396 460.210 658.194 156.798 455.423 354.297 2
移位率0.515 30.529 90.550 40.562 70.593 60.617 6
8×8PSNR/dB63.973 960.626 858.534 456.945 655.695 554.583 8
移位率0.464 90.494 70.522 60.551 10.573 00.596 8
16×16PSNR/dB64.289 860.846 958.755 957.199 455.863 754.667 3
移位率0.436 00.475 30.503 80.530 50.559 90.590 6

表 8 Couple图像不同分区情况算法的性能比较
Table 8 Performance comparison of different partitioning(Couple sample)

下载CSV
分区情况性能指标嵌入量
5 00010 00015 00020 00025 00030 000
原始PVOPSNR/dB61.939 958.660 856.481 554.805 553.709 752.943 8
移位率0.633 20.648 50.674 40.700 10.707 20.705 4
2×2PSNR/dB62.489 058.710 656.532 055.027 453.858 853.037 1
移位率0.591 00.643 70.670 40.686 40.698 20.700 0
4×4PSNR/dB62.498 558.870 756.770 055.273 254.145 053.073 3
移位率0.590 50.633 60.655 90.671 80.681 40.697 9
8×8PSNR/dB62.918 559.255 457.056 355.504 654.285 153.190 0
移位率0.558 40.606 30.636 40.656 70.672 50.690 9
16×16PSNR/dB63.097 859.503 157.374 755.841 954.614 053.502 7
移位率0.541 00.588 30.615 50.636 10.653 30.673 1

另外,采用分区选择思想实现可逆数据隐藏过程,在一定程度上提高了图像的最大嵌入容量(如表 9所示),这在一定程度上弥补了分区域引起辅助信息增加而付出的代价。

表 9 不同分区情况的最大嵌入容量
Table 9 Maximum embedding capacity in different partitions

下载CSV
图像不同分区的最大嵌入容量/bit
PVO2×24×48×816×16
Baboon14 97214 97214 99215 12015 753
Lena36 54336 54336 54336 54936 865
Aerial26 69326 69326 69326 69326 874
Plane37 55937 97038 93539 36139 873
Elaine21 44821 44821 89122 16522 674
Couple32 41532 41532 41532 43033 076

4 结论

针对目前可逆数据隐藏过程没有使用图像中最佳像素区域进行嵌入的问题,本文引入了区域划分的思想,对给定的原始图像,进行一定数量的分区,通过比较每一区域的移位率,根据移位率依次从小到大选择区域进行信息隐藏;同时,在不同区域范围内优选合适的嵌入误差,保证充分利用每个区域的嵌入空间。实现结果表明,在相同嵌入量情况下,载秘图像可以获得更高的PSNR值,提高了图像的隐秘性能;其次,该方法在一定程度上改善了嵌入容量,弥补了因分区数量增加带来的辅助信息增加的问题,总之,较之原始PVO算法,本文算法在图片隐秘质量和嵌入容量方面有一定提高。实验过程发现,随着分区数量的增加,图像PSNR值亦随之增加,表现出良好的相关性,但需注意的是,分区数量过多,算法性能反之会出现退化现象,同时辅助信息将大量增加,降低算法性能,因此,后续研究过程将进一步关注分区规则及其优化问题,希望进一步改善算法性能。

参考文献

  • [1] Celik M U, Sharma G, Tekalp A M, et al. Lossless generalized-LSB data embedding[J]. IEEE Transactions on Image Processing, 2005, 14(2): 253–266. [DOI:10.1109/TIP.2004.840686]
  • [2] Celik M U, Sharma G, Tekalp A M. Lossless watermarking for image authentication:a new framework and an implementation[J]. IEEE Transactions on Image Processing, 2006, 15(4): 1042–1049. [DOI:10.1109/TIP.2005.863053]
  • [3] Tian J. Reversible data embedding using a difference expansion[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2003, 13(8): 890–896. [DOI:10.1109/TCSVT.2003.815962]
  • [4] Wang X, Li X L, Yang B, et al. Efficient generalized integer transform for reversible watermarking[J]. IEEE Signal Processing Letters, 2010, 17(6): 567–570. [DOI:10.1109/LSP.2010.2046930]
  • [5] Peng F, Li X L, Yang B. Adaptive reversible data hiding scheme based on integer transform[J]. Signal Processing, 2012, 92(1): 54–62. [DOI:10.1016/j.sigpro.2011.06.006]
  • [6] Ni Z C, Shi Y Q, Ansari N, et al. Reversible data hiding[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2006, 16(3): 354–362. [DOI:10.1109/TCSVT.2006.869964]
  • [7] Li X L, Li B, Yang B, et al. General framework to histogram-shifting-based reversible data hiding[J]. IEEE Transactions on Image Processing, 2013, 22(6): 2181–2191. [DOI:10.1109/TIP.2013.2246179]
  • [8] Thodi D M, Rodriguez J J. Expansion embedding techniques for reversible watermarking[J]. IEEE Transactions on Image Processing, 2007, 16(3): 721–730. [DOI:10.1109/TIP.2006.891046]
  • [9] Sachnev V, Kim H J, Nam J, et al. Reversible Watermarking Algorithm Using Sorting and Prediction[J]. IEEE Transactions on Circuits and Systems for Video Technology, 2009, 19(7): 989–999. [DOI:10.1109/TCSVT.2009.2020257]
  • [10] Li X L, Yang B, Zeng T Y. Efficient reversible watermarking based on adaptive prediction-error expansion and pixel selection[J]. IEEE Transactions on Image Processing, 2011, 20(12): 3524–3533. [DOI:10.1109/TIP.2011.2150233]
  • [11] Li X L, Li J, Li B, et al. High-fidelity reversible data hiding scheme based on pixel-value-ordering and prediction-error expansion[J]. Signal Processing, 2013, 93(1): 198–205. [DOI:10.1016/j.sigpro.2012.07.025]
  • [12] Ou B, Li X L, Zhao Y, et al. Reversible data hiding using invariant pixel-value-ordering and prediction-error expansion[J]. Signal Processing:Image Communication, 2014, 29(7): 760–772. [DOI:10.1016/j.image.2014.05.003]
  • [13] Peng F, Li X L, Yang B. Improved PVO-based reversible data hiding[J]. Digital Signal Processing, 2014, 25: 255–265. [DOI:10.1016/j.dsp.2013.11.002]
  • [14] Ou B, Li X L, Wang J W. Improved PVO-based reversible data hiding:a new implementation based on multiple histograms modification[J]. Journal of Visual Communication and Image Representation, 2016, 38: 328–339. [DOI:10.1016/j.jvcir.2016.03.011]