数字音频水印技术及应用
上QQ阅读APP看书,第一时间看更新

2.6 数字音频水印嵌入算法

根据水印作用域的不同,可将水印嵌入算法划分为时间域算法、频率域算法、压缩域算法。

2.6.1 时间域水印算法

时域水印算法在时间域修改信号样本达到嵌入水印的目的。时域算法具有以下优点:方法本身简单易实现且需要较少的计算资源;通过对水印数据和嵌入过程进行加密,安全性可以得到保证;水印嵌入和提取算法简单,速度快。其缺点是:对信道的干扰及数据操作的抵抗能力很差。最低比特位算法和基于回声隐藏(echo hiding)的算法是时域算法中两种主要算法。

1.最低比特位算法

最低比特位算法(least significant bit,LSB)是一种把数据植入其他数据的最简单的嵌入方法[17]。通过把每个采样点的最低比特位用一个水印比特来代替,可以把大量的数据植入到音频信号中。它是最早在信息隐藏和数字音频水印领域里得到研究的技术之一,现在已经成为时间域嵌入技术的经典算法。实际上,这种技术只是在封闭的、点对点的环境中才有用。

为了提高LSB算法的鲁棒性,一些文献提出了改进算法。文献[18]提出使用两步算法提高LSB的鲁棒性和比特率。首先使用一种新的LSB编码方法将水印嵌入到LSB较高层;其次对由嵌入水印引入的噪声进行处理。使用两步算法,水印嵌入到LSB较高层中,对于MPEG压缩等攻击有较好的鲁棒性。计算机仿真计算表明含水印的音频的音质比较好并且此算法使宿主音频失真最小。图2-7为原始水印图,图2-8为从含水印的音频信号中提取出的水印图,图2-9为采用LSB嵌入算法得到的含水印的音频信号波形图。

图2-7 原始水印

图2-8 提取出的水印

2.基于回声隐藏算法

回声隐藏算法是根据人类听觉系统的时域掩蔽特性,弱信号在强信号消失之后的50~200ms之内不被人耳察觉,因此可以利用回声作为同步信号[19]。回声隐藏算法的数学模型如下:

图2-9 原始音频信号与含水印的音频波形图

(a)原始音频波形图;(b)含水印的音频波形图

(2-1)

(2-2)

其中,yn]是加入回声后的音频信号,表示为xn]与hn]的卷积;xn]表示原始音频信号;hn]为回声内核的单位脉冲响应,回声信号由αδn-d)引入到原始音频中;α表示衰减率;d表示声音信号的延迟。α为0~1之间的正数,d一般表示回声信号滞后于原始信号的样点间隔。回声隐藏通过在音频信号中引入不同的回声延迟来嵌入比特位“0”和“1”。典型回声核示意图如图2-10所示。

图2-10 典型的回声核脉冲

1)回声隐藏嵌入算法

(1)对一段音频信号,先将其分成若干包含N个采样点的子帧,每个子帧的时长约为几毫秒到几十毫秒。每个子帧嵌入一比特隐藏信息。

(2)在信息嵌入过程中,对每帧信号使用式(2-1),并定义两种不同的回声延时d0d1d0d1是根据人耳听觉掩蔽效应为准则进行选取的。选择d=d0,则在信号嵌入隐藏信息比特“0”;选择d=d1,则在信号中嵌入隐藏信息比特“1”。

(3)将所有含隐藏信息的声音信号的声音信号段串联成连续信号。

2)回声隐藏提取算法

嵌入信息的提取实际上就是确定回声延时。回声隐藏算法常用的检测方法是采用倒谱,文献[20]使用功率倒谱来提高回声检测的性能。在回声隐藏检测过程中,使用功率倒谱来检测不需要恢复原始信号,只需要估计回声的延迟时间,所以使用功率谱可以有效地检测回声隐藏信息。

对音频信号yn],其倒谱描述如式(2-3)所示:

(2-3)

其中,FF-1分别表示傅里叶变换和傅里叶反变换。式(2-3)可表示为cyn]=F-1[lnX(ejw)]+F-1[lnH(ejw)],这样可以将xn]和hn]的倒谱求和,即

