《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 用TMS320C6201實現多路ITU-T G.728語音編碼標準

用TMS320C6201實現多路ITU-T G.728語音編碼標準

2009-07-27
作者:楊曉萍 湯家駿 陳 健

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


  隨著數字語音壓縮技術的應用領域越來越廣,將高質量語音編碼算法實用化的需求也越來越迫切。16kbit/s LD-CELP ITU-T G.728語音編碼標準,采用后向自適應技術,單向編碼延遲小于2ms,主觀評價MOS分4.0,達到進入公眾通信網的需求,因而廣泛適用于數字衛星系統、數字線路倍增設備(DCME)、綜合業務數字網(ISDN)、公共交換電話網(PSTN)、話音存儲轉發系統等。但其算法復雜度高,運算量龐大,定點實現時,一路全雙工約需30~40MIPS。一般通用的數字信號處理器(DSP),只能做到一片DSP實現一路G.728語音編解碼。
  TMS320C6201是TI公司最新推出的C6X數字信號處理芯片系列中具代表性的定點處理芯片。由于內部含有具備超長指令字(VLIW)處理能力的CPU和8個功能單元,故它可在一個時鐘周期內執行多達8條指令。此外,1M位的片內RAM、可擴展的外部RAM接口和靈活的外圍設備使其成為實現具有高速運算的復雜處理系統的首選芯片。
  本文研究了在單片TMS320C6201芯片上實時實現ITU-T G.728語音編碼標準,實驗結果表明,單片TMS320C6201能實現至少4路語音編解碼。這對于擴展基于G.728標準的單路處理系統的功能或降低基于G.728標準的多路處理系統的系統復雜度都具有現實的意義。
  文中將扼要介紹G.728編解碼算法和TMS320C6201芯片,并詳細討論G.728算法在TMS320C6201上的實時實現,最后給出結論。
1 G.728語音編解碼原理簡介
  圖1給出了G.728語音編解碼器的原理框圖。


  編碼器中五個連續語音樣點形成一個5維語音矢量。激勵碼本中共有1024個5維的碼矢量,對于每個輸入語音矢量,編碼器利用合成分析法從碼本中搜索出最佳碼矢,然后將其標號選出,LP系數和增益均由后向自適應提取和更新。
  解碼操作也是逐個矢量地進行。根據接收到的碼本標號,從激勵碼本中找到相應的激勵矢量,經過增益調整后得到激勵信號,將其輸入綜合濾波器合成語音信號,再經自適應后濾波處理,以增強語音的主觀感覺質量。
  由于編碼器只緩沖5個樣點(一個語音矢量),在8kHz的采樣率下,算法延遲只有0.625ms,加上處理延遲和傳輸延遲,故總的單向編碼延遲小于2ms。采用后向自適應技術,預測器參數在解碼端通過LP分析恢復,不再作為傳輸內容,編解碼器間僅需傳送最佳碼矢的索引值,故碼率為10bit/0.625ms=16kbit/s。
2 TMS320C6201定點數字信號處理芯片簡介
  TMS320C6201是美國德州儀器公司(TI)最新推出的含多處理單元的C6X數字信號處理芯片中具有代表性的定點芯片。VLIW結構提供的高輸出量、高效開發工具保證的易用性、以及可接受的價格,使得TMS320C6201成為高速運算的理想選擇。以下從硬件結構和軟件資源兩方面,簡要介紹TMS320C6201芯片。
2.1 C6201的硬件結構
2.1.1 CPU

  采用了VelociTI的VLIW結構,因而在每個時鐘周期內最多可并行執行八條32位寬(一個字長)的指令,在200MHz的主頻下可以得到1600MIPS的高處理速度。CPU中包括了兩套對稱的運算單元(L,S,M,D)和相應的兩套寄存器組,每組有16個32位寬的寄存器。
