MP3编码算法的改进与优化
2015-01-04董宁
董宁
(西安外事学院 现代教育中心,陕西 西安 710077)
MP3编码器的基本结构一般包括心里声学模型、子带滤波、量化编码等几个关键模块,这几个模块虽然经历了大量的改进和优化,由于各种改进算法层出不穷。所以仍然有很大的改进空间,本论文主要对其心理声学模型和量化模块进行改进,以期采用一种更为先进的模型来代替标准模型,进一步改善MP3编码算法的性能。
1 心理声学模型的改进
为了提高MP3编码器的编码质量,本论文使用了一个改进的心理声学模型,用其替代原MP3编码算法中的心理声学模型。下面对该改进的心理声学模型的计算流程[1]做一个详细的介绍:
1.1 原心理声学模型计算流程
首先进行的是FFT计算:
1)重新构造时域输入信号采样值;
2)FFT变换计算输入信号的频谱:
①用1 024点或256点的汉宁窗给采样值加窗,记为;SWi
②分长短块分别计算采样值的FFT,分别存放在wsamp_l和wsamp_s两个数组中;
③计算FFT变换后的频谱能量:fftenergy;
④对变换结果用极坐标表示。RW和FW表示SWi的幅度和相位。
3)计算预测的幅度和相位:
4)计算不可预测性度量C(w):
计算阈值如图1所示。
5)计算能量和不可预测性:
6)用上一步计算的能量和不可预测性卷积频带扩展函数:
7)计算音调索引值tbb:
其中 conv1=0.229,conv2=0.43,均为常数。
8)计算各部分的信噪比SNR:
miniba1是阈值计算表中的值,可以查表,TMN为29 dB,NMT为 6.0 dB。
图1 阈值计算流程图Fig.1 Threshold calculation flow chart
9)计算实际的能量门限:
其中norm是一个规格化的常数。
10)计算预回声控制。考虑到绝对掩蔽门限,则可听性的最终能量门限阈值为:
其中 rpwlev=2,rpwlev_2=16,qthr是为静音阈值。
计算感知熵PE,进而决定块类型:
11)计算感知熵PE:
式中,cbwidth当前阈值计算部分的宽度,查表可得。
12)根据感知熵PE大小确定块类型:
如果 PE>1 800 或 max eb>30 min eb,或(PE>100,max eb>10min eb)用short类型,其余用long类型。
根据确定好的块类型,分长短块再计算掩蔽阈值:
13)阈值计算的第二部分[3](长块)
①计算每个缩放比例因子带的能量和阈值:
其中 bu、b0、w1、w2 的值查表可得。
②计算每个缩放比例因子频带的比值:
14)计算短块阈值:
①计算第一个短块能量;
②用扩展函数卷积分区能量;
③计算短块阈值,在此与阈值计算第一部分的不同是这里的SNR的值可直接从表中查得;
④将计算的阈值与静音阈值和前面计算的最终阈值作比较,取最大者作为最后的阈值thr;
⑤调用阈值计算第二部分;
⑥块数目加1,判断块数目是否>3,是则返回,不是则循环重复②步。
1.2 改进后的心理声学模型
独有的3个步骤[2]。计算声道间掩蔽效应:
15)计算缩放比例因子带左声道的阈值l、右声道的阈值r;
16)左声道的掩蔽效应+=r*interCHRatio;右声道的掩蔽效应+=l*interCHRatio。
式中interCHRatio是通道间掩蔽效应因子,是一个设定的值。
计算mid/side channel的阈值,编码模式为立体声:
17)长块m/s channel阈值的计算;
18)短块m/s channel阈值的计算和17)步长块相似,只是需要从第一块到第三块循环计算三次即可。
下一步边、中声道掩蔽比值的计算[6]:
长块时:x1=max(长块左、右声道阈值),x2=max(长块左、右声道阈值);
短块时,计算方法和长块类似,只需循环3次。
下一步确定最后的块类型:根据有无attack在4个块类型间切换,确定最后输出块类型。 心理声学模型最终输出块类型、阈值、比值及感知熵,供后面的MDCT和量化编码模块参考使用。
2 编码器量化模块的改进
由量化公式:
量化的计算是比较复杂的。量化模块是一个多次循环的过程,随着步长stepsize的调整,每条频线都要经过多次的量化计算,因此量化模块是整个MP3编码算法中运算量最大的部分,该模块的改进和速度的提高,对于整个编码过程的实时性保障,具有重大的意义。量化模块由3层循环构成,即:帧循环、外循环、内循环。在这3层循环中,又以外循环计算量最大,消耗的系统资源最多。内循环主要对MDCT后的频谱线做量化操作。外循环主要是一个调整比例因子(scalefactor)以控制量化噪音低于掩蔽曲线的循环。尽可能地减少内外循环的次数,减少量化的计算次数对速度的提升是非常明显的。
1)外循环的改进
外循环退出的3个条件[4]分别是:所有的比例因子带(scalefactor band)里的比例因子scalefactor是否都进行了调整;比例因子是否超出了上限;所有比例因子带的量化噪声是否都在掩蔽曲线以内。这3个条件在实际应用中是非常苛刻的。一般情况下,如果要寻找到最佳量化效果,外循环的循环次数至少要经过30次。在最坏的情况下,外循环的次数甚至可以达到近50次。当这种情况发生时,就会导致该帧信号的编码耗时非常长,将会严重地影响到编码器的性能。为了避免发生这种情况,本论文对外循环的退出条件,增加了另外一个约束条件,当外循环的循环次数超过某个设定的上限时,不管是否达到最佳量化效果,都将强制退出外循环,并将最后一次量化作为最终的量化结果。这样处理的好处是可以避免外循环的次数过多,从而导致其计算量过大,从而保证编码器的实时性能。
这里最关键的是要合理地设置循环次数的上限值,如果设置得过小,则量化效果将会很差,从而导致编码质量严重下降;反之,则该上限值基本上起不到作用,从而导致编码器的实时性能得不到保障。经过大量的测试,在本文的设计中,将外循环的循环次数上限设定为10次,该上限值可以做到性能和运算量两者的兼顾。
经上述改进后,在本论文的研究中,退出外循环的4个条件如下:
①所有比例因子带的Scalefactor如果都进行了调整,则退出外循环;
②如果比例因子超出了规定的上限,则退出外循环;
③如果小于两个比例因子带的量化噪声不在掩蔽曲线之内,则退出外循环;
④如果循环的次数大于10次,则退出外循环;
以上4个改进后的外循环退出条件,实际上是以牺牲精度来换取速度。但经过大量的测试,这些精度牺牲带来的误差,是人耳几乎无法感知出来的。其带来的直接好处是循环次数大大地减少了。经过大量的测试发现,这种改进使得资源的消耗降到了原来的1/3。
2)内循环的改进
在内循环中,不断地调整量化步长(stepsize),以便使得Huffman编码过程所需的比特数最少。每进行这样的一次调整,就要对所有的频线量化一次。若循环次数太多,将会耗费大量的时间。因此,如何尽快地找到合适的量化步长(stepsize),也是一个非常重要的问题。在此过程中,本论文采用了两种方法[5]相结合的办法来寻找合适的量化步长:
①充分利用音频信号的时间相关性,将前一帧的最终量化步长作为当前帧的初始步长,将量化比特数代入一个二元一次方程计算得到此时量化步长stepsize的估计值,然后再进行步长增幅的微调;
②进行微调时,每次步长的增幅大小不是固定为1,而是根据超出的比特数来选择不同的增幅,通过这种变步长增幅的方式,就可以大幅度地减少寻找量化步长的循环次数。
同时还对量化公式进行了如下的变形:
这样,每一根频谱线只需计算一次|xr(i)|0.75,不用每调整一次步长就计算一次。只需根据不同的量化步长计算,而stepsize通常只取整数值,且有一定的取值范围的,可以将stepsize作为索引值,将的结果制成一张表,每次只需根据stepsize的值去查表即可。
通过对内外循环进行如上的改进,整个量化模块的循环次数和计算量相比原来有了很大的减少,性能有了明显的进步。
3 性能测试
为了得到客观的结果,在此选取20个音频信号进行测试,其中包含单声道信号、双声道信号,也包含采样率为48 kHz、44.1 kHz的信号,既有脉冲信号,也有持续性较长的周期信号。
通过对比可以看出,采用新型心理声学模型,并改进量化循环模块后,MP3编码算法质量测试ODG值相比改进之前有了明显的提高,大部分音频信号的测试ODG值都已经处于可接受的范围之内,特别是原来一些质量较差的信号(ODG值低于-3),编码质量更是得到了大幅度的提升。这说明改进是非常有效的,达到了设定的要求。
4 结束语
本文首先从改进MP3编码算法的质量入手,采用全新的心理声学模型替换原心理声学模型,然后对量化编码模块进行了改进,使编码质量度有了明显的提高,在提高质量的基础上,编码速度也有了一定的改善,再通过采取一些其他的优化措施,包括算法结构优化、C代码优化等,使编码速度基本达到了要求。
[1]丰帆.MP3数字音频编解码算法的研究及实现[D].西安:西安电子科技大学,2008.
[2]马昌萍,宋丹,马幼鸣.MP3编码算法分析[J].佳木斯大学学报,2005,23(1):64-67.MA Chang-ping,SONG dan,MA You-ming.Analysis of the MP3 coding algorithm[J].Journal of Jiamusi University,2005,23(1):64-67.
[3]张力光,王让定.心理声学模型及其在 MP3编码中的应用[J].宁波大学学报(理工版),2010,23(3):27-30.ZHANG Li-guang,WANG Rang-ding.Psychoacoustic model and its application in MP3 coding[J].Journal of Ningbo University:Science and Technology,2010,23(3):27-30.
[4]ISO/IEC JTC1/SC29/WG11 MPEG,11172-3.Information Technology—Coding of Moving Pictures and Associated Audio for Digital Storage Media at up to About 1.5Mbit/s,part 3:Audio[S],1992.
[5]Shlien S.Guide to MPEG-1 Audio Standard[J].IEEE Transactions on Broadcasting,1994,40(4):214-215.
[6]McCandless M.The MP3 revolution[J].IEEE Intelligent Systems Archive,1999,14(3):8-9.