(2-4)

其中,hn]的倒谱为chn]=F-1[lnH(ejw)],H(ejw)=1+αe-jwd

由于ln(1+x)=x-x2/2+x3/3-…(|x|<1),0<α<1,则

(2-5)

因此,当回声核如式(2-4)所示时,嵌入回声后声音信号的倒谱可以表示为

(2-6)

式(2-5)中,chn]仅在d的整数倍处出现非零值,那么在信号的倒谱域cyn]中,回声延迟d处也会出现峰值,据此可确定嵌入回声的延迟大小,从而进一步确定隐藏信息是“0”或是“1”。因此,提取隐藏信息的过程为:

(1)将含有回声的音频信号yn]在已知d0d1N的情况下,按照预定的长度分帧,求出每帧的倒谱值;

(2)比较每帧信号中d0d1处的倒谱值cyd0]、cyd1]的大小,如果cyd1]>cyd0],则判定嵌入的隐藏水印信息为“1”,否则为“0”。

由于回声隐藏算法不是将水印信息当作随机噪声嵌入到载体数据中,而是作为载体数据的环境条件,因此对一些有损压缩的算法具有一定的鲁棒性,但是它没有达到令人满意的正确提取率。另外由于方法本身的限制,其数据嵌入量比较低。因此,为增加算法的安全性、提高鲁棒性和隐藏容量,一些改进的算法被提出[21][22]。目前,对回声隐藏嵌入算法的研究大部分集中在对“核”的改造上,比如,基于多回声核的算法、基于双极性回声核的算法、基于多向回声核的算法、基于时域扩展型的算法、基于衰减系数的隐藏方法、基于自适应调整嵌入强度隐藏算法等。Ko等人[23]提出时域扩展型回声算法来增加回声隐藏的安全性。该算法使用PN序列来扩展回声。经过扩展后的回声振幅会降低,能量也减小,因此,由于在原始音频中嵌入水印而带来的失真也会减小。水印检测过程包括在倒谱域对回声内核进行相关检测。该算法与传统的回声隐藏算法相比能够容忍重采样、MPEG压缩等的攻击并且不可感知性也很好。文献[23]提出使用时域扩展型双向回声核改进算法抵抗恶意攻击的性能,同时通过增加核谱在延迟时间内的峰值提高检测性能。

2.6.2 频率域水印算法

频率域水印算法是将原始媒体数据变换到频率域中,把水印数据加入到某些频域系数中,再反变换形成含有水印数据的媒体数据。频域算法有良好的鲁棒性,在经历了各种处理和加噪、滤波、重采样等攻击后,仍能保持很高的可靠性。频域的主要算法包括:相位水印算法,扩频水印算法以及基于DFT、DCT和DWT变换的算法。

1.相位水印算法

相位编码算法充分利用了人耳对绝对相位的不敏感性和对相对相位的敏感性。基于这个特点,将代表秘密数据位的参考相位替换原始音频段的绝对相位,并对其他的音频段进行调整,以保持各段之间的相对相位不变化,从而达到嵌入、隐蔽秘密信号的目的。相位编码法的一个缺陷是当代表秘密数据的参考相位急剧变化时,会出现明显的相位偏差。它不仅会影响秘密信息的隐蔽性,还会增加接收方译码的难度。

为了使相位偏差的影响得以改善,需要在数据转换点之间留有一定的间隔以使转换变得平缓,但这又会减小带宽。因此必须在嵌入数据量和嵌入效果之间折中。一般来说,相位编码的嵌入量为8~32bps。当载体信号是较为安静的环境,可得到8bps的信道能力;当载体信号是较为嘈杂的环境,可增大嵌入量,得到32bps的信道能力。

Bender等人[24]提出了一种相位编码的方法:首先把总长度为N的声音信号si]分割为小的音频片断sni];然后对每个音频片断应用离散傅里叶变换并建立一个相位矩阵φnωk)和幅度矩阵Anωk);根据公式φn+1=φn+1ωk)-φnωk)计算并存储两个相邻音频片断间的相位差;按式修正首段相位值。使用相位差重新建立相位矩阵:

