馬文華,許晶晶,沈映娜
(1.廣東外語外貿大學 信息科學與技術學院 計算機系,廣東 廣州 510630;2.廣東省數字音頻重點實驗室,廣東 廣州 510640;3.廣東省計算中心,廣東 廣州 510033)
常用的數字音頻編解碼技術主要有杜比AC-3,DTS,AAC,MP3,DRA等。音頻處理設備從實現方式上可分為兩大類:一類是采用專用芯片進行音頻信號的編解碼處理,其特點是處理速度快,實時性強(實現成本低廉,適合大規模量產),但功能相對單一,已經越來越不適應用戶的需求;另一類采用通用數字信號處理器DSP為核心建立系統,其優點是功能豐富,能迅速應用新算法、新標準或新協議,有利于產品的快速升級。其缺點是由于采用軟件算法,運算速度相對較慢,特別是進行大運算量的音頻編碼處理,實時性不易保證。
本文研究了DRA(Dynamic Resolution Adaptation)解碼算法,并在飛思卡爾公司的DSPB56367定點芯片上實現了DRA技術的實時解碼過程。主觀聽音測試表明:設計的DRA音頻解碼器性能指標先進,可廣泛應用于數字電視、數字音頻廣播、寬帶多媒體及移動多媒體等領域。
DRA技術是一種同時支持立體聲和多聲道環繞聲的數字音頻編解碼技術[1-2]。DRA技術的最大特點是用很低的解碼復雜度實現了國際先進水平的壓縮效率。在編解碼過程中,信號通道保持24 bit的精度(除了因量化而有意舍棄的精度外);可支持的聲道設置除了常見的立體聲、5.1環繞聲、6.1環繞聲和7.1環繞聲之外,還為未來的音頻技術發展預留了空間;同時可支持8~192 kHz間的標準采樣頻率,包括44.1 kHz和48 kHz;它對編碼比特率(碼率)沒有明確限制,在具體應用時可根據信道帶寬和音質要求等因素來設定[1]。
DRA解碼流程如圖1所示。

其中多路解復用器用于從比特流解包出各個碼字,由于Huffman碼屬前綴碼,其解碼和多路解復用是在同一個步驟中完成的;碼書選擇器用于從比特流中解碼出用于解碼量化指數用的各個Huffman碼書及其應用范圍(application range);量化指數解碼器用于從比特流中解碼出量化指數;量化單元個數重建器可根據碼書應用范圍重建各個瞬態段的量化單元的個數;逆量化器用于從碼流中解碼出所有量化單元的量化步長,并用它由量化指數重建子帶樣本;可選聯合強度解碼器利用聯合強度比例因子由源聲道的子帶樣本重建聯合聲道的子帶樣本;可選的和/差解碼器用于從和/差聲道的子帶樣本重建左右聲道的子帶樣本;逆交叉重組器用于當幀中存在瞬態時,逆轉編碼器對量化指數的交叉重組;短/暫窗口函數序列用于根據瞬態的位置及MDCT的完美重建(per?fect reconstruction)條件來重建該幀須用的短和暫窗口函數序列(對于瞬態幀);可變分辨力合成濾波器組可由子帶樣本重建PCM音頻樣本[3]。
飛思卡爾(Freescale)的數字信號處理(DSP)芯片DSPB56367主要定位在數字音頻壓縮/解壓縮以及有關數字音頻處理的其他領域,它是24位處理器,滿足DRA算法設計24位精度的需要,該處理精度已超出人耳聽覺極限;同時在1.8 V內核電壓下執行速度為150 MI/s(兆指令/秒),在1.5 V內核電壓下,執行速度為100 MI/s,也滿足5.1聲道算法的處理要求,其優良的性能使之成為DRA音頻算法處理的理想器件[4]。
本文設計的多聲道數字音頻解碼器,采用DSPB56367作為核心運行DRA解碼算法。把來自數字音頻接口S/PDIF(或AES/EBU)的DRA格式的低碼率信號實時的解碼成多聲道數字音頻信號,再由數字音頻接口S/PDIF(或AES/EBU)輸出給后端設備。同時還輸出高指標的多聲道模擬音頻信號給后端監聽設備。解碼器的硬件組成如圖2所示。

