APP下载

基于多进制嵌入的彩色图像可逆数据隐藏算法

2015-11-26姜卓睿熊志勇王江晴

关键词:偶数分形直方图

姜卓睿,熊志勇,王江晴

(中南民族大学计算机科学学院,武汉430074)

可逆数据隐藏是指能够在提取端提取数据的同时无损地恢复原始图像,该技术在某些领域如军事、医学和法律诉讼证据的完整性认证等有着重要的实用价值.Jun Tian[1]最早提出的差值扩展嵌入方法在可逆数据隐藏领域受到广泛的关注,之后还有诸多专家学者在其基础上提出了关于图像的可逆数据隐藏方法,这些改进或延伸的嵌入算法,进一步提高了嵌入容量和图像的质量[2,3].对于差值扩展嵌入方法,定位图是影响嵌入率的主要因素,在文献[2,4]中,提前将可能溢出的像素调整到安全范围,避免了使用定位图,提高了嵌入效率.文献[3,5,6]提出的无损数据隐藏方法,由于部分像素的调整量超过1,导致PSNR数据不高,对图像的质量有一定的影响.针对以上现象,本文采用多进制的形式,对图像的嵌入分量组合分别进行二进制和三进制隐藏信息的嵌入,提高了嵌入容量,且所有像素的调整差额仅限于1;同时在嵌入前,对所有嵌入区域中可能溢出的像素,进行调整到安全区域的操作,并作为辅助信息进行保存,进一步减少了辅助信息的数据量.

1 十字预测

RGB真彩色图像具有R、G、B三个基色分量,每个基色分量直接决定其基色的强度,且都是独立、清晰的灰度图像.在自然图像中,一般相邻的两个像素值比较接近[6,7],利用这种特性,取 RGB 图像中某一分量中的任意一像素值P,同时获取P的上、下、左、右四个像素值的平均值到+Pright),如果 P 是奇数像素,如图 1,则 Pup,Pdown,Pleft和Pright必是偶数像素.文献[8]对多种预测方案进行比较,证明十字预测法(又称菱形预测)的预测准确率最高.为了保证能正确恢复原始图像,将R分为两组,即奇数组和偶数组,在对奇数组的像素进行数据嵌入时,不得修改偶数组的像素值,在完成奇数组的嵌入后,再进行偶数组的嵌入,当然此时也不能再修改奇数组的数据.恢复图像的过程是先恢复偶数像素组的数据,再恢复奇数像素组的数据.

图1 像素分组图(☆为奇数像素,★为偶数像素)Fig.1 Pixel grouping figure(☆Odd pixel,★Even pixel)

2 基于多进制嵌入的彩色图像可逆数据隐藏

2.1 多进制嵌入的基本思想

首先利用十字预测方法生成相应的直方图.选取200×200Lena彩色图像色彩的红色分量的奇数组数据Rodd和蓝色分量的奇数组数据Bodd,分别求取它们的预测误差R'odd和B'odd,计算:

得到十字预测误差直方图如图2,峰值为6082,次峰值-1和1处的元素个数分别为3967和4154,一般算法利用其中的一个或两个峰值[2,3]嵌入水印,这样会使得大量的次峰值在嵌入时进行搬移,嵌入效率不够高.本算法采用二次嵌入的方法,尽量多地利用直方图中的峰值进行嵌入.算法思想为:第一次搬移后,对于RBodd为0的点进行三进制的嵌入,第二次搬移后,对于 RBodd为-2、3的点进行二进制的嵌入.

2.2 消除定位图

图2 Lena RB分量十字预测误差直方图Fig.2 Lena's RB components histogram of cross prediction error

定位图是为了方便记录修改和未修改像素所在的位置而设置的,但是却增加了嵌入的负载,所以本算法为避免使用定位图,事先对所有可能溢出的像素做预处理.因为RGB真彩色图像每个像素值的范围为0~255,而本算法对所有像素只可能做+1或-1操作,那么涉及到0和255可能出现溢出,则在嵌入之前做如下调整:

(i)对需要做-1操作的所有像素,建立一个数组A,记录flag,flag的值由(2)式确定:

