《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 基于TMS320C5416的G.729語音編解碼算法的優化和實現
基于TMS320C5416的G.729語音編解碼算法的優化和實現
黃 冰,楊召青,呂治國
摘要: 通過分析G.729語音編解碼算法和TMS320VC5416的原理,提出了有效優化算法的方案,降低了算法的復雜度,把優化的G.729算法在TMS320VC5416的系統板實現,完成對輸入語音或數據的壓縮、存儲及回放。
Abstract:
Key words :

    摘 要: 通過分析title="G.729">G.729語音編解碼算法和TMS320VC5416的原理,提出了有效優化算法的方案,降低了算法的復雜度,把優化的G.729算法在TMS320VC5416的系統板實現,完成對輸入語音或數據的壓縮、存儲及回放。
    關鍵詞: G.729算法;算法優化;語音編碼;TMS320C5416

     隨著多媒體信息技術和網絡技術的飛速發展,信息量快速增長,使信道資源顯得越來越寶貴。為了在有限的信道資源下傳輸盡可能多的信息,語音壓縮成為必要手段。ITU組織(國際電信聯盟)在l996年制定了G.729協議,即共軛結構碼激勵線性預測編碼算法(CS-ACELP)。其編碼速率為8kb/s,可以滿足網絡通信的要求,具有良好的語音質量,對不同的應用環境有較強的適應性,是一種性能較好的語音壓縮國際標準,被廣泛應用在個人移動通信、衛星通信等各個領域。


1 G.729編解碼算法的原理
    語音信號的波形編碼力圖使重建語音波形保持原始語音信號的波形形狀。這類編碼器通常將語音信號作為一般的波形信號來處理,它具有適應能力強、語音質量好等優點,但所需用的編碼速率高。參數編碼通過對語音信號特征參數的提取及編碼來降低編碼速率,力圖使重建語音信號盡可能保持原語音的語意,而重建信號的波形同原語音信號的波形可能會有相當大的差別。二十世紀70年代中期,特別是80年代以來,語音編碼技術有了突破性的進展,提出了一些非常有效的處理方法,如混合編碼。這種算法克服了原有波形編碼器與聲碼器的弱點,而結合了它們各自的長處,在4kb/s~16kb/s速率上能夠得到高質量合成語音,而在本質上也具有波形編碼的優點。G.729所描述的CS-ACELP(Conjugate-Structure Al2gebraic-Coder-Excited Linear Prediction)聲碼器采用的CELP聲碼器就屬于這類編碼器。
    CELP編碼基于合成分析(A-B-S)的搜索過程、感知加權矢量量化(VQ)和線性預測(LP)技術,采用這種編碼方案使傳輸的比特率大大降低。CS-ACELP的思想是由共軛結構碼線性預測(CS-CELP)和代數碼本激勵線性預測(ACELP)的思想整合而來的。在編碼端,主要進行有線譜對(LSP)參數的量化、基音分析、固定碼本搜索和增益量化四個步驟。編碼器首先對輸入信號(8kHz采樣16bit PCM信號)進行預處理,然后對每幀語音信號進行線性預測,得到LPC系數,并把LPC參數轉換成LSP參數,最后對LSP參數進行矢量量化。在接下來的基音分析中,每一幀先搜索到最佳基音時延T的一個候選時延,然后依據候選時延搜索每一幀的最佳基音時延。最后還要對自適應碼本增益和固定碼本增益進行量化。在解碼端,首先由接收到的比特流得到各種參數標志進行解碼,得到10ms語音幀編碼參數。解碼器在每一子幀內,對LSP系數進行內插,并把它們變換成LP濾波器系數后,依次進行激勵生成、語音合成和后處理工作。
2 算法優化和DSP應用改進
    G.729語音編解碼系統要求實時性高,需在有限的時間內對外部輸入的信號完成指定處理,即信號處理的速度必須大于等于輸入信號更新的速度,因此需要進行算法的優化改進。對C語言編寫的代碼進行優化,同時使用內聯指令,又在C程序中嵌入匯編語句,盡量提高信號處理的速度。
