《電子技術應用》
您所在的位置:首頁 > 嵌入式技术 > 业界动态 > IP电话中的低速率语音编解码器的实现

IP电话中的低速率语音编解码器的实现

2009-02-11
作者:朱欲晓1 冉妮莉2 黄永峰3

??? 摘? 要: G.729.A 在TMS320C6201DSP上的實現方法及提高G.729.A編碼器的運行速度的優化方法和編程技巧。并介紹了該編碼器的測試結果。?

??? 關鍵詞:? ITU-T? G.729.A? IP電話? 編碼器

?

??? 最近幾年,IP電話技術突飛猛進,已從當初PC到 PC的機連接方式發展到IP電話網關方式,通過IP電話網關可以將PBX與因特網連接起來,從而實現普通話機通過因特網進行通信。因此,IP電話網關是近年來計算機和通信領域中研究的一個熱點。IP電話網關的一個最主要性能指標是它的處理密度(即能同時處理的話路數)。而IP電話網關的處理密度主要取決于它所使用的語音編解碼器" title="編解碼器" target="_blank">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器" title="編解碼器">編解碼器處理一幀數據的延遲大小。目前,IP電話所遵循的標準是H.323,而H.323標準首選語音編碼器是ITU-T G.729.A。ITU-T G.729.A是用于語音和其它聲音信號的壓縮編解碼算法建議,它是G.729的簡化版本,編碼速率為8Kbps,并且有很高的語音質量。但是,該編碼器的算法復雜,一幀語音的處理延遲較大,在很大程度上影響IP電話網關的處理密度。因此,為了提高IP電話網關的處理密度,本文在實現ITU-T G.729.A語音編解碼器時,采用了目前性能最好的DSP,即TMS320C6201;針對TMS320C6201并行性和流水等特點,深入研究了在TMS320C6201上實現G.729.A的編解碼器的編程技巧;歸納出一系列減少編解碼器處理延遲的優化方法。采用這些優先方法和編程技巧,可以將ITU-T G.729.A的每幀編碼運行時間減少到0.47毫秒(按TMS320C6201工作在200MHz計算),從而可以實現單片TMS320C6201能同時處理20路語音。這一指標已到達了國際上最先進的水平;而且,該編解碼器已成功地運用在筆者開發的IP電話網關中。?

1 G.729.A編解碼器的算法?

1.1 編碼算法?

??? ITU-T G.729.A標準采用一種稱為“共軛結構代數碼本激勵線性預測”(Conjugate Structure Algebraic-Code-Excited Linear-Prediction,CS-ACELP)算法來對語音信號進行編碼。?

??? 在開始編碼之前,先要對輸入的模擬信號進行電話帶寬濾波,然后以8kHz頻率對其進行采樣,再將其轉換為16位線性PCM碼,作為編碼器的輸入。?

??? 編碼器處理語音的單位是幀,1幀為10毫秒語音,包括80個聲音樣本(采樣頻率為8kHz)。編碼器對每一幀語音信號進行分析,抽取出其中的CELP模型的參數(線性預測濾波器參數,自適應和固定碼本索引和增益),對這些參數進行編碼和傳送。其編碼過程如圖1所示。?

?

?

??? 在預處理階段,輸入信號經高通濾波并乘以比例因子,然后對每一幀預處理之后的信號進行一次線性預測分析,計算出線性預測濾波器系數,其中,線性預測濾波器系數定義為:這些系數被轉化成線譜對(LSP,Line Spectrum Pairs)并用可預測二階矢量量化法量化成18位。使用合成分析搜索過程選定激勵信號,使得原始信號和重構信號之間的誤差在感覺加權失真測量中最小。?

