| 摘要:G.729.A在TMS320C6201DSP上的實(shí)現(xiàn)方法及提高G.729.A編碼器的運(yùn)行速度的優(yōu)化方法和編程技巧。并介紹了該編碼器的測試結(jié)果。 關(guān)鍵詞:ITU-T G.729.A IP電話 編碼器 最近幾年,IP電話技術(shù)突飛猛進(jìn),已從當(dāng)初PC到PC的機(jī)連接方式發(fā)展到IP電話網(wǎng)關(guān)方式,通過IP電話網(wǎng)關(guān)可以將PBX與因特網(wǎng)連接起來,從而實(shí)現(xiàn)普通話機(jī)通過因特網(wǎng)進(jìn)行通信。因此,IP電話網(wǎng)關(guān)是近年來計(jì)算機(jī)和通信領(lǐng)域中研究的一個熱點(diǎn)。IP電話網(wǎng)關(guān)的一個最主要性能指標(biāo)是它的處理密度(即能同時算是的話路數(shù))。 而IP電話網(wǎng)關(guān)的處理密度主要取決于它所使用的語音編解碼器處理一幀數(shù)據(jù)的延遲大小。目前,IP電話所遵循的標(biāo)準(zhǔn)是H.323,而H.323標(biāo)準(zhǔn)首選語音編碼器是ITU-T G.729.A。ITU-T G.729.A是用于語音和其它聲音信號的壓縮編解碼算法建議,它是G.729的簡化版本,編碼速率為8Kbps,并且有很高的語音質(zhì)量。但是,該編碼器的算法復(fù)雜,一幀語音的處理延遲較大,在很大程度上影響IP電話網(wǎng)關(guān)的處理密度。因此,為了提高IP電話網(wǎng)關(guān)的處理密度,本文在實(shí)現(xiàn)ITU-T G.729.A語音編解碼器時,采用了目前性能最好的DSP,即TMS320C6201;針對TMS320C6201并行性和流水等特點(diǎn),深入研究了在TMS320C6201上實(shí)現(xiàn)G.729.A的編解碼器的編程技巧;歸納出一系列減少編解碼器處理延遲的優(yōu)化方法。采用這些優(yōu)先方法和編程技巧,可以將ITU-T G.729.A的每幀編碼運(yùn)行時間減少到0.47毫秒(按TMS320C6201工作在200MHz計(jì)算),從而可以實(shí)現(xiàn)單片TMS320C6201能同時處理20路路語音。這一指標(biāo)已到達(dá)了國際上最先進(jìn)的水平;而且,該編解碼器已成功地運(yùn)用在筆者開發(fā)的IP電話網(wǎng)關(guān)中。 1 G.729.A編解碼器的算法 1.1 編碼算法 ITU-T G.729.A標(biāo)準(zhǔn)采用一種稱為"共軛結(jié)構(gòu)代數(shù)碼本激勵線性預(yù)測"(Conjugate Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法來對語音信號進(jìn)行編碼。 在開始編碼之前,先要對輸入的模擬信號進(jìn)行電話帶濾波,然后以8kHz頻率對其進(jìn)行采樣,再將其轉(zhuǎn)換為16位線性PCM碼,作為編碼器的輸入。 編碼器處理語音的單位是幀,1幀為10毫秒語音,包括80個聲音樣本(采樣頻率為8kHz)。編碼器對每一幀語音信號進(jìn)行分析,抽取出其中的CPLD模型的參數(shù)(線性預(yù)測濾器參數(shù)),自適應(yīng)和固定碼本索引和增益),對這些參數(shù)進(jìn)行編碼和傳送。其編碼過程如圖1所示。 在預(yù)處理階段,輸入信號經(jīng)高通濾波并乘以比例因子,然后對每一幀預(yù)處理之后的信號進(jìn)行一次線性預(yù)測分析,計(jì)算出線性預(yù)測濾波器系數(shù),其中,線性預(yù)測濾波器系數(shù)定義為: 。這些系數(shù)被轉(zhuǎn)化成線譜對(LSP,Line Spectrum Pairs)并用可預(yù)測二階矢量量化法量化成18位。使用合成分析搜索過程選定激勵信號,使得原始信號和重構(gòu)信號之間的誤差在感覺加權(quán)失真測量中最小。 對每個子幀(5毫秒,包括40個樣本)求出其激勵參數(shù)(固定和自適應(yīng)碼本參數(shù))。本幀的量化和未量化的線性插值系數(shù)。每一幀根據(jù)感覺加權(quán)語音信號估計(jì)出開環(huán)基音延遲。多面手對每一子幀進(jìn)行以下操作:將線性預(yù)測殘差通過加權(quán)合成濾波器的沖擊響應(yīng)h(n),使用目標(biāo)信號x(n)和沖擊響應(yīng)h(n)在開環(huán)基音延迂回通過周圍搜索,并進(jìn)行閉環(huán)基音分析(得出自適應(yīng)碼本延遲和增益)。第一個子幀的基音延遲編碼為8位,第二個子幀采用差分方法編碼為5位。通過減去(濾波后的)自適應(yīng)碼本貢獻(xiàn)來更新目標(biāo)信號x(n),新目標(biāo)x''(n)在固定碼本搜索中使用以找到最優(yōu)激勵。固定碼本激勵使用一個17位的代數(shù)碼本。自適應(yīng)和固定碼本的獻(xiàn)增益被矢量量化為7位(對固定碼本增益使用移動平均預(yù)測方法)。最后,得到的激勵信號被用來更新濾波器狀態(tài)。所有這些參數(shù)最后封裝到80位的壓縮數(shù)據(jù)幀中。 1.2 解碼算法 解碼算法 解碼器算法框圖如圖2所示。 首先,從壓縮比特流中取得各參數(shù)的索引,再從這些索引中得出一幀語音的編碼器參數(shù),包括LSP系數(shù)、2個部分基音延遲、2個固定碼本向量、2套自適應(yīng)和固定碼本延遲,這些參數(shù)被用來生成激勵信號并合成濾波器參數(shù)。LSP系數(shù)經(jīng)插值后,形成每個子幀的LP濾波器。然后,對每個子幀進(jìn)行如下處理: ·自適應(yīng)和固定碼本向量乘以各自的增益系數(shù)得到激勵信號; ·激勵信號經(jīng)過線性預(yù)測合成濾波器得到重構(gòu)的語音; ·重構(gòu)后的語音信號再經(jīng)過一個后處理階段,包括基于長時和短時合成濾波器的自適應(yīng)濾波器,然后再經(jīng)過高通濾波器并乘以相應(yīng)的比例因子。 2 ITU-T G.729.A編解碼器實(shí)現(xiàn)的關(guān)鍵技術(shù) 2.1 ITU-T G.729.A編解碼器實(shí)現(xiàn)的硬件平臺 ITU-T G.729.A編解碼器實(shí)現(xiàn)平臺是筆者開發(fā)的一種集成式IP電話網(wǎng)關(guān)。這種集成式IP電話網(wǎng)關(guān)的設(shè)計(jì)思想是以PC機(jī)為基礎(chǔ),集成了市場通用板卡,如LSI/C6200DSP資源卡、Dialogic的語音卡和網(wǎng)關(guān)等,并以這些板卡為硬件平臺,按照相關(guān)協(xié)議,開發(fā)出一套IP網(wǎng)關(guān)軟件。集成式IP電話網(wǎng)關(guān)的硬件基本結(jié)構(gòu)如圖3所示。其中G.729.A編解碼器是由LSI/C6200資源卡上的TMS320C6201 DSP來實(shí)現(xiàn)。 TMS320C6201 DSP是美國TEXAS INSTRUMENT公司生產(chǎn)的目前處理速度最快的定點(diǎn)數(shù)字信號處理器,TMS320C6201 DSP采用VLIW(Very Long Instruction Word)體系結(jié)構(gòu),其工作頻率最高可達(dá)200MHz,內(nèi)部有1600MIPS[4]。另外,TMS320C6201 DSP分別提供了64KB的內(nèi)部程序RAM和數(shù)據(jù)RAM,片外存儲器可擴(kuò)展到4GB,可連接SDRAM、SBSRAM和Flash Memory。TMS320C6201 DSP還提供了豐富的外圍電路接口,如:Scbus語音總線、MVIP語音總線、HOST接口以及JTAG口等。 2.2 ITU-T G.729.A軟件模塊的設(shè)計(jì) G.729.A編解碼器運(yùn)行的硬件平臺是TMS320C6201DSP,支持SPOX。SPOX是一種功能很強(qiáng)的實(shí)時操作系統(tǒng)。在SPOX操作系統(tǒng)的調(diào)度下,可對多路語音進(jìn)行適時的語音壓縮和解碼。G.729.A編解碼器件主要由調(diào)度及命令解釋模塊、G.729.A數(shù)據(jù)壓縮與解壓縮模塊和接口模塊三部分組成。 |