《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > G.723.1語音編碼算法的DSP實現(xiàn)
G.723.1語音編碼算法的DSP實現(xiàn)
黃 冰,雷 婷,王 濤
摘要: 提出了在TMS320C5416 DSP硬件開發(fā)平臺上實時實現(xiàn)G.723.1的解決方案。根據(jù)G.723.1標準實時實現(xiàn)的要求對程序進行了優(yōu)化,最終在TMS320C5416 DSP上實時實現(xiàn)了該標準。語音質(zhì)量良好,達到了通信質(zhì)量的要求。
關(guān)鍵詞: DSP G.723.1 語音編碼 TMS320C5416 TI
Abstract:
Key words :

  摘 要: 提出了在title="TMS320C5416">TMS320C5416 DSP硬件開發(fā)平臺上實時實現(xiàn)G.723.1的解決方案。根據(jù)G.723.1標準實時實現(xiàn)的要求對程序進行了優(yōu)化,最終在TMS320C5416 DSP上實時實現(xiàn)了該標準。語音質(zhì)量良好,達到了通信質(zhì)量的要求。
  關(guān)鍵詞: 語音編碼;ITU-T G.723.1協(xié)議;ACELP;MPE_LPC;DSP芯片;算法優(yōu)化

 

  隨著通信、計算機網(wǎng)絡(luò)等技術(shù)的飛速發(fā)展,日益增加的客戶需求量和現(xiàn)有的通信信道容量之間的矛盾愈發(fā)突出。如何在有限的信道資源下,通過壓縮信源以提高傳輸效率已成為當前急需解決的問題之一。為此誕生了許多語音壓縮處理方法,G.723.1語音編碼算法便是ITU-T(國際電信聯(lián)盟電信標準化部門)制定的H.324協(xié)議簇首推的標準算法,主要用于低比特率多媒體業(yè)務(wù)的話音或其他音頻信號分量的壓縮。它是一種雙速率語音編碼標準,其中6.3 kb/s的速率提供了良好的話音質(zhì)量,而5.3 kb/s的速率在提供較好通話質(zhì)量的同時,也為系統(tǒng)設(shè)計者提供了更適合的靈活性[1]
1 算法原理
    G.723.1語音編碼算法按幀(Frame)對語音數(shù)據(jù)進行壓縮和解壓縮,每幀240個采樣點,壓縮傳遞的參數(shù)包括線性預(yù)測系數(shù)、自適應(yīng)碼本的延時和增益、激勵脈沖位置、符號及格點比特等。
  首先進行高通濾波,去掉直流分量;接著把一幀信號分成4個子幀,每個子幀60個采樣點,分別進行10階線性預(yù)測分析(LPC),得到各子幀的LPC參數(shù),把最后一個子幀的LPC參數(shù)轉(zhuǎn)化成線譜對(LSP)參數(shù)進行矢量量化編碼,送到解碼器。利用未量化的LPC參數(shù)構(gòu)造短時感知加權(quán)濾波器,信號濾波后得到感覺加權(quán)的語音信號。每2個子幀(120樣點)搜索一個開環(huán)基音值,并以此為依據(jù)為每一個子幀構(gòu)造一個諧波噪聲成形濾波器,對感知加權(quán)的語音信號進行濾波。每一子幀的LPC綜合濾波器、感覺加權(quán)濾波器和諧波噪聲成形濾波器聯(lián)起來,構(gòu)成一個聯(lián)合濾波器,利用它的沖激響應(yīng)和開環(huán)基音周期,對每一子幀進行閉環(huán)基音搜索,對開環(huán)搜索的結(jié)果進行修正。同時通過一個五階基音預(yù)測器對信號進行預(yù)測,得到相應(yīng)子幀的殘差信號。最后進行固定碼本搜索,也就是對每一子幀的殘差信號進行矢量量化,對應(yīng)兩種不同的編碼速率采用兩種不同的方法:編碼速率為6.3kb/s時,采用多脈沖最大似然量化(MP-MLQ)的方法,具有較高的重建語音質(zhì)量;編碼速率為5.3kb/d時,采用代數(shù)碼本激勵線性預(yù)測(ACELP)方法。
  算法的解碼也是按幀進行,主要對符合ITU-T G.723.1的碼流進行解碼,得到相應(yīng)的參數(shù),根據(jù)語音產(chǎn)生的機理,合成語音信號。讀入一幀碼流后,分別進行LSP參數(shù)、基音周期和激勵脈沖信號解碼,對LSP參數(shù)插值,然后轉(zhuǎn)化成各子幀的線性預(yù)測系數(shù),構(gòu)成LPC綜合濾波器。通過基音周期和激勵脈沖得到每一子幀的殘差信號,經(jīng)過基音后濾波,輸入到LPC綜合濾波器,產(chǎn)生合成語音信號。經(jīng)過共振峰后濾波和增益控制,形成高質(zhì)量的重建語音信號。
