G.729語音編碼算法研究及基于DSP的實現
2.2 系統軟件設計
本設計中McBSP0口接收數據處理,主要進行話音編碼,并將編碼比特流從HPI接口送出,HPI接口接收數據處理,主要進行話音解碼,并將解碼后的PCM數據從McBSP0口送出。軟件系統為了保證McBSP0和HPI接口接收數據的正常處理,還需實現一些輔助功能模塊包括:系統初始化模塊、支持系統在線配置的模塊以及系統收發數據的同步檢測模塊。系統軟件流程如圖4所示。
2.2.1 編碼過程
G.729編碼器的流程如圖5所示。首先,編碼器會初始化,主要是初始化各緩沖區;然后編碼器對輸入的原始語音信號進行預處理,包括高通濾波和幅度減半。其中,高通濾波的截止頻率為140 Hz,它是一個二階的零極點濾波器,目的是要去除輸入信號中的低頻十擾。對輸入信號進行預處理以后,編碼器開始編碼,這是通過調用匯編函數Coder_ld8a實現的;編碼產生的參數使用函數prm2bits轉化為比特流,送到信道里傳輸。
2.2.2 解碼過程
G.729解碼器流程如圖6所示。與編碼器類似,解碼器首先要進行初始化,特別是初始化緩沖區;接著解碼器從輸入碼流中提取參數;由于碼流在信道的傳輸過程中可能發牛錯誤,所以從碼流中提取得到參數后應該進行奇偶校驗,以確定參數是正確的;通過了奇偶校驗后,解碼器正式開始解碼,這是通過調用匯編函數Decod_ld8a實現的;解碼重建語音信號后,還應該進行后濾波和后處理。其中,后處理起高通濾波和幅度翻倍的作用。
3 系統編解碼算法性能測試
編解碼算法性能包括兩方面:運算量和存儲要求。要達到高性能,不僅要運算量低,而且存儲器使用也要少。表3和表4分別列出了編解碼器的運算量和存儲器使用情況。
評論