《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 業(yè)界動態(tài) > 基于多源的P2P流媒體傳輸系統(tǒng)的設(shè)計

基于多源的P2P流媒體傳輸系統(tǒng)的設(shè)計

2008-03-17
作者:林 強(qiáng), 黃建華, 毛軍鵬

  摘 要: 針對實際P2P網(wǎng)絡(luò)中存在的異構(gòu)性問題,提出一種基于多源的P2P流媒體" title="流媒體">流媒體傳輸系統(tǒng)" title="傳輸系統(tǒng)">傳輸系統(tǒng)。
  關(guān)鍵詞: P2P 流媒體傳輸? 多描述編碼? 多源

?

  近年來,隨著Bittorrent、eMule等P2P[1]應(yīng)用軟件的出現(xiàn),業(yè)界已廣泛展開了對P2P網(wǎng)絡(luò)的研究。P2P網(wǎng)絡(luò)中,每個節(jié)點同時具有服務(wù)器和客戶端功能,每個節(jié)點將接收的內(nèi)容緩存并提供給其他請求節(jié)點,這充分挖掘了Internet上被忽視的客戶機(jī)資源,在利用率、可擴(kuò)展性、容錯等方面具有巨大潛力。把P2P引入流媒體服務(wù),將打破傳統(tǒng)的C/S模式,使服務(wù)分散化,從而減輕服務(wù)器負(fù)載并支持更大范圍流媒體發(fā)布,具有潛在的應(yīng)用前景。
  現(xiàn)有的基于P2P流媒體系統(tǒng)多采用基于應(yīng)用層[2-3]的組播方式,這種方式通?;趩卧磦鬏?。組播組內(nèi)的Peer必須提供足夠的帶寬來傳送一個完整的媒體流" title="媒體流">媒體流。然而在實際的網(wǎng)絡(luò)環(huán)境中,各個Peer之間在提供的帶寬、存儲空間以及CPU能力等方面存在著很大的異構(gòu)性。有些Peer所提供的出口帶寬通常不能支持一個完整的媒體流的傳送。例如在ADSL方式下,Peer的上行帶寬只有幾百kbps左右,而一部以MPEG-1編碼的視頻流的帶寬是1.5Mbps,單個Peer無法傳送完整的媒體流,因此需要多個Peer對一個Peer進(jìn)行服務(wù),即提供服務(wù)的所有Peer的出口帶寬之和要大于媒體流的編碼帶寬,Peer之間則以單播的形式通信。
  為了解決上述的流媒體在異構(gòu)的P2P網(wǎng)絡(luò)中存在的問題,本文提出一種基于多源的P2P流媒體傳輸系統(tǒng)PSMTMS(P2P Streaming Media Transmission System Based on Multi-Source)。通過組群劃分機(jī)制建立起分層集中的PSMTMS網(wǎng)絡(luò)模型。在此模型上采用多描述編碼方式把原始視頻編碼成多個描述,形成多個描述子流(碼流),每個描述子流經(jīng)過不同Peer傳送到用戶端。這種傳輸方式不需要網(wǎng)絡(luò)提供可靠的子信道,能很好地解決Peer節(jié)點所體現(xiàn)出的異構(gòu)性問題,從而提高視頻傳輸?shù)聂敯粜?;并且引入服?wù)節(jié)點的選擇策略" title="選擇策略">選擇策略,用戶端能從品質(zhì)度最佳的Peer下載描述子流,既充分利用了Peer的資源,又保障了流媒體的服務(wù)質(zhì)量。
1 PSMTMS網(wǎng)絡(luò)模型
  PSMTMS網(wǎng)絡(luò)模型的設(shè)計思想是以引入分級集中和層次化樹型結(jié)構(gòu)為核心,從而建立分層集中網(wǎng)絡(luò)體系結(jié)構(gòu)。提出組群劃分和層次化結(jié)構(gòu)的目的是充分考慮節(jié)點網(wǎng)絡(luò)鄰近性特征。通過組群劃分機(jī)制將物理距離較近的節(jié)點劃為一組,以使網(wǎng)絡(luò)中鄰近節(jié)點間的數(shù)據(jù)傳輸盡量都在所在區(qū)域內(nèi)部完成,降低了媒體流傳輸延遲。
1.1 基本概念
  (1) 媒體管理服務(wù)器(MMS):保存著各個興趣組內(nèi)所有節(jié)點的相關(guān)信息,負(fù)責(zé)管理所在興趣組中的節(jié)點的加入、退出,以及為用戶選擇高品質(zhì)的服務(wù)節(jié)點。每個媒體文件在MMS中設(shè)立一個興趣組。
  (2) 流媒體服務(wù)器(SMS):存儲媒體數(shù)據(jù),傳送媒體數(shù)據(jù)給用戶,并且能把原始視頻通過MDC編碼成媒體流數(shù)據(jù)。
  (3) 普通節(jié)點(Peer):類似于C/S結(jié)構(gòu)中的普通用戶。
