<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 高速G.729ab聲碼器設計及其在媒體網(wǎng)關(guān)中的應用

高速G.729ab聲碼器設計及其在媒體網(wǎng)關(guān)中的應用

作者: 時(shí)間:2010-10-08 來(lái)源:網(wǎng)絡(luò ) 收藏

在VoIP媒體網(wǎng)關(guān)設備中,語(yǔ)音壓縮編碼是其關(guān)鍵技術(shù)之一。在ITU-T發(fā)布的應用于VoIP的語(yǔ)音壓縮編解碼標準中,G.729是應用較為廣泛的一種。G.729采用“共軛結構代數碼本激勵線(xiàn)性預測編碼”(CS-ACELP)算法,算法幀長(cháng)為lO ms,編碼后速率為8 Kb/s。G.729有兩個(gè)附件:附件A給出一種低復雜度的算法,可應用于多媒體同步語(yǔ)音和數據;附件B在標準算法的基礎上增加了靜音檢測壓縮算法以降低平均傳輸率,包括靜音檢測(VAD)和舒適噪音產(chǎn)生(CNG)。文獻對G.729語(yǔ)音壓縮編碼算法的具體原理中有詳盡的描述,本文的論述重點(diǎn)在算法的匯語(yǔ)言?xún)?yōu)化、聲碼器的DSP硬件接口設計,以及其在媒體網(wǎng)關(guān)中的應用。

1 G.729ab編解碼核心算法優(yōu)化
本文選擇TI公司的TMS320C6203芯片為核心,實(shí)現G.729ab聲碼器設計。TMS320C62xx系列DSP的集成開(kāi)發(fā)環(huán)境Code Composer Studio(簡(jiǎn)稱(chēng)CCS)支持標準C語(yǔ)言和匯編混合編程的方式編程,為了提高編解碼算法的效率,本文對ITU_T的標準G.729ab的C語(yǔ)言原碼進(jìn)行匯編指令優(yōu)化設計。同時(shí),對于上層控制函數,采用C語(yǔ)言開(kāi)發(fā),以提高聲碼器的可維護性。
C62xx采用6級流水線(xiàn)結構,提供了A,B兩組(共32個(gè))通用寄存器,8個(gè)功能單元(.L1,.L2,.S1,.S2,.M1,.M2,.D1和.D2),最多同時(shí)可以有8條指令處在不同的執行階段并行。流水線(xiàn)結構是DSP實(shí)現高速運算的重要技術(shù)。由于不同指令的指令周期不同,需要在多周期指令后插入足夠的NOP(空操作)指令,以避免流水線(xiàn)沖突。
在G.729ab的標準C代碼中,有大量的循環(huán)體。循環(huán)控制的關(guān)鍵跳轉指令B,需要等待5個(gè)指令周期,大量的NOP操作將降低代碼的效率。為了提高循環(huán)效率,可以合理安排指令順序,在一個(gè)匯編循環(huán)體內完成多個(gè)C循環(huán)的運算的流水線(xiàn)操作。用匯編指令實(shí)現如下簡(jiǎn)單的for循環(huán)求信號能量的程序段為例:

上述示例可使用如下匯編程序段實(shí)現:

如上優(yōu)化后,循環(huán)體LOOP僅為一個(gè)周期,在這一個(gè)周期中有6條并行運行的指令。其中,內存讀取指令LDFI需4個(gè)周期,故乘法指令SMPY是將向前追溯4個(gè)循環(huán)周期的內存讀取結果相乘。同理,SMPY指令需2個(gè)周期,故SADD指令是將2個(gè)循環(huán)周期之前的相乘結果相加。B0和A1配合用于循環(huán)控制,在等待跳轉指令B有效的5個(gè)延時(shí)周期內,依次進(jìn)行隨后的后一循環(huán)的取數,前第3個(gè)循環(huán)的相乘,前一個(gè)循環(huán)的求和、循環(huán)控制和跳轉指令,依次類(lèi)推。上述優(yōu)化實(shí)現了最優(yōu)循環(huán)效率。
本設計優(yōu)化后核心編解碼算法代碼完全符合ITUT G.729ab標準,并通過(guò)了ITU-T的所有測試矢量。使用300 MHz主頻的TMS320C6203實(shí)現聲碼器,單片可支持31路G.729ab算法。

2 聲碼器的DSP硬件接口設計
在媒體網(wǎng)關(guān)中,聲碼器的功能是實(shí)現PSTN的E1語(yǔ)音信號和數據網(wǎng)分組語(yǔ)音壓縮信號之間的編解碼轉化。利用TMS320C6203片內固化設置的McBSP接口(多通道緩存串行接口)與HPI接口(主處理器接口),可以實(shí)現DSP與E1總線(xiàn)、以及數據網(wǎng)上層處理器的連接。結構示意圖如圖1所示。

本文引用地址:http://dyxdggzs.com/article/166506.htm


TM320C6203通過(guò)內置McBSP與EDMA(Enhanced Directory Memory Access,增強型直接內存訪(fǎng)問(wèn))控制器配合,可實(shí)現與E1標準接口的鏈接。設置McBSP的接收/發(fā)送控制寄存器(R/XCR),使串口按照標準E1數據格式進(jìn)行數據收發(fā);設置串口管腳控制寄存器(PCR),控制串口采用外部E1總線(xiàn)的時(shí)鐘和幀同步信號;設置串口控制寄存器(SPCR),控制串口的R/XINT(收/發(fā)中斷)由EDMA響應。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: 編解碼器 音頻

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>