<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 用TMS320C6201實(shí)現多路ITU-TG.728語(yǔ)音編碼標準

用TMS320C6201實(shí)現多路ITU-TG.728語(yǔ)音編碼標準

作者: 時(shí)間:2006-05-07 來(lái)源:網(wǎng)絡(luò ) 收藏

摘要:ITU-T G.728標準是國際電信聯(lián)盟于1992年制定的比特率為16kbit/s的低延時(shí)CELP類(lèi)語(yǔ)音編碼器。在扼要介紹G.728編解碼算法原理和TMS320C6201定點(diǎn)DSP芯片的基礎上,詳細討論了G.728算法在TMS320C6201上實(shí)時(shí)實(shí)現的硬件設計和軟件開(kāi)發(fā)及優(yōu)化的關(guān)鍵技術(shù)。實(shí)驗結果表明,單片C6201能實(shí)現至少4路G.728語(yǔ)音編解碼。

本文引用地址:http://dyxdggzs.com/article/242348.htm

關(guān)鍵詞:語(yǔ)音編碼 ITU標準 DSP

隨著(zhù)數字語(yǔ)音壓縮技術(shù)的應用領(lǐng)域越來(lái)越廣,將高質(zhì)量語(yǔ)音編碼算法實(shí)用化的需求也越來(lái)越迫切。16kbit/s LD-CELP ITU-T G.728語(yǔ)音編碼標準,采用后向自適應技術(shù),單向編碼延遲小于2ms,主觀(guān)評價(jià)MOS分4.0,達到進(jìn)入公眾通信網(wǎng)的需求,因而廣泛適用于數字衛星系統、數字線(xiàn)路倍增設備(DCME)、綜合業(yè)務(wù)數字網(wǎng)(ISDN)、公共交換電話(huà)網(wǎng)(PSTN)、話(huà)音存儲轉發(fā)系統等。但其算法復雜度高,運算量龐大,定點(diǎn)實(shí)現時(shí),一路全雙工約需30~40MIPS。一般通用的器(DSP),只能做到一片DSP實(shí)現一路G.728語(yǔ)音編解碼。

TMS320C6201是TI公司最新推出的C6X芯片系列中具代表性的定點(diǎn)處理芯片。由于內部含有具備超長(cháng)指令字(VLIW)處理能力的CPU和8個(gè)功能單元,故它可在一個(gè)時(shí)鐘周期內執行多達8條指令。此外,1M位的片內RAM、可擴展的外部RAM接口和靈活的外圍設備使其成為實(shí)現具有高速運算的復雜處理系統的首選芯片。

本文研究了在單片TMS320C6201芯片上實(shí)時(shí)實(shí)現ITU-T G.728語(yǔ)音編碼標準,實(shí)驗結果表明,單片TMS320C6201能實(shí)現至少4路語(yǔ)音編解碼。這對于擴展基于G.728標準的單路處理系統的功能或降低基于G.728標準的多路處理系統的系統復雜度都具有現實(shí)的意義。

文中將扼要介紹G.728編解碼算法和TMS320C6201芯片,并詳細討論G.728算法在TMS320C6201上的實(shí)時(shí)實(shí)現,最后給出結論。

1 G.728語(yǔ)音編解碼原理簡(jiǎn)介

圖1給出了G.728語(yǔ)音編解碼器的原理框圖。

編碼器中五個(gè)連續語(yǔ)音樣點(diǎn)形成一個(gè)5維語(yǔ)音矢量。激勵碼本中共有1024個(gè)5維的碼矢量,對于每個(gè)輸入語(yǔ)音矢量,編碼器利用合成分析法從碼本中搜索出最佳碼矢,然后將其標號選出,LP系數和增益均由后向自適應提取和更新。

解碼操作也是逐個(gè)矢量地進(jìn)行。根據接收到的碼本標號,從激勵碼本中找到相應的激勵矢量,經(jīng)過(guò)增益調整后得到激勵信號,將其輸入綜合濾波器合成語(yǔ)音信號,再經(jīng)自適應后濾波處理,以增強語(yǔ)音的主觀(guān)感覺(jué)質(zhì)量。

由于編碼器只緩沖5個(gè)樣點(diǎn)(一個(gè)語(yǔ)音矢量),在8kHz的采樣率下,算法延遲只有0.625ms,加上處理延遲和傳輸延遲,故總的單向編碼延遲小于2ms。采用后向自適應技術(shù),預測器參數在解碼端通過(guò)LP分析恢復,不再作為傳輸內容,編解碼器間僅需傳送最佳碼矢的索引值,故碼率為10bit/0.625ms=16kbit/s。

