摘 要:為了建立網(wǎng)絡(luò)中視頻傳輸?shù)腝oS分析平臺(tái),在分析EvalVid工具集的基礎(chǔ)上,選取NS-2作為仿真環(huán)境,提出一種網(wǎng)絡(luò)視頻的QoS分析方法。該方法首先從視頻流中提取仿真用的trace文件,注入模擬的網(wǎng)絡(luò)中傳輸,然后利用結(jié)果trace文件將原壓縮視頻文件中由于傳輸丟失和延時(shí)超過(guò)限制的分組丟棄,產(chǎn)生新的視頻文件,解碼后可進(jìn)行質(zhì)量的評(píng)價(jià)。通過(guò)實(shí)例證實(shí)提出的方案完全可行,并可以作為設(shè)計(jì)與研究視頻傳輸問(wèn)題的試驗(yàn)平臺(tái)。
關(guān)鍵詞:網(wǎng)絡(luò)視頻;服務(wù)質(zhì)量;網(wǎng)絡(luò)仿真;試驗(yàn)平臺(tái)
QoS Analysis Method of Network Video Based on NS
CHEN hengyu
(Jinling Institute of Technology,Nanjing,210001,China
Abstract:In order to establish investigation platform to analyse the QoS of video transmission over network,this paper first analyses the EvalVid tool-set,then selects NS-2 as the simulation environment,proposes an analysis method of network video QoS.This method uses real video stream to generate trace file,which is then injected into virtual network for transportation.According to result trace file,a new video file is obtained by discarding the packet which is lost or transmission delay over limited time from the original video file,and the new file can be decoded for quality evaluation.It is confirmed by the practice that the proposed method is completely feasible,which can be used as a experimental platform for designing and researching video transportation protocol.
eywords:network video;quality of services;network simulation;experimental platform
隨著網(wǎng)絡(luò)和多媒體技術(shù)的飛速發(fā)展,網(wǎng)絡(luò)中的多媒體應(yīng)用層出不窮,如視頻會(huì)議、視頻點(diǎn)播(VOD、遠(yuǎn)程教育等多媒體業(yè)務(wù)。由于活動(dòng)圖像的數(shù)據(jù)量很大,在具體應(yīng)用中,網(wǎng)絡(luò)拓?fù)洹⒕W(wǎng)絡(luò)帶寬、路由技術(shù)以及傳輸數(shù)據(jù)包的實(shí)際分割方案等因素都會(huì)對(duì)網(wǎng)絡(luò)傳輸性能造成影響[1],最終影響視頻業(yè)務(wù)的服務(wù)質(zhì)量。因此必須對(duì)網(wǎng)絡(luò)中視頻傳輸?shù)腝oS保障問(wèn)題展開(kāi)研究。
在網(wǎng)絡(luò)QoS保障問(wèn)題的研究過(guò)程中,由于網(wǎng)絡(luò)復(fù)雜性和經(jīng)濟(jì)條件的制約,網(wǎng)絡(luò)仿真技術(shù)就扮演著非常重要的角色。網(wǎng)絡(luò)仿真技術(shù)是一種通過(guò)建立網(wǎng)絡(luò)設(shè)備和網(wǎng)絡(luò)鏈路的統(tǒng)計(jì)模型, 并模擬網(wǎng)絡(luò)流量的傳輸,從而獲取網(wǎng)絡(luò)設(shè)計(jì)或優(yōu)化所需要的網(wǎng)絡(luò)性能數(shù)據(jù)的仿真技術(shù)[2]。本文在分析EvalVid工具集的基礎(chǔ)上,將基于NS - 2 網(wǎng)絡(luò)仿真軟件提出一種網(wǎng)絡(luò)中視頻QoS分析方法。
1 網(wǎng)絡(luò)視頻的QoS研究技術(shù)概述
在仿真環(huán)境下,研究者通常會(huì)使用不同的尺度衡量其提出的傳輸策略對(duì)視頻質(zhì)量的影響,這些尺度包括分組丟失率、分組延時(shí)、幀丟失率和可解碼幀率等[3]。而這些尺度很多都是衡量網(wǎng)絡(luò)性能的,不能完全反映視頻的質(zhì)量。在視頻質(zhì)量的評(píng)價(jià)方法中主要有主觀質(zhì)量評(píng)價(jià)和客觀質(zhì)量評(píng)價(jià)2種方法。主觀質(zhì)量評(píng)價(jià)是相對(duì)較為準(zhǔn)確的圖像質(zhì)量評(píng)價(jià)方法,因?yàn)橹饔^質(zhì)量評(píng)價(jià)直接反映人眼的感覺(jué)。常用的指標(biāo)是基于5級(jí)質(zhì)量制或5級(jí)損傷制的平均意見(jiàn)分(MOS分)。視頻圖像質(zhì)量的客觀評(píng)價(jià)通過(guò)某些數(shù)學(xué)準(zhǔn)則來(lái)衡量,常用的有峰-峰信噪比(PSNR)。它的定義如下:
其中,,M和N是視頻幀的寬度和高度的維數(shù);x(i,j和x′(i,j是原始像素和重構(gòu)像素在(i,j,點(diǎn)的亮度或色度值。雖然網(wǎng)絡(luò)中視頻QoS的研究技術(shù)層出不窮,但是研究者一直沒(méi)能給出一種統(tǒng)一的體系結(jié)構(gòu)用來(lái)對(duì)視頻的質(zhì)量從主觀和客觀上進(jìn)行評(píng)價(jià)。為此Jirka laue在文獻(xiàn)[4]中給出了統(tǒng)一評(píng)價(jià)視頻傳輸質(zhì)量的框架和工具集——EvalVid[3]。EvalVid具有模塊化的結(jié)構(gòu),可以使用在所用的視頻編碼策略下,網(wǎng)絡(luò)之間的交互作用通過(guò)trace文件實(shí)現(xiàn),很容易在任何實(shí)驗(yàn)的環(huán)境下使用。Chih-Heng e等在文獻(xiàn)[4]中將EvalVid和NS2結(jié)合,給出一個(gè)視頻流質(zhì)量評(píng)估的新工具集Enhanced EvalVid[4]。NS2和EvalVid的結(jié)合通過(guò)對(duì)NS代理的擴(kuò)展實(shí)現(xiàn)的,設(shè)計(jì)出3個(gè)代理,即MyTrafficTrace,MyUDP和MyUDPSink,通過(guò)這3個(gè)代理就可以將真實(shí)的視頻流放到仿真的環(huán)境中運(yùn)行。在文獻(xiàn)[4]中Chih-Heng e等只考慮由于網(wǎng)絡(luò)的擁塞等原因造成的丟包對(duì)視頻質(zhì)量的影響,而沒(méi)有考慮網(wǎng)絡(luò)的延時(shí)對(duì)視頻質(zhì)量,尤其是對(duì)實(shí)時(shí)視頻傳輸質(zhì)量的影響。為此本文提出一種基于NS的網(wǎng)絡(luò)視頻QoS分析方法,既考慮丟包,又考慮延時(shí)對(duì)視頻質(zhì)量的影響,實(shí)現(xiàn)對(duì)Enhanced EvalVid的補(bǔ)充。
2 基于NS的網(wǎng)絡(luò)視頻QoS分析方法
2.1 系統(tǒng)的基本構(gòu)架
本文提出的仿真系統(tǒng)結(jié)構(gòu)如圖1所示。編碼器將YUV格式的視頻源,按照配置文件的要求進(jìn)行編碼,產(chǎn)生視頻壓縮文件。再根據(jù)視頻流的情況,產(chǎn)生網(wǎng)絡(luò)流量的trace文件,并將trace文件通過(guò)網(wǎng)絡(luò)模擬器。經(jīng)過(guò)模擬產(chǎn)生trace結(jié)果,分析后得到延時(shí)記錄和分組丟失記錄。最后,利用這些記錄產(chǎn)生有損傷的視頻壓縮文件,解碼后可以進(jìn)行質(zhì)量的評(píng)價(jià)。
2.2 分析的步驟
由于在視頻傳輸?shù)姆抡嬷?,需要將真?shí)的視頻流在仿真的網(wǎng)絡(luò)環(huán)境中傳輸,因此必須對(duì)NS-2 進(jìn)行擴(kuò)展與修改, 添加視頻傳輸仿真過(guò)程中所需的網(wǎng)絡(luò)元素,包括代理的設(shè)計(jì)。本文利用文獻(xiàn)[4]中作者設(shè)計(jì)的3個(gè)代理MyTrafficTrace,MyUDP和 MyUDPSink。MyTrafficTrace代理按照發(fā)送trace文件,在適當(dāng)?shù)臅r(shí)間發(fā)送分組給低層UDP,發(fā)送時(shí)間是根據(jù)視頻幀發(fā)送率在trace文件中設(shè)定的。 MyUDP是UDP代理的延伸,它記錄每個(gè)傳輸分組的時(shí)間戳,分組id和分組大小。MyUDPSink是接收代理,接收MyUDP發(fā)送的視頻分組,這個(gè)代理在指定的文件中記錄每個(gè)接收分組的時(shí)間戳、分組id和分組大小。另外,如果研究者需要驗(yàn)證其提出的傳輸策略,就要使用C++和OTcl對(duì)網(wǎng)絡(luò)元素編程,并將其提出的策略加到網(wǎng)絡(luò)元素中去,然后重新編譯NS。在完成了對(duì)NS-2的擴(kuò)展以后,就可以利用NS進(jìn)行仿真。
2.2.1 產(chǎn)生仿真用的trace文件
由于視頻編碼軟件不能直接產(chǎn)生用來(lái)仿真的trace文件。因此需要將視頻編碼器產(chǎn)生的視頻壓縮文件轉(zhuǎn)換成trace文件,trace文件的格式是<分組傳送時(shí)間,分組標(biāo)識(shí),分組類型,分組大小>。轉(zhuǎn)換的基本原理就是讀取視頻文件中的時(shí)間戳和分組的大小,并將這些信息存儲(chǔ)到trace文件中。例如數(shù)據(jù)<0.066 667,id8,udp,407>,就是圖像測(cè)試序列mother_daughter.yuv經(jīng)編碼后,產(chǎn)生的trace文件中的一組數(shù)據(jù),表示在0.066 667 s發(fā)送大小為407 B、分組標(biāo)識(shí)為id8的分組。
2.2.2 仿真配置
(1根據(jù)實(shí)際網(wǎng)絡(luò)的要求,定義網(wǎng)絡(luò)節(jié)點(diǎn),配置網(wǎng)絡(luò)拓樸結(jié)構(gòu),確定鏈路的基本特性,如延遲、帶寬等。
(2建立協(xié)議代理,包括端設(shè)備的協(xié)議綁定和通信業(yè)務(wù)量模型的建立,將視頻流和各種背景流綁定到代理中。配置業(yè)務(wù)量模型的參數(shù),確定網(wǎng)絡(luò)上的業(yè)務(wù)量分布。
(3設(shè)置Trace 對(duì)象。Trace 對(duì)象把仿真過(guò)程中發(fā)生的特定類型事件記錄在trace 文件中。NS-2通過(guò)trace 文件保存整個(gè)仿真過(guò)程。仿真完成后,可以對(duì)trace 文件進(jìn)行分析研究。
(4編寫(xiě)其他的輔助過(guò)程,設(shè)定仿真結(jié)束時(shí)間,至此OTcl 腳本編寫(xiě)完成,再用NS-2解釋執(zhí)行已編寫(xiě)的OTcl 腳本,進(jìn)行仿真[5]。
2.2.3 對(duì)傳輸后視頻文件的恢復(fù)與解碼
網(wǎng)絡(luò)仿真器能為每個(gè)傳輸?shù)姆纸M產(chǎn)生相應(yīng)的記錄,仿真后產(chǎn)生trace文件,記錄模擬過(guò)程的所有trace數(shù)據(jù)。通過(guò)MyUDPSink代理生成目標(biāo)trace文件,它的格式是<分組到達(dá)時(shí)間,分組標(biāo)識(shí),分組類型,分組大小>。例如,數(shù)據(jù)<0.275093,id 8,udp,407>,就表示在上例中0.066 667 s發(fā)送的大小為407 B的分組id8在時(shí)刻0.275 093 s被接收到,若在目標(biāo)trace文件中沒(méi)有對(duì)應(yīng)的分組數(shù)據(jù)說(shuō)明該分組丟失。以下兩組數(shù)據(jù):<0.510840,id13,udp,102> ,<0.608045,id 14,udp,306>是分別對(duì)應(yīng)于連續(xù)兩幀圖像的分組,由于兩分組之間延時(shí)0.097 205 s超過(guò)了設(shè)定的幀間最大間隔,故在實(shí)時(shí)視頻傳輸中分組14由于延時(shí)超過(guò)限制,將不能用來(lái)解碼。
可見(jiàn)根據(jù)目標(biāo)trace文件就可以判斷壓縮視頻分組中哪些分組要在傳輸過(guò)程中丟失,哪些分組因?yàn)檠訒r(shí)超過(guò)了一定的限制而不能用來(lái)解碼?;谶@樣的方法,可以從壓縮視頻文件中將傳輸丟失的分組和延時(shí)超過(guò)限制的分組丟棄,從而產(chǎn)生新的傳輸以后的視頻壓縮文件。解碼器對(duì)該文件進(jìn)行解碼便得到重建視頻,從而進(jìn)行質(zhì)量的評(píng)估。
3 實(shí)例分析
圖2所示是本文進(jìn)行實(shí)例分析的視頻傳輸系統(tǒng)的結(jié)構(gòu)示意圖,攝像機(jī)產(chǎn)生視頻文件,通過(guò)節(jié)點(diǎn)S1適時(shí)傳輸?shù)焦?jié)點(diǎn)D1,中間通過(guò)節(jié)點(diǎn)R1和R2;節(jié)點(diǎn)S1帶有1個(gè)CBR流量發(fā)生器,也通過(guò)中間節(jié)點(diǎn)R1和R2,向節(jié)點(diǎn)D2發(fā)送,作為影響視頻傳輸?shù)谋尘傲?。鏈路的帶寬如圖中標(biāo)注所示。本實(shí)例仿真主要想說(shuō)明CBR的背景流對(duì)視頻傳輸質(zhì)量的影響,從而論證本分析方案的可行性。
本例使用250幀的圖像測(cè)試序列mother_daughter.yuv,利用JVT給出的參考模型JM1.7 H.264編碼器進(jìn)行編碼,產(chǎn)生mother_daughter.264壓縮視頻文件,編寫(xiě)程序讀取壓縮視頻文件,產(chǎn)生名為mother_daughter.trc的trace文件。按照?qǐng)D2配置網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu),確定鏈路的基本特性。將視頻trace文件注入NS-2部分代碼如下:
…
set videosink [new Agent/ MyUDPSink]
MYMns_ attach-agent MYMd1 MYMvideosink
set videoudp [new Agent/MyUDP]
MYMns_ attach-agent MYMs1 MYMvideoudp
MYMvideoudp set packetSize_ 1000
set tfile [new Tracefile]
MYMtfile filename \"mother_daughter.trc\"
set trace_[new Application/Traffic/Trace]
MYMtrace_ attach-tracefile MYMtfile
MYMtrace_ attach-agent MYMvideoudp
MYMns_ connect MYMvideoudp MYMvideosink
…
[HT5”][J]圖2 仿真結(jié)構(gòu)示意圖[HT10.]
仿真過(guò)程N(yùn)AM動(dòng)態(tài)顯示截圖如圖3所示,在R1(圖3中的2號(hào)節(jié)點(diǎn))處產(chǎn)生了大量丟包。
[HT5”][J]圖3 NAM動(dòng)畫(huà)截圖[HT10.]
以下是該仿真實(shí)例產(chǎn)生的輸出trace文件的部分內(nèi)容:
+ [WB]0.066667 [WB]0 [WB]2 [WB]videok [WB]435…[WB]-0 [WB]0.0 [WB]4.0 [WB]-1 [WB]13
-[DW]0.066667[DW]0[DW]2[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
r[DW]0.071147[DW]0[DW]2[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
+[DW]0.071147[DW]2[DW]3[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
-[DW]0.258013[DW]2[DW]3[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
r[DW]0.270613[DW]2[DW]3[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
+[DW]0.270613[DW]3[DW]4[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
-[DW]0.270613[DW]3[DW]4[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
r[DW]0.275093[DW]3[DW]4[DW]video[DW]435…[DW]-0[DW]0.0[DW]4.0[DW]-1[DW]13
對(duì)于其格式的含義,從第1 列到第12 列分別解釋如下:第1列表示特定的跟蹤對(duì)象實(shí)現(xiàn)的跟蹤類型,有+ (進(jìn)隊(duì)列、- (出隊(duì)列、r(接收、d (丟棄 4種; 第2列表示事件發(fā)生的時(shí)間(單位:秒;第3 列、第4 列分別表示跟蹤的源和目的節(jié)點(diǎn)號(hào)(對(duì)應(yīng)于圖3中的結(jié)點(diǎn));第5 列表示包類型名字;第6 列表示包大??;第7 列是一個(gè)標(biāo)志字符串,本例沒(méi)有使用;第8 列是Ipv6定義的流標(biāo)識(shí)符; 第9,10 列表示包的源和目的節(jié)點(diǎn)地址;第11 列表示流內(nèi)的順序號(hào);第12 列表示一次仿真中每個(gè)新生成包的惟一標(biāo)識(shí)號(hào)。以上數(shù)據(jù)組記錄了大小為407 B(435中包含28 B的分組頭)分組傳輸?shù)恼麄€(gè)過(guò)程,再通過(guò)MyUDPSink代理生成目標(biāo)trace記錄<0.275093,id 8,udp,407>。利用mother_daughter.264文件和目標(biāo)trace文件,編寫(xiě)分析程序,從mother_daughter.264中將由于丟包和超時(shí)所丟失的分組去掉,得到新的視頻壓縮文件,解碼后可以從主觀和客觀上去評(píng)價(jià)視頻質(zhì)量。
圖4中的PSNR2和PSNR1分別展示了CBR有無(wú)背景流存在的2種條件下視頻序列的PSNR的對(duì)比情況,說(shuō)明CBR流的存在使視頻質(zhì)量惡化。
圖5從主觀的角度,對(duì)比了兩種情況下的視頻質(zhì)量,通過(guò)這一簡(jiǎn)單實(shí)驗(yàn)可以證明,本文所提出的方案是完全可行的。