罗永有
(柳州城市职业学院,广西 柳州 545036)
在图像块中插入隐写信息,实现信息隐写的目的是近年来隐写算法发展和应用的一种主要方式.由于图像块像素点自身的特点和人眼对图像像素细微变化的不明显性,使得在图像块中插入隐写信息成为可能.目前在图像块中植入隐写信息的研究很多,所提出的相关算法也很多,比如经典的LSB算法.
由于图像的像素点最低位的变化对人眼视角效果影响不明显,因此在图像隐写算法中,基于最低像素位的隐写算法是一种非常经典的图像隐写算法.在基于最低像素位嵌入隐写信息的算法基础上,也发展形成了若干种新的改进性的隐写算法.然而在研究图像隐写算法时,更多的是考虑像素点与像素点之间的相互关系来设计隐写算法,而对像素块和像素块之间的数据关系研究并不够.为了进一步提升图像隐写算法的能力,笔者将研究基于图像块间像素特征的隐写算法.
单个像素点的数值表示时,其最低比特位对该像素点的数值影响最小.以8比特的像素点为例,其像素点的最低位对整个像素值的影响只有256分之一,因此在像素点的最低位嵌入隐写信息,只对该比特位加减一,则嵌入了隐写信息之后,对该像素点的像素值影响并不明显,这也是目前经典的LSB隐写算法设计的核心思想.但是由于在单个像素点嵌入隐写信息时,其嵌入的信息量十分有限,而且直接对单个像素点进行隐写信息的嵌入,并没有考虑像素点和像素点之间的相邻关系,因此这种方式进行隐写信息嵌入时,其嵌入的隐写信息量是有限的.
在通常人们所接触的图像中,相邻的两个像素点之间的像素值往往是非常接近的,因此在设计隐写算法时,可以对相邻两个像素点之间的像素值进行分析,并根据相邻两个像素点之间的像素差值,来设计隐写信息的隐写量,以此提高隐写算法的隐写容量.
如图1所示,在图中所表示的相邻像素点之间,每个像素点分别与水平方向的相邻像素点,或垂直方向的相邻像素点都存在一定的相似关系,因此在研究和设计基于相邻像素点之间的关系,实现信息隐藏的算法时,一般需要确定一个像素点的扫描方向.如图1所示选取Z字形的扫描方向,依次选取相邻两个像素点之间的像素差值,作为隐写信息的参考依据.
图1 相邻两个像素点的选取Fig.1The selection of two adjacent pixels
由于图像呈现给人们的视角效果是二维的图像,因此对像素点之间的相互关系分析,也应该从二维的角度进行分析.当单纯对图像块进行水平扫描或垂直扫描,都只能在一维的空间来分析相邻像素点之间的相互关系,而不能够在二维的空间分析相邻像素点之间的相互关系.
如图2所示,在图中四个像素点都是相邻的像素点.这四个像素点之间都存在一定的关联关系,因此在研究图像的隐写算法时,如果能够从像素点水平或垂直,以及对角方向的相邻像素点都进行分析,以此研究相邻像素点之间的相互关系,即分析图像块之间的像素点相互关系,以此作为依据,研究和设计图像隐写算法,其获得的隐写性能应该会有所提升.
图2 图像块的像素点相互关系Fig.2Relationship between the pixels of image block
如图2所示的图像块,对图像块内部各像素点之间的关系进行分析,确定隐写信息的嵌入量.
假设图2所示的图像块中,各像素点记为:P(x,y),P(x+1,y),P(x,y+1),P(x+1,y+1),这4个像素点分别以A,B,C,D进行表示.
则4个像素点之间的相互关系有以下6种情况Γ:AB、AC、AD、BC、BD、CD.
分别计算每一种情况下像素点之间的差值,记为
则g(f(△Pt))=log2(f(△Pt)),该函数表示对于像素点之间差值为△Pt时,可嵌入的隐写信息比特数.
嵌入的隐写信息将与图像像素值相加,实现信息的隐写嵌入.假设嵌入的隐写信息记为q=g(f(△Pt)),原像素值为Pi,则嵌入隐写信息后,其像素值为Pi+q.但隐写过程中为保证其隐写的隐蔽性,应确保嵌入了隐写信息后,其像素值的变换不会导致与相邻像素的差异明显.同时在嵌入隐写信息时,需要对像素块中所有像素值进行调整,即提高了隐写信息的嵌入量,同时也降低了像素块之间的像素差变化幅度,减少了图像块中像素的跳跃性,使得嵌入隐写信息后,图像块同样保持最初的平滑性.因此,笔者给出如下公式约束其隐写的隐蔽性.
图像块中各像素点值记为:P(x,y),P(x+1,y),P(x,y+1),P(x+1,y+1),四个像素点之间的相互关系总共有六种情况Γ,总的信息嵌入量为Q.每个像素点的信息嵌入量分别为q1、q2、q3、q4,嵌入后的像素值分别为.
嵌入隐写信息前后的像素点差值:f(△Pt)=
将上述关系式用极大似然估算算法计算得到q1,q2,q3,q4值,即为各像素块的隐写信息嵌入量.
对隐写算法性能的测试主要有两个指标,其一是通过对比隐写前后的视觉效果,看图像的差异度是否明显.另一种是通过选取一系列的图像质量指标,对嵌入隐写信息后的图像质量进行量化分析,以此评判隐写算法的质量.由于人眼对图像变化后的视觉敏感效果不一样,因此,很多时候量化指标测试结果更优的隐写算法,其视觉效果未必理想,甚至凭肉眼都能察觉到嵌入隐写信息后的图片变化.笔者选取典型的Lena图像作为测试对象,采用文中设计的隐写算法,在图片中嵌入了49583bit的信息,嵌入前后的图像如图3所示.
测试结果表明,采用文章设计的隐写算法,在Lena图像中嵌入了隐写信息后,图片的视觉效果并未明显的变换,而且图像嵌入的信息量比较大,隐写算法具备使用性.
图3 嵌入隐写信息前后的视觉效果变化Fig.3Visual Effects Comparison
为了对隐写算法的量化指标进行测试,笔者选取了9幅常见的隐写测试图像作为测试载体图像,分别为 Zelda、Gold、Barb、Lena、Tiffany、Baboon、Toys、Peppers、Boat,每幅图像尺寸都是512×512.由于所选取的这些隐写测试图像都是具有代表性的载体图像,因此通过对这些图像的隐写性能测试,更能反映笔者设计的隐写算法性能.测试过程中,主要选取了PSNR这一指标对隐写后图像质量进行衡量,PSNR的计算公式如下:
测试过程中,为了让测试结果更有对比性,笔者选取两个算法作为对比测试,分别是经典的LSB算法,以算法1表示,另一个是基于相邻两个像素差值的隐写算法,以算法2表示,测试结果如表1所示.
表1 笔者设计的算法性能对比测试结果Tab.1 Algorithm performance comparison test results
测试结果表明,对于选定的9幅测试样本图像,笔者设计的隐写算法信息隐写的容量更大,其隐写容量的均值为576842bit,相比经典的LSB算法,其隐写容量为563508bit,信息隐写的容量明显提高.而且9幅图像,每一幅图像的结构和特征都是比较有代表性的,测试结果中9幅图像对应的隐写容量都有明显的提升,这表明笔者设计的隐写算法具有较大的适应面,面对绝大多数的隐写图像,都能够表现出较高的信息隐藏能力.
从PSNR测试结果表明,笔者设计的隐写算法相比传统的LSB算法和基于相邻像素点信息隐藏算法,笔者设计的隐写算法的PSNR值都很高.对于单幅图像而言,在Peppers图像中嵌入隐写信息后,笔者设计的隐写算法PSNR值比经典的LSB算法提高了6.27.在9幅图像的测试中,笔者设计的隐写算法PSNR均值提高了4.4.而PSNR值越高,表明图像中嵌入了隐写信息后,对原图像的修改越不明显,这对提高嵌入隐写的抗检测性有非常好的效果.
笔者通过对图像块之间像素点之间的关系进行研究和分析,改进了基于LSB的图像隐写算法,并且通过理论分析和实验验证了该算法的可行性.实验测试结果也表明,笔者设计的隐写算法,由于更多地考虑了像素块间的像素点之间的关系,在进行信息隐写时,对于同样容量的信息隐写量,笔者设计的算法其PSNR值更高,这也表明了该隐写算法能够获得更优的隐写效果.
[1]梁惠,郭立,古今.一种基于图像边缘检测的隐写算法[J].中国科学技术大学学报,2010(11).
[2]胡鹏.基于正交扩频码和HVS的DCT域图像数字水印技术[J].信息安全与通信保密,2008(7).
[3]欧阳春娟,李霞,李斌.基于递进多目标蛙跳优化的LSB±K隐写算法[J].深圳大学学报:理工版,2012(3).
[4]常侃,覃团发,门爱东.一种帧内码率-量化模型及其应用[J].广西大学学报:自然科学版,2010(6).
[5]张家骥,郭立,王昱洁.一种空域频域结合的图像隐写算法[J].信息安全与通信保密,2011(7).
[6]梁惠,郭立,陈运必.基于视觉感知模型的大容量视频隐写算法[J].中国科学院研究生院学报,2010(1).
[7]何书前,邓正杰,石春.联合率失真模型的帧级码率控制方法[J].计算机工程与应用,2013(23).
[8]宋娟,王柯俨,沈沛意,等.多光谱图像压缩的联合码率分配—码率控制方法[J].宇航学报,2014(2).
[9]常侃,覃团发,门爱东.一种帧内码率-量化模型及其应用[J].广西大学学报:自然科学版,2010(6).
[10]张菲菲,荆涛,李兴华,等.基于特征像素相关性的虚假图像盲检测算法[J].信号处理,2010(10).
[11]陶然,张涛,李文祥,等.应用整数小波变换的抗盲检测图像隐写[J].应用科学学报,2010(6).
[12]刘潘梅,孙容海,吴建源.一种新的区域复制图像篡改盲检测技术[J].计算机工程与应用,2012(9).
[13]詹双环,张鸿宾.基于小波分解和方差分析的图像信息隐藏盲检测[J].电子与信息学报,2007(6).