淺談DRM AAC音頻解碼器的流程及優(yōu)化
數(shù)字廣播調(diào)幅系統(tǒng)DRM(Digital Radio Mondiale)采用先進(jìn)音頻編碼AAC(Advanced Audio Coding)作為其主要的信源編碼方式,在與模擬調(diào)幅廣播同樣的帶寬(9 kHz或10 kHz)下實(shí)現(xiàn)了調(diào)頻的音質(zhì)。DRM不僅解決了模擬調(diào)幅廣播抗干擾能力差等缺點(diǎn),而且在音頻業(yè)務(wù)的基礎(chǔ)上又增加了文本、圖像、數(shù)據(jù)等附加業(yè)務(wù),豐富了調(diào)幅廣播的內(nèi)容,大大提高了調(diào)幅廣播的市場競爭力,成為調(diào)幅廣播發(fā)展的必然趨勢。
信源編碼是DRM系統(tǒng)的關(guān)鍵技術(shù),其壓縮節(jié)目音頻源信號(hào),只需較少的傳輸帶寬就可保證接收端的重建音頻信號(hào)有較好的音質(zhì)。DRM音頻解碼器的實(shí)現(xiàn)和優(yōu)化決定了系統(tǒng)能否正確實(shí)現(xiàn)音頻解碼,并完成音頻的實(shí)時(shí)播放,使用戶得到良好音質(zhì)。本文中AAC音頻解碼程序在DSP硬件平臺(tái)上運(yùn)行,由于硬件平臺(tái)性能有限,要求音解碼器不僅要能確保音頻質(zhì)量,還要不能占用DSP系統(tǒng)太多的資源。因此研究DRM音頻解碼器在高性能DSP平臺(tái)上的實(shí)現(xiàn)及其優(yōu)化具有非常重要的現(xiàn)實(shí)意義。
1、DRM音頻解碼流程
通用MPEG-4 AAC音頻編解碼器的原理和實(shí)現(xiàn)技術(shù)已經(jīng)很成熟,不再詳述。DRM系統(tǒng)的信源編碼方案中所采用的頻帶恢復(fù)技術(shù)(SBR)提供了類似于MPEG-4 AAC中感知噪聲整形(PNS)模塊的功能,故DRM系統(tǒng)采用的音頻編碼方案不包括PNS模塊,同時(shí)也去除了長期預(yù)測(LTP)、采樣率可分級(SSR)等復(fù)雜的模塊,降低了算法復(fù)雜度,對處理器的處理能力要求也相對較低,適合應(yīng)用于嵌入式開發(fā)平臺(tái)上。AAC的采樣率有12 kHz和24 kHz兩種,5個(gè)(12 kHz采樣頻率)或10個(gè)(24 kHz采樣頻率)音頻幀組成一個(gè)持續(xù)時(shí)間固定為400 ms的音頻超級幀。本文優(yōu)化之前首先在PC機(jī)的VC++6.0環(huán)境下實(shí)現(xiàn)了DRM廣播信號(hào)的正確解碼和實(shí)時(shí)播放,測試信號(hào)為單聲道、48 kHz采樣,采用AAC音頻編碼的wav格式的DRM廣播信號(hào)源,其中AAC的采樣率為24 kHz,即一個(gè)音頻超幀包含10個(gè)子幀。在VC++6.0環(huán)境下運(yùn)行整個(gè)工程,經(jīng)同步、解調(diào)和信道解碼后獲得DRM信號(hào)源中的AAC音頻編碼數(shù)據(jù),在每次AAC子幀解碼前將每子幀數(shù)據(jù)輸出到一個(gè)文件。在DSP上測試音頻解碼程序時(shí),可以直接提取AAC數(shù)據(jù)進(jìn)行解碼。
?。?)對傳來的AAC子幀數(shù)據(jù)進(jìn)行比特流分解,根據(jù)DRM系統(tǒng)中音頻子幀結(jié)構(gòu)獲取語法單元、霍夫曼碼字等各部分的數(shù)據(jù)。
?。?)進(jìn)行霍夫曼解碼,這部分用到了一系列的霍夫曼碼書進(jìn)行查詢解碼。頻域數(shù)據(jù)和比例因子的獲得都在這一步。該過程需要在將順序打亂的碼字重新組合在一起的同時(shí),進(jìn)行霍夫曼解碼,并將解碼之后的數(shù)據(jù)放置到正確的位置上,準(zhǔn)備進(jìn)行下一步的反量化。
(3)對解碼后的頻域數(shù)據(jù)進(jìn)行反量化。
?。?)將反量化的結(jié)果乘以(2)中生成的比例因子。
?。?)濾波器組部分。這部分在解碼時(shí)采用了逆改進(jìn)離散余弦變換(IMDCT),還包括一個(gè)加窗的過程和疊加的過程。功能模塊的輸出為信號(hào)的時(shí)域值。
2、TMS320C6416的DSP開發(fā)平臺(tái)
TMS320C6416(簡稱C6416)是一種高性能的32 bit定點(diǎn)DSP芯片。本文使用的C6416的工作頻率達(dá)到600 MHz。其特點(diǎn)包括:具有8個(gè)功能單元的高級超長指令體系結(jié)構(gòu)的CPU;所有指令有條件執(zhí)行;支持8/16/32 bit可變長度數(shù)據(jù)訪問;支持常用算術(shù)運(yùn)算的飽和與歸一化操作;兩級高速緩存(Cache)存儲(chǔ)器結(jié)構(gòu)及豐富的片內(nèi)外設(shè),如增強(qiáng)型直接存儲(chǔ)器訪問EDMA控制器、多通道緩沖串口McBSP等。C6416開發(fā)板上除C6416 DSP芯片外,還帶有外擴(kuò)的512 K&TImes;8 bit的FLASH。
開發(fā)環(huán)境采用DSP集成開發(fā)環(huán)境CCS(Code Composer Studio),它集成了代碼編輯、編譯、工程管理、代碼生成與調(diào)試、代碼性能剖析、數(shù)據(jù)查看、繪制數(shù)據(jù)圖像、DSP/BIOS參數(shù)設(shè)置,以及提供各種優(yōu)化建議等工具模塊。