摘 要 本文针对MP3音频的压缩原理和特点,提出了基于修改MDCT量化后系数的大容量音频盲水印算法。利用心理声学模型介入水印嵌入过程等方法提高水印的隐形性,使用哈希函数确保水印信息完整性,通过与MP3编/解码过程相结合,实现了水印信息实时提取。通过实验分析验证了水印的隐形性、水印容量、实时性等方面的特点。
关键词 音频数字水印,MDCT,水印容量,哈希函数。
0 引言
音频资源在互连网络、电子商务中扮演着重要的角色,随着Internet网络数量和带宽不断增长,在线音乐日益流行,对网络上音频资源版权的保护亦变的非常重要。数字水印技术作为版权保护的一种手段,近来得到广泛的研究和探讨。数字水印技术是信息隐藏技术的衍生和拓展,其基本特点是鲁棒性、隐蔽性和完整性等。人类听觉系统(HAS)比人类视觉系统(HVS)具有更高的敏感性,在音频信号中隐藏水印信息,对水印的隐蔽性有更高的要求,水印的隐藏也相应更加困难。1996年文献[1]提出了音频数字水印技术,阐述了音频数字水印的基本特点,提出使用PN序列作为水印发生器,并根据人类听觉系统(HAS)的特点将PN序列嵌入到原始音频信号中。文献[2]在2001年提出了使用扩频技术和HAS掩蔽效应将水印嵌入到非压缩的原始音频时域信号中的盲水印算法,并指出其算法具有抗MP3压缩的能力。文献[3]的作者提出了基于时域空间的鲁棒音频数字水印算法,作者通过将原始信号进行分段处理,计算每段的能量,利用调节各段之间能量关系的方式嵌入和提取水印信息,论证了算法的鲁棒性。[1][2][3]中描述的算法在水印的嵌入和提取过程中要求较大的计算量,不太能够满足网络上音频资源的实际需求。[4]阐述了音频数字水印的基本特点,分析总结了当前一些音频数字水印算法,提出利用MP3编/解码过程进行水印嵌入和提取的算法。在文献[4]中作者通过分析MDCT系数,对MDCT系数进行修改,从而实现水印嵌入和提取操作。[4]的算法不能完全有效地检测嵌入的水印信息,水印嵌入比例小。文献[5]的作者提出利用SNR控制音频水印嵌入放大因子的自适应数字水印算法,在文中,作者通过使用小波变换技术、混沌序列生成技术等方法,实现了在音频数据中嵌入图片信息;在水印提取过程中,通过利用SNR改善提取的水印数据。文章中没有具体针对MP3音频资源进行水印嵌入,且水印信息的嵌入量不大,水印检测效率不高。
目前提出的音频数字水印算法,不能很好的满足嵌入容量、实时性等需求,同时,水印的隐形性不高,水印添加量扩大时音质下降严重,故上述文献中提出的水印算法,难以应用到实际系统中。本文提出的算法主要针对以上提出的三个问题。即大容量、实时性、音质与水印容量的制衡关系。我们将水印信息分成两个部分:水印信号和水印的Hash值。根据二者各自的特性添加到不同的频段的MDCT非均匀量化系数上,其中水印Hash值作为水印完整性检查的依据,用于确保水印信息不曾遭受篡改。水印嵌入/提取算法根据心理声学模型的结果计算并修正MDCT系数中非均匀量化值,可以在MP3编/解码过程中实时操作。算法中对添加水印后的信号计算噪声值,再与心理模型得出的可容忍噪声量进行比较,若超出范围则改进量化因子后再重新添加水印,直到满足要求。这个过程将水印信息引入的噪声限制在合理的范围之内,同时保障了嵌入水印的信息量。水印添加位置的选择遵循在失真度和水印信息量上制衡的原则,选取了MDCT系数的中频部分,引入水印嵌入密度控制因子α,以便人为干预水印信息在MP3流中嵌入量和水印信息添加得分散度。实验表明,算法具有容量大、实时性、隐蔽性强等特点。
1 MP3音频流编码过程
MP3的编码以帧为单位进行的。一帧一般有576个数据,PCM码首先通过滤波器组,被分成等宽的32个频率线。每根频线再通过MDCT变换进一步被细分成18根频率线,得到32×18=576个系数。 MDCT公式如下:
(式 1-1)
MDCT变换具有某些与DCT变换不同的特性[6]:
⑴ MDCT不是正交变换;
⑵ 当信号出现本地对称的时候MDCT系数全为零;即说明时域能量有不等于频域能量的时候;
⑶ 时域能量只有在出现本地对称的情况下才不等于频域能量;
⑷ MDCT没有DCT直流分量和交流分量的概念。
从特性4来分析,对MDCT系数的修改可以不用避开类似DCT系数的直流分量部分。但根据特性2,3,对MDCT系数的修改,避开系数0值部分。
每个粒度的信号在经过MDCT变换后就进入量化和位分配阶段,通过两个嵌套循环使得MP3数据位分配少即压缩比与量化噪声在SMR控制的范围内两个目标之间取得平衡。编码器会根据心理听觉模型的计算结果将567个MDCT系数分成多个SFB(比例因子带),由于SFB很接近人耳听觉特性的临界带,可以近似地看作临界带,每个SFB都有相同的比例因子,编码器会找到SFB带中的值,把他改写成科学计数表示法,使有效位数的范围落在(-1,+1)之间,再对有效位进行量化。量化和位分派的实现时通过双重循环来完成,内部循环作量化工作,外部循环估计量化失真的大小,将它和各比例因子带所能容忍的失真比较。若失真太大,就要作调整(即调整比例因子大小),调整后再量化,直到失真程度小于可以容忍的失真。,对不同部分选择不同的Huffman表进行编码。
通过对MP3编码过程和MDCT特性的分析,为了限度减小水印信息对原始音质的影响,我们把水印添加算法放到内部循环中,添加水印后的量化信息同样受到心理听觉模型计算的允许噪声的控制。
MP3文件由帧组成,帧由帧头和帧体组成。帧可以是单声道也可以是双声道。声道进一步分成两个粒度。粒度信号按低频到高频排序,由低到高分为三个区域"Big Value区","Count1区"和"Rzero区"[7]。
"Count1区"的数值取值范围为-1, 0, 1。由4个值一起编码;"Rzero区"保存0值对。这两个区域都是属于高频部分,对它们微小的修改都会引起较大的失真效应。这两个部分由于对文件压缩的贡献很大,所以不适合嵌入大量的水印。信号能量大多分布在中低频上,即"BigValue区",这一区间数值较大,经过统计分析,多数值在1到16之间。大值区再细分成"Region0","Region1","Region2"三个区域。这三个区域分别选取各自适合的Huffman编码表。通过试验,我们发现0区和1区虽然位处低频部分,对数据的修改同样敏感,所以也不适合作大容量水印添加载体。但正是由于其敏感性,我们可以在其中添加少量且很重要的信息(如用于完整性验证的Hash值)。"Region2"区属于中频部分,覆盖面积较大,根据试验结果,该部分的修改对听觉的影响较小,因此选择该区域中的部分信号作为水印载体。
限于篇幅,有关MP3更多的编码细节,请参阅ISO MPEG-1 Layer III编码标准和文献[8]等相关资料。
2 MP3流音频水印方案
2.1 数据预处理
水印信息在添加之前需要作预处理,主要包括水印信息置乱和计算Hash值两部分工作。本文采用SHA算法计算水印信息的Hash值[10],再利用双人字映射方法[11]分别对水印信息和计算所得的Hash值进行置乱操作。引入置乱技术虽然不能加强水印的鲁棒性,但可以保护遭受攻击后的水印信息不会发生大面积丢失的情况。置乱后的水印信息、Hash值序列以及水印信息结束标志共同组成要添加的水印信息序列。
2.2 水印嵌入方法
我们引入一个水印嵌入密度因子的概念,在水印添加比例和鲁棒性之间做出平衡。首先根据用户输入生成一个值在(0,1)之间的随机序列,记为m。该序列与水印嵌入密度控制因子α一同作用,实现水印信息在整个MP3文件中的分散。α取值范围在0到1之间,作用是控制实际水印载体位个数与候选载体位的百分比。α越小则水印信息越分散,有利于水印信息的隐秘性,但α太小又会影响水印的添加量。合理的α的取值和水印信息量的大小有关系。
水印的添加过程是在MP3编码过程中同步进行的。MP3的压缩过程对PCM码按粒度为单位来顺序处理。一个粒度的MDCT系数计算并量化后会将576个频率线分成"大值区","Count1区"和"零值区",而"大值区"一般按5/12,1/3,1/4的比例被分成三个区域。选取总能量大于0的"Region2"中系数大于1的点作为水印添加的候选载体部分。而"Region1"作为水印信息Hash值的添加部分。"Region2"区域水印的嵌入算法可以用式(2-1)形式化标出:
(式2-1)
s[j]为原始量化值,s'[i]为"Region2"区域中添加了水印的量化值。w[i]为需要添加的水印置乱序列。遍历"Region2"区域的所有点,用该公式求值。用得到的s'数组替换原来的"Region2"部分。
"Region1"区域嵌入水印信息Hash值置乱数据h'。一个粒度中的"Region1"区域只嵌入一个比特的水印Hash值。添加时按顺序选择前512个其Region1区系数之和大于0的粒度,只有系数和大于0的Region1区才能添加,添加完Hash值后对接下来的粒度中的"Region1"部分就不再作改动。这里算法的形式化表示为:
(式2-2)
L为某Region1中个值的位置。h为水印信息的Hash值数组。
2.3 水印提取方法
水印的提取是水印添加的逆过程。是在MP3解码成PCM码的过程中完成的。这样可以实现水印的提取和MP3文件的播放同步进行。根据后面试验的结果,由于水印提取算法所需时间非常少,不会对MP3文件的播放产生滞后影响。可以实现水印同步提取的操作。
首先根据用户输入的密码生成0到1之间的随机序列m。对某一粒度的水印的提取分为对"Region1区"Hash值的提取和"Region2区"水印置乱信息的提取两部分。
"Region2"信息部分提取算法可由式2-3表示:
(式2-3)
"Region1"部分提取算法表示如下:
(式2-4)
在提取的水印中发现结束标志后停止水印的提取操作,但MP3解码工作仍然继续。解码完成后水印信息保存在w'数组中。w'中的信息是置乱信息,根据用户输入的密码将其反置乱,终得到正确完整的水印信息w。
3 实验分析
3.1 隐形性试验
音频波形的状态和差异比较,从图中可以看出,本文提出的方案对音频信号的改变是非常细微的,符合人耳听觉系统掩蔽效应的要求。
频谱质心是MDCT频谱系数能量分配的中心,它表示信号能量分布的中心。通过对频谱质心的计算,可以反映出嵌入的水印信息对原始信号的改变程度。频谱质心计算公式如下:
(式3-1)
表1是一些典型的音频文件嵌入水印信息后的频谱质心平均偏移量和偏移量。从测试结果可以看出,嵌入水印后频谱质心的偏移较小,对音质的影响不大。
MP3文件大小 |
添加比例 |
平均频谱质心偏移量 |
频谱质心偏移量 |
3.69MB |
7% |
0.72% |
1.4% |
778KB |
10% |
0.8% |
1.2% |
232KB |
5% |
0.3% |
0.9% |
平均量 |
7.3% |
0.61% |
1.17% |
水印载体大小(KB) |
提取水印量(KB) |
提取时间(秒) |
播放时间(秒) |
Winape播放时间(秒) |
3,690 |
289 |
3.0 |
235.0 |
235.0 |
3,780 |
275 |
4.0 |
241.0 |
241.0 |
11,800 |
912 |
7.73 |
720.0 |
720.0 |
MP3文件大小 (KB) |
嵌入信息量 (KB) |
添加比例 (%) |
296 |
23 |
7.78 |
778 |
83 |
10.67 |
1300 |
115 |
8.85 |
3200 |
275 |
8.59 |
3690 |
289 |
7.83 |
4080 |
363 |
8.90 |
4430 |
420 |
9.48 |
5050 |
437 |
8.65 |
6660 |
616 |
9.25 |
11800 |
912 |
7.73 |
免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。