肉不停h共妻h山中猎户h,精品无码一区二区三区爱欲,激情综合色综合啪啪五月丁香搜索,欲色av无码一区二区人妻

華安瑞成(北京)科技有限公司

G.729語音編碼算法在TriMedia TM1300 DSP上的實現(xiàn)

時間:2018-6-23閱讀:285
分享:

 摘要:介紹了ITU語音編碼算法G.729的原理和TM1300 DSP處理器的特性,描述了G.729算法在TM1300上的優(yōu)化、實現(xiàn)。
  關(guān)鍵詞:G.729, CS-ACELP,TM1300,VLIW,并行。
  一、G.729編碼器介紹
  G.729是電信聯(lián)盟(ITU,International ecommunication Union)于1996年推出的采用共軛結(jié)構(gòu)-代數(shù)碼激勵線性預(yù)測(CS-ACELP, Conjugate-Structure Algebraic-Code- Excited Linear-Predication)技術(shù)的具有8kbit/s碼率的語音編碼算法建議,該算法是以語音編碼方案中的碼激勵線性預(yù)測(CELP,Code Excited Linear Predication)技術(shù)為基礎(chǔ)提出的,其原理如圖1所示。
  G.729是一種單聲道語音信號的壓縮編碼算法,模擬信號經(jīng)過話帶濾波器后,按8KHz的頻率采樣并轉(zhuǎn)換成16bit的線性PCM信號(即128kbit/s的碼流),這就是圖中所示的G.729編碼器的輸入語音信號。G.729編碼器以10ms的輸入幀(80個采樣點)為單位進行編碼。G.729編碼器的輸出為8kbit/s的碼流,因此其壓縮比高達16:1。而經(jīng)G.729解碼器還原后的聲音質(zhì)量卻達到了相當(dāng)高的水準(zhǔn),其主觀平均得分(MOS,Mean Opinion Score)在4分以上(MOS高得分為5分),屬于良好級別,人的耳朵幾乎察覺不到聲音有失真的情況,音質(zhì)與碼率為64kbit/s的G.711編碼標(biāo)準(zhǔn)相近,而占用的帶寬僅為G.711的1/8。另外G.729編碼算法的延時較小,在15ms左右。
  雖然G.729具有較低的碼率、較高的還原音質(zhì)和較小的延時等優(yōu)點,但是由于其存在算法復(fù)雜度大和數(shù)據(jù)存儲量大的固有缺陷,在早期并沒有得到廣泛的實際應(yīng)用。后來隨著超大規(guī)模集成電路VSLI工藝的進步,極大地推動數(shù)字信號處理器(DSP)技術(shù)的發(fā)展,各大廠商紛紛推出了各具特色的高性能DSP,也大大降低了實現(xiàn)G.729語音編碼算法的成本。目前,G.729已經(jīng)廣泛應(yīng)用于諸如、會議電視、數(shù)字音視頻監(jiān)控等領(lǐng)域。

 

二、Trimedia TM1300處理器
  TM1300處理器是Philips公司推出的一款32位性能優(yōu)良的多媒體處理芯片,特別針對數(shù)字視頻和音頻應(yīng)用進行了優(yōu)化,集成了視頻輸入/輸出接口、音頻輸入/輸出接口、IIC接口、PCI接口、SDRAM控制器等外圍設(shè)備接口,極大地簡化了外圍電路的設(shè)計,提高了系統(tǒng)的穩(wěn)定性、可靠性,降低了系統(tǒng)的總體成本。因此TM1300處理器在音視頻處理卡、多媒體嵌入式設(shè)備中得到了廣泛的應(yīng)用。
  TM1300處理器*的的多媒體處理性能得益于其核心CPU、多媒體操作指令集和存儲器體系結(jié)構(gòu)的設(shè)計。TM1300的核心是32位的超長指令字結(jié)構(gòu)(VLIW,Very-Long Instruction Word)的處理器,內(nèi)部有11種共27個執(zhí)行單元,在每一個時鐘周期內(nèi)可以同時安排5個執(zhí)行單元進行5個操作,如圖2所示。