??? 對每個子幀(5毫秒,包括40個樣本)求出其激勵參數(固定和自適應碼本參數)。本幀的量化和未量化的線性預測濾波器系數用于第二子幀,第一子幀使用的是線性插值系數。每一幀根據感覺加權語音信號估計出開環基音延遲。然后對每一子幀進行以下操作:將線性預測殘差通過加權合成濾波器W(z)/A(z)得到目標信號x(n),計算出加權合成濾波器的沖擊響應h(n),使用目標信號x(n)和沖擊響應h(n)在開環基音延遲周圍搜索,并進行閉環基音分析(得出自適應碼本延遲和增益)。第一個子幀的基音延遲編碼為8位,第二個子幀采用差分方法編碼為5位。通過減去(濾波后的)自適應碼本貢獻來更新目標信號x(n),新目標x’(n)在固定碼本搜索中使用以找到最優激勵。固定碼本激勵使用一個17位的代數碼本。自適應和固定碼本的貢獻增益被矢量量化為7位(對固定碼本增益使用移動平均預測方法)。最后,得到的激勵信號被用來更新濾波器狀態。所有這些參數最后封裝到80位的壓縮數據幀中。?

1.2 解碼算法?

??? 解碼器算法框圖如圖2所示。?

?

?

??? 首先,從壓縮比特流中取得各參數的索引,再從這些索引中得出一幀語音的編碼器參數,包括LSP系數、2個部分基音延遲、2個固定碼本向量、2套自適應和固定碼本延遲,這些參數被用來生成激勵信號并合成濾波器參數。LSP系數經插值后,形成每個子幀的LP濾波器。然后,對每個子幀進行如下處理:?

??? ·自適應和固定碼本向量乘以各自的增益系數得到激勵信號;?

??? ·激勵信號經過線性預測合成濾波器得到重構的語音;?

??? ·重構后的語音信號再經過一個后處理階段,包括基于長時和短時合成濾波器的自適應濾波器,然后再經過高通濾波器并乘以相應的比例因子。?

2 ITU-T G.729.A編解碼器實現的關鍵技術?

2.1 ITU-T G.729.A編解碼器實現的硬件平臺?

??? ITU-T G.729.A編解碼器實現平臺是筆者開發的一種集成式IP電話網關。這種集成式IP電話網關的設計思想是以PC機為基礎,集成了市場通用板卡,如LSI/C6200 DSP資源卡、Dialogic的語音卡和網卡等,并以這些板卡為硬件平臺,按照相關協議,開發出一套 IP網關軟件。集成式IP電話網關的硬件基本結構如圖3所示。其中G.729.A編解碼器是由LSI/C6200資源卡上的TMS320C6201 DSP來實現。?

?

?

??? TMS320C6201 DSP是美國TEXAS INSTRUMENT公司生產的目前處理速度最快的定點數字信號處理器,TMS320C6201 DSP采用VLIW(Very Long Instruction Word)體系結構,其工作頻率最高可達200MHz,內部有8個功能單元并行執行指令,因此峰值處理能力可達1600MIPS[4]。另外,TMS320C6201 DSP分別提供了64KB的內部程序RAM 和數據RAM,片外存儲器可擴展到4GB,可連接SDRAM、SBSRAM和 Flash Memory。TMS320C6201 DSP還提供了豐富的外圍電路接口,如:Scbus語音總線、MVIP語音總線、HOST接口以及JTAG口等。?

2.2 ITU-T G.729.A軟件模塊的設計?

??? G.729.A編解碼器運行的硬件平臺是TMS320C6201 DSP,支持SPOX。SPOX是一種功能很強的實時操作系統。在SPOX操作系統的調度下,可對多路語音進行適時的語音壓縮和解碼。G.729.A編解碼器軟件主要由調度及命令解釋模塊、G.729.A數據壓縮與解壓縮模塊和接口模塊三部分組成。?

??? (1)調度及命令解釋模塊?

??? 該模塊主要用于解釋HOST發來的各種命令,如發送或接收編解碼數據,查詢編解碼狀態以及啟動、停止編解碼操作等,該模塊不直接與HOST打交道,而是以SPOX提供的中斷服務方式,通過接口功能模塊間接地實現與HOST之間數據交換。同時在SPOX 的支持下,完成對多路語音編解碼的適時調度。?

