王明偉,李 琴,王 奇,林建中
(南京郵電大學(xué)通信與信息工程學(xué)院 南京 210003)
以網(wǎng)絡(luò)視頻會(huì)議為代表的多媒體多播傳輸應(yīng)用在互聯(lián)網(wǎng)上正得到越來越多的部署[1]。分層多播(RLM)[2]基于視頻分層編碼技術(shù)和分層多播傳輸技術(shù),以多速率方式解決了多播接收者異構(gòu)性問題,對于提高網(wǎng)絡(luò)服務(wù)質(zhì)量具有重要的意義。視頻流因數(shù)據(jù)量大,必須經(jīng)過壓縮編碼才能在互聯(lián)網(wǎng)上進(jìn)行有效的傳輸。視頻圖像編解碼標(biāo)準(zhǔn)有國際標(biāo)準(zhǔn)化組織的MPEG、國際電信聯(lián)盟電信部的H.26x以及MDC、AVC等[3]。視頻流傳輸對帶寬、時(shí)延及抖動(dòng)等提出了很高的要求。參考文獻(xiàn)[2]較早提出了接收方驅(qū)動(dòng)的分層多播思想,以恒定比特率(CBR)作為分層流量的速率對所提方案進(jìn)行了仿真實(shí)驗(yàn),但是沒有給出MPEG視頻分層傳輸?shù)男阅芊治觥⒖嘉墨I(xiàn)[4]提出了一種TCP友好的分層多播擁塞控制(RLC)方案。參考文獻(xiàn)[5]提出了通過增加網(wǎng)絡(luò)中間節(jié)點(diǎn)增強(qiáng)分層多播擁塞控制響應(yīng)性的方案。參考文獻(xiàn)[6]提出了一個(gè)視頻傳輸及其質(zhì)量評價(jià)框架,并給出了一個(gè)視頻仿真方法,但不涉及分層多播問題。本文在分析分層多播傳輸模型、MPEG視頻分層編碼和傳輸特性的基礎(chǔ)上,提出了一種面向視頻流傳輸?shù)姆謱佣嗖砣刂疲╒LMCC)算法。
分層多播基于分層編碼和多播傳輸機(jī)制,將待傳輸數(shù)據(jù)流編碼成多個(gè)層,即基層、增強(qiáng)層1,增強(qiáng)層2,…,增強(qiáng)層Lmax等(Lmax為最大分層數(shù)),并將經(jīng)過分層編碼的層數(shù)據(jù)分別放到多個(gè)不同的多播組中傳輸,接收者可以根據(jù)自己的接收能力,依次接收從基層到增強(qiáng)層i的數(shù)據(jù),接收者只有在接收(i-1)層及其以下層次數(shù)據(jù)時(shí),才能接收第i層數(shù)據(jù)。對于L層數(shù)據(jù)的接收者來說,其吞吐率為其中,Bj表示第j層的速率,TL表示L層數(shù)據(jù)的接收者的吞吐率。接收者可用帶寬越大,可以接收的層次越多,得到的服務(wù)質(zhì)量就越好。分層多播傳輸模型克服了傳統(tǒng)IP多播單速率模式無法滿足異構(gòu)性的缺點(diǎn),有利于提高整個(gè)網(wǎng)絡(luò)鏈路的利用率。分層多播傳輸模型如圖1所示,其中S為端系統(tǒng),R為路由器,r為接收者。