2 算法實現(xiàn)
2.1 硬件設(shè)計
  在選擇DSP芯片時,考慮了語音壓縮編碼算法的復(fù)雜度以及運算量,并對DPS芯片本身的運算能力、存儲空間大小、性能價格比、開發(fā)軟件的完整性等多方面進行綜合比較,最終選用TIC54xx系列的定點運算處理器TMS320C5416,開發(fā)平臺是TMS320C5416 DSK。
  TMS320C5416的單指令周期為6.25 ms,每秒執(zhí)行的指令數(shù)為160M,使用了6級指令流水線結(jié)構(gòu),這些都很適合G.723.1語音編碼算法的實現(xiàn)。采用一個40 bit ALU、128K×16 bit片內(nèi)RAM(包括64 kB的片內(nèi)DARAM和64 KB的片內(nèi)SARAM)、3個獨立的16 bit數(shù)據(jù)內(nèi)存總線、1個程序內(nèi)存總線、3個McBSP、6信道DMA控制器、1個8/16 bit并行增強主機端口接口及2個16 bit計時器[2,3]
  在DSK的基礎(chǔ)上,可以搭建出語音開發(fā)硬件系統(tǒng)平臺,如圖1所示。

 


  輸入語音信號由麥克風(fēng)輸入,經(jīng)過立體聲音頻多媒體數(shù)字信號編碼芯片PCM3002 A/D轉(zhuǎn)換后成為數(shù)字信號,接著送入DSP內(nèi)進行編碼壓縮處理。處理后的數(shù)據(jù)經(jīng)過解壓得到重建的語音信號,最后送入PCM3002 D/A轉(zhuǎn)換為模擬信號,通過耳機或揚聲器得以收聽到。
2.2 算法實現(xiàn)流程
  根據(jù)G.723.1算法,設(shè)計實現(xiàn)流程如圖2所示。


  從流程圖中可以看到,首先關(guān)閉中斷、初始化DSP芯片和開發(fā)平臺;然后進行程序運行前的硬件配置,主要是配置外設(shè),打開DMA和McBSP。配置結(jié)束后打開中斷屏蔽控制寄存器,等待中斷的到來。McBSP接收中斷發(fā)生時,DMA接收PCM3002發(fā)來的數(shù)據(jù)并存入緩沖區(qū),并判斷是否滿一幀240個數(shù)據(jù)。如果不滿幀,就直接等待下一次McBSP接收中斷;如果滿一幀,通過DMA通道3將240個語音數(shù)據(jù)復(fù)制到緩沖區(qū)BUFF1,同時置位新幀標志位new_data,然后對數(shù)據(jù)進行編解碼處理。整個編解碼結(jié)束后,將得到的一幀240個合成語音數(shù)據(jù)復(fù)制到緩沖區(qū)BUFF2中,等待新幀標志位重新置1后進行下一幀的編解碼處理。McBSP發(fā)送中斷時,DMA把發(fā)送緩沖區(qū)的一個數(shù)據(jù)發(fā)送給PCM3002后,判斷是否滿一幀。如果不滿幀,就直接等到下一次McBSP發(fā)送中斷;如果滿一幀,即PCM3002接收到了240個數(shù)據(jù),則把BUFF2中新一幀240個合成語音數(shù)據(jù)復(fù)制到發(fā)送緩沖區(qū),等待下一次McBSP發(fā)送中斷。
2.3 DSP/BIOS的配置
  將成功實現(xiàn)的算法移植到TI公司提供的TMS320C5416上,采用DSP/BIOS技術(shù)編程實現(xiàn)。DSP/BIOS配置工具主要是設(shè)置DSP/BIOS各個模塊的參數(shù)和創(chuàng)建API調(diào)用對象[4]。用DSP/BIOS配置工具,對象可以被預(yù)先創(chuàng)建和設(shè)置,使用這種方法創(chuàng)建靜態(tài)對象,不僅可以合理利用內(nèi)存空間、減小代碼長度、優(yōu)化數(shù)據(jù)結(jié)構(gòu),還有利于程序編譯前通過驗證對象的屬性預(yù)先發(fā)現(xiàn)錯誤。