使用新的相位矩阵和原始幅度矩阵Anωk)进行逆离散傅里叶变换(inverse discrete Fourier transform,IDFT)重构声音信号。检测水印时先对信号进行同步,然后检测相位,并把该相位和两个特定点上的参考相位相比较得到“0”和“1”。

文献[25]提出基于立体声音频的谱相位差进行高容量信息嵌入。此方法利用人类心理声学模型来计算由频率决定的耳间相位差的阈值,该阈值用来决定在音频何处嵌入水印是最合适的。利用该方法,水印的有效嵌入率可高达20kb/s,能够抵抗剪切、时域上的平移和下采样,但不能抵抗压缩和D/A-A/D转换。

2.扩频水印算法

扩频水印技术是在音频信号中嵌入伪随机序列,并通过计算伪随机噪声和含水印音频信号的相关值来检测水印。扩频方案是最流行的水印方案之一。使用扩频水印技术的水印算法具有如下共性[26]

(1)水印信息嵌入到变换域的多个频率系数上,变换域可以是离散余弦变换域、离散小波变换域、离散傅里叶变换域等;

(2)采用s=x+αws=x(1+αw),s=x(eαw)三种方式修改频率系数来实现水印信息的嵌入,其中x表示载体的变换域系数,w表示待嵌入的水印编码信息,α是强度因子,s表示嵌入水印之后的载体变换域系数;

(3)提取水印时,都需要利用原始载体或原始水印的相关信息,不能实现盲提取。

Cox等人的文章被认为是扩频技术在数字水印上应用的代表性的文章[27]。文章最初应用于数字图像,但稍加修改即可很方便地扩展到数字音频和视频。

为了最小化扩频水印系统的检测错误率,一些文章提出了改进的扩频水印方法。文献[28]提出一种基于修改感知熵心理模型和改进扩频的水印方法。为了提高算法的鲁棒性,大部分的扩频方法都是把水印扩展到整个原始音频信号里,而文献[28]只是把水印嵌入到信号的特殊区域(比如能量比平均能量高的区域)中,这样在计算复杂度方面比原始扩频方法要低,使用修改的感知熵的心理模型提高了算法的鲁棒性。本算法最大的优点就是降低了计算复杂度。Kim等人[29]提出一种采用扩频技术降低虚警率和漏检率的方法。在水印嵌入和提取过程中采用排除离群点(outlier)来降低检测错误。但如何定义outlier点是一个困难的问题。文献[30]提出的算法采用独立分量分析理论并把水印检测作为盲源分离问题。独立分量分析(independent component analysis,ICA)是进行盲源分离的一种有效方法。计算机仿真计算表明基于ICA的检测器以非常低的误码率(小于0.01)将水印提取出来。文献[31]利用遗传算法对扩频水印进行检测,计算机仿真计算表明算法能够正确地检测出嵌入在音频载体上的伪随机序列。

3.基于DFT的音频水印算法

1)基于DFT的音频水印嵌入算法原理

离散傅里叶变换是线性系统分析的有力工具,在数字信号处理技术中占有重要的地位。离散傅里叶变换在数字水印处理中受到了高度重视。DFT是复数变换,在幅度和相位满足特定的条件下,数字水印信息既可以嵌入到媒体信号的幅度上,也可以隐藏在它的相位中。

fn)为一数字序列,其DFT由式(2-7)表示:

(2-7)

傅里叶逆变换定义由式(2-8)表示:

(2-8)

在式(2-7)中,如果fn)是实数,则有

(2-9)

fn)是实数时,可以通过适当修改DFT系数的幅度|Fk)|的方法嵌入水印,为了保证修改结果的离散傅里叶逆变换也为实数,由式(2-9)知,修改幅度|Fk)|应满足正对称条件,即

(2-10)

(2-11)

其中,ε为幅度修改量。

