MP3编码算法的改进与优化

2015-01-04 08:51董宁
电子设计工程 2015年14期
关键词:步长次数编码

董宁

(西安外事学院 现代教育中心,陕西 西安 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.

猜你喜欢
步长次数编码
机场航站楼年雷击次数计算
基于Armijo搜索步长的BFGS与DFP拟牛顿法的比较研究
2020年,我国汽车召回次数同比减少10.8%,召回数量同比增长3.9%
基于SAR-SIFT和快速稀疏编码的合成孔径雷达图像配准
一类无界算子的二次数值域和谱
《全元诗》未编码疑难字考辨十五则
子带编码在图像压缩编码中的应用
Genome and healthcare
依据“次数”求概率
基于动态步长的无人机三维实时航迹规划