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