?

流媒體視頻傳輸擁塞控制研究

2008-07-14 10:05童翔威周鐵軍
電腦知識與技術 2008年18期
關鍵詞:流媒體

童翔威 周鐵軍

摘要:隨著計算機網絡的流媒體系統在日常工作和生活中應用越來越廣泛,流媒體數據傳輸和網絡帶寬之間的矛盾也日益劇烈和明顯。在兩者都已經固定的情況下,就需要應用合適的網絡傳輸策略,有效利用媒體流的特點和網絡資源,傳輸流媒體數據流。本文重點研究了擁塞控制策略中的分層策略,針對現在的分層策略中各層之間有著優先級不同的限制、靈活性不高的缺陷,提出了一種先分層后編碼傳輸的分層組播策略,并給出了較詳細的試驗方案和實現方法,最后對該策略的特點進行了討論。

關鍵詞:流媒體;擁塞控制;分層編碼策略

中圖分類號: 文獻標識碼:A文章編號:1009-3044(2008)18-20ppp-0c

The Research of Congestion Control in Streaming Media Transmission

TONG xiangwei1 ZHOU tiejun2

(A graduate student of Computer College in Central south university of forestry and technology; Hunan, Changsha, 410004; Professor of computer college in Central south university of forestry and technology; Hunan, Changsha, 410004)

ABSTRACT: With the streaming media system on computer network more and more extensive application in their daily work and lives, the conflict between network bandwidth and data transfer is also increasingly severe and obvious. If both factors have been fixed, there will be a need to apply the appropriate strategy for network transmission and effective use of the media flow characteristics and network resources to transfer streaming data flow. This article focuses on layered strategy in congestion control strategy. For between each layered strategy there are defects of different priority restrictions and low flexibility, this article brings forward a layered multicast strategy of coding after layer, and gives a detailed test and realization method, and lastly discusses the features of this strategy.

KEY WORDS: Streaming Media; Congestion Control; Layered Coding Strategy

1 前言

隨著計算機網絡和流媒體技術的發展,基于計算機網絡的流媒體系統在日常工作和生活中應用越來越廣泛。由于圖像的信息量和數據量比較大,對視頻數據進行網絡傳輸時會占用大量的網絡資源,容易造成網絡擁塞,嚴重影響網絡的傳輸質量。近幾年來各種相關機構對流媒體和網絡進行大量的研究,對現有傳輸策略進行了各種改進,提出了多種對于視頻傳輸中網絡流量控制的方法。比如為在網絡上實時發布視頻數據,提出了多種分層組播策略,這些傳輸策略大大提高了視頻數據傳輸的質量。但是,現有的分層策略各層之間有著優先級不同的限制,靈活性不高。為解決這一問題,本章在簡單討論視頻流和網絡傳輸的特點之后,提出了一種先分層后編碼傳輸的分層組播策略,并給出了較詳細的試驗方案和實現方法,最后對該策略的特點進行了討論。

2 網絡傳輸的問題

現有的網絡一般都是異質性網絡,即網絡由特性不同的子網組成,這些特性包括網絡有不同的帶寬,不同的QoS質量保證,和具有不同的傳輸時延,這些特性都會對數據的網絡傳輸造成不良影響。所以在網絡上傳輸視頻等流媒體數據時,一定要解決網絡傳輸中的三類問題:數據丟失/錯誤、延遲和傳輸時延變化也就是網絡抖動[1]。

3 現有解決方法分析

由于流媒體應用,無論是分布式應用還是交互式應用,都是C/S結構的應用(即使B/S結構一般也是在客戶端瀏覽器中使用組件處理流媒體和其他數據),所以對網絡流量的控制一般分為兩類:一類是基于服務器的控制方法[2-5],另一類是基于客戶端的控制方法。其中基于服務器的流量控制是利用服務器根據客戶端接收狀況調節編碼輸出的碼率的一種流量調節方法;基于客戶端的流量控制是利用客戶端選擇接收流的方式來控制網絡上的流媒體數據流量。

另外一種是利用分層編碼傳輸(Layered Coding)策略控制網絡流量。分層策略是指,將媒體流按某種標準分配到不同的傳輸通道傳輸,客戶端根據自身的特點有選擇地接收各個通道的數據的一種流量控制策略。分層編碼策略有多種實現方法,其中包括:質量分層或SNR(Signal-to-Noise Ratio)分層、空間分層、時間分層、頻率分層或上面這些方式的組合[6,7]:

質量分層是對原始圖像從基本層開始,以越來越精細的量化步長進行量化,從而得到不同質量的幾層數據流。接收端通過逐步加入并接收解碼這些數據流,可以得到越來越清晰的圖像。

空間分層是把原始圖像在空間上劃分為幾部分,然后進行編碼傳輸,基本層解碼后可以獲得分辨率較低的圖像,各增強層解碼后可增加現有圖像的分辨率。

