论文核心简述Reversible Watermarking Algorithm Using Sorting and Prediction比较经典的PEE算法

文章提炼

本篇的误差扩展算法(prediction error expanding,PEE)使用了菱形预测模式(rhombus pattern)、直方图转换(histogram shift)双嵌入方案(double embedding scheme),排序选定嵌入顺序(sorting),讨论了该算法中的越界问题(overflow/underflow question),在性能上比近来研究得到了很大的提升。

1.用四个临近像素进行预测

论文核心简述Reversible Watermarking Algorithm Using Sorting and Prediction比较经典的PEE算法_第1张图片

× 代表被预测像素,构成的集合为Cross set

● 代表预测 × 的临近像素,构成的集合为Dot set

此即菱形预测模式(rhombus pattern)。

预测公式:

u _{i,j}^{'}=\left \lfloor \frac{\upsilon _{i,j-1}+\upsilon _{i+1,j}+\upsilon _{i,j+1}+\upsilon _{i-1,j}}{4} \right \rfloor

预测误差:

d_{i,j}=u_{i,j}-u_{i,j}^{'}

对误差进行扩展,此即difference expansion:

D_{i,j}=2d_{i,j}+b

原始图像被改变为:

U_{i,j}=D_{i,j}+u_{i,j}^{'}

恢复时,扩展误差为:

D_{i,j}=U_{i,j}-u_{i,j}^{'}

嵌入信息为:

D_{i,j}=U_{i,j} mod 2

原始预测误差为:

d_{i,j}=\left \lfloor \frac{D_{i,j}}{2} \right \rfloor

原始像素值为:

u_{i,j}=u_{i,j}^{'}+d_{i,j}

直方图按如下公式转换

D_{i,j}=\begin{cases} 2d_{i,j}+b, & if \: d_{i,j}\in [T_n;T_p] \\ d_{i,j}+T_{p}+1, &if \: d_{i,j}> T_p \: and \: T_p \geq 0 \\ d_{i,j}+T_n, & if \:d_{i,j}< T_n \: and \: T_n < 0 \end{cases}

解码时如下:

d_{i,j}=\begin{cases} \left \lfloor D_{i,j}/2 \right \rfloor, & if \ D_{i,j}\in [2T_n;2T_p+1] \\ D_{i,j}-T_p-1, & if \ D_{i,j} > 2T_p+1 \ and \ T_p \geq 0 \\ D_{i,j}-T_n, & if \ D_{i,j}<2T_n \ and \ T_n<0 \end{cases}

b=D_{i,j} \ mod \ 2, \ \ \ D_{i,j}\in [2T_n;2T_p+1]

此即直方图转换(histogram shift)。

2.利用方差选择插入顺序

 用像素相邻4个像素进行方差的计算:

\mu_{i,j}=\frac{1}{4} \sum_{k=1}^4(\Delta v_k-\Delta \bar{v}_k)^2

\Delta v_1 = \left | v_{i,j-1}-v_{i-1,j} \right |,

\Delta v_2 = \left | v_{i-1,j}-v_{i,j+1} \right |,

\Delta v_3 = \left | v_{i,j+1}-v_{i+1,j} \right |,

\Delta v_4 = \left | v_{i+1,j}-v_{i,j-1} \right |,

\Delta \bar{v}_k=(\Delta v_1+\Delta v_2 + \Delta v_3 + \Delta v_4)/4.

此即排序选定嵌入顺序(sorting)。

3.越界问题(Overflow and Underflow Problem)

由于部分像素需要插入两次,存在越界判定的问题。

论文核心简述Reversible Watermarking Algorithm Using Sorting and Prediction比较经典的PEE算法_第2张图片

预测两次都没出现越界问题的像素不需要位图。

预测第一次不越界,第二次越界的像素,位图标为"0",分类为S_{op}

预测第一次就越界的,位图标为"1",分类为S_p

4.双嵌入方案(double embedding scheme),提高嵌入质量

Cross集,即×集,插入完了后,我们可以用Dot集,即●集再插入。

算法全流程,嵌入、提取流程示意图

论文核心简述Reversible Watermarking Algorithm Using Sorting and Prediction比较经典的PEE算法_第3张图片

嵌入的具体步骤:

先对Cross集嵌入,再对Dot集嵌入。

对Cross集:

1.通过计算方差\mu得出排序好的Cross集d_{sort}

2.判断越界问题,生成位图。

3.d_{sort}中前34位留给阈值大小T_{nCross}T_{pCross}还有阈值大小P_{Cross},用34位后进行嵌入。前面34位的预测误差同样需要作为数据嵌入到34位后。

嵌入具体细节:

1)第一次嵌入正常嵌入|P_{Cross}|bit大小的秘密信息。

2)第二次嵌入在第一次嵌入的基础上,对能够再次进行嵌入而不出现越界问题像素进行位图嵌入。

对Dot集的嵌入方法和Cross集一样,只不过这次用来产生预测值的是经过修改后的Cross集Cross_m。这样之后就得到了修改后的Dot集Dot_m

提取的具体步骤:

1.扫描前面34bit信息得到阈值大小T_{nCross}T_{pCross}还有阈值大小|P_{Cross}|

2.根据越界问题的处理原理,反向推导,先判断像素是否能够扩展,

①能扩展,则直接提取

②不能扩展,根据位图,位图中该位置标记为0,则应该提取,为1则不能提取

用此种方法提取位图信息、之前的34位LSB、秘密信息。

首先根据Cross_m对修改后的Dot集Dot_m进行提取复原,得到集Dot。然后根据复原后的Dot集Dot对修改过的Cross集Cross_m进行复原。

最终得到完整的原始图像和秘密信息。

你可能感兴趣的:(算法,图像处理)