《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 通信與網(wǎng)絡(luò) > 設(shè)計(jì)應(yīng)用 > 基于H.264/SVC的P2P內(nèi)容分發(fā)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
基于H.264/SVC的P2P內(nèi)容分發(fā)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)
來源:電子技術(shù)應(yīng)用2012年第7期
胡慶寶1,2, 周 旭2, 白 帆2, 黃 威2, 唐朝偉1等
1. 重慶大學(xué) 通信工程學(xué)院,重慶400044; 2. 中國科學(xué)院聲學(xué)研究所 高性能網(wǎng)絡(luò)實(shí)驗(yàn)室,,北京 100190
摘要: 通過對(duì)H.264/SVC和互聯(lián)網(wǎng)P2P技術(shù)的研究,,提出了復(fù)雜網(wǎng)絡(luò)環(huán)境下的H.264/SVC視頻流分發(fā)策略,設(shè)計(jì)了基于H.264/SVC視頻流的P2P內(nèi)容分發(fā)系統(tǒng),。該系統(tǒng)結(jié)合了H.264/SVC碼流可伸縮和P2P易擴(kuò)展的優(yōu)點(diǎn),實(shí)現(xiàn)了復(fù)雜網(wǎng)絡(luò)環(huán)境下自適應(yīng)視頻碼流傳輸,解決了異構(gòu)終端間視頻資源共享問題,。
中圖分類號(hào): TP311
文獻(xiàn)標(biāo)識(shí)碼: A
文章編號(hào): 0258-7998(2012)07-0120-03
Design and implement of P2P content distribution system based on H.264/SVC
Hu Qingbao1,2, Zhou Xu2, Bai Fan2, Huang Wei2, Tang Chaowei1, Zong Wei1
1. College of Communication Engineering, Chongqing University, Chongqing 400044, China; 2. High Performance Network Lab, Institute of Acoustics, Chinese Academy of Sciences, Beijing 100190,China
Abstract: In this paper, the strategies of H.264/SVC video stream distribution in complex network environment is proposed by studying the H.264/SVC and Internet P2P technology, then we design our P2P content distribution system implementation, based on H.264/SVC video stream. Our implementation takes the advantages of the scalability of H.264/SVC stream and the expansibility of P2P technology, enables rapid and reliable adaptive transmission of video streams and achieves the resource sharing among heterogeneous terminals.
Key words : SVC; P2P; content delivery strategy; complex network

    近年來,隨著移動(dòng)帶寬,、3G網(wǎng)絡(luò)的迅猛發(fā)展和移動(dòng)終端功能的不斷提高,,移動(dòng)互聯(lián)網(wǎng)給用戶帶來了更多、更好的多媒體應(yīng)用體驗(yàn)?,F(xiàn)有移動(dòng)終端流媒體業(yè)務(wù)通常對(duì)同一視頻按不同碼流標(biāo)準(zhǔn)多次編碼,,產(chǎn)生多種固定碼率視頻流,,以應(yīng)對(duì)復(fù)雜網(wǎng)絡(luò)環(huán)境下的終端應(yīng)用。該方法存在視頻源編碼后占用空間大,、異構(gòu)網(wǎng)絡(luò)終端間視頻數(shù)據(jù)無法共享等缺陷,。可伸縮視頻編碼SVC(Scalable Video Coding)[1]作為近年來新興的一種視頻信源編碼技術(shù),,可通過一次編碼生成高碼率視頻流,。SVC根據(jù)終端需求及網(wǎng)絡(luò)傳輸環(huán)境,傳送部分碼流數(shù)據(jù),,在終端達(dá)到不同分辨率,、質(zhì)量和幀率的解碼效果,能夠有效解決傳統(tǒng)視頻編碼標(biāo)準(zhǔn)輸出碼流的不靈活性,,較好地解決了復(fù)雜網(wǎng)絡(luò)環(huán)境中異構(gòu)終端間的視頻共享問題,,極大地節(jié)省了視頻存儲(chǔ)空間,具有十分廣闊的應(yīng)用前景,。

    本文基于SVC碼流結(jié)構(gòu)和移動(dòng)互聯(lián)網(wǎng)特性,,結(jié)合傳統(tǒng)流媒體分發(fā)技術(shù),提出了一種可用于解決復(fù)雜網(wǎng)絡(luò)環(huán)境下異構(gòu)終端間資源共享的流媒體分發(fā)策略,,實(shí)現(xiàn)了基于SVC視頻編碼格式的P2P內(nèi)容分發(fā)系統(tǒng),。該系統(tǒng)實(shí)現(xiàn)了視頻流在P2P網(wǎng)絡(luò)上的可靠分發(fā),并能滿足用戶對(duì)視頻分辨率和質(zhì)量的不同需求,。