2 TMS320C6201定點(diǎn)芯片簡(jiǎn)介

TMS320C6201是美國德州儀器公司(TI)最新推出的含多處理單元的C6X數字信號處理芯片中具有代表性的定點(diǎn)芯片。VLIW結構提供的高輸出量、高效開(kāi)發(fā)工具保證的易用性、以及可接受的價(jià)格,使得TMS320C6201成為高速運算的理想選擇。以下從硬件結構和軟件資源兩方面,簡(jiǎn)要介紹TMS320C6201芯片。

2.1 C6201的硬件結構

2.1.1 CPU

采用了VelociTI的VLIW結構,因而在每個(gè)時(shí)鐘周期內最多可并行執行八條32位寬(一個(gè)字長(cháng))的指令,在200MHz的主頻下可以得到1600MIPS的高處理速度。CPU中包括了兩套對稱(chēng)的運算單元(L,S,M,D)和相應的兩套寄存器組,每組有16個(gè)32位寬的寄存器。

2.1.2 存儲空間

C6201的地址總線(xiàn)為32位,尋址范圍達到4GB。存儲空間可分為四部分:片內程序空間、片內數據空間、外部存儲空間和內部外圍設備空間,可通過(guò)對五個(gè)BOOTMODE引腳的靈活設置設定各空間的地址范圍。片內數據空間分成四個(gè)8K×16的交織塊,使得CPU可同時(shí)訪(fǎng)問(wèn)數據RAM的兩個(gè)塊而不會(huì )發(fā)生沖突。片內程序空間可設為Cache ,存儲經(jīng)常使用的代碼,減少片外訪(fǎng)問(wèn)次數,從而提高程序運行速度。

2.1.3 外設