2.1.2 存儲空間
  C6201的地址總線為32位,尋址范圍達到4GB。存儲空間可分為四部分:片內程序空間、片內數據空間、外部存儲空間和內部外圍設備空間,可通過對五個BOOTMODE引腳的靈活設置設定各空間的地址范圍。片內數據空間分成四個8K×16的交織塊,使得CPU可同時訪問數據RAM的兩個塊而不會發生沖突。片內程序空間可設為Cache ,存儲經常使用的代碼,減少片外訪問次數,從而提高程序運行速度。
2.1.3 外設
  C6201的外圍設備包括DMA控制器、主機接口(HPI)、中斷選擇等。兩個多通道緩存串行口(McBSP),除多通道、雙緩存外,還支持多種數據格式、硬件A/μ率壓擴、位時鐘和幀時鐘的靈活編程。
2.2 C6201的軟件資源
2.2.1 豐富的指令

  C6201的指令集共有五十余條指令,大部分是單周期的,可完成數據傳輸、算術邏輯運算和程序控制等功能。指令支持8/16/32位數據存取,給不同結構的數據操作帶來方便。由于多處理單元的采用,在無資源沖突下,C6201最多可并行執行8條基本指令。
2.2.2 流水線操作
  流水線操作和超長指令字是C6201的高性能特點。其指令執行可分為四個步驟:取指(Fetch)、指令拆裝(Dispatch)、譯碼(Decode)、執行(Execute)。流水線操作即指以上四個步驟的并行操作。由于引入了多單元結構和超長指令字,所以和常見的數字處理芯片相比,多了一個指令拆裝的過程。
2.2.3 靈活的尋址方式
  C6201支持多種尋址方式,如寄存器尋址、直接尋址、短立即數尋址、長立即數尋址和相對尋址。此外,它還提供循環尋址方式,適用于相關和卷積運算中的存儲器尋址。
3 G.728在TMS320C6201上的實時實現
3.1 硬件結構

  由上面介紹的TMS320C6201的結構特點可見,以C6201為核心器件,輔以相應的輸入輸出電路,可完成對單路語音信號的實時編解碼工作,同時具備多路(如T1/E1一次群)語音信號的輸入輸出接口。
  本文應用了TI公司的TMS320C6201EVM板。板上配有單片TMS320C6201和與串口McBSP0連接的16位A/D芯片CS4231。EVM板通過ISA總線與PC機相連,啟動時由PC機將程序裝載入C6201的片內存儲空間,在C6201全速運行時,PC機可以查詢其運行狀態,讀取壓縮后的G.728碼流,或送入待解碼的G.728碼流。串口0接CS4231,用于接收和發送模擬信號;串口1用于接收和發送已壓縮的G.728碼流,因此系統可仿真實現單路G.728語音編解碼。通過進一步對算法復雜度的分析,可判斷多路G.728編解碼的實現能力。
3.2 軟件開發
  編解碼軟件采用定點算法,用標準ANSIC語言和TMS320C6201匯編語言混合編制完成。軟件包括主處理程序和中斷服務程序,流程圖如圖2所示。


  在編程中,需注意以下幾點:
  (1)雙緩沖區的運用
  為實時處理輸入語音和合成語音,避免數據覆蓋,必須設置兩個雙緩沖區。對編碼過程而言,當串口將語音信號寫入輸入緩沖區A時,編碼器處理輸入緩沖區B中已存儲的5個語音樣點;同理,對解碼過程,當串口送出輸出緩沖區A’中合成語音時,解碼器的輸出結果寫入緩沖區B’。在中斷程序中,計數判斷何時切換相應緩沖區。
  (2)數據精度的處理
  C6201是定點DSP芯片,為確保運算精度和防止數據溢出,在實現時主要采用了兩種方法:一是對某些精度要求較高的運算,將計算的中間變量采用32位來表示;二是對于幅度范圍變化比較大的變量或數組,如激勵增益、50階杜賓算法的自相關數組等,采用標量浮點或塊浮點表示,用一個字存儲使該數或數組歸一化所需的左移位數(NLS),其余字存儲歸一化后的尾數。
  (3)存儲空間的分配
  C6201 1M位的片內存儲區包括64Kbyte程序空間和64Kbyte數據空間,足夠單路G.728編解碼算法的使用。但若應用于多路語音處理,則需謹慎分配存儲空間。由于編解碼程序、常數表格等均可公用,多路應用主要考慮數據空間的使用。對臨時變量、數組等采用公共域(UNION)分時存儲技術,能有效提高存儲空間的利用率,確保全部數據都在片內處理。
  (4)計算量的均衡
  C6201的高速運算能力,使實現G.728編解碼算法不再需要考慮運算量的均衡。但若考慮到與其它實時性要求高的控制處理模塊協調工作,則仍需按標準中介紹的方法均衡運算量。
