蔡 倩,陳勇斌
(1.西南交通大學(xué)電氣工程學(xué)院,四川成都 610031;2.西南交通大學(xué)信息科學(xué)與技術(shù)學(xué)院,四川成都 610031)
隨著因特網(wǎng)的飛速發(fā)展,基于實時視頻傳輸?shù)膽?yīng)用需求也迅猛增長,但實時視頻傳輸對網(wǎng)絡(luò)具有很高的要求,然而現(xiàn)有網(wǎng)絡(luò)由于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的動態(tài)變化和網(wǎng)絡(luò)的異構(gòu)性等原因,分配給各業(yè)務(wù)流的網(wǎng)絡(luò)資源是動態(tài)改變和不可預(yù)測的,無法為實時視頻傳輸提供相應(yīng)的QoS(Quality of Service)保證.基于此,研究人員提出一種視頻傳輸?shù)淖赃m應(yīng)控制方法,即利用一定的反饋或判斷機(jī)制,例如,基于探測或基于模型的碼率控制機(jī)制[1,2].目前,常用的網(wǎng)絡(luò)自適應(yīng)傳輸控制機(jī)制主要有聯(lián)播、自適應(yīng)即時編碼、轉(zhuǎn)碼、可伸縮編碼等[3].然而,這些網(wǎng)絡(luò)自適應(yīng)傳輸控制機(jī)制盡管對變化網(wǎng)絡(luò)環(huán)境具有很強的適應(yīng)性,但都各有缺點.如何設(shè)計一個有效的傳輸方案來傳送視頻數(shù)據(jù),既做到高效,又能最大限度地利用網(wǎng)絡(luò)資源,達(dá)到視頻質(zhì)量隨著網(wǎng)絡(luò)的變化而可調(diào)性地變化,給終端用戶呈現(xiàn)一個較好的視頻服務(wù)質(zhì)量,本文對此做了相應(yīng)研究.
通過壓縮的視頻通常包括3種不同類型的幀[4]:I幀(Intra-coded frames),即幀內(nèi)圖像,通常采用獨立編碼,其對本幀圖像采用離散余弦DCT(Discrete Cosine Transform)算法進(jìn)行壓縮,解碼時僅用其自身畫面的數(shù)據(jù)內(nèi)容來重構(gòu)完整的圖像,不需要參考其他的幀.P幀(Perdicted frames),又稱為預(yù)測圖像,采用預(yù)測編碼和運動補償技術(shù),需根據(jù)前一個I幀或P幀的變化進(jìn)行編碼,在同一圖像組中,后面的P幀依賴前面的P幀,因此位置靠前的P幀重要性較高.B幀(Bi-directional predicted frames),又稱為雙向預(yù)測圖像,采用預(yù)測編碼和運動補償技術(shù),將同時根據(jù)前后的I幀或P幀來完成編解碼.總之,對于一個視頻幀序列來說,并不是每個幀都同等的重要,而是I幀最為重要,P幀次之,B幀再次之[5].
視頻傳輸通常采用UDP協(xié)議,當(dāng)網(wǎng)絡(luò)的可用資源不足以滿足視頻傳輸?shù)男枨髸r,過大的流量會導(dǎo)致網(wǎng)絡(luò)擁塞,而為了滿足視頻回放的實時性要求,丟包難以避免.隨機(jī)丟包會對接收端的視頻回放質(zhì)量產(chǎn)生嚴(yán)重的不利影響,對此,可以用可解畫面比例來評估圖像的回放質(zhì)量[6],I幀是參考幀,P幀要參考到先前I幀或P幀,B幀要參考到先前及之后的I幀或P幀.只有當(dāng)某個畫面的所有數(shù)據(jù)包和這個畫面所參考到的畫面的所有數(shù)據(jù)包都可以正確地被接收時,此畫面是可解碼的.可解畫面比例越大,代表圖像的質(zhì)量越好.
令Q表示可解畫面比例,Pw表示網(wǎng)絡(luò)上的丟包率,CI,CP,CB分別表示每種類型的幀被分割的數(shù)據(jù)包數(shù),則有,
其中,N表示從I幀到I幀之間的畫面數(shù),即G OP圖像組的長度;M表示I幀到P幀之間的畫面數(shù).
對于不同的丟包率,我們對一個實際的MPEG-4視頻數(shù)據(jù)源的影片記錄文件Verbose-StarWarsIV.dat按上式計算,結(jié)果如表1所示.
表1 可解畫面比例(Q值)
從表1可見,隨著丟包率的增加,可解畫面比例會急劇下降,這是由于丟包破壞了接收到的幀的完整性,造成已正確傳送的相關(guān)數(shù)據(jù)解碼失敗,從而導(dǎo)致播放的斷續(xù)或質(zhì)量下降.
為了盡量消除丟包對視頻質(zhì)量的影響,我們提出一種主動丟幀策略,即在視頻數(shù)據(jù)發(fā)送之前根據(jù)當(dāng)時的網(wǎng)絡(luò)狀態(tài),選擇性地丟棄部分不太重要的B幀,以達(dá)到實際視頻傳輸帶寬與網(wǎng)絡(luò)可用帶寬相匹配,盡量保證傳輸?shù)膸耐暾?
采用主動丟幀策略,一方面調(diào)整了實際視頻的傳輸帶寬,盡量降低了網(wǎng)絡(luò)擁塞的風(fēng)險;另一方面,丟棄部分不太重要的B幀,降低了比較重要的I幀、P幀丟失或被破壞的風(fēng)險,從而可以保證視頻流的播放質(zhì)量.
在實驗中,我們采用NS2(Network Simulation 2)網(wǎng)絡(luò)仿真工具對主動丟幀策略進(jìn)行仿真驗證與分析,仿真環(huán)境為Windows XP+cygwin+ns-2.28,仿真網(wǎng)絡(luò)結(jié)構(gòu)如圖1所示.
圖1 仿真網(wǎng)絡(luò)結(jié)構(gòu)示意圖
在這個仿真拓?fù)浣Y(jié)構(gòu)中,R1和R2是路由器,兩者之間的鏈路構(gòu)成網(wǎng)絡(luò)瓶頸鏈路,帶寬變化范圍為1~0.9倍視頻傳輸所需帶寬,并以此來模擬網(wǎng)絡(luò)可用資源.S為發(fā)送節(jié)點,D為接收節(jié)點,所有非瓶頸鏈路帶寬均為100 Mbps.在S節(jié)點應(yīng)用層使用流量產(chǎn)生器,并根據(jù)上述實際的MPEG-4視頻數(shù)據(jù)源影片記錄文件產(chǎn)生數(shù)據(jù).由于只丟棄不太重要的B幀,通過對上述實際視頻源的統(tǒng)計分析,我們發(fā)現(xiàn)B幀所占數(shù)據(jù)量約為整個視頻數(shù)據(jù)量的一半,所以對發(fā)送的每一個B幀可按下式計算在網(wǎng)絡(luò)帶寬不足時的丟幀率D,
其中,BWC,BWA分別表示視頻傳輸所需帶寬與網(wǎng)絡(luò)可用帶寬.
2.3.1 可解畫面比例(Q值).
在未采用主動丟幀策略的情況下,因為發(fā)送端不會根據(jù)網(wǎng)絡(luò)的狀況動態(tài)調(diào)整發(fā)送速率,若發(fā)送過多的數(shù)據(jù)到網(wǎng)絡(luò)上時,就會引起網(wǎng)絡(luò)擁塞,網(wǎng)絡(luò)被迫被動丟包,隨著網(wǎng)絡(luò)可用帶寬的減少,丟包率越來越大(見圖2).由于被迫丟包導(dǎo)致接收到的視頻幀的完整性受到破壞,以至于無法正常解碼,從而會造成視頻回放的質(zhì)量的嚴(yán)重下降(見圖3).
圖2 丟包率曲線
圖3 可解畫面比例
采用主動丟幀策略后,發(fā)送方能根據(jù)網(wǎng)絡(luò)的可用帶寬動態(tài)調(diào)整發(fā)送速率,使實際視頻傳輸帶寬與網(wǎng)絡(luò)可用帶寬相匹配,消除了因網(wǎng)絡(luò)資源不足造成的丟包現(xiàn)象,雖然也會損失一部分?jǐn)?shù)據(jù),但丟失的是非關(guān)鍵幀,所以丟包率始終維持在很低的一個水平,并且確保了I幀、P幀的完整性,可解畫面比例相對于不采用主動丟幀策略有顯著地提高,基本上與網(wǎng)絡(luò)可用帶寬呈線性關(guān)系(見圖3).
2.3.2 端到端延遲.
在不采用主動丟幀策略時,發(fā)送節(jié)點的發(fā)送速率超過了網(wǎng)絡(luò)可以傳輸?shù)纳舷?擁塞在所難免.在網(wǎng)絡(luò)擁塞的情況下,路由器中的隊列長度始終處于滿隊列或幾乎滿隊列的狀態(tài),相應(yīng)的數(shù)據(jù)包的排隊時延比較長.隨著可用帶寬越來越少,擁塞也越來越嚴(yán)重,數(shù)據(jù)包的端到端時延也相應(yīng)增大.在采用主動丟幀策略的情況下,因提前丟棄了部分不重要數(shù)據(jù),降低了數(shù)據(jù)發(fā)送速率,實際視頻傳輸帶寬與網(wǎng)絡(luò)可用帶寬相匹配,時延明顯縮短(見圖4).
圖4 端到端延遲
2.3.3 延遲方差.
端到端延遲的方差反映了網(wǎng)絡(luò)的穩(wěn)定性,方差越小,網(wǎng)絡(luò)越穩(wěn)定,方差越大,說明網(wǎng)絡(luò)越不穩(wěn)定.從圖5可以看出,隨著網(wǎng)絡(luò)可用帶寬的減小,未采用主動丟幀策略時,網(wǎng)絡(luò)越來越不穩(wěn)定,而采用主動丟幀策略后,網(wǎng)絡(luò)的穩(wěn)定性要好的多,這是因為控制了發(fā)送速率,從而避免了網(wǎng)絡(luò)擁塞的發(fā)生.
通過一種智能的方法搶先在發(fā)送端丟棄一些非關(guān)鍵幀,降低關(guān)鍵幀被破壞的風(fēng)險,就能夠更好地使用網(wǎng)絡(luò)資源,有效減緩網(wǎng)絡(luò)擁塞,提高視頻傳輸與播放的質(zhì)量.與一般網(wǎng)絡(luò)傳輸過程中的丟包不同,本文提出的丟幀方法是受控制的,能有效地改善視頻傳輸?shù)男阅芎唾|(zhì)量.
圖5 延遲方差
[1]Wu D,Hou Y T,Zhu W,et al.On End-to-end Architecture for Transporting MPEG-4Video over the Internet[J].IEEE Trans Circuits Syst Video Technol,2000,10(6):1-18.
[2]Floyd S,Fall K.Promoting the Use of End-to-end Congestion Control in the internet[J].IEEE/ACM Trans Networking,1999, 7(4):458-472.
[3]高奎.實時流媒體系統(tǒng)若干關(guān)鍵技術(shù)的研究[D].北京:中國科學(xué)院計算技術(shù)研究所,2005.
[4]江雍,林其偉.一種基于Evalvid的H.264視頻QoS評估改進(jìn)系統(tǒng)[J].電視技術(shù),2007,31(10):59-61.
[5]張大陸,朱小慶,胡治國,等.丟包對視頻體驗質(zhì)量影響的分析[J].計算機(jī)工程與應(yīng)用,2010,46(1):71-73.
[6]柯志亨,程榮祥,鄧德雋.NS2仿真實驗——多媒體和無線網(wǎng)絡(luò)通信[M].北京:電子工業(yè)出版社,2009.