2.1 算法的優化改進
    首先在算法上進行改進,如圖1所示,采用一種結合WD-LSP(Weighted Delta-LSP)[1]函數并結合次最優部分碼本快速搜索的CS-ACELP語音編碼算法,同時采用基于聲學心理模型的知覺加權濾波器,使語音編碼在不降低語音質量的情況下降低計算復雜度。WD-LSP函數主要用于區分UV-V(unvoice-voice)/S-V(silence-voice)的邊界。其原理是:如果函數值大于給定的極限值η,則開環基音延遲Top重新估計,否則,開環基音延遲Top用前一幀自適應碼本延遲來更新。在第i幀Fi的WD-LSP函數和用于確定開環基音延遲Top的算法如下:
   
其中LSPi(k)是在第i幀中的k階LSP系數;wk是加權系數,它用于增強UV-V/S-V邊界的WD-LSP函數。為了獲取wk,一個包含23 014個UV-V邊界和9 519個S-V邊界的大型數據庫用于估計delta-LSP在UV-V/S-V邊界的平方根值(RMS)。因此,WD-LSP用于檢測VU-V/S-V邊界非常敏感。η是一個設為0.01的極限值。整個計算可節省21%的計算量,經過這種算法前后語音信號如圖2所示。

 

 

 

2.2 進行C語言優化
    基于G.729標準的聲碼器最終在定點TMS320C5416上實時實現。在定點TMS320C5416內,浮點數是通過將小數點固定在特定位置來表示的,這是定點TMS320C5416的局限之一。為了區分小數的不同值域,使用了Q-格式。不同的Q-格式在于小數點的位置不同,因此整數域也不同。當兩個數相乘時,會產生一個特殊的符號位。如:兩個Q4數相乘, 需要附加一個左移的操作以去除這個多余的符號位,乘積應該是一個Q9格式的。如果DSP中的FRST位被置位,這個去除多余符號位的移位操作能夠自動完成。對于16位數的乘法運算,應該得到32 位的乘積。但是,由于只需要16位的積,該32位乘積中只有高16位被存儲下來,積的低16位被丟棄。為了達到高準確性,在連續的乘法運算過程中(如卷積),應該一直保持32位的計算結果,只對最終的計算結果進行丟棄低16位的截短操作。為了達到更高的準確性,在這一操作過程中會使用到一種雙重精度格式, 這種格式僅僅出現在使用單精度不夠,而又不必要使用32位精度的時候。兩個32位數相乘,只需要32位的乘積,而不是64位,不過注意到TMS320C5416是16位的,所以在雙重精度格式中,32位整數分為高位字和低位字。高、低位字中都含有符號位,以進行快乘運算。其格式如下:
    L_32=hi_word<<16+lo_word<<1
    Hi_word=L_32>>16
    Lo_word=L_32-hi_word>>1
    當累加器中的數值超過一定范圍時將會產生溢出。在G.729算法標準中, 累加器的值被限定在80000000~7FFFFFFF之內——即最小負數和最大正數。不過在TMS320C5416中,如果將PMST寄存器中的OVM置位,則溢出會得到自動處理。
2.3 內聯指令的應用和C程序中嵌入匯編語句
    由于語音編碼的特點,編解碼函數都是由一些基本的加減乘除簡單函數組織而成,這些函數定義在BASIC OP.C和OPER_32B.C兩個文件中,如果能夠對這些簡單函數進行內聯指令(intrinsic)的優化,就能達到事半功倍的效果。內聯指令是匯編指令的直接映射,具有很高的效率。例如:
    #define muh_ r(varl,var2)           _mpylir(varl,var2)
    #define L_ add(L_var1,L_var2)       _sadd(L_var1,L_var2)
    #define L_ muh(var1,var2)           _smpy(var1,var2)
    在C程序中嵌入匯編語句的方法比較簡單,只需在匯編語句的左右加上一個引號,然后用小括弧將匯編語句括住,并在括弧前加上ASM標識符,例如ASM(“匯編語句”)。采用這種方法一方面可以在C程序中實現用C語言無法實現的一些硬件控制功能,如修改中斷控制寄存器、中斷使能或屏蔽、讀取狀態寄存器和中斷標志寄存器等;另一方面,也可以用這種方法在C程序中的關鍵部分用匯編語句代替C語言以優化程序。而采用這種方法的缺點是比較容易破壞C環境,因為C編譯器在編譯嵌入了匯編語句的C程序時并不檢查或分析所嵌入的匯編語句。采用這種方法需要注意以下幾點:
    (1)不要破壞C環境,因為C編譯器并不檢查和分析嵌入的匯編語句。
    (2)匯編語句不要改變C程序中變量的值,不要在匯編語句中加入匯編器而改變匯編環境。
    在簡化算法的基礎上,使用CCS提供的C優化器進行C語言優化,同時還使用內聯函數和匯編優化。