??? (2)G.729.A數據壓縮與解壓縮模塊?

??? 該模塊是ITU-T G.729.A編解碼器的核心模塊,在很大程度上影響編解碼器的性能。該模塊實現了ITU-T G.729.A全部功能。該部分已單獨形成一個TMS320C6201函數庫,可與其他任何部分連接。?

??? (3)接口模塊?

??? 該模塊主要實現TMS320C6201與HOST以及與語音卡之間的數據交換,因此該模塊分成兩部分。一部分主要負責TMS320C6201 DSP與語音卡之間的數據傳輸,它負責不斷地將語音卡采取的語音數據通過語音總線(如SCbus),采取等時通信方式送入到LSI/PCI6200資源卡RAM中,或者是將編解碼器解碼后的數據經SCbus總線送給語音卡。另一部分主要負責TMS320C6201 DSP與HOST之間的數據交換,一方面要將壓縮后的語音信號由PCI總線送往HOST;另一方面將HOST解包的碼流分類后讀入編解碼器。編解碼器與HOST之間的數據交換采用中斷方式進行同步。?

2.3 ITU-T G.729.A標準在TMS320C6201上實現的關鍵技術?

??? 處理密度是衡量IP電話網關性能好壞的一個重要指標。而一個IP電話網關在硬件平臺確定的情況下,其處理密度主要取決于它所采用的編解碼器的語音編碼處理延遲,即代碼的執行速度。如何提高G.729.A語音編碼的執行速度是G.729.A編解碼器實現的關鍵技術問題之一。為此,歸納出一系列編程技巧和優化方法,較好地解決了這一難題。?

??? (1)G.729.A標準中規定的算法都是基本算法。因此,在實現時,可以用快速算法替換。例如,相關系數的計算,在G.729.A標準中使用一種最基本的計算方法,如果采用快速的傅里葉變換技術或采用分解因子的計算方法,就可以加快計算速度。?

??? (2)算法中有很多FIR和IIR運算,如:共振峰濾波器、聽覺加權濾波器、聯合濾波器等,在設計這些濾波器時,使用較大數組來放濾波器的系數。這樣,每計算一次輸出,不需系數更新移位,從而可以減少內存操作次數,因此可以通過犧牲存儲器空間來提高代碼的執行速度。如:共振峰濾波器是十階濾波器,常規的實現方法是設置一個長度為10元素的一維數組來保存最近的10個共振峰樣本點。濾波器每輸出一個樣本點,該數組就需更新一次。對于一個子幀40個樣本點,就需進行40次更新操作。如設置長度為70元素的一維數組,就可以免去更新操作。可以很大程度地提高代碼的運行速度。?

??? (3)多使用指針,盡量減少變量之間的反復拷貝操作。?

??? (4)用查詢靜態表的方法來代替動態的計算,從而減少計算延遲。例如,在設計cos()函數時,程序在初始化時就生成一個512項的cos()函數表。當需要計算cos()函數值時,可以采用查表方式來代替動態計算。?

??? (5)內存單元的合理分配。TMS320C6201 DSP的片內存儲器有64KB數據存儲器。由于TMS320C6201從片內存儲器讀入一個字比從片外存儲器讀入一個字快14倍,因此在編程時,盡量將經常使用的數據分配在片內存儲器中。?

??? (6)G.729.A在TMS320C6201上定點實現時,數據精度也是一個關鍵問題。在定點信號處理芯片上實現某些浮點算法時,可以采取定點數來表示浮點數,這樣可以加快運行速度,但可能導致運算精度不夠。解決的方法是在精度要求比較高的地方,可以將計算的中間變量用32位表示,甚至用40位表示。

??? (7)充分利用TMS320C6201的編譯器和優化工具來優化C和線性匯編代碼,并合理地選擇優化參數。有關速度的優化參數是:-o3、-op3、-pm、-mt、mi等。并盡量用TMS320C6201的線性匯編或匯編語音來實現G.729.A編解碼器的算法。?

