《電子技術應用》
您所在的位置:首頁 > 通信與網(wǎng)絡 > 設計應用 > 聲碼器的DSP硬件接口設計及在VoIP媒體網(wǎng)關中的應用
聲碼器的DSP硬件接口設計及在VoIP媒體網(wǎng)關中的應用
電子發(fā)燒友
摘要: 在VoIP媒體網(wǎng)關設備中,語音壓縮編碼是其關鍵技術之一。在ITU-T發(fā)布的應用于VoIP的語音壓縮編解碼標準中,G.729是應用較為廣泛的一種。G.729采用“共軛結(jié)構(gòu)代數(shù)碼本激勵線性預測編碼”(CS-ACELP)算法,算法幀長為lOms,編碼后速率為8Kb/s。G.729有兩個附件:附件A給出一種低復雜度的算法,可應用于多媒體同步語音和數(shù)據(jù);附件B在標準算法的基礎上增加了靜音檢測壓縮算法以降低平均傳輸率,包括靜音檢測(VAD)和舒適噪音產(chǎn)生(CNG)。文獻對G.729語音壓縮編碼算法的具體原理中有詳盡的描述,本文的論述重點在算法的匯語言優(yōu)化、聲碼器的DSP硬件接口設計,以及其在媒體網(wǎng)關中的應用。1G.729ab編解碼核心算法優(yōu)化本文選擇TI公司的TMS320C6203芯片為核心,實現(xiàn)G.729ab聲碼器設計。TMS320C62xx系列DSP的集成開發(fā)環(huán)境CodeComposerStudio(簡稱CCS)支持標準C語言和匯編混合編程的方式編程,為了提高編解碼算法的效率,本文對ITU_T的標準G.729ab的C語言原碼進行匯編指令優(yōu)化設計。同時,對于上層編解碼器控制函數(shù),采用C語言開發(fā),以提高聲碼器的可維護性。
Abstract:
Key words :

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

  1 G.729ab編解碼核心算法優(yōu)化

  本文選擇TI公司的TMS320C6203芯片為核心,實現(xiàn)G.729ab聲碼器設計。TMS320C62xx系列DSP的集成開發(fā)環(huán)境Code Composer Studio(簡稱CCS)支持標準C語言和匯編混合編程的方式編程,為了提高編解碼算法的效率,本文對ITU_T的標準G.729ab的C語言原碼進行匯編指令優(yōu)化設計。同時,對于上層編解碼器控制函數(shù),采用C語言開發(fā),以提高聲碼器的可維護性。

  C62xx采用6級流水線結(jié)構(gòu),提供了A,B兩組(共32個)通用寄存器,8個功能單元(.L1,.L2,.S1,.S2,.M1,.M2,.D1和.D2),最多同時可以有8條指令處在不同的執(zhí)行階段并行。流水線結(jié)構(gòu)是DSP實現(xiàn)高速運算的重要技術。由于不同指令的指令周期不同,需要在多周期指令后插入足夠的NOP(空操作)指令,以避免流水線沖突。

  在G.729ab的標準C代碼中,有大量的循環(huán)體。循環(huán)控制的關鍵跳轉(zhuǎn)指令B,需要等待5個指令周期,大量的NOP操作將降低代碼的效率。為了提高循環(huán)效率,可以合理安排指令順序,在一個匯編循環(huán)體內(nèi)完成多個C循環(huán)的運算的流水線操作。用匯編指令實現(xiàn)如下簡單的for循環(huán)求信號能量的程序段為例:

  

 

  上述示例可使用如下匯編程序段實現(xiàn):

  

 

  如上優(yōu)化后,循環(huán)體LOOP僅為一個周期,在這一個周期中有6條并行運行的指令。其中,內(nèi)存讀取指令LDFI需4個周期,故乘法指令SMPY是將向前追溯4個循環(huán)周期的內(nèi)存讀取結(jié)果相乘。同理,SMPY指令需2個周期,故SADD指令是將2個循環(huán)周期之前的相乘結(jié)果相加。B0和A1配合用于循環(huán)控制,在等待跳轉(zhuǎn)指令B有效的5個延時周期內(nèi),依次進行隨后的后一循環(huán)的取數(shù),前第3個循環(huán)的相乘,前一個循環(huán)的求和、循環(huán)控制和跳轉(zhuǎn)指令,依次類推。上述優(yōu)化實現(xiàn)了最優(yōu)循環(huán)效率。

  本設計優(yōu)化后核心編解碼算法代碼完全符合ITUT G.729ab標準,并通過了ITU-T的所有測試矢量。使用300 MHz主頻的TMS320C6203實現(xiàn)聲碼器,單片可支持31路G.729ab算法。

  2 聲碼器的DSP硬件接口設計

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

  

