當(dāng)前位置:首頁 > 嵌入式 > 嵌入式硬件
[導(dǎo)讀]當(dāng)前,Voice overIP(VoIP)技術(shù)正在不斷普及,通過Internet的語音通信量也日漸增加。目前VoIP中使用的低碼率語音壓縮標(biāo)準(zhǔn)主要有G.723.1和G.729兩種。隨著VoIP技術(shù)的不斷發(fā)展,要求產(chǎn)品的集成度與性能進(jìn)一步提高,利用新一代高性能DSP芯片,實(shí)現(xiàn)單片DSP處理多路語音信號(hào),是今后的發(fā)展趨勢(shì)。本文根據(jù)C6201芯片的特點(diǎn),作了大量針對(duì)G.723.1標(biāo)準(zhǔn)本身的優(yōu)化,降低了運(yùn)算量,滿足了多路信號(hào)的實(shí)時(shí)實(shí)現(xiàn)。

摘要:介紹了一種基于TMS320C6201的ITU-T G.723.1全雙工實(shí)時(shí)多通道語音編解碼的實(shí)現(xiàn)。首先簡要介紹了G.723.1標(biāo)準(zhǔn)和C6201的芯片結(jié)構(gòu),然后提出了基于C語言和匯編語言的各種優(yōu)化方法以降低計(jì)算量,最后給出了各個(gè)主要模塊的性能指標(biāo)。該實(shí)現(xiàn)能夠在200MHz的C6201 DSP上實(shí)現(xiàn)16路語音信號(hào)的實(shí)時(shí)編解碼,完全符合ITU-T G.723.1標(biāo)準(zhǔn)的定點(diǎn)算法,通過了ITU-T的所有測(cè)試矢量。

關(guān)鍵詞:語音編碼 定點(diǎn)數(shù)字信號(hào)處理器 ITU標(biāo)準(zhǔn)

當(dāng)前,Voice overIP(VoIP)技術(shù)正在不斷普及,通過Internet的語音通信量也日漸增加。目前VoIP中使用的低碼率語音壓縮標(biāo)準(zhǔn)主要有G.723.1和G.729兩種。隨著VoIP技術(shù)的不斷發(fā)展,要求產(chǎn)品的集成度與性能進(jìn)一步提高,利用新一代高性能DSP芯片,實(shí)現(xiàn)單片DSP處理多路語音信號(hào),是今后的發(fā)展趨勢(shì)。本文根據(jù)C6201芯片的特點(diǎn),作了大量針對(duì)G.723.1標(biāo)準(zhǔn)本身的優(yōu)化,降低了運(yùn)算量,滿足了多路信號(hào)的實(shí)時(shí)實(shí)現(xiàn)。

1 G.723.1標(biāo)準(zhǔn)介紹

G.723.1標(biāo)準(zhǔn)是ITU組織于1996年推出的一種低碼率編碼算法。主要用于對(duì)語音及其他多媒體聲音信號(hào)的壓縮,如可視電話系統(tǒng)、數(shù)字傳輸系統(tǒng)和高質(zhì)語音壓縮系統(tǒng)等。

G.723.1標(biāo)準(zhǔn)可在6.3kbps和5.3kbps兩種碼率下工作。其中,高碼率算法具有較高的重建語音質(zhì)量,而低碼率算法的計(jì)算復(fù)雜度則較低。與一般的低碼率語音編碼算法一樣,G.723.1標(biāo)準(zhǔn)采用線性預(yù)測(cè)的合成分析法(Analysis-by-Synthesis)。對(duì)激勵(lì)信號(hào)進(jìn)行量化時(shí),高碼率算法采用多脈沖最大似然量化(MP-MLQ),而低碼率算法則采用算術(shù)碼本激勵(lì)線性預(yù)測(cè)(ACELP)。目前,G.723.1已經(jīng)能在多種DSP芯片上實(shí)現(xiàn),如美國TI公司的TMS320C5x、TMS320C54x和朗訊科技公司的DSP16xx等。