圖2中MCU使用80C51,對DIR(Digital Interface Re?ceiver)和DIT(Digital Interface Transmitter)進行配置,同時可復位DSP并進行相關數據控制操作。RAM采用IS61LV5128-10T;Flash采用SST39LE040;DSP的編程采用JTAG方式;MCU采用I2C數據傳輸方式與DSP通信。
DRA多聲道數字音頻解碼器的數字接口性能指標如表1所示。

表1 DRA多聲道數字音頻解碼器的數字接口性能指標
DRA多聲道數字音頻解碼器的模擬輸出接口性能指標如表2所示。

表2 DRA多聲道數字音頻解碼器的模擬接口性能指標
解碼器的軟件流程如圖3所示。
首先設置系統統時鐘(PLL),清空存儲器,設置S/PDIF輸入輸出參數(I2S),等待DRA同步字,當1 024個字(word)的DRA碼流裝滿DSP存儲器后,交換乒乓存儲器,解碼1幀。解碼流程見圖1。
2.2.1 乒乓緩沖區
乒乓(ping-pong)緩沖技術是一種同時利用兩個數據緩沖區的數據傳輸處理技術。使用乒乓緩沖是因為在傳輸和處理數據過程中單個緩沖區數據很容易被覆蓋。乒乓緩沖方式的連續執行,總是保持一個緩沖區激活用于數據傳輸,而另一個緩沖區保持靜態穩定的由DSP處理數據。

DSP內核存取內部RAM(IRAM)中的數據的速度比存取外部存儲器中數據的速度快的多。但IRAM容量有限,不能滿足整個輸入幀的要求,因此同一時間在IRAM中只能處理一部分模塊。處理乒乓集時,DMA將乒乓集從外部存儲器傳遞至IRAM,這樣DSP內核就能在完成當前工作后立即開始處理下面的數據。用乒乓緩沖區處理流程如圖4所示。乒乓緩沖區在處理DRA解碼算法的時候,每個緩沖區取1 024個字的數據進行處理,可同時處理8個聲道的音頻數據。

圖4 乒乓緩沖區處理流程
2.2.2 Huffman解碼
Huffman編碼的理論依據是變字長編碼理論??梢宰C明,按照概率出現大小的順序,對輸出碼字分配不同碼字長度的變字長編碼方法,其輸出碼字的平均碼長短,信源熵值可以接近[2]。
DRA算法根據量化級數的多少而選用不同的Huff?man碼書,當一個碼書中的量化級數很小時,多個量化指數被歸集到一起以形成一個大的Huffman碼書。當量化級的個數太大時(例如超過200),則采用遞歸索引。對此一個大的量化指數q被表示為

式中:M是模;m是商;r是余數。只有m和r需要被傳送到解碼器。它們中的一個或其兩者都可以用Huffman碼來編碼。
DRA解碼器中的Huffman數據處理流程如圖5所示。
DRA解碼過程中對每個聲道的子帶樣本的量化指數進行Huffman編碼,以提高壓縮效率。表3[1]所示的兩組碼書被用來對子帶樣本的量化指數進行Huff?man編碼,分別對應平穩幀和瞬態幀;而每組碼書又分別由9個Huffman碼書組成。因此,對每一個特定的幀,共有9個Huffman碼書可用于對這些量化指數進行Huffman編碼。這些碼書的選擇由量化指數的局部統計特性而決定:
1)根據量化指數的局部統計特性對量化指數分段;
2)為每段選擇最佳的碼書。


表3 解碼量化指數用的Huffman碼書選擇
因此,需把這些段的個數、長度(碼書的應用范圍)、以及所選擇的碼書指數傳輸給解碼器。
假設由碼書選擇得到碼書指數2對應的Huffman碼表如表4所示。當接收緩沖區得到圖6所示數據時進行Huffman解碼。

表4 Huffman碼表

首先取出第1位數據“0”放入解碼寄存器B的最低位,此時查找碼表4可解出對應量化指數-2進行DRA解碼,如圖7所示。

重復上述步驟讀取第二位數“1”存入B,查找碼表未能解出碼字,左移1位繼續取數,直到取出“110”解出量化指數為“1”,如圖8所示。設置X可減少遍歷運算時間。

