王明偉,李 琴,王 奇,林建中
(南京郵電大學通信與信息工程學院 南京 210003)
以網絡視頻會議為代表的多媒體多播傳輸應用在互聯(lián)網上正得到越來越多的部署[1]。分層多播(RLM)[2]基于視頻分層編碼技術和分層多播傳輸技術,以多速率方式解決了多播接收者異構性問題,對于提高網絡服務質量具有重要的意義。視頻流因數(shù)據(jù)量大,必須經過壓縮編碼才能在互聯(lián)網上進行有效的傳輸。視頻圖像編解碼標準有國際標準化組織的MPEG、國際電信聯(lián)盟電信部的H.26x以及MDC、AVC等[3]。視頻流傳輸對帶寬、時延及抖動等提出了很高的要求。參考文獻[2]較早提出了接收方驅動的分層多播思想,以恒定比特率(CBR)作為分層流量的速率對所提方案進行了仿真實驗,但是沒有給出MPEG視頻分層傳輸?shù)男阅芊治?。參考文獻[4]提出了一種TCP友好的分層多播擁塞控制(RLC)方案。參考文獻[5]提出了通過增加網絡中間節(jié)點增強分層多播擁塞控制響應性的方案。參考文獻[6]提出了一個視頻傳輸及其質量評價框架,并給出了一個視頻仿真方法,但不涉及分層多播問題。本文在分析分層多播傳輸模型、MPEG視頻分層編碼和傳輸特性的基礎上,提出了一種面向視頻流傳輸?shù)姆謱佣嗖砣刂疲╒LMCC)算法。
分層多播基于分層編碼和多播傳輸機制,將待傳輸數(shù)據(jù)流編碼成多個層,即基層、增強層1,增強層2,…,增強層Lmax等(Lmax為最大分層數(shù)),并將經過分層編碼的層數(shù)據(jù)分別放到多個不同的多播組中傳輸,接收者可以根據(jù)自己的接收能力,依次接收從基層到增強層i的數(shù)據(jù),接收者只有在接收(i-1)層及其以下層次數(shù)據(jù)時,才能接收第i層數(shù)據(jù)。對于L層數(shù)據(jù)的接收者來說,其吞吐率為其中,Bj表示第j層的速率,TL表示L層數(shù)據(jù)的接收者的吞吐率。接收者可用帶寬越大,可以接收的層次越多,得到的服務質量就越好。分層多播傳輸模型克服了傳統(tǒng)IP多播單速率模式無法滿足異構性的缺點,有利于提高整個網絡鏈路的利用率。分層多播傳輸模型如圖1所示,其中S為端系統(tǒng),R為路由器,r為接收者。
在MPEG標準[3]中定義了3種圖像類型:I幀圖像,采用幀內編碼,不參照其他圖像;P幀圖像,參照前一幅I幀或P幀圖像做運動補償編碼;B幀圖像,參照前一幅和后一幅I幀或P幀圖像做雙向運動補償編碼。以25 F/s的視頻圖像為例,I幀圖像一般0.5 s左右一幅,兩個I幀相隔12幀。兩個相鄰的I幀圖像之間會插入若干個P幀圖像,兩個相鄰的P幀或I幀圖像之間會插入若干個B幀圖像。I幀作為P幀和B幀圖像的參照圖像,要求圖像質量較高,否則會引起誤差,并向P幀和B幀圖像擴散。如果兩個I幀間隔太大,誤差擴散就會非常嚴重。在視頻流中,1個I幀后面一般有3個P幀和8個B幀。其中,兩個相鄰的P幀,或P幀與I幀之間,有2個B幀。MPEG視頻編碼特性決定了I幀、P幀和B幀圖像之間具有一定的依賴關系,并且I幀、P幀和B幀的重要性或優(yōu)先級依次降低。
對于MPEG視頻流分層多播,發(fā)送端和接收端可采用支持分層編碼的MPEG編解碼器,根據(jù)幀的類型確定幀所屬分層及優(yōu)先級。如圖2所示,將分層編碼MPEG視頻流分成 3個層次,I幀組成基層 (L0),P幀組成增強層 1(L1),B 幀組成增強層 2(L2),然后將其放到對應的不同多播組中傳輸,同時在每個視頻幀對應的RTP分組頭部攜帶時間戳、幀類型、序號等控制信息,以進行分層多播傳輸控制。
根據(jù)MPEG編碼特性,I幀包含的信息最多,占用的比特數(shù)最多,P幀次之,B幀最少,且P幀依賴于I幀,B幀依賴于其前后的I幀或P幀,因此,從重要程度來看,I幀最重要,P幀次之,B幀最低。在本文提出的算法中,不同類型的幀將設置成不同的優(yōu)先級,并放在不同的多播組中傳輸。這些多播組具有不同的多播數(shù)據(jù)流標記,構成分層多播的各個分層數(shù)據(jù)流。視頻幀的優(yōu)先級與多播數(shù)據(jù)流的標記一一對應,可以大大降低實現(xiàn)優(yōu)先級策略的復雜度。
在設計優(yōu)先級策略的基礎上,給出了視頻流的優(yōu)先級傳輸基本機制。在網絡鏈路發(fā)生擁塞時,路由器可優(yōu)先依次丟棄增強層2和增強層1中重要程度低的B幀和P幀分組,使基層中重要程度高的I幀優(yōu)先得到傳輸,有助于緩解擁塞并盡可能提高視頻傳輸質量。
在分析MPEG視頻流多播傳輸特性和優(yōu)先級傳輸機制的基礎上,結合優(yōu)先級傳輸機制和分層多播傳輸機制,提出了一種基于分層多播的VLMCC算法,如圖3所示。
VLMCC算法的基本思想是:在發(fā)送端根據(jù)視頻幀的類型對分組標記相應的優(yōu)先級,提取出I、P、B幀分層放入基層、增強層1與增強層2中傳輸,當網絡發(fā)生擁塞時,優(yōu)先丟棄優(yōu)先級低的分組;在接收端,當有空余可用帶寬時接收層次增加一層,當發(fā)生擁塞時丟棄當前接收的最高層。是否發(fā)生擁塞以接收分組中是否有丟失事件作判斷依據(jù)。接收者周期性地執(zhí)行加入試驗,以此判斷是否有可用帶寬用于增加層次數(shù)據(jù)的接收。這樣,接收端用加入和退出接收層的方式實現(xiàn)了視頻分層多播擁塞控制。
在網絡仿真器NS-2[7]上對VLMCC算法進行了仿真實驗。首先擴展了NS-2中視頻流量產生器模塊,并實現(xiàn)了視頻分層多播傳輸擁塞控制算法模塊。鏈路隊列采用擴充的優(yōu)先級隊列。仿真實驗網絡拓撲如圖4所示。
在圖4中,路由器R1、R2和R3部署了多播路由協(xié)議PIM-DM,鏈路 R1-R2 及 R2-R3 的帶寬為 1 000 kbit/s,鏈路延時200 ms。端系統(tǒng)S與R1之間鏈路帶寬均為1 000 kbit/s,延時 200 ms。r1-R1、r2-R2 和 r3-R3 的帶 寬分別為1 000 kbit/s、500 kbit/s、200 kbit/s,延時均為 200 ms。其中,r1、r2、r3具有異構的接收帶寬,三者均部署了VLMCC算法。
在仿真實驗中,分層多播的最大層數(shù)為3,從基層到增強層分別對應于MPEG視頻數(shù)據(jù)流的I幀、P幀及B幀形成的分層數(shù)據(jù)流。視頻數(shù)據(jù)塊最大分段大小為1 024 byte,亦即IP分組最大為1 052 byte。隊列長度最大限制為50分組。以一段時長3 600 s、幀速率25 F/s的MPEG視頻圖像測試序列 Verbose_StarWarsIV.dat為數(shù)據(jù)源[8],仿真時長3 600 s。
先對視頻流量測試序列進行分層預處理,提取幀序號、時間戳、幀類型、幀大小(單位為byte)等信息,形成I幀、P幀、B幀3個分層后的數(shù)據(jù)源,作為分層多播流量產生器的輸入。這樣,仿真使用的視頻發(fā)送時刻、視頻幀大小、幀類型等流量特性就與實際的視頻流量相一致,從而可以更逼真地仿真真實流量場景。
對基于分層多播的MPEG視頻傳輸進行仿真,得到接收者所接收的MPEG流量的平均吞吐率、平均延時分別如圖5和圖6所示。
從圖5可以看出,接收者r1、r2、r3具有不同的吞吐率,較好地適應了接收者接收帶寬的異構性。由于仿真以MPEG視頻流量測試序列作為數(shù)據(jù)源,而不是采用CBR流量作為數(shù)據(jù)源,使得仿真實驗更加接近實際流量場景,從而接收端接收的視頻流量具有與實際場景相符的較強突發(fā)特性。其中r1接收到的MPEG總流量平均吞吐率為284.594 kbit/s,標準差為100.665 kbit/s;r2接收到的MPEG總流量平均吞吐率為139.185 kbit/s,標準差為47.290 kbit/s;r3接收到的MPEG總流量平均吞吐率為59.870 kbit/s,標準差為20.075 kbit/s。
從圖6可以看出,接收者r1、r2、r3接收的MPEG分層視頻流量具有不同的端到端平均延時,r1、r2、r3的平均延時分別為0.430 s、0.659 s、0.945 s,與網絡拓撲中延時的設定相吻合。隨著視頻流量的突發(fā)性發(fā)送以及分層多播中加入實驗的進行,網絡負載及鏈路隊列長度時刻變化,使得端到端延時隨網絡狀況發(fā)生變化。
接收者r1、r2、r3接收到的分層視頻流量的吞吐率具體情況如圖7、8和9所示。從圖7可以看出,接收者r1可以穩(wěn)定接收MPEG視頻分層數(shù)據(jù)流中I幀、P幀和B幀的所有分層數(shù)據(jù),分別對應于基層、增強層1、增強層2。r1接收到的總吞吐率受限于其可用帶寬1 000 kbit/s。圖8表明,接收者r2可以穩(wěn)定接收I幀和P幀的所有分層數(shù)據(jù),分別對應于基層、增強層1,并在增強層2上執(zhí)行間歇性加入實驗,以探測網絡可用帶寬。r2接收到的總吞吐率受限于其可用帶寬500 kbit/s。圖9表明,接收者r3可以穩(wěn)定接收I幀的所有分層數(shù)據(jù),對應于基層,并在增強層1與增強層2上執(zhí)行間歇性加入實驗,以探測網絡可用帶寬。r3接收到的總吞吐率受限于其可用帶寬200 kbit/s。其中,通過優(yōu)先級隊列的采用,當網絡發(fā)生擁塞時,可以保護重要程度高的基層和低層分組盡可能不被丟棄,從而進一步提高視頻傳輸質量。
本文以視頻流傳輸應用為研究背景,對視頻流分層編碼和分層多播傳輸特性進行了分析,并提出了一種VLMCC算法,并通過仿真實驗進行了驗證。仿真實驗表明,本文提出的VLMCC算法能適應視頻多播應用中接收者可用帶寬的異構性問題,大大提高了視頻流傳輸質量。
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