www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于DSP的G.729語音編解碼器設(shè)計

摘要:設(shè)計了基于DSP的G.729語音編解碼器,并針對G.729算法標(biāo)準(zhǔn)源碼代碼效率低、執(zhí)行時間長的不足,從算法精簡、代碼優(yōu)化等方面進(jìn)行了優(yōu)化。優(yōu)化后的算法在保證了高質(zhì)量語音輸出的同時,提高了編碼效率,實現(xiàn)了對語音信號的實時處理。最后對系統(tǒng)性能進(jìn)行了測試,結(jié)果滿足設(shè)計要求。
關(guān)鍵詞:G.729;DSP;語音編碼;算法優(yōu)化

0 引言
    語音信號處理是現(xiàn)代通信研究的重要內(nèi)容之一,語音壓縮編碼作為其關(guān)鍵技術(shù),如今已得到了極大的發(fā)展。G.729是國際電信聯(lián)盟(ITU)于1996年提出的采用共軛結(jié)構(gòu)代數(shù)碼激勵線性預(yù)測(CS-ACELP)的語音編碼算法,由于其具有低速率、低延時、高質(zhì)量等優(yōu)點,被廣泛應(yīng)用于數(shù)字通信系統(tǒng),如IP電話、視頻會議、移動通信等。數(shù)字信號處理器(DSP)價格低廉,并具有強大的運算能力,用它來實現(xiàn)G.729算法具有很大的現(xiàn)實意義。近年來,國內(nèi)外研究基于DSP的G.729語音編碼算法的學(xué)者很多,但隨著無線通信系統(tǒng)用戶越來越多,以及DSP在結(jié)構(gòu)、性能上的巨大變化,怎樣使該算法在DSP上最高效的實現(xiàn),依然是一個很重要的課題。
    本文首先對G.729算法進(jìn)行了分析,然后結(jié)合DSP的特點,分別進(jìn)行了系統(tǒng)的硬件和軟件設(shè)計。該系統(tǒng)不但滿足G.729算法要求,還可以作為其他語音編譯碼平臺;在此基礎(chǔ)上,本文針對ITU提供的標(biāo)準(zhǔn)源碼代碼效率低、執(zhí)行時間長等不足,提出了算法的具體優(yōu)化技術(shù),并對優(yōu)化結(jié)果進(jìn)行了比較分析。結(jié)果表明,優(yōu)化后的算法在保證語音質(zhì)量的同時,提高了編碼效率,實現(xiàn)了對語音信號的實時處理。

1 ITU-T G.729原理分析
    ITU-T G.729算法以自適應(yīng)預(yù)測編碼技術(shù)為基礎(chǔ),采用矢量量化、合成分析和感覺加權(quán)等技術(shù)。其編碼速率達(dá)到8 Kb/s,合成語音質(zhì)量不低于32 Kb/sADPCM的水平。
    該算法要求輸入信號為8 kHz取樣、16 b線性PCM信號。在編碼器端,每80樣點為一幀(每幀再分為兩個子幀),分析并提取語音信號各種參數(shù)(LPC濾波器系數(shù)、自適應(yīng)碼書和固定碼書的編號、自適應(yīng)碼字增益和固定碼字增益),把這些參數(shù)進(jìn)行80 b編碼發(fā)送。
    在解碼端,把收到的比特流恢復(fù)成參數(shù)編碼,解碼后得到各個參數(shù),用自適應(yīng)碼書編號從自適應(yīng)碼書中得到自適應(yīng)碼字,用固定碼書編號從固定碼書中得到固定碼字,分別乘以它們的增益,按點相加后構(gòu)成激勵序列。激勵LPC綜合濾波器重構(gòu)語音(綜合濾波器由LPC系數(shù)構(gòu)成)。重構(gòu)語音信號在輸出前經(jīng)過后置處理,包括長時后置濾波、短時綜合濾波和高通濾波。

