IP電話中的低速率語音編解碼器的實現
發布時間:2007/8/29 0:00:00 訪問次數:926
摘要:G.729.A在TMS320C6201DSP上的實現方法及提高G.729.A編碼器的運行速度的優化方法和編程技巧。并介紹了該編碼器的測試結果。
關鍵詞:ITU-T G.729.A IP電話 編碼器
最近幾年,IP電話技術突飛猛進,已從當初PC到PC的機連接方式發展到IP電話網關方式,通過IP電話網關可以將PBX與因特網連接起來,從而實現普通話機通過因特網進行通信。因此,IP電話網關是近年來計算機和通信領域中研究的一個熱點。IP電話網關的一個最主要性能指標是它的處理密度(即能同時算是的話路數)。而IP電話網關的處理密度主要取決于它所使用的語音編解碼器處理一幀數據的延遲大小。目前,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)。編碼器對每一幀語音信號進行分析,抽取出其中的CPLD模型的參數(線性預測濾器參數),自適應和固定碼本索引和增益),對這些參數進行編碼和傳送。其編碼過程如圖1所示。
在預處理階段,輸入信號經高通濾波并乘以比例因子,然后對每一幀預處理之后的信號進行一次線性預測分析,計算出線性預測濾波器系數,其中,線性預測濾波器系數定義為:。這些系數被轉化成線譜對(LSP,Line Spectrum Pairs)并用可預測二階矢量量化法量化成18位。使用合成分析搜索過程選定激勵信號,使得原始信號和重構信號之間的誤差在感覺加權失真測量中最小。
對每個子幀(5毫秒,包括40個樣本)求出其激勵參數(固定和自適應碼本參數)。本幀的量化和未量化的線性插值系數。每一幀根據感覺加權語音信號估計出開環基音延遲。多面手對每一子幀進行以下操作:將線性預測殘差通過加權合成濾波器的沖擊響應h(n),使用目標信號x(n)和沖擊響應h(n)在開環基音延迂回通過周圍搜索,并進行閉環基音分析(得出自適應碼本延遲和增益)。第一個子幀的基音延遲編碼為8位,第二個子幀采用差分方法編碼為5位。通過減去(濾波后的)自適應碼本貢獻來更新目標信號x(n),新目標x'(n)在固定碼本搜索中使用以找到最優激勵。固定碼本激勵使用一個17位的代數碼本。自
摘要:G.729.A在TMS320C6201DSP上的實現方法及提高G.729.A編碼器的運行速度的優化方法和編程技巧。并介紹了該編碼器的測試結果。
關鍵詞:ITU-T G.729.A IP電話 編碼器
最近幾年,IP電話技術突飛猛進,已從當初PC到PC的機連接方式發展到IP電話網關方式,通過IP電話網關可以將PBX與因特網連接起來,從而實現普通話機通過因特網進行通信。因此,IP電話網關是近年來計算機和通信領域中研究的一個熱點。IP電話網關的一個最主要性能指標是它的處理密度(即能同時算是的話路數)。而IP電話網關的處理密度主要取決于它所使用的語音編解碼器處理一幀數據的延遲大小。目前,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)。編碼器對每一幀語音信號進行分析,抽取出其中的CPLD模型的參數(線性預測濾器參數),自適應和固定碼本索引和增益),對這些參數進行編碼和傳送。其編碼過程如圖1所示。
在預處理階段,輸入信號經高通濾波并乘以比例因子,然后對每一幀預處理之后的信號進行一次線性預測分析,計算出線性預測濾波器系數,其中,線性預測濾波器系數定義為:。這些系數被轉化成線譜對(LSP,Line Spectrum Pairs)并用可預測二階矢量量化法量化成18位。使用合成分析搜索過程選定激勵信號,使得原始信號和重構信號之間的誤差在感覺加權失真測量中最小。
對每個子幀(5毫秒,包括40個樣本)求出其激勵參數(固定和自適應碼本參數)。本幀的量化和未量化的線性插值系數。每一幀根據感覺加權語音信號估計出開環基音延遲。多面手對每一子幀進行以下操作:將線性預測殘差通過加權合成濾波器的沖擊響應h(n),使用目標信號x(n)和沖擊響應h(n)在開環基音延迂回通過周圍搜索,并進行閉環基音分析(得出自適應碼本延遲和增益)。第一個子幀的基音延遲編碼為8位,第二個子幀采用差分方法編碼為5位。通過減去(濾波后的)自適應碼本貢獻來更新目標信號x(n),新目標x'(n)在固定碼本搜索中使用以找到最優激勵。固定碼本激勵使用一個17位的代數碼本。自