在MPEG標(biāo)準(zhǔn)[3]中定義了3種圖像類型:I幀圖像,采用幀內(nèi)編碼,不參照其他圖像;P幀圖像,參照前一幅I幀或P幀圖像做運(yùn)動(dòng)補(bǔ)償編碼;B幀圖像,參照前一幅和后一幅I幀或P幀圖像做雙向運(yùn)動(dòng)補(bǔ)償編碼。以25 F/s的視頻圖像為例,I幀圖像一般0.5 s左右一幅,兩個(gè)I幀相隔12幀。兩個(gè)相鄰的I幀圖像之間會(huì)插入若干個(gè)P幀圖像,兩個(gè)相鄰的P幀或I幀圖像之間會(huì)插入若干個(gè)B幀圖像。I幀作為P幀和B幀圖像的參照圖像,要求圖像質(zhì)量較高,否則會(huì)引起誤差,并向P幀和B幀圖像擴(kuò)散。如果兩個(gè)I幀間隔太大,誤差擴(kuò)散就會(huì)非常嚴(yán)重。在視頻流中,1個(gè)I幀后面一般有3個(gè)P幀和8個(gè)B幀。其中,兩個(gè)相鄰的P幀,或P幀與I幀之間,有2個(gè)B幀。MPEG視頻編碼特性決定了I幀、P幀和B幀圖像之間具有一定的依賴關(guān)系,并且I幀、P幀和B幀的重要性或優(yōu)先級(jí)依次降低。
對于MPEG視頻流分層多播,發(fā)送端和接收端可采用支持分層編碼的MPEG編解碼器,根據(jù)幀的類型確定幀所屬分層及優(yōu)先級(jí)。如圖2所示,將分層編碼MPEG視頻流分成 3個(gè)層次,I幀組成基層 (L0),P幀組成增強(qiáng)層 1(L1),B 幀組成增強(qiáng)層 2(L2),然后將其放到對應(yīng)的不同多播組中傳輸,同時(shí)在每個(gè)視頻幀對應(yīng)的RTP分組頭部攜帶時(shí)間戳、幀類型、序號(hào)等控制信息,以進(jìn)行分層多播傳輸控制。

根據(jù)MPEG編碼特性,I幀包含的信息最多,占用的比特?cái)?shù)最多,P幀次之,B幀最少,且P幀依賴于I幀,B幀依賴于其前后的I幀或P幀,因此,從重要程度來看,I幀最重要,P幀次之,B幀最低。在本文提出的算法中,不同類型的幀將設(shè)置成不同的優(yōu)先級(jí),并放在不同的多播組中傳輸。這些多播組具有不同的多播數(shù)據(jù)流標(biāo)記,構(gòu)成分層多播的各個(gè)分層數(shù)據(jù)流。視頻幀的優(yōu)先級(jí)與多播數(shù)據(jù)流的標(biāo)記一一對應(yīng),可以大大降低實(shí)現(xiàn)優(yōu)先級(jí)策略的復(fù)雜度。
在設(shè)計(jì)優(yōu)先級(jí)策略的基礎(chǔ)上,給出了視頻流的優(yōu)先級(jí)傳輸基本機(jī)制。在網(wǎng)絡(luò)鏈路發(fā)生擁塞時(shí),路由器可優(yōu)先依次丟棄增強(qiáng)層2和增強(qiáng)層1中重要程度低的B幀和P幀分組,使基層中重要程度高的I幀優(yōu)先得到傳輸,有助于緩解擁塞并盡可能提高視頻傳輸質(zhì)量。
在分析MPEG視頻流多播傳輸特性和優(yōu)先級(jí)傳輸機(jī)制的基礎(chǔ)上,結(jié)合優(yōu)先級(jí)傳輸機(jī)制和分層多播傳輸機(jī)制,提出了一種基于分層多播的VLMCC算法,如圖3所示。
VLMCC算法的基本思想是:在發(fā)送端根據(jù)視頻幀的類型對分組標(biāo)記相應(yīng)的優(yōu)先級(jí),提取出I、P、B幀分層放入基層、增強(qiáng)層1與增強(qiáng)層2中傳輸,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),優(yōu)先丟棄優(yōu)先級(jí)低的分組;在接收端,當(dāng)有空余可用帶寬時(shí)接收層次增加一層,當(dāng)發(fā)生擁塞時(shí)丟棄當(dāng)前接收的最高層。是否發(fā)生擁塞以接收分組中是否有丟失事件作判斷依據(jù)。接收者周期性地執(zhí)行加入試驗(yàn),以此判斷是否有可用帶寬用于增加層次數(shù)據(jù)的接收。這樣,接收端用加入和退出接收層的方式實(shí)現(xiàn)了視頻分層多播擁塞控制。
在網(wǎng)絡(luò)仿真器NS-2[7]上對VLMCC算法進(jìn)行了仿真實(shí)驗(yàn)。首先擴(kuò)展了NS-2中視頻流量產(chǎn)生器模塊,并實(shí)現(xiàn)了視頻分層多播傳輸擁塞控制算法模塊。鏈路隊(duì)列采用擴(kuò)充的優(yōu)先級(jí)隊(duì)列。仿真實(shí)驗(yàn)網(wǎng)絡(luò)拓?fù)淙鐖D4所示。