DRA解碼過程很大部分的運算量都體現在Huffman解碼的過程中,5.1聲道音頻數據解碼需要48 MI/s,平均每個聲道8 MI/s。
2.2.3 修正離散余弦反變換(IMDCT)
變換編碼是當前的音頻編碼標準普遍采用的壓縮技術。變換編碼屬于頻域編碼,把信號從時域變到頻域,再對其頻譜系數進行量化編碼。變換編碼充分利用人耳在頻域上的聽覺特性(主要是掩蔽效應和臨界頻帶)來實現對音頻信號進行有效的壓縮,是一種高效的編碼技術。DRA編解碼算法使用了修正離散余弦變換(MDCT)技術,有利于消除塊邊界噪聲。
DRA編解碼算法使用DCT來完成MDCT的快速算法。編碼器端把每個聲道的音頻信號的PCM樣本分解成子帶信號,這是由應用MDCT產生的一組頻域系數實現的。在解碼端再從子帶樣本重建PCM音頻樣本,這由應用IMDCT實現[5]。針對輸入音頻信號的動態特征,M=1 024的長MDCT用于處理穩態幀,M=128的短MDCT則用于處理瞬態幀[6]。
DRA用的基函數為

式中,w(n)為長度為2M的窗口函數。
DRA用到的所有窗口函數都是基于如式(3)表示的正弦函數[7]

編碼所得的MDCT系數X(k)經過量化和Huffman編碼送入解碼端,在解碼端經過逆量化后得到(k),再進行IMDCT變換。

伴隨著信號處理技術的不斷進步,經各音頻壓縮編解碼系統處理后的節目信號,其音質的損傷難以用相關的技術參數進行客觀評價,目前行之有效的方法是主觀評價。因此通過對DRA解碼后音質進行主觀聽音測試來了解其性能。
測試素材的評估選擇根據國家標準GB/T10240-1998《電聲產品聲音質量主觀評價用節目源編輯制作規范》,從EBU的標準素材庫和商業DVD-AUDIO中選擇確定,包括8個環繞聲和8個立體聲片段。
根據ITU-R BS.1584建議書《數字廣播音頻編碼系統的用戶要求》對發射領域基本音頻質量規定:被測系統應按照ITU-R BS.1116建議書規定的雙盲三刺激隱藏基準5級標度法進行測試(5分——不覺察;4分——可覺察,但不討厭;3分——稍有討厭;2分——討厭;1分——非常討厭),獲得的平均分應高于4.0分。
測試結果表明,本文設計的解碼硬件在128 kbit/s的立體聲音質總體優于4.7分,達到了EBU定義的“不能識別損傷的”音頻質量;在384 kbit/s的5.1環繞聲音質總體優于4.5分;完全能滿足數字廣播系統的要求。
DRA多聲道數字音頻編解碼技術的最大特點是用很低的解碼復雜度實現了較高水平的壓縮效率。由于DRA技術編解碼過程的所有信號通道均有24 bit的精度容量,故在碼率充足時能提供超出人耳聽覺能力的音質。本文基于DSPB56367設計的DRA音頻解碼器在標準碼率(每聲道64 kbit/s)下損傷已較難識別,達到了EBU定義的“不能識別損傷的”音頻質量要求,滿足了實際應用的要求。
[1]SJ/T11368-2006多聲道數字音頻編解碼技術規范[S].2006.
[2]馬文華,曾慶煜.DRA算法及其實時解碼器設計[J].電視技術,2009,33(5):36-39.
[3]PRINCEN J P,BRADLEY A B.Analysis/synthesis filter bank design based on time domain aliasing cancellation[J].IEEE Trans.ASSP,1986,34(5):1153-1161.
[4]Freescale.Freescale Semiconductor DataSheet(DSP56367)[EB/OL].[2008-04-20].http://www.freescale.com.
[5]PAINTER T,SPANIAS A.Perceptual coding of digital audio[J].Proceedings of the IEEE,2000,88(4):451-513.
[6]YOU Yuli.Audio decoing:US,US11/689371[P].2006-04-06.
[7]MALVAR H S.Signal processing with lapped transforms[M].Norwood,MA:Artech House,1992.