3 程序優(yōu)化
  實時實現(xiàn)語音信號的編解碼最基本的要求是編解一幀語音信號的時間要少于采集一幀語音信號的時間,即要求G.723.1的一幀語音編解碼時間要少于30 ms。對G.723.1標準算法進行時間評估時發(fā)現(xiàn),一幀的運算量大概需要49 M個時鐘周期,約為300 ms,這顯然無法在TMS320C5416 DSP上實時運行。因此有必要從多方面進行優(yōu)化。
3.1 循環(huán)優(yōu)化
  G.723.1實現(xiàn)中的很多運算是在循環(huán)內(nèi)完成的,在循環(huán)內(nèi)部特別是嵌套較深的循環(huán)內(nèi)部,減少一條指令可以大大降低程序的操作次數(shù)。固定碼本搜索中為了確定四個脈沖的位置和幅度,用到了四重嵌套循環(huán),每重循環(huán)8次,在最內(nèi)層循環(huán)減少一條指令,整個程序就減少84=4 096條指令。因此在G.723.1的實現(xiàn)過程中,盡量將內(nèi)層循環(huán)的指令搬移到外層,外層循環(huán)的指令搬移到整個循環(huán)體外,從而縮短程序執(zhí)行時間,滿足實時性的要求。
  此外,適當選擇循環(huán)指令,如RPT(重復(fù)下條指令),RPTZ(累加器清零并重復(fù)下條指令)和RPTB(塊重復(fù)指令)等,也能縮短循環(huán)時間。如RPT允許重復(fù)執(zhí)行緊隨其后的一條指令,由于要重復(fù)的指令只需要取指一次,與利用跳轉(zhuǎn)指令BANZ進行循環(huán)相比,效率要高得多。特別是對于乘累加和數(shù)據(jù)傳送多周期指令(MAC、MVDK 和MVPD等),在執(zhí)行一次之后就變成了單周期指令,大大提高了執(zhí)行效率。
3.2 使用內(nèi)聯(lián)函數(shù)
  CCS提供的內(nèi)聯(lián)函數(shù)集中有一些常用的基本運算函數(shù),如加、飽和加、減、飽和減、長數(shù)乘等。這些函數(shù)可以很方便地被調(diào)用,就像調(diào)用C函數(shù)一樣,只要在函數(shù)名前加一個“_”,例如_L_SUB(a,b)。這些內(nèi)聯(lián)函數(shù)是用匯編語句編寫的,編譯時C編譯器將這些內(nèi)聯(lián)函數(shù)用對應(yīng)的匯編語句代替,所以執(zhí)行效率很高。在程序的開始部分頭文件中,用#include“intrindefs.h”,代替#include“basic.h”,就是把文件“basic.c”從工程中去掉,從而實現(xiàn)對“basic.c”中許多基本運算函數(shù)的優(yōu)化,提高了執(zhí)行效率。
3.3 使用宏定義
  在G.723.1標準的定點C程序中,所有基本運算都以調(diào)用子函數(shù)的形式執(zhí)行。這樣做對程序的規(guī)范化設(shè)計有好處,同時也在很大程度上降低了程序的運算效率。將基本運算由子函數(shù)調(diào)用改為宏定義可以去掉函數(shù)調(diào)用的開銷,加快運算速度,程序的運算效率明顯提高。這種優(yōu)化方式會帶來代碼量的增大,但還是在芯片存儲空間的容許范圍內(nèi)。
3.4 合理使用流水線操作
  C54芯片具有6級深度的流水線,可以完成預(yù)取指、取指、譯碼、產(chǎn)生操作數(shù)地址、讀取操作數(shù)和執(zhí)行等6個操作,這就出現(xiàn)了指令的重疊。然而CPU總線、寄存器資源是有限的,當不同級別的流水線試圖利用同一條總線或訪問同一資源時,就可能發(fā)生時序上的沖突。如果流水線沖突,CPU自動通過指令延遲的方法解決,有些沖突指令延遲后可以避免,有些則不能避免,需要在指令中間加入NOP空指令才能解決。但這樣消耗了額外的時鐘周期。重新安排指令順序有時可以避免沖突,提高程序執(zhí)行效率,尤其是當NOP指令在循環(huán)內(nèi)部時,可以節(jié)省不少的開銷。分析程序編譯后生成的匯編語言程序,觀察分析是否可以進行優(yōu)化。可以用創(chuàng)建相關(guān)圖,重新分配運算單元和寄存器、創(chuàng)建排序表重新調(diào)整指令順序等方法去掉NOP指令,同時避免流水線沖突。