3 G.729在TMS320C5416上的實現
3.1 TMS320C5416的體系結構和應用
    TMS320C5416(以下簡稱C5416)是TI公司最近推出的一款高性價比的通用l6位定點DSP芯片,它的內核CPU基本組成與TMS320C54X系列一樣。C5416的單指令周期為6.25 RS,每秒執行的指令數為160×106,指令系統豐富并具有很多多功能指令,使用了6級指令流水線結構,這些都很適合實現低時延的G.729聲碼器。采用一個40bit ALU、128K×16bit片內RAM(包括64KB的片內DARAM和64KB的片內SARAM)、3個獨立的l6bit數據內存總線、1個程序內存總線、3個MCBSP、6信道DMA控制器、1個8/l6位并行增強主機端口接口及2個l6bit計時器。
    在TMS320C5416中通過PCM3002進行語音信號的A/D和D/A轉換,PCM3002使用兩個串行通道,一個用于控制內部寄存器,另外一個用于數據傳輸。在系統板TMS320C5416中默認的語音信號的抽樣率是48kHz,通過修改PCM3002的內部控制寄存器,設定PCM3002信號的抽樣率。為了滿足G.729編碼的要求,PCM3002信號的抽樣率為8 000Hz。為了充分利用DSP進行信號處理,通過使用MCBSP和DMA把抽樣的數據送入DMA的緩沖區中,當緩沖區滿時產生一次中斷,DSP把DMA的緩沖區中的數據讀入DSP中進行處理,然后把處理過的數據送入DMA發送緩沖區。
3.2 G.729在TMS320C5416的實現
    G.729的處理過程中采用塊處理技術如圖3所示。按照G.729標準,每塊(幀)由80個樣本組成,最初80個樣本被存起來,處理過程中有兩個操作是同時進行的。在處理塊L中數據的同時,存儲L+1塊的數據。

 


    在G.729軟件仿真時發現運算量較大的部分是LSP系數的矢量量化與激勵碼本(自適應碼本和固定碼本)的搜索,這兩個部分的運算量大約占全部編解碼運算量的60%以上。所以在優化過程中,著重對固定碼本Acelp_Code_A()、分數基音分析pitch_fr3()、開環基音分析pitch_ol_fast()、增益量化Qua_gain()等占據絕大多數運算量的函數進行了優化;僅僅簡化算法不能滿足實時要求,還使用了CCS提供的C優化器進行C語言優化,同時還可以使用內聯函數和匯編語句。經過以上處理后,輸出的信號滿足通信要求。通過分析優化前后這些主要模塊的速度對照表(如表1所示),可以看出各個主要模塊的優化效果是比較明顯的。一幀語音信號經過處理前后幅頻圖(如圖4所示),可以看出語音信號經過處理后保持良好的語音質量。

 

 


    系統運行主要分為四個過程:語音存儲,數據編碼壓縮,數據解壓縮,語音回放。將輸入的語音數據首先進行抗疊濾波,然后進行模數轉換,經DSP采集并存入RAM存儲器中,即是語音存儲過程;接著運行編碼程序,將前面存儲的信息進行壓縮并存儲,這是編碼過程;然后進行解碼,并將數據存回原來的位置;最后DSP執行輸出指令,將解碼后的數據送到數模轉換器中,實現模擬輸出。
    用C5416最終實時實現了G.729聲碼器,用該聲碼器分別實時播放純語音文件、語音加背景音樂文件。對重建語音質量的主觀測試結果表明,恢復語音保留了很好的說話人特征,合成語音的清晰度和自然度均較好。該聲碼器性能測試數據如下:編解碼一幀平均時鐘周期數為1 010 350,CPU時鐘頻率為160MHz,所以編解碼一幀需要7.31ms時間;程序RAM容量為9.381KB;數據和常數RAM容量為7.146KB。以上數據表明,G.729編解碼器在C5416上實時實現的技術,可以很好地應用在電話會議、多媒體通信以及采用寬帶語音編碼的通信系統中。
