引言
近年來,隨著計算機技術、壓縮技術以及網絡技術的發展,網絡中的流媒體業務也得到了飛速的發展和應用。所謂流媒體就是指在 Internet/Intranet中使用流式傳輸技術的連續時基媒體。本文中著重介紹視頻流。目前在Internet上傳輸視頻還有許多困難,其根本原因在于Internet的無連接每包轉發機制主要是為突發性的數據傳輸而設計的,不適用于對連續媒體流的傳輸。為了在Internet上有效地、高質量地傳輸視頻流,還需要多種技術的支持,例如基于視頻的壓縮編碼技術、應用層QoS技術、連續媒體分布服務、流服務器、媒體同步技術和相關協議等。
其中,原始視/音頻經過視/音頻壓縮算法的預壓縮存儲在存儲設備中。響應客戶請求時,流服務器從存儲設備中獲得視/音頻數據,應用層QoS控制模塊根據網絡狀態和QoS要求來改變視/音頻比特流。然后通過傳輸協議把壓縮過的比特流打包并且發送到網上。由于擁塞數據包可能出現丟包或者過度時延。為了提高視 /音頻的傳輸質量,網絡中配置了連續流媒體分布式服務。對于成功傳輸的數據包,它們首先通過傳輸層,然后在進行視/音頻解碼前經過應用層處理。為了獲得在播放中的視頻和音頻的同步,還需要媒體同步機制。從上圖中可以看出,這六個部分有著緊密的聯系而且都是流媒體結構的組成部分。
2 流媒體中的關鍵技術
2.1 視頻壓縮及編碼
目前網絡是異構性的,缺乏QoS質量控制,并且帶寬也在很大范圍內變化。傳統的不可擴展性視頻編碼的目標是將視頻壓縮成適合一個或者幾個固定碼率的碼流,是面向存儲的,因此不適合網絡傳輸。為了適應網絡帶寬的變化,面向傳輸的可擴展性編碼的思想應運而生。可擴展性編碼[2]就是將多媒體數據壓縮編碼成多個流,其中一個可以獨立解碼,產生粗糙質量的視頻序列,它適應最低的網絡帶寬,稱為基本層碼流;其他的碼流可以按層為單位在任何地點截斷,稱為增強層,用來覆蓋網絡帶寬變化的動態范圍,它們不可以單獨解碼,而只能與基本層和它以前的增強層聯合在一起解碼,用來提高觀看效果。因此,可擴展性碼流具有一定的網絡帶寬適應能力。
可擴展性編碼主要分為時域可擴展性編碼、空域可擴展性編碼和質量可擴展性編碼。可以選擇在時間、空間和信噪比(SNR)中的一個或者幾個方面實現擴展。考慮到編碼效率和復雜性兩方面,MPEG組織采納了精細可擴展性編碼(FGS)和漸進的精細可擴展性編碼(PFGS)[3]。精細可擴展性視頻編碼采用位平面(bitplane)編碼,它的基本層使用基于分塊運動補償和DCT變換的編碼方式達到網絡傳輸的最低要求,增強層使用位平面編碼技術對DCT殘差進行編碼來覆蓋網絡帶寬的變化范圍,它每一幀的增強層碼流可以在任何地點截斷,解碼器重建的視頻質量和收到并解碼的比特數成正比,它可以實現連續的增強層速率控制。FGS雖然具有很好的可擴展性,但是效率太低,PFGS在保留了FGS所具有的網絡帶寬自適應和錯誤恢復能力的同時,還有效地提高了編碼效率。但是可擴展性編碼的效率較非可擴展性編碼而言,還有一定差距。為了進一步壓縮FGS和PFGS的基本層碼流,有專家提出一種稱為精細的空域可擴展性(Fine-Granularity Spatially Scalable,FGSS)的視頻編碼算法,使低分辨率和高分辨率的增強層碼流都可以在任何地點截斷,具有極強的網絡帶寬適應能力和錯誤恢復功能,同時保持了空域可擴展性編碼的多分辨率特性,它可以滿足擁有不同網絡帶寬和不同分辨率接收設備的許多用戶的需求,性能得到了更大的提高。
結合多種視頻編碼技術來適應網絡上的QoS波動是今后可擴展性視頻編碼的發展方向。比如,可擴展性視頻編碼可以適應網絡帶寬的變化;錯誤彈性編碼可以適應丟包;DCVC(Delay Cognizant Video Coding)可以適應網絡時延。這三種技術的結合可以更好地提供一種應對網絡QoS波動的解決方案。
2.2 應用層QoS控制技術由于目前的Internet只提供Best-effort的服務,所以需要通過應用層的機制來實現QoS的控制。QoS控制技術主要集中在對網絡帶寬的變化進行響應和處理分組丟失的技術上,主要可以分為兩類:擁塞控制技術和差錯控制技術。
擁塞控制的目的是采用某種機制應對和避免網絡阻塞,降低時延和丟包率。常用的擁塞控制機制有速率控制和速率整形。對于視頻流,擁塞控制的主要方法是速率控制。速率控制機制試圖使一個視頻連接的需求與整個連接鏈路的可用帶寬相匹配,這樣可以同時使網絡擁塞和包丟失率達到最小。速率控制機制主要包括基于源端的、基于目的的以及混合速率控制。在基于源端的控制機制中,視頻源端收集反饋信息,進行控制計算并采取相應的控制動作。這種方法在因特網中被率先采用,但是在異構網絡中的運行情況并不是很好。基于目的端的控制機制則主要根據所接收的視頻流的狀況向上層反映相應的統計信息,實時調整緩沖及播放內容,并力圖使節奏均勻,這種機制使用較少。混合性速率控制的方法兼有前二者的特點,即目的端增加減少通道,而源端同時根據反饋調整各個通道的速率。混合速率控制方法的一個例子是目標集分組的方法。
擁塞控制只能減少數據包的丟失,但是網絡中不可避免的會存在數據包丟失,而且到達時延過大的分組也會被認為沒有用而被丟棄,從而降低了視頻質量。要改善視頻質量就需要一定的差錯控制機制。差錯控制機制包括:
(1)前向糾錯(FEC):FEC是通過在傳輸的碼流中加入用于糾錯的冗余信息,在遇到包丟失的情況時,利用冗余信息恢復丟失的信息。它的不足是增加了編碼時延和傳輸帶寬。
(2)延遲約束的重傳。通常流的播放有時間限制,因此,僅有當重傳的時間小于正常的播放時間時,重傳才是有價值的。
(3)錯誤彈性編碼(Error-Resilient Encoding):在編碼中通過適當的控制使得發生數據的丟失后能夠最大限度的減少對質量的影響。在Internet環境下,最典型的方法是多描述編碼(MDC)。MDC把原始的視頻序列壓縮成多位流,每個流對應一種描述,都可以提供可接受的視覺質量。多個描述結合起來提供更好的質量。該方法的優點是實現了對數據丟失的魯棒性和增強的質量。其缺點是相比單描述編碼(SDC),它在壓縮的效率上受到影響。而且由于在多描述之間必須加入一定的相關性信息,這進一步降低了壓縮的效率。
(4)錯誤的取消(concealment):錯誤的取消是指當錯誤已經發生后,接受端通過一定的方法盡量削弱對人的視覺影響。主要的方法是時間和空間的插值(Interpolation)。近年來的研究還包括最大平滑恢復,運動補償時間預測等。
2.3 連續媒體分布服務
連續媒體分布服務(continuous media distribution services)的目的是在Internet 盡力服務的基礎上提供QoS和高效的音/視頻傳輸,包括網絡過濾(Network Filtering)、應用層組播(Application-Level Multicast)、內容復制(Content Replication)等,下面分別進行詳細介紹。
網絡過濾:網絡過濾是擁塞控制的一種,不僅可以提高視頻質量,還可以提高帶寬利用率。不同于發送端的速率整形,網絡過濾是在流服務器和客戶端之間的傳輸路徑上通過虛擬信道連入過濾器,該過濾器根據網絡的擁塞狀態實現速率的整形。網絡過濾通常采用的是丟幀過濾器(frame-dropping filter),其基本方法是客戶端根據網絡丟包率向過濾器發送請求來增減丟幀速率,以調節媒體流的帶寬。這種速率整形可以在擁塞點進行,這樣可以提高速率控制的效率和擁塞控制的響應時間。
應用層組播:IP層的組播存在諸如可擴展性、網絡管理和對高層應用的支持(例如差錯控制,流量控制和擁塞控制)等屏障。應用層組播機制打破了IP組播的一些障礙,其目的在于構建網絡上的組播服務,可以以更靈活的方式實現組播控制。它允許獨立的 CSPs和ASPs等建立它們的Internet組播網絡,這些組播網絡可以互連成為更大的媒體組播網絡。媒體組播網絡可以利用內容分布網絡的互連,通過在不同種類的服務提供者(比如ISPs、CSPs和ASPs等)之間的應用層的對等關系來構建。媒體組播網絡中每個具有組播能力的節點稱為媒體橋(MediaBridge),它做為應用層的路由。每個媒體橋和一個或多個相鄰的媒體橋通過明確的配置互連,這個互連建立了應用層重疊拓撲。媒體橋在媒體組播網絡中用分布式應用層組播路由算法來確定一條優化的虛擬組播路徑。如果網絡不通或者過度擁擠,媒體組播網絡會自動的根據應用層路由規則來重新確定路徑。并且,只有當下游客戶端需要某媒體內容時,媒體橋才會傳輸它。這就確保了不管客戶端的數目而只有一個媒體流,從而節約了網絡帶寬。
內容復制:內容/媒體復制是提高媒體傳輸系統可擴展性的一項重要技術。內容復制具有以下優點:
(1)降低網絡連接的帶寬消耗。
(2)減輕流服務器負荷。
(3)縮短客戶端時延。
(4)提高有效性。它主要有兩種形式:caching(緩存)和mirroring(鏡像)。鏡像是把原始媒體內容拷貝到網絡上其他分散的備份服務器中。用戶可以從最近的備份服務器上獲得媒體數據。緩存則是從原服務器中獲得媒體文件,然后傳輸給客戶端,同時在本地做備份。如果緩存中已經存在客戶端需要的數據,緩存就會把本地拷貝傳給用戶而不是從傳送原服務器中的媒體數據。
2.4 流服務器視頻服務器在流媒體服務中起著非常重要的作用。當視頻服務器響應客戶的視頻流請求以后,它從存儲系統讀入一部分視頻數據到對應于這個視頻流的特定緩存中,再把緩存的內容通過網絡接口發送給相應客戶,保證視頻流的連續輸出。目前存在三種類型的視頻服務器結構[4]:
(1)通用主機方法。采用計算機主機作為視頻服務器。它的主要功能是存儲、選擇、傳送數據。缺點是系統成本高而且不利于發揮主機功能。
(2)緊耦合多處理機。把一些可以大量完成某指令或者專門功能的硬件單元組合成的專用系統級聯起來,就構成了緊耦合多處理機實現的視頻服務器。這種服務器費用低、性能高、功能強,但是擴展性較差。
(3)調諧視頻服務器。這種服務器主板上有一個獨特微碼的嵌入式仿真器控制。通過在主板中插入更多的服務通路,可以方便地進行擴展。
對于流服務器,如何更有效支持VCR交互控制功能;如何設計磁盤陣列上多媒體對象高效可靠的存儲和檢索;如何設計更好的可伸縮多媒體服務器;如何設計兼有奇偶和鏡像特性的容錯存儲系統是目前研究的重點。
2.5 媒體同步
所謂媒體同步是指保持一個數據流或者不同媒體流之間的時間關系。通常有三種類型的同步控制:流內(intra-stream)同步、流間(inter- stream)同步和對象間(inter-object)同步。由于網絡時延,導致媒體流在傳輸過程中失去同步關系,媒體同步機制可以確保客戶端正確地恢復媒體流的同步。媒體同步機制實際上就是在媒體內或者媒體間說明其時間關系。說明時間關系的方法有:基于間隔的方法、基于軸的方法、基于控制流的方法和基于事件的方法。對于連續媒體,應用最為廣泛的說明方法是基于軸的說明或時間戳。時間戳法是在每個媒體的數據流單元中加進統一的時間戳或時間碼,具有相同時間戳的信息單元將同時予以表現。在發送時,將各個媒體都按時間順序分成單元,在同一個時間軸上,給每個單元都打上一個時間戳,處于同一時標的各個媒體單元具有相同的時間戳。在各個媒體到達終端后,讓具有相同時間戳的媒體單元同時進行表現,這樣就得到了媒體之間同步的效果。對與終端系統而言,同步機制包括阻止(preventive)機制和糾正(corrective)機制。前者是主要通過減小延遲和抖動來減少同步錯誤,后者主要是在發生同步錯誤之后恢復同步。考慮到Internet傳輸的延遲隨機性,同步錯誤是不可避免的。因此,在接受方的錯誤補償是必須的。
另外,同步多媒體集成語言SMIL(Synchronized Multimedia Integration Language)是由3W(World Wide Web Consortium)組織規定的多媒體操縱語言。可以實現多個流和文本信息在播放時的時間同步控制和空間位置布置。通過SMIL還可以實現一定的用戶交互功能。
2.6 流媒體相關協議
2.6.1 實時傳輸協議(RTP)與實時傳輸控制協議(RTCP)
RTP(Real-time Transport Protocol)和RTCP(Real-time Control Protocol)都是基于IP的應用層協議。RTP為實時音/視頻數據提供端到端的傳送服務,包括有效載荷類型標識、序列標號、時間標簽和源標識,可以提供時間信息和實現流同步。由于TCP中重傳機制會引起時延,通常RTP運行于UDP之上,但是也可以在TCP或者ATM等協議之上運行。RTP本身并不提供可靠的傳送機制,也不提供流量控制或者擁塞控制,而是通過與RTCP配合使用,使傳輸效率最佳。RTCP用來監視服務質量和在會議過程中交換信息。它提供QoS反饋、參與者標識、控制包縮放、媒體間同步等服務。RTCP包中包含已發數據包的數量、丟失數據包數量等統計資料。服務器可以根據這些信息動態的改變傳輸速率甚至有效載荷類型。
2.6.2 實時流協議(RTSP)RTSP(Real-time Streaming Protocol)是由RealNetworks和Netscape共同提出的一個應用層協議。它可以在媒體服務器和客戶端之間建立和控制連續的音/視頻媒體流,協同更低層協議RTP、RSVP等一起來提供基于Internet的整套流式服務。RTSP提供了一種可擴展框架,使得可控的、點播的實時數據的傳送成為可能。它提供用于音頻和視頻流的“VCR模式”遠程控制功能,例如暫停、快進、快退和定位。支持單播和組播。RTSP還提供選擇發送通道的方法(如UDP、組播UDP和TCP)和基于RTP的發送機制。RTSP像是媒體服務器和客戶端之間的“網絡遠程控制”,它提供多種服務,如從媒體服務器上檢索媒體、邀請媒體服務器進入會議、添加媒體到現成節目。RTSP在語法和操作上類似于HTTP,因此許多HTTP的擴展機制都可以移植于RTSP上。在 RTSP中,每個節目和媒體流由RTSP URL確定,全部節目和媒體特性都在節目描述文件中給予了描述,包括編碼、語言、RTSP URLs、目的地址、端口號以及其他參數。但是,不同于HTTP的無狀態和非對稱,RTSP是有狀態的、對稱的協議。RTSP的服務器保持會話狀態以連接 RTSP流的請求,并且服務器和客戶端都可以發出請求。
2.6.3 資源預留協議(RSVP)資源預留協議[5](Resource Reserve Protocol)是運行于傳輸層的一個網絡控制協議。RSVP允許數據流的接受方請求特殊的端到端QoS。RSVP是非路由協議,它同路由器協同工作,在傳輸路徑的路由器上預留必要的帶寬,減少網絡的時延和抖動。RSVP的流程是單一的,并不區分發送方和接受方,且支持單播和組播,適應于可變成員個數和路由。RSVP領域的發展非常迅速,但是目前它的應用只限于在測試的小Intranet網絡上。
3 結論技術的進步和用戶的需求促進了流媒體應用的迅速發展。在遠程教育、數字圖書館、電子商務、視頻點播、交互電視、遠程醫療、網絡音/視頻、實時多媒體會議等方面,流媒體技術都起到很重要的作用。本文對網絡中流媒體業務的關鍵技術和相關協議做了研究,并探討了未來流媒體技術發展的方向。我們相信,隨著流媒體應用的不斷普及,寬帶流媒體技術及其應用必然會在未來的網絡中發揮更重要的作用,并在一定程度上改變人們使用網絡的方式。