當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式教程
[導(dǎo)讀]G.723.1編譯碼算法的DSP實(shí)現(xiàn)

【摘 要】 介紹了ITU-TG.723.1標(biāo)準(zhǔn)語(yǔ)音編譯碼器的算法及其在ADSP-2181芯片上的實(shí)現(xiàn) 。軟硬件結(jié)合實(shí)現(xiàn)了語(yǔ)音信號(hào)的采樣和實(shí)時(shí)編譯碼,完全符合ITU-TG.723.1標(biāo)準(zhǔn)的定點(diǎn)算法,通過(guò)了ITU-T的所有測(cè)試向量。
    關(guān)鍵詞:語(yǔ)音編譯碼,DSP,ITU┐TG.723.1

1 引 言
  當(dāng)前,Voice over IP(VoIP)技術(shù)正在不斷普及,其中使用的低碼率語(yǔ)音壓縮標(biāo)準(zhǔn)主要有G.723 .1和G.729兩種。隨著VoIP技術(shù)的不斷發(fā)展,要求產(chǎn)品的集成度與性能進(jìn)一步提高,利用新一代高性能DSP芯片,實(shí)現(xiàn)單片DSP處理多路語(yǔ)音信號(hào),是今后的發(fā)展趨勢(shì)。
  G.723.1標(biāo)準(zhǔn)是ITU組織于1996年推出的一種低碼率編碼算法。主要用于對(duì)語(yǔ)音及其它多媒體聲音信號(hào)的壓縮,如可視電話(huà)系統(tǒng)、數(shù)字傳輸系統(tǒng)和高質(zhì)語(yǔ)音壓縮系統(tǒng)等。G.723.1標(biāo)準(zhǔn)可在6.3kbps和5.3kbps兩種碼率下工作。其中,高碼率算法具有較高的重建語(yǔ)音質(zhì)量,而低碼率算法的計(jì)算復(fù)雜度則較低。與一般的低碼率語(yǔ)音編碼算法一樣,G.723.1標(biāo)準(zhǔn)采用線性預(yù)測(cè)的合成分析法。對(duì)激勵(lì)信號(hào)進(jìn)行量化時(shí),高碼率算法采用多脈沖最大似然量化(MP-MLQ),而低碼率算法則采用算術(shù)碼本激勵(lì)線性預(yù)測(cè)(ACELP)。
2 算法介紹
  語(yǔ)音信號(hào)的參數(shù)模型是用激勵(lì)信號(hào)激勵(lì)一個(gè)系統(tǒng)模型來(lái)模仿氣流沖激聲道產(chǎn)生的聲音。線性預(yù)測(cè)法基于全極點(diǎn)模型假定,采用時(shí)域均方誤差最小準(zhǔn)則來(lái)估計(jì)模型參數(shù)。分析過(guò)程中要提取的參數(shù)包括聲道系統(tǒng)的LSP參數(shù)、自適應(yīng)碼本的延遲和增益,