同样,也可以通过适当修改DFT系数的相位∠Fk)来嵌入水印信息。为保证修改结果的离散傅里叶逆变换结果也为实数,由式(2-9)知,修改相位∠Fk)也应满足负对称条件,即

(2-12)

其中,δ为相位修改量。

2)基于离散傅里叶变换音频水印算法[32][33](图2-11)

图2-11 基于DFT音频水印嵌入算法图

(1)水印预处理

① 选取一幅M1×M2的有意义的二值图像WW={wm1m2),1≤m1M1,1≤m2M2},其中wm1m2)∈{0,1}作为待嵌入的水印。首先要对该二值图像进行置乱变换,增强其安全性,但不增加水印嵌入量。

② 将置乱后的水印图像降维,方便嵌入到一维音频载体信号中。降维公式为

(2-13)

其中,W″为一维水印信息;w″k)为一维水印信息的像素值;w′ij)为置乱后的二维水印图像像素值。

(2)嵌入水印信息

X表示长度为N的原始音频信号,将X分为长度为N1的音频段,为保证每个音频段中嵌入一个水印像素信息,那么X的长度N和数据段长度N1应满足N≥(M1×M2)×N1

① 将原始音频信号分成M1×M2段,每段长度为N1,记为Xf

Xf={Xfk1|0≤k1<M1×M2}

XfM1×M2个音频段作一维离散傅里叶变换,即

(2-14)

式中,Dfk1)表示第k1个音频数据段Xfk1)的一维离散傅里叶结果。

② 将M1×M2个水印像素值嵌入到经DFT变换的音频中。可采用加法或者乘法嵌入算法嵌入水印。在水印嵌入过程中,为提高算法的鲁棒性,可结合心理声学模型等方法,确定水印的嵌入强度。

③ 对含水印信息的系数进行傅里叶逆变换。首先用修改后的变换系统替换原有位置的傅里叶系数,然后再分段进行一维傅里叶逆变换,这就得到了含有水印的音频信号。

(3)水印信息提取

水印信息的提取过程是上述水印信息嵌入过程的一个逆过程,主要的提取步骤如图2-12所示。

图2-12 基于DFT的水印信息提取过程

3)使用基于DFT的音频水印算法的优缺点[34]

(1)由于DFT变换具有平移不变性,基于DFT域的数字水印算法具有良好的抗几何攻击性能。

(2)由于DFT系数的复数特性,可以在系数的幅值或相位中嵌入水印信息,DFT系数的相位信息比幅值信息更重要,根据数字通信理论,调相技术抗噪声干扰能力比调幅技术更强,因此应将水印嵌入到音频DFT系数的相位中。然而,在实际工作中基于DFT系数相位的数字水印算法性能一般,很容易受到攻击,算法抗MPEG压缩性能很差。

(3)基于DFT变换的数字水印算法的另外一个缺点是为了确保系数值经傅里叶反变换后得到的值是实数,必须满足DFT系数的复共轭对称性质,也就是说,系数幅值的改变必须保持DFT系数的正对称性:

(2-15)

改变系数的相位必须保持DFT系数的负对称性:

(2-16)

由于正对称性和负对称性的要求使水印嵌入的空间和信息量减少了一半,这也是DFT域水印算法最大的缺点。

4.基于DCT的音频水印算法

离散余弦变换是数字信号处理技术中最常用的线性变换之一,它和离散傅里叶变换一样,也存在着快速算法。由于具有很强的能量压缩能力和去相关能力,因此它在数字音频信号压缩和图像压缩等领域得到广泛应用。在音频水印算法中,由于离散余弦变换是实变换,便于水印的直接嵌入,也得到普遍的应用[35]

一维离散余弦变换和反变换的定义如式(2-17)与式(2-18)所示:

(2-17)

(2-18)

其中au)的定义如式(2-19)所示:

(2-19)

1)离散余弦变换音频水印算法

基于离散余弦变换的音频水印算法与基于傅里叶变换的音频水印算法除变换方法不同外,算法的操作过程基本上是相同的。图2-13和图2-14分别展示了基于DCT的水印嵌入过程与提取过程[36~38]

