來振宇,王翾
(中國傳媒大學(xué)廣播電視數(shù)字化教育部工程研究中心,北京 100024)
MAX-MOS自適應(yīng)抖動緩沖算法研究
來振宇,王翾
(中國傳媒大學(xué)廣播電視數(shù)字化教育部工程研究中心,北京 100024)
抖動是影響VoIP服務(wù)質(zhì)量的一個重要因素。VoIP系統(tǒng)通常通過設(shè)置抖動緩沖區(qū)來盡可能的減小抖動帶來的影響。本文采用帕累托分布對網(wǎng)絡(luò)延時進行建模,利用E-Model方法計算當前MOS值,通過搜索延時與丟包之間的良好折衷設(shè)置緩沖區(qū)的大小,從而自適應(yīng)地獲得MOS值的提升。實驗表明,該算法在各種實驗網(wǎng)絡(luò)狀況下均可以有效的提高VoIP系統(tǒng)服務(wù)質(zhì)量。
VoIP;E-Model;MOS;自適應(yīng)抖動緩沖
VoIP(IP語音)技術(shù)逐漸普及、發(fā)展迅猛,在當今的通信市場中占有的份額日趨增長[1]。但基于IP網(wǎng)絡(luò)傳輸平臺的VoIP不能提供可靠的服務(wù)質(zhì)量一直是制約其發(fā)展的瓶頸[2]。抖動(jitter)是網(wǎng)絡(luò)傳輸所引入的一個對VoIP話音通信質(zhì)量產(chǎn)生很大影響的因素。通常我們通過在接收端設(shè)置抖動緩沖區(qū)來處理抖動。抖動緩沖區(qū)能夠有效的吸收抖動,降低在接收端產(chǎn)生的丟包率,其性能直接影響著VoIP的語言質(zhì)量。
目前緩沖算法基本上分為兩大類:固定緩沖算法和自適應(yīng)抖動緩沖算法。固定緩沖算法結(jié)構(gòu)簡單、易于實現(xiàn),但也存在著不能適應(yīng)網(wǎng)絡(luò)狀況變化的缺點。自適應(yīng)抖動緩沖算法能夠根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)調(diào)整緩沖區(qū)大小,具有較好的網(wǎng)絡(luò)自適應(yīng)性。本文主要研究自適應(yīng)抖動緩沖算法。文獻[3]提出了四種自適應(yīng)抖動緩沖算法:指數(shù)平均、快速指數(shù)平均、最小延時、尖峰檢測,這四種算法均未與感知語音質(zhì)量關(guān)聯(lián)起來。文獻[4]采用E-Model方法預(yù)測語音質(zhì)量,但只考慮了網(wǎng)絡(luò)隨機丟包,忽略了突發(fā)丟包模式。文獻[5]也提出了一種基于語音質(zhì)量預(yù)測的自適應(yīng)算法,同時加入了突發(fā)丟包模式,但其參數(shù)估計所用歷史數(shù)據(jù)窗為固定大小,靈活性不高。
本文提出了一種基于ITU(International Telecommunication Union,國際電聯(lián))在 G.107 建議書[6]中定義的E-Model方法的自適應(yīng)抖動緩沖算法,該算法采用帕累托分布為網(wǎng)絡(luò)延時進行建模,根據(jù)當前的網(wǎng)絡(luò)狀況自適應(yīng)的設(shè)置緩沖區(qū)的大小以得到最大的MOS(Mean Opinion Score)。實驗結(jié)果表明,本文算法能夠在丟包率和延時之間取得較好的平衡,從而使VoIP達到當前網(wǎng)絡(luò)狀況下的最優(yōu)服務(wù)質(zhì)量。
G.107中寫到[6]:現(xiàn)代網(wǎng)絡(luò)的復(fù)雜性要求規(guī)劃多個傳輸參數(shù),對于這些參數(shù),不僅要單獨考慮,還要考慮它們的組合效應(yīng)。由“經(jīng)驗豐富的網(wǎng)絡(luò)專家進行評測”可以做到這點,但更希望能夠提出一種系統(tǒng)性的方法,例如使用計算機模型。G.107提出了一種標量質(zhì)量等級值——傳輸性能等級系數(shù)R。R值的計算綜合考慮了室內(nèi)噪聲、電路噪聲、丟包率、延時、抖動、揚聲器回聲等多個網(wǎng)絡(luò)損傷因素對話音質(zhì)量的影響,它正比于總的通話質(zhì)量變化,取值范圍為從0到100。R值的計算公式如下:
其中d為網(wǎng)絡(luò)單向延時,是網(wǎng)絡(luò)傳輸延時dnet和抖動緩沖延時dbuff之和;丟包率Ppl為網(wǎng)絡(luò)丟包率Pplnet和接收端抖動緩沖丟包率Pplbuff之和;BurstR為突發(fā)比,取值范圍為1~2。H(d)的定義如下:
在G.107的附件中,提供了由R值向MOS值轉(zhuǎn)換的公式。R值可以最終轉(zhuǎn)化為平均主觀值MOS,轉(zhuǎn)化公式如下:
MOS值與R值的關(guān)系如圖1所示:
圖1MOS值與R值關(guān)系
以音頻編碼 G.711為例,G.113[7]中對該編碼方式給出的Ie、Bpl的建議值分別為0和25. 1;R0=100,IS=6.8,A=0。公式(2)可以簡化為:
公式(5)中,dnet可以通過時間戳、包序號直接測量得到;dbuff為緩沖區(qū)的大小。Pplnet可在接收端直接測得,Pplbuff需要通過對延時d進行分布建模,通過延時分布的累積函數(shù)預(yù)測得到。
在文獻[8]中指出,對于VoIP流量的延時分布,帕累托分布具有較高的匹配度,且相比其他模型形式較為簡單。文獻[12]中更指出,在任何網(wǎng)絡(luò)環(huán)境下,帕累托分布都是最適合單向延時分布的計算機模型。帕累托分布的累積分布函數(shù)如下:
帕累托分布的兩個參數(shù)k,a可由n個網(wǎng)絡(luò)延時數(shù)據(jù)估計得到,估算公式為:
其中dneti為第i個包的網(wǎng)絡(luò)傳輸延時。此時即可估算出由抖動緩沖引起的丟包率Pplbuff:
在一次長度為60S的VoIP通信過程中,我們測得緩沖區(qū)丟包率的帕累托分布建模預(yù)測值與真實值之間的誤差如圖2所示:
通過圖2可以看到,除通信開始時誤差較大以外,隨著通信的進行,預(yù)測值與真實值的誤差大多保持在1%以下。由此可以得到,帕累托分布對抖動
緩沖丟包率的預(yù)測是非常準確的。
圖2 Pplbuff的預(yù)測值與真實值誤差分析
將公式(7)(8)帶入公式(2):
通過公式(9)可清楚的看出:在網(wǎng)絡(luò)條件一定,也就是說抖動jitter、網(wǎng)絡(luò)延時dnet一定,網(wǎng)絡(luò)丟包Pplnet一定的情況下,Id的值將會隨著緩沖區(qū)尺寸dbuff增大而增大;Ie的值會隨著dbuff增大而減小,R值只與緩沖區(qū)大小dbuff有關(guān),此時,MOS值也只與緩沖區(qū)大小dbuff有關(guān)可以表示為:MOS=fMOS(dbuff)。
研究表明,在網(wǎng)絡(luò)單向延時d小于400ms,延時處于可以忍受的程度;當大于400ms,會導(dǎo)致丟包和亂序,嚴重影響語言的重現(xiàn),MOS值也降到了3以下,達到“幾乎所有用戶不滿意”的級別,難以保證正常通信[9];丟包率在8%-10%以下語音質(zhì)量尚可容忍[3]。在這兩個條件的約束下,對公式(9)進行簡化、分析可以得到如下結(jié)論:網(wǎng)絡(luò)條件一定的情況下,MOS值隨dbuff變化呈現(xiàn)的是一個凸函數(shù),且該函數(shù)的極值點一定出現(xiàn)在dbuff[0,400]這個區(qū)間內(nèi)。
在開放源代碼OPENsip[10]中,通過統(tǒng)計可以得到,當網(wǎng)絡(luò)丟包率5%,jitter方差為654.80,平均網(wǎng)絡(luò)延時30.2ms,突發(fā)比1.06,傳輸10S的音頻,采用G.711編碼,平均MOS值和緩沖區(qū)尺寸dbuff之間的關(guān)系,如圖3所示:
圖3 網(wǎng)絡(luò)條件一定情況下MOS值與緩沖區(qū)尺寸dbuff之間的關(guān)系
通過以上分析以及圖3的統(tǒng)計數(shù)據(jù)可以得到這樣的結(jié)論:在網(wǎng)絡(luò)條件一定且滿足VoIP通信最低要求的情況下,一定存在某一緩沖區(qū)尺寸使得因抖動緩沖引起的丟包和因緩沖區(qū)引入的延時達到一個平衡,這個平衡點處的MOS期望值最大。
我們提出了如下的自適應(yīng)抖動緩沖算法:
定義調(diào)整周期:上一次設(shè)置緩沖區(qū)時刻到下一次設(shè)置緩沖區(qū)時刻之間的時間長度。
(1)在當前調(diào)整周期結(jié)尾處,采用E-Model方法計算當前調(diào)整周期內(nèi)的平均MOS值,此MOS值為該周期內(nèi)真實MOS平均值;
(2)根據(jù)當前調(diào)整周期內(nèi)數(shù)據(jù)包的歷史延時數(shù)據(jù),求出網(wǎng)絡(luò)延時平均值 dnet、網(wǎng)絡(luò)丟包平均值Pplnet,更新帕累托分布參數(shù)k、a,并估算抖動緩沖所引入的丟包率Pplbuff;
(3)利用反復(fù)計算取最大值的方式,將當前網(wǎng)絡(luò)狀況下所允許的所有緩沖區(qū)尺寸帶入公式(9),求其最大MOS期望值,并取出MOS期望最大值時的緩沖區(qū)尺寸;
(4)為下一調(diào)整周期設(shè)置最優(yōu)緩沖區(qū)尺寸;
(5)返回(1)。
簡要算法流程如圖4所示:
在算法的第一步,我們測量的是上一調(diào)整周期內(nèi)真實的MOS平均值;在第三步中,我們搜索下一調(diào)整周期最優(yōu)緩沖區(qū)尺寸,并估算最優(yōu)緩沖區(qū)尺寸下的期望MOS值。利用2.3節(jié)中的網(wǎng)絡(luò)環(huán)境,我們測量了一段時間內(nèi)真實MOS值與估算的期望MOS值之間的關(guān)系如圖5所示:
圖5 真實MOS值與期望MOS值之間的關(guān)系
由圖5可以清晰的看到期望MOS值能夠非常好的預(yù)測下一調(diào)整周期內(nèi)的平均MOS值,絕大多數(shù)誤差在百分之一以下,平均誤差0.35%,準確度令人滿意。
以上流程中,有兩個關(guān)鍵問題:一是用于延時分布的調(diào)整周期數(shù)據(jù)窗設(shè)置問題;二是最大MOS搜索問題。對于第一個問題,數(shù)據(jù)窗的大小設(shè)置要在準確性和靈敏性之間取得平衡,設(shè)置過大雖準確性有所提升,但犧牲的是算法的靈敏性;設(shè)置過小則不能準確的反映當前的網(wǎng)絡(luò)狀況,也就無法對Pplbuff進行有效預(yù)測。我們對比了大量類似的自適應(yīng)抖動緩沖研究領(lǐng)域的文獻[1][4][5],這些文章大多考慮到了這個問題,但很少提出解決方法,只是按照自己的經(jīng)驗設(shè)置了一個固定大小的數(shù)據(jù)窗。這樣做對于某些特定的網(wǎng)絡(luò)狀況可能很有效,能夠得到非常理想的測量數(shù)據(jù),運算過程也會相對簡單;但缺乏靈活性,當網(wǎng)絡(luò)狀況發(fā)生非常頻繁、劇烈的波動時候,數(shù)據(jù)窗設(shè)置的大小就會很大程度上影響算法的準確性。我們在實驗過程中利用的是開放源代碼OPENsip來測試我們的算法,SIP內(nèi)部在接收端也做了自適應(yīng)的抖動緩沖區(qū)。我們發(fā)現(xiàn),SIP內(nèi)部在調(diào)整抖動緩沖區(qū)的時候并不是采取固定數(shù)據(jù)窗大小的模式,而是利用內(nèi)部一整套判別網(wǎng)絡(luò)狀況的機制根據(jù)當前網(wǎng)絡(luò)狀況變化自適應(yīng)的判定是否進行buffer控制。經(jīng)過多次實驗證明,這個網(wǎng)絡(luò)狀況判定機制是穩(wěn)定、準確的。本文算法中利用到了這個機制,在網(wǎng)絡(luò)狀況發(fā)生改變的時候,對buffer進行設(shè)置,這就相當于根據(jù)網(wǎng)絡(luò)狀況自適應(yīng)的調(diào)整了數(shù)據(jù)窗大小。
對于第二個問題,通過以上論述得到MOS值只與dbuff有關(guān),可以表示為MOS=fMOS(dbuff)。直接求函數(shù)極值存在兩個問題:一是函數(shù)式包含了多個復(fù)雜計算在內(nèi),很難確定;二是做該函數(shù)的極值計算具有較高的復(fù)雜度,編程語言很難實現(xiàn)。故最優(yōu)緩沖區(qū)尺寸的查找不宜通過直接求極值方式求得。針對這個問題,我們提出了一種簡單的反復(fù)計算求最大值法:在不考慮d>400ms的情況下,將dbuff的所有可能取值依次帶入公式(9)計算MOS期望值,并取其最大值,這樣就可以在有限的次數(shù)內(nèi)查找到最優(yōu)緩沖區(qū)尺寸。
本文采用了開放源代碼PJSIP作為算法實驗的平臺[10]。通過加入本文提出的自適應(yīng)抖動緩沖算法代替原有的的抖動緩沖算法,在原項目已有的抖動緩沖仿真項目中對話音傳輸?shù)恼麄€過程進行了仿真。
文獻[11]在兩狀態(tài)馬爾科夫模型,也就是吉爾伯特模型基礎(chǔ)上建立了網(wǎng)絡(luò)丟包仿真系統(tǒng),可以很好的模擬出實際的網(wǎng)絡(luò)丟包狀況。故本文采用吉爾伯特模型為網(wǎng)絡(luò)丟包進行計算機建模。吉爾伯特模型可以表示為圖6所示:
圖6 網(wǎng)絡(luò)丟包吉爾伯特模型
其中參數(shù)r為仿真系統(tǒng)內(nèi)部定義的突發(fā)關(guān)聯(lián)系數(shù),取值范圍為0~100。r與突發(fā)比BurstR的關(guān)系為:
仿真實驗采用G.711語言編碼,在多種網(wǎng)絡(luò)條件下對SIP原有自適應(yīng)抖動緩沖算法和本文提出的MAX-MOS算法分別進行了測試。設(shè)定最小及最大突發(fā)丟包數(shù)分別為0和20,每次仿真時間為1分鐘,且均在某一網(wǎng)絡(luò)狀況下進行多次測量以取平均值。仿真結(jié)果如下圖7所示:
圖7 仿真測量結(jié)果
三組曲線的網(wǎng)絡(luò)丟包率分別設(shè)定為2%、5%、10%,丟包關(guān)聯(lián)系數(shù)分別設(shè)定為10、5、10。通過圖7我們可以看到,隨著jitter方差的增大,MOS值在逐步下降;在絕大多數(shù)網(wǎng)絡(luò)狀況下本文提出的MAXMOS算法得到的MOS值均比SIP原有自適應(yīng)抖動緩沖算法得到的MOS值要大。
本文從提高VoIP服務(wù)質(zhì)量出發(fā),提出了一種基于E-Model的MAX-MOS自適應(yīng)抖動緩沖算法。該算法采用帕累托分布為單向延時分布進行建模,估算接收端抖動緩沖丟包率;利用最新的E-Model算法計算當前語音質(zhì)量;通過反復(fù)計算取最大值的方法查找延時與丟包率之間的平衡點,最終自適應(yīng)的設(shè)置接收端的緩沖區(qū)大小。本文在實驗階段采用開放源代碼OPENsip作為本文算法的實驗平臺,很好地利用了其中自適應(yīng)設(shè)置數(shù)據(jù)窗的機制,還利用了SIP工程中的抖動緩沖仿真項目。實驗結(jié)果表明,本文算法在大多數(shù)網(wǎng)絡(luò)狀況下得到了服務(wù)質(zhì)量要優(yōu)于SIP原有算法,可以有效的提高服務(wù)質(zhì)量。
[1]李敏.VoIP系統(tǒng)中語音質(zhì)量的研究與測試[D].武漢:華東科技大學(xué),2008.
[2]S Paulsen,K Nowicki.Influence of the Jitter Buffer on the Quality of Service VoIP[C].Third International on Ultra Modern Telecommunications and Control Systems,2011.
[3]R Ramjee,J Kurose,D Towsley,H Schulzrinne.A-daptive Playout Mechanisms for Packetized Audio Applications in Wide-Area Networks[J].IEEE,Toronto,Canada.
[4]Huang S F,Chang P C,Wu E H.Adaptive voice smoothing with optimal E-Model method for VoIP services[J].IEICE Transactions on Communication,2006,E89-B(6):1862-1868.
[5]蔡鐵,龍志軍,伍星.基于語音質(zhì)量預(yù)測的VoIP自適應(yīng)抖動緩沖算法[J].計算機工程與應(yīng)用,2011,47(10):63-66.
[6]ITU-T Recommendation G.107 The E-model:a computational model for use in transmission planning[S].12,2011.
[7]ITU-T Recommendation G.113 Transmission impairments due to speech processing[S].11,2007.
[8]Wei Zhang,Jingsha He.Modeling End-to-End Delay Using Pareto Distribution[C].Proceedings of IEEE Second International Conference on Internet and Protection,2007.
[9]ITU-T Recommendation G.114 One-way Transmission time[S].2003.
[10]開放源代碼 OPENsip官網(wǎng)[OL].http://www.pjsip.org,2013.
[11]蘭帆,張堯弼.基于Gilbert模型的網(wǎng)絡(luò)丟包仿真[J]. 計算機工程,2004,30:200-201.
[12]K Fujimoto,S Ata,M Murata.Adaptive Playout Buffer Algorithm for Enhancing Perceived Quality of Streaming Applications[J].IEEE Globecom,2002.
Research of An MAX-MOX Adaptive Jitter Buffer Algorithm
LAI Zhen-yu,WANG Xuan
(ECDAV,Communication University of China,Beijing 100024)
Jitter is an important factor affecting the quality of VoIP services.VoIP systems usually reduce the effects of jitter by setting the jitter buffer as much as possible.This paper achieves one-way delay model which is based on the Pareto distribution.Then the E -Model method is used to calculate the MOS values.Finally,the buffer size is set by searching for a good compromise between latency and packet loss ratio.Having considered all those ways above,the MOS values promotion is acquired adaptively.Experiments show that the algorithm effectively improve the quality of VoIP system services in a variety of network conditions.
VoIP;E-Model;MOS;adaptive jitter buffer
TN364
A
1673-4793(2013)03-0063-06
2013-03-19
來振宇(1987-),男(漢族),河北廊坊人,中國傳媒大學(xué)碩士研究生.E-mail:laizhenyu@cuc.edu.cn
book=0,ebook=424
(責任編輯
:宋金寶)