C6201的外圍設備包括DMA控制器、主機接口(HPI)、中斷選擇等。兩個(gè)多通道緩存串行口(McBSP,除多通道、雙緩存外,還支持多種數據格式、硬件A/μ率壓擴、位時(shí)鐘和幀時(shí)鐘的靈活編程。

2.2 C6201的軟件資源

2.2.1 豐富的指令

C6201的指令集共有五十余條指令,大部分是單周期的,可完成數據傳輸、算術(shù)邏輯運算和程序控制等功能。指令支持8/16/32位數據存取,給不同結構的數據操作帶來(lái)方便。由于多處理單元的采用,在無(wú)資源沖突下,C6201最多可并行執行8條基本指令。

2.2.2 流水線(xiàn)操作

流水線(xiàn)操作和超長(cháng)指令字是C6201的高性能特點(diǎn)。其指令執行可分為四個(gè)步驟:取指(Fetch)、指令拆裝(Dispatch)、譯碼(Decode)、執行(Execute)。流水線(xiàn)操作即指以上四個(gè)步驟的并行操作。由于引入了多單元結構和超長(cháng)指令字,所以和常見(jiàn)的數字處理芯片相比,多了一個(gè)指令拆裝的過(guò)程。

2.2.3 靈活的尋址方式

C6201支持多種尋址方式,如寄存器尋址、直接尋址、短立即數尋址、長(cháng)立即數尋址和相對尋址。此外,它還提供循環(huán)尋址方式,適用于相關(guān)和卷積運算中的存儲器尋址。

3 G.728在TMS320C6201上的實(shí)時(shí)實(shí)現

3.1 硬件結構

由上面介紹的TMS320C6201的結構特點(diǎn)可見(jiàn),以C6201為核心器件,輔以相應的輸入輸出電路,可完成對單路語(yǔ)音信號的實(shí)時(shí)編解碼工作,同時(shí)具備多路(如T1/E1一次群)語(yǔ)音信號的輸入輸出接口。

本文應用了TI公司的TMS320C6201EVM板。板上配有單片TMS320C6201和與串口McBSP0連接的16位A/D芯片CS4231。EVM板通過(guò)ISA總線(xiàn)與PC機相連,啟動(dòng)時(shí)由PC機將程序裝載入C6201的片內存儲空間,在C6201全速運行時(shí),PC機可以查詢(xún)其運行狀態(tài),讀取壓縮后的G.728碼流,或送入待解碼的G.728碼流。串口0接CS4231,用于接收和發(fā)送模擬信號;串口1用于接收和發(fā)送已壓縮的G.728碼流,因此系統可仿真實(shí)現單路G.728語(yǔ)音編解碼。通過(guò)進(jìn)一步對算法復雜度的分析,可判斷多路G.728編解碼的實(shí)現能力。

3.2 軟件開(kāi)發(fā)

編解碼軟件采用定點(diǎn)算法,用標準ANSIC語(yǔ)言和TMS320C6201匯編語(yǔ)言混合編制完成。軟件包括主處理程序和中斷服務(wù)程序,流程圖如圖2所示。

在編程中,需注意以下幾點(diǎn):

(1)雙緩沖區的運用

為實(shí)時(shí)處理輸入語(yǔ)音和合成語(yǔ)音,避免數據覆蓋,必須設置兩個(gè)雙緩沖區。對編碼過(guò)程而言,當串口將語(yǔ)音信號寫(xiě)入輸入緩沖區A時(shí),編碼器處理輸入緩沖區B中已存儲的5個(gè)語(yǔ)音樣點(diǎn);同理,對解碼過(guò)程,當串口送出輸出緩沖區A’中合成語(yǔ)音時(shí),解碼器的輸出結果寫(xiě)入緩沖區B’。在中斷程序中,計數判斷何時(shí)切換相應緩沖區。

(2)數據精度的處理

C6201是定點(diǎn)DSP芯片,為確保運算精度和防止數據溢出,在實(shí)現時(shí)主要采用了兩種方法:一是對某些精度要求較高的運算,將計算的中間變量采用32位來(lái)表示;二是對于幅度范圍變化比較大的變量或數組,如激勵增益、50階杜賓算法的自相關(guān)數組等,采用標量浮點(diǎn)或塊浮點(diǎn)表示,用一個(gè)字存儲使該數或數組歸一化所需的左移位數(NLS),其余字存儲歸一化后的尾數。

(3)存儲空間的分配

C6201 1M位的片內存儲區包括64Kbyte程序空間和64Kbyte數據空間,足夠單路G.728編解碼算法的使用。但若應用于多路語(yǔ)音處理,則需謹慎分配存儲空間。由于編解碼程序、常數表格等均可公用,多路應用主要考慮數據空間的使用。對臨時(shí)變量、數組等采用公共域(UNION)分時(shí)存儲技術(shù),能有效提高存儲空間的利用率,確保全部數據都在片內處理。

(4)計算量的均衡

C6201的高速運算能力,使實(shí)現G.728編解碼算法不再需要考慮運算量的均衡。但若考慮到與其它實(shí)時(shí)性要求高的控制處理模塊協(xié)調工作,則仍需按標準中介紹的方法均衡運算量。

3.3 軟件優(yōu)化

TMS320C6201的代碼開(kāi)發(fā)流程與傳統DSP截然不同,它是一個(gè)不斷調整C代碼與線(xiàn)性匯編代碼比例的過(guò)程,力求在性能與開(kāi)發(fā)周期上尋得最佳平衡點(diǎn)。代碼開(kāi)發(fā)有三步:

第一步,在通用的C平臺上開(kāi)發(fā)ANSIC代碼,調試通過(guò)后不做任何變化地移植到C6201開(kāi)發(fā)平臺上,由C編譯器完成所有的優(yōu)化。利用測試工具判斷代碼性能是否達到要求,從而決定是否需要后續的優(yōu)化步驟。這一階段,開(kāi)發(fā)者不需要對DSP有所了解,開(kāi)發(fā)容易,但C編譯器優(yōu)化后的代碼并行性差,未能充分利用C6201獨特的硬件結構和軟件資源,運行效率低。

第二步,優(yōu)化C代碼。在此階段,開(kāi)發(fā)者應該根據C6201的特點(diǎn),如充分利用數據寬度、使用內在函數等,對C代碼加以改進(jìn)。這一階段要求開(kāi)發(fā)者了解C6201DSP并掌握常用的技巧。經(jīng)過(guò)此步優(yōu)化后,代碼的效率將大幅度提高。

第三步,編寫(xiě)線(xiàn)性匯編代碼。當上一步的優(yōu)化仍不能滿(mǎn)足要求時(shí),就必須把那些對效率影響重大的模塊抽取出來(lái),改由線(xiàn)性匯編語(yǔ)言實(shí)現。在這一階段,編程者一定要對C6201DSP有深入的了解并具備一定的編程經(jīng)驗,才能較好地解決諸如資源分配、消除數據的關(guān)聯(lián)性等關(guān)鍵問(wèn)題。此步優(yōu)化難度較大,但運用于核心模塊,能顯著(zhù)提高代碼的并行性。

在TMS320C6201優(yōu)化G.728代碼過(guò)程中,主要應用了以下技巧:

(1)資源分配的技巧

C6201的8個(gè)功能單元能并行處理,因此在一個(gè)算法中用得最多的那個(gè)運算單元會(huì )構成瓶頸。最常發(fā)生的是內存訪(fǎng)問(wèn)瓶頸,循環(huán)展開(kāi)是有效的解決方法。充分利用數據寬度,將半字(16bit)訪(fǎng)問(wèn)改用字(32bit)訪(fǎng)問(wèn)就是簡(jiǎn)單而又有效的循環(huán)展開(kāi)技術(shù)。

循環(huán)展開(kāi)是提高資源利用率的主要方法,但它所引起的代碼空間膨脹也是驚人的。在編程時(shí),必須在程序空間和程序速度這一對矛盾中作出合適的折衷。

(2) 數據關(guān)聯(lián)性簡(jiǎn)化的技巧

數據關(guān)聯(lián)性是并行編程中的最大障礙,有兩種典型情況:

① 存在循環(huán)反饋路徑

此種路徑常見(jiàn)于遞歸算法中。當下一次的循環(huán)中必須讀取上一次循環(huán)中產(chǎn)生的數據,就形成了一條循環(huán)反饋路徑。由于反饋路徑不可能消除,唯一的方法是盡量縮短它,減少不可并行的操作。

② 生存期過(guò)長(cháng)

當變量生存期過(guò)長(cháng)時(shí),軟件流水化會(huì )導致誤操作。有兩種解決方法:一是循環(huán)展開(kāi),因為循環(huán)展開(kāi)會(huì )增加循環(huán)核心周期數;二是用MV指令增加一個(gè)中間變量,使原變量的生存期由兩個(gè)變量共同承擔。

(3) 解決存儲空間沖突的技巧

此沖突是引起C6201執行速度急劇下降的主要原因,但在編程時(shí)卻很容易被忽略。前面介紹的C6201的存儲區結構,64Kbyte的片內數據空間分成四塊,每一塊在每個(gè)周期只能被訪(fǎng)問(wèn)一次,否則就會(huì )產(chǎn)生存儲空間沖突。執行時(shí),流水線(xiàn)會(huì )自動(dòng)暫停一個(gè)周期。

在調試、優(yōu)化程序的過(guò)程中,隨時(shí)觀(guān)察有無(wú)流水線(xiàn)沖突,通過(guò)調整存儲空間分配,可基本解決這一問(wèn)題。

3.4 實(shí)驗結果

表1給出了G.728編解碼算法實(shí)時(shí)實(shí)現時(shí)所需的計算量和內存占用狀況。在200MHz主頻下,TMS320C6201芯片處理能力為200MCPS(Million Cycle per Second,在最充分發(fā)揮并行潛力時(shí),可達到1600MCPS(200×8=1600)。由表中可見(jiàn),G.728算法實(shí)現編碼需24.4MCPS,解碼需14.3MCPS,程序空間和數據空間分別占用55.8Kbyte和11.4Kbyte,故單片C6201可實(shí)現四路G.728語(yǔ)音編解碼。

表1 G.728編解碼復雜度分析

編碼復雜度解碼復雜度程序空間數據空間
24.4MCPS14.3MCPS55.8Kbyte11.4Kbyte

對編解碼器還進(jìn)行了實(shí)時(shí)處理語(yǔ)音性能的實(shí)驗。以男生、女生、音樂(lè )等多種音源輸入的實(shí)驗表明,系統具有良好的適應性。非正式試聽(tīng)測試,恢復語(yǔ)音保留了較好的講話(huà)人特征,具有較高的自然度和可懂度。

ITU-T G.728標準在較低碼率下實(shí)現了低延時(shí)、高質(zhì)量的語(yǔ)音編解碼,在公眾通信網(wǎng)中有著(zhù)廣泛的應用。本文在新型TMS320C6201定點(diǎn)DSP芯片上設計了基于G.728的實(shí)時(shí)語(yǔ)音編解碼系統。由于充分發(fā)揮了C6201強大的運算能力和系統接口能力,系統構造簡(jiǎn)單,運行效率高,單片C6201至少能實(shí)現四路G.728語(yǔ)音編解碼。



評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>