2 系統(tǒng)硬件設(shè)計
    系統(tǒng)硬件結(jié)構(gòu)圖如圖1所示。其中DSP芯片采用TI公司的TMS320VC5416,音頻接口采用16位音頻編解碼芯片TLV320AIC23,SRAM和FLASH分別采用芯片CY7C1041CV33和SST39VF400。此外,系統(tǒng)還配有電源芯片、電壓轉(zhuǎn)換芯片、CPLD(EPM3128ATC100)等。


    系統(tǒng)編碼流程為:由音頻接口芯片TLV320AIC23將模擬信號轉(zhuǎn)換成8K×16 b/s的數(shù)字信號,采樣后的數(shù)字信號通過多通道緩沖串口McB-SP0傳送到DSP的內(nèi)部緩沖區(qū),當(dāng)緩沖區(qū)內(nèi)的數(shù)據(jù)積累到一幀(80×16 b)時啟動編碼程序,編碼完成后將8 Kb/s的壓縮碼流通過數(shù)字接口(Mc-BSP2)輸出至信道。
    系統(tǒng)解碼流程為:由McBSP2將信道發(fā)送來的數(shù)字碼流接收至DSP的內(nèi)部接收緩沖區(qū),然后經(jīng)DSP進(jìn)行解碼處理,解碼后的數(shù)字語音通過Mc-BSP0發(fā)送給TLV320AIC23,經(jīng)過D/A轉(zhuǎn)換恢復(fù)出原始語音信號。由此,該系統(tǒng)最終實現(xiàn)了語音的采集、編碼、發(fā)送和接收、解碼、播放的功能。[!--empirenews.page--]

3 系統(tǒng)軟件設(shè)計
    系統(tǒng)軟件部分主要包括音頻接口模塊、數(shù)字接口模塊、CPLD控制模塊及語音處理模塊等。音頻接口模塊主要完成對TMS320VC5416的多通道緩沖串口McBSP0、McBSP1的配置及對音頻接口芯片的初始化等;數(shù)字接口模塊作為與外部信道的接口,在輸出語音碼流的同時提供幀同步與位同步信號,設(shè)計的重點在于McBSP2的配置,尤其是其內(nèi)部采樣率發(fā)生器的配置;CPLD控制模塊完成TMS320VC5416各個控制信號和地址線的邏輯組合,以擴(kuò)展外圍存儲器SRAM和FLASH,開發(fā)環(huán)境為QuartusⅡ。語音處理模塊是本設(shè)計的核心,將在下面重點介紹。
3.1 語音處理模塊軟件設(shè)計
    語音處理模塊由DSP完成,軟件流程圖如圖2所示。


    系統(tǒng)上電后,首先完成DSP內(nèi)部寄存器、變量、外圍設(shè)備、音頻編解碼芯片的初始化,當(dāng)McBSP有數(shù)據(jù)輸入時,McBSP產(chǎn)生一個事件報告DMA控制器,觸發(fā)DMA通道以后臺形式將數(shù)據(jù)傳輸?shù)浇邮站彌_區(qū);接收緩沖區(qū)每收到一定單元的數(shù)據(jù),觸發(fā)DMA中斷,CPU響應(yīng)該中斷進(jìn)入中斷服務(wù)程序,提取數(shù)據(jù),完成數(shù)據(jù)的編碼或解碼處理;然后再將處理后的數(shù)據(jù)送至發(fā)送緩沖區(qū),由DMA傳送給多通道緩沖串口。
    編解碼算法采用G.729算法,ITU為G.729算法提供了標(biāo)準(zhǔn)C源代碼,并采用模塊化設(shè)計,具有可讀性強、便于維護(hù)等優(yōu)點,但該算法復(fù)雜度較高,而DSP芯片資源有限,處理延時很大。在實際應(yīng)用中,語音編解碼器對算法實時性要求非常高,因此必須對原始代碼進(jìn)行算法精簡和代碼優(yōu)化,這也是本文的重要工作之一。

3.2 編解碼算法優(yōu)化
    G.729算法是經(jīng)過長時間不斷的研究與討論,最終制定出的一個標(biāo)準(zhǔn)算法,對算法本身再進(jìn)行大幅度優(yōu)化是很困難的。不過,可以在算法的細(xì)節(jié)和具體實現(xiàn)方法上進(jìn)行精簡。