1 H.264/SVC碼流分析
    H.264算法在概念上可分為兩層:視頻編碼層VCL(Video Coding Layer),負(fù)責(zé)高效的視頻內(nèi)容表示,;網(wǎng)絡(luò)抽象層NAL(Network Abstraction Layer),負(fù)責(zé)對(duì)數(shù)據(jù)進(jìn)行打包和傳送。NAL單元將視頻數(shù)據(jù)基于bit流傳輸轉(zhuǎn)到基于包的傳輸,,實(shí)現(xiàn)了較高的網(wǎng)絡(luò)友好性,。H.264/SVC作為H.264編碼標(biāo)準(zhǔn)的可分級(jí)擴(kuò)展,采用基于離散余弦變換的分層編碼方法,,支持時(shí)域,、空域和質(zhì)量域三個(gè)維度的可伸縮編碼[2]。通過對(duì)H.264/AVC NAL單元的擴(kuò)展,,將各個(gè)層次的視頻訪問單元分別編碼成一個(gè)NAL單元,,組成SVC編碼視頻序列,如圖1所示,。

    SVC碼流主要包括參數(shù)配置NAL單元和壓縮視頻數(shù)據(jù)NAL單元,。壓縮視頻數(shù)據(jù)NAL單元通常包括基本層NAL單元和若干擴(kuò)展層NAL單元?;緦覰AL包含最小分辨率的空間層和最差質(zhì)量層的編碼數(shù)據(jù),,碼率最低,是接收端解碼的基本數(shù)據(jù);擴(kuò)展層NAL單元包含不同空間和質(zhì)量的增強(qiáng)層,。所有擴(kuò)展層在解碼時(shí)依賴于基本層NAL單元和其他低層次的擴(kuò)展NAL單元[3],。在編碼時(shí),通過設(shè)置參數(shù),,將各層連續(xù)固定數(shù)目的圖像幀所對(duì)應(yīng)的視頻數(shù)據(jù)NAL單元組成SVC編碼圖像組GoP(Group of Pictures),。解碼時(shí),根據(jù)需求舍棄部分碼流,,讀取基礎(chǔ)層IDR幀之間的各層GoP單元,,根據(jù)依賴關(guān)系獨(dú)立解碼得到相對(duì)于原始碼流分辨率、幀率及質(zhì)量域等縮減的視頻圖像,。
2 基于SVC視頻流的內(nèi)容分發(fā)策略
    傳統(tǒng)流媒體P2P分發(fā)技術(shù)(如BASS[4],、BiToS[5]等模型系統(tǒng))對(duì)內(nèi)容源均采用等大小分片的策略。將文件長度,、分片數(shù)、分片長度等較少的信息輸入torrent文件,。P2P過程中,,按照播放優(yōu)先和最少優(yōu)先相結(jié)合的下載策略,選擇peer下載數(shù)據(jù)分片,,實(shí)現(xiàn)內(nèi)容的快速分發(fā)或用戶視頻P2P下載播放,。
    移動(dòng)互聯(lián)網(wǎng)作為異構(gòu)網(wǎng)絡(luò),存在無線鏈路不穩(wěn)定,、帶寬較低等缺陷,。在終端方面,也存在處理能力較差,,播放屏幕較小等問題,。加之H.264/SVC內(nèi)容源的碼流結(jié)構(gòu)特性,使得復(fù)雜網(wǎng)絡(luò)環(huán)境下SVC流媒體分發(fā)策略和傳統(tǒng)內(nèi)容分發(fā)存在較大差異,。