G.723.1編碼器能對(duì)以8kHz采樣的話帶語音信號(hào)進(jìn)行壓縮,其結(jié)構(gòu)框圖見圖1(a)。從圖中可以看出,編碼器是基于線性預(yù)測(cè)合成分析法原理,其目的是最小化感知加權(quán)誤差信號(hào)。為了降低碼率,G.723.1采用了較長的幀尺寸,每幀240個(gè)樣值,即30毫秒幀長。每幀輸入信號(hào)首先通過一階高通濾波器濾除直流分量,然后將之分成四個(gè)60個(gè)樣值的子幀,每個(gè)子幀獨(dú)立進(jìn)行LPC分析。為了提高LPC系數(shù)的連續(xù)性,采用了長度為180個(gè)樣值的重疊窗,即同時(shí)包含前后兩個(gè)子幀,這使算法引入60個(gè)樣值的超前時(shí)延,因此算法的總時(shí)延為37.5毫秒。LPC系數(shù)用線性譜頻率(LSF)表示,LSF參數(shù)采用預(yù)測(cè)分裂矢量量化,只對(duì)第四子幀進(jìn)行。為了提高量化感知質(zhì)量,高通濾波后的語音信號(hào)需通過共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器以生成初始目標(biāo)信號(hào)。前者參數(shù)由各子幀的未量化LPC系數(shù)構(gòu)成,后者通過對(duì)每兩子幀進(jìn)行開環(huán)基音周期估計(jì)得到,其中基音周期的范圍為18到142個(gè)樣值。LPC合成濾波器、共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器用于系統(tǒng)零輸入響應(yīng)計(jì)算和最佳激勵(lì)估計(jì)。G.723.1編碼器還包括一個(gè)五階基音預(yù)測(cè)器,其參數(shù)根據(jù)開環(huán)基音估計(jì)值和脈沖響應(yīng)進(jìn)行閉環(huán)基音搜尋得到。在進(jìn)行最佳激勵(lì)估計(jì)時(shí),需從初始目標(biāo)信號(hào)中減去系統(tǒng)零輸入響應(yīng)和基音預(yù)測(cè)器貢獻(xiàn)以得到最終目標(biāo)信號(hào),然后針對(duì)高低碼率分別采用MP-MLQ和ACELP方法進(jìn)行量化。其中LSF參數(shù)、基音值和激勵(lì)參數(shù)需傳送給解碼器。

解碼器首先根據(jù)得到的LSF參數(shù)重建LPC合成濾波器,然后根據(jù)基音值和激勵(lì)參數(shù)得到自適應(yīng)碼本激勵(lì)信號(hào)和固定碼本激勵(lì)信號(hào)。為了提高重建語音的主觀質(zhì)量,解碼器還包括一個(gè)后濾波器,后濾波器由共振峰和基音后濾波器組成。激勵(lì)信號(hào)依次通過基音后濾波器、合成濾波器和共振峰后濾波器合成重建語音,其結(jié)構(gòu)框圖見圖1(b)。

2 TMS320C6201芯片結(jié)構(gòu)簡介

TMS320C6201是一種32位的定點(diǎn)DSP,工作頻率最高達(dá)200MHz。它有兩組運(yùn)算單元,每組4個(gè),共8個(gè)。除M單元只能作乘法外,其他單元都可以靈活使用,如D單元可以做Load、Store和加減操作,S單元可以進(jìn)行移位和加減。C6201有32個(gè)通用寄存器,分為A、B兩側(cè)。兩側(cè)的寄存器有交叉通路,同一指令可以同時(shí)訪問雙側(cè)的寄存器。C6201采用了超長指令字結(jié)構(gòu),一次最多可以同時(shí)執(zhí)行8條指令(每個(gè)單元一條)。它有11級(jí)流水,所有的指令都是精簡指令。C6201允許使用緩存(Cache)模式,可以運(yùn)行大型程序而不降低速度。圖2是C6201的結(jié)構(gòu)。

3 標(biāo)準(zhǔn)的實(shí)現(xiàn)

