一种大容量的可逆RGB图像信息隐藏算法

2014-09-17 14:18:39岳鑫周城甘文道
电脑知识与技术 2014年22期

岳鑫 周城 甘文道

摘要: 该文介绍并分析了RGB图像的直方图特性,详细阐述了直方图的峰值点和零值点的特点和直方图平移对图像的影响。在此基础上,根据视觉特性的特点,提出了一种新的RGB图像信息隐藏算法:一种大容量的可逆RGB图像信息隐藏算法。该算法基于直方图平移和视觉特性,能解决当前基于直方图平移算法的低隐藏容量难点。实验结果及分析表明,该算法易于实现,有很好的隐蔽性并对隐藏容量有较大提高。

关键词: 信息隐藏;RGB图像;直方图平移;峰值点;可逆

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)22-5307-07

近年来,随着计算机技术和多媒体技术的飞速发展,每天都有海量的文本、图像、音频、视频等数字信息在因特网上进行传输,信息特别是一些私有信息的安全性传输问题日益突出。2013年发生的美国“棱镜”事件充分的说明了由于互联网自由开放的环境,这些私有信息在网上传输的过程中是不设防的,极易被非法访问和获取,甚至于被篡改,给信息传递者带来很大的损失。信息安全技术由于人们保护私有信息隐秘性的强烈需求而发展迅速,目前在数据传输过程中主流的保护方法有两种:一种是密码技术,密码技术通过对涉密信息(明文)进行一系列处理输出一堆(或串)乱码(密文)进行传输。它的安全性是基于截获信息者对明文的不可见性。另外一种是信息隐藏技术,信息隐藏技术是通过将涉密信息嵌入到掩护载体(如多媒体数据等)中,不影响掩护载体的视觉、听觉效果,也不改变其外部特征(如文件大小等),将含有隐秘信息的含密载体进行传输。较之密码技术,信息隐藏技术具有隐秘性的特点,能在非相关人员察觉的情况下进行传输,保证了信息传输过程中的安全性。

1995年,剑桥大学Ross Anderson教授联合一些从事信息隐藏研究的组织和专家,推动并策划了第一届信息隐藏国际研讨大会[1],标志着信息隐藏技术作为独立的学科而成立。经过十余年的发展,信息隐藏技术已经取得了非常多的成果。信息隐藏技术主要分为空间域信息隐藏技术和变化域信息隐藏技术。目前广泛流行的信息隐藏算法都是不可逆的,也就是说他对掩护载体的破坏是不可恢复的,在某些领域如医学图像、军事图像等,保持掩护载体的可恢复性对于保持涉密信息不可见性来说有重要意义,可逆的信息隐藏算法是信息隐藏算法研究领域的热点和难点。可逆信息隐藏嵌入方法主要分为位平面无损压缩[2][3]、差值扩散[4]和直方图平移[5][6]3种。基于直方图平移的NSAS算法信噪比的下界为48.13dB,对载体图像信号失真影响较小,其嵌入和提取算法简单。但是由于NSAS算法是基于载体直方图峰值和零值对的,依赖于载体图像自身特点,其嵌入容量一般都比较小。为了克服NSAS算法中嵌入容量小的缺陷,提高嵌入容量,在分析A.Leest[7]和Wen-Chung Kuo[5]等人的改进方法的基础上,该文针对RGB图像的特点,利用人的眼睛对blue的敏感性低于red和green的视觉特征,提出一种基于直方图平移和视觉特性的RGB图像可逆信息隐藏算法。

1 基于直方图平移的可逆信息隐藏算法

1.1 NSAS算法

NSAS算法是2006年Z.Ni在文献[6]中提出的,它的主要思想是利用直方图平移技术,即通过对载体图像的直方图上相应的像素点进行变化处理来达到嵌入涉密信息的目的。我们以大小为512*512*8的图1所示灰度图像“lena”来进行说明:

该算法步骤如下:

1) 生成载体图像的直方图。如图2(a)所示,对于灰度图像,灰度值X的取值范围是[0,255]。

2) 找出直方图的峰值点和零值点,生成K个峰值-零值对。峰值点是h(x),零值点是b(x)。本图中,峰值点为h(154) ,为简单起见,我们选取峰值左边的一个零值点b(0)进行说明。所以选取的峰值-零值对为h(154) 和b(0),

3) 通过平移产生隐藏空间。将灰度值在[1,153]的像素点灰度值都减1,我们在直方图上直观上看到的改变就是间隔[1,153]整体向左平移了1位。其结果是x=153的像素点为0个。

4) 将涉密信息嵌入在x=153和x=154对应的像素点上。具体做法是查看涉密信息比特的二进制位,当为“1”时该像素点灰度值减1,平移到x=153的位置上;当二进制位为“0”时,该像素点保持不变。

将嵌入涉密信息的含密图像通过渠道(如因特网)传送到接收者手中,接收者通过逆过程提取出涉密信息,并将含密载体还原成原始载体。我们从图2(b)中处理过的直方图中可以看出原峰值点消失了,那是因为x=154的像素根据涉密信息进行了操作。将区间[1,153]向左平移1就是说将这些像素整体进行灰度值减1操作,由于变化量为1且是整体变化对图像的视觉特性影响很小。但是由于只将信息嵌入到x=153和x=154对应的像素点上,信息容量非常小,特别是当灰度值比较平缓时信息容量更小,极端情况下(如纯单一灰度值图像)由于无法确定峰值点而使算法失效,无法隐藏信息。由于该算法涉密信息的提取需要确定峰值点和零值点的位置,而含密图像和原图像的峰值点不一样,这需要额外的传输峰值点位置的信息,但是,文献[6]并没有描述如何传输这些额外的信息,为了解决这个问题J.H.Hwang[8]等人提出了HKC算法。