TM1300的指令

 TM1300有一整套專門針對多媒體運算的DSP操作指令,每一個操作可以執(zhí)行多個算術(shù)運算,比如操作UIFIR8UU(a,b)包括4個乘法運算和1個加法運算,這使TM1300具有強大的多媒體數(shù)據(jù)處理能力。而這些DSP操作指令都可以在C程序中直接調(diào)用,大大方便了編程。TM1300處理器內(nèi)部含有128個通用寄存器,這些寄存器不是分段的,所有操作都能使用這些寄存器。TM1300使用32位線性尋址,尋址能力達到4GB,同時為了解決高速VLIW CPU和低速外存SDRAM之間的數(shù)據(jù)交換瓶頸,TM1300內(nèi)部集成了16KB的高速數(shù)據(jù)緩存和32KB的高速指令緩存(CACHE),以確保VLIW CPU的全速運行。TM1300的二進制運行代碼以壓縮的格式存放在SDRAM和指令CACHE中,壓縮的代碼一方面可以提高指令CACHE的準(zhǔn)確率,另一方面可以減少指令CACHE與SDRAM之間的數(shù)據(jù)交換。指令CACHE中有一個專門的指令解壓機構(gòu),它負(fù)責(zé)解壓縮指令并以224位的數(shù)據(jù)位寬向VLIW CPU提供指令。而其數(shù)據(jù)CACHE是雙端口的,其數(shù)據(jù)位寬達64位,并且VLIW CPU與緩存之間是以CPU的運行頻率交換數(shù)據(jù)的。
  TM1300處理器的音頻輸入單元(AI)外接A/D轉(zhuǎn)換器,支持1個或2個聲道的音頻輸入采樣,每個采樣點可以設(shè)為8位或16位,可以工作在主模式或從模式,支持標(biāo)準(zhǔn)立體聲IIS格式和左對齊格式,采樣的數(shù)據(jù)通過雙DMA通道直接存放在SDRAM中,通過中斷方式通知CPU,減輕了CPU的負(fù)擔(dān)。
  三、G.729在TM1300上的優(yōu)化、實現(xiàn)
  電信聯(lián)盟ITU在推出G.729編解碼器算法的建議的同時,給出了G.729算法的一種軟件參考實現(xiàn),也給出了一組測試向量,用以驗證軟件的正確性。該軟件采用移植性較好的ANSI C語言編寫的,因此可以在許多硬件平臺上編譯、運行。但是由于軟件采用的是16位定點運算,而且沒有針對任何硬件平臺做任何優(yōu)化,也沒有考慮并行運算,所以要充分發(fā)揮32位的TM1300 CPU的強勁性能,降低實現(xiàn)成本,必須經(jīng)過大量的優(yōu)化工作。代碼優(yōu)化過程是一個不斷調(diào)整改造程序、利用測試向量驗證正確性和查看系統(tǒng)資源消耗(主要指CPU占用率和所需內(nèi)存)的過程,我們主要做了下列優(yōu)化工作。
  1、參考軟件采用的是16位定點運算,而TM1300是32位的處理器,因此我們把2個