用C6201實(shí)現(xiàn)G.723.1標(biāo)準(zhǔn)的最大優(yōu)勢(shì)在于它極強(qiáng)的并行處理能力,用一塊DSP可以實(shí)現(xiàn)多路語音的壓縮,大大簡化了硬件的設(shè)計(jì)。C6201是TI公司推出的第一種支持C編譯器的DSP芯片。通常,C編譯器能完成整個(gè)工作的70%,而30%的進(jìn)一步優(yōu)化必須通過手寫匯編來實(shí)現(xiàn),所以對(duì)整個(gè)程序的優(yōu)化分為C語言級(jí)和匯編語言級(jí)兩部分。

3.1 C語言級(jí)的優(yōu)化

3.1.1 循環(huán)展開(loop-unrolling)

使用具有并行能力的DSP開發(fā)軟件時(shí),一個(gè)重要的思想就是充分利用DSP的字長和數(shù)目眾多的運(yùn)算單元,盡量把循環(huán)體展開。通過增加每次循環(huán)中執(zhí)行的指令數(shù)來減少總的循環(huán)次數(shù),可使得在同樣的時(shí)鐘周期內(nèi)能運(yùn)行更多的指令,提高了循環(huán)的效率。

3.1.2 提高寄存器的利用率

DSP芯片內(nèi)部的運(yùn)算單元運(yùn)行效率非常高,但如果寄存器和數(shù)據(jù)總線之間的數(shù)據(jù)交換頻繁,將使DSP的執(zhí)行效率大打折扣。因?yàn)椋模樱性谶M(jìn)行內(nèi)存操作時(shí),往往需要若干周期的延遲,如Load指令要有4個(gè)周期的延遲,Store指令需要2個(gè)周期的延遲。為了減少耗時(shí)的內(nèi)存操作,可以在程序進(jìn)入循環(huán)體之前,將要頻繁使用的數(shù)據(jù)預(yù)先放入寄存器,然后反復(fù)調(diào)用,實(shí)踐證明這種方法可以提高一部分效率。

3.1.3 使用內(nèi)在函數(shù)(Intrinsic)

內(nèi)在函數(shù)是在某些C6201DSP的匯編指令前加上“_”構(gòu)成?它可以方便地實(shí)現(xiàn)某些需若干C語句才能實(shí)現(xiàn)的功能。它是一種非常簡便高效的優(yōu)化方法,它的調(diào)用格式和普通C函數(shù)一樣,但在編譯時(shí)編譯器會(huì)自動(dòng)將Intrinsic用對(duì)應(yīng)的匯編指令替代。C6201指令集中絕大多數(shù)的運(yùn)算邏輯指令都可以這樣使用,比如飽和絕對(duì)值、飽和加、飽和減、飽和乘、兩個(gè)字中的對(duì)應(yīng)半字同時(shí)加或同時(shí)減、兩個(gè)字中的對(duì)應(yīng)半字同時(shí)乘或交叉乘、歸一化及位操作等。經(jīng)過此步優(yōu)化后,大部分循環(huán)體都可以生成較為有效的流水內(nèi)核(piplinedkernel)。用Intrinsic替代G.723.1原先的C代碼,運(yùn)算量下降為原來的1/10。

3.1.4 對(duì)算法的冗余部分合理精簡

經(jīng)過檢查,發(fā)現(xiàn)ITU-T G.723.1的C代碼存在冗余部分。象6.3k碼率的MP-MLQ搜索模塊中,只需要用到偶數(shù)位置的脈沖響應(yīng)的自相關(guān),所以對(duì)奇數(shù)位置的脈沖響應(yīng)自相關(guān)計(jì)算可以省略。

另外,在G.723.1標(biāo)準(zhǔn)中存在大量的10階FIR和10階IIR濾波器運(yùn)算,如編碼部分的感知加權(quán)、零輸入響應(yīng)、解碼部分綜合濾波器和后濾波等,FIR和IIR的通用形式可以表示為:


每次循環(huán),FIR濾波器內(nèi)存要用新的輸入值更新,IIR濾波器內(nèi)存要用新的輸出值更新,使用按標(biāo)準(zhǔn)提供的算法,要專門用一個(gè)10階循環(huán)更新內(nèi)存。如果用一個(gè)10單位大小的循環(huán)緩存區(qū),每次用新值覆蓋最老的樣值,動(dòng)態(tài)調(diào)整循環(huán)緩存區(qū)的頭指針,可以節(jié)省原先用于內(nèi)存更新的cycle。

