王萌,王翾
(中國(guó)傳媒大學(xué) 廣播電視數(shù)字化教育部工程研究中心 北京100024)
?
網(wǎng)絡(luò)抖動(dòng)實(shí)時(shí)測(cè)量方法的實(shí)現(xiàn)與對(duì)比
王萌,王翾
(中國(guó)傳媒大學(xué) 廣播電視數(shù)字化教育部工程研究中心 北京100024)
帶有時(shí)間戳的延遲因子算法(TS_DF)是用來(lái)衡量視頻流和音頻流在應(yīng)用過(guò)程中的網(wǎng)絡(luò)抖動(dòng)及其累積效應(yīng)的工具。該算法適用于MPEG傳輸流、聲頻傳輸流以及未壓縮的視頻傳輸流,解決了視頻傳輸質(zhì)量指標(biāo)中對(duì)于可變比特媒體流(VBR)的延遲因素測(cè)量。MDI:DF是MDI標(biāo)準(zhǔn)中對(duì)于視頻傳輸質(zhì)量中延遲因素的測(cè)量方法。本文對(duì)兩種算法進(jìn)行了實(shí)現(xiàn)和對(duì)比分析。實(shí)驗(yàn)證明TS_DF算法適用于帶有時(shí)間戳的媒體流,突破了傳統(tǒng)測(cè)量方法中需要區(qū)分恒定比特率流(CBR)和可變比特率流的局限性,同時(shí)具有更高的精確度和穩(wěn)定性。
網(wǎng)絡(luò)抖動(dòng);RTP流;MDI:DF;時(shí)間戳延遲因子
隨著網(wǎng)絡(luò)協(xié)議電視(IPTV)和網(wǎng)絡(luò)電話(huà)(Voice Over IP)的廣泛應(yīng)用,越來(lái)越多的視頻和語(yǔ)音流量進(jìn)入了IP網(wǎng)絡(luò)。為了有效利用和高效管理這些服務(wù),網(wǎng)絡(luò)運(yùn)營(yíng)商和服務(wù)提供商對(duì)于網(wǎng)絡(luò)質(zhì)量的了解具有重要的意義。
目前,主流網(wǎng)絡(luò)傳輸質(zhì)量的衡量指標(biāo)有時(shí)延、抖動(dòng)和丟包率等。為了準(zhǔn)確的了解網(wǎng)絡(luò)傳輸質(zhì)量,需要對(duì)這些衡量指標(biāo)進(jìn)行測(cè)量。現(xiàn)有的視頻傳輸質(zhì)量測(cè)量及評(píng)估算法中比較通用的方法分別是由RFC3550[1]、RFC4445[2]、EBU-TECH3337提出的。
在實(shí)際應(yīng)用中,2006年發(fā)布的RFC4445標(biāo)準(zhǔn)中提出的MDI:DF,局限于恒定比特流的網(wǎng)絡(luò)傳輸。而現(xiàn)實(shí)中,越來(lái)越多的網(wǎng)絡(luò)傳輸媒體,尤其是視頻傳輸為了節(jié)約帶寬提高其利用率,多采用可變比特流模式進(jìn)行傳輸。2010年在EBU-TECH3337中提出的TS_DF[3],相對(duì)于傳統(tǒng)的UDP測(cè)量該測(cè)量方法同時(shí)適用于CBR和VBR,具有測(cè)量結(jié)果更加準(zhǔn)確的顯著優(yōu)勢(shì)。
本文首先分析了網(wǎng)絡(luò)傳輸對(duì)IPTV視頻質(zhì)量的影響,然后對(duì)比分析現(xiàn)有的網(wǎng)絡(luò)抖動(dòng)測(cè)量方法[4],詳細(xì)介紹了MDI:DF和TS_DF計(jì)算原理。通過(guò)廣域網(wǎng)模擬器(WAN_emulator簡(jiǎn)稱(chēng)WANem)配置網(wǎng)絡(luò)環(huán)境對(duì)兩種方法進(jìn)行了仿真分析,證明TS_DF算法適用于帶有時(shí)間戳的媒體流,突破了傳統(tǒng)測(cè)量方法中需要區(qū)分恒定比特率流和可變比特率流的局限性,同時(shí)具有更高的精確度和穩(wěn)定性。
網(wǎng)絡(luò)傳輸過(guò)程中的時(shí)延、抖動(dòng)、數(shù)據(jù)包丟失、發(fā)送和接收到的數(shù)據(jù)包的順序不一致而引起的混亂等都會(huì)對(duì)視頻造成損傷[5]。數(shù)據(jù)包丟失和順序混亂所引起的視頻質(zhì)量下降,在解碼器端引入相應(yīng)的補(bǔ)償機(jī)制就可以解決。而網(wǎng)絡(luò)傳輸過(guò)程中的時(shí)延、抖動(dòng)對(duì)視頻所造成的損傷是需要提前測(cè)量有關(guān)的時(shí)延、抖動(dòng)幅度進(jìn)而設(shè)置適應(yīng)大小的緩沖區(qū)來(lái)解決。若在網(wǎng)絡(luò)傳輸過(guò)程中存在時(shí)延而時(shí)延又是恒定的話(huà),那么這將會(huì)導(dǎo)致視頻播放的推遲。但若在傳輸過(guò)程中存在抖動(dòng),這將會(huì)影響到視頻的質(zhì)量,使畫(huà)面停滯或者丟失。所以,為了能消除因網(wǎng)絡(luò)抖動(dòng)所帶來(lái)的視頻質(zhì)量的下降,視頻播放時(shí)解碼器需要緩存一定的數(shù)據(jù),即解碼器要有一定的緩沖區(qū)。
抖動(dòng)越大,需要消除抖動(dòng)的緩沖器就越大。但在采用較大緩沖器解決抖動(dòng)的同時(shí),也帶來(lái)了更大的延遲。相反,若緩沖器過(guò)小,那么較大的抖動(dòng)就會(huì)導(dǎo)致緩沖器上溢或下溢,從而導(dǎo)致IP包的丟失,用戶(hù)的體驗(yàn)就會(huì)變差。所以需要尋找一種準(zhǔn)確穩(wěn)定的測(cè)量方法來(lái)對(duì)網(wǎng)絡(luò)抖動(dòng)進(jìn)行測(cè)量,解決上述問(wèn)題。
3.1RFC3550抖動(dòng)計(jì)算
在IP網(wǎng)絡(luò)的實(shí)時(shí)傳輸媒體(通常包括多播、單播和廣播形式)中,一種傳統(tǒng)的抖動(dòng)測(cè)量方法是由RFC3550定義的。該方法是基于RTP報(bào)頭中的時(shí)間戳?xí)r間和IP包到達(dá)時(shí)間的關(guān)系實(shí)現(xiàn)的。
實(shí)時(shí)傳輸協(xié)議(RTP)[6]通常與實(shí)時(shí)傳輸控制協(xié)議(RTSP)配套使用。在實(shí)時(shí)傳輸協(xié)議(RTP)中,發(fā)送數(shù)據(jù)包的源設(shè)備完成對(duì)每個(gè)包的編號(hào)和時(shí)間戳。在RFC3550中定義的抖動(dòng)測(cè)量算法正是基于RTP協(xié)議,應(yīng)用時(shí)間戳字段,通過(guò)連續(xù)數(shù)據(jù)包間相對(duì)傳輸時(shí)間(Relative Transmit Time)的概念實(shí)現(xiàn)的。
如果用D(i-1,i)表示連續(xù)兩個(gè)包的相對(duì)傳輸時(shí)間,則抖動(dòng)的計(jì)算方法可定義如下。
J(i)=J(i-1)+(|D(i-1,i)|-J(i-1))/16
(3-1)
值得注意的是,式中對(duì)于D(i-1,i)的運(yùn)算使用的是絕對(duì)值,原因在于兩個(gè)包的延遲到達(dá)和提前到達(dá)都會(huì)造成媒體傳輸?shù)亩秳?dòng)。在實(shí)際應(yīng)用中,由于數(shù)據(jù)包的延遲到達(dá)和提前到達(dá)具有相反的影響,因此相對(duì)傳輸時(shí)間對(duì)于緩沖區(qū)分析具有重要的意義。所以該算法取絕對(duì)值的運(yùn)算具有一定的缺陷。
另外,式(3-1)中增益系數(shù)1/16有效的實(shí)現(xiàn)了低通濾波功能,消除了高頻抖動(dòng)變化所產(chǎn)生的高峰值。在測(cè)量網(wǎng)絡(luò)抖動(dòng)的累積效應(yīng)及其緩沖影響時(shí)高峰值是同等重要的,因此這種算法不能有效監(jiān)測(cè)到解碼器遇到的緩沖區(qū)上溢或下溢的情況。
3.2MDI:DF
流媒體應(yīng)用具有實(shí)時(shí)性的特點(diǎn)。在流媒體通過(guò)IP網(wǎng)絡(luò)傳輸?shù)耐瑫r(shí),終端解碼器在消耗已接收到的媒體流信息。IP網(wǎng)絡(luò)傳輸媒體流出現(xiàn)抖動(dòng)表現(xiàn)為同一媒體流的IP封包傳輸?shù)拈g隔不均勻。RFC4445提出了視頻傳輸質(zhì)量指標(biāo)中的延遲因素的測(cè)量方法,即MDI:DF。該方法具有獨(dú)立協(xié)議的優(yōu)勢(shì)。它是基于測(cè)量名義媒體速率和到達(dá)速率之間的流動(dòng)不平衡性這一參數(shù)實(shí)現(xiàn)的,這個(gè)參數(shù)是對(duì)累積抖動(dòng)的估計(jì)。
RFC4445提出的延遲因素(DF)算法是在每個(gè)媒體流封包結(jié)束處觀(guān)察到的,到達(dá)的媒體數(shù)據(jù)和流出的媒體數(shù)據(jù)之間的最大差值。即計(jì)算時(shí)間間隔期間流動(dòng)速率不平衡的最大觀(guān)測(cè)值。
DF計(jì)算方法如下:
VB(i,pre)=sum(Sj)-MR*Ti(j=1,2…i)
(3-2)
VB(i,post)=VB(i,pre)+Si
(3-3)
DF=[VB(max)-VB(min)]/MR
(3-4)
式中定義VB(Virtual Buffer)為一個(gè)虛擬緩沖區(qū),用來(lái)緩沖一個(gè)流的接收封包。在一個(gè)計(jì)算間隔期間,當(dāng)一個(gè)封包P(i)到達(dá)時(shí),計(jì)算兩個(gè)VB的值,即VB(i,pre)和VB(i,post)。分別代表P(i)包到達(dá)前和到達(dá)后的緩沖區(qū)大小。Sj是第j個(gè)封包的媒體負(fù)載大小,Ti是在此計(jì)算間隔中封包i到達(dá)的相對(duì)時(shí)間;MR是媒體碼率。
MDI:DF描述的延遲因素計(jì)算方法,可以測(cè)量瞬時(shí)和長(zhǎng)期行為網(wǎng)絡(luò)流媒體的視頻傳輸質(zhì)量,即被測(cè)視頻流的延遲和抖動(dòng)狀況。該算法僅適用于恒定比特流的網(wǎng)絡(luò)傳輸,默認(rèn)為所有的IP傳輸包緩沖區(qū)是相同的。而在實(shí)際中,越來(lái)越多的網(wǎng)絡(luò)媒體,尤其是視頻傳輸為了節(jié)約帶寬提高其利用率,多采用可變比特流模式進(jìn)行傳輸。因此MDI:DF算法具有一定的局限性。
3.3TS_DF
2010年提出了帶有時(shí)間戳的延遲因子即TS_DF算法。時(shí)間戳延遲因子的計(jì)算是基于網(wǎng)絡(luò)數(shù)據(jù)包的實(shí)際到達(dá)時(shí)間與RTP包頭中的時(shí)間戳字段間的關(guān)系實(shí)現(xiàn)的。對(duì)于典型的1Mbit/s的媒體流,一秒時(shí)間可以接收足夠的數(shù)據(jù)包進(jìn)行抖動(dòng)的測(cè)量,因此通常選用測(cè)量周期為1秒。在該算法中,測(cè)量周期內(nèi)第一個(gè)到達(dá)的數(shù)據(jù)包設(shè)定為參考包,假設(shè)該數(shù)據(jù)包沒(méi)有延遲。對(duì)于測(cè)量周期內(nèi)隨后到達(dá)的數(shù)據(jù)包i,其相對(duì)于參考數(shù)據(jù)包的相對(duì)傳輸時(shí)間計(jì)算如下:
D(i,0)=(R(i)-R(0))-(S(i)-S(0))
(3-5)
式中R(i)、S(i)分別代表封裝包i的RTP字段時(shí)間戳?xí)r間和實(shí)際到達(dá)時(shí)間。
最后取相對(duì)傳輸時(shí)間D的最大值和最小值進(jìn)行如式(3-6)計(jì)算,求得TS_DF。
TS_DF=D(Max)-D(Min)
(3-6)
該算法突破了傳統(tǒng)方法需要區(qū)分VBR和CBR的局限性,僅需要計(jì)量數(shù)據(jù)包的相對(duì)傳輸時(shí)間,適用于所有包含時(shí)間戳字段的數(shù)據(jù)包傳輸。
3.4算法流程圖
經(jīng)過(guò)對(duì)MDI:DF和TS_DF兩種測(cè)量算法的分析,在Python平臺(tái)對(duì)兩種算法進(jìn)行實(shí)現(xiàn),算法流程圖如圖1、圖2所示。
圖1 MDI:DF算法流程圖
圖2 TS_DF算法流程圖
廣域網(wǎng)模擬器[7](WAN_emulator簡(jiǎn)稱(chēng)WANem)可以模擬各種網(wǎng)絡(luò)狀況,如帶寬、延遲、丟包等。該模擬器能夠完成開(kāi)發(fā)者的單元測(cè)試、性能測(cè)試與服務(wù)器端的鏈接仿真、多個(gè)地點(diǎn)的用戶(hù)性能測(cè)試等功能。為了測(cè)試兩種算法的準(zhǔn)確性,需要通過(guò)WANem預(yù)先設(shè)定網(wǎng)絡(luò)傳輸過(guò)程的延遲和抖動(dòng),應(yīng)用不同算法進(jìn)行測(cè)量,進(jìn)而分析測(cè)試結(jié)果的準(zhǔn)確度。同時(shí)由于視頻傳輸質(zhì)量的延遲測(cè)量過(guò)程對(duì)網(wǎng)絡(luò)環(huán)境具有較高要求,網(wǎng)絡(luò)的擁塞、不穩(wěn)定等諸多因素均會(huì)導(dǎo)致傳輸數(shù)據(jù)包的延遲或抖動(dòng),因此實(shí)驗(yàn)過(guò)程需要搭建單獨(dú)的網(wǎng)絡(luò)環(huán)境。
4.1網(wǎng)絡(luò)環(huán)境搭建
實(shí)驗(yàn)過(guò)程中,為了排除其他網(wǎng)絡(luò)因素的干擾,需要搭建單獨(dú)局域網(wǎng),模擬同一網(wǎng)段內(nèi)的網(wǎng)絡(luò)狀況。將三臺(tái)主機(jī)連接于同一交換機(jī),搭建網(wǎng)絡(luò)環(huán)境如圖3所示。
圖3 局域網(wǎng)搭建環(huán)境
如圖所示,ServePC、WANemPC、ClientPC 通過(guò)交換機(jī)連接形成一個(gè)局域網(wǎng)。其IP分別配置為192.168.185.1、192.168.185.2、192.168.185.3。定義ServerPC為數(shù)據(jù)發(fā)送端,ClientPC為測(cè)量端。ServerPC完成向ClientPC的數(shù)據(jù)傳輸,WANemPC 在兩臺(tái)主機(jī)通信過(guò)程中加入延遲和抖動(dòng),ClientPC接收數(shù)據(jù)并進(jìn)行視頻質(zhì)量測(cè)量。
4.2WANem網(wǎng)絡(luò)仿真
ServePC完成向ClientPC的數(shù)據(jù)包傳送。在正常情況下,兩主機(jī)間的通信數(shù)據(jù)流通過(guò)圖3所示虛線(xiàn)1傳輸。為了對(duì)發(fā)送的數(shù)據(jù)包加入延遲和抖動(dòng),ServePC和ClientPC間的通信需要經(jīng)過(guò)WANemPC,即實(shí)現(xiàn)數(shù)據(jù)流經(jīng)過(guò)虛線(xiàn)2進(jìn)行傳輸。為了實(shí)現(xiàn)這一性能,需要對(duì)兩臺(tái)通信主機(jī)進(jìn)行路由配置。路由配置方法如下:
發(fā)送端:route add 192.168.185.3 mask 255.255.255.255 192.168.185.2
測(cè)量端:route add 192.168.185.3 mask 255.255.255.255 192.168.185.2
路由配置完成后,在WANemPC端高級(jí)模式下添加實(shí)驗(yàn)控制量Jitter值的大小。在WANem高級(jí)模式界面下Delay time 和Jitter欄設(shè)置相應(yīng)數(shù)值后單擊Apply setting 即可對(duì)兩主機(jī)間的數(shù)據(jù)通信加入設(shè)定的延遲和抖動(dòng)。Jitter值即為算法測(cè)量值。
VLC多媒體播放器支持眾多音頻與視頻解碼器及文件格式。本文應(yīng)用VLC的串流解碼功能,將解碼的TS流重新封裝打包發(fā)送到指定網(wǎng)絡(luò)。在ServePC端,通過(guò)VLC向ClientPC端發(fā)送RTP流。在VLC上添加實(shí)驗(yàn)視頻后模擬出TS流的發(fā)送過(guò)程,將TS流以單播的形式發(fā)送到ClientPC。通過(guò)VLC播放器在串流目標(biāo)位置中輸入目標(biāo)IP后,即可完成ServerPC端向ClientPC端的串流傳輸。
應(yīng)用Python語(yǔ)言對(duì)兩種算法進(jìn)行實(shí)現(xiàn)。為了對(duì)算法測(cè)量結(jié)果進(jìn)行對(duì)比,在WANemPC端設(shè)置不同的傳輸環(huán)境完成對(duì)傳輸數(shù)據(jù)包抖動(dòng)和延遲的添加。實(shí)驗(yàn)中,在WANemPC端分別設(shè)置抖動(dòng)(Jitter)值為1到20毫秒。設(shè)置ServerPC端的流媒體服務(wù)器連續(xù)進(jìn)行數(shù)據(jù)發(fā)送。在每種Jitter值的網(wǎng)絡(luò)情況下,數(shù)據(jù)包在傳送過(guò)程中通過(guò)WANemPC加入延遲和抖動(dòng)處理,在ClientPC端分別應(yīng)用MDI:DF和TS_DF兩種算法接收數(shù)據(jù)并進(jìn)行視頻質(zhì)量測(cè)試。每個(gè)Jitter值傳輸過(guò)程分別取三百組測(cè)量數(shù)據(jù)。
測(cè)試完成后,對(duì)兩種測(cè)量算法的測(cè)量結(jié)果取均值,計(jì)算結(jié)果數(shù)據(jù)如圖4所示。
圖4 測(cè)量平均值
通過(guò)測(cè)量值與WANem預(yù)先設(shè)定了抖動(dòng)值大小相對(duì)比,觀(guān)察到測(cè)量值具有上下波動(dòng)性,則對(duì)兩組測(cè)量結(jié)果的累加誤差和方差進(jìn)行計(jì)算,結(jié)果如圖5、圖6所示。
圖5 累加測(cè)量誤差
圖6 測(cè)量值方差
理論上,測(cè)量值應(yīng)等于WANem設(shè)置的Jitter值。圖5“--”線(xiàn)為設(shè)置Jitter值大小。測(cè)量結(jié)果圖5表明MDI:DF算法測(cè)量值具有較大的波動(dòng)性,測(cè)量結(jié)果與WANem設(shè)定的抖動(dòng)大小相比較具有較大誤差。TS_DF算法的測(cè)量結(jié)果與WANem設(shè)定的抖動(dòng)大小基本一致。兩種算法測(cè)量數(shù)據(jù)均存在一定的波動(dòng)性,圖5所示TS_DF算法在多次測(cè)量后的累加誤差明顯小于MDI:DF算法,同時(shí)隨著設(shè)置抖動(dòng)值的增大,TS_DF算法累加誤差逐漸減小并趨于平穩(wěn)。圖6所示的測(cè)量值方差表明對(duì)于不同的Jitter值網(wǎng)絡(luò)情況的多次測(cè)量中,MDI:DF算法的測(cè)量結(jié)果波動(dòng)性較大,因此TS_DF算法的測(cè)量結(jié)果具有更好的穩(wěn)定性。
本文分析了MDI:DF測(cè)量方法和TS_DF測(cè)量方法兩種延遲測(cè)量算法并通過(guò)Python語(yǔ)言進(jìn)行了實(shí)現(xiàn)。應(yīng)用廣域網(wǎng)模擬器模擬不同抖動(dòng)情況下的網(wǎng)絡(luò)環(huán)境,對(duì)兩臺(tái)主機(jī)間的網(wǎng)絡(luò)通信人為加入已知大小的延遲和抖動(dòng)。對(duì)不同網(wǎng)絡(luò)環(huán)境下的抖動(dòng)值大小應(yīng)用兩種測(cè)量方法進(jìn)行測(cè)試。測(cè)試結(jié)果分析顯示MDI:DF算法具有較大的波動(dòng)性,TS_DF算法具有較高的精確度和較穩(wěn)定的測(cè)量結(jié)果。
[1]RFC 3550-RTP:A Transport Protocol for Real-Time Applications[S].
[2]RFC 4445-A Proposed Media Delivery Index(MDI).
[3]Geneva. A Proposed Time-Stamped Delay Factor(TS-DF)algorithm for measuring Network Jitter on RTP Streams[S]. Jan,2010.
[4]王飛超 .網(wǎng)絡(luò)抖動(dòng)的測(cè)量技術(shù)的分析與實(shí)現(xiàn)[J].2012.
[5]黎致斌.視頻質(zhì)量測(cè)試指標(biāo)選擇 IneoQuest公司[OL].
[6]ColinPerkins.RTP-Audio and Video for the Internet[S].ISBN 0-672-32249-8.
[7]WANem 2.0 Wide Area Network Emulator Performance Engineering Research Centre[R].11thNov,2008.
[8]Guo CX,Zheng SR. Analysis and evaluation of the TCP/IP protocol stack of LINUX[J].In Proc of the IEEE ICCT 2000.
(責(zé)任編輯:馬玉鳳)
Implementation and Comparison of Two Standardized Jitter Measurement Methods
WANG Meng,WANG Xuan
(ECDAV,Communication University of China,Beijing 10024)
Time-stamped delay factor(TS-DF)algorithm can be used as a tool to measure IP network jitter and its cumulative effect for applications such as video and audio streaming. This algorithm is suitable for measuring IP network jitter in MPEG Transport streams over IP,voice over IP,as well as uncompressed video over IP. The delay factor of media delivery index raised in RFC4445 proposes another method.It defines the Delay Factor as the maximum difference,observed at the end of each media stream packet,between the arrival of media data and the drain of media data. In this paper,we try to conduct the two algorithms and prove that the TS_DF algorithm is more advanced with high precision.
jitter;RTP;MDI:DF;time-stamped delay factor
2015-08-03
王萌(1990-),女(漢族),內(nèi)蒙古赤峰人,中國(guó)傳媒大學(xué)碩士生.E-mail:358934973@qq.com,
TP391
A
1673-4793(2016)01-0027-05