??? (8)充分利用TMS320C6201的特點來編寫代碼。如流水功能,8個功能單元并行操作功能,32位字讀寫功能以及Intrinsics的使用等,例如:對多重循環,如最內層循環次數少而較簡單,可把最內層循環展開,以便外循環做流水線;對一些簡單循環而前后沒有因果關系,合并這些循環也有利于做流水線。?

3 性能測試?

??? 分別用二種測試工具對G.729.A編解碼器的處理延遲作了測試。第一種測試工具是C6X Simulator(TMS320C6201的仿真軟件),測試條件是假設所有代碼裝在TMS320C6201片內的程序存儲器中;因此,稱之為Non cache測試模式。另外一種測試方式是采用TI公司的C6X的EVM卡(評估卡),測試條件是將TMS320C6201片內64KB RAM作為Cache使用;因此稱之為cache模式。二種測試模式的測試結果如表1所示。?

?

?

??? 從表1可以看出,如果TMS320C6201工作在頻率為200MHz,即每Cycles的周期為0.5毫秒,可以算出G.729.A編碼一幀(30毫秒)的延遲時間是0.43~0.46毫秒。因此說,單片TMS320C6201可以同時處理大約20路G.729.A編碼(當前國際最高水平是22路);而且,編解碼的結果都嚴格地通過了G.729.A提供的測試矢量的測試,實際播放音質也很好。?

??? ITU-T G.729.A語音信號壓縮編解碼技術集成了眾多低速率語音編解碼的優點,大大提高了低速率編解碼的語音質量,但算法較復雜。而TMS320C6201 DSP是目前最快的定點數字信號處理器,如果在編寫程序時,能充分利用上述關鍵技術,就可以充分發揮TMS320C6201的功能,大大減少G.729.A編解碼的處理延遲,并能保持良好的語音品質。將該編解碼器應用在該IP電話網關中,在很大程度上提高了IP電話網關處理密度,改善了IP電話網關的性能。因此說,本文實現的G.729.A編解碼器有很大的應用價值。?

參考文獻?

1? 張延平, 林博文.計算機語音集成原理、 技術和應用.北京:人民郵電出版社,1997.10?

2 Richard V.Cox&Peter Kroon,Low Bit-Rate Speech Coders?for Multimedia Communication.IEEE Communication Magazine, December 1996(6):21~27?

3 Gary A.Thom.H.323:The Multimedia Communications Standard for Local Area Networks. IEEE Communications Magazine, December 1996?

4 PCI/C6200 Technical Reference Manual,Version 0.90,Blue Wave System Corp., June 1998, http://www.bws.com

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
主站蜘蛛池模板: 蜜桃av久久久亚洲精品| 国产精品 欧美在线| 国产福利精品在线| 国产精品网红直播| 日韩视频第二页| 国产亚洲精品网站| 久久久久久久久久久99| 欧美精品在线免费| 热久久这里只有精品| 国产精品日韩欧美综合| 午夜精品一区二区三区视频免费看| www高清在线视频日韩欧美| 精品人妻一区二区三区四区在线| 日韩中文字幕在线观看| 久久久久久91| 欧美中文字幕视频| 男女视频一区二区三区| 日韩福利视频| 国产在线精品一区| 91精品国产乱码久久久久久久久| 91|九色|视频| 欧日韩不卡在线视频| 欧美中日韩一区二区三区| 国产精品入口尤物| 99国产在线| 国产精品永久免费视频| 久久99视频精品v| 国产日韩欧美影视| 97精品一区二区视频在线观看 | 久久999免费视频| 久久亚洲国产精品| av久久久久久| 国产精品久久久久久亚洲影视| 91久久精品国产91久久| 国产三级精品网站| 亚洲在线观看视频网站| 国产精品日韩在线观看| 国产一区视频免费观看| 国产日韩精品电影| 国产精品久久久久不卡| 奇米精品一区二区三区|