3.2.1 碼本搜索算法精簡
    在10維LSP量化碼本搜索中,需要找到一個碼矢量,使得它與輸入矢量的均方誤差最小,如式(1)所示。
   

    在ITU提供的標(biāo)準(zhǔn)算法中,程序每次搜索時,先計算完本次的均方誤差,然后再與之前的最小值進(jìn)行比較。實際上,如果本次未計算完的均方誤差已經(jīng)大于之前保存的最小值時,可以直接停止本次計算進(jìn)入到下一次計算中,這樣能節(jié)省大量乘和累加運算。

[!--empirenews.page--]

圖3是該算法精簡后的流程圖。


    實驗證明,在10幀語音信號的編碼過程中,這部分算法優(yōu)化后平均可減少15 000次左右的L_mac運算的調(diào)用。
3.2.2 去除不必要的溢出判斷
    使用CCS中的profiler工具對ITU提供的標(biāo)準(zhǔn)C源碼進(jìn)行分析,結(jié)果表明,該算法大部分運算都集中在basic_op.c文件中的L_add()、L_mult()等幾個基本函數(shù)上。進(jìn)一步分析發(fā)現(xiàn),這些函數(shù)在溢出判斷上花費了大量的時間,而實際運算中真正會產(chǎn)生溢出的地方非常少。因此,為了進(jìn)一步提高代碼效率,在完全不會產(chǎn)生溢出的地方用簡單的基本運算取代函數(shù)的調(diào)用,這樣即能大大縮短運算時間,還能節(jié)省調(diào)用函數(shù)的開銷。例如:
   
    這段程序中,由于-215≤a[i]≤215-1,-215≤b[i]≤215-1,那么a[i]*b[19-i]顯然不會超出區(qū)間[-231,231-1],即這一部分不會產(chǎn)生溢出問題,因此這里的L_mult函數(shù)便可簡單替換為:
   
    這雖是一段極小的程序,但經(jīng)過這樣簡單的置換后卻能減少數(shù)十個時鐘周期。在整個代碼中類似的例子很多,優(yōu)化后的效果非常明顯。
3.2.3 循環(huán)優(yōu)化
    對循環(huán)的優(yōu)化一直是代碼優(yōu)化的重點,一般的循環(huán)優(yōu)化包括:循環(huán)合并、循環(huán)展開、循環(huán)內(nèi)部的指令盡可能移到循環(huán)外等。這些方法在文獻(xiàn)中有詳細(xì)的介紹,這里就不再贅述。TMS320C54X系列芯片采用6級流水線結(jié)構(gòu),可以并行執(zhí)行多條指令,并在一定條件下可以實現(xiàn)零開銷循環(huán)處理。[!--empirenews.page--]
    所謂零開銷循環(huán)是指處理器在執(zhí)行循環(huán)時,不用在循環(huán)終止的判斷、循環(huán)的跳轉(zhuǎn)及循環(huán)計數(shù)器的遞減上額外花費時間。但這就要求編譯器必須知道初始值、更新和結(jié)束條件;循環(huán)體內(nèi)部不能調(diào)用函數(shù);循環(huán)體內(nèi)不能包含break語句;循環(huán)表達(dá)式中不能含有隨循環(huán)體中的條件變化而變化的循環(huán)變量;循環(huán)計數(shù)應(yīng)該遞減等。為了實現(xiàn)零開銷循環(huán),本文對標(biāo)準(zhǔn)C代碼進(jìn)行了大量優(yōu)化,如在文件Qua_lsp.c中有如下循環(huán):
   
    優(yōu)化前后本段代碼所消耗的時鐘周期數(shù)對比見表1。


3.2.4 使用DSPLIB庫優(yōu)化
    TMS320C54X系列提供的通用數(shù)字信號處理算法庫(DSPLIB庫)包含有50多個通用的信號處理程序,全部由匯編語言編寫,并可由C語言調(diào)用,方便C語言與匯編語言混合編程。在計算量大、對實時性要求又高的G.729中調(diào)用DSPLIB庫函數(shù),對于提高代碼效率具有很大的意義。
    DSPLIB幾乎包括了當(dāng)前已經(jīng)成熟的數(shù)字信號處理的大部分算法。如:FFT運算、濾波與卷積運算、自適應(yīng)濾波運算、相關(guān)運算、數(shù)學(xué)函數(shù)運算、三角函數(shù)運算、矩陣運算等。