(ii)对需要做+1操作的所有像素,建立一个数组B,记录flag,flag的值由(3)式确定:

这样只需要关注为数较少的0、1、254、255像素值,而且只需要记录需要调整的那部分像素的状态信息,所需要的辅助信息大大减少.

2.3 分形生长图形随机嵌入法

在嵌入数据的时候,可以按照随机数生成公式计算的结果,决定嵌入的顺序.本算法采用分形生长图形[9]的结果决定嵌入的顺序,具体如下:

设定迭代公式为:

Z0=x+yi,x为平面某点的横向坐标,y为平面某点的纵向坐标,然后对(4)式反复迭代:

将计算出来的Zi(i=1,2,…,n)的实部和虚部再分别映射回平面对应的坐标,在该坐标处打点,例如ci=-0.46+0.57i,取图形中心作为迭代起点的中间图形如图3,如果迭代继续下去,黑点会逐步覆盖整个图像.

图3 ci=-0.46+0.57i的图形Fig.3 The picture of ci=-0.46+0.57i

该算法是在复平面上绘制的,x和y分别是图形的横向和纵向坐标,由z0=x+yi得到z0的初值,考虑x和y的单位是像素,且值一般很大,这样会导致在迭代中很快溢出或发散,所以预先需要将实部x和虚部 y分别映射到[- 1.5,1.5](当然,这个范围可调整,原则是不要太大),以保证迭代能正常地进行.

本算法的嵌入顺序与迭代算法的打点顺序一致,当打点发散时,则将剩下的未嵌入信息的像素按照随机数的生成公式进行嵌入.

2.4 数据嵌入具体过程

在R,G,B三分量中随机选取一组进行嵌入,在此以R,B为例.设:

L1和R1的设定可根据实际情况决定,例如:取L1=-6,R1=6,经过上述变化,将处理过的Rodd带入(5)式后,RBodd的-1,1两处值都为0.当然搬移之前,将所有L1≤RBodd≤-1范围内可能发生溢出的Rodd分量中的0,1像素,按照(2)式进行预先处理;在1≤RBodd≤R1的像素内可能发生溢出的Rodd分量中的254、255像素,按照(3)式进行预先处理.

此时采用三进制的形式运用(6)式对-1,0,1三处的峰值进行嵌入.

设 S为嵌入信息流,它的值为(0,1,2),

由(5)式,次峰值由原来的-1,1处移动到-2,2处,此时为再次利用它进行嵌入,必须先按照(7)式调整 Bodd,

在搬移之前,将所有3≤RBodd≤R2范围内可能发生溢出的Bodd分量中的0,1像素,按照(2)式进行预先处理;在L2≤RBodd≤-3的像素内可能发生溢出的Bodd分量中的254,255像素,按照(3)式进行预先处理.此时,RBodd处的-2,2值都为0,则可采用二进制的形式运用(8)式对-2,2处的峰值进行嵌入.设m为嵌入信息流,它的值为(0,1),

此时完成对红色分量和蓝色分量奇数部分的嵌入,之后采用同样的方法对红色分量和蓝色分量的偶数部分进行嵌入.

为了进一步提高嵌入容量,对G分量做如下调整:首先选定一段区域存放前面计算的辅助信息和在G分量中可能溢出的0,1,254,255信息(依然运用式(2)和(3)),这个数据一般都不多,然后对剩下的G分量求取RGodd,获取其中最高的两个峰值进行嵌入版权信息的操作.例如,设最高的两个峰值在RGodd的0,-1处,则按照(9)式进行移位操作:

然后采用二进制的形式运用(10)式对0,-1处的峰值进行嵌入:

最后,用同样的方式对G的偶数部分进行嵌入.

2.5 数据提取过程

1)从G分量中提取3类辅助信息:生成分形生长图形需要的迭代初值ci、所有可能溢出的0,1序列及数量、所有的Li(i=1~3)和Ri(i=1~3),以备后面恢复图像使用;

2)计算RGodd,利用迭代初值ci获取分形生长图形后,根据此图形的生成顺序得到二进制的版权信息流,最后,将之前为防止溢出调整的像素值依据前面得到的辅助信息进行归位.G的偶数部分的调整同上;

