一种新颖的双声道数字音频无源水印算法
2011-05-01杨恒欢常学义
杨恒欢,常学义,荆 锐,冯 涛
(1.上海中新科技管理学院计算机系,上海 200023;2.上海第二工业大学成人与继续教育学院,上海 200041)
0 引言
随着信息安全技术的发展,数字音频水印技术也得到更加广泛的应用并迅速发展。数字音频水印应用领域主要是版权保护、隐藏标识、认证和安全不可见通信。一个有实用性的数字音频水印应具有以下特征:隐蔽性或透明性(Imperceptible or Transparency)、不易移除性(Non-removable)、强健性(Robustness)和明确性(Unambiguous)。在不同的应用领域,数字音频水印侧重的特性也不同。现今数字音频水印技术的主要研究领域为二值图像和低像素灰度图像。由于目前嵌入方法的局限性,在面对像素数较大的图像时,无法做到良好的抗感知性,嵌入后对音频品质的影响较大,有很大的局限性。
数字水印的分类方式有两种。
1) 按数字水印提取方式可将数字音频水印类型划分为有源水印、无源水印和零水印。
(1) 有源水印在提取过程中除了需要带水印的音频外还需要原始音频。一般来说,有源水印的鲁棒性比较强,可嵌入信息量较大。文献[1]提供一种基于快速傅里叶变换的有源水印方法。该方法提取水印时先对原始音频进行傅里叶变换找到水印嵌入位置序列,然后根据序列对水印音频进行处理提取出水印图像。此类方法一般具有较好的鲁棒性和透明性。但其应用受到存储成本的限制,拦截到水印音频和原始音频后易被发现水印信息,一般需要对水印图像进行加密,以此来提高水印信息的安全性。
(2) 无源水印又称盲水印,即在提取水印信息时不需要原始音频。无源水印较难发现其中藏有水印,但是通常情况下嵌入的信息量较小。文献[2]提出了一种基于DWT和相对较小值的音频盲水印算法。该方法在嵌入时根据连续 3个水印比特的二进制权值之和来确定嵌入位置,提取时也可用相同方法确定水印的嵌入位置,以达到盲水印的提取。此类方法有较高的鲁棒性和透明性,但存在嵌入信息量小的问题,一般只能处理低像素的二值图像。
(3) 零水印在嵌入水印时对原始音频无任何改动,其所生成的是与水印图像等长的密钥文件。与前两种水印算法不同,由于没有改变音频的特征,它在提取时需要原始音频和与水印等长的密钥。文献[3]中讨论了两种零水印算法。此类方法均根据音频特征构造一个新的矩阵作为密钥,提取时根据原始音频的特征和水印密钥进行处理还原水印。零水印并不改变宿主信息,能很好地解决数字水印的感知性和鲁棒性之间的矛盾,但是通常需要公证机构备份音频以及需要水印等长的密钥才能保证应用。
2) 根据数字音频水印信息的嵌入位置,可将类型划分为空间域水印算法和变换域水印算法。
(1) 空间域水印算法通常直接将水印信息嵌入到音频文件的时域信息中。主要算法有最低有效位(LSB)编码,回声隐藏算法等。文献[4]提出了一种基于回声隐藏的数字音频水印算法。该算法水印的嵌入和提取均在时间域完成,同时引入了用人类听觉特性寻找序列,提高了水印的安全性并加强了不可见性。此类算法实现较为简单,运行速度快,但通常鲁棒性较差。
(2) 变换域水印算法将水印能量离散地嵌入到音频的变换系数上。常见的变换方法有离散余弦变换(DCT)、离散傅里叶变换(DFT)、离散小波变换(DWT)、卡亨南一洛维变换(KLT)等。文献[5]先对音频进行小波分析然后进行离散余弦变换(DCT),选取 DCT系数中幅值较大的点嵌入水印信息。该算法具有较好的鲁棒性和透明性,但水印的嵌入量较小,大多局限于二值图像,在嵌入水印图像较大时,存在溢出等问题。
本文方法采用了无源水印技术,提出了一种基于小波变换的双声道无源数字水印算法。先对水印图片做置乱加密处理,然后寻找左右声道在低频系数中的较大差异位,并以水印图像像素数为基准自适应地寻找合适的嵌入位置,最后根据嵌入位置的音频特征将水印嵌入到左(右)声道的低频系数中。该嵌入算法简单易行,嵌入水印后的音频几乎不会被感知改变,安全性好,且提取水印图像无需原始音频,实现了无源水印。本方法较以往算法不同之处在于:(a) 能大幅提高嵌入水印信息量,对于灰度以及彩色图像同样适用;(b) 具有很好的隐藏性,嵌入水印后的音频几乎不能被感知到水印的存在;(c) 以水印图像像素为选择基准能自适应将水印嵌入到音频中。
1 基于小波变换的双声道数字音频无源水印算法
本算法通过对音频的左右声道进行小波分析和差异性对比分析,利用加密水印图像的像素数及音频中低频系数的差异点,自适应寻找适当的水印插入点,最终将灰度图像作为水印信号嵌入到音频中。算法包括四部分:(1) 水印图像的归一化和加密;(2) 音频信号分析及特征点的选取;(3) 水印图像及参数的嵌入;(4) 水印图像的选取。流程如图1所示:
图1 流程图Fig.1 flow diagram
1.1 水印图像的归一化和加密
由于图像信息的存储格式和音频处理时的格式不同,在处理前必须进行归一化操作,将图像信息格式转为限定范围且方便运算的格式。在读入灰度水印图像后,将水印图像信息强制转换为双精度格式,并且限定各元素的取值范围在0~1之间。为了加强水印图像的鲁棒性和安全性,同时需要对水印信息进行加密。这样保证即使非法截获者猜测到水印的嵌入方法,也无法提取出正确的水印信息。可选择的加密方法有很多,如位操作、FASS曲线、Arnold变换、三角函数变换等。鉴于无源水印本身抗感知性和安全性本身就较高,无需太过复杂的加密确保安全。本算法采用Arnold变换作为加密算法,改变水印图像的空间相关性,Arnold 变换又称作猫脸变换(Cat Mapping)[6],其优点在于较易实现,还原方式简单。其变换如式(1):
其中x和y为原始图像的元素空间坐标,x'和y'是构成图像的坐标,K是原始图像边长。随着公式迭代次数的增加,水印图像会变的越来越模糊,达到加密的目的。
图2 原始图像Fig.2 Original image
图3 Arnold变换后的图像Fig.3 Image after Arnold transforms
由于其迭代次数在达到某个特定次数时又会被还原成原图像,因此在提取时只需要知道加密时的迭代次数就能还原水印图像。通过对音频的分析,得到的音频振幅范围非常小,大约在-1~+1之间。如果以传统方法嵌入二值水印图像,为了降低对音频使用性影响,嵌入信息十分有限。在嵌入灰度图像时,由于影响因子较大,几乎无法实现。本算法为了确保音频的实用性,在嵌入图像前需要将图像每个像素值降低至不影响音频的不可感知性和抗攻击能力。当像素值的降低强度大于0.1时,会影响嵌入后音频的不可感知性。而当像素值的降低强度低于0.005时,对于水印图像低灰度区域影响极大,在抵抗白噪声攻击后,所得水印图片完整度较低。根据多次实验,使用1/20作为嵌入强度调控值,最为平衡。由于水印图片像素值的降低,使得嵌入水印后的音频,不可感知性和抗攻击能力有了很大的提高,灰度水印的嵌入得以实现。
1.2 音频信号分析及特征点的选取
水印嵌入位置的好坏关系到数字音频水印的鲁棒性和透明性。一个成功的嵌入算法,在嵌入序列的选择上,应该是使其离散分布在音频当中。传统的数字音频无源水印算法,对嵌入位置的要求更高。由于在提取时没有原始音频作对照,其嵌入序列还需要具有一定可循的规律性。如文献[3],该算法先对音频进行小波分析,其嵌入位置是根据连续 3个水印比特组合的二进制权值之和来确定的。但是,无法进行灰度水印图像的嵌入,所以通用性较差。
本文算法通过将音频信号左右声道分别做小波分析,将两者作对比确定嵌入位置。(1) 先将载体音频分离为左右声道,然后分别进行三级小波分解。通过大量的实验数据确定,小波系数中的低频系数具有较好的鲁棒性。因此本算法选取第三级的低频系数(dp3)进行分析,并在其中选择特征点。(2) 对于一个常规的双声道音频来说其左右声道间必然具有一定的差异性。如图 4左半部分为左声道,右半部分为右声道。设定左声道低频系数为dp3,l,右声道低频系数为dp3,r。将左右声道低频系数dp3,l和dp3,r的所有元素作差值运算,将其差值绝对值化并重构到新向量D(图5)中。计算方法见公式(2):
图4 原始音频Fig.4 Oringinal audio
图5 左右声道低频系数差 Fig.5 The difference between dp3, and dp3,r
(3) 此时的向量D中包含音频无音部分,和一些差值较小部分,这些位置都不适合嵌入水印图像。本算法先求出向量D中的均值作为基准,然后找出二个最大值的位置,将该位置用作储存均值D,最后将D中高于均值的位置记录下来,该位置序列记为序列XL。均值D的数值将作为提取水印图像所需的参数,也会和水印图像根据序列XL一起嵌入到音频中。这样提取的嵌入位置既保证水印图像不会被嵌入到音频的无意义部分,同时具有较好的离散性。并且嵌入位置是呈跳越离散分布,拥有很好的安全性和抗感知性,对原始音频影响进一步减小。
1.3 水印图像及参数的嵌入
在所得的嵌入序列XL中具有数倍于水印图像数据量的可嵌入位置,并且序列中具有许多连续的现象。为保证水印信息的嵌入的离散程度,本文算法在嵌入水印信息时采用了分段法。对于嵌入提取参数,一个同水印一起分段嵌入,另一个则选择具有最大差值相关的低频系数位置作为嵌入点。假设所需嵌入的水印图像具有NL个元素,通过公式可得固定步长NXL。根据其将嵌入序列XL分为NL+1个段,前NL个段中将嵌入水印图像,第NL+1段则嵌入一些提取参数。运算取得量化步长NXL的具体公式(3)如下:
将XL除以NL,如果XL/NL非整数,取其整数部分(fix)作为量化步长NXL;若XL与NL的余数为0,则取XL除NL+1所得整数部分。在嵌入水印的过程中,先选取XL中的第一个元素作为起始,提取出其对应的左(右)声道低频系数的数值,将水印嵌入到其中数值较低的部分,然后以 NXL为步长,依次将水印信息嵌入,直至水印图像嵌入完成。嵌入公式(4)如下:
需要嵌入的提取参数分别为图像像素数NL和嵌入前低频系数差值的均值。嵌入方法如下:1) 引入嵌入强度将水印图像像素数(NL)强度降至0~0.01之间,然后用公式(4) 将其嵌入至对应低频系数上(序列XL的NL+1段尾部元素);2) 寻找向量D中最大的两个差值Dmax1,Dmax2,将最大差值对应位置的音频左右声道低频系数差值重设,差值为Dmax1= Dmax2+,Dmax2维持不变。至此,所有嵌入工作完成,将左右声道低频系数分别进行逆小波变换,然后合并成双声道音频。
1.4 水印图像的提取
先读入带水印音频,将其分成左右声道,分别进行三级小波分解。然后对低频系数做差运算,将差值放入向量Dnew中。用冒泡法寻得其中最大的两值,将这两个值做差运算得到提取参数,用提取参数将向量Dnew进行筛选,取得提取序列XLnew。提取出XLnew最后一个元素对应的左右低频系数的差值,减去后再进行强度还原,得到第二个提取参数即水印图像元素个数NL。之后将提取序列XLnew分为NL+1段,提取前NL段的每段的第一个差值。通过公式(4) 进行逆运算提取出水印信息,并将其转为方阵,最后进行Arnold逆变换就可得到水印图片。
2 实验结果与分析
本方法在实验中采取了文字、建筑和动物3种不同内容的图片,信息容量依次上升。文字图片为汉字和几何图形;建筑图片为中国馆,动物图片为狒狒脸部。音频为时长30 s的女声歌曲。本系统测试环境CPU为2.4 GHz,内存为512 MB;软件环境为WINDOWS-XP,MATLAB 7.9.0。做了嵌入和提取,对无攻击、滤波以及重采样攻击后的提取图像做了相似度对比,以及对水印音频的抗感知性测试。测试结果见表1所示。
由10人试听嵌入水印前后的音频,都无法辨别出音频差异。实验结果表明本文算法可以嵌入较大信息容量的复杂灰度图片,并且嵌入与提取时的误差极小,耗时短,具有一定的抗攻击能力。
表1 实验结果Tab.1 The result of test
3 结论与展望
本文提出一种新颖的双声道数字音频无源水印算法。通过分析音频的小波系数,自适应地选取适宜嵌入水印和参数的特征点,并结合图像特征选取嵌入点将水印图像信息嵌入到音频中。实验结果表明该方法能嵌入较大幅度的复杂灰度图像,嵌入水印的完整性与音频的实用性良好,算法实现简易高效,具有一定的鲁棒性。在实验中发现由于采用Arnold变换置乱图像,提取时间会随着图像增大而大大延长,并且鲁棒性还有较大的提高余度,将在以后的研究中考虑。
[1]韩冰, 李丽娟.一种基于快速傅里叶变换的音频数字水印[J].科学技术与工程, 2005, 125(24):1906-1910.
[2]朱有忠, 向俊.基于DWT和相对较小值的音频盲水印新算法[J].吉林大学学报, 28(2):203-208.
[3]陈芳, 李晶, 绳鹏.基于变换域的音频数字零水印算法研究[J].微计算机信息, 2009, 25(12):63-65.
[4]姚钟涵, 王慧琴, 毛力.一种基于回声隐藏的数字音频水印算法[J].微计算机信息, 2008, 24(1):301-303.
[5]王庆, 张雪英, 马朝阳.一种新的基于变换域的数字音频水印算法[J].太原科技, 2009, (3):53-55.
[6]ARNOLD V I, AVEZ A.Mathematical Physics Monograph Series[M].New York:W A Benjamin, Inc., 1968.