3.3 軟件優化
  TMS320C6201的代碼開發流程與傳統DSP截然不同,它是一個不斷調整C代碼與線性匯編代碼比例的過程,力求在性能與開發周期上尋得最佳平衡點。代碼開發有三步:
  第一步,在通用的C平臺上開發ANSIC代碼,調試通過后不做任何變化地移植到C6201開發平臺上,由C編譯器完成所有的優化。利用測試工具判斷代碼性能是否達到要求,從而決定是否需要后續的優化步驟。這一階段,開發者不需要對DSP有所了解,開發容易,但C編譯器優化后的代碼并行性差,未能充分利用C6201獨特的硬件結構和軟件資源,運行效率低。
  第二步,優化C代碼。在此階段,開發者應該根據C6201的特點,如充分利用數據寬度、使用內在函數等,對C代碼加以改進。這一階段要求開發者了解C6201DSP并掌握常用的技巧。經過此步優化后,代碼的效率將大幅度提高。
  第三步,編寫線性匯編代碼。當上一步的優化仍不能滿足要求時,就必須把那些對效率影響重大的模塊抽取出來,改由線性匯編語言實現。在這一階段,編程者一定要對C6201DSP有深入的了解并具備一定的編程經驗,才能較好地解決諸如資源分配、消除數據的關聯性等關鍵問題。此步優化難度較大,但運用于核心模塊,能顯著提高代碼的并行性。
  在TMS320C6201優化G.728代碼過程中,主要應用了以下技巧:
  (1)資源分配的技巧
  C6201的8個功能單元能并行處理,因此在一個算法中用得最多的那個運算單元會構成瓶頸。最常發生的是內存訪問瓶頸,循環展開是有效的解決方法。充分利用數據寬度,將半字(16bit)訪問改用字(32bit)訪問就是簡單而又有效的循環展開技術。
  循環展開是提高資源利用率的主要方法,但它所引起的代碼空間膨脹也是驚人的。在編程時,必須在程序空間和程序速度這一對矛盾中作出合適的折衷。
  (2) 數據關聯性簡化的技巧
  數據關聯性是并行編程中的最大障礙,有兩種典型情況:
  ① 存在循環反饋路徑
  此種路徑常見于遞歸算法中。當下一次的循環中必須讀取上一次循環中產生的數據,就形成了一條循環反饋路徑。由于反饋路徑不可能消除,唯一的方法是盡量縮短它,減少不可并行的操作。
  ② 生存期過長
  當變量生存期過長時,軟件流水化會導致誤操作。有兩種解決方法:一是循環展開,因為循環展開會增加循環核心周期數;二是用MV指令增加一個中間變量,使原變量的生存期由兩個變量共同承擔。
  (3) 解決存儲空間沖突的技巧
  此沖突是引起C6201執行速度急劇下降的主要原因,但在編程時卻很容易被忽略。前面介紹的C6201的存儲區結構,64Kbyte的片內數據空間分成四塊,每一塊在每個周期只能被訪問一次,否則就會產生存儲空間沖突。執行時,流水線會自動暫停一個周期。
  在調試、優化程序的過程中,隨時觀察有無流水線沖突,通過調整存儲空間分配,可基本解決這一問題。
