一種可伸縮編碼視頻流的多網(wǎng)并發(fā)傳輸方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及網(wǎng)絡(luò)通信領(lǐng)域,特別涉及可伸縮編碼視頻流的多網(wǎng)并發(fā)傳輸方法。
【背景技術(shù)】
[0002] 近年來,移動視頻業(yè)務(wù)迅速發(fā)展增長,已經(jīng)逐漸成為移動互聯(lián)網(wǎng)的主導(dǎo)業(yè)務(wù)。根據(jù) 思科的市場研究報告,預(yù)計到2015年移動視頻流量將占超過全球移動業(yè)務(wù)流量的一半。然 而,傳輸高質(zhì)量的視頻流往往需要占用大量的帶寬。例如,傳輸一個H. 264編碼的1080P視 頻平均需要6-8Mbit/s。盡管利用寬帶有線網(wǎng)絡(luò)能夠滿足這種高質(zhì)量視頻流的傳輸需求, 但是,單一的無線接入網(wǎng)絡(luò)難以實現(xiàn)高質(zhì)量的視頻質(zhì)量。這是由于無線接入網(wǎng)絡(luò)存在資源 受限以及信道時變的特性,只利用單一的接口傳輸高質(zhì)量視頻流會導(dǎo)致播放過程的頻繁失 真。
[0003] 隨著無線接入技術(shù)的發(fā)展和多模終端的普及,使得多模終端同時利用多個接口連 接到多個無線網(wǎng)絡(luò)以進(jìn)行數(shù)據(jù)的并發(fā)傳輸成為了可能。因此,可以同時利用多個無線接入 網(wǎng)的傳輸能力來實現(xiàn)高質(zhì)量視頻流的傳輸。利用多網(wǎng)并發(fā)傳輸高質(zhì)量視頻流的一個關(guān)鍵技 術(shù)是分組調(diào)度,即根據(jù)應(yīng)用所要求的QoS和接入網(wǎng)的特點來確定視頻數(shù)據(jù)包通過哪個接入 網(wǎng)來傳輸。針對該問題,國內(nèi)外學(xué)者已提出了很多的解決算法,例如傳統(tǒng)的round-robin隨 機方法以及速率控制算法。傳統(tǒng)的round-robin方法因為沒有考慮接入網(wǎng)絡(luò)間的負(fù)載均衡 以及數(shù)據(jù)包的亂序到達(dá),從而導(dǎo)致視頻質(zhì)量的下降和播放失真。而速率控制方法沒有考慮 視頻數(shù)據(jù)包之間的相互依賴關(guān)系,會導(dǎo)致某些接收到的視頻分組不能解碼,從而導(dǎo)致緩存 的浪費和視頻質(zhì)量的下降。
[0004] 與此同時,可伸縮視頻編碼(如H.264/SVC標(biāo)準(zhǔn))由于其編解碼高效和向后兼容 性已廣泛應(yīng)用在視頻流傳輸中。H.264/SVC的可擴(kuò)展維度包括空間可擴(kuò)展性、時間可擴(kuò)展性 以及質(zhì)量可擴(kuò)展性。在可伸縮視頻編碼中,一個視頻比特流可以被分層為基本層和基礎(chǔ)層。 基礎(chǔ)層向后兼容非可伸縮視頻編碼并提供基本的視頻質(zhì)量,而增強層和基礎(chǔ)層結(jié)合起來可 以進(jìn)一步改善視頻的質(zhì)量。圖1為可伸縮視頻編碼的分層結(jié)構(gòu)圖,圖中的箭頭表示視頻幀 之間的相互依賴關(guān)系,視頻幀之間的這種相互依賴關(guān)系表明在多網(wǎng)并發(fā)傳輸視頻流時需要 充分地考慮各種因素,而不能簡單地采用傳統(tǒng)的round-robin方法以及速率控制方法。
【發(fā)明內(nèi)容】
[0005] 本發(fā)明的目的在于克服現(xiàn)有技術(shù)中的多網(wǎng)并發(fā)傳輸方法在做分組調(diào)度時沒有考 慮接入網(wǎng)絡(luò)間的負(fù)載均衡以及數(shù)據(jù)包的亂序到達(dá)等缺陷,從而提供一種能夠提高異構(gòu)接入 網(wǎng)絡(luò)中并行傳輸視頻流性能的方法。
[0006] 為了實現(xiàn)上述目的,本發(fā)明提供了一種可伸縮編碼視頻流的多網(wǎng)并發(fā)傳輸方法, 包括:
[0007] 對可伸縮編碼視頻流中的網(wǎng)絡(luò)提取層單元進(jìn)行分類,將對視頻質(zhì)量影響較大的網(wǎng) 絡(luò)提取層單元歸為第一類,將對視頻質(zhì)量影響較小的網(wǎng)絡(luò)提取層單元歸為第二類;在所述 第一類與第二類中各自對類內(nèi)的網(wǎng)絡(luò)提取層單元按照從大到小的順序進(jìn)行排序;對排序后 的各個網(wǎng)絡(luò)提取層單元分配可接入網(wǎng)絡(luò),其中,對于第一類中的網(wǎng)絡(luò)提取層單元,為其分配 丟包率最小且還有可用容量的可接入網(wǎng)絡(luò),對于第二類中的網(wǎng)絡(luò)提取層單元,為其分配時 延最小且有可用容量的滿足丟包率要求的可接入網(wǎng)絡(luò)。
[0008] 上述技術(shù)方案中,該方法進(jìn)一步包括:
[0009] 步驟1)、在一個時隙里,將該時隙所要傳輸?shù)膱D像組內(nèi)需要傳輸?shù)木W(wǎng)絡(luò)提取層單 元進(jìn)行分類,將屬于I幀和P幀的網(wǎng)絡(luò)提取層單元歸類成基礎(chǔ)層,將屬于B幀的網(wǎng)絡(luò)提取層 單元歸類成增強層,然后將基礎(chǔ)層和增強層中的網(wǎng)絡(luò)提取層單元按照網(wǎng)絡(luò)提取層單元大小 dk/Slu以從大到小的順序分別進(jìn)行排序;
[0010] 檢測并保存每個接入網(wǎng)的可用速率cn、往返時延τ n以及丟包率pn ;
[0011] 步驟2)、對基礎(chǔ)層中的經(jīng)排序后的網(wǎng)絡(luò)提取層單元按照如下方式依次逐一處理: 判斷一網(wǎng)絡(luò)提取層單元若要成功解碼所依賴的視頻幀是否已經(jīng)被調(diào)度傳輸,若已經(jīng)被調(diào)度 傳輸,那么將該網(wǎng)絡(luò)提取層單元調(diào)度到丟包率最小且還有可用容量的可接入網(wǎng)絡(luò)進(jìn)行傳 輸,若未被調(diào)度傳輸,則等待該網(wǎng)絡(luò)提取層單元所依賴的視頻幀被調(diào)度傳輸后再將該網(wǎng)絡(luò) 提取層單元調(diào)度到丟包率最小且還有可用容量的可接入網(wǎng)絡(luò)進(jìn)行傳輸;
[0012] 步驟3)、對于屬于增強層的網(wǎng)絡(luò)提取層單元,首先定義一個用戶能夠接受的最大 丟包率P_,然后對于丟包率小于P_的接入網(wǎng)按照時延從小到大進(jìn)行排序,接著將增強層 中的經(jīng)排序后的網(wǎng)絡(luò)提取層單元按照如下方式依次逐一處理:判斷一網(wǎng)絡(luò)提取層單元若要 成功解碼所依賴的視頻幀是否已經(jīng)被調(diào)度傳輸,若已經(jīng)被調(diào)度傳輸,那么將該網(wǎng)絡(luò)提取層 單元調(diào)度到在當(dāng)前調(diào)度時刻時延最小且有可用容量的可接入網(wǎng)絡(luò)進(jìn)行傳輸,若未被調(diào)度傳 輸,則等待該網(wǎng)絡(luò)提取層單元所依賴的視頻幀被調(diào)度傳輸后再將該網(wǎng)絡(luò)提取層單元調(diào)度到 在當(dāng)前調(diào)度時刻時延最小且有可用容量的可接入網(wǎng)絡(luò)進(jìn)行傳輸;
[0013] 步驟4)、對各個可接入網(wǎng)絡(luò)的可用速率Cn、往返時延τη以及丟包率 Pn予以更新, 在下一個時隙的開始,重復(fù)執(zhí)行步驟1)。
[0014] 上述技術(shù)方案中,每個可接入網(wǎng)絡(luò)的可用速率Cn與往返時延τ n通過定時檢測得 到;每個可接入網(wǎng)絡(luò)的丟包率pn通過如下公式計算:
[0016] 其中,αη是系統(tǒng)參數(shù)。
[0017] 本發(fā)明的優(yōu)點在于:
[0018] 1)實用性:本發(fā)明的方法能夠在多項式時間內(nèi)將一個GoP內(nèi)的分組進(jìn)行調(diào)度,消 耗較少的內(nèi)存資源,具有較高的實用性;
[0019] 2)適應(yīng)性:本發(fā)明的方法能適用于不同類型的視頻序列,在實驗中驗證了不同類 型的視頻序列采用本發(fā)明的方法均能提高接收端的視頻質(zhì)量,說明本發(fā)明的方法具有較好 的適應(yīng)性;
[0020] 3)有效性:與傳統(tǒng)的round-robin方法和速率控制算法相比,本發(fā)明的方法能夠 有效的提高接收端的視頻質(zhì)量,與前兩種算法相比,本發(fā)明的方法在圖像峰值信噪比方面 分別提高了大約5dB和10dB。隨著丟包率的增加,本發(fā)明的方法能夠有效地保證接收端的 視頻質(zhì)量,而采用前面兩種算法接收端的視頻質(zhì)量下降比較明顯。
【附圖說明】
[0021] 圖1為可伸縮視頻編碼的分層結(jié)構(gòu)圖;
[0022] 圖2為一個異構(gòu)多網(wǎng)并發(fā)傳輸可伸縮編碼視頻流的應(yīng)用場景的示意圖;
[0023] 圖3為本發(fā)明方法與現(xiàn)有技術(shù)中的round-robin方法、速率控制方法關(guān)于峰值信 噪比的實驗結(jié)果對照圖;
[0024] 圖4為本發(fā)明方法與現(xiàn)有技術(shù)中的round-robin方法、速率控制方法在不同視頻 序列情況下關(guān)于峰值信噪比的實驗結(jié)果對照圖;
[0025] 圖5為本發(fā)明方法與現(xiàn)有技術(shù)中的round-robin方法以及速率控制方法在不同丟 包率下的性能比較圖。
【具體實施方式】
[0026] 現(xiàn)結(jié)合附圖對本發(fā)明作進(jìn)一步的描述。
[0027] 圖2為一個異構(gòu)多網(wǎng)并發(fā)傳輸可伸縮編碼視頻流的應(yīng)用場景的示意圖,從圖中可 以看出,多媒體移動終端有兩個可接入網(wǎng)絡(luò):WiFi網(wǎng)絡(luò)、3G或4G的無線通信網(wǎng)。若該多媒體 移動終端需要從視頻流服務(wù)器獲取可伸縮編碼視頻流數(shù)據(jù),可以通過"WiFi網(wǎng)絡(luò)、因特網(wǎng)" 這一傳輸路徑,也可以通過"3G或4G的無線通信網(wǎng)、因特網(wǎng)"這一傳輸路徑。換句話說,視 頻流服務(wù)器所存儲的可伸縮編碼視頻流中的數(shù)據(jù)包既可以通過"WiFi網(wǎng)絡(luò)、因特網(wǎng)"這一傳 輸路徑傳輸,也可以通過"3G或4G的無線通信網(wǎng)、因特網(wǎng)"這一傳輸路徑傳輸。多媒體移動 終端采用哪個可接入網(wǎng)絡(luò)來傳輸視頻流中的某一數(shù)據(jù)包是本發(fā)明的可伸縮編碼視頻流的 多網(wǎng)并發(fā)傳輸方法所要解決的問題。
[0028] 假設(shè)存在N個獨立的接入網(wǎng)絡(luò)并分別定義為η = {1,2,…,吣州彡2,由于每個接 入網(wǎng)絡(luò)都是時變的,需要定時檢測它們的可用速率Cn、往返時延τ η,并根據(jù)下面的等式來 估計每個接入網(wǎng)的丟包率Ρη :
[0030] 其中,α η是系統(tǒng)參數(shù),可根據(jù)經(jīng)驗來設(shè)定。
[0031] 視頻序列根據(jù)H. 264/SVC標(biāo)準(zhǔn)被編碼成具有固定幀率f的比特流。這個已編碼的 視頻流S包括有多個網(wǎng)絡(luò)提取層單元(Network Abstract Layer Unit, NALU),每個網(wǎng)絡(luò)提 取層單元Ukil的大小由Slu來表示,這里的k和1分別表示幀號以及增強層數(shù)。由于不同 的NALU有不同的大小,而且它們的大小可能超過最大傳輸單元(MSS),因此這些NALU被封 裝成多個數(shù)據(jù)包進(jìn)行傳輸。在本發(fā)明中,假設(shè)屬于同一個NALU的數(shù)據(jù)包都采用同一個接入 網(wǎng)進(jìn)行傳輸,因此,本發(fā)明提出的方法的粒度在NALU上。由于視頻流采用圖像組(GoP)結(jié) 構(gòu)進(jìn)行編碼,也就是說,來自相同圖像組的視頻幀采用運動補償?shù)姆绞竭M(jìn)行編碼,它們之間 是相互依賴的;而來自不同圖像組(GoP)的視頻幀是相互獨立的,正如圖1所描述的那樣。 視頻幀的這個特性導(dǎo)致了不同的NALU具有不同的重要性,因此,在對可伸縮編碼的視頻流 做分組調(diào)度時需要考慮每個NALU對接收端視頻質(zhì)量的貢獻(xiàn)。本發(fā)明中定義NALU的重要程 度為權(quán)重dk,也就是說,具有相同幀號k的NALU具有相同的重要性。
[0032] 本發(fā)明的方法應(yīng)用于時隙定長的環(huán)境,也就是說,時間被分成多個固定時間長度 為s的時隙t= {1,2,…竹。在每個時隙內(nèi),發(fā)送端都有一段來自相同圖像組(GoP)的視 頻分組需要進(jìn)行調(diào)度傳輸,這些視頻分組來自基礎(chǔ)層和增強層。時隙的長度S等于大小為 η的圖像組的播放時長,可表述為δ =n/f。然后在每個時隙內(nèi),發(fā)送端要根據(jù)網(wǎng)絡(luò)的狀態(tài) 和視頻幀的特性對每個待發(fā)送的圖像組(GoP)里的NALU做出調(diào)度。本發(fā)明定義每個時隙 (圖像組)內(nèi)的最大幀數(shù)是Κτ,即是0彡k彡Κτ ;最大增強層數(shù)為LT,即是0彡1彡LT。
[0033] xkil,n為指示NALU通過哪個接入網(wǎng)傳輸?shù)?-1變量,當(dāng)Xlu, n = 1表明Ukil接入網(wǎng) η來傳輸,否則的話,XlUin = 0。每個分組最多只允許通過一個接入網(wǎng)來傳輸,可以表示為 以下等式:
[0035] 在考慮有丟包的情況下,接收端視頻質(zhì)量可以量化為D,表示為:
[0037] 每個分組都存在一個播放期限,相同視頻幀的NALU具有相同的播放期限,在期限 之前這個分組必須在接收端被解碼,超過這個期限視頻幀將會被丟棄。由于編碼過程存在 依賴性,如果視頻幀在發(fā)送時與播放時的順序不同,接收端必須重新組織視頻幀以進(jìn)行順 利播放,這就導(dǎo)致不同的幀類型具有不同的播放期限限制。例如,B幀相比I幀和P幀具有 更加嚴(yán)格的播放期限。因此本發(fā)明將屬于B類型的NALU調(diào)度到具有較小時延的接入網(wǎng)進(jìn) 行傳輸。另外,每個接入網(wǎng)在每個時隙中的傳輸?shù)腘ALU的速率為r