參考文獻
[1] 宋欽梅,黃冰.基于G.729A的CSACELP語音編碼算法的優化改進[J].電子技術應用,2007,33(3).
[2] 沈勇,唐昆.DM642上G.729A編解碼算法實現和應用[J].微計算機信息,2006.
[3] 曹延偉,林嘉宇.用定點DSP實現ITU G.729語音壓縮算法[J].微處理機信息,2001,(3).
[4] 王虹,陳鍇.DSP實現G.729語音編解碼方法及關鍵技術研究[J].信息技術,2005,(7).
[5] 劉為超,黎福海.G.729在DSP應用中代碼優化研究[J].現代電子技術,2005,(5).
[6] 王炳錫.語音編碼[M].西安:西安電子科技大學出版社,2002.
[7] TU-T Recommendation G.729 Annex A-Reduced Complexity CS-ACELPD[S].1996.(5).
[8] TMS320VC5416 Fixed-Point Digital Signal Processor l[R],2001.
[9] 黃濤.基于通用DSP的G.729語音壓縮編解碼算法的實現與優化[D].天津:天津大學出版社,2005,(8)

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
国产精品日韩二区| 国产亚洲一区在线| 久久国产精品一区二区三区四区| 亚洲乱码视频| 亚洲国产精品久久久久秋霞蜜臀 | 亚洲一区二区三区四区中文| 亚洲免费观看高清在线观看 | 欧美日韩精品伦理作品在线免费观看| 欧美成人黑人xx视频免费观看| 久久久精品一区| 久久婷婷国产综合国色天香| 久久亚洲视频| 久色婷婷小香蕉久久| 久久久久久久综合狠狠综合| 久久精品中文字幕免费mv| 欧美专区在线观看| 久久久久一区二区三区| 可以看av的网站久久看| 欧美xx视频| 欧美久久99| 欧美午夜电影一区| 国产精品久久福利| 国产精品激情av在线播放| 国产精品乱码妇女bbbb| 国产精品日日摸夜夜摸av| 国产欧美日韩精品a在线观看| 欧美电影免费观看大全| 欧美激情国产日韩| 欧美亚州韩日在线看免费版国语版| 欧美亚洲成人精品| 国产精品乱码| 国产一区二区欧美| 136国产福利精品导航| 亚洲国产婷婷香蕉久久久久久99| 亚洲精品国精品久久99热一| 一本色道久久88综合亚洲精品ⅰ| 亚洲一区二区三区四区五区黄 | 欧美一二三区精品| 久久久久久网站| 欧美激情在线有限公司| 欧美三级在线视频| 国产情人节一区| 伊人久久婷婷色综合98网| 亚洲激情在线| 亚洲天堂成人| 久久精品一区二区三区不卡牛牛| 亚洲人成精品久久久久| 一本大道久久a久久精二百| 午夜精品久久久久久久99热浪潮| 久久精品夜色噜噜亚洲a∨| 欧美成人日韩| 国产精品爽爽爽| 亚洲成色999久久网站| 一级日韩一区在线观看| 久久av二区| 一本久道综合久久精品| 欧美专区日韩视频| 欧美另类一区| 国产一区免费视频| 日韩午夜电影av| 久久精品国产欧美激情| 宅男66日本亚洲欧美视频| 久久成人精品| 欧美日本在线| 黄色亚洲在线| 亚洲伊人第一页| 亚洲精品免费电影| 欧美一级视频免费在线观看| 欧美国产第一页| 国产欧美日韩另类视频免费观看| 91久久精品视频| 欧美一区二区三区喷汁尤物| 一区二区三区四区五区精品视频| 久久青草久久| 国产精品视频精品视频| 亚洲黄页视频免费观看| 欧美一区二区免费| 亚洲自拍偷拍麻豆| 欧美激情一区二区三区在线视频观看| 国产欧美一区二区三区久久| 亚洲精品专区| 91久久精品国产91性色| 久久九九热re6这里有精品| 国产精品大片| 亚洲理论电影网| 亚洲国产日韩精品| 久久精品一区中文字幕| 国产精品国产a级| 亚洲精品午夜| 亚洲精品少妇| 免费成人在线视频网站| 黄色国产精品| 欧美一区二区三区另类| 午夜综合激情| 国产精品成人在线观看| 日韩视频免费观看高清在线视频| 亚洲国产日韩欧美在线图片| 午夜精品久久久久99热蜜桃导演| 在线亚洲观看| 免费成人在线观看视频| 国产精品一区在线观看| 99热这里只有精品8| 久久超碰97中文字幕| 国产精品久久久久77777| 黄色成人av在线| 亚洲欧洲精品天堂一级| 香蕉久久久久久久av网站| 欧美日韩精品福利| 亚洲国产精品一区在线观看不卡 | 亚洲欧美日韩一区二区| 亚洲精品资源| 免费成人激情视频| 激情视频一区| 亚洲第一区在线观看| 亚洲美女视频在线观看| 影音先锋成人资源站| 午夜精品美女久久久久av福利| 亚洲一区二区三区高清不卡| 亚洲福利在线观看| 国产精品视频导航| 日韩一区二区福利| 一区二区三区成人| 欧美日韩国产美女| 亚洲精品免费网站| 一本大道久久a久久综合婷婷| 欧美另类综合| 日韩视频在线永久播放| 亚洲神马久久| 国产精品激情av在线播放| 亚洲性夜色噜噜噜7777| 西瓜成人精品人成网站| 国产精品一区在线播放| 性色av一区二区三区红粉影视| 欧美专区第一页| 国内精品久久久久久久97牛牛| 久久国产高清| 六十路精品视频| 亚洲国内精品在线| aa级大片欧美三级| 国产精品对白刺激久久久| 亚洲一区二区精品视频| 欧美一区二视频| 激情av一区| 日韩亚洲在线观看| 欧美日韩亚洲一区二区三区在线观看| 日韩天堂在线观看| 亚洲综合国产精品| 国产一区二区三区四区hd| 亚洲人成网站在线播| 欧美日韩国产在线看| 亚洲一区中文| 巨胸喷奶水www久久久免费动漫| 亚洲第一黄网| 亚洲深夜av| 国产亚洲欧美日韩一区二区| 亚洲激精日韩激精欧美精品| 欧美日韩国产精品成人| 亚洲午夜免费福利视频| 久久精品国产77777蜜臀| 亚洲福利视频二区| 亚洲一区二区三区高清 | 欧美精品123区| 亚洲网站啪啪| 久久亚洲图片| 夜夜嗨av色综合久久久综合网| 午夜免费电影一区在线观看| 狠狠色狠狠色综合日日五| 99国产精品久久久久老师| 国产精品乱码一区二区三区| 亚洲第一天堂无码专区| 亚洲精品乱码久久久久久蜜桃麻豆| 欧美一级二级三级蜜桃| 在线看视频不卡| 午夜视频在线观看一区二区三区| 国产一区二区三区久久悠悠色av| 亚洲免费av网站| 国产欧美一区二区三区久久人妖 | 欧美一区二区三区久久精品茉莉花| 激情六月综合| 亚洲天堂男人| 黄色在线一区| 亚洲欧美国产日韩中文字幕| 精品成人免费| 亚洲自拍都市欧美小说| 在线观看中文字幕亚洲| 亚洲欧美精品在线| 亚洲国产成人精品久久| 欧美一区二区视频97| 亚洲黄色成人| 久久久久免费观看| 一区二区三区三区在线| 蜜月aⅴ免费一区二区三区| 亚洲在线日韩| 欧美区一区二| 亚洲国产欧美国产综合一区| 国产欧美一区二区三区久久 | 中日韩视频在线观看| 欧美大胆人体视频| 欧美一区二区精美| 国产精品草草|