基于Blackfin的VoiceEngine嵌入式方案
VoIP硬件制造商在設(shè)計產(chǎn)品時,必須解決語音包環(huán)境中與話音質(zhì)量相關(guān)的以下幾個主要問題。
本文引用地址:http://www.ex-cimer.com/article/81639.htm網(wǎng)絡(luò)降級問題
三個與語音包網(wǎng)絡(luò)有關(guān)的主要因素嚴(yán)重影響著感知的語音質(zhì)量,它們是:延遲、抖動以及語音包丟失。這三個因素都源自語音包網(wǎng)絡(luò)的性質(zhì),因為語音包網(wǎng)絡(luò)無法保證語音數(shù)據(jù)包及時或者全部到達(dá)接收端。
延遲
雙向通信需要考慮的一個重要問題是發(fā)射機(jī)與接收機(jī)之間的延遲。這個延遲將帶來兩個問題:回聲與通話重疊。
在VoIP 通話中有許多延遲因素,主要包括算法延遲、處理延遲以及網(wǎng)絡(luò)延遲。算法延遲與使用的語音編碼/解碼器有關(guān),出現(xiàn)算法延遲的原因是塊處理成幀。此外,許多編碼/解碼器采用的塊處理還具有前瞻功能,該功能要求在塊編碼以前對未來語音樣本進(jìn)行緩沖,這將增加算法延遲。處理延遲與正在進(jìn)行的信號處理以及編碼比特數(shù)打包有關(guān)。網(wǎng)絡(luò)延遲則是由于傳輸線路、路由器緩沖器以及抖動緩沖器中的物理延遲而引起的。
抖動
與恒定算法延遲與處理延遲相反,傳輸延遲則隨著時間而變化。其原因是通過IP網(wǎng)絡(luò)傳輸?shù)恼Z音包傳輸時間將因為排隊結(jié)果的不同而發(fā)生變化。傳輸延遲分為兩個部分,一個是恒定或者變化緩慢的網(wǎng)絡(luò)延遲,另一個是在基本網(wǎng)絡(luò)延遲頂端的快速變化的延遲,通常稱作抖動。抖動被定義為連續(xù)傳輸語音包之間時延差的平滑功能。
語音包網(wǎng)絡(luò)中出現(xiàn)的抖動,將使接收機(jī)中的解碼過程復(fù)雜化,因為解碼器需要在正確的時間瞬間獲得數(shù)據(jù)包。如果得不到這個數(shù)據(jù),解碼器就不能生成平滑且連續(xù)的語音。因此,除了增加延遲,抖動還將導(dǎo)致接收機(jī)定時問題。通常使用抖動緩沖器,以確保在需要的時候得到語音包。
語音包丟失
如果網(wǎng)絡(luò)中的路由器掉下語音包,或者語音包到達(dá)太遲,致使解碼器無法對其進(jìn)行處理時,都會發(fā)生語音包丟失。如果允許抖動處理器的延遲時間長一些,就幾乎可以杜絕上述的第二種情況,但這會增加系統(tǒng)延遲。
當(dāng)因為網(wǎng)絡(luò)中某處出現(xiàn)掉包或者因為語音包到達(dá)太遲而出現(xiàn)語音包丟失時,必須采取某些措施填充遺失的語音。這種解決方案通常被稱作錯誤隱藏算法或數(shù)據(jù)包丟失隱藏 (PLC)算法。為了實現(xiàn)最佳性能,這些算法必須能夠準(zhǔn)確地預(yù)測語音信號并在解碼語音與插入部分(inserted segment)之間進(jìn)行平滑轉(zhuǎn)換。
編碼/解碼器問題
VoIP系統(tǒng)中的基本算法模塊是語音編碼/解碼器 ,它必須使傳輸?shù)男畔?shù)量最小,同時對語音質(zhì)量影響最小。經(jīng)過模-數(shù)轉(zhuǎn)換后,語音編碼器將數(shù)字化的語音信號轉(zhuǎn)化為比特流,比特流經(jīng)過打包后通過IP網(wǎng)絡(luò)傳輸。然后,語音解碼器利用接收的語音包,對語音信號進(jìn)行重構(gòu)。重構(gòu)的語音信號接近原始語音信號。
語音編碼/解碼器必須能夠處理語音包丟失。這個魯棒性不僅決定加載網(wǎng)絡(luò)的音質(zhì),而且對可能引起語音包丟失的擁擠情況下的音質(zhì)也起著決定作用。其他因素也影響與編碼/解碼器相關(guān)的音質(zhì),包括處理不同的話音以及非語音信號,如背景噪聲等。
除了上述兩個問題,在實際的硬件電路中還存在著與執(zhí)行語音處理功能相關(guān)的其他問題,這些問題也將對音質(zhì)產(chǎn)生重要影響。例如,模-數(shù)轉(zhuǎn)換器、話音激活檢測、回音消除算法以及常見的語音處理問題。
目前,許多VoIP硬件平臺通常使用的語音處理方案,都是基于公共交換電話網(wǎng)(PSTN)技術(shù),這是傳統(tǒng)的電話技術(shù)。人們對IP電話的質(zhì)量非常關(guān)心,因為同電路交換網(wǎng)相比,語音包網(wǎng)絡(luò)具有截然不同的特征。
GIPS技術(shù)專門用于IP通信,能夠處理語音包網(wǎng)絡(luò)特征。利用 GIPS公司研制的、用于ADI Blackfin處理器平臺的VoiceEngine嵌入式方案,VoIP硬件制造商將擁有以下優(yōu)勢。
獲得專利的自適應(yīng)抖動緩沖器與錯誤隱藏控制
GIPS公司已經(jīng)開發(fā)出包含錯誤隱藏算法的高級自適應(yīng)抖動緩沖器,稱作NetEQ算法。這是一個單端(接收端)算法,使得接收機(jī)能夠受益匪淺,而不管發(fā)送端是否使用該算法。
NetEQ算法在一個算法中集成了自適應(yīng)抖動控制算法以及語音包丟失隱藏算法。這項專利技術(shù)使其能夠快速且高解析度地適應(yīng)不斷變化的網(wǎng)絡(luò)環(huán)境,確保音質(zhì)優(yōu)美且緩沖延遲最小。之所以具有如此效果,是因為NetEQ算法并不在語音包緩沖器內(nèi),而是與解碼器進(jìn)行集成。NetEQ算法是嵌入式軟件的一部分,該軟件在 IP網(wǎng)絡(luò)接口與 聲音播放裝置之間,不論它是模-數(shù)轉(zhuǎn)換器還是時分多址(TDM)接口。
由于NetEQ算法將抖動緩沖器控制與語音包丟失隱藏算法合為一體,因此,能夠使抖動引起的延遲最小。此外,該算法中的語音包丟失隱藏算法是基于一種創(chuàng)新的方法,其品質(zhì)是任何其他標(biāo)準(zhǔn)數(shù)據(jù)包丟失隱藏(PLC)方法所無法比擬的。
與普通VoIP軟件電話兼容的GIPS編碼/解碼器
GIPS公司的編碼/解碼器組件包括寬帶編碼/解碼器與窄帶編碼/解碼器,它們能夠生成魯棒的清晰音質(zhì),即使語音包丟失嚴(yán)重也不會受到影響。當(dāng)這個聲音清晰度與GIPS的NetEQ算法一起使用時,將克服延遲與抖動,生成最高質(zhì)量的VoIP會話。
iPCM-wb
iPCM-wb是優(yōu)質(zhì)、低復(fù)雜度寬帶編碼/解碼器,對于語音包丟失具有極好的恢復(fù)性,使通話質(zhì)量明顯優(yōu)于PSTN。在端-端IP通信中使用時,iPCM-wb編碼/解碼器能夠確保高端電話應(yīng)用具有卓越的音質(zhì)。
iLBC
iLBC則是一種免授權(quán)費編碼/解碼器,所提供的音質(zhì)與 G.729E相似,優(yōu)于 G.729A,更是語音包時常丟失的擁擠網(wǎng)絡(luò)所望塵莫及的。iLBC由美國有線電視實驗室(CableLabs)設(shè)計,它也是IETF因特網(wǎng)工程任務(wù)組 (RFC 3951與RFC 3952)授予的第一個標(biāo)準(zhǔn)編碼/解碼器,是分組線纜有線電視電纜語音傳輸(VoCable,Voice over Cable)電話系統(tǒng)的強制部件。
改進(jìn)型G.711
改進(jìn)型G.711是GIPS公司標(biāo)準(zhǔn)G.711編碼/解碼器的改進(jìn)型產(chǎn)品,具有極好的包丟失魯棒性。這種改進(jìn)型編碼/解碼器,使嚴(yán)重超載的網(wǎng)絡(luò)也能保持良好音質(zhì)。
系統(tǒng)結(jié)構(gòu)已經(jīng)為GIPS媒體處理方案實現(xiàn)最優(yōu)化
絕大多數(shù)普通VoIP低密度終端器件具有多芯片系統(tǒng)結(jié)構(gòu),包括微控制器單元(MCU)以及至少一個數(shù)字信號處理器(DSP)。傳統(tǒng)方法是將信號處理進(jìn)行分離,使包處理由主處理器完成,而媒體處理則由DSP完成。
這種方法使得設(shè)計人員在為音/視頻通信設(shè)計高質(zhì)量媒體處理方案時面臨以下挑戰(zhàn)。
MCU與DSP之間的數(shù)據(jù)傳輸將帶來額外延遲,即降低效率;
DSP上的媒體處理部件需要進(jìn)一步集成與調(diào)諧,從而需要更多的時間與精力 。
ADI Blackfin處理器采用單一處理器系統(tǒng)結(jié)構(gòu),這樣所有的包處理與媒體處理都能在同一個處理器內(nèi)完成,從而使得GIPS媒體處理方案的效率更高。同多芯片結(jié)構(gòu)相比,利用ADI Blackfin處理器,復(fù)雜度將提高30% 以上(需要的處理起資源更少)。
縮短上市時間,保證音質(zhì)卓越
GIPS公司的VoiceEngine嵌入式方案,為硬件制造商提供了必要的接口與部件,使其通過單一的高級應(yīng)用程序接口實現(xiàn)語音應(yīng)用。同時,該方案不需要額外器件,這樣,制造商就可以集中精力開發(fā)核心應(yīng)用,而不必為聲音處理軟件的復(fù)雜集成以及調(diào)試操心。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評論