1.2 PSMTMS體系結(jié)構(gòu)
  本系統(tǒng)網(wǎng)絡(luò)拓?fù)涫菢?gòu)建于物理網(wǎng)絡(luò)拓?fù)渲系囊粚又丿B網(wǎng)絡(luò),屬于應(yīng)用層的虛擬網(wǎng)絡(luò)。網(wǎng)絡(luò)拓?fù)浞譃閮蓪樱ㄈ鐖D1所示):底層是由區(qū)域組成的集合,每個區(qū)域是按組群劃分機(jī)制組織起來的用戶群;頂層由一個媒體管理服務(wù)器(MMS)、一個或多個流媒體服務(wù)器(SMS)組成。在圖1中,Peer12從所在區(qū)域1中選取Peer11和Peer1n以及在區(qū)域n中選取Peern1三個節(jié)點作為自己的接收節(jié)點。其他節(jié)點依此相互協(xié)作,實現(xiàn)多源的媒體流傳輸。


1.3 組群劃分機(jī)制
  為了實現(xiàn)媒體流傳送盡量都在網(wǎng)絡(luò)中鄰近節(jié)點間進(jìn)行,本文將物理距離較近的節(jié)點歸為一個組群,從而降低了媒體流的傳輸延遲。
  組群劃分機(jī)制具體描述如下:
  (1)當(dāng)一個新節(jié)點Peer希望加入網(wǎng)絡(luò)時,它首先向MMS發(fā)送請求加入消息。
  (2)MMS返回標(biāo)志節(jié)點列表給Peer。標(biāo)志節(jié)點也是普通節(jié)點,它一般是第一個加入所在區(qū)域的節(jié)點。
  (3)Peer計算到各個標(biāo)志節(jié)點的物理網(wǎng)絡(luò)距離。最簡單的方法可以使用Ping消息。如果計算的物理距離小于PSMTMS系統(tǒng)設(shè)定的門限值,則Peer將通過向MMS發(fā)送消息加入到標(biāo)志節(jié)點所在的區(qū)域中,組群劃分過程結(jié)束;否則,自動成為一個標(biāo)志節(jié)點,并相應(yīng)添加一個新區(qū)域。
2 多描述編碼
  多描述編碼[4]MDC(Multiple Description Coding)將視頻信息(或其他信息源)編碼成多個獨立的、等優(yōu)先級的碼流。每個碼流稱為一個“描述”。這些無優(yōu)先級的碼流可分別通過獨立信道傳輸,不分特殊層,每個描述都能被獨立譯碼。假設(shè)在接收、發(fā)送端之間有多個獨立的并行信道,各信道中誤碼的發(fā)生是相互獨立的, 即所有信道同時發(fā)生誤碼的概率較小。這樣在接收端至少有部分描述被正確接收,可以重構(gòu)視頻。若全部描述被正確接收,接收端能重構(gòu)最佳質(zhì)量的視頻。這一特性使MDC非常適合分組交換的網(wǎng)絡(luò)。由于多描述編碼可以在支持不同比特率的路徑上傳輸,可以充分利用包交換網(wǎng)絡(luò)的傳輸資源,所以具有廣泛的應(yīng)用前景。
  針對視頻的多描述編碼方法很多,最簡單的方法是時域劃分, 即發(fā)送端依據(jù)采樣時間分成奇偶兩個視頻信號,生成兩個描述經(jīng)不同信道傳輸[5]。此外,還有多描述量化、多描述變換編碼及基于FEC的多描述編碼。
  本文采用的MDC編解碼模型如圖2所示,對經(jīng)小波" title="小波">小波變換后的視頻的小波系數(shù)進(jìn)行分割,采用空間-時間分塊方法,將小波系數(shù)分成多個子塊,分別對各子塊進(jìn)行3D-SPIHT(三維等級樹集合劃分算法)[6]編碼,得到多個編碼比特流(描述)。對每一描述,以固定長度k個比特構(gòu)成一個信息碼組(在此稱為“打包”),再分別對每個包加循環(huán)冗余碼(CRC)校驗,加上與Reed-Solomon(RS)編碼糾錯碼組合使用,提高了系統(tǒng)的性能。編碼后的描述流通過不同的信道發(fā)往接收者(實際上在P2P的發(fā)送方式下,不同的描述流是由不同的Peer發(fā)往接收者的)。在接收端,先對多個獨立信道接收的各描述包進(jìn)行RS解碼,對每一描述(碼流),分別進(jìn)行3D-SPIHT解碼,得到相應(yīng)于各描述(碼流)的小波系數(shù)。CRC檢測到包被污染,即停止該包所屬描述的3D-SPIHT解碼,全部描述3D-SPIHT解碼完成后將各小波系數(shù)合成為一小波系數(shù)矩陣;然后進(jìn)行小波逆變換,即得到解碼的視頻信號。