3.2.5 指針尋址
    在G.729算法中包含了大量數(shù)組元素的存取操作,ITU提供的標(biāo)準(zhǔn)代碼直接對數(shù)組進(jìn)行操作,使得浪在地址計算上的時間開銷很大。若對數(shù)組采用指針尋址方式,可節(jié)省很多時間。而通常情況下數(shù)組又都應(yīng)用在循環(huán)內(nèi)部,指針尋址方式更加凸顯出了它的必要性。
    除了以上幾種優(yōu)化方法外,使用內(nèi)聯(lián)函數(shù),合理利用暫存器,使用宏定義等也都對代碼的優(yōu)化起到很好的作用。

4 測試結(jié)果及性能分析
    利用CCS提供的性能分析工具(profiler)對優(yōu)化前后的代碼進(jìn)行分析,在TMS320VC5416上實現(xiàn)一幀數(shù)據(jù)編碼所用的時間分別為96 ms與8 ms,其中TMS320VC5416的CPU時鐘頻率為160 MHz。對幾個主要函數(shù)優(yōu)化前后的運行時間進(jìn)行比較,對比如表2所示。


    分析結(jié)果表明,優(yōu)化后的時間比優(yōu)化前大大縮短,并嚴(yán)格控制在了10 ms以內(nèi),保證了系統(tǒng)的實時性。同時,將原始語音和重建語音的語音波形進(jìn)行對比,如圖4所示。觀察對比波形可知,編碼前后語音波形差別很小,重建語音基本保持了原始語音的信息。通過主觀聽覺測試,重建語音清晰易懂,質(zhì)量較高,MOS主觀評分在4.0以上,并且整個系統(tǒng)運行穩(wěn)定。



5 結(jié)語
    本文實現(xiàn)了基于DSP的語音編譯碼器設(shè)計,該設(shè)計對ITU提供的G.729源代碼進(jìn)行了算法精簡和代碼優(yōu)化,優(yōu)化后的代碼具有編碼效率高、占用資源少、實時性強等優(yōu)點。與源代碼相比,它的編碼效率提高了10倍以上,克服了源代碼難以應(yīng)用在實時語音通信系統(tǒng)的缺點。
    目前,該設(shè)計已經(jīng)應(yīng)用在本實驗室的語音通信實驗系統(tǒng)中,與傳統(tǒng)語音實驗系統(tǒng)相比,為學(xué)生提供了更先進(jìn)的語音編碼實驗,模塊化的軟件設(shè)計也更適合學(xué)生的參與。同時,該系統(tǒng)采用通用的DSP硬件平臺,具有可擴(kuò)展性強的特點,可實現(xiàn)多種語音編碼算法,為學(xué)生自主性學(xué)習(xí)提供了良好的條件。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫毥谦F公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

加利福尼亞州圣克拉拉縣2024年8月30日 /美通社/ -- 數(shù)字化轉(zhuǎn)型技術(shù)解決方案公司Trianz今天宣布,該公司與Amazon Web Services (AWS)簽訂了...

關(guān)鍵字: AWS AN BSP 數(shù)字化

倫敦2024年8月29日 /美通社/ -- 英國汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動 BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運行,同時企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險,如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報道,騰訊和網(wǎng)易近期正在縮減他們對日本游戲市場的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國國際大數(shù)據(jù)產(chǎn)業(yè)博覽會上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點: 有效應(yīng)對環(huán)境變化,經(jīng)營業(yè)績穩(wěn)中有升 落實提質(zhì)增效舉措,毛利潤率延續(xù)升勢 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競爭力 堅持高質(zhì)量發(fā)展策略,塑強核心競爭優(yōu)勢...

關(guān)鍵字: 通信 BSP 電信運營商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺與中國電影電視技術(shù)學(xué)會聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會上宣布正式成立。 活動現(xiàn)場 NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會上,軟通動力信息技術(shù)(集團(tuán))股份有限公司(以下簡稱"軟通動力")與長三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