新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于DSP的G.729語音編解碼器設(shè)計(jì)

基于DSP的G.729語音編解碼器設(shè)計(jì)

作者: 時(shí)間:2011-05-31 來源:網(wǎng)絡(luò) 收藏


3 系統(tǒng)軟件
系統(tǒng)軟件部分主要包括音頻接口模塊、數(shù)字接口模塊、CPLD控制模塊及處理模塊等。音頻接口模塊主要完成對(duì)TMS320VC5416的多通道緩沖串口McBSP0、McBSP1的配置及對(duì)音頻接口芯片的初始化等;數(shù)字接口模塊作為與外部信道的接口,在輸出碼流的同時(shí)提供幀同步與位同步信號(hào),的重點(diǎn)在于McBSP2的配置,尤其是其內(nèi)部采樣率發(fā)生器的配置;CPLD控制模塊完成TMS320VC5416各個(gè)控制信號(hào)和地址線的邏輯組合,以擴(kuò)展外圍存儲(chǔ)器SRAM和FLASH,開發(fā)環(huán)境為QuartusⅡ。處理模塊是本的核心,將在下面重點(diǎn)介紹。
3.1 語音處理模塊軟件設(shè)計(jì)
語音處理模塊由完成,軟件流程圖如圖2所示。

本文引用地址:http://m.butianyuan.cn/article/150672.htm

b.jpg


系統(tǒng)上電后,首先完成內(nèi)部寄存器、變量、外圍設(shè)備、音頻編解碼芯片的初始化,當(dāng)McBSP有數(shù)據(jù)輸入時(shí),McBSP產(chǎn)生一個(gè)事件報(bào)告DMA控制器,觸發(fā)DMA通道以后臺(tái)形式將數(shù)據(jù)傳輸?shù)浇邮站彌_區(qū);接收緩沖區(qū)每收到一定單元的數(shù)據(jù),觸發(fā)DMA中斷,CPU響應(yīng)該中斷進(jìn)入中斷服務(wù)程序,提取數(shù)據(jù),完成數(shù)據(jù)的編碼或解碼處理;然后再將處理后的數(shù)據(jù)送至發(fā)送緩沖區(qū),由DMA傳送給多通道緩沖串口。
編解碼算法采用G.729算法,ITU為G.729算法提供了標(biāo)準(zhǔn)C源代碼,并采用模塊化設(shè)計(jì),具有可讀性強(qiáng)、便于維護(hù)等優(yōu)點(diǎn),但該算法復(fù)雜度較高,而芯片資源有限,處理延時(shí)很大。在實(shí)際應(yīng)用中,語音編對(duì)算法實(shí)時(shí)性要求非常高,因此必須對(duì)原始代碼進(jìn)行算法精簡(jiǎn)和代碼優(yōu)化,這也是本文的重要工作之一。

3.2 編解碼算法優(yōu)化
G.729算法是經(jīng)過長(zhǎng)時(shí)間不斷的研究與討論,最終制定出的一個(gè)標(biāo)準(zhǔn)算法,對(duì)算法本身再進(jìn)行大幅度優(yōu)化是很困難的。不過,可以在算法的細(xì)節(jié)和具體實(shí)現(xiàn)方法上進(jìn)行精簡(jiǎn)。
3.2.1 碼本搜索算法精簡(jiǎn)
在10維LSP量化碼本搜索中,需要找到一個(gè)碼矢量,使得它與輸入矢量的均方誤差最小,如式(1)所示。
c.jpg

在ITU提供的標(biāo)準(zhǔn)算法中,程序每次搜索時(shí),先計(jì)算完本次的均方誤差,然后再與之前的最小值進(jìn)行比較。實(shí)際上,如果本次未計(jì)算完的均方誤差已經(jīng)大于之前保存的最小值時(shí),可以直接停止本次計(jì)算進(jìn)入到下一次計(jì)算中,這樣能節(jié)省大量乘和累加運(yùn)算。



評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