3 PSMTMS傳輸系統(tǒng)實現(xiàn)方案
  本文提出的流媒體傳輸系統(tǒng)對原始視頻采用多描述編碼,形成多路碼流(描述);對編碼后的多路描述子流采用P2P方式,使多點(即多個Peer)相互協(xié)作,實現(xiàn)多徑傳輸。
3.1 服務(wù)節(jié)點的選擇策略
  服務(wù)節(jié)點的選擇可以根據(jù)不同的QoS需求采取不同的選擇策略。如果希望流媒體服務(wù)的延遲小,可以選擇物理鄰近的節(jié)點作為服務(wù)的節(jié)點以快速建立會話,如在局域網(wǎng)內(nèi)有提供服務(wù)的節(jié)點,就不選擇Internet上的節(jié)點,這樣可以避開Internet上的帶寬波動和擁塞;如果希望得到高質(zhì)量的流媒體服務(wù),則可選擇能夠提供高帶寬、CPU 能力強(qiáng)的節(jié)點,例如在寬帶接入的PC機(jī)和ADSL接入的終端之間選擇前者。
  本系統(tǒng)結(jié)合以上兩種選擇策略,對服務(wù)節(jié)點的選擇采用如下策略:
  (1)優(yōu)先從本區(qū)域中選取Peer作為轉(zhuǎn)發(fā)描述子流(即成為服務(wù)節(jié)點)。根據(jù)上述的組群劃分機(jī)制組成的區(qū)域中所有節(jié)點間的物理網(wǎng)絡(luò)距離較近,這樣數(shù)據(jù)傳輸延遲也較小。
  (2)不同的描述子流盡量從不同的Peer上接收,避免了由于所選Peer的離開而造成多個描述子流的丟失。
  (3)優(yōu)先選取品質(zhì)度好的Peer。根據(jù)Peer的當(dāng)前系統(tǒng)信息(如CPU處理能力、內(nèi)存信息、上傳帶寬、下載帶寬、上傳連接數(shù)和下載連接數(shù)等),通過某種算法計算得到一個性能評估值。性能評估值越大,Peer的品質(zhì)度越好。
3.2 媒體流傳輸網(wǎng)絡(luò)的構(gòu)建
  在PSMTMS系統(tǒng)中,由多個提供不同帶寬的服務(wù)節(jié)點向一個接收節(jié)點發(fā)送數(shù)據(jù)。為了保證服務(wù)延遲小以及服務(wù)的連續(xù)性和穩(wěn)定性,接收節(jié)點根據(jù)所接收到的各描述子流的質(zhì)量,動態(tài)地選擇相應(yīng)的服務(wù)節(jié)點。
  本系統(tǒng)每路描述子流采用RTP打包發(fā)送,在包頭中要包含以下私有字段:原始流惟一標(biāo)識、子流標(biāo)識和時間戳(或幀同步標(biāo)識)。
3.2.1 Peer節(jié)點的加入過程
  當(dāng)流媒體服務(wù)器(SMS)有新媒體文件時,SMS就會向媒體管理服務(wù)器(MMS)發(fā)布Create消息。MMS收到消息后,首先創(chuàng)建一個新的興趣組,并生成一個惟一的媒體流標(biāo)識來表示此媒體文件;然后向MMS發(fā)送Response消息,這樣新媒體文件就可以提供給用戶訪問了。


  新節(jié)點Peer加入興趣組的過程如圖3所示,其詳細(xì)描述如下:
  (1)當(dāng)新節(jié)點PeerA想要訪問某個媒體文件時,首先根據(jù)PeerA的系統(tǒng)信息,按照某種算法計算出品質(zhì)度;并向MMS發(fā)送請求消息,包括PeerA的IP地址、品質(zhì)度以及媒體文件的描述信息;
  (2)MMS生成PeerA的唯一標(biāo)識號(NodeID)并搜索媒體文件所在的興趣組,返回PeerA的NodeID和標(biāo)志節(jié)點列表消息;
  (3)PeerA根據(jù)收到的節(jié)點列表信息,按照1.3節(jié)所述的組群劃分機(jī)制,加入到相應(yīng)的區(qū)域,并告知MMS;
  (4)MMS根據(jù)上述服務(wù)節(jié)點的選擇策略,選出目前每個描述子流所對應(yīng)的品質(zhì)度最佳的服務(wù)節(jié)點,并向PeerA發(fā)送服務(wù)節(jié)點列表消息。每個服務(wù)節(jié)點信息包括:NodeID、IP地址、可轉(zhuǎn)發(fā)的描述子流標(biāo)識。
  如果興趣組的成員較少(少于描述子流總數(shù))或SMS可用帶寬大于帶寬下界BWbound,可把SMS當(dāng)作服務(wù)節(jié)點,以便用戶獲取數(shù)據(jù),保證用戶接收到盡可能多的描述子流。