時間分層是視頻服務器在對視頻編碼時,按照時間,把圖像分配到不同的層上,即客戶端可以通過逐步加入不同的層,解碼得到不同幀率的視頻流。目前實現的方法一般時將編碼后的視頻流,按照每幀在解碼時的重要性分配到不同的層中,客戶端可以通過接收解碼不同的層,得到不同質量的視頻。

時間分層方法一般應用于對圖像質量要求較高而沒有對幀率提出過高要求的應用中,而其它分層方法一般應用于對時間連貫性比較高的應用當中。

由上述兩種時間分層方法可以看出,由于增強層的解碼需要基本層或前一層的碼流數據,所以,當基本層或層數比較低的數據流中出現丟幀時,丟幀所造成的解碼錯誤有可能擴散到之后的解碼過程中,而且,客戶端必須按順序加入各層,帶寬調整方面也不是十分靈活。為解決這些問題,本文提出了一種先分層后編碼的時間分層傳輸策略,這種策略使傳輸的各層之間沒有非常嚴格的制約關系,都各自編碼解碼,使客戶端的選擇更加靈活。

4 先分層后編碼的方法

4.1 分層原理

我們觀看的數字視頻信息,都是由一串動作連貫的圖片組成。之所以圖像連貫,是因為圖像中動作的運動頻率遠遠低于圖像的采樣頻率,所以相鄰的兩幅圖片之間的差異也就比較小,這也是當前很多視頻編碼思想的基礎。

同時,RGB視頻流由一串連續的未壓縮的圖片序列組成,幀和幀之間沒有依賴關系,一幀數據的顯示并不要求其它幀的數據。在RGB視頻序列中抽取部分幀之后,視頻仍然可以正常播放,只不過幀率有所降低,只要抽取的幀不是太多,對視頻主觀質量的影響并不嚴重[3]。

根據上述兩個條件,如果我們將視頻采集設備獲得的原始RGB視頻序列,按照一定的規律,均勻地分成幾個視頻序列,則各個視頻序列都能以不同地視頻質量反映原始視頻序列所描述地內容,如果我們將這些視頻序列按照原來地排列順序再重新排列起來,則可以得到原來的視頻序列,如圖1所示。這就是本文所提出的先分層后編碼傳輸的流量控制策略的思想基礎。

圖1 RGB格式數據流的分離和組合

4.2 流媒體處理的設計實現

這里的流媒體處理是指對媒體流的處理,包括RGB流的分離和合成、流媒體數據的網絡發送和接收四個模塊以及整個過程的控制功能。

在本節所涉及的四個組件都使用DirectShow的Filter實現,而對整個流媒體處理過程的控制利用Filter Graph來實現。在DirectShow中,RGB的幀和Filter Graph中的Sample相對應,我們可以通過操作Sample對象來操作RGB流中幀數據。RGB分離Filter有一個輸入Pin和多個輸出Pin,是一個Splitter Filter,RGB合成Filter有多個輸入Pin一個輸入Pin是一個Mixer Filter,網絡發送Filter只有輸入Pin沒有輸出Pin,它將流媒體數據發送到網絡上,是一個Renderer Filter,網絡接收Filter從網絡上接收流媒體數據,只有輸出Pin,是一個Source Filter。其中流媒體數據的網絡發送和接收Filter實現了部分上述的RTP協議的功能。

根據上面的敘述我們可以知道,RGB分離Filter的主要功能是將從輸入Pin接收來的RGB數據流按照一定的規律分配給Filter的幾個輸出Pin,如圖2所示。

圖2 Splitter Filter結構示意圖

4.3 基于分層的擁塞控制

基于分層的擁塞控制是指客戶端如何選擇加入和退出各層從而得到一個合適的網絡流量。為了控制方便,對分層組播做如下的幾點規定:

所有的組(層)使用同一個組播IP地址,各組之間以RTP端口號區分。

RTP端口號從小到大,幀率依次增加。并假設客戶可以通過其它途徑得到最小的端口號。

由于流媒體內容的改變,編碼后的碼流流量有可能有所變化,所以流媒體服務器需要及時通過RTCPAPP數據包通知各客戶端系統中各層的數據流量。

APP數據包中Application-dependent data部分的格式如下圖3定義

圖3 Application-dependent data格式

圖中各字段的含義如下:

Count of Layers:32位整數,表示在會話中的層數。

Port_1~Port_n:16位,表示各層的RTP端口號。

Flow Rate:16位,表示該層每秒發送的字節數。