3.5 優(yōu)化效果
  G.723.1語音編解碼程序經(jīng)過優(yōu)化保證了該算法在DSP中的實時實現(xiàn)。G.723.1協(xié)議幀長30 ms,另外有7.5 ms的前瞻,故總幀長為37.5 ms。在硬件仿真模式下對整個程序運行進行測試,結(jié)果表明,一幀語音信號的編解碼在5.3 kb/s模式下需要3 402 338 clocks,約20.3 ms;在6.3 kb/s模式下需要5 134 901 clocks,約22.83 ms,均低于算法要求的30 ms,在TMS320VC5416上最終完成了G.723.1標準的實時實現(xiàn)。其中各主要模塊和主要代碼段在優(yōu)化前后占用周期和空間的對比分別如表1和表2所示。


  信噪比是衡量語音編解碼質(zhì)量的客觀標準,計算時常用長時信噪比和短時(分段)信噪比兩種準則。短時(分段)信噪比采用分段(通常是10 ms~30 ms)的方法來分別計算每一段語音信號的信噪比,因此很適合反映量化器對不同電平輸入段的量化質(zhì)量。本文采用短時(分段)信噪比作為衡量標準。
  設(shè)每段有N個語音采樣點,則第m段的分段信噪比定義為:
  

x(n)是原始信號,y(n)是輸出信號,N是幀長,M是幀的總數(shù)。
  本文對G.723.1標準進行測試,就圖3所示語音信號計算其短時信噪比。圖中總幀數(shù)150幀,幀長為240個采樣點,按照上式計算SNR=13.56dB。因此可知G.723.1有較高的短時信噪比,語音編解碼質(zhì)量較好,得到的語音信號比較清晰。

 