3)计算RBodd,先根据分形生长图的生成顺序获取二进制的版权信息流,再获取三进制的版权信息流,并按照此顺序还原图像.

3 实验结果及分析

采用MATLAB 7.0开发平台进行仿真实验,图4是选取的几个典型例子,对所选的4幅图像在红绿蓝分量嵌入隐藏信息,能保持较高的嵌入率和图像质量,如图5所示.表1列出了本算法与文献[5]、文献[10]的实验结果对比.实验结果表明:本算法充分利用十字预测方法获取差分直方图,对图像进行两次不同进制版本信息的嵌入,嵌入后的图像质量有明显提高,且嵌入率也有一定增加.

图4 原始图像示例Fig.4 Original images

图5 嵌入信息的图像Fig.5 Stego-images

表1 嵌入容量和PSNR对比结果Tab.1 Comparison results of embedding capacity and PSNR

4 结语

本文针对Tian差值扩展算法存在过分修改像素值、嵌入容量不高等缺点,提出了一种基于多进制嵌入的彩色图像可逆数据隐藏算法.利用十字预测法获取较高的直方图峰值,然后将版权信息变换成二进制和三进制信息,分两次嵌入到多个峰值中;同时在嵌入之前有针对性地对所有可能溢出的像素进行调整,并将这部分信息作为辅助信息优先存放,替代了定位图;嵌入的顺序与分形生长图形计算的结果一致,提高了保密性;所有原始图像的像素最多被调整一个像素值,因此图像的PSNR值较同类算法高.实验结果表明:本文算法在保证图像质量的同时,嵌入的容量有一定的提高.算法的不足之处在于,算法进行了二次嵌入,对图像像素的修改较广泛,如果在第二次嵌入时,能将部分第一次嵌入时调整过的像素进行适当回调或还原处理,则图像的保真度可以得到较大提高.

[1]Tian Jun.Reversible data embedding using a difference expansion[J].IEEE Transaction on Circuits and Systems for Video Technology,2003,13(8):890-896.

[2]熊志勇,王江晴.基于适应差值扩展的彩色图像可逆数据隐藏[J].光电子·激光,2011,22(1):120-126.

[3]熊志勇,高志荣,姜卓睿.基于整数小波变换和差值扩展的可逆数据隐藏[J].中南民族大学学报:自然科学版,2010,29(3):68-74.

[4]熊志勇,李 延.基于直方图平移和定向嵌入的可逆数据隐藏[J].中南民族大学学报:自然科学版,2013,32(3):82-89.

[5]Li Zhuo,Chen Xiaoping,Pan Xuezeng,et al.Lossless data hiding scheme based on adjacent pixel difference[C]//IEEE.Proceedings of the 2009 International Conference on Computer Engineering and Technology,ICCET 2009.New York:CS Press,2009:588-592.

[6]Yang Bian,Lu Zheming,Xu Dianguo,et al.Neighboring pixels based low complexity predictive vector quantization algorithms for image coding[J].Acta Electronica Sinica(电子学报),2003,5:707-710.

[7]杨 边,陆哲明,徐殿国,等.基于邻近像素的低复杂度预测矢量量化图像压缩编码算法[J].电子学报,2003,5:707-710.

[8]Sachnev V,Hyong Joong Kim,Jeho Nam,et al.Reversible watermarking algorithm using sorting and prediction[J].IEEE Transactions on Circuits and Systems for Video Technology,2009,19(7):989-999.

[9]曾文曲,王向阳.分形理论与分形的计算机模拟[M].沈阳:东北大学出版社,2001:108-122.

[10]Chen Kangkang,Wang Jianjun.A novel reversible data hiding based on exploiting modification direction algorithm[J].Multimedia Information Networking and Security,2009,1(18-20):514-518.

猜你喜欢

偶数分形直方图
符合差分隐私的流数据统计直方图发布
奇数与偶数
基于FPGA的直方图均衡图像增强算法设计及实现
感受分形
分形之美
用直方图控制画面影调
分形——2018芳草地艺术节
分形空间上广义凸函数的新Simpson型不等式及应用
中考频数分布直方图题型展示
抓住数的特点求解