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

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

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

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

?

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


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


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


  新節(jié)點(diǎn)Peer加入興趣組的過(guò)程如圖3所示,其詳細(xì)描述如下:
  (1)當(dāng)新節(jié)點(diǎn)PeerA想要訪問(wèn)某個(gè)媒體文件時(shí),首先根據(jù)PeerA的系統(tǒng)信息,按照某種算法計(jì)算出品質(zhì)度;并向MMS發(fā)送請(qǐng)求消息,包括PeerA的IP地址、品質(zhì)度以及媒體文件的描述信息;
  (2)MMS生成PeerA的唯一標(biāo)識(shí)號(hào)(NodeID)并搜索媒體文件所在的興趣組,返回PeerA的NodeID和標(biāo)志節(jié)點(diǎn)列表消息;
  (3)PeerA根據(jù)收到的節(jié)點(diǎn)列表信息,按照1.3節(jié)所述的組群劃分機(jī)制,加入到相應(yīng)的區(qū)域,并告知MMS;
  (4)MMS根據(jù)上述服務(wù)節(jié)點(diǎn)的選擇策略,選出目前每個(gè)描述子流所對(duì)應(yīng)的品質(zhì)度最佳的服務(wù)節(jié)點(diǎn),并向PeerA發(fā)送服務(wù)節(jié)點(diǎn)列表消息。每個(gè)服務(wù)節(jié)點(diǎn)信息包括:NodeID、IP地址、可轉(zhuǎn)發(fā)的描述子流標(biāo)識(shí)。
  如果興趣組的成員較少(少于描述子流總數(shù))或SMS可用帶寬大于帶寬下界BWbound,可把SMS當(dāng)作服務(wù)節(jié)點(diǎn),以便用戶獲取數(shù)據(jù),保證用戶接收到盡可能多的描述子流。
3.2.2 Peer節(jié)點(diǎn)的退出過(guò)程
  Peer的退出有兩種:正常退出和異常退出。對(duì)于Peer的正常退出(如用戶正常關(guān)閉程序),Peer首先檢查是否有下載節(jié)點(diǎn)從Peer那里下載描述子流;如果有,則向它們分別發(fā)送Leave報(bào)文,各下載節(jié)點(diǎn)重新獲取相應(yīng)的服務(wù)節(jié)點(diǎn);最后Peer向媒體管理服務(wù)器發(fā)送LeaveGroup報(bào)文,媒體管理服務(wù)器更新相應(yīng)的信息。對(duì)于Peer的異常退出(如節(jié)點(diǎn)掉線或死機(jī)等)的處理方式為:Peer周期性地向其下載節(jié)點(diǎn)發(fā)送Keeplive報(bào)文,如果下載節(jié)點(diǎn)在一段時(shí)間內(nèi)沒(méi)收到Peer的報(bào)文,就認(rèn)為Peer失效,重新向媒體管理服務(wù)器申請(qǐng)新的服務(wù)節(jié)點(diǎn)以替換Peer。
3.3 媒體流的傳輸過(guò)程
  Peer根據(jù)MMS提供的服務(wù)節(jié)點(diǎn)列表信息,對(duì)不同的描述子流分別啟用單獨(dú)的線程從不同的服務(wù)節(jié)點(diǎn)進(jìn)行接收和解碼。先對(duì)接收到的各描述包進(jìn)行RS解碼;然后對(duì)每一描述(碼流)分別進(jìn)行3D-SPIHT解碼,得到相對(duì)于各描述(碼流)的小波系數(shù),如果CRC檢測(cè)到包被污染,即停止該包所屬描述的3D-SPIHT解碼。解碼后的多路視頻塊置于合成處理緩沖區(qū)中。對(duì)每塊數(shù)據(jù)的處理設(shè)置一個(gè)最大等待時(shí)間。當(dāng)?shù)却龝r(shí)間到達(dá)時(shí),根據(jù)處理緩沖區(qū)中收到的解碼后的子塊編號(hào),將各小波系數(shù)合成為一小波系數(shù)矩陣;最后進(jìn)行小波逆變換,即得到解碼的視頻信號(hào)并顯示出來(lái)。
  在整個(gè)接收過(guò)程中,Peer節(jié)點(diǎn)同時(shí)對(duì)各個(gè)正確接收到的描述子流進(jìn)行統(tǒng)計(jì)。對(duì)于時(shí)延和丟包率大的子流,Peer可以向媒體管理服務(wù)器發(fā)送該描述子流的下載請(qǐng)求,重新獲取新的服務(wù)節(jié)點(diǎn)。對(duì)于接收狀態(tài)良好的子流,Peer可以生成發(fā)布消息發(fā)往媒體管理服務(wù)器進(jìn)行登記,通告媒體管理服務(wù)器,自己可以對(duì)該描述子流進(jìn)行轉(zhuǎn)發(fā),Peer自動(dòng)成為該描述子流的服務(wù)節(jié)點(diǎn)。
  針對(duì)流媒體在異構(gòu)的P2P網(wǎng)絡(luò)中存在的問(wèn)題,本文提出了一種基于多源的P2P流媒體傳輸系統(tǒng)。下一步研究工作是設(shè)計(jì)出一種Peer性能評(píng)估值算法,進(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)站贊同其觀點(diǎn)。轉(zhuǎn)載的所有的文章、圖片、音/視頻文件等資料的版權(quán)歸版權(quán)所有權(quán)人所有。本站采用的非本站原創(chuàng)文章及圖片等內(nèi)容無(wú)法一一聯(lián)系確認(rèn)版權(quán)者。如涉及作品內(nèi)容、版權(quán)和其它問(wèn)題,請(qǐng)及時(shí)通過(guò)電子郵件或電話通知我們,以便迅速采取適當(dāng)措施,避免給雙方造成不必要的經(jīng)濟(jì)損失。聯(lián)系電話:010-82306118;郵箱:aet@chinaaet.com。