以及固定碼本中脈沖的位置和符號(hào)。
  G.723.1編碼器能對(duì)以8kHz采樣的話(huà)帶語(yǔ)音信號(hào)進(jìn)行壓縮。為了降低碼率,G.723.1采用了較長(zhǎng)的幀尺寸,每幀240個(gè)樣值,即30毫秒幀長(zhǎng)。每幀輸入信號(hào)首先通過(guò)一階高通濾波器濾除直流分量,然后將之分成四個(gè)60個(gè)樣值的子幀,每個(gè)子幀獨(dú)立進(jìn)行LPC分析。為了提高LPC系數(shù)的連續(xù)性,采用了長(zhǎng)度為180個(gè)樣值的重疊窗,即同時(shí)包含前后兩個(gè)子幀,這使算法引入60個(gè)樣值的超前時(shí)延,因此算法的總時(shí)延為37.5毫秒。LPC系數(shù)用線性譜頻率(LSF)表示,LSF參數(shù)采用預(yù)測(cè)分裂矢量量化,只對(duì)第四子幀進(jìn)行。為了提高量化感知質(zhì)量,高通濾波后的語(yǔ)音信號(hào)需通過(guò)共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器以生成初始目標(biāo)信號(hào)。前者參數(shù)由各子幀的未量化LPC系數(shù)構(gòu)成,后者通過(guò)對(duì)每?jī)勺訋M(jìn)行開(kāi)環(huán)基音周期估計(jì)得到,其中基音周期的范圍為18到142個(gè)樣值。LPC合成濾波器、共振峰感知加權(quán)濾波器和諧振峰噪聲整形濾波器用于系統(tǒng)零輸入響應(yīng)計(jì)算和最佳激勵(lì)估計(jì)。G.723.1編碼器還包括一個(gè)五階基音預(yù)測(cè)器,其參數(shù)根據(jù)開(kāi)環(huán)基音估計(jì)值和脈沖響應(yīng)進(jìn)行閉環(huán)基音搜尋得到。在進(jìn)行最佳激勵(lì)估計(jì)時(shí),需從初始目標(biāo)信號(hào)中減去系統(tǒng)零輸入響應(yīng)和基音預(yù)測(cè)器貢獻(xiàn)以得到最終目標(biāo)信號(hào),然后針對(duì)高低碼率分別采用MP-MLQ和ACELP方法進(jìn)行量化。其中,LSF參數(shù)、基音值和激勵(lì)參數(shù)需傳送給解碼器。
  解碼器首先根據(jù)得到的LSF參數(shù)重建LPC合成濾波器,然后根據(jù)基音值和激勵(lì)參數(shù)得到自適應(yīng)碼本激勵(lì)信號(hào)和固定碼本激勵(lì)信號(hào)。
2.1 聲道模型參數(shù)的提取
    十階全極點(diǎn)模型系統(tǒng)的傳遞函數(shù)為:
      
  其中,S(z)和U(z)分別是輸出信號(hào)s(n)和輸入信號(hào)u(n)的Z變換。因此誤差信號(hào)為:
  
要使均方誤差最小,{ak}必定滿(mǎn)足=1,2,...10),由此可得到以k為變量的方程組:
   
其中,R(n)為S(n)的自相關(guān)函數(shù)值。對(duì)于這個(gè)Toeplitz矩陣,用Durbin遞推算法可方便求解。
  因?yàn)榫€譜對(duì)參數(shù)(LSP)良好的量化特性和內(nèi)插特性,LPC參數(shù)要轉(zhuǎn)換為L(zhǎng)SP參數(shù)進(jìn)行傳輸。
設(shè)線性濾波器的逆濾波器為

ωi和θi分別是P(z)和Q(z)的第i個(gè)零點(diǎn)。ωi和θi成對(duì)出現(xiàn),反映信號(hào)的頻譜特性,因此稱(chēng)為線譜對(duì)。對(duì)P(z)和Q(z)的系數(shù)做離散傅立葉變換得到zk=e-jπk/N(k=0,1,2...N)各點(diǎn)的值,搜索極小值點(diǎn)的位置,就是可能的零點(diǎn)位置。
2.2 自適應(yīng)碼本的搜索
  開(kāi)環(huán)搜索是基于整幀的整數(shù)基音估計(jì)。為了提高可靠性,對(duì)原始信號(hào)進(jìn)行預(yù)處理,用中心削波函數(shù)對(duì)原始信號(hào)進(jìn)行削波。然后用自相關(guān)基音檢測(cè)法估
計(jì)基音Top。閉環(huán)搜索是基于子幀的基音細(xì)搜索。將LPC合成濾波器、共振峰感知加權(quán)濾波器和諧波噪聲濾波器一起構(gòu)成綜合濾波器,計(jì)算出該綜合濾波器的沖激響應(yīng)。用估算出的開(kāi)環(huán)基音周期和計(jì)算所得綜合濾波器的沖激響應(yīng),通過(guò)一個(gè)五階的基音預(yù)測(cè)器,可計(jì)算出閉環(huán)基音周期。
2.3 固定碼本的搜索
  對(duì)自適應(yīng)碼本搜索后得到的殘差余量信號(hào)進(jìn)行固定碼本搜索。
  對(duì)高碼率(6.3kbps)的固定碼本搜索采用脈沖最大似然量化法(MP-MLQ)。激勵(lì)信號(hào)可表示為