3.4 實驗結果
  表1給出了G.728編解碼算法實時實現時所需的計算量和內存占用狀況。在200MHz主頻下,TMS320C6201芯片處理能力為200MCPS(Million Cycle per Second),在最充分發揮并行潛力時,可達到1600MCPS(200×8=1600)。由表中可見,G.728算法實現編碼需24.4MCPS,解碼需14.3MCPS,程序空間和數據空間分別占用55.8Kbyte和11.4Kbyte,故單片C6201可實現四路G.728語音編解碼。


  對編解碼器還進行了實時處理語音性能的實驗。以男生、女生、音樂等多種音源輸入的實驗表明,系統具有良好的適應性。非正式試聽測試,恢復語音保留了較好的講話人特征,具有較高的自然度和可懂度。
  ITU-T G.728標準在較低碼率下實現了低延時、高質量的語音編解碼,在公眾通信網中有著廣泛的應用。本文在新型TMS320C6201定點DSP芯片上設計了基于G.728的實時語音編解碼系統。由于充分發揮了C6201強大的運算能力和系統接口能力,系統構造簡單,運行效率高,單片C6201至少能實現四路G.728語音編解碼。
參考文獻
1 Coding of Speech at 16 kbit/s Using Low-Delay Code Excited Linear Prediction. CCITT Rec.G.728.1992
2 胡劍凌,陳 健.TMS320C54X實現ITU G.728語音編碼標準.數據采集與處理,1999(3):343~346
3 TMS320C6000 CPU and Instruction Set Reference Guide.Texas instrument,1999
4 TMS320C6000 Optimizing C Compiler.Texas Instrument,1999
5 TMS320C6000 Programmer's Guide.Texas Instrument,1999
6 TMS320C6201/6701 Evaluation Module User's Guide.Texas Instrument,1998

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
欧美亚州一区二区三区 | 欧美日韩直播| 毛片一区二区三区| 久久久夜夜夜| 久久激情网站| 欧美亚洲午夜视频在线观看| 亚洲一区二区三区乱码aⅴ| 亚洲精品国产品国语在线app | 美国成人直播| 久久婷婷麻豆| 99国产精品久久久| 亚洲精品视频在线看| 最新亚洲一区| 亚洲精品日韩欧美| 亚洲精品国产精品国产自| 亚洲国产婷婷香蕉久久久久久| 久久精品五月婷婷| 亚洲国产婷婷| 亚洲精品一区二区三区av| 91久久久亚洲精品| 亚洲精品影院| 一区二区三区四区五区在线| 亚洲作爱视频| 中文有码久久| 亚洲女同精品视频| 欧美一区二区高清| 午夜宅男久久久| 久久国产一区二区三区| 久久精品女人天堂| 麻豆精品精华液| 欧美精品久久99久久在免费线| 欧美精品久久99| 国产精品第13页| 国产午夜精品全部视频在线播放| 黄色成人在线免费| 亚洲国产精品电影在线观看| 日韩视频免费在线| 亚洲在线日韩| 亚洲国产精品va在看黑人| 亚洲美女av在线播放| 亚洲小视频在线观看| 久久aⅴ国产紧身牛仔裤| 久久综合影音| 欧美日韩精品一区二区在线播放| 国产精品久久久久久妇女6080| 国产欧美不卡| 亚洲第一福利在线观看| 亚洲精品午夜| 午夜精品在线看| 亚洲人成网站色ww在线| 中文日韩在线视频| 久久精品中文字幕一区| 美女被久久久| 欧美日韩综合一区| 国产久一道中文一区| 一区二区三区亚洲| 日韩一区二区福利| 亚洲欧美精品suv| 亚洲国产精品国自产拍av秋霞| 一区二区三区高清在线| 久久精品官网| 欧美激情一区二区三区在线视频| 国产精品二区二区三区| 激情婷婷久久| 一区二区三区视频免费在线观看| 欧美一区二区久久久| 99精品欧美一区二区三区综合在线| 香蕉视频成人在线观看| 欧美福利电影网| 国产欧美一区二区三区另类精品| 亚洲黄色毛片| 午夜久久福利| 一区二区三区精品在线| 久久久精品国产一区二区三区| 欧美日韩国产综合网| 狠狠色综合网站久久久久久久| 日韩视频专区| 亚洲国产成人在线视频| 亚洲欧美日韩另类| 欧美国产第二页| 国产一区二区三区黄视频| 一区二区三区不卡视频在线观看| 亚洲大胆女人| 欧美一二区视频| 欧美精品九九| 在线成人av| 性色av一区二区三区在线观看| 一区二区久久久久久| 久久婷婷综合激情| 国产精品久久久久久久久久免费| 亚洲激情在线观看视频免费| 久久爱www.| 欧美一区二区三区日韩| 欧美日韩免费一区二区三区| 在线不卡中文字幕| 欧美一区不卡| 亚洲欧美一区二区激情| 欧美日韩国产成人高清视频| 国产亚洲欧美aaaa| 亚洲中无吗在线| 亚洲国语精品自产拍在线观看| 久久大逼视频| 国产精品日韩精品欧美在线| 99精品欧美| 9色精品在线| 欧美刺激性大交免费视频 | 亚洲国产精品一区| 亚洲电影中文字幕| 欧美一区二区三区视频在线观看| 欧美日韩天堂| 日韩视频免费| 一卡二卡3卡四卡高清精品视频 | 欧美激情精品久久久久久变态| 含羞草久久爱69一区| 欧美一区二区精美| 久久久国产精品一区| 国产欧美日韩在线观看| 亚洲欧美日产图| 欧美在线观看一区| 国产午夜精品麻豆| 久久gogo国模裸体人体| 久久精品国产免费观看| 国产麻豆91精品| 午夜精品理论片| 久久精品国产77777蜜臀| 国产一区二区久久精品| 欧美一区二区三区久久精品| 久久国产精品亚洲77777| 国产亚洲成精品久久| 欧美一级视频精品观看| 久久精品欧美日韩精品| 国外成人性视频| 久久精品电影| 看欧美日韩国产| 亚洲第一区在线| 夜夜嗨av一区二区三区四季av| 欧美欧美全黄| 亚洲视频导航| 久久精品91久久久久久再现| 激情久久婷婷| 一区二区电影免费观看| 欧美色区777第一页| 亚洲香蕉网站| 欧美一区亚洲| 国内成+人亚洲+欧美+综合在线| 亚洲国产高清一区二区三区| 麻豆freexxxx性91精品| 亚洲欧洲另类| 亚洲一级高清| 欧美黄在线观看| 日韩午夜激情电影| 新狼窝色av性久久久久久| 国产日韩精品一区二区| 久久福利毛片| 欧美激情中文字幕乱码免费| 亚洲最新在线视频| 欧美综合77777色婷婷| 一区二区在线视频| 99视频精品全部免费在线| 国产精品www| 欧美中文在线观看| 欧美激情视频免费观看| 亚洲视频一区二区免费在线观看| 久久精品一区二区国产| 亚洲国产日韩欧美综合久久| 亚洲欧美成人一区二区在线电影| 国产在线观看一区| 亚洲美女毛片| 国产精品亚发布| 亚洲国产裸拍裸体视频在线观看乱了中文| 欧美激情精品久久久久久变态 | 亚洲综合视频在线| 激情视频亚洲| 亚洲午夜电影网| 激情综合自拍| 亚洲色图综合久久| 国产在线不卡| 在线视频亚洲一区| 国内精品一区二区三区| 这里只有精品在线播放| 国产最新精品精品你懂的| 亚洲视频一区在线| 国色天香一区二区| 亚洲一区二区免费| 一区二区三区在线观看欧美 | 亚洲在线日韩| 亚洲动漫精品| 欧美一级久久久| 亚洲精品国久久99热| 久久九九热re6这里有精品| 99在线精品视频| 美国成人直播| 午夜视频在线观看一区二区三区 | 中文一区二区在线观看| 狠狠色狠狠色综合日日小说| 亚洲性视频网址| 亚洲国产成人高清精品| 久久久精品国产免大香伊 | 国产精品女主播一区二区三区| 91久久精品国产91久久|