客戶端加入會話以后,首先加入端口號最小的層中接收流媒體數據,這時客戶端得到主觀質量最差的視頻流。當客戶端接收到APP RTCP數據報文后,將各層的流量進行組合并排序后保存在一數組中??蛻舳耸褂蒙鲜鰯到M中的組合進行嘗試接收數據,直到得到一個合適的流量為止,這里所謂合適的流量是指,此流量是該客戶端可以接收到的最好質量數據流量。

當在接收數據過程中,RTP數據報文丟失率增高時表明,網絡上的可用帶寬在減少,則客戶端嘗試通過數據流量低的組合接收數據,直到得到一個合適的流量為止。

在順利接收流媒體數據一段時間之后,客戶端嘗試使用流量更高的組合接收數據,并在得到一個合適的流量后為止。

4.4 實驗測試

由于在Windows平臺上該策略的軟件實現利用了DirectShow架構,所以可以利用DirectShow提供的Filter測試工具GraphEdit來實驗系統的運行效果。在GraphEdit中,Filter被以圖形化的形式顯示在界面上,操作簡單、靈活而且非常直觀。

具體到本文的實驗,系統的仿真實現可以分為三部分:第一部分為視頻服務器部分,用來分層發送數據;第二部分為視頻客戶端部分,用來接收播放視頻數據;第三部分是數據記錄部分,把數據發送量和接收量記錄下來以供分析。本文的實驗中使用一塊視頻采集卡采集視頻數據,其輸出視頻格式為RGB555。采集到視頻數據后,利用實現的分層Filter對RGB數據進行分層,然后編碼傳輸。

數據接收端首先利用實現的數據接收Filter接收數據后,解碼成RGB數據流,然后通過數據合成Filter將多路視頻數據合成為一路視頻數據,播放輸出。

數據記錄的目的是為了記錄下數據傳輸的量,來評價視頻發布的質量。本文在實驗過程中,首先將視頻接收和發送的數據保存在AVI文件中,這樣可以記錄下具體傳輸的數據和數據傳輸的時間長度,如圖4所示。然后將AVI文件中的視頻數據寫入二進制文件,這樣可以得到網絡上發送的數據的量如圖5所示。將AVI中的視頻數據寫入文件的原因是,當系統寫AVI文件時,寫入的不只是視頻數據,還有AVI文件的格式信息等其他數據。

圖4 接收并保存為AVI文件

圖5 寫視頻數據到文件

5 總結

根據先分層后編碼傳輸的設計思想和實現方法,可以分析出,這種流量控制策略有如下特點:

1)實現簡單,系統實現過程中不必考慮圖像的具體內容,只需處理原始的RGB視頻流,而RGB視頻流,結構簡單,容易對其進行操作;2) 對編碼格式沒有依賴性,傳輸策略只規定了原始數據流應該是RGB格式的數據流,解碼后的數據流也應該是RGB數據流,而對編碼后的數據流格式沒有任何要求;3) 適合實時應用,由于在流媒體處理時主要是對原始的未壓縮的RGB數據流進行分層,此策略適合獲得RGB數據的實時應用,比如實時組播或實時點對點傳輸。

綜上所述,結合RTP實時傳輸協議,這種分層策略可以較好地解決網絡視頻傳輸中的數據丟失、延遲和抖動等問題,控制網絡擁塞的發生。在網絡狀況較好的情況下,客戶端選擇較多的層接收數據可以得到質量較高的視頻圖像。

參考文獻:

[1] 李捷,周云嫻,王雨等.網絡視頻編碼中的分層技術[J].計算機工程與應用,1999(8):81-86.

[2] 王軍,吳志美.交換式以太網中連續實時流媒體的可靠組播[J].軟件學報,2004,15(2):229-237.

[3] 趙黔莉,涂國防.Internet視頻傳輸的擁塞控制策略[J].計算機工程,2004,30(1):144-147.

[4] 徐建軍,李強.視頻監控系統中基于MPEG-1數據流的丟幀機制[J].空軍雷達學院學報,2002,16(4):28-30

[5] Sun Y.S.,Tsou F.-M.,Chen M.C.,Tsai,Z.A TCP-friendly congestion control scheme for real-time packet video using prediction[C].Global Telecommunications Conference,1999. GLOBECOM' 99,1999(3):1818-1822.

[6] Abdul H. Sadka.Compressed Video Communications(影印版)[M].北京:科學出版社,2004,5:109-112.

[7] Yao Wang,Jrn Ostermann,et al著,候正信等譯.視頻處理與通信[M].北京:電子工業出版社,2003:269-287.

收稿日期:

作者簡介:童翔威(1983-),男,漢族,湖南株洲,碩士研究生,研究方向:計算機網絡擁塞控制。

猜你喜歡
流媒體
流媒體技術在廣播傳輸系統中的應用
流媒體時代下時尚攝影的發展走向
基于云服務的P2P流媒體技術在遠程教學視頻傳輸中的應用
實時流媒體數字水印系統的實現及其性能評價
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合