參考文獻
[1] ITU-T.ITU-T Recommendation G.723.1 dual rate speech coder multimedia communications transmitting at 5.3 and 6.3 Kb/s[S].2006,5.
[2] Texas Instruments.TMS320VC5416 DSK technical reference[R].2002.
[3] Texas Instruments.TMS320VC5416 fixed-point digital signal processor data manual[R].2004.
[4] Texas Instruments.TMS320C54x DSP/BIOS application oro-gramming interface(API) reference guide[R].SPRU404g,2004.
[5] 彭啟琮,管慶.DSP集成開發(fā)環(huán)境-CCS及DSP/BIOS的原理與應(yīng)用[M].北京:電子工業(yè)出版社,2004.
[6] 趙力.語音信號處理[M].北京:機械工業(yè)出版社,2003,4.
[7] 韓紀慶.語音信號處理[M].北京:清華大學(xué)出版社,2004.
[8] 黃永峰.因特網(wǎng)語音通信技術(shù)及其應(yīng)用[M].北京:人民郵電出版社,2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
宅男在线国产精品| 久久国产日韩| 黄色精品一区| 国产亚洲精品自拍| 国产麻豆视频精品| 国产精品午夜电影| 国产精品揄拍500视频| 国产精品久久久久av| 国产精品久久久久毛片软件| 欧美日韩在线亚洲一区蜜芽| 欧美日韩成人网| 欧美日韩免费在线| 国产精品99免视看9| 国产精品高潮呻吟久久| 国产精品久久中文| 国产精品萝li| 国产日韩精品久久久| 国产视频在线观看一区| 国内精品久久久久影院色 | 欧美在线免费观看视频| 亚洲影视九九影院在线观看| 亚洲欧美日韩国产一区二区三区| 亚洲午夜在线| 午夜精品久久久久久久| 午夜在线精品| 亚洲第一在线综合在线| 亚洲精品国产精品国自产观看浪潮| 亚洲人成绝费网站色www| 一本色道久久综合狠狠躁的推荐| 亚洲无线视频| 欧美一区二区日韩| 久久久亚洲国产天美传媒修理工 | 国产日韩在线视频| 国内精品国语自产拍在线观看| 伊人精品成人久久综合软件| 亚洲欧洲在线免费| 亚洲永久字幕| 久久riav二区三区| 最新成人av网站| 在线一区二区视频| 欧美一区二区啪啪| 久久夜色精品亚洲噜噜国产mv| 免费一级欧美片在线播放| 欧美日韩高清在线| 国产女主播视频一区二区| 国产综合色在线视频区| 91久久在线观看| 中文日韩在线视频| 久久精品五月| 亚洲一级黄色| 久久亚洲精品网站| 欧美日韩第一区| 国产一级久久| 亚洲精品国产精品国自产在线| 亚洲一二三区视频在线观看| 久久精品国产免费观看| 一区二区不卡在线视频 午夜欧美不卡在 | 亚洲黄色一区| 亚洲欧美国产va在线影院| 久久久蜜桃精品| 欧美日韩高清在线| 国产一区二区三区电影在线观看| 亚洲黄页视频免费观看| 亚洲欧美另类在线观看| 日韩午夜剧场| 久久精品国产亚洲a| 欧美精品一区二区三区视频| 国产欧美高清| 日韩视频在线观看国产| 久久成人这里只有精品| 亚洲综合三区| 欧美精品精品一区| 国内成+人亚洲| 亚洲午夜一区二区| 夜夜嗨av一区二区三区四区| 久久久天天操| 国产精品卡一卡二卡三| 亚洲日本中文字幕免费在线不卡| 欧美一区二区视频在线观看2020| 在线亚洲电影| 嫩草国产精品入口| 国产日韩欧美91| 一本久久a久久免费精品不卡| 亚洲黑丝在线| 久久久97精品| 国产精品一区在线观看| 亚洲精品一区二区三区婷婷月| 久久精品亚洲热| 欧美一区二区三区喷汁尤物| 欧美日韩精品| 亚洲国产高清视频| 亚洲成色777777在线观看影院| 欧美一区二区日韩| 欧美午夜精品理论片a级大开眼界| 亚洲第一页中文字幕| 亚洲欧美日韩精品久久久| 亚洲图片在线| 欧美全黄视频| 亚洲国产视频一区| 亚洲大胆av| 久久久久久久91| 国产欧美一区二区精品性| 一区二区久久久久久| 亚洲精品国产系列| 男女激情视频一区| 在线播放日韩欧美| 亚洲大胆美女视频| 久久综合给合久久狠狠色| 国产资源精品在线观看| 午夜精品久久久久久久久久久久| 亚洲男人av电影| 欧美午夜视频| 夜夜爽www精品| 亚洲一区免费| 国产精品久久久| 亚洲午夜久久久久久久久电影院| 一区二区三区鲁丝不卡| 欧美精品www| 亚洲欧洲在线看| 99精品国产在热久久| 欧美精品九九99久久| 亚洲精品国产视频| 正在播放欧美一区| 欧美亚洲成人精品| 亚洲一级网站| 欧美在线视频导航| 国产一区二区三区在线播放免费观看 | 久久国产精品久久久久久电车| 国产欧美精品xxxx另类| 午夜精品久久久久久久99樱桃| 欧美一区二区三区四区在线观看地址| 国产精品久久午夜夜伦鲁鲁| 亚洲图片欧美日产| 欧美一区二区大片| 国产专区精品视频| 最新高清无码专区| 欧美日本一区二区视频在线观看| 亚洲另类春色国产| 亚洲免费在线| 国产日韩在线播放| 亚洲黄色视屏| 欧美日韩免费区域视频在线观看| 亚洲午夜一区二区三区| 久久精品99国产精品日本| 在线观看日韩av| 一区二区三区精品视频在线观看| 国产精品二区三区四区| 欧美亚洲一区二区在线观看| 两个人的视频www国产精品| 亚洲国产精品嫩草影院| 国产精品99久久久久久久久| 国产欧美69| 亚洲欧洲在线看| 欧美视频在线一区二区三区| 午夜久久tv| 免费的成人av| 亚洲少妇中出一区| 久久久久亚洲综合| 亚洲精选国产| 欧美一级午夜免费电影| 激情小说另类小说亚洲欧美| 99精品视频一区| 国产精品一区在线播放| 亚洲人被黑人高潮完整版| 欧美性猛交99久久久久99按摩 | 日韩一区二区免费高清| 国产精品影音先锋| 91久久精品国产91性色tv| 欧美性jizz18性欧美| 欧美一级电影久久| 欧美成人一品| 亚洲天堂网在线观看| 久久综合综合久久综合| 在线视频精品| 老司机aⅴ在线精品导航| 艳女tv在线观看国产一区| 久久精品一区| 一区二区三区.www| 免费在线观看日韩欧美| 亚洲永久免费av| 欧美精品精品一区| 久久精品免费电影| 欧美午夜大胆人体| 亚洲国产天堂网精品网站| 国产精品免费网站| 亚洲看片网站| 韩国v欧美v日本v亚洲v| 亚洲图中文字幕| 亚洲国产片色| 久久精品欧洲| 亚洲视频一二区| 欧美精品免费在线| 亚洲福利在线看| 国产精品尤物| 亚洲视频在线观看免费| 亚洲电影激情视频网站| 久久九九热re6这里有精品| 在线综合欧美| 欧美大片网址| 久久精品国产亚洲一区二区|