其中,G為增益因子,δ(n)為單位脈沖響應(yīng),{ak}和{mk}分別是單位脈沖響應(yīng)的符號(hào)和位置。M為脈沖的數(shù)目,偶數(shù)幀取6,奇數(shù)幀取5。
  編碼算法的任務(wù)是估計(jì)G、{ak}和{mk},使誤差信號(hào)e〔n〕的均方值最小。

其中,r〔n〕表示目標(biāo)矢量,自適應(yīng)碼本搜索后得到的殘差信號(hào),h〔n〕表示加權(quán)合成濾波器的沖激響應(yīng)。
  對(duì)低碼率(5.3kbps)編碼器固定碼本搜索采用代數(shù)碼本激勵(lì)線性預(yù)測(cè)法(ACELP)。每一子幀中有4個(gè)脈沖,它們可能的位置如表1所示。
表1


 

  碼本搜索同樣是使加權(quán)語(yǔ)音信號(hào)r〔n〕與加權(quán)合成語(yǔ)音信號(hào)之間均方誤差最小。即:

其中,r表示目標(biāo)矢量,自適應(yīng)碼本搜索后得到的殘差信號(hào),G是碼本增益,vξ是代數(shù)碼本中索引ξ對(duì)應(yīng)的碼本,H是加權(quán)合成濾波器的截?cái)鄾_激響應(yīng)。
    要求最佳碼本,即要搜索使τξ最大的ξ,[!--empirenews.page--]
 
其中,τξ是一個(gè)中間參數(shù),d是r〔n〕和h〔n〕之間的相關(guān)值,Φ是沖激響應(yīng)的協(xié)方差矩陣。C、ε的計(jì)算:

  對(duì)奇位置的碼矢量,先把偶脈沖移一個(gè)樣本位置,然后用上式計(jì)算。
3 算法實(shí)現(xiàn)
3.1 硬件設(shè)計(jì)
    系統(tǒng)框圖如圖1所示。


 


  模擬的語(yǔ)音信號(hào)通過(guò)TP3057的A/D轉(zhuǎn)換變?yōu)閿?shù)字信號(hào)送入ADSP-2181(采樣頻率8kHz)。TP3057是美國(guó)國(guó)家半導(dǎo)體公司生產(chǎn)的A律編/解碼器,它包含一個(gè)利用A/D和D/A轉(zhuǎn)換結(jié)構(gòu)的A律脈沖編碼調(diào)制的編解碼器/濾波器單片電路和一個(gè)串行PCM接口。其中,編碼部分還包含一個(gè)可調(diào)輸入增益的放大器、一個(gè)有源RC前置濾波器、自動(dòng)調(diào)零電路、一個(gè)A率壓縮編碼器。解碼部分包括一個(gè)A律解碼器和截止頻率為3400Hz的低通濾波器。前者從A律壓擴(kuò)的信號(hào)中重建模擬信號(hào),后者校正譯碼器輸出的sinx/x響應(yīng)并濾除高頻信號(hào)。
  ADSP-2181是Analog Devices公司生產(chǎn)的一種性能優(yōu)越的單片機(jī),適合于高速的數(shù)字信號(hào)處理。 ADSP-2181除了三個(gè)運(yùn)算單元、數(shù)據(jù)地址發(fā)生器和一個(gè)程序序列器,還含有兩個(gè)串行口、一個(gè)16位的內(nèi)部IDMA口、一個(gè)8位的BDMA口、一個(gè)可編程定時(shí)器、外部中斷能力及片內(nèi)程序和數(shù)據(jù)存儲(chǔ)器。片內(nèi)集成了80k字節(jié)的存儲(chǔ)器,包括16k長(zhǎng)度為24bit的程序存儲(chǔ)器和16k長(zhǎng)度為16bit的數(shù)據(jù)存儲(chǔ)器。
  利用IDMA口的自動(dòng)接受發(fā)送功能,可以方便地實(shí)現(xiàn)ADSP-2181與主CPU間的數(shù)據(jù)交互。PC機(jī)通過(guò)IMDA口將程序裝載入ADSP-2181內(nèi)部存儲(chǔ)器中。在ADSP-2181全速執(zhí)行時(shí),主機(jī)可以查詢(xún)其狀態(tài),讀取壓縮后的碼流,也可送入待解碼的數(shù)據(jù)。
