馬文華,許晶晶,沈映娜
(1.廣東外語外貿(mào)大學(xué) 信息科學(xué)與技術(shù)學(xué)院 計算機系,廣東 廣州 510630;2.廣東省數(shù)字音頻重點實驗室,廣東 廣州 510640;3.廣東省計算中心,廣東 廣州 510033)
常用的數(shù)字音頻編解碼技術(shù)主要有杜比AC-3,DTS,AAC,MP3,DRA等。音頻處理設(shè)備從實現(xiàn)方式上可分為兩大類:一類是采用專用芯片進(jìn)行音頻信號的編解碼處理,其特點是處理速度快,實時性強(實現(xiàn)成本低廉,適合大規(guī)模量產(chǎn)),但功能相對單一,已經(jīng)越來越不適應(yīng)用戶的需求;另一類采用通用數(shù)字信號處理器DSP為核心建立系統(tǒng),其優(yōu)點是功能豐富,能迅速應(yīng)用新算法、新標(biāo)準(zhǔn)或新協(xié)議,有利于產(chǎn)品的快速升級。其缺點是由于采用軟件算法,運算速度相對較慢,特別是進(jìn)行大運算量的音頻編碼處理,實時性不易保證。
本文研究了DRA(Dynamic Resolution Adaptation)解碼算法,并在飛思卡爾公司的DSPB56367定點芯片上實現(xiàn)了DRA技術(shù)的實時解碼過程。主觀聽音測試表明:設(shè)計的DRA音頻解碼器性能指標(biāo)先進(jìn),可廣泛應(yīng)用于數(shù)字電視、數(shù)字音頻廣播、寬帶多媒體及移動多媒體等領(lǐng)域。
DRA技術(shù)是一種同時支持立體聲和多聲道環(huán)繞聲的數(shù)字音頻編解碼技術(shù)[1-2]。DRA技術(shù)的最大特點是用很低的解碼復(fù)雜度實現(xiàn)了國際先進(jìn)水平的壓縮效率。在編解碼過程中,信號通道保持24 bit的精度(除了因量化而有意舍棄的精度外);可支持的聲道設(shè)置除了常見的立體聲、5.1環(huán)繞聲、6.1環(huán)繞聲和7.1環(huán)繞聲之外,還為未來的音頻技術(shù)發(fā)展預(yù)留了空間;同時可支持8~192 kHz間的標(biāo)準(zhǔn)采樣頻率,包括44.1 kHz和48 kHz;它對編碼比特率(碼率)沒有明確限制,在具體應(yīng)用時可根據(jù)信道帶寬和音質(zhì)要求等因素來設(shè)定[1]。
DRA解碼流程如圖1所示。
其中多路解復(fù)用器用于從比特流解包出各個碼字,由于Huffman碼屬前綴碼,其解碼和多路解復(fù)用是在同一個步驟中完成的;碼書選擇器用于從比特流中解碼出用于解碼量化指數(shù)用的各個Huffman碼書及其應(yīng)用范圍(application range);量化指數(shù)解碼器用于從比特流中解碼出量化指數(shù);量化單元個數(shù)重建器可根據(jù)碼書應(yīng)用范圍重建各個瞬態(tài)段的量化單元的個數(shù);逆量化器用于從碼流中解碼出所有量化單元的量化步長,并用它由量化指數(shù)重建子帶樣本;可選聯(lián)合強度解碼器利用聯(lián)合強度比例因子由源聲道的子帶樣本重建聯(lián)合聲道的子帶樣本;可選的和/差解碼器用于從和/差聲道的子帶樣本重建左右聲道的子帶樣本;逆交叉重組器用于當(dāng)幀中存在瞬態(tài)時,逆轉(zhuǎn)編碼器對量化指數(shù)的交叉重組;短/暫窗口函數(shù)序列用于根據(jù)瞬態(tài)的位置及MDCT的完美重建(per?fect reconstruction)條件來重建該幀須用的短和暫窗口函數(shù)序列(對于瞬態(tài)幀);可變分辨力合成濾波器組可由子帶樣本重建PCM音頻樣本[3]。
飛思卡爾(Freescale)的數(shù)字信號處理(DSP)芯片DSPB56367主要定位在數(shù)字音頻壓縮/解壓縮以及有關(guān)數(shù)字音頻處理的其他領(lǐng)域,它是24位處理器,滿足DRA算法設(shè)計24位精度的需要,該處理精度已超出人耳聽覺極限;同時在1.8 V內(nèi)核電壓下執(zhí)行速度為150 MI/s(兆指令/秒),在1.5 V內(nèi)核電壓下,執(zhí)行速度為100 MI/s,也滿足5.1聲道算法的處理要求,其優(yōu)良的性能使之成為DRA音頻算法處理的理想器件[4]。
本文設(shè)計的多聲道數(shù)字音頻解碼器,采用DSPB56367作為核心運行DRA解碼算法。把來自數(shù)字音頻接口S/PDIF(或AES/EBU)的DRA格式的低碼率信號實時的解碼成多聲道數(shù)字音頻信號,再由數(shù)字音頻接口S/PDIF(或AES/EBU)輸出給后端設(shè)備。同時還輸出高指標(biāo)的多聲道模擬音頻信號給后端監(jiān)聽設(shè)備。解碼器的硬件組成如圖2所示。
圖2中MCU使用80C51,對DIR(Digital Interface Re?ceiver)和DIT(Digital Interface Transmitter)進(jìn)行配置,同時可復(fù)位DSP并進(jìn)行相關(guān)數(shù)據(jù)控制操作。RAM采用IS61LV5128-10T;Flash采用SST39LE040;DSP的編程采用JTAG方式;MCU采用I2C數(shù)據(jù)傳輸方式與DSP通信。
DRA多聲道數(shù)字音頻解碼器的數(shù)字接口性能指標(biāo)如表1所示。
表1 DRA多聲道數(shù)字音頻解碼器的數(shù)字接口性能指標(biāo)
DRA多聲道數(shù)字音頻解碼器的模擬輸出接口性能指標(biāo)如表2所示。
表2 DRA多聲道數(shù)字音頻解碼器的模擬接口性能指標(biāo)
解碼器的軟件流程如圖3所示。
首先設(shè)置系統(tǒng)統(tǒng)時鐘(PLL),清空存儲器,設(shè)置S/PDIF輸入輸出參數(shù)(I2S),等待DRA同步字,當(dāng)1 024個字(word)的DRA碼流裝滿DSP存儲器后,交換乒乓存儲器,解碼1幀。解碼流程見圖1。
2.2.1 乒乓緩沖區(qū)
乒乓(ping-pong)緩沖技術(shù)是一種同時利用兩個數(shù)據(jù)緩沖區(qū)的數(shù)據(jù)傳輸處理技術(shù)。使用乒乓緩沖是因為在傳輸和處理數(shù)據(jù)過程中單個緩沖區(qū)數(shù)據(jù)很容易被覆蓋。乒乓緩沖方式的連續(xù)執(zhí)行,總是保持一個緩沖區(qū)激活用于數(shù)據(jù)傳輸,而另一個緩沖區(qū)保持靜態(tài)穩(wěn)定的由DSP處理數(shù)據(jù)。
DSP內(nèi)核存取內(nèi)部RAM(IRAM)中的數(shù)據(jù)的速度比存取外部存儲器中數(shù)據(jù)的速度快的多。但I(xiàn)RAM容量有限,不能滿足整個輸入幀的要求,因此同一時間在IRAM中只能處理一部分模塊。處理乒乓集時,DMA將乒乓集從外部存儲器傳遞至IRAM,這樣DSP內(nèi)核就能在完成當(dāng)前工作后立即開始處理下面的數(shù)據(jù)。用乒乓緩沖區(qū)處理流程如圖4所示。乒乓緩沖區(qū)在處理DRA解碼算法的時候,每個緩沖區(qū)取1 024個字的數(shù)據(jù)進(jìn)行處理,可同時處理8個聲道的音頻數(shù)據(jù)。
圖4 乒乓緩沖區(qū)處理流程
2.2.2 Huffman解碼
Huffman編碼的理論依據(jù)是變字長編碼理論。可以證明,按照概率出現(xiàn)大小的順序,對輸出碼字分配不同碼字長度的變字長編碼方法,其輸出碼字的平均碼長短,信源熵值可以接近[2]。
DRA算法根據(jù)量化級數(shù)的多少而選用不同的Huff?man碼書,當(dāng)一個碼書中的量化級數(shù)很小時,多個量化指數(shù)被歸集到一起以形成一個大的Huffman碼書。當(dāng)量化級的個數(shù)太大時(例如超過200),則采用遞歸索引。對此一個大的量化指數(shù)q被表示為
式中:M是模;m是商;r是余數(shù)。只有m和r需要被傳送到解碼器。它們中的一個或其兩者都可以用Huffman碼來編碼。
DRA解碼器中的Huffman數(shù)據(jù)處理流程如圖5所示。
DRA解碼過程中對每個聲道的子帶樣本的量化指數(shù)進(jìn)行Huffman編碼,以提高壓縮效率。表3[1]所示的兩組碼書被用來對子帶樣本的量化指數(shù)進(jìn)行Huff?man編碼,分別對應(yīng)平穩(wěn)幀和瞬態(tài)幀;而每組碼書又分別由9個Huffman碼書組成。因此,對每一個特定的幀,共有9個Huffman碼書可用于對這些量化指數(shù)進(jìn)行Huffman編碼。這些碼書的選擇由量化指數(shù)的局部統(tǒng)計特性而決定:
1)根據(jù)量化指數(shù)的局部統(tǒng)計特性對量化指數(shù)分段;
2)為每段選擇最佳的碼書。
表3 解碼量化指數(shù)用的Huffman碼書選擇
因此,需把這些段的個數(shù)、長度(碼書的應(yīng)用范圍)、以及所選擇的碼書指數(shù)傳輸給解碼器。
假設(shè)由碼書選擇得到碼書指數(shù)2對應(yīng)的Huffman碼表如表4所示。當(dāng)接收緩沖區(qū)得到圖6所示數(shù)據(jù)時進(jìn)行Huffman解碼。
表4 Huffman碼表
首先取出第1位數(shù)據(jù)“0”放入解碼寄存器B的最低位,此時查找碼表4可解出對應(yīng)量化指數(shù)-2進(jìn)行DRA解碼,如圖7所示。
重復(fù)上述步驟讀取第二位數(shù)“1”存入B,查找碼表未能解出碼字,左移1位繼續(xù)取數(shù),直到取出“110”解出量化指數(shù)為“1”,如圖8所示。設(shè)置X可減少遍歷運算時間。
DRA解碼過程很大部分的運算量都體現(xiàn)在Huffman解碼的過程中,5.1聲道音頻數(shù)據(jù)解碼需要48 MI/s,平均每個聲道8 MI/s。
2.2.3 修正離散余弦反變換(IMDCT)
變換編碼是當(dāng)前的音頻編碼標(biāo)準(zhǔn)普遍采用的壓縮技術(shù)。變換編碼屬于頻域編碼,把信號從時域變到頻域,再對其頻譜系數(shù)進(jìn)行量化編碼。變換編碼充分利用人耳在頻域上的聽覺特性(主要是掩蔽效應(yīng)和臨界頻帶)來實現(xiàn)對音頻信號進(jìn)行有效的壓縮,是一種高效的編碼技術(shù)。DRA編解碼算法使用了修正離散余弦變換(MDCT)技術(shù),有利于消除塊邊界噪聲。
DRA編解碼算法使用DCT來完成MDCT的快速算法。編碼器端把每個聲道的音頻信號的PCM樣本分解成子帶信號,這是由應(yīng)用MDCT產(chǎn)生的一組頻域系數(shù)實現(xiàn)的。在解碼端再從子帶樣本重建PCM音頻樣本,這由應(yīng)用IMDCT實現(xiàn)[5]。針對輸入音頻信號的動態(tài)特征,M=1 024的長MDCT用于處理穩(wěn)態(tài)幀,M=128的短MDCT則用于處理瞬態(tài)幀[6]。
DRA用的基函數(shù)為
式中,w(n)為長度為2M的窗口函數(shù)。
DRA用到的所有窗口函數(shù)都是基于如式(3)表示的正弦函數(shù)[7]
編碼所得的MDCT系數(shù)X(k)經(jīng)過量化和Huffman編碼送入解碼端,在解碼端經(jīng)過逆量化后得到(k),再進(jìn)行IMDCT變換。
伴隨著信號處理技術(shù)的不斷進(jìn)步,經(jīng)各音頻壓縮編解碼系統(tǒng)處理后的節(jié)目信號,其音質(zhì)的損傷難以用相關(guān)的技術(shù)參數(shù)進(jìn)行客觀評價,目前行之有效的方法是主觀評價。因此通過對DRA解碼后音質(zhì)進(jìn)行主觀聽音測試來了解其性能。
測試素材的評估選擇根據(jù)國家標(biāo)準(zhǔn)GB/T10240-1998《電聲產(chǎn)品聲音質(zhì)量主觀評價用節(jié)目源編輯制作規(guī)范》,從EBU的標(biāo)準(zhǔn)素材庫和商業(yè)DVD-AUDIO中選擇確定,包括8個環(huán)繞聲和8個立體聲片段。
根據(jù)ITU-R BS.1584建議書《數(shù)字廣播音頻編碼系統(tǒng)的用戶要求》對發(fā)射領(lǐng)域基本音頻質(zhì)量規(guī)定:被測系統(tǒng)應(yīng)按照ITU-R BS.1116建議書規(guī)定的雙盲三刺激隱藏基準(zhǔn)5級標(biāo)度法進(jìn)行測試(5分——不覺察;4分——可覺察,但不討厭;3分——稍有討厭;2分——討厭;1分——非常討厭),獲得的平均分應(yīng)高于4.0分。
測試結(jié)果表明,本文設(shè)計的解碼硬件在128 kbit/s的立體聲音質(zhì)總體優(yōu)于4.7分,達(dá)到了EBU定義的“不能識別損傷的”音頻質(zhì)量;在384 kbit/s的5.1環(huán)繞聲音質(zhì)總體優(yōu)于4.5分;完全能滿足數(shù)字廣播系統(tǒng)的要求。
DRA多聲道數(shù)字音頻編解碼技術(shù)的最大特點是用很低的解碼復(fù)雜度實現(xiàn)了較高水平的壓縮效率。由于DRA技術(shù)編解碼過程的所有信號通道均有24 bit的精度容量,故在碼率充足時能提供超出人耳聽覺能力的音質(zhì)。本文基于DSPB56367設(shè)計的DRA音頻解碼器在標(biāo)準(zhǔn)碼率(每聲道64 kbit/s)下?lián)p傷已較難識別,達(dá)到了EBU定義的“不能識別損傷的”音頻質(zhì)量要求,滿足了實際應(yīng)用的要求。
[1]SJ/T11368-2006多聲道數(shù)字音頻編解碼技術(shù)規(guī)范[S].2006.
[2]馬文華,曾慶煜.DRA算法及其實時解碼器設(shè)計[J].電視技術(shù),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.