2.1 SVC視頻文件分片做種策略
    H.264/SVC視頻編碼將各層NAL作為基本訪問單元,,并以GoP為單位進(jìn)行編碼,具有較強(qiáng)的塊連續(xù)性,。結(jié)合SVC碼流編解碼和P2P分發(fā)特性,,在內(nèi)容源分片過程中,采取將視頻源按同等數(shù)目的GoP單元分片的策略,,按照所屬層ID分別存儲(chǔ)于各層數(shù)據(jù)文件中,。該策略在保存視頻流塊連續(xù)性的同時(shí)提高了數(shù)據(jù)讀取效率,降低了P2P數(shù)據(jù)傳輸過程中的數(shù)據(jù)冗余,。由于內(nèi)容源GoP單元數(shù)據(jù)長度不同,,分片后每片數(shù)據(jù)長度大小不等,在做種過程及文件信息的基礎(chǔ)上,,需加入幀率,、幀數(shù),、幀數(shù)/GoP、GoP/piece,、分層數(shù),、各層文件名和長度、每個(gè)piece長度等必要信息,。
2.2 內(nèi)容分發(fā)節(jié)點(diǎn)選擇策略
    視頻文件的分發(fā)是一個(gè)從中心到邊緣的推送過程,,包括中心服務(wù)器向邊緣服務(wù)器、邊緣服務(wù)器向多用戶終端的快速P2P傳輸,。傳統(tǒng)互聯(lián)網(wǎng)內(nèi)容分發(fā),,由于具有網(wǎng)絡(luò)穩(wěn)定、帶寬較大,、終端處理能力強(qiáng)的特點(diǎn),,可以隨機(jī)選取peer獲取全部內(nèi)容源到網(wǎng)絡(luò)邊緣或用戶終端。針對(duì)復(fù)雜網(wǎng)絡(luò)環(huán)境,,H.264/SVC具有靈活的碼流選擇特性,,可根據(jù)網(wǎng)絡(luò)環(huán)境對(duì)視頻碼流進(jìn)行部分下載。因此,,在選擇peer時(shí),,要考慮peer的處理能力、網(wǎng)絡(luò)環(huán)境和peer所擁有的視頻流層數(shù)等因素,。另外,,節(jié)點(diǎn)選擇策略還引入了P4P技術(shù)方案,在內(nèi)容分發(fā)過程中,,引入域的概念,,將視頻源分發(fā)到各域的邊緣服務(wù)器??蛻舳嗽谙螺d視頻時(shí)定時(shí)上報(bào)平均下載速率,、CPU使用率、視頻流層數(shù)及下載百分比等信息,。tracker通過統(tǒng)計(jì)peer的域地址和其他上報(bào)信息,,定時(shí)更新各域peer列表,向用戶提供帶寬大,、處理能力強(qiáng),、視頻流層數(shù)滿足需求的peer地址,實(shí)現(xiàn)域內(nèi)用戶的快速下載,。該節(jié)點(diǎn)選擇策略針對(duì)能力較弱的終端,,取消其數(shù)據(jù)上傳功能,降低了終端的運(yùn)行負(fù)載。針對(duì)能力較強(qiáng)的終端,,充分利用其網(wǎng)絡(luò)資源的上傳功能,,從提高其他終端的下載效率,較好地實(shí)現(xiàn)了復(fù)雜網(wǎng)絡(luò)環(huán)境下不同終端的資源共享,。
2.3 客戶端碼流選擇策略
    在復(fù)雜網(wǎng)絡(luò)環(huán)境下,,客戶端根據(jù)網(wǎng)絡(luò)環(huán)境和處理能力選擇適合的碼流,達(dá)到符合終端分辨率的視頻流暢播放效果,。與傳統(tǒng)視頻點(diǎn)播VoD(Video on Demand)中視頻數(shù)據(jù)流全部下載不同,,在終端選擇分片數(shù)據(jù)時(shí),要考慮網(wǎng)絡(luò)帶寬環(huán)境和視頻編碼的分層數(shù)等因素,。在保證視頻流暢的基礎(chǔ)上,,盡可能下載高質(zhì)量的視頻圖像數(shù)據(jù),保證視頻播放的最優(yōu)效果,??蛻舳送ㄟ^設(shè)置一定時(shí)間的數(shù)據(jù)緩沖區(qū),根據(jù)緩沖區(qū)中較低層數(shù)據(jù)的下載完成度,,判斷當(dāng)前網(wǎng)絡(luò)帶寬,。在保證緩沖區(qū)內(nèi)較低層數(shù)據(jù)完整的前提下,結(jié)合帶寬條件和鄰居peer的位圖信息,,下載更高一級(jí)擴(kuò)展層的分片數(shù)據(jù)。