图2-13 基于DCT的水印信息嵌入过程

图2-14 基于DCT的水印信息提取过程

2)基于DCT的音频水印算法的优缺点[34]

(1)绝大多数的压缩技术,如JPEG、MPEG-1、MPEG-2、H26x等都是基于DCT域开发的,对DCT变换已经很熟悉。这使得在数字水印算法设计过程中,通过对压缩算法特性的了解,可以对水印算法进行改进,增强算法抗压缩的能力。

(2)为了解决数据压缩的问题,人们研究并提出了许多基于DCT域的听觉模型,由于压缩技术和数字水印技术密切相关,这些模型可以很容易地应用到数字水印技术中,提高了算法的不可感知性。

(3)能平滑功率谱密度,稳健性随所选频域嵌入系数而有所不同。

(4)DCT变换仅将载体信号从空域变换到频域,没有利用载体的时间-频率特性,而这种时间-频率特性正好与人类的某些听觉特性相一致。

5.基于DWT的音频水印算法

1)离散小波变换定义

小波变换是近些年发展起来的一种具有广泛应用价值的数学工具,它突破了传统的信号分析手段——傅里叶变换的限制,实现了对信号不同区域、不同分辨率的分析,这种特性使得小波变换广泛应用于信号处理、图像分析等领域。

ψt)为平方可积函数,即,若其傅里叶变换ψω)满足条件

(2-20)

式中,ψt)为一个基本小波或小波母函数,并称式(2-20)为小波函数的可容许性条件。

将小波母函数ψt)进行伸缩和平移,设其尺度因子为α,平移因子为τ,另其平移伸缩后的函数为ψατt),则有

(2-21)

式中,ψατt)为依赖于参数ατ的小波基函数。由于尺度因子α、平移因子τ是取连续变化的值,因此称ψατt)为连续小波基函数。

将式(2-21)中的尺度因子α和平移因子τ离散化(α=2jτ=2kTs),则式(2-21)可以表示为

(2-22)

将式(2-22)记为ψjkt),其中jk∈Z。然后再将t轴用Ts归一化,式(2-22)就变为

(2-23)

式(2-23)称为离散小波函数。

对任意函数ft)的离散小波变换为

式中,WTfjk)为离散小波函数。

若离散小波序列构成一个框架,设其上、下界分别为AB,则当A=B时(此时框架为紧框架),离散小波变换的逆变换公式为

A=B=1时,离散小波序列为一正交基,此时离散小波变换的逆变换公式为

一维离散小波变换把信号分成高频子带和低频子带,低频子带进一步分解成高频和低频两个部分。以上分解过程的数目由应用和原始信号的长度决定,得到的数据称为DWT系数,通过这些系数可以精确地重构原始信号,即离散小波逆变换。信号经过DWT变换后,能量主要集中在低频分量,高频分量所占的能量很少。在实际应用中,可以根据不同的需求选取小波系数嵌入水印以达到版权保护或内容完整性认证的目的。图2-15是信号经一个低通滤波器H0和一个高通滤波器H1分解的树型图,图中cdl表示低频系数,cal表示高频系数。图2-16是与图2-15相对应的重构信号过程。

图2-15 信号的小波分解

图2-16 信号的小波重构

2)离散小波变换的音频水印算法

基于小波变换的音频数字水印嵌入算法框架如图2-17所示。首先对原始音频载体进行预处理(如进行分帧、分段),然后再进行离散小波变换,根据不同的实际需要,选定嵌入水印的系数;同时,为提高系统的安全性,对水印信息(伪随机序列或者图像)进行预处理(如置乱处理)并将其嵌入到选好的音频小波系数中,最后再进行离散小波逆变换(inverse discrete wavelet transform,IDWT)得到含水印的音频信号[39~41]。提取水印的过程与水印的嵌入过程正好相反,如图2-18所示。

图2-17 基于小波变换的嵌入算法

图2-18 基于小波变换的提取算法

