一、前言
HTTP ABR (Adaptive Bit Rate)是目前最熱門的OTT (Over-The-Top)傳輸技術(shù),典型的有Apple HLS (HTTP Live Streaming)、Microsoft Smooth Streaming、Adobe Zeri Streaming和DASH (Dynamic Adaptive Streaming over HTTP)。
HTTP ABR是以HTTP/TCP協(xié)議進(jìn)行無損傳輸,且會(huì)根據(jù)網(wǎng)絡(luò)帶寬自動(dòng)調(diào)整視頻碼率的視頻技術(shù),與傳統(tǒng)的UDP承載或廣電廣播網(wǎng)絡(luò)承載的有損傳輸視頻業(yè)務(wù)有很大區(qū)別。在網(wǎng)絡(luò)性能變化,如路由器擁塞丟包時(shí),傳統(tǒng)的MOS-V等圖像質(zhì)量指標(biāo)對(duì)于HTTP ABR卻保持不變,失去了指標(biāo)的意義。因此HTTP ABR業(yè)務(wù)需要全新的一套測(cè)量體系來進(jìn)行視頻傳輸質(zhì)量測(cè)量。Spirent針對(duì)該業(yè)務(wù)所設(shè)計(jì)的以AS Score為代表的一套指標(biāo)體系已成為該業(yè)務(wù)測(cè)量的新標(biāo)桿,并即將成為IETF標(biāo)準(zhǔn)。
二、為什么傳統(tǒng)的IPTV視頻質(zhì)量分析方法不適用于HTTP ABR業(yè)務(wù)?
有損傳輸?shù)囊曨l與HTTP ABR視頻對(duì)比
傳統(tǒng)的網(wǎng)絡(luò)視頻IPTV業(yè)務(wù)主要是基于UDP承載視頻流的,UDP承載的特點(diǎn)是實(shí)時(shí)性好,但出現(xiàn)丟包則不會(huì)重傳,抖動(dòng)和時(shí)延過大的包會(huì)被丟棄,對(duì)視頻流而言是一種有損傳輸。所以當(dāng)網(wǎng)絡(luò)損傷出現(xiàn)時(shí),解碼后視頻質(zhì)量會(huì)出現(xiàn)劣化,導(dǎo)致馬賽克、圖像模糊等問題,見下圖1。
圖1、UDP承載視頻流出現(xiàn)馬賽克和圖像模糊
HTTP ABR視頻業(yè)務(wù)是基于TCP承載視頻流的,TCP承載的特點(diǎn)是可靠連接,無損傳輸。丟包后會(huì)進(jìn)行重傳,抖動(dòng)和延時(shí)會(huì)被客戶端的下載緩沖所消化,一般情況下客戶不會(huì)感知。只有緩沖區(qū)的視頻播放完又沒有及時(shí)下載到新的視頻片段時(shí),才會(huì)出現(xiàn)畫面等待并緩沖,見下圖2。
圖2、TCP承載視頻流
傳統(tǒng)的網(wǎng)絡(luò)視頻質(zhì)量分析指標(biāo)是針對(duì)視頻畫面損傷時(shí)對(duì)視頻質(zhì)量評(píng)估的,而當(dāng)網(wǎng)絡(luò)性能劣化,例如有路由器出現(xiàn)擁塞導(dǎo)致丟包時(shí),HTTP承載的視頻業(yè)務(wù)是不會(huì)丟失媒體包的,畫面質(zhì)量跟發(fā)送端是完全一致的,那原有的一些分析指標(biāo)是否還適用呢?
有損傳輸?shù)囊曨l質(zhì)量常用測(cè)量指標(biāo)是否適用HTTP ABR業(yè)務(wù)?
基于UDP的IPTV視頻業(yè)務(wù),或廣電廣播網(wǎng)絡(luò)的視頻業(yè)務(wù)常用于衡量視頻質(zhì)量的指標(biāo)常用有如下幾種,Spirent VQA視頻質(zhì)量測(cè)量方案均已支持:
MOS-V
MOS-V原本是指通過觀測(cè)者人眼觀察視頻質(zhì)量,進(jìn)行主觀1-5分的打分,參見ITU-T P.910(04/2008)。目前廣泛在視頻質(zhì)量測(cè)試中所使用的MOS-V指標(biāo),即通過算法分析客戶端所收到的視頻編碼、幀率、丟包分布、以及圖像組結(jié)構(gòu)等,通過算法換算得出等效于人眼主觀評(píng)價(jià)測(cè)量的MOS-V得分。
MOS-V適用于HTTP ABR業(yè)務(wù)嗎?
只適用于進(jìn)行實(shí)時(shí)視頻編碼階段,對(duì)于網(wǎng)絡(luò)傳輸則失去意義。
如前所分析的,ABR業(yè)務(wù)采用TCP無損傳輸,已編好碼的視頻流(如H.264碼流)進(jìn)入網(wǎng)絡(luò)(如CDN)后,發(fā)送端發(fā)出的媒體片段和接收端收到的片段是完全一致的。傳輸過程中TCP丟包會(huì)重傳,對(duì)于視頻流而言即不存在丟包,所以MOS算法所計(jì)算的丟包分布是無意義的。即在出現(xiàn)網(wǎng)絡(luò)層面的丟包時(shí),對(duì)于TCP承載的視頻業(yè)務(wù)而言,MOS值是不會(huì)改變的。
所以MOS在ABR業(yè)務(wù)中,充其量只能適用于視頻發(fā)送前進(jìn)行視頻編碼的階段,即做初步的編碼器編碼質(zhì)量對(duì)比。
在某些特殊場(chǎng)合,在傳輸網(wǎng)絡(luò)中有實(shí)時(shí)視頻轉(zhuǎn)碼的網(wǎng)元情況下,MOS也可用于單獨(dú)衡量轉(zhuǎn)碼設(shè)備的編碼質(zhì)量。但對(duì)于HTTP ABR業(yè)務(wù)而言,本身就具備提供多種不同的碼率碼流,適應(yīng)不同的用戶情況,客戶端自動(dòng)選擇下載碼率,在網(wǎng)絡(luò)上再做實(shí)時(shí)轉(zhuǎn)碼并不經(jīng)濟(jì),所以該場(chǎng)景在HTTP ABR業(yè)務(wù)中并不常見。
要特別指出的是,視頻傳輸質(zhì)量測(cè)量目的是以儀表模擬大量用戶訪問,衡量網(wǎng)絡(luò)在大流量情況下的服務(wù)質(zhì)量。而編碼質(zhì)量則取決于編碼算法,與用戶量或網(wǎng)絡(luò)狀態(tài)是無關(guān)的。例如VOD業(yè)務(wù),它是編碼軟件離線編碼后,把文件以非實(shí)時(shí)的方式送入網(wǎng)絡(luò)存儲(chǔ)(如CDN),再由網(wǎng)絡(luò)向用戶提供服務(wù)的。
關(guān)鍵是,對(duì)于運(yùn)營(yíng)者最關(guān)心的傳輸網(wǎng)絡(luò)上各個(gè)網(wǎng)元的服務(wù)質(zhì)量,例如出現(xiàn)丟包、抖動(dòng)、延時(shí)等,由于不存在視頻損傷,MOS指標(biāo)保持不變。即網(wǎng)絡(luò)質(zhì)量變化,用戶感知發(fā)生變化時(shí),MOS指標(biāo)無法反應(yīng),失去了指標(biāo)的意義。
MDI
MDI:DF延遲因素指標(biāo),指示被測(cè)試視頻流的延遲和抖動(dòng)狀況。DF單位是ms。DF將視頻流抖動(dòng)的變化換算為對(duì)視頻傳輸和解碼設(shè)備緩沖的需求。
MDI:MLR媒體丟包率指標(biāo),網(wǎng)絡(luò)傳輸過程中每秒媒體包丟失數(shù),指示媒體包丟失情況。
MDI適用于HTTP ABR業(yè)務(wù)嗎?
完全不適用。
MDI:DF本意是為了指示對(duì)解碼設(shè)備緩沖的需求,特別是電視機(jī)頂盒的緩沖有限,緩沖時(shí)間通常是毫秒級(jí)的。而對(duì)于HTTP ABR業(yè)務(wù)而言解碼設(shè)備主要是PC和手機(jī)等智能終端,它是下載媒體片段的,終端本身就要求有容納大量文件的緩沖空間,緩沖時(shí)間起碼是分鐘級(jí)。MDI:DF指標(biāo)失去意義了。
而TCP的重傳機(jī)制本身保證了不會(huì)有媒體層面的丟包, MDI:MLR必然為0,失去意義。
VSTQ
視頻服務(wù)傳輸質(zhì)量指標(biāo)。伴隨MOS而出現(xiàn)的,重點(diǎn)關(guān)注網(wǎng)絡(luò)傳輸中的視頻質(zhì)量,對(duì)于TCP無損傳輸而言是不適用的。
另外還有PSNR峰值信噪比,也是同樣,不再累述。
I/B/P幀統(tǒng)計(jì)
本意是統(tǒng)計(jì)在網(wǎng)絡(luò)損傷下,視頻編碼的I/B/P幀分別的接收和丟失情況。同樣由于TCP的重傳機(jī)制,視頻編碼的I/B/P幀都是100%傳送,不會(huì)丟失,統(tǒng)計(jì)失去意義。
小結(jié)
傳統(tǒng)的視頻質(zhì)量分析是基于有損傳輸?shù)?,MOS等指標(biāo)本意是進(jìn)行初步的綜合的視頻質(zhì)量指示,以便做服務(wù)質(zhì)量對(duì)比,再進(jìn)一步做深入的指標(biāo)分析,例如分析媒體流損傷情況、網(wǎng)絡(luò)層丟包、抖動(dòng)、延時(shí)等問題,最終找到影響用戶體驗(yàn)的原因,并予以解決。
但由于HTTP ABR的特殊性,不存在圖像損傷,網(wǎng)絡(luò)丟包、抖動(dòng)、延時(shí)等網(wǎng)絡(luò)問題都無法影響到MOS指標(biāo),而HTTP ABR業(yè)務(wù)中,由于網(wǎng)絡(luò)損傷而真正影響用戶體驗(yàn)的主要問題,緩沖等待時(shí)間、等待次數(shù)、視頻碼率降低等都無法反應(yīng)出來。
那么HTTP ABR業(yè)務(wù)需要怎樣的視頻質(zhì)量測(cè)量體系呢?
三、需要怎樣的指標(biāo)體系來測(cè)量HTTP ABR業(yè)務(wù)?
HTTP ABR視頻傳輸質(zhì)量測(cè)量體系分為三個(gè)層面,Spirent測(cè)試方案對(duì)應(yīng)給出了測(cè)試的方法和指標(biāo):
用戶感知層面
Adaptive Streaming Score
Spirent提供了一個(gè)綜合評(píng)估用戶體驗(yàn)的,專門針對(duì)HTTP ABR設(shè)計(jì)的指標(biāo)Adaptive Streaming (AS) score。AS score指示了有多少比例的用戶收到最高速率的碼流,并持續(xù)播放。AS score的范圍是0-100,極端情況下“0” 表示所有用戶都在最低碼率下, “100”表示所有用戶都在服務(wù)器能提供的最高碼率下。
該指標(biāo)綜合指示了用戶實(shí)際感知:碼率包含了分辨率、幀率、色階、清晰度等圖像細(xì)節(jié)信息,而持續(xù)播放與否也反應(yīng)了網(wǎng)絡(luò)和服務(wù)器原因?qū)е碌难舆t、丟包、抖動(dòng)等傳輸情況。AS反應(yīng)了用戶在HTTP ABR業(yè)務(wù)中的 QoE。該指標(biāo)便于測(cè)試者作為測(cè)試分析的入口。也便于將不同的測(cè)試結(jié)果進(jìn)行對(duì)比。
在下圖的例子中,視頻被編碼成多個(gè)碼率,最低碼率是64K,最高碼率的1.5M。一開始用戶都集中在64K最低碼率,隨時(shí)間推移有更多用戶從低碼率跳到了高碼率的視頻,在播放一分鐘后,所有用戶都在使用1.5Mbps的碼率視頻,對(duì)應(yīng)的Adaptive Streaming Score也從0一直上升到了100。
圖3、Adaptive Streaming Score
媒體服務(wù)層面
Adaptive Streaming Buffering Wait Times
在線的HTTP ABR媒體流Buffer等待時(shí)間,Buffer等待時(shí)間是指在這個(gè)時(shí)間內(nèi)視頻處于圖像靜止的Loading狀態(tài)。
Adaptive Streaming Avg. Fragment Response & Download Time
媒體文件片段平均響應(yīng)時(shí)間(從發(fā)出GET到收到第一個(gè)數(shù)據(jù)字節(jié))和下載時(shí)間(收到第一個(gè)字節(jié)數(shù)據(jù)到最后一個(gè)字節(jié)數(shù)據(jù)),統(tǒng)計(jì)顯示兩個(gè)時(shí)間之和,并檢查該文件片段是屬于哪個(gè)視頻碼率段的,對(duì)該碼率段的所有響應(yīng)和下載時(shí)間取均值。該指標(biāo)是指示在某個(gè)碼率段中文件片段的響應(yīng)和下載時(shí)間。
Adaptive Streaming Active Video Channels
實(shí)時(shí)顯示在線的HTTP ABR媒體流在各個(gè)碼率段分布情況
圖4、HTTP ABR媒體流的碼率分布
Fragment Run Statistic
Abort Fragment Request下載文件片段中斷次數(shù)
Buffer Underrun Fragment用戶等待視頻下載才能播放的次數(shù),除了用戶剛發(fā)起新的視頻請(qǐng)求播放的之外,在播放過程中該指標(biāo)在網(wǎng)絡(luò)理想情況下應(yīng)為0,出現(xiàn)額外的Underrun則表示有卡頓。
Pre-Cached Fragment 預(yù)下載的文件片段數(shù)量
Bitrate Shift
碼率向上升速的次數(shù)Total Upshifts、碼率向下降速的次數(shù)Total Downshifts、碼率維持不變的次數(shù)Total Rate Maintaining
其他統(tǒng)計(jì)計(jì)數(shù)
Sessions、Channels、Http Requests、Manifest Requests、Fragment Requests的計(jì)數(shù)統(tǒng)計(jì)
網(wǎng)絡(luò)層面
網(wǎng)絡(luò)流量、TCP連接統(tǒng)計(jì)、TCP SYN/ACK時(shí)間統(tǒng)計(jì)、Round Trip時(shí)間統(tǒng)計(jì)、TCP重傳超時(shí)統(tǒng)計(jì)、TCP收到第一個(gè)數(shù)據(jù)包的時(shí)間統(tǒng)計(jì)、估算服務(wù)器響應(yīng)時(shí)間統(tǒng)計(jì)、TCP Checksum fail、Bad header length、Bad data length、Duplicate、Out of sequence、Timeout統(tǒng)計(jì)等等網(wǎng)絡(luò)參數(shù),以分析網(wǎng)絡(luò)層面的抖動(dòng)、時(shí)延、丟包、錯(cuò)包等各種問題。
ABR Scores測(cè)量體系正在成為IETF標(biāo)準(zhǔn)
Spirent針對(duì)HTTP ABR業(yè)務(wù)所設(shè)計(jì)的整套ABR測(cè)量指標(biāo)體系是業(yè)界領(lǐng)先的測(cè)量體系,已成為該業(yè)務(wù)測(cè)量的新標(biāo)桿,并已提交IETF即將成為IETF標(biāo)準(zhǔn)。
注1:Spirent是The Internet Engineering Task Force (IETF 互聯(lián)網(wǎng)工程組)的重要成員,先后制定過很多如RFC 2544等測(cè)量領(lǐng)域重要的標(biāo)準(zhǔn)文檔。
ITU等標(biāo)準(zhǔn)組織現(xiàn)有的測(cè)量標(biāo)準(zhǔn)主要針對(duì)的是有損傳輸?shù)膽?yīng)用場(chǎng)景,目前還沒有針對(duì)HTTP ABR這種OTT Internet業(yè)務(wù)的已發(fā)布標(biāo)準(zhǔn)。
附錄A:HTTP ABR傳輸機(jī)制說明
圖8、HTTP ABR視頻分發(fā)機(jī)制
視頻源內(nèi)容經(jīng)編碼器編碼形成不同碼率的視頻文件,一個(gè)視頻文件包含了一串文件片段和對(duì)應(yīng)的列表。由客戶端根據(jù)下載的速率情況選擇下載什么碼率的視頻文件。以下以一個(gè)文件名為sample的視頻文件在Apple HTTP Live Streaming服務(wù)器上播放為例說明其碼率選擇機(jī)制。見圖9。
圖9、碼率選擇機(jī)制
客戶端向服務(wù)器發(fā)起GET請(qǐng)求獲取sample.m3u8文件列表,服務(wù)器回復(fù)200 OK并將文件列表發(fā)給客戶端。文件列表包含了sample視頻所能提供的幾種播放碼率。
客戶端根據(jù)自身設(shè)置的策略決定是先從最小碼率開始,還是從最大,或者從中間碼率開始獲取視頻。本例是設(shè)置了從最小碼率開始,于是客戶端向服務(wù)器請(qǐng)求64K碼率的文件列表。服務(wù)器回復(fù)64K碼率視頻的文件串列表。
客戶端根據(jù)收到的文件串列表請(qǐng)求獲取第1個(gè)文件片段TS文件。
到達(dá)一定的時(shí)間間隔后,客戶端自動(dòng)計(jì)算第一個(gè)文件片段的下載速率,得知當(dāng)前下載速率較高,例如下載速率達(dá)到500Kbps,則根據(jù)第一次所獲取的碼率列表,改為向服務(wù)器請(qǐng)求256K的文件列表,服務(wù)器返回256K碼率視頻的文件串列表。
客戶端請(qǐng)求256K文件串列表中的第2個(gè)文件片段TS文件
再經(jīng)過一定時(shí)間間隔后,客戶端再次計(jì)算該文件片段的下載速率,并決定是否改變碼率。
注:客戶端參考的標(biāo)準(zhǔn)版本
• Microsoft IIS Smooth Streaming Client 1.1
• Apple HTTP Live Streaming draft-pantos-http-live-streaming-06, IETF
• Adobe Flash Video Specification 10.1