3.2.2 Peer節(jié)點的退出過程
  Peer的退出有兩種:正常退出和異常退出。對于Peer的正常退出(如用戶正常關(guān)閉程序),Peer首先檢查是否有下載節(jié)點從Peer那里下載描述子流;如果有,則向它們分別發(fā)送Leave報文,各下載節(jié)點重新獲取相應(yīng)的服務(wù)節(jié)點;最后Peer向媒體管理服務(wù)器發(fā)送LeaveGroup報文,媒體管理服務(wù)器更新相應(yīng)的信息。對于Peer的異常退出(如節(jié)點掉線或死機(jī)等)的處理方式為:Peer周期性地向其下載節(jié)點發(fā)送Keeplive報文,如果下載節(jié)點在一段時間內(nèi)沒收到Peer的報文,就認(rèn)為Peer失效,重新向媒體管理服務(wù)器申請新的服務(wù)節(jié)點以替換Peer。
3.3 媒體流的傳輸過程
  Peer根據(jù)MMS提供的服務(wù)節(jié)點列表信息,對不同的描述子流分別啟用單獨的線程從不同的服務(wù)節(jié)點進(jìn)行接收和解碼。先對接收到的各描述包進(jìn)行RS解碼;然后對每一描述(碼流)分別進(jìn)行3D-SPIHT解碼,得到相對于各描述(碼流)的小波系數(shù),如果CRC檢測到包被污染,即停止該包所屬描述的3D-SPIHT解碼。解碼后的多路視頻塊置于合成處理緩沖區(qū)中。對每塊數(shù)據(jù)的處理設(shè)置一個最大等待時間。當(dāng)?shù)却龝r間到達(dá)時,根據(jù)處理緩沖區(qū)中收到的解碼后的子塊編號,將各小波系數(shù)合成為一小波系數(shù)矩陣;最后進(jìn)行小波逆變換,即得到解碼的視頻信號并顯示出來。
  在整個接收過程中,Peer節(jié)點同時對各個正確接收到的描述子流進(jìn)行統(tǒng)計。對于時延和丟包率大的子流,Peer可以向媒體管理服務(wù)器發(fā)送該描述子流的下載請求,重新獲取新的服務(wù)節(jié)點。對于接收狀態(tài)良好的子流,Peer可以生成發(fā)布消息發(fā)往媒體管理服務(wù)器進(jìn)行登記,通告媒體管理服務(wù)器,自己可以對該描述子流進(jìn)行轉(zhuǎn)發(fā),Peer自動成為該描述子流的服務(wù)節(jié)點。
  針對流媒體在異構(gòu)的P2P網(wǎng)絡(luò)中存在的問題,本文提出了一種基于多源的P2P流媒體傳輸系統(tǒng)。下一步研究工作是設(shè)計出一種Peer性能評估值算法,進(jìn)一步完善P2P流媒體傳輸系統(tǒng)。
參考文獻(xiàn)
[1] MILOJICIC D S, KALOGERAKI V, et al. Peer-to-Peer Computing .HP Laboratories Palo Alto HPL-2002-57 (R.1) July 3rd, 2003.
[2] DESHPANDE H,BAWA M,GARCIA M H. Streaming live media over a peer-to-peer network. In Work at CS-Stanford.Submitted for publication,2002.
[3] TRAN D, HUA K, DO T. Zigzag: An efficient peer-to-peer scheme for media streaming. In: Proc.of IEEE INFOCOM ‘03. San Francisco.CA.USA.IEEE.2003.
[4] GOYAL V K. Multiple description coding: Compression meet the network. IEEE Signal Processing Magazine,2001,18(5):74-93.
[5] BEGEN A C,AHUNBASAK Y, ERGUN O,et a1. Multi-path selection for multiple description video streaming over ?overlay networks[M].Signal Processing:Image Communica-tion,2005,(20):39-60.
[6] KIM B J, XIONG Z. WILLIAM A P. Low Bit-Rate scalable video coder with 3-D set partitioning in hier-archical trees(3D-SPIHT)[J]. IEEE Trans on Circuits and System for Video Technology,2000,10(8):1374-1387.

本站內(nèi)容除特別聲明的原創(chuàng)文章之外,轉(zhuǎn)載內(nèi)容只為傳遞更多信息,并不代表本網(wǎng)站贊同其觀點。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。