在圖4中,路由器R1、R2和R3部署了多播路由協(xié)議PIM-DM,鏈路 R1-R2 及 R2-R3 的帶寬為 1 000 kbit/s,鏈路延時(shí)200 ms。端系統(tǒng)S與R1之間鏈路帶寬均為1 000 kbit/s,延時(shí) 200 ms。r1-R1、r2-R2 和 r3-R3 的帶 寬分別為1 000 kbit/s、500 kbit/s、200 kbit/s,延時(shí)均為 200 ms。其中,r1、r2、r3具有異構(gòu)的接收帶寬,三者均部署了VLMCC算法。

在仿真實(shí)驗(yàn)中,分層多播的最大層數(shù)為3,從基層到增強(qiáng)層分別對應(yīng)于MPEG視頻數(shù)據(jù)流的I幀、P幀及B幀形成的分層數(shù)據(jù)流。視頻數(shù)據(jù)塊最大分段大小為1 024 byte,亦即IP分組最大為1 052 byte。隊(duì)列長度最大限制為50分組。以一段時(shí)長3 600 s、幀速率25 F/s的MPEG視頻圖像測試序列 Verbose_StarWarsIV.dat為數(shù)據(jù)源[8],仿真時(shí)長3 600 s。
先對視頻流量測試序列進(jìn)行分層預(yù)處理,提取幀序號(hào)、時(shí)間戳、幀類型、幀大小(單位為byte)等信息,形成I幀、P幀、B幀3個(gè)分層后的數(shù)據(jù)源,作為分層多播流量產(chǎn)生器的輸入。這樣,仿真使用的視頻發(fā)送時(shí)刻、視頻幀大小、幀類型等流量特性就與實(shí)際的視頻流量相一致,從而可以更逼真地仿真真實(shí)流量場景。
對基于分層多播的MPEG視頻傳輸進(jìn)行仿真,得到接收者所接收的MPEG流量的平均吞吐率、平均延時(shí)分別如圖5和圖6所示。

從圖5可以看出,接收者r1、r2、r3具有不同的吞吐率,較好地適應(yīng)了接收者接收帶寬的異構(gòu)性。由于仿真以MPEG視頻流量測試序列作為數(shù)據(jù)源,而不是采用CBR流量作為數(shù)據(jù)源,使得仿真實(shí)驗(yàn)更加接近實(shí)際流量場景,從而接收端接收的視頻流量具有與實(shí)際場景相符的較強(qiáng)突發(fā)特性。其中r1接收到的MPEG總流量平均吞吐率為284.594 kbit/s,標(biāo)準(zhǔn)差為100.665 kbit/s;r2接收到的MPEG總流量平均吞吐率為139.185 kbit/s,標(biāo)準(zhǔn)差為47.290 kbit/s;r3接收到的MPEG總流量平均吞吐率為59.870 kbit/s,標(biāo)準(zhǔn)差為20.075 kbit/s。
從圖6可以看出,接收者r1、r2、r3接收的MPEG分層視頻流量具有不同的端到端平均延時(shí),r1、r2、r3的平均延時(shí)分別為0.430 s、0.659 s、0.945 s,與網(wǎng)絡(luò)拓?fù)渲醒訒r(shí)的設(shè)定相吻合。隨著視頻流量的突發(fā)性發(fā)送以及分層多播中加入實(shí)驗(yàn)的進(jìn)行,網(wǎng)絡(luò)負(fù)載及鏈路隊(duì)列長度時(shí)刻變化,使得端到端延時(shí)隨網(wǎng)絡(luò)狀況發(fā)生變化。


