董寧
(西安外事學院 現代教育中心,陜西 西安 710077)
MP3編碼器的基本結構一般包括心里聲學模型、子帶濾波、量化編碼等幾個關鍵模塊,這幾個模塊雖然經歷了大量的改進和優化,由于各種改進算法層出不窮。所以仍然有很大的改進空間,本論文主要對其心理聲學模型和量化模塊進行改進,以期采用一種更為先進的模型來代替標準模型,進一步改善MP3編碼算法的性能。
為了提高MP3編碼器的編碼質量,本論文使用了一個改進的心理聲學模型,用其替代原MP3編碼算法中的心理聲學模型。下面對該改進的心理聲學模型的計算流程[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,是則返回,不是則循環重復②步。
獨有的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和量化編碼模塊參考使用。
由量化公式:

量化的計算是比較復雜的。量化模塊是一個多次循環的過程,隨著步長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的值去查表即可。
通過對內外循環進行如上的改進,整個量化模塊的循環次數和計算量相比原來有了很大的減少,性能有了明顯的進步。
為了得到客觀的結果,在此選取20個音頻信號進行測試,其中包含單聲道信號、雙聲道信號,也包含采樣率為48 kHz、44.1 kHz的信號,既有脈沖信號,也有持續性較長的周期信號。
通過對比可以看出,采用新型心理聲學模型,并改進量化循環模塊后,MP3編碼算法質量測試ODG值相比改進之前有了明顯的提高,大部分音頻信號的測試ODG值都已經處于可接受的范圍之內,特別是原來一些質量較差的信號(ODG值低于-3),編碼質量更是得到了大幅度的提升。這說明改進是非常有效的,達到了設定的要求。
本文首先從改進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.