论文核心简述Reversible Watermarking Algorithm Using Sorting and Prediction比较经典的PEE算法
文章提炼
本篇的误差扩展算法(prediction error expanding,PEE)使用了菱形预测模式(rhombus pattern)、直方图转换(histogram shift)双嵌入方案(double embedding scheme),排序选定嵌入顺序(sorting),讨论了该算法中的越界问题(overflow/underflow question),在性能上比近来研究得到了很大的提升。
1.用四个临近像素进行预测
× 代表被预测像素,构成的集合为Cross set
● 代表预测 × 的临近像素,构成的集合为Dot set
此即菱形预测模式(rhombus pattern)。
预测公式:
预测误差:
对误差进行扩展,此即difference expansion:
原始图像被改变为:
恢复时,扩展误差为:
嵌入信息为:
原始预测误差为:
原始像素值为:
直方图按如下公式转换
解码时如下:
此即直方图转换(histogram shift)。
2.利用方差选择插入顺序
用像素相邻4个像素进行方差的计算:
此即排序选定嵌入顺序(sorting)。
3.越界问题(Overflow and Underflow Problem)
由于部分像素需要插入两次,存在越界判定的问题。
预测两次都没出现越界问题的像素不需要位图。
预测第一次不越界,第二次越界的像素,位图标为"0",分类为。
预测第一次就越界的,位图标为"1",分类为。
4.双嵌入方案(double embedding scheme),提高嵌入质量
Cross集,即×集,插入完了后,我们可以用Dot集,即●集再插入。
算法全流程,嵌入、提取流程示意图
嵌入的具体步骤:
先对Cross集嵌入,再对Dot集嵌入。
对Cross集:
1.通过计算方差得出排序好的Cross集
。
2.判断越界问题,生成位图。
3.中前34位留给阈值大小
、
还有阈值大小
,用34位后进行嵌入。前面34位的预测误差同样需要作为数据嵌入到34位后。
嵌入具体细节:
1)第一次嵌入正常嵌入bit大小的秘密信息。
2)第二次嵌入在第一次嵌入的基础上,对能够再次进行嵌入而不出现越界问题像素进行位图嵌入。
对Dot集的嵌入方法和Cross集一样,只不过这次用来产生预测值的是经过修改后的Cross集。这样之后就得到了修改后的Dot集
。
提取的具体步骤:
1.扫描前面34bit信息得到阈值大小、
还有阈值大小
。
2.根据越界问题的处理原理,反向推导,先判断像素是否能够扩展,
①能扩展,则直接提取
②不能扩展,根据位图,位图中该位置标记为0,则应该提取,为1则不能提取
用此种方法提取位图信息、之前的34位LSB、秘密信息。
首先根据对修改后的Dot集
进行提取复原,得到集
。然后根据复原后的Dot集
对修改过的Cross集
进行复原。
最终得到完整的原始图像和秘密信息。