龔 永,豐洪才,胡偉剛,張 赤,金 凱
(1.武漢工業(yè)學(xué)院數(shù)學(xué)與計(jì)算機(jī)學(xué)院,湖北 武漢 430023;2.武漢工業(yè)學(xué)院網(wǎng)絡(luò)中心,湖北 武漢 430023)
隨著互聯(lián)網(wǎng)和多媒體技術(shù)的發(fā)展,視頻網(wǎng)絡(luò)實(shí)時(shí)傳輸已經(jīng)成為網(wǎng)絡(luò)中的重要應(yīng)用之一,然而因網(wǎng)絡(luò)擁塞導(dǎo)致的視頻在網(wǎng)絡(luò)中傳輸延時(shí)和丟包對(duì)視頻傳輸質(zhì)量造成了極大的影響。為了提高網(wǎng)絡(luò)視頻傳輸質(zhì)量,國(guó)內(nèi)外專家學(xué)者開展了大量的研究并提出了許多視頻編碼方案和擁塞控制算法。多描述編碼(multiple description coding,MDC)將視頻編碼成多個(gè)適應(yīng)不同帶寬的獨(dú)立描述,以便與最符合的網(wǎng)絡(luò)帶寬建立聯(lián)系。一般來說,多數(shù)的MDC采用多個(gè)獨(dú)立的視頻描述進(jìn)行傳輸[1-2],接收端解碼器只要接收到一個(gè)或多個(gè)描述,就可以恢復(fù)出相應(yīng)質(zhì)量的視頻。非平衡多描述編碼(unbalanced multiple description coding,UMDC)使用多個(gè)不同重要性和質(zhì)量的視頻描述,能夠靈活控制編碼引入的冗余量,同時(shí)充分利用網(wǎng)絡(luò)不同路徑的可用帶寬。FLOYD和JACOBSON提出的隨機(jī)早期檢測(cè)RED(random early detection)算法[3]是最典型的主動(dòng)隊(duì)列管理 AQM(active queue management)擁塞控制算法,目前已成為互聯(lián)網(wǎng)工程任務(wù)組IETF(internet engineering task force)推薦的唯一AQM候選策略。RED算法雖然能避免全局同步現(xiàn)象,并能有效地提高鏈路帶寬利用率和減小隊(duì)列平均長(zhǎng)度,但是也存在許多需要解決的問題,比如在給定流量條件下分組隊(duì)列長(zhǎng)度穩(wěn)態(tài)誤差、帶來的時(shí)延抖動(dòng)、在不同流量條件下平均隊(duì)長(zhǎng)變化較大造成大量分組丟失[4],以及不能有效估計(jì)擁塞的嚴(yán)重性等[5]。為了解決這些問題,保證視頻傳輸?shù)膶?shí)時(shí)性和接收端的解碼質(zhì)量,筆者采用非平衡多描述視頻編碼,提出了一種能有效減少網(wǎng)絡(luò)時(shí)延和降低丟包率,并在有效估計(jì)網(wǎng)絡(luò)擁塞狀況的基礎(chǔ)上提高視頻傳輸效率的算法,仿真實(shí)驗(yàn)表明,與RED算法相比,筆者提出的算法能更為有效地估計(jì)網(wǎng)絡(luò)擁塞狀況、降低丟包率和減少網(wǎng)絡(luò)延遲,從而更有效地保證視頻網(wǎng)絡(luò)傳輸質(zhì)量。
按照各個(gè)描述的重要性,通過劃分描述的權(quán)重將多描述編碼分為平衡多描述編碼(balanced multiple description coding,BMDC)和非平衡多描述編碼,其中非平衡多描述編碼使用若干個(gè)不同權(quán)重和質(zhì)量的視頻描述。筆者采用兩個(gè)描述進(jìn)行說明,即高分辨率(high-resolution,HR)描述具有較高的權(quán)重和質(zhì)量,低分辨率(low-resolution,LR)描述作為冗余用于隱藏HR描述在傳輸過程中包丟失產(chǎn)生的錯(cuò)誤[6-7]。
筆者引入“同步幀”的概念,它是LR編碼器重構(gòu)的I幀,采用LR編碼器的輸入與HR編碼器的重構(gòu)幀關(guān)聯(lián)來代替原始視頻幀,其作用是在HR編碼器的幀緩沖區(qū)內(nèi)取代HR編碼器當(dāng)前重構(gòu)的P幀,在HR編碼器編碼下一個(gè)P幀時(shí)作為參考幀。在編碼器端利用“同步幀”來增強(qiáng)HR與LR描述之間的相關(guān)性,在解碼器端HR解碼器必須取得“同步幀”用于下一個(gè)P幀的運(yùn)動(dòng)補(bǔ)償。
使用“同步幀”增強(qiáng)HR描述和LR描述的相關(guān)性,以便處理多種包丟失的情況,下面分3種情況討論編碼器和解碼器在增強(qiáng)HR描述和LR描述相關(guān)性的工作方式:①當(dāng)HR描述和LR描述都順利接收時(shí),兩個(gè)描述可以正確解碼,解碼器輸出的是HR描述的數(shù)據(jù),否則解碼器只有等到下一個(gè)“同步幀”到達(dá)后才開始重新解碼,解碼器在暫停解碼過程中輸出上一次解碼得到的已解碼幀;②當(dāng)HR描述能順利接收而LR描述在傳輸中丟失時(shí),LR編碼器的輸入為HR編碼器的重構(gòu)幀,此時(shí)只需將HR解碼器的輸出直接輸入到一個(gè)標(biāo)準(zhǔn)編碼器,生成LR描述正確重構(gòu)LR描述中因包丟失損壞的幀,從而繼續(xù)LR描述的解碼;③當(dāng)LR描述能順利接收而HR描述在傳輸中丟失時(shí),由于“同步幀”是HR描述的下一個(gè)P幀的參考幀,因此在HR編碼器與解碼器之間不存在不匹配的情況,此時(shí)HR解碼器只需從LR解碼器輸出得到下一個(gè)“同步幀”即可重新開始解碼。
網(wǎng)絡(luò)傳輸延遲是衡量網(wǎng)絡(luò)性能的一個(gè)重要參數(shù),可分為單向延遲和雙向延遲兩種。由于數(shù)據(jù)包在往返傳輸過程中可能經(jīng)歷不同的路徑,且非平衡多描述視頻編碼大量視頻數(shù)據(jù)傳輸主要關(guān)注的是從發(fā)送端到接收端的單向路徑,因此單向傳輸延遲對(duì)于網(wǎng)絡(luò)視頻應(yīng)用更有意義。測(cè)量單向網(wǎng)絡(luò)傳輸延遲的步驟如下:
(1)協(xié)商發(fā)送端和接收端時(shí)鐘同步。
(2)發(fā)送端按照TCP(transmission control protocol)協(xié)議的結(jié)構(gòu)生成測(cè)試數(shù)據(jù)包,確定并在其中填充目的接收端IP(internet protocol)地址,在測(cè)試包中設(shè)置時(shí)間戳,空缺部分用隨機(jī)比特位填充,然后將填寫好的測(cè)試數(shù)據(jù)包發(fā)送到目的端主機(jī)。
(3)目的接收端接收到相應(yīng)的測(cè)試數(shù)據(jù)包后,計(jì)算傳輸?shù)膯蜗蜓舆t。
定義參數(shù) RDd=(RDavg-RDmin)/(RDmax-RDmin),其中 RDavg,RDmin,RDmax分別為 n 個(gè)測(cè)試數(shù)據(jù)包的平均傳送延遲、最小傳送延遲和最大傳送延遲。當(dāng)測(cè)試數(shù)據(jù)包發(fā)送速率大于可用帶寬時(shí),測(cè)試數(shù)據(jù)流的延遲將導(dǎo)致RDavg呈現(xiàn)增長(zhǎng)的趨勢(shì),由定義可知RDd也呈現(xiàn)增長(zhǎng)的趨勢(shì);反之測(cè)試數(shù)據(jù)流延遲將無變化趨勢(shì),RDavg將接近RDmin,由RDd定義可知其將接近0。實(shí)驗(yàn)表明,將參數(shù)RDd的值設(shè)定為0.45時(shí),檢測(cè)到的可用帶寬與實(shí)際可用帶寬誤差近似于0。
定義參數(shù) RDn=RDavg/RDmax-RDmin/RDavg,通過比較接收到的測(cè)試數(shù)據(jù)包發(fā)送延遲的變化幅度,調(diào)整測(cè)試數(shù)據(jù)包的發(fā)送速率,使得探測(cè)速率快速逼近可用帶寬。當(dāng)測(cè)試數(shù)據(jù)包的發(fā)送速率小于當(dāng)前網(wǎng)絡(luò)可用帶寬時(shí),n個(gè)數(shù)據(jù)包的 RDavg與RDmax、RDmin接近,這時(shí) RDn接近于0;反之 RDn將呈現(xiàn)增長(zhǎng)的趨勢(shì)。實(shí)驗(yàn)表明,將RDn的值設(shè)定為0.017時(shí),檢測(cè)到的可用帶寬與實(shí)際可用帶寬誤差近似于0。
可用帶寬檢測(cè)的算法步驟描述如下:
(1)初始化Smax為瓶頸鏈路的物理帶寬、Smin和Snow為零,其中Smax、Smin和Snow分別為探測(cè)包發(fā)送速率的最大、最小和實(shí)時(shí)值;
(2)設(shè)定Snow=(Smax+Smin)/2,開始發(fā)送檢測(cè)數(shù)據(jù)包;
(3)當(dāng)目的端接收到100個(gè)檢測(cè)數(shù)據(jù)包后開始計(jì)算RDd和RDn;
(4)當(dāng) RDd>0.45且 RDn<0.017時(shí),輸出鏈路帶寬檢測(cè)值為Snow,本次可用帶寬檢測(cè)結(jié)束;
(5)當(dāng)RDd>0.45時(shí),Smax=Snow;否則 Smin=Snow,并且按式(1)重新計(jì)算Snow;
(6)返回步驟(2)。
在一定的時(shí)間間隔中,網(wǎng)絡(luò)擁塞狀況具有離散Markov鏈的統(tǒng)計(jì)規(guī)律,運(yùn)用馬爾科夫模型預(yù)測(cè)網(wǎng)絡(luò)擁塞狀態(tài)的主要內(nèi)容是估算網(wǎng)絡(luò)擁塞狀態(tài)的轉(zhuǎn)移概率矩陣,一般使用統(tǒng)計(jì)估算法[8]。
定義網(wǎng)絡(luò)擁塞狀態(tài)空間S={空閑,正常,擁塞},設(shè)在連續(xù)兩個(gè)時(shí)段內(nèi)前一個(gè)時(shí)段網(wǎng)絡(luò)擁塞狀態(tài)處于i而后一個(gè)時(shí)段處于j的概率為Pij(i=1,2,…,n;j=1,2,…,n),進(jìn)而構(gòu)造出一步轉(zhuǎn)移概率矩陣P。
設(shè)向量 X(t)=(X1(t),X2(t),…,Xn(t))為第t個(gè)時(shí)段網(wǎng)絡(luò)擁塞狀態(tài)的分布向量,由式(2)可以計(jì)算出在第t+1時(shí)段網(wǎng)絡(luò)所處的擁塞狀態(tài),從而可對(duì)下一步的網(wǎng)絡(luò)狀況做出預(yù)測(cè)。
筆者提出的算法采用非平衡多描述編碼方法進(jìn)行視頻編解碼,以網(wǎng)絡(luò)的單向延遲為度量來檢測(cè)當(dāng)前視頻傳輸路徑的可用帶寬[9],在此基礎(chǔ)上運(yùn)用馬爾科夫模型預(yù)測(cè)網(wǎng)絡(luò)狀況,通過鏈路傳輸能力因子Fl選取傳輸路徑,發(fā)送端根據(jù)預(yù)測(cè)到的網(wǎng)絡(luò)狀況調(diào)整視頻發(fā)送碼率。
2.5.1 發(fā)送端算法過程描述
(1)與接收端建立TCP連接;
(2)視頻編碼并設(shè)置初始發(fā)送碼率;
(3)發(fā)送測(cè)試數(shù)據(jù)包并根據(jù)接收端的反饋信息計(jì)算各傳輸路徑的可用帶寬網(wǎng)絡(luò)和鏈路的傳輸能力因子Fl,選取Fl最大的一條鏈路為視頻傳輸路徑;
(4)根據(jù)式(2)預(yù)測(cè)網(wǎng)絡(luò)鏈路擁塞狀態(tài),動(dòng)態(tài)調(diào)整視頻發(fā)送碼率。如果視頻傳輸路徑處于空閑或正常狀態(tài),則提高視頻發(fā)送碼率;如果視頻傳輸路徑皆處于擁塞狀態(tài),則降低視頻發(fā)送碼率,否則轉(zhuǎn)步驟(3);
(5)發(fā)送視頻描述;
(6)若收到停止視頻通信指令,則向接收端發(fā)送含有停止視頻通信標(biāo)志的數(shù)據(jù)包,否則轉(zhuǎn)步驟(3)。
2.5.2 接收端算法過程描述
(1)與發(fā)送端建立TCP連接;
(2)接收檢測(cè)數(shù)據(jù)包,統(tǒng)計(jì)檢測(cè)數(shù)據(jù)包的延遲狀況[10];
(3)計(jì)算參數(shù)RDd和RDn,執(zhí)行帶寬檢測(cè)算法,將算法執(zhí)行結(jié)果反饋給發(fā)送端;
(4)接收視頻描述并采用非平衡多描述編碼方法進(jìn)行視頻解碼;
(5)若收到含有停止視頻通信標(biāo)志的數(shù)據(jù)包,則終止帶寬檢測(cè)算法和本算法,否則轉(zhuǎn)步驟(2)。
實(shí)驗(yàn)仿真平臺(tái)為Opnet,傳輸?shù)囊曨l流來源于典型的視頻測(cè)試序列foreman,采用TCP突發(fā)流產(chǎn)生擁塞,選取仿真實(shí)驗(yàn)中一段時(shí)長(zhǎng)為180 s的實(shí)驗(yàn)片段,仿真實(shí)驗(yàn)結(jié)果如圖1和圖2所示。
圖1 筆者算法與RED算法在延遲方面的比較
圖2 筆者算法與RED算法在丟包率方面的比較
從圖1和圖2可看出,由于預(yù)測(cè)到擁塞后耗費(fèi)了一定的時(shí)間進(jìn)行最優(yōu)路徑選擇,筆者提出的算法在延遲和丟包率方面持續(xù)增大且大于同期RED算法的延遲和丟包率,但隨著最優(yōu)傳輸路徑的確定,延遲和丟包率迅速減小且小于同期RED算法的延遲和丟包率。從仿真實(shí)驗(yàn)數(shù)據(jù)可計(jì)算出筆者算法與RED算法的平均延遲和丟包率分別為0.108 6 s和13.09%、0.196 3 s和19.87%,因此,從整體上來看,筆者算法在通過控制擁塞來保證視頻傳輸質(zhì)量方面比RED算法更為有效。
網(wǎng)絡(luò)擁塞嚴(yán)重影響了視頻網(wǎng)絡(luò)傳輸質(zhì)量,因此,筆者提出一種視頻網(wǎng)絡(luò)傳輸質(zhì)量保證算法,即采用非平衡多描述編碼技術(shù)進(jìn)行視頻編碼,在檢測(cè)實(shí)時(shí)可用帶寬的基礎(chǔ)上運(yùn)用馬爾科夫模型預(yù)判網(wǎng)絡(luò)擁塞,更換傳輸路徑為所選擇的最優(yōu)路徑。仿真結(jié)果表明,在網(wǎng)絡(luò)擁塞的情況下,所提出的視頻網(wǎng)絡(luò)傳輸質(zhì)量保證算法比RED算法能更有效地估計(jì)擁塞狀況,減少網(wǎng)絡(luò)延遲和降低丟包率,保證了視頻傳輸質(zhì)量。
[1] VAISHAMPAYAN V A.Design of multiple description scalar quantizers[J].IEEE Transaction on Information Theory,1993(39):821 -834.
[2] APOSTOPOULOS J G,WEE S J.Unbalanced multiple description video communication using path diversity[C]//Proceedings of IEEE International Conference on Image Processing(ICIP'01).Thessaloniki:[s.n.],2001:966-969.
[3] FLOYD S,JACOBSON V.Random early detection gateways for congestion avoidance[J].IEEE/ACM Transaction on Networking,1993(4):397-413.
[4] RYU S,RUMP C,QIAO C.Advances in internet congestion control[J].IEEE Communications Surveys &Tutorials,2003,5(1):28 -39.
[5] 汪華斌.基NS2的RED算法研究和仿真分析[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2008,17(12):49-53.
[6] 李彬,黃峰,孫立峰,等.一種魯棒靈活的非平衡多描述視頻編碼和傳輸方案[J].計(jì)算機(jī)學(xué)報(bào),2008,31(7):1155-1164.
[7] 時(shí)鴻濤.基于正態(tài)平穩(wěn)的馬爾可夫周期流量預(yù)測(cè)算法[J].青島農(nóng)業(yè)大學(xué)學(xué)報(bào):自然科學(xué)版,2010,27(4):330-333.
[8] 關(guān)禮安,汪斌強(qiáng),朱宣勇.基于下一跳可用帶寬和鏈路利用率的路徑選擇算法[J].電信科學(xué),2010,26(8):30-34.
[9] 王德正,夏陽.網(wǎng)絡(luò)性能度量研究[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2011,33(3):375-378.
[10] 樊金榮,方華京.網(wǎng)絡(luò)控制系統(tǒng)中采樣周期問題的研究[J].武漢理工大學(xué)學(xué)報(bào):信息與管理工程版,2010,32(3):348 -352.
武漢理工大學(xué)學(xué)報(bào)(信息與管理工程版)2013年1期