3.2 匯編級(jí)優(yōu)化

由于C編譯器只能完成70%的工作?且對(duì)于復(fù)雜的循環(huán),C編譯器無法生成高效率的代碼,所以對(duì)運(yùn)算量大的模塊只能用手寫匯編。

3.2.1 字長優(yōu)化

C6201的字長為32位,它支持按字節(jié)、半字、字存取。對(duì)于16位的數(shù)組,當(dāng)它在內(nèi)存中連續(xù)排列時(shí),用32位讀寫指令LDW或STW替代16位讀寫指令LDH或STH,循環(huán)次數(shù)可減少一半。另外,C6201的匯編指令支持兩個(gè)32位寄存器的高16位和低16位之間互乘,結(jié)果分別放到不同的寄存器中,互不影響。具體指令為SMPY(L×L)、SMPYH(H×H)、SMPYHL(H×L)和SMPYLH(L×H)。通過字長優(yōu)化,可以大大提高程序的運(yùn)行效率。必須注意的是,在使用字長優(yōu)化時(shí),數(shù)組在內(nèi)存中的位置必須對(duì)齊32位邊界。

3.2.2 對(duì)外循環(huán)的優(yōu)化

C6201的C編譯器對(duì)多重循環(huán)的最內(nèi)層一般能較好地優(yōu)化到一句到兩句,但對(duì)外循環(huán)的優(yōu)化效率則差很多。手寫匯編時(shí),可以先將內(nèi)循環(huán)展開,再把外循環(huán)的指令并入其中,可以減少所耗費(fèi)的cycle數(shù)。

C6201的循環(huán)一般分前導(dǎo)(Prolog)、內(nèi)核(Kernel)及排空(Epilog)三部分。代碼的并行程度從Prolog開始不斷提高,Kernel內(nèi)的并行程度最高,Epilog與Prolog相反,并行性逐漸降低。在多重循環(huán)中,如果盡量把內(nèi)循環(huán)前導(dǎo)部分的指令與填入排空部分未用的單元,一起執(zhí)行,可以在執(zhí)行本次循環(huán)的排空語句的同時(shí)執(zhí)行下次循環(huán)的前導(dǎo)語句。這樣可不多花cycle而提高整個(gè)循環(huán)的效率。

4 實(shí)現(xiàn)結(jié)果

經(jīng)過C語言級(jí)和匯編級(jí)的多種優(yōu)化,最后實(shí)現(xiàn)了一路G.723.1的編解碼需要花費(fèi)10.6MCPS,整個(gè)代碼的程序空間為208K byte(程序中包括了部分c6201的庫函數(shù)),數(shù)據(jù)空間為8K byte,碼本大?。玻埃?byte,多通道的上下文數(shù)據(jù)為1.48K byte。200MHz的C6201每秒可以實(shí)時(shí)編解碼16路語音信號(hào)。所有代碼全部通過了ITU-T測(cè)試矢量的測(cè)試。表1是各主要模塊的運(yùn)算量。

表1 G.723.1各主要模塊運(yùn)算量

函數(shù)名每次調(diào)用所費(fèi)Cycle編碼部分AtoLsp
Lsp_Svq
Estim_Pitch
Find_Acbk
Find_Best
D4i64_LBC5975
7507
11250
21891
26760
25267G7231_Coder283944(at 6.3kbps)
286258(at 5.3kbps)解碼部分G7231_Decoder34483(at 6.3kbps)
32270(at 5.3kbps)總計(jì)Codec10.6MCPS

本文提出的利用C6201 DSP進(jìn)行ITU-T G.723.1全雙工?實(shí)時(shí)多通道語音編解碼的實(shí)現(xiàn)。該實(shí)現(xiàn)可以在IP電話、視頻會(huì)議中得到廣泛應(yīng)用。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競爭優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動(dòng)力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