本發(fā)明涉及一種視頻文件分片及調(diào)度方法,更具體的說,尤其涉及一種p2p流媒體系統(tǒng)中的svc視頻文件分片及調(diào)度方法。
背景技術(shù):
隨著移動互聯(lián)網(wǎng)的發(fā)展和三網(wǎng)融合產(chǎn)業(yè)的興起,終端之間的數(shù)據(jù)共享將更加頻繁與普遍,當(dāng)前互聯(lián)網(wǎng)上廣泛應(yīng)用的p2p流媒體技術(shù)將獲得更大的發(fā)展空間,但如何在異構(gòu)的環(huán)境中傳輸和共享視頻數(shù)據(jù)成為當(dāng)前p2p流媒體系統(tǒng)所面臨的主要問題。為了解決這一問題,多種自適應(yīng)技術(shù)被提出,包括轉(zhuǎn)碼(transcoding)、聯(lián)播(simulcast)、多描述編碼(multipledescriptioncoding)和可擴展視頻編碼(svc,scalablevideocoding)等。其中svc由于其高效的編碼效率、方便的自適應(yīng)性和高共享度而成為這一問題的最佳解決方案。
svc將視頻編碼為一個基礎(chǔ)層和一個或多個增強層,層間數(shù)據(jù)在解碼時具有向下依賴關(guān)系:基礎(chǔ)層可獨立解碼并獲得一個基本質(zhì)量的視頻,而某個增強層的解碼則需要基礎(chǔ)層和所有較低的增強層,并且解碼的增強層越多用戶觀看的視頻質(zhì)量越高。相比于傳統(tǒng)的視頻編碼,在p2p流媒體系統(tǒng)中應(yīng)用svc可以獲得兩方面的好處:一方面,用戶能夠根據(jù)自身情況動態(tài)調(diào)整下載的增強層數(shù)目,從而實現(xiàn)視頻質(zhì)量自適應(yīng);另一方面,不同類型的終端之間也可以共享部分層的數(shù)據(jù),從而大大提高數(shù)據(jù)分享效率。如何在p2p流媒體系統(tǒng)中傳輸svc視頻數(shù)據(jù)已經(jīng)成為當(dāng)前急需解決的問題,本專利主要解決應(yīng)用于p2p流媒體系統(tǒng)中的svc數(shù)據(jù)分片問題。
在傳統(tǒng)的p2p流媒體系統(tǒng)中,視頻數(shù)據(jù)以分片為單位進行共享:單層視頻數(shù)據(jù)被分為數(shù)據(jù)量等大小的分片,客戶端以一定調(diào)度規(guī)則確定分片的下載順序并下載分片,同時客戶端每下載完一個分片即可將該分片上傳給其他用戶。與傳統(tǒng)的p2p視頻流媒體系統(tǒng)相同,基于svc的p2p視頻流媒體系統(tǒng)也以分片為單位共享數(shù)據(jù)。然而為了便于視頻質(zhì)量的調(diào)整和用戶之間的數(shù)據(jù)共享,svc視頻一般以層為單位進行分片,此時需要考慮的則是層間的同步和協(xié)調(diào)問題,而傳統(tǒng)的數(shù)據(jù)量等大小的分片方法不能滿足這一需求。在基于svc的p2p視頻流媒體系統(tǒng)中多采用時間長度等大小的分片方法:將svc的各個分層以一定播放時長為單位進行分片,層內(nèi)每個分片播放時長相同,層間每個分片的播放時長也相同。
時間長度等大小分片方法能夠滿足svc數(shù)據(jù)在解碼播放時的層間同步需求,然而,播放時長相同的分片在數(shù)據(jù)量大小上卻不相同,尤其是較低層分片的數(shù)據(jù)量往往會比較高層分片大很多。在丟包率相同的條件下,較大的分片會比較小的分片更容易丟失,尤其是在移動網(wǎng)絡(luò)這種整體丟包率較高的環(huán)境中。對svc數(shù)據(jù)來說,由于解碼依賴性的存在,較低層分片比較高層分片更加重要,較低層分片的丟失會引起視頻質(zhì)量的顯著下降,嚴(yán)重影響用戶體驗。采用等時長分片方法,不同分層中分片的數(shù)據(jù)量大小差距很大,同一個分層層內(nèi)分片的數(shù)據(jù)量大小也各不相同,這會導(dǎo)致p2p網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)傳輸?shù)牟环€(wěn)定。
技術(shù)實現(xiàn)要素:
本發(fā)明為了克服上述技術(shù)問題的缺點,提供了一種p2p流媒體系統(tǒng)中的svc視頻文件分片及調(diào)度方法。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法,其特征在于,通過以下步驟來實現(xiàn):
a).svc視頻數(shù)據(jù)分層及求取每層的數(shù)據(jù)量大小,對于編碼后的svc視頻數(shù)據(jù),依次讀取每一個nal單元,提取nal單元頭信息中的空間層標(biāo)識值d、時間層標(biāo)識值t、質(zhì)量層標(biāo)識值q及nal單元大小,按照d、t、q的值將svc視頻數(shù)據(jù)分離成若干層,每一層(d,t,q)均由svc視頻數(shù)據(jù)中所有d、t、q值相等的nal單元構(gòu)成,同一層的數(shù)據(jù)按照svc視頻數(shù)據(jù)原有的順序連續(xù)存放;通過公式(1)求取每一層的數(shù)據(jù)量大小s(d,t,q):
式中,s(d,t,q)為層(d,t,q)的數(shù)據(jù)量大小,d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1},a、b、c分別為svc視頻的空間分層數(shù)目、時間分層數(shù)目和質(zhì)量分層數(shù)目;z(i)為層(d,t,q)中第i個nal單元的大小,n為層(d,t,q)中nal單元的數(shù)目;
b).求數(shù)據(jù)量最大層分片包含的gop數(shù)量,通過比較步驟a)中求取的每一層的數(shù)據(jù)量大小,找出svc視頻各分層中數(shù)據(jù)量最大的層(d′,t′,q′);通過公式(2)求取數(shù)據(jù)量最大層(d′,t′,q′)按等時間長度分片時每一個分片所包含的合適畫面組gop數(shù)量m(d′,t′,q′):
式中,m(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)中每一個分片所包含的gop數(shù)量,s(d′,t′,q′)為層(d′,t′,q′)的數(shù)據(jù)量大小,m為分層后svc視頻的每一層包含的gop數(shù)量,z為傳統(tǒng)未分層編碼技術(shù)采用等數(shù)據(jù)量大小分片時p2p流媒體系統(tǒng)中分片的合理大小,符號
c).求除數(shù)據(jù)量最大層外其余層分片中g(shù)op數(shù)量,通過公式(3)求取除數(shù)據(jù)量最大層(d′,t′,q′)外其余層(d,t,q)中每一個分片所包含的gop數(shù)量m(d,t,q):
式中,m(d,t,q)為svc視頻數(shù)據(jù)中除數(shù)據(jù)量最大層(d′,t′,q′)外svc各視頻分層中每一個分片所包含的gop數(shù)量,m(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)中每一個分片所包含的gop數(shù)量,s(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)的數(shù)據(jù)量大小,s(d,t,q)為層(d,t,q)的數(shù)據(jù)量大小,d、t、q的值不能同時分別為d′、t′、q′,符號
d).對各個分層進行分片,根據(jù)層(d,t,q)每個分片包含的gop數(shù)量m(d,t,q)對層(d,t,q)進行等時間長度分片,層(d,i,q)被分成
前
e).二次分片,判斷層(d,t,q)中每一個分片的數(shù)據(jù)量大小,對于分片的數(shù)據(jù)量s(pi)≥2z的分片pi,通過公式(4)和公式(5)進行基于數(shù)據(jù)量大小的二次分片處理:
式中,pi,m為對分片pi進行二次分片處理后得到的第m個子分片,p′i為分片pi除去第1、2、…、m-1個子分片后的剩余分片,s(pi)為分片pi的數(shù)據(jù)量大??;gopj為分片p′i中的第j個gop,s(gopk)為分片p′i中的第k個gop的大小,ni為對分片pi進行二次分片后得到的子分片數(shù)量;z為傳統(tǒng)未分層編碼技術(shù)采用等數(shù)據(jù)量大小分片時p2p流媒體系統(tǒng)中分片的合理大??;
pi,m由分片p′i中的前j個gop構(gòu)成,這j個gop的數(shù)據(jù)量大小之和要么等于s(pi)/ni要么大于s(pi)/ni,但前j-1個gop數(shù)據(jù)量大小之和小于s(pi)/ni;
f).分片信息的存放,將每層svc視頻數(shù)據(jù)中包含的分片信息存放于各層的p2p索引信息中,用1個字節(jié)的空間存儲對層進行等時間長度分片時的時長m(d,t,q),用
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法,步驟a)中svc視頻的空間分層數(shù)目a、時間分層數(shù)目b和質(zhì)量分層數(shù)目c的取值與網(wǎng)絡(luò)寬帶和終端能力的差異性大小成正比,a∈[1,2],b∈[3,5],c∈[1,2]。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法,步驟b)和步驟e)中z的取值范圍為:z∈[64k,1m]。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法,步驟f)中所述的分片信息的存放通過以下步驟來實現(xiàn):
f-1).在字節(jié)空間a中,每3位表示一個進行了等時間長度分片后得到的分片進行二次分片的信息,000表示未進行二次分片,001、010、011、100、101、110、111分別表示進行了二次分片后得到的子分片數(shù)量為2、3、4、5、6、7、8,表示進行了二次分片信息的位在字節(jié)空間a中的位置次序與分片在視頻數(shù)據(jù)中的存儲位置次序相同,字節(jié)空間a的有效位數(shù)為
f-2).在字節(jié)空間b中,每一個字節(jié)表示經(jīng)二次分片后得到的一個分片的gop數(shù)量,按照分片在各層svc視頻中的順序,依次將經(jīng)二次分片后得到的各個分片的gop數(shù)量存儲在字節(jié)空間b中。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片的數(shù)據(jù)請求調(diào)度方法,其特征在于,通過以下步驟來實現(xiàn):
1).客戶端選擇訂閱需要播放的svc視頻分層,獲取p2p索引信息;
2).當(dāng)按序播放時,客戶端按照播放順序逐層請求數(shù)據(jù)分片,具體步驟如下:
2-1).首先確定客戶端請求播放的svc視頻分層中,對各層進行等時間長度分片時的最上時長mmax(d,t,q),gop數(shù)量與時長對應(yīng);
2-2).以t為時間周期逐層同步請求數(shù)據(jù)分片,在第n個同步時間周期內(nèi),請求的各層數(shù)據(jù)分片數(shù)為pcount(d,t,q),其通過公式(6)和公式(7)進行求?。?/p>
t=n×mmax(d,t,q)(7)
式中,pcount(d,t,q)為客戶端在請求數(shù)據(jù)的第n個同步時間周期內(nèi),對層(d,t,q)請求的數(shù)據(jù)分片數(shù),n、n均為正整數(shù),t為請求數(shù)據(jù)分片的同步時間周期,是各層進行等時間長度分片的最長時長mmax(d,t,q)的整數(shù)倍,a(i)為字節(jié)空間a中表示層(d,t,q)的第i個分片進行二次分片信息的值;
2-3).在同一個時間周期t中所請求的視頻分層的全部分片都收到以后,送給解碼器解碼并播放,同時開始下載后一個時間周期t內(nèi)的各層數(shù)據(jù)分片;
3).當(dāng)拖動播放時,在定位到視頻的某一時間點t′播放時,客戶端根據(jù)p2p索引中的分片時間信息定位并請求需要下載的數(shù)據(jù)分片,具體步驟如下:
3-1).首先判斷定位到視頻的某一時間點t′的視頻數(shù)據(jù)屬于哪一個gop;
3-2).獲取該gop處于視頻每個分層的第幾個分片,其通過公式(8)、公式(9)進行獲?。?/p>
式中,np為查找的gop在svc視頻層(d,t,q)中所處的分片位置,ng為時間點t′在svc視頻中所處的gop位置,m(d,t,q)為svc視頻中層(d,t,q)進行等時間長度分片后每一個分片包含的gop數(shù)量,a(i)為字節(jié)空間a中表示層(d,t,q)的第i個分片進行二次分片信息的值;b(i)為存儲層(d,t,q)經(jīng)二次分片后得到的分片的gop數(shù)量的字節(jié)空間b中第i個字節(jié)的值,m≥2;
3-3).從svc視頻的各層中依次下載這些分片,得到播放所需要的數(shù)據(jù)。
本發(fā)明的有益效果是:本發(fā)明引入未分層編碼技術(shù)分片的合理數(shù)據(jù)量大小,對數(shù)據(jù)量最大層進行等時間長度分片,針對svc視頻各層數(shù)據(jù)量的巨大差距,以數(shù)據(jù)量最大層分片的時間長度為基礎(chǔ),引入2的指數(shù)函數(shù)對svc視頻的各層進行等時間長度分片,實現(xiàn)了各層在時間上的整體同步,并整體上將各層分片的數(shù)據(jù)量大小差距控制在一定范圍內(nèi),增強了p2p網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)傳輸?shù)姆€(wěn)定性;考慮了svc視頻層內(nèi)各分片數(shù)據(jù)量大小的差異,基于等數(shù)據(jù)量大小對個別數(shù)據(jù)量較大的分片進行最多一分為八的二次分片,增強了p2p網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)傳輸?shù)姆€(wěn)定性;用3位表示一個進行了等時間長度分片后得到的分片進行二次分片的信息,節(jié)省了存儲空間,降低了客戶端對svc視頻各層同步調(diào)度的復(fù)雜性,是一種行之有效的p2p流媒體系統(tǒng)中的svc視頻文件分片及調(diào)度方法。
附圖說明
圖1為本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法的流程圖;
圖2為除數(shù)據(jù)量最大層之外的各層分片時間長度求取示意圖;
圖3為除數(shù)據(jù)量最大層之外的各層等時間長度分片的數(shù)據(jù)量大小與z的差值示意圖;
圖4為二次分片信息存儲空間示意圖;
圖5為同步周期分片請求示意圖。
具體實施方式
下面結(jié)合附圖與實施例對本發(fā)明作進一步說明。
如圖1所示,給出了本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法的流程圖,根據(jù)nal單元頭信息對svc視頻分層并求取各層數(shù)據(jù)量大小,基于p2p系統(tǒng)中分片數(shù)據(jù)量的合理大小求取svc視頻數(shù)據(jù)量最大層中等時間長度的分片應(yīng)包含的gop數(shù)量,基于svc視頻各層與數(shù)據(jù)量最大層的數(shù)據(jù)量大小關(guān)系求取各層中等時間長度的每個分片包含的gop數(shù)量,根據(jù)svc視頻各層每個分片包含的gop數(shù)量對每層進行等時間長度分片,統(tǒng)計svc視頻各層中每個分片的大小并對數(shù)據(jù)量較大的分片進行基于等數(shù)據(jù)量大小的二次分片處理,將每層svc視頻的等時間長度分片時長、各分片數(shù)據(jù)量大小、二次分片信息存放于p2p索引信息中。其具體通過以下步驟來實現(xiàn):
a).svc視頻數(shù)據(jù)分層及求取每層的數(shù)據(jù)量大小,對于編碼后的svc視頻數(shù)據(jù),依次讀取每一個nal單元,提取nal單元頭信息中的空間層標(biāo)識值d、時間層標(biāo)識值t、質(zhì)量層標(biāo)識值q及nal單元大小,按照d、t、q的值將svc視頻數(shù)據(jù)分離成若干層,每一層(d,t,q)均由svc視頻數(shù)據(jù)中所有d、t、q值相等的nal單元構(gòu)成,同一層的數(shù)據(jù)按照svc視頻數(shù)據(jù)原有的順序連續(xù)存放;通過公式(1)求取每一層的數(shù)據(jù)量大小s(d,t,q):
式中,s(d,t,q)為層(d,t,q)的數(shù)據(jù)量大小,d∈{0,1,...,a-1},t∈{0,1,...,b-1},q∈{0,1,...,c-1},a、b、c分別為svc視頻的空間分層數(shù)目、時間分層數(shù)目和質(zhì)量分層數(shù)目;z(i)為層(d,t,q)中第i個nal單元的大小,n為層(d,t,q)中nal單元的數(shù)目;
在實際應(yīng)用時,應(yīng)根據(jù)網(wǎng)絡(luò)帶寬和終端能力的差異性合理設(shè)置a、b、c的值,a、b、c的取值與網(wǎng)絡(luò)帶寬和終端能力的差異性大小成正比,但a、b、c的取值不宜過大,否則會增加終端分片調(diào)度的復(fù)雜性,在異構(gòu)網(wǎng)絡(luò)環(huán)境下,a∈[1,2],b∈[3,5],c∈[1,2],可滿足一般系統(tǒng)的應(yīng)用。
b).求數(shù)據(jù)量最大層分片包含的gop數(shù)量,通過比較步驟a)中求取的每一層的數(shù)據(jù)量大小,找出svc視頻各分層中數(shù)據(jù)量最大的層(d′,t′,q′);通過公式(2)求取數(shù)據(jù)量最大層(d′,t′,q′)按等時間長度分片時每一個分片所包含的合適畫面組gop數(shù)量m(d′,t′,q′):
式中,m(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)中每一個分片所包含的gop數(shù)量,s(d′,t′,q′)為層(d′,t′,q′)的數(shù)據(jù)量大小,m為分層后svc視頻的每一層包含的gop數(shù)量,z為傳統(tǒng)未分層編碼技術(shù)采用等數(shù)據(jù)量大小分片時p2p流媒體系統(tǒng)中分片的合理大小,符號
通過公式(2)可求取以數(shù)據(jù)量z對數(shù)據(jù)量最大層(d′,t′,q′)進行等數(shù)據(jù)量大小分片時每個分片平均包含的gop數(shù)量m(d′,t′,q′),m(d′,t′,q′)為精確值向上取整,z的值取決于系統(tǒng)的網(wǎng)絡(luò)帶寬和各終端能力,在具體實施時,z∈[64k,1m]。
c).求除數(shù)據(jù)量最大層外其余層分片中g(shù)op數(shù)量,通過公式(3)求取除數(shù)據(jù)量最大層(d′,t′,q′)外其余層(d,t,q)中每一個分片所包含的gop數(shù)量m(d,t,q):
式中,m(d,t,q)為svc視頻數(shù)據(jù)中除數(shù)據(jù)量最大層(d′,t′,q′)外svc各視頻分層中每一個分片所包含的gop數(shù)量,m(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)中每一個分片所包含的gop數(shù)量,s(d′,t′,q′)為數(shù)據(jù)量最大層(d′,t′,q′)的數(shù)據(jù)量大小,s(d,t,q)為層(d,t,q)的數(shù)據(jù)量大小,d、t、q的值不能同時分別為d′、t′、q′,符號
如圖2所示,給出了除數(shù)據(jù)量最大層之外的各層分片時間長度求取示意圖,若
d).對各個分層進行分片,根據(jù)層(d,t,q)每個分片包含的gop數(shù)量m(d,t,q)對層(d,t,q)進行等時間長度分片,層(d,i,q)被分成
前
e).二次分片,判斷層(d,t,q)中每一個分片的數(shù)據(jù)量大小,對于分片的數(shù)據(jù)量s(pi)≥2z的分片pi,通過公式(4)和公式(5)進行基于數(shù)據(jù)量大小的二次分片處理:
式中,pi,m為對分片pi進行二次分片處理后得到的第m個子分片,p′i為分片pi除去第1、2、…、m-1個子分片后的剩余分片,s(pi)為分片pi的數(shù)據(jù)量大??;gopj為分片p′i中的第j個gop,s(gopk)為分片p′i中的第k個gop的大小,ni為對分片pi進行二次分片后得到的子分片數(shù)量;z為傳統(tǒng)未分層編碼技術(shù)采用等數(shù)據(jù)量大小分片時p2p流媒體系統(tǒng)中分片的合理大小;
pi,m由分片p′i中的前j個gop構(gòu)成,這j個gop的數(shù)據(jù)量大小之和要么等于s(pi)/ni要么大于s(pi)/ni,但前j-1個gop數(shù)據(jù)量大小之和小于s(pi)/ni;
svc視頻各層(d,t,q)內(nèi)gop的數(shù)據(jù)量大小各不相同,通過進行最多一分為八的等數(shù)據(jù)量大小二次分片處理,能消除大部分?jǐn)?shù)據(jù)量較大的分片,且將極少數(shù)數(shù)據(jù)量過大的分片分割為數(shù)據(jù)量較小的分片,可進一步降低p2p系統(tǒng)節(jié)點中數(shù)據(jù)量的突發(fā)性,通過最多進行一分為八的二次分片,不至于產(chǎn)生過多的子分片,控制了分片調(diào)度請求的復(fù)雜性;當(dāng)網(wǎng)絡(luò)丟包率高時,能夠減少因基礎(chǔ)層部分分片過大而導(dǎo)致成功傳輸概率過小的現(xiàn)象,進一步提高重要性高的基礎(chǔ)層(0,0,0)在p2p系統(tǒng)中的穩(wěn)定傳輸。
f).分片信息的存放,將每層svc視頻數(shù)據(jù)中包含的分片信息存放于各層的p2p索引信息中,用1個字節(jié)的空間存儲對層進行等時間長度分片時的時長m(d,t,q),用
如圖4所示,給出了二次分片信息存儲空間示意圖,該步驟中所述的分片信息的存放通過以下步驟來實現(xiàn):
f-1).在字節(jié)空間a中,每3位表示一個進行了等時間長度分片后得到的分片進行二次分片的信息,000表示未進行二次分片,001、010、011、100、101、110、111分別表示進行了二次分片后得到的子分片數(shù)量為2、3、4、5、6、7、8,表示進行了二次分片信息的位在字節(jié)空間a中的位置次序與分片在視頻數(shù)據(jù)中的存儲位置次序相同,字節(jié)空間a的有效位數(shù)為
f-2).在字節(jié)空間b中,每一個字節(jié)表示經(jīng)二次分片后得到的一個分片的gop數(shù)量,按照分片在各層svc視頻中的順序,依次將經(jīng)二次分片后得到的各個分片的gop數(shù)量存儲在字節(jié)空間b中。
如圖4所示,字節(jié)空間a中第1位組的值為000,表示該層進行了等時間長度分片后得到的第1個分片未進行二次分片,字節(jié)空間a中第2位的值為001,表示該層進行了等時間長度分片后得到的第2個分片進行了二次分片,得到的子分片數(shù)為2,在字節(jié)空間b中,第一個字節(jié)的值22為第2個分片經(jīng)二次分片后得到的第1個子分片的gop數(shù)量,第二個字節(jié)的值26為第1個分片經(jīng)二次分片后得到的第2個子分片的gop數(shù)量,第三個字節(jié)的值10為第4個分片經(jīng)二次分片后得到的第1個子分片的gop數(shù)量;
一個svc視頻的torrent文件中記錄了每個分片的hsah校驗值,每個hsah校驗值占據(jù)的空間大小約為20字節(jié),而torrent文件中的數(shù)據(jù)幾乎全部是分片hsah校驗值記錄,本發(fā)明最多使用額外的2+3/8+1=3.38字節(jié)記錄每個分片的時間和數(shù)據(jù)量大小信息,使整個torrent文件的大小增加了大約17%,而torrent文件大小通常很少超過1m,所以本發(fā)明產(chǎn)生的額外索引數(shù)據(jù)量也是很小的,torrent文件又是在文件下載/流媒體播放前從可靠的地方通過c/s傳輸模式得到的(如在網(wǎng)站上通過ftp下載),下載的速度有足夠的保障,因此增加的數(shù)據(jù)量所造成的性能上的影響很小,可以忽略。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片方法的數(shù)據(jù)請求調(diào)度方法,通過以下步驟來實現(xiàn):
1).客戶端選擇訂閱需要播放的svc視頻分層,獲取p2p索引信息;
2).當(dāng)按序播放時,客戶端按照播放順序逐層請求數(shù)據(jù)分片,具體步驟如下:
2-1).首先確定客戶端請求播放的svc視頻分層中,對各層進行等時間長度分片時的最上時長mmax(d,t,q),gop數(shù)量與時長對應(yīng);
2-2).以t為時間周期逐層同步請求數(shù)據(jù)分片,在第n個同步時間周期內(nèi),請求的各層數(shù)據(jù)分片數(shù)為pcount(d,t,q),其通過公式(6)和公式(7)進行求?。?/p>
t=n×mmax(d,t,q)(7)
式中,pcount(d,t,q)為客戶端在請求數(shù)據(jù)的第n個同步時間周期內(nèi),對層(d,t,q)請求的數(shù)據(jù)分片數(shù),n、n均為正整數(shù),t為請求數(shù)據(jù)分片的同步時間周期,是各層進行等時間長度分片的最長時長mmax(d,t,q)的整數(shù)倍,a(i)為字節(jié)空間a中表示層(d,t,q)的第i個分片進行二次分片信息的值;
如圖5所示,給出了同步周期分片請求示意圖,該層在第1個同步時間周期內(nèi)需要請求4+1+4=9個分片。
2-3).在同一個時間周期t中所請求的視頻分層的全部分片都收到以后,送給解碼器解碼并播放,同時開始下載后一個時間周期t內(nèi)的各層數(shù)據(jù)分片;
3).當(dāng)拖動播放時,在定位到視頻的某一時間點t′播放時,客戶端根據(jù)p2p索引中的分片時間信息定位并請求需要下載的數(shù)據(jù)分片,具體步驟如下:
3-1).首先判斷定位到視頻的某一時間點t′的視頻數(shù)據(jù)屬于哪一個gop;
3-2).獲取該gop處于視頻每個分層的第幾個分片,其通過公式(8)、公式(9)進行獲取:
式中,np為查找的gop在svc視頻層(d,t,q)中所處的分片位置,ng為時間點t′在svc視頻中所處的gop位置,m(d,t,q)為svc視頻中層(d,t,q)進行等時間長度分片后每一個分片包含的gop數(shù)量,a(i)為字節(jié)空間a中表示層(d,t,q)的第i個分片進行二次分片信息的值;b(i)為存儲層(d,t,q)經(jīng)二次分片后得到的分片的gop數(shù)量的字節(jié)空間b中第i個字節(jié)的值,m≥2;
假設(shè)某層進行等時間長度分片后每個分片包含48個gop,一個gop中有16幀,拖動的時間點是第2625幀處,則拖動的時間點處在第
3-3).從svc視頻的各層中依次下載這些分片,得到播放所需要的數(shù)據(jù)。
本發(fā)明的p2p流媒體系統(tǒng)中的svc視頻文件分片及調(diào)度方法,解決了svc視頻層間的同步和協(xié)調(diào)問題,增強了異構(gòu)環(huán)境下基礎(chǔ)層的可靠傳輸,提升了p2p網(wǎng)絡(luò)系統(tǒng)中數(shù)據(jù)傳輸?shù)姆€(wěn)定性。