2.8 先進音頻編碼(AAC)
2.8.1 系統概述
(1)編碼器結構
如圖2-8-1所示是AAC編碼器方框圖。

圖2-8-1 AAC編碼器方框圖
為了提供應用的靈活性,允許在質量、存儲器和處理能力需求之間進行折中,AAC系統提供了三層框架。
① 主框架
在主框架中,AAC系統在所給定的數據率范圍內,都能提供最好的質量。該框架對存儲器和處理能力的要求較高。按主框架構成的AAC解碼器向下兼容,可以對用低復雜度框架編碼器編碼的數據流解碼。以主框架工作的編碼器包括濾波器組、預測、量化與編碼、無噪聲編碼、比特流復合、時域噪聲整形(TNS)、M/S(中間/旁邊)立體聲編碼和強度立體聲編碼等功能模塊。
② 低復雜度(LC)框架
這一框架的結構比較簡單,它不包含預測和預處理模塊,TNS的階數也有限。
③ 可分級取樣頻率(SSR)框架
在該層框架中,增加了增益控制模塊,它由多相正交濾波器(PQF)組、增益檢測器和調節器組成。該層無預測模塊,TNS的階數和帶寬都受限。該層較以上兩層都簡單,但能產生頻率可分級信號。其含義是放棄高頻段的PQF的信號而得到帶寬較窄的輸出信號,因此能適合于取樣頻率很低的數字音頻信號的處理(最高取樣頻率可到96kHz,最低取樣頻率可到8kHz)。
(2)編碼過程
通過濾波器組將時域里的PCM信號分解成亞取樣頻譜分量,變為頻域信號。在48kHz取樣頻率時,頻率分辨率為23Hz,時間分辨率為2.6ms,利用心理聲學模型Ⅱ計算各子帶的現實的掩蔽閾,根據頻譜聲級和掩蔽閾而得到信號掩蔽比(SMR),據此進行量化,由量化而產生的噪聲應處于各子頻帶的同聽閾以下。
在分析濾波器組之后,TNS對頻譜進行同址濾波,用預測殘差代替目標頻譜系數。TNS技術可以對量化噪聲的細微時域結構進行控制。
多聲道信號可以采用強度立體聲編碼(聯合立體聲編碼)。時域預測模塊用來進一步降低靜態信號的冗余。在低數據率時,多聲道AAC編碼器使用M/S立體聲編碼(類似MPEG-1 Layer3),用中間信息M和旁邊信息S代替L和R。
2.8.2 濾波器組
濾波器組把輸入端的PCM時域信號變為系統內部的頻域信號,由于頻域信號是每一時間塊計算一次,是隨時間塊變化的,因此,濾波器組輸出的信號是一種時間—頻率表現形式。解碼器中的濾波器組進行相反的變化。
在編碼器中,使用改良離散余弦變換(MDCT),采用了時域混疊抵消(TDAC)技術。輸入信號在進行頻域變換之前,要先進行加窗處理,以降低邊界效應影響頻譜分析,提高頻率選擇性。通過將相鄰塊的取樣值重疊5 0 %,再通過TDAC技術,在合成階段便可抵消邊界效應。
關于變換長度,在AAC中可以是2048個樣值或256個樣值。當信號的頻譜結構復雜時,使用2048樣值的長變換,以提高平穩信號的編碼效率;對于瞬變信號而言,長變換編碼效率不高,可使用短變換進行編碼。短變換雖有較高的時間分辨率,然而頻率分辨率較低,對平穩信號的編碼效率不高。因此,為了兼顧不同的信號狀態,要以信號為條件,動態改變變換長度,即進行變換塊長切換,以獲得不同的時—頻分辨率。
2.8.3 預測
對于相對平穩的信號來說,采用預測可以進一步有效減少冗余,從而提高編碼效率。預測只在長變換塊使用。
在每聲道中,都對由濾波器組進行頻譜分析產生的頻譜分量進行預測,每一頻譜分量(直到16kHz)都有一個相應的預測器,每個預測器充分利用連續各幀的頻譜分量之間的自相關。
在AAC中,每個頻譜分量使用一個二階后向自適應預測器,工作時需要前兩幀的頻譜分量值。預測器的參數逐幀地自適應于現實信號的統計特征。在預測器的作用下,量化器的輸入量僅是預測誤差,而不是原始的頻譜分量,因而編碼效率更高。
為了確保預測能帶來編碼增益,要對預測器進行控制,并為解碼器傳送預測器控制信息。
2.8.4 量化
在音頻編碼器中,數據率的真正降低是通過量化處理的。對頻譜數據量化的準則和前文介紹過的其他方法相同。與量化相對應,對頻譜進行編碼的比特數既應低于給定的限制,又要滿足心理聲學特性的要求。
在AAC中,與MPEG-1 Layer3一樣,也使用非線性量化,量化級數限制在8191(即213-1)之間,可以以1.5dB的步長進行調整。
為了得到最佳量化,使用了內環和外環兩層迭代循環。內層迭代循環的目的是調節量化器步長,以便用給定的比特率對頻譜數據編碼。外層迭代循環是用來放大比例系數頻段(或稱比例因子帶,簡稱SFBS),并盡力滿足心理聲學特性的要求。
把頻譜劃分為幾個頻譜組,每組共享一個比例因子(比例系數),這些頻譜組就稱為比例系數頻段。比例系數表示增益數值,用以改變比例系數頻段中所有的頻譜幅度。
2.8.5 編碼
在AAC中,量化后的頻譜值、差分比例系數、方向信息等使用霍夫曼(Huffman)編碼。為了對1個、2個或4個一組的頻譜值進行編碼,共使用了12個編碼本。
2.8.6 時域噪聲整形(TNS)
采用NTS技術,可以使編碼器對量化噪聲的細微時域結構進行控制,使之適應于掩蔽信號的結構,更充分利用掩蔽效應。此外,通過對瞬態信號片段的去相關,TNS方法可以減少編碼器的峰值比特需求。TNS是通過在部分頻譜數據上應用濾波過程來實現的。
此外,AAC中也應用“比特池”技術。