3.2 軟件設(shè)計(jì)
  軟件設(shè)計(jì)包括三個(gè)模塊:接口模塊、編碼模塊和解碼模塊。
  接口模塊實(shí)現(xiàn)ADSP-2181與主CPU之間的數(shù)據(jù)交換。該模塊包括DSP的主控程序和數(shù)據(jù)傳輸兩部分。DSP的主控程序負(fù)責(zé)將采集到的語(yǔ)音數(shù)據(jù)分幀,送入編碼器,并將接受到的碼流分類(lèi)后送入解碼模塊。數(shù)據(jù)傳輸部分負(fù)責(zé)采集數(shù)據(jù)和與主CPU的數(shù)據(jù)交換。
  DSP程序根據(jù)ITU-TG.723.1標(biāo)準(zhǔn)定點(diǎn)算法,分為初始化(G723—Init)、編碼(G723—Incode)、解碼(G723—Decode)三個(gè)模塊。
    G723—Icode對(duì)包含240個(gè)采樣點(diǎn)的一幀信號(hào)進(jìn)行編碼,返回12個(gè)或10個(gè)字長(zhǎng)的二進(jìn)制數(shù)據(jù)。
    輸入數(shù)據(jù)由串口得到,放在數(shù)組G723—Enc—Inp中,返回值放在數(shù)組G723—Enc—Out中,對(duì)于6.3kbps長(zhǎng)工為12個(gè)字,對(duì)于5.3kbps長(zhǎng)度為10個(gè)字。其格式按照G.723.1標(biāo)準(zhǔn)進(jìn)行封裝。
  G723—Decode根據(jù)接收到的12字或10字打包數(shù)據(jù)重建240個(gè)語(yǔ)音樣點(diǎn)。輸入數(shù)據(jù)放在G723 
  Dec—Inp中,輸出放在數(shù)組G723—Dec—Out中。
  主機(jī)程序采用VisualC++編寫(xiě),通過(guò)串口與DSP通信。
3.3 C語(yǔ)言的優(yōu)化
  開(kāi)發(fā)中采用AD公司的集成仿真軟件VisualDSP++,但是通常,C編譯器能完成整個(gè)工作的70%,而30%的進(jìn)一步優(yōu)化必須通過(guò)手寫(xiě)匯編來(lái)實(shí)現(xiàn)。
3.3.1 循環(huán)展開(kāi)
  使用具有并行能力的DSP開(kāi)發(fā)軟件時(shí),一個(gè)重要的思想就是充分利用DSP的字長(zhǎng)和數(shù)目眾多的運(yùn)算單元,盡量把循環(huán)體展開(kāi)。通過(guò)增加每次循環(huán)中執(zhí)行的指令數(shù)來(lái)減少總的循環(huán)次數(shù),可使得在同樣的時(shí)鐘周期內(nèi)能運(yùn)行更多的指令,提高了循環(huán)的效率。
3.3.2 提高寄存器的利用率
  DSP芯片內(nèi)部的運(yùn)算單元運(yùn)行效率非常高,但如果寄存器和數(shù)據(jù)總線之間的數(shù)據(jù)交換頻繁,將使DSP的執(zhí)行效率大打折扣。因?yàn)镈SP在進(jìn)行內(nèi)存操作時(shí),往往需要若干周期的延遲,如Load指令要有4個(gè)周期的延遲,Store指令需要2個(gè)周期的延遲。為了減少耗時(shí)的內(nèi)存操作,可以在程序進(jìn)入循環(huán)體之前,將要頻繁使用的數(shù)據(jù)預(yù)先放入寄存器,然后反復(fù)調(diào)用,實(shí)踐證明這種方法可以提高一部分效率。
4 實(shí)驗(yàn)結(jié)果
  所有代碼全部通過(guò)了ITU-T測(cè)試矢量的測(cè)試。
測(cè)試結(jié)果表明,對(duì)于高碼率(6.3kbps)所需計(jì)算量為24.8MIPS,對(duì)于低碼率(5.3kbps),所需計(jì)算量為21.3MIPS。該實(shí)現(xiàn)可以在IP電話(huà)、視頻會(huì)議中得到廣泛應(yīng)用。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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