??? 摘? 要: 本文提出了基于多描述編碼的Peer to Peer方式視頻流直播方案,并對該方案中P2P方式視頻發(fā)布與接收策略進行了介紹。
??? 關(guān)鍵詞: MDC? Peer to Peer? 視頻流
?
??? 隨著通信技術(shù)、數(shù)字視頻技術(shù)的發(fā)展和網(wǎng)絡(luò)基礎(chǔ)設(shè)施建設(shè)的日益完善,傳統(tǒng)的、基于文本和圖片瀏覽的Internet服務(wù)已逐漸被以音視頻為主體的網(wǎng)絡(luò)多媒體服務(wù)所取代。以音視頻為主的多媒體服務(wù)對網(wǎng)絡(luò)帶寬的占用,以及對網(wǎng)絡(luò)服務(wù)質(zhì)量和傳輸實時性的要求是傳統(tǒng)Internet服務(wù)業(yè)務(wù)所不可比擬的。如何在現(xiàn)有的Internet環(huán)境下有效地發(fā)送音視頻數(shù)據(jù),提供用戶滿意的網(wǎng)絡(luò)多媒體服務(wù)是現(xiàn)今網(wǎng)絡(luò)研究的一個熱門領(lǐng)域。本文討論了一種結(jié)合多描述編碼的方法,用P2P方式進行視頻流發(fā)送的方案。
1? P2P技術(shù)介紹
??? P2P技術(shù)是一種用于不同PC用戶之間共享計算機資源的技術(shù)。位于網(wǎng)絡(luò)上的每個用戶都是一個對等實體(Peer),他們彼此獨立又可以互相協(xié)作,既是服務(wù)的提供者又是享用者。早期的P2P網(wǎng)絡(luò)已在分布式計算、即時通信和文件共享等領(lǐng)域取得了顯著成就。
??? 這里特別值得一提的是近幾年興起的、采用P2P方式的BT(bit torrent)文件下載。它的基本思想是將一個大的文件分成許多小的片斷,下載用戶非順序地從網(wǎng)絡(luò)中其他用戶處下載文件的各個分片。當(dāng)用戶下載完某個完整的分片后,又可將該分片共享,供其他用戶下載。與傳統(tǒng)的C/S方式文件下載相比,這種P2P下載方式的特點是用戶越多下載速度越快,可以最大限度地發(fā)揮網(wǎng)絡(luò)傳輸能力。
??? 但這種文件下載方式不能直接用于視頻流的發(fā)送,特別是對視頻流直播方式不太適合。對于直播視頻流來說,它的數(shù)據(jù)流是實時產(chǎn)生的(不同于文件方式,待發(fā)送的數(shù)據(jù)已經(jīng)存放于本地存儲內(nèi)),同時視頻直播流的接收和觀看必須是實時和順序進行的?,F(xiàn)在基于P2P的視頻直播多采用基于應(yīng)用層的組播方式,視頻流發(fā)送是通過構(gòu)建組播樹方式進行的。每個用戶(組播樹上的一個節(jié)點)從自己的父節(jié)點處獲取完整的視頻流進行收看,同時向下游的兒子節(jié)點轉(zhuǎn)發(fā)視頻數(shù)據(jù)。在這種方式下,對組播樹中的每個Peer節(jié)點的網(wǎng)絡(luò)I/O帶寬都有較高要求(在某些用戶接入方式下工作不太理想。如ADSL用戶,上下行通道不對稱,上行帶寬很窄)。并且當(dāng)組播樹的某個節(jié)點,特別是位于上層的節(jié)點發(fā)生故障時,組播樹的恢復(fù)存在一定難度和時延。
2? 多描述編碼
??? 多描述編碼MDC(Multiple Description Coding)假設(shè)在信源和信道之間有多個信道,各個信道同時出錯的概率非常低。通過生成多個同等重要、可獨立解碼的關(guān)于編碼的描述,保證在其中一些描述丟失時,仍可以得到可接受的信號。因此,多描述編碼在基于包的網(wǎng)絡(luò)、無有效保護機制的Internet、分集通信系統(tǒng)(多天線的無線信道)、語音編碼、圖像編碼、視頻編碼、多分布的存儲系統(tǒng)中有很好的應(yīng)用前景。
??? 針對視頻的多描述編碼構(gòu)造方法很多,最簡單直觀的方法是針對空間分辨率、時間分辨率進行亞抽樣,編碼成多路描述碼流。此外,還有多描述量化、多描述變換編碼及基于FEC的多描述編碼。
3? 基于MDC的P2P視頻直播方案
??? 通過對MDC和P2P技術(shù)的分析可知,這兩項技術(shù)在網(wǎng)絡(luò)多媒體數(shù)據(jù)傳輸中有顯著的優(yōu)勢和特點。但將這兩項技術(shù)結(jié)合起來進行視頻直播,且能發(fā)揮其各自技術(shù)優(yōu)勢的方案還未見到。本文提出的視頻直播方案,對原始視頻采用多描述編碼,形成多路碼流;對編碼后的多路描述流采用P2P方式,使多點(即多個Peer)相互協(xié)作,實現(xiàn)多徑傳輸。具體方案如下。
3.1 MDC編解碼模型
??? 如圖1所示,對原始圖像幀進行空間亞抽樣,形成低分辨率的視頻子流。按2n(n可以取1,2,3,……)進行水平和垂直方向的亞抽樣。這樣一路原始視頻流經(jīng)空間亞抽樣后可形成4路、16路等22n路視頻子流。具體的抽樣間隔根據(jù)實際應(yīng)用情況進行選擇。對每路視頻子流進行單獨編碼,可得到22n路編碼描述子流。編碼后的描述子流通過不同的信道發(fā)往接收者(實際上在P2P的發(fā)送方式下,不同的描述子流是由不同的Peer發(fā)往接收者)。接收者對每路描述子流進行單獨的接收和解碼,并將解碼后的視頻流合成為原始視頻流。如果只接收到部分視頻子流,也可以通過相應(yīng)的插值算法恢復(fù)出原始視頻圖像。
?
3.2 P2P發(fā)布網(wǎng)絡(luò)模型
?? ?與目前大多采用的樹狀P2P發(fā)布網(wǎng)絡(luò)模型不同(該發(fā)布模型是自上而下分層,一對多的數(shù)據(jù)分發(fā)模式),本文采用的是自上而下的分層網(wǎng)狀發(fā)布模型,如圖2所示。
?
3.3 P2P方式視頻發(fā)送與接收
??? 每路描述子流發(fā)送采用RTP打包,在包頭中要包含以下私有字段:原始流惟一標識、子流標識、時間戳(或幀同步標識)。
??? (1)發(fā)布網(wǎng)絡(luò)的初始化
??? 最先進入網(wǎng)絡(luò)的用戶向發(fā)布服務(wù)器發(fā)出視頻傳送請求,由于此時用戶數(shù)較少,用戶采用傳統(tǒng)的C/S方式直接從種子服務(wù)器(種子服務(wù)器為視頻流的“發(fā)源地”)獲取數(shù)據(jù)。
??? (2)新的Peer請求加入過程
??? 第一步:從發(fā)布服務(wù)器獲取直播流信息,直播流信息主要字段包括:直播流標識和流描述信息。
??? 第二步:用戶選擇自己感興趣的流,向發(fā)布服務(wù)器發(fā)送“流申請”(可選項:與此同時用戶可以向本地局域網(wǎng)廣播申請)。
??? 第三步:發(fā)布服務(wù)器返回應(yīng)答信息(也可是本地Peer用戶返回應(yīng)答信息)。應(yīng)答信息主要內(nèi)容如圖3所示。
?
??? 第四步:子流轉(zhuǎn)發(fā)服務(wù)器的選擇:①優(yōu)先從本地網(wǎng)絡(luò)Peer中選取轉(zhuǎn)發(fā)描述子流。②不同的子流盡量從不同的Peer上接收。選擇了轉(zhuǎn)發(fā)服務(wù)器后,向選擇的Peer發(fā)送請求,要求其傳送各自的描述子流數(shù)據(jù)。
??? (3)接收過程
??? 對不同的描述子流分別啟動單獨的線程進行接收和解碼。解碼后的多路視頻幀置于合成處理緩沖區(qū)中。對每幀數(shù)據(jù)的處理設(shè)置一個最大容忍時間。當(dāng)容忍時間到達時,應(yīng)根據(jù)處理緩沖區(qū)中收到的解碼后的子幀編號,選擇相應(yīng)的原始幀恢復(fù)算法對圖像進行恢復(fù)并顯示。如果一路視頻流的所有描述子流都及時收到并解碼,則可完全恢復(fù)原始視頻圖像,否則要經(jīng)過插值處理來得到原始圖像。
??? 在整個接收過程中,用戶同時對正確接收到的描述子流進行統(tǒng)計。對時延和丟包大的子流,用戶可以啟動搜索線程,尋找新的Peer來獲取該路描述子流。對于接收狀態(tài)良好的子流,用戶可以生成報告信息發(fā)往發(fā)布服務(wù)器進行“登記”?!案嬖V”發(fā)布服務(wù)器,“自己”可以對該路視頻流的哪些“子流”進行轉(zhuǎn)發(fā)。
??? (4)連接丟失處理
??? 如果用戶的某路連接丟失(可能是由于網(wǎng)絡(luò)故障,或是作為該路流下載服務(wù)器的Peer關(guān)機或離開),則接收者向發(fā)布服務(wù)器(或本地用戶)發(fā)出該路子流的下載請求,以尋找新的下載服務(wù)器(Peer)。與此同時,該用戶仍然可以根據(jù)其他可接收到的子流正常收看視頻節(jié)目。
4? 實驗?zāi)P徒榻B
??? 初步的仿真實驗在實驗室內(nèi)通過路由器連接兩個局域網(wǎng)構(gòu)成的小型網(wǎng)絡(luò)環(huán)境下進行。模擬實驗共使用15臺PC機。PC均為PⅢ800,內(nèi)存128MB以上配置,并配備100MB快速以太網(wǎng)卡。其中一臺PC作為種子視頻服務(wù)器和內(nèi)容發(fā)布服務(wù)器,其他分布在兩個局域網(wǎng)內(nèi)的主機作為客戶機。播出的視頻流以H.263標準編碼模型為基礎(chǔ),對CIF格式原始視頻流進行空間亞抽樣分成4路QCIF格式的子流。對這4路流單獨進行編碼,形成4路單獨的描述子流,然后進行RTP打包發(fā)送給用戶??蛻舳说慕尤?、peer搜索、視頻數(shù)據(jù)的接收和轉(zhuǎn)發(fā)算法按照上一章介紹的算法實現(xiàn)。同時在客戶端轉(zhuǎn)發(fā)數(shù)據(jù)時通過隨機丟包和延時傳送方式,模擬網(wǎng)絡(luò)的丟包和傳輸延時。仿真實驗采用主觀評價方式。實驗表明,在實驗室環(huán)境下建立的基于MDC編碼的P2P視頻流發(fā)布系統(tǒng)模型可以進行較理想的視頻發(fā)布和接收。用戶可以收看到清晰流暢的視頻圖像,同時對網(wǎng)絡(luò)丟包和連接丟失有一定容錯性。
5? 總? 結(jié)
??? 本文提出的方案能更好地發(fā)揮P2P方式下多用戶協(xié)作特性,充分利用網(wǎng)絡(luò)帶寬進行視頻流發(fā)送。同時由于編碼采用MDC方式,該方案能更好地適應(yīng)網(wǎng)絡(luò)帶寬變化,同時對網(wǎng)絡(luò)傳輸?shù)膩G包和延時有較好的適應(yīng)性和容錯性。當(dāng)然該方案還處于一個較為簡單的模型階段,今后還將從以下幾個方面進行研究:(1)進一步完善P2P播出算法。(2)找到效率更高的MDC編碼算法。(3)完善系統(tǒng)實現(xiàn),在更大范圍的真實環(huán)境中對系統(tǒng)進行測試。
參考文獻
1?? Tran D A,Hua K A,Do T T.Zigzag:An efficient peer-to-peer scheme for media streaming.In:IEEE INFOCOM,San Francisco CA,USA,2003
2?? 趙誼虹,余松煜,程國華.多描述編碼的研究現(xiàn)狀及其展望.通信學(xué)報,2005;(1)
3?? 謝勇均.P2P模式的流媒體服務(wù)技術(shù).現(xiàn)代電視技術(shù),2004;(7)