聲碼器的DSP硬件接口設計 www.elecfans.com

 

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

  TMS320C6203支持16個EDMA通道,其12~15通道可用于響應串口收、發(fā)中斷。以串口接收數(shù)據(jù)為例:本設計中設計了乒、乓兩個串口數(shù)據(jù)接收緩存區(qū)。

  串口寄存器中的數(shù)據(jù)通過EDMA模式緩存到乒緩存區(qū),當乒緩存區(qū)滿時,EDMA參數(shù)重載,控制切換,將數(shù)據(jù)緩存至乓緩存區(qū),同時給出EDMA中斷,通知CPU讀取一幀數(shù)據(jù)。通過McBSP接口發(fā)送數(shù)據(jù)的過程完全類似。

  聲碼器通過DSP的HPI接口與上層處理器連接,實現(xiàn)數(shù)據(jù)網(wǎng)分組語音壓縮信號的收發(fā)。在HPI接口中,設計了以太網(wǎng)數(shù)據(jù)發(fā)送/接收緩存區(qū),并為每個緩存區(qū)設計了RP(Read Pointer,讀指針)和WP(Write Pointer,寫指針),用于控制上層處理器和DSP之間的編碼數(shù)據(jù)交互。同時上層處理器通過HPI接口向聲碼器發(fā)送指令,控制通道的打開或關閉。

  3 在媒體網(wǎng)關中的應用設計

  聲碼器內(nèi)部的主控程序采用定時中斷方式訪問HPI接口,根據(jù)上層處理器的指令打開或關閉通道。同時主程序使用輪詢方式處理從E1接口來的PCM話音信號;根據(jù)相應的通道工作狀態(tài)設置編解碼算法參數(shù),將話音信號壓縮編碼;編碼后的語音數(shù)據(jù),通過HPI接口輸出到上層處理器,進入數(shù)字網(wǎng)絡。使用完全類似的輪詢處理方式,逆向處理從來自數(shù)字網(wǎng)絡的編碼數(shù)據(jù)。

  由于數(shù)字網(wǎng)絡屬于分組通信,必須有合適的多媒體實時流網(wǎng)絡傳輸協(xié)議以保證語音的連貫性。在聲碼器的HPI接口控制程序中,設計了一個提供給上層處理器的RTP(Real-time Transport Protocol,實時傳輸協(xié)議)接口,用于完成編碼和解碼數(shù)據(jù)包的輸出和輸入及相應的RTP成幀、解幀功能,具體功能設計如下:

  RTP打包和發(fā)送:RTP包由具有固定格式的包頭和數(shù)據(jù)部分組成。將編碼后的語音數(shù)據(jù),按照RTP打包參數(shù)的要求組織RTP頭和RTP凈荷。 RTP包頭中的關鍵字段為SN(Sequence Number,序列號)和TS(Time Stamp,時間戳)。SN用于對RTP包進行排序。每發(fā)送一個RTP數(shù)據(jù)包,SN加1。TS用于標識RTP數(shù)據(jù)包中第一個字節(jié)采樣時的時刻,以語音樣本為單位遞增;對于語音包和靜音壓縮包,TS增值一致。另外,RTP包頭中的PT(Payload Type,負載類型)字段用于指示RTP凈荷的數(shù)據(jù)編碼格式。在RFC3550中規(guī)定了標準音頻載荷類型:G.729編碼對應的PT為18。

  由于RTP包頭中沒有長度字段,故對RTP包進行了外部擴展:將打好的RTP包作為凈荷,附加上RTP包數(shù)據(jù)長度、通道號,組成“以太網(wǎng)數(shù)據(jù)包”。針對C6203的32位尋址的HPI總線接口,設計以太網(wǎng)數(shù)據(jù)包格式如圖2所示。

  

 

  RTP包發(fā)送:即寫“以太網(wǎng)數(shù)據(jù)包”至“以太網(wǎng)數(shù)據(jù)發(fā)送緩存區(qū)”。首先根據(jù)該緩存區(qū)的讀寫指針判斷剩余空間;如寫空間不夠,則放棄此次寫操作,該數(shù)據(jù)包同時被丟棄。如寫空間足夠,則將數(shù)據(jù)包寫入發(fā)送緩存區(qū),并更新寫指針。上層處理器根據(jù)該緩存區(qū)的讀寫指針判斷該緩存區(qū)內(nèi)是否有新數(shù)據(jù),并進行讀操作,以及更新讀指針。

  RTP包接收、排序和緩存:分組通信需要考慮語音的防抖動處理。本文通過設置靜態(tài)抖動緩沖區(qū)實現(xiàn)去抖動。首先根據(jù)“以太網(wǎng)數(shù)據(jù)接收緩存區(qū)”的讀寫指針判斷是否有新的數(shù)據(jù)包到來,如果有,則將該數(shù)據(jù)包根據(jù)RTP的SN和TS排列在相應通道的RTP緩存隊列中。重復上述過程直至將“以太網(wǎng)數(shù)據(jù)接收緩存區(qū)”中所有的數(shù)據(jù)包讀完,然后更新該緩存區(qū)的DSP讀指針。對于每個通道的RTP緩存隊列,當緩存語音數(shù)據(jù)到達預先定義的閾值K時,給出標志允許該通道開始進行語音數(shù)據(jù)解碼。如果數(shù)據(jù)分組有抖動延遲,則解碼語音可繼續(xù)保持K時間單位不被打斷。

  4 結(jié)語

  在純匯編并行優(yōu)化的基礎上設計了高效的G.729ab聲碼器;利用TMS320C6203的在片外設McBSP實現(xiàn)了連接PSTN的標準E1接口;設計了用于分組數(shù)據(jù)收發(fā)的RTP協(xié)議接口,利用TMS320C6203的HPI接口方式與上層處理器連接,使聲碼器可靈活應用于媒體網(wǎng)關。

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
伊人久久成人| 亚洲综合国产| 国产精品一二| 欧美日韩国产一区二区三区| 另类春色校园亚洲| 久久婷婷国产综合国色天香| 欧美一区免费视频| 性欧美8khd高清极品| 亚洲午夜黄色| 这里只有精品视频在线| 在线视频精品一区| 夜夜爽99久久国产综合精品女不卡| 亚洲高清久久网| 亚洲电影成人| 亚洲国产高清一区| 亚洲国产小视频| 亚洲精品视频在线观看免费| 亚洲黄色精品| 日韩视频一区二区| 在线视频欧美一区| 亚洲一级片在线看| 亚洲欧美日本另类| 午夜精品久久久久久久久久久 | 久久精品伊人| 久久人人97超碰人人澡爱香蕉| 久久久综合精品| 免费日韩成人| 欧美日本三区| 欧美日韩网站| 国产精品日韩久久久| 国产亚洲欧美一区| 亚洲成人自拍视频| 亚洲毛片av| 亚洲一区二区3| 久久国产福利国产秒拍| 亚洲精品欧美激情| 亚洲一区二区三区在线播放| 欧美一区二区视频在线观看2020| 久久精品免费播放| 免费日韩精品中文字幕视频在线| 欧美激情精品久久久久久蜜臀| 欧美日韩日日夜夜| 国产精品一区二区三区四区五区| 国产有码一区二区| 亚洲日本欧美天堂| 亚洲女性裸体视频| 亚洲人成人一区二区三区| 在线一区二区三区四区| 欧美一区二区三区视频在线 | 噜噜爱69成人精品| 欧美精品在欧美一区二区少妇| 欧美图区在线视频| 国产自产v一区二区三区c| 亚洲高清123| 亚洲一区二区成人| 91久久视频| 午夜精品区一区二区三| 免费亚洲视频| 国产精品国产精品| 黄色亚洲网站| 一区二区电影免费观看| 欧美一级视频免费在线观看| 亚洲精品久久久蜜桃| 亚洲欧美日韩一区二区| 久久久噜噜噜久久狠狠50岁| 欧美日韩免费一区| 国外精品视频| 99re亚洲国产精品| 久久激情综合| 亚洲午夜女主播在线直播| 久久久久一区二区| 欧美性猛交xxxx乱大交蜜桃| 黄色成人小视频| 一本色道久久综合亚洲精品不 | 日韩视频免费在线| 久久久久国内| 国产精品久久夜| 亚洲欧洲一区| 久久成人免费电影| 亚洲一区二区精品在线| 欧美大片在线观看| 国产在线视频不卡二| 一区二区免费在线观看| 亚洲精品一区中文| 久久综合网色—综合色88| 国产精品区一区二区三区| 亚洲精品一区二区三区樱花| 亚洲国产91精品在线观看| 性做久久久久久久免费看| 欧美日韩伦理在线| 亚洲国产一区在线| 久久精品国产亚洲精品| 午夜在线成人av| 国产精品成人免费视频 | 中国亚洲黄色| 欧美国产大片| 伊甸园精品99久久久久久| 午夜欧美精品久久久久久久| 亚洲综合激情| 欧美日韩精品三区| 亚洲片在线资源| 亚洲人精品午夜| 可以看av的网站久久看| 国产一区二区三区日韩欧美| 亚洲欧美精品在线| 亚洲欧美999| 欧美午夜视频在线| 99精品国产在热久久下载| 亚洲美女啪啪| 欧美老女人xx| 亚洲国产婷婷| 亚洲精品字幕| 欧美成人有码| 亚洲国产福利在线| 亚洲欧洲在线一区| 欧美ab在线视频| 亚洲高清不卡av| 亚洲精品中文字幕有码专区| 欧美1区视频| 亚洲国产免费看| 亚洲精品一区二区三区蜜桃久| 免费在线欧美视频| 亚洲国产欧美久久| 一区二区三区日韩精品| 蜜桃av综合| 狠狠综合久久av一区二区小说| 欧美一区二区三区免费视| 欧美中文字幕不卡| 国产欧美视频一区二区三区| 亚洲已满18点击进入久久| 欧美一区二区久久久| 国产日韩欧美a| 久久精品官网| 蜜臀久久久99精品久久久久久 | aⅴ色国产欧美| 亚洲与欧洲av电影| 国产精品亚洲激情| 欧美一级专区| 久久综合九色| 亚洲激情亚洲| 中文久久精品| 国产精品一区一区| 亚洲缚视频在线观看| 欧美华人在线视频| 夜夜嗨av色一区二区不卡| 亚洲欧美日本国产有色| 国产亚洲精品bt天堂精选| 亚洲电影有码| 欧美日本一道本| 亚洲欧美成人一区二区在线电影 | 欧美在线一区二区三区| 免费观看亚洲视频大全| 亚洲精品在线视频观看| 亚洲欧美日韩国产综合| 国产一区91精品张津瑜| 亚洲激情第一页| 欧美日韩人人澡狠狠躁视频| 亚洲欧美精品在线观看| 免费成人高清在线视频| 日韩视频中文字幕| 久久激情视频久久| 最近中文字幕mv在线一区二区三区四区 | 日韩视频一区二区在线观看| 国产精品久久久久一区二区| 欧美一区二区三区日韩| 欧美激情精品久久久久久久变态 | 亚洲影院一区| 韩国三级在线一区| 夜夜夜精品看看| 国产欧美一区在线| 亚洲精品乱码久久久久久黑人| 国产精品大片免费观看| 久久精品99国产精品| 欧美日韩国产综合视频在线观看中文| 亚洲欧美日韩视频二区| 女主播福利一区| 亚洲自拍偷拍麻豆| 欧美寡妇偷汉性猛交| 午夜精品国产更新| 欧美精品三级| 欧美一区二区三区视频| 欧美日韩黄色一区二区| 翔田千里一区二区| 欧美日韩成人激情| 久久gogo国模裸体人体| 欧美日韩国产不卡在线看| 欧美亚洲一区在线| 欧美色中文字幕| 亚洲欧洲视频在线| 国产欧美日韩亚洲一区二区三区| 日韩午夜激情电影| 国产综合激情| 亚洲欧美大片| 亚洲精品一区二区在线| 久久午夜精品| 亚洲欧美在线另类| 欧美日韩综合另类| 亚洲人成网站999久久久综合| 国产视频精品网| 亚洲制服av|