3 移動(dòng)流媒體內(nèi)容分發(fā)系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)整體架構(gòu)及模塊功能

     基于H.264/SVC的P2PCDN系統(tǒng)整體架構(gòu)如圖2所示,。系統(tǒng)包括內(nèi)容管理系統(tǒng)(CMS)模塊,為管理員提供任務(wù)發(fā)布,、刪除、發(fā)布域等選擇接口,,展示任務(wù)發(fā)布進(jìn)度,;數(shù)據(jù)庫(DB)模塊,存儲(chǔ)系統(tǒng)設(shè)備的域信息和下發(fā)任務(wù)的屬性信息;資源控制(RC)模塊,實(shí)現(xiàn)數(shù)據(jù)庫中任務(wù)的下發(fā)并上報(bào)任務(wù)的完成狀態(tài),;智能發(fā)布(IP)模塊,下載內(nèi)容源到本地并進(jìn)行SVC編碼,、分片、做種,;邊緣服務(wù)器(ESP)模塊,通過P2P技術(shù)獲取IP模塊已分片的視頻內(nèi)容,,提供用戶下載;Tracker模塊,收集并管理用戶下載信息,,為其他用戶提供優(yōu)選的peer,。

3.2 關(guān)鍵模塊實(shí)現(xiàn)
    IP模塊完成H.264/SVC視頻流的編碼、分層,、做種功能,。其具體實(shí)現(xiàn)步驟如下:(1)解析發(fā)布任務(wù)的FTP地址,從FTP地址下載視頻源文件。(2)對(duì)源文件解碼,,生成原始視頻序列,。(3)通過設(shè)置幀率、編碼幀數(shù),、GoP大小,、可擴(kuò)展層數(shù)以及基本層碼率控制等參數(shù),使用JSVM軟件對(duì)原始視頻進(jìn)行H.264/SVC視頻編碼,,按n×GoP間隔插入IDR幀數(shù)據(jù),。(4)對(duì)H.264/SVC視頻編碼數(shù)據(jù)分析,分離各層數(shù)據(jù),,按層ID存儲(chǔ)數(shù)據(jù)文件,,并記錄最小視頻獨(dú)立解碼單元(n×GOP+IDR幀)對(duì)應(yīng)各層的位置信息。(5)根據(jù)各層分片位置信息,,計(jì)算各分片大小,,并進(jìn)行數(shù)據(jù)Hash。對(duì)各層數(shù)據(jù)文件,,按層ID進(jìn)行排序,。按照做種策略,將文件信息寫入Torrent文件,。(6)對(duì)Torrent文件中info數(shù)據(jù)進(jìn)行哈希(Hash),,提取文件infohash值。移動(dòng)文件至infohash對(duì)應(yīng)路徑,并上報(bào)任務(wù)完成狀態(tài)信息,。
    ESP模塊完成SVC編碼文件的P2P分發(fā)和用戶下載功能,具體實(shí)現(xiàn)步驟如下:(1)解析發(fā)布任務(wù)的infohash值和發(fā)布節(jié)點(diǎn)IP地址,,建立TCP連接,請求Torrent文件。(2)解析Torrent文件,,提取各層文件名,,計(jì)算視頻文件分層數(shù);提取文件分片總數(shù),,計(jì)算各層分片數(shù),;提取各層分片偏移量,計(jì)算各層分片長度,;提取分片對(duì)應(yīng)的Hash值建立位圖,。(3)與鄰居節(jié)點(diǎn)交換位圖,根據(jù)位圖信息進(jìn)行選片下載及Hash校驗(yàn),。定時(shí)上報(bào)文件發(fā)布進(jìn)度,。(4)發(fā)布完成后,將視頻文件存儲(chǔ)至特定路徑,,并上報(bào)任務(wù)完成狀態(tài)信息,。該模塊的下載功能使用UDP協(xié)議,,采用網(wǎng)絡(luò)環(huán)境驅(qū)動(dòng)模式,客戶端根據(jù)各自網(wǎng)絡(luò)帶寬環(huán)境,、peer位圖和播放進(jìn)度向ESP或鄰居peer請求分片數(shù)據(jù),。模塊根據(jù)taskID映射infohash,定位文件,,讀取對(duì)應(yīng)分層文件的piece數(shù)據(jù),,實(shí)現(xiàn)用戶數(shù)據(jù)下載。