1.2 HKC算法

HKC算法和NSAS算法原理都是利用直方图移位的方法,但HKC算法是寻找载体图像的一个峰值点和两个零值点对(一个在峰值点左边,一个在峰值点右边)。通过同时向两边平移1位来产生隐藏空间。利用生成位置图像来存储像素位置信息(主要是峰值点和零值点位置信息)。下面我们还是以“lena”图像来说明HKC算法:

算法步骤如下:

1) 生成载体图像的直方图。找出直方图的峰值点和位于峰值点右侧的右零值点和位于峰值点左侧的左零值点如图2所示。本图中获得的峰值点为h(154) ,选取的左零值点为h(23) ,右零值点为h(237)。

2) 生成位置图像(图3所示)来存储像素位置信息。

3) 产生隐藏空间。将h(24) 至h(153) 之间的像素点向左移1位,同时将h(155) 至和(236) 之间的像素点向右移1位。

4) 将涉密信息嵌入在x=153,x=154和x=155对应的像素点上。

7) 信息隐藏空间。

HKC算法很好的解决了峰值点和零值点位置传输问题,但缺点还是比较明显:信息隐藏容量还是比较小,过分依赖于载体图像自身特点。为了减少这种依赖性,A.Leest[7]提出了基于分块思想的算法,有效的弥补了上述缺点。

1.3 基于分块的HKC算法

分块在数字图像处理了占有重要地位,将图像等分成多个小块,再分别对每一个块进行处理,能比整个图像处理达到更好的效果。对于本算法来说,分块使得嵌入涉密信息的像素点增多,提高了隐藏容量,另外分块使得嵌入涉密信息的像素分布得更加均匀,也减少了像素的修改对图像视觉效果的影响。这里,我们以灰度图像“peppers”进行说明:

2 基于直方图平移和视觉特性的RGB图像可逆信息隐藏算法

2.1算法实现

基于RGB图像的直方图平移和视觉特性,该文提出一种可逆信息隐藏算法。该算法思想是先对整个RGB图像进行分块处理,再将每块RGB图像分为R、G、B三个颜色分量,对R分量,G分量进行HKC算法处理,对B分量处理时,对每个块的像素在进行移位操作时,移动的位数由1位改为2位,最后由这3个经过处理过得分量重新构成块图像在合成含密图像,这将在对视觉影响很小的情况下极大地提高信息隐藏容量。下面以RGB图像“peppers”为例(如图8所示)进行说明:

隐藏算法步骤如下:

1) 将图像分为3x4个块,结果如图9所示。

2) 将分块后图像分为R、G、B三个分量,并求其分量的直方图如图10所示。

3) 对三个分量来说,通过贪心算法找出峰值点、左零值点和右零值点。

4) 产生隐藏空间。对R、G进行如下处理:[左零值点-1,峰值点-1]向左平移1位,[右零值点-1,峰值点+1]向右平移1位。对B分量进行如下处理:[左零值点-1,峰值点-1]向左平移2位,[右零值点-1,峰值点+1]向右平移2位。

5) 嵌入涉密信息。

2.2 提取算法

提取算法流程图如下:

从流程图中我们可以看出,该算法是隐藏算法的逆运算,可以实现载体图像的可逆恢复。

3 实验结果与分析

为分析信息嵌入对载体图像视觉性的影响,选取了3种不同图像flower、family和peppers进行信息嵌入,其结果如下:

隐藏信息前:

4 结束语

本文中,我们提出了一种新的基于直方图平移和视觉特性的RGB图像可逆信息隐藏算法。通过实验验证,说明了该算法能减少对载体图像本身特性的依赖性和对隐藏容量有良好的提升效果,在自然图像中如天空、海洋、森林等大部分图片都比较平缓的,所以这种新算法具有良好的应用前景。

参考文献:

[1] 唐明伟.图像信息隐藏与隐藏分析算法研究[D].成都:电子科技大学,2012.

[2] Celik M U, Sharma G, Tekalp A M, et al. Lossless generalized-LSB data embedding[J]. Image Processing, IEEE Transactions on, 2005, 14(2): 253-266.

[3] Honsinger C W, Jones P W, Rabbani M, et al. Lossless recovery of an original image containing embedded data: U.S. Patent 6,278,791[P]. 2001-8-21.

[4] Tian J. Reversible data embedding using a difference expansion[J]. IEEE Trans. Circuits Syst. Video Techn., 2003, 13(8): 890-896.

[5] Kuo W C, Jiang D J, Huang Y C. A reversible data hiding scheme based on block division[C]//Image and Signal Processing, 2008. CISP'08. Congress on. IEEE, 2008, 1: 365-369.

[6] Ni Z, Shi Y Q, Ansari N, et al. Reversible data hiding[J]. Circuits and Systems for Video Technology, IEEE Transactions on, 2006, 16(3): 354-362.

[7] Van Leest A, van der Veen M, Bruekers F. Reversible image watermarking[C]//Image Processing, 2003. ICIP 2003. Proceedings. 2003 International Conference on. IEEE, 2003, 2: II-731-4 vol. 3.

[8] Hwang J H, Kim J W, Choi J U. A reversible watermarking based on histogram shifting[M]//Digital Watermarking. Springer Berlin Heidelberg, 2006: 348-361.