技術(shù)背景
目前,VoIP(Voice over Internet Protocol) 在Internet 各類(lèi)應用中占據越來(lái)越大的比重,VoIP 是一種以IP電話(huà)為主,并推出相應的增值業(yè)務(wù)的技術(shù)。它以IP分組交換網(wǎng)絡(luò )為傳輸平臺,對模擬的語(yǔ)音信號進(jìn)行壓縮、打包等一系列的特殊處理,使之可以采用無(wú)連接的UDP(User Datagram Protocol,用戶(hù)數據報協(xié)議) 進(jìn)行傳輸,其最大的優(yōu)勢是能廣泛地采用Internet和全球IP互連的環(huán)境,提供比傳統業(yè)務(wù)更多、更好的服務(wù)。VoIP可以在IP網(wǎng)絡(luò )上傳送語(yǔ)音、傳真、視頻和數據等業(yè)務(wù),如統一消息、虛擬電話(huà)、虛擬語(yǔ)音/ 傳真郵箱、查號業(yè)務(wù)、Internet呼叫中心、Internet呼叫管理、電視會(huì )議、電子商務(wù)、傳真存儲轉發(fā)和各種信息的存儲轉發(fā)等。由于是一種典型的實(shí)時(shí)性業(yè)務(wù),這決定了VoIP必須具有較高的QoS( 服務(wù)質(zhì)量)。隨著(zhù)VoIP 的廣泛應用,服務(wù)質(zhì)量保證的問(wèn)題也日益為業(yè)界所關(guān)注。
當前面臨的問(wèn)題
VoIP的實(shí)現是基于IP網(wǎng)絡(luò )的,IP網(wǎng)絡(luò )可以是企業(yè)內部的局域網(wǎng)或者是互聯(lián)網(wǎng),IP網(wǎng)絡(luò )是基于盡力而為的服務(wù)體系結構,當網(wǎng)絡(luò )負載小時(shí),服務(wù)質(zhì)量相對較高,反之負載過(guò)高時(shí)如圖1所示,必然會(huì )出現網(wǎng)絡(luò )的丟包和延時(shí)抖動(dòng)等問(wèn)題。
圖 1 模擬實(shí)際的 IP 網(wǎng)絡(luò )中音頻包的延時(shí)抖動(dòng)示意圖
對于延時(shí)抖動(dòng)而言,在實(shí)時(shí)的VoIP 語(yǔ)音網(wǎng)絡(luò )會(huì )議中,語(yǔ)音數據是經(jīng)過(guò)壓縮打包后傳輸的。每個(gè)數據包都包含壓縮后的語(yǔ)音數據以及目地IP地址信息,雖然語(yǔ)音包在發(fā)送端是按一定間隔有序發(fā)送的,但是由于網(wǎng)絡(luò )傳輸路徑可能不同,不同的數據包到達接收端的時(shí)間間隔并不一致。另外,在采用UDP進(jìn)行語(yǔ)音數據實(shí)時(shí)傳輸時(shí),到達接收端的語(yǔ)音次序也有可能發(fā)生錯亂。這兩個(gè)現象就是我們通常說(shuō)的抖動(dòng)。當網(wǎng)絡(luò )抖動(dòng)嚴重的時(shí)候,某些遲到達的數據包將被丟棄;也存在等待一段時(shí)間沒(méi)有任何數據到達,然后突然接收到很多個(gè)數據包的情況,這些突然接收到的多個(gè)數據包,會(huì )覆蓋掉之前的數據,從而造成需要播放的數據不連續,導致語(yǔ)音回放失真和斷續。例如在一個(gè)由多人參加的VoIP 音頻網(wǎng)絡(luò )會(huì )議中,劇烈的數據包抖動(dòng)會(huì )導致語(yǔ)音時(shí)斷時(shí)續,嚴重影響參會(huì )者的語(yǔ)音實(shí)時(shí)交流。對于一般的數據業(yè)務(wù),丟失和傳輸延時(shí)都可以通過(guò)重傳或等待來(lái)彌補,然而在音頻通話(huà)之類(lèi)的實(shí)時(shí)業(yè)務(wù)中,對延時(shí)和抖動(dòng)等有著(zhù)更為苛刻的要求,所以對于實(shí)時(shí)性業(yè)務(wù)必須保障音頻數據的實(shí)時(shí)接收和回放。那么延時(shí)抖動(dòng)也成為了影響VoIP 的最為重要的QoS 的指標之一。
為了有效的解決抖動(dòng)問(wèn)題,通常在接收端引入抖動(dòng)緩沖區技術(shù)來(lái)消除抖動(dòng)的影響。
常見(jiàn)處理問(wèn)題的方法
常見(jiàn)的去抖動(dòng)緩沖方法有兩種:靜態(tài)去抖動(dòng)緩沖控制算法和動(dòng)態(tài)自適應去抖動(dòng)緩沖控制算法。
1)靜態(tài)去抖動(dòng)緩沖控制算法:該類(lèi)算法實(shí)現簡(jiǎn)單,運算復雜度小,可靠性高;但是網(wǎng)絡(luò )抖動(dòng)較大時(shí),丟包數量也很高,網(wǎng)絡(luò )抖動(dòng)小時(shí),也存在固定的和較大的語(yǔ)音延時(shí),導致了語(yǔ)音質(zhì)量下降。
2)自適應去抖動(dòng)緩沖控制算法:在一定范圍內能更好的解決抖動(dòng)延時(shí)的問(wèn)題,降低丟包的數量,提高音頻的質(zhì)量,并且在網(wǎng)絡(luò )抖動(dòng)較小的時(shí)候提供更低的延遲,但該類(lèi)算法的實(shí)現難度較高,可靠性也相對低。
華平提供的技術(shù)方法
華平提供一種去抖動(dòng)緩沖方法,用于解決去抖動(dòng)緩沖技術(shù)中復雜程度高、可靠性和穩定性較弱的問(wèn)題。
該VoIP 去抖動(dòng)緩沖區的處理方法為:初始化去抖動(dòng)緩沖區——執行音頻數據幀的保存操作,將遠端傳輸過(guò)來(lái)的新的音頻數據幀保存至去抖動(dòng)緩沖區中——更新突發(fā)等級狀態(tài)——執行音頻數據幀的讀取操作,從去抖動(dòng)緩沖區中將音頻數據幀讀取出——更新突發(fā)等級狀態(tài)——根據對去抖動(dòng)緩沖區中音頻數據幀進(jìn)行的保存操作和讀取操作以及突發(fā)等級,計算出當前的有效突發(fā)等級——根據計算得到的當前的有效突發(fā)等級,調整去抖動(dòng)緩沖區的大小。
圖 2采用固定長(cháng)度去抖動(dòng)緩沖算法的輸出結果
圖 3采用本方法去抖動(dòng)緩沖區的輸出結果
華平處理技術(shù)的優(yōu)勢
相較于現有技術(shù),結合比對圖2和圖3的輸出效果,并綜合上述介紹,我們可以看出,這種基于去抖動(dòng)緩沖區數據的存取操作和突發(fā)等級狀態(tài),來(lái)計算抖動(dòng)突發(fā)等級,通過(guò)對突發(fā)等級狀態(tài)參數的不斷更新,根據有效突發(fā)等級的變化來(lái)調整去抖動(dòng)緩沖區,以達到更低的延時(shí)和盡量大的自適應去抖動(dòng)能力的方法,不僅可以降低丟包的數量,提高音頻的質(zhì)量,更具有實(shí)現難度低,可靠性高的優(yōu)點(diǎn)。