3.3 系統(tǒng)視頻效果
    系統(tǒng)對(duì)視頻源進(jìn)行發(fā)布過程中,,通過IP模塊參數(shù)設(shè)置生成兩個(gè)空間層,、兩個(gè)質(zhì)量層,共4層視頻碼流數(shù)據(jù),各層對(duì)應(yīng)碼流由基礎(chǔ)層到擴(kuò)展層依次為15.30 KB/s,、16.72 KB/s,、12.71 KB/s、36.72 KB/s,。在客戶端使用限速軟件,,模擬網(wǎng)絡(luò)帶寬環(huán)境。當(dāng)端口不做限速時(shí),,下載速率遠(yuǎn)大于各層碼流總和,即81.45 KB/s,。根據(jù)碼流選擇策略,獲取全部碼流數(shù)據(jù)進(jìn)行播放,,視頻效果如圖3所示,。當(dāng)端口限速在32.02 KB/s~44.73 KB/s之間時(shí),基于視頻流暢播放和播放效果最優(yōu)策略,,在當(dāng)前網(wǎng)絡(luò)允許的前提下,,舍棄較高擴(kuò)展層的碼流,下載較低兩層的視頻數(shù)據(jù)進(jìn)行播放,,視頻效果如圖4所示。

 

 

    本文在傳統(tǒng)P2PCDN技術(shù)的基礎(chǔ)上,,融入H.264/SVC視頻編碼技術(shù),,結(jié)合移動(dòng)互聯(lián)網(wǎng)的特點(diǎn),實(shí)現(xiàn)了復(fù)雜網(wǎng)絡(luò)環(huán)境下的流媒體分發(fā)模型系統(tǒng),。系統(tǒng)采用非等大小分片傳輸和網(wǎng)絡(luò)環(huán)境驅(qū)動(dòng)選片策略,,降低了P2P傳輸過程中的數(shù)據(jù)冗余,滿足用戶在不同網(wǎng)絡(luò)環(huán)境下點(diǎn)播視頻播放質(zhì)量的同時(shí),,實(shí)現(xiàn)了固網(wǎng)與移動(dòng)網(wǎng)絡(luò)終端間的視頻資源共享,。
參考文獻(xiàn)
[1] Joint Draft ITU-T Rec.H.264-ISO/IEC 14496-10/Amd.3. Scalable Video Coding[S]. Standard,2007.
[2]黃曉濤.P2P流媒體內(nèi)容分發(fā)服務(wù)質(zhì)量保障的編碼與傳輸技術(shù)研究[D]. 武漢:華中科技大學(xué),2010.
[3] Wang Yekui, HANNUKSELA M M, PATEUX S, et al.System and tranport interface of SVC[C].IEEE Transactions on Circuits and Systems for Video Technology, IEEE Circuits and Systems Society, Santa Clara Valley:2007,17(9):1149-1163.
[4] DANA C, LI D, HARRISON D, et al. BASS: BitTorrent  assisted streaming system for video-on-demand[C].Proc of IEEE International Conference on Multimedia Signal Processing. Shanghai: IEEE MMSP Press, 2005:1-4.
[5] VLAVIANOS A, ILIOFOTOU M, FALOUTSOS M. BiToS: enhancing BitTorrent for supporting streaming applications[C].Proc of International Conference on Computer Communications. Barcelona:IEEE Global Internet Symposium Press,2006:1-6.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載,。