16位的音頻采樣數(shù)據(jù)合成一個32位的數(shù)據(jù),把絕大部分程序改造成32位定點運算的程序。
  2、參考軟件中包含了一組用函數(shù)實現(xiàn)的基本操作,包括16位加法、減法、乘法、取飽和、左移、右移等函數(shù),從程序運行的角度看,這些基本函數(shù)效率十分低,而且不利于提高程序的并行度。我們利用TM1300的DSP操作指令把大部分這種函數(shù)改成單操作指令。如原來的16位加法函數(shù):
            Word16 add(Word16 var1,Word16 var2)
            {
            Word16 var_out;
            Word32 L_somme;
            L_somme = (Word32) var1 + var2;
            var_out = sature(L_somme);
            return(var_out);
  其中sature()又是‘取飽和’函數(shù),把32位帶符號整數(shù)轉(zhuǎn)換成16位帶符號整數(shù)。利用TM1300的DSP操作指令,我們把它改成下面這樣一個宏定義:
  #define add(var1, var2) ((Word16)DSPIDUALADD((var1), (var2)))
3、充分利用TM1300的128個通用寄存器,函數(shù)的臨時變量盡量不要使用數(shù)組,而是直接用單個整數(shù),因為TM1300編譯器把數(shù)組編譯成內(nèi)存方式的變量,而單個整數(shù)的臨時變量則用寄存器來保存,這樣不但提高了運行速度,也有利于提高數(shù)據(jù)CACHE的準(zhǔn)確率。
  4、通過調(diào)整程序的流程來盡量提高程序的并行度,特別是耗時的函數(shù),如改變循環(huán)的次數(shù)、步長等。TM1300的軟件開發(fā)工具SDE中包含有測試函數(shù)并行度的工具,可以查看單個函數(shù)的并行度。我們知道TM1300的并行度為5,即1個時鐘周期執(zhí)行5個操作,經(jīng)過我們的優(yōu)化,G.729編碼器的幾個重點函數(shù)的并行度達到了4.2以上。
  5、在C語言程序中,直接調(diào)用TM1300的匯編指令,特別是針對多媒體運算的DSP操作,盡量選用能并行執(zhí)行的操作。
  6、充分使用TM1300的2個高速緩存:指令CACHE和數(shù)據(jù)CACHE,提高CACHE的準(zhǔn)確率。對于程序,在不影響并行度的前提下,使程序盡量小,避免程序的大范圍跳轉(zhuǎn),這樣可以提高指令CACHE的效率;TM1300的數(shù)據(jù)CACHE是以64字節(jié)為單位的,即每次從SDRAM讀入數(shù)據(jù)或把數(shù)據(jù)調(diào)出數(shù)據(jù)CACHE,至少是64個字節(jié),因此在許多地方,我們對數(shù)據(jù)的存放位置進行了重新調(diào)整,使讀入CACHE的數(shù)據(jù)能被CPU充分利用。
  通過上述優(yōu)化措施,我們花比較低的代價在TM1300 DSP上實現(xiàn)了G.729編碼器算法。在DSP主頻為175MHZ、SDRAM頻率為140MHZ的TM1300硬件平臺上,G.729編碼器完成實時語音編碼的CPU占用率為8%左右,并且通過了所有測試向量的驗證。
參考文獻
  1、ITU-T Recommendation G.729, Coding of Speech At 8 kbit/s Using Conjugate-Structure Algebraic-Code-Excited Linear-Prediction(CS-ACELP)
  2、TriMedia TM1300 DataBook

會員登錄

×

請輸入賬號

請輸入密碼

=

請輸驗證碼

收藏該商鋪

X
該信息已收藏!
標(biāo)簽:
保存成功

(空格分隔,最多3個,單個標(biāo)簽最多10個字符)

常用:

提示

X
您的留言已提交成功!我們將在第一時間回復(fù)您~

以上信息由企業(yè)自行提供,信息內(nèi)容的真實性、準(zhǔn)確性和合法性由相關(guān)企業(yè)負(fù)責(zé),智慧城市網(wǎng)對此不承擔(dān)任何保證責(zé)任。

溫馨提示:為規(guī)避購買風(fēng)險,建議您在購買產(chǎn)品前務(wù)必確認(rèn)供應(yīng)商資質(zhì)及產(chǎn)品質(zhì)量。

撥打電話
在線留言
久久精品国产99国产精品| 女人被添全过程A片自慰| 国产成人盗摄精品a片在线观看| 久久精品国产亚洲AVAPP下载| 亚洲av无码一区二区三区在线高| 人妻忍着娇喘被中进中出视频| 总裁攻紧致h粗大学生受小说| 大陆国产乱人伦| 熟女人妇交换俱乐部| 老农民里老干棒媳妇回来了吗| 亚洲午夜av久久久精品影院| 西西人体大胆啪啪私拍色约约| 精品无码久久久久国产| 交而不泄的方法| 无人区乱码一区二区三区| 偷看娇妻被交换| 野花日本免费观看高清电影8| 国产亚洲成av人片在线观黄桃| 门卫老李干了校花琦琦| 日本无码欧美一区精品久久| 最刺激的交换夫妇中文字幕| 国产SUV精品一区二区88L| 久久变态刺激另类sm按摩| 精品呦啊呦v视频在线观看| 青青草视频在线| 少妇把腿扒开让我添| 亚洲中文字幕日本在线观看| 国产精品美女久久久免费| 亚洲国产精品无码专区网站| 久久久久久精品久久久| 18禁裸乳无遮挡自慰免费动漫| 女性人体图片| 无码人妻精品一区二区三区在线| 囯产香蕉97碰碰碰视频在线观看| 春药play揉屁股play男男| 欧美a级suv大全| 一边亲着面膜胸口| 亚洲欧洲自拍拍偷精品 美利坚| 五十路熟女丰满大屁股| 美国式禁忌完整版1一4| 自己撅起来乖乖挨c烂h|