新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > ITU-TG.729算法及其實(shí)時(shí)實(shí)現(xiàn)

ITU-TG.729算法及其實(shí)時(shí)實(shí)現(xiàn)

作者: 時(shí)間:2010-12-22 來源:網(wǎng)絡(luò) 收藏

G.729的解碼也是按幀進(jìn)行的,主要是對(duì)符合G.729協(xié)議的碼流進(jìn)行解碼,得到相應(yīng)的參數(shù),根據(jù)語音產(chǎn)生的機(jī)理,合成語音。解碼的方框圖如圖2所示,其主要部分為:參數(shù)解碼;后濾波處理。

G.729解碼過程如下。

·參數(shù)解碼

首先解碼得到線譜對(duì)參數(shù),并將線譜對(duì)參數(shù)轉(zhuǎn)換為線性預(yù)測(cè)系數(shù)。然后解碼出基音周期,獲得自適應(yīng)碼本矢量V(n)。解碼出固定碼本矢量的四個(gè)脈沖的位置和符號(hào),計(jì)算出固定碼本矢量c(n)。解碼出固定本預(yù)測(cè)增益gc和固定碼本增益,接著得到激勵(lì)信號(hào)

,n=0……39。最后將激勵(lì)信號(hào)

u(n)輸入到線性預(yù)測(cè)合成濾波器中,計(jì)算出重構(gòu)語音。

·后濾波處理

后濾波處理主要是自適應(yīng)后濾波。自適應(yīng)后置濾波器是由三個(gè)濾波器級(jí)連而成:長時(shí)后置濾波器Hp(z),短時(shí)后置濾波器Hf(z),頻譜傾斜補(bǔ)償濾波器Ht(z),后面接著進(jìn)行一個(gè)自適應(yīng)增益控制過程。后置 濾波器的系數(shù)每一個(gè)子幀更新一次。后置濾波能夠有效地改善合成出的語音質(zhì)量。

2 G.729編解碼器的

我們?cè)贏nalog Device的定點(diǎn)數(shù)字處理芯片ADSP-2181[4][5]上了符合ITU-T G.729的全部功能,進(jìn)行編解碼總共用了22MIPS(ADSP-2181處理速度為33MIPS)。了G.729的編解碼功能,主要有以下的難點(diǎn)。

·數(shù)據(jù)在DSP中的安排。在DSP中只要是聲明的變量,DSP的連接程序就會(huì)分配數(shù)據(jù)空間。如果我們象C語言編程那樣定義局部變量,就會(huì)浪費(fèi)大量的存儲(chǔ)空間。

·數(shù)據(jù)精度的處理。在16位的定點(diǎn)信號(hào)處理芯片上實(shí)現(xiàn)一些浮點(diǎn)時(shí),為了使運(yùn)算速度加快,往往要針對(duì)定點(diǎn)芯片的特點(diǎn),用定點(diǎn)數(shù)來表示浮點(diǎn)數(shù)。雖然速度提高了,但是很可能導(dǎo)致運(yùn)算精度不夠。

·有限計(jì)算資源的利用。ADSP2181只有33MIPS,而且不能使所有的MIPS都用來實(shí)現(xiàn)G.729的編解碼功能。

·DSP高速運(yùn)行時(shí),DSP與主機(jī)的數(shù)據(jù)交互。

·語音信號(hào)和編解碼緩沖區(qū)的維護(hù)。這些緩沖區(qū)至少都有兩者要去存儲(chǔ),如語音信號(hào)緩沖區(qū), 一方面語音編碼模塊要調(diào)用,另一方面采集中斷程序也要調(diào)用它。而在語音編碼模塊調(diào)用的過程中,該緩沖區(qū)不應(yīng)該被其它模塊所改變,所以中斷程序不應(yīng)該此時(shí)去存儲(chǔ)這個(gè)緩沖區(qū),這就存在著矛盾。

2.1 軟件設(shè)計(jì)

軟件設(shè)計(jì)主要包括三個(gè)部分。

· 命令解釋器

命令解釋器主要是用于解釋主CPU發(fā)來的各種命令,如發(fā)送或接收編解碼數(shù)據(jù)、查詢編解碼狀態(tài)以及啟動(dòng)、停止編解碼操作等。該模塊不直接與主CPU打交道,而是通過接口功能模塊,間接實(shí)現(xiàn)與主CPU的數(shù)據(jù)信息交換。

· G.729數(shù)據(jù)引擎

我們?cè)贏DSP-2181上完成了G.729的編/解碼工作。

ADSP-2181不僅包含了ADSP-2100系列的基本結(jié)構(gòu)(三個(gè)運(yùn)算單元、數(shù)據(jù)地址發(fā)生器和一個(gè)程序序列器),還含有兩個(gè)串行口、一個(gè)16位的內(nèi)部IDMA口,一個(gè)8位的BMDA口、一個(gè)可編程定時(shí)器、標(biāo)志輸入輸出(Flag I/O、外部中斷能力以及片內(nèi)程序和數(shù)據(jù)存儲(chǔ)器等周邊設(shè)備。ADSP-2181片內(nèi)集成了共80K字節(jié)的存儲(chǔ)器,它們分別是16K字(24bit)程序存儲(chǔ)器和16k字(16bit)的數(shù)據(jù)存儲(chǔ)器,大量的片內(nèi)存儲(chǔ)器使得復(fù)雜的G.729編解碼能夠全部放入ADSP-2181片內(nèi),無須增加任何的片外RAM,簡化了硬件設(shè)計(jì)和接口。



評(píng)論


相關(guān)推薦

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

關(guān)閉