基于离散小波变换的数字音频水印嵌入算法虽然充分利用了小波变换的多分辨率特性,而且采用各种方法计算听觉系统在小波变换域内的掩蔽特性,但很少考虑数字音频信号经过小波变换后的各个子带音频中相邻小波系数之间存在很强的相关性问题。因此,在一些文献中,充分利用离散小波变换的多分辨率特性和离散余弦变换的能量压缩能力,提出将DWT与DCT结合的水印嵌入算法[42][43]

3)基于DWT的音频水印算法的优缺点

DWT变换与DFT变换和DCT变换相比,有如下优点[34]

(1)小波变换克服了短时傅里叶变换时频分辨率固定不变的缺点,提供了很好的局部化特性,它既可在时域,也可在频域局部化定位观测,对高频提供高的时间分辨率和低的频率分辨率,对低频提供低的时间分辨率和高的频率分辨率,这种非线性时频特性更适合音频信号的特点和听觉系统的时间频率分辨特性。由于音频信号频域特性随着时间的变化而变化属于非平稳信号,因此小波变换非常适用于对音频这样的非平稳信号进行分析和处理。

(2)由于小波变换的多分辨率特性,能对音频进行多级分解,使得小波变换更适合于大数据量、渐进传输的应用,如视频传输、实时系统等,在这些应用中可以向音频嵌入一个多级或嵌套的数字水印,水印的检测能在接收到部分数据时进行,只有当前面的子带信息中无法正确提取出水印信息时,才使用更高分辨率的子带信息,这样能有效地提高算法的效率,节约计算资源。

(3)小波变换把信号分解为多个子带,并且能够对每个子带独立地进行处理,因而利用小波变换,可以更加精确地对人类听觉系统(human auditory system,HAS)进行建模,更好地研究小波量化噪声的可见性和听觉掩蔽特性。

(4)小波变换可以通过多种方法来实现,计算效率高,便于实际应用中的实现。设音频样本的长为N,DCT和DFT的计算量为ON×log2N)),而小波变换DWT的计算复杂度为OL×N),其中L是小波滤波器的长度。

2.6.3 时间域与频率域算法比较

表2-1给出了时间域算法与频率域算法在不可感知性、鲁棒性、嵌入容量以及计算复杂度四个方面的比较结果。

表2-1 时间域、频率域主要算法性能比较

结合表2-1,频率域水印算法与时间域水印算法相比,具有如下优点。

(1)在频率域中嵌入的水印信号能量可以分布到空域的多个或所有像素上,有利于保证水印的不可感知性;

(2)在频率域中,听觉系统的某些特性(如频率掩蔽特性)可以更方便地结合到水印编码过程;

(3)频率域的方法可与国际压缩标准兼容,从而易于实现在压缩域内的水印编码。

2.6.4 压缩域音频水印算法

压缩域水印算法主要是指在JPEG域、MPEG域、VQ域和分形压缩域内的水印处理,主要有三种嵌入方式[44]

1.先嵌入后压缩

在原始音频信号中先行嵌入数字水印信息然后再压缩。该方法计算复杂度较低,可以根据压缩失真控制水印参数以控制总失真,另外不会因为需要后续压缩而削弱水印;但是因为水印信号与媒体信号不相关,水印对D/A-A/D和合谋等攻击鲁棒性差;同样地,水印会被解压再压缩去除。

2.先压缩后嵌入

先压缩音频信号,再嵌入数字水印信息。这种算法速度快,但是鲁棒性较差,任何解压缩再压缩的处理都可以轻易地除去水印。

3.先解压后嵌入再压缩

首先对压缩的音频信号解压,然后嵌入数字水印信息,最后再对其进行压缩。这种算法可以提高水印的鲁棒性,但是解压缩和压缩过程太过耗时,不适合在线交易和发布;另外多压缩解压缩会使音质降低。压缩域数字音频水印嵌入方法示意图如图2-19所示。

图2-19 压缩域水印嵌入方法示意图

(a)压缩前嵌入水印方法;(b)在压缩编码中嵌入水印方法;(c)压缩后嵌入水印方法