接收者r1、r2、r3接收到的分層視頻流量的吞吐率具體情況如圖7、8和9所示。從圖7可以看出,接收者r1可以穩(wěn)定接收MPEG視頻分層數(shù)據(jù)流中I幀、P幀和B幀的所有分層數(shù)據(jù),分別對應(yīng)于基層、增強(qiáng)層1、增強(qiáng)層2。r1接收到的總吞吐率受限于其可用帶寬1 000 kbit/s。圖8表明,接收者r2可以穩(wěn)定接收I幀和P幀的所有分層數(shù)據(jù),分別對應(yīng)于基層、增強(qiáng)層1,并在增強(qiáng)層2上執(zhí)行間歇性加入實(shí)驗(yàn),以探測網(wǎng)絡(luò)可用帶寬。r2接收到的總吞吐率受限于其可用帶寬500 kbit/s。圖9表明,接收者r3可以穩(wěn)定接收I幀的所有分層數(shù)據(jù),對應(yīng)于基層,并在增強(qiáng)層1與增強(qiáng)層2上執(zhí)行間歇性加入實(shí)驗(yàn),以探測網(wǎng)絡(luò)可用帶寬。r3接收到的總吞吐率受限于其可用帶寬200 kbit/s。其中,通過優(yōu)先級(jí)隊(duì)列的采用,當(dāng)網(wǎng)絡(luò)發(fā)生擁塞時(shí),可以保護(hù)重要程度高的基層和低層分組盡可能不被丟棄,從而進(jìn)一步提高視頻傳輸質(zhì)量。
本文以視頻流傳輸應(yīng)用為研究背景,對視頻流分層編碼和分層多播傳輸特性進(jìn)行了分析,并提出了一種VLMCC算法,并通過仿真實(shí)驗(yàn)進(jìn)行了驗(yàn)證。仿真實(shí)驗(yàn)表明,本文提出的VLMCC算法能適應(yīng)視頻多播應(yīng)用中接收者可用帶寬的異構(gòu)性問題,大大提高了視頻流傳輸質(zhì)量。
1 Ke C H,Shieh C,Hwang W,et al.An evaluation framework for more realistic simulations of MPEG video transmission.Journal of Information Science and Engineering,2008,24(2):425~440
2 Canne S M,Jacobson V,Vetterli M.Receiver-driven layered multicast.In:Proc of ACM SIGCOMM'96,Stanford,CA,August 1996
3 Van G,David P,Reisslein M.Traffic characteristics of H.264/AVC variable bit rate video.IEEE Communications Magazine,2008,46(11):164~174
4 Vicisano L,Rizzo L,Crowcroft J.TCP-like congestion control for layered multicast data transfer.In:Proc of IEEE INFOCOM’98,April 1998
5 Nakauchi K,Morikawa H,Aoyama T.A network-supported approach to layered multicast.In Proc of IEEE ICC2001,June 2001
6 Klaue J,Rathke B,Wolisz A E.A framework for video transmission and quality evaluation.In:the 13th International Conference on Modelling Techniques and Tools for Computer Performance Evaluation,Urbana,Illinois,USA,2003
7 Canne S M,Floyd S.The LBNL network simulator,NS-2.http://www.isi.edu/nsnam/ns,2008
8 Patrick S,Frank H P,Martin R.Video traces for network performance evaluation.Germany:Springer Press,2006