戚惠丹,李澤平
(貴州大學 計算機科學與技術(shù)學院,貴州 貴陽 550025)
DASH(dynamic adaptive streaming over HTTP)解決了傳統(tǒng)流媒體技術(shù)的不足和現(xiàn)有HTTP自適應(yīng)技術(shù)間的兼容性問題,并使HTTP自適應(yīng)解決方案達到統(tǒng)一。為了提高用戶觀看視頻的體驗質(zhì)量,本文提出一種基于DASH標準的視頻自適應(yīng)傳輸方案。
作為統(tǒng)一的國際化標準,DASH自制定以來,便引起各界研究學者的共同關(guān)注,眾多的研究人員投入到DASH的研究行列中來。文獻[1]提出一個無縫的高質(zhì)量的HTTP自適應(yīng)流算法,算法考慮了在異構(gòu)無線網(wǎng)絡(luò)中的無線網(wǎng)絡(luò)狀態(tài)和具有網(wǎng)絡(luò)成本約束的移動設(shè)備的能源消耗。文獻[2]提出一個使用機器學習技術(shù)在智能手機或平板上進行在線估計視頻敏銳度的框架,該框架能夠在移動設(shè)備上快速進行在線計算,從而精確的估計移動視頻的體驗質(zhì)量。文獻[3]考慮可擴展視頻在無線帶寬接入網(wǎng)絡(luò)基于DASH的傳輸,提出3種方式來提高無線DASH用戶的視頻體驗質(zhì)量,首先設(shè)計從可伸縮視頻編碼層到DASH層的映射方案;然后設(shè)計一種友好的DASH調(diào)度和資源分配算法;最后提出一種基于DASH代理的視頻碼率算法。文獻[4]提出一個固定間隔緩沖模型,每當媒體緩沖區(qū)大小在預(yù)設(shè)的間隔內(nèi)時,視頻碼率保持不變;另外,通過一種逐步向上切換的方式以防止緩沖區(qū)溢出,并基于中間質(zhì)量級別向下切換的方式來防止緩沖區(qū)下溢。
DASH是MPEG組織制定的一個技術(shù)標準,該標準旨在支持一個媒體流模型,該模型交付媒體內(nèi)容的控制權(quán)完全在客戶端,客戶端使用HTTP協(xié)議從沒有特定DASH功能的web服務(wù)器請求數(shù)據(jù)。DASH的基本原理:服務(wù)器端存儲將原始視頻資源生成同一內(nèi)容、不同碼率的視頻分片和相應(yīng)的MPD索引文件,客戶端根據(jù)當前網(wǎng)絡(luò)狀況等因素向服務(wù)器請求相應(yīng)碼率的視頻分片進行播放。圖1[5]形象展示了DASH的基本原理。
圖1 DASH的基本原理
當播放視頻內(nèi)容時,DASH客戶端通過獲取并解析MPD文件,向服務(wù)器請求合適碼率的視頻分片。通過適當?shù)木彌_,客戶端在適應(yīng)了網(wǎng)絡(luò)帶寬變化后,并同時監(jiān)測網(wǎng)絡(luò)帶寬的波動,根據(jù)其測量結(jié)果,繼續(xù)獲取后面的視頻分片,以保持緩沖區(qū)有足夠的緩沖內(nèi)容。
MPD文件格式和視頻分片Segment是DASH技術(shù)標準的重要內(nèi)容,沒有這兩個文件,客戶端和服務(wù)器端將無法交互。
為了提高用戶觀看視頻的體驗質(zhì)量,DASH碼率自適應(yīng)算法是DASH技術(shù)標準的一個研究熱點。本節(jié)提出基于視頻分片的碼率自適應(yīng)算法,并將其與兩種典型的碼率自適應(yīng)算法進行驗證比較。
很多DASH碼率自適應(yīng)算法在估計下一個視頻分片碼率的過程中,只考慮緩沖區(qū)或帶寬,沒有考慮到視頻分片。文獻[6-8]經(jīng)過驗證,視頻分片的持續(xù)時間影響用戶的體驗質(zhì)量,現(xiàn)就文獻[8]的驗證情況進行說明。
兩個不同的客戶端向服務(wù)器端請求相同內(nèi)容但不同時長的視頻分片。經(jīng)過反復實驗,得到兩個客戶端請求的視頻分片時長,見表1。
MPEG-DASH中的每個Quality Profile與特定的QoE水平相關(guān)聯(lián),換言之,較高的Quality Profile對應(yīng)較高的QoE水平,因此,使用Quality Profile通過式(1)和式(2)得出用戶的體驗質(zhì)量
表1 兩個客戶端獲取的視頻分片時長
(1)
wi=count(QP1,…QPi)/n
(2)
其中,wi為第i個QP的權(quán)值,qi為第i個Quality Profile中接收的視頻分片的比率,n為QP的數(shù)量。
兩個客戶端的QoE的度量結(jié)果見表2。
表2 由視頻分片時長得出的QoE結(jié)果
實驗結(jié)果表明,視頻分片的不同時長帶給用戶不同的體驗質(zhì)量,較長的視頻分片持續(xù)時間帶給用戶較高的體驗質(zhì)量。鑒于此,在文獻[9,10]的基礎(chǔ)上,提出基于視頻分片的碼率自適應(yīng)算法。
本節(jié)提出的基于視頻分片的碼率自適應(yīng)算法(rate ada-ptation algorithm based on segment,RAAS)在文獻[9,10]的基礎(chǔ)上考慮了視頻分片的持續(xù)時間,因此,算法共考慮帶寬、緩沖區(qū)和視頻分片的持續(xù)時間3個因素。
(1)算法描述
一般情況下,將視頻劃分為1 s、2 s、4 s、6 s、10 s或15 s的視頻分片。根據(jù)2.1節(jié)的驗證結(jié)論可知,較長的視頻分片時長帶給用戶較高的視頻體驗質(zhì)量,所以該算法獲取視頻分片中取持續(xù)時間最長的視頻分片。
算法的緩沖區(qū)與3個閾值有關(guān),即I(默認為2)、Bα和Bβ,如圖2所示。閾值的定義與視頻分片的數(shù)量有關(guān)。
圖2 算法緩沖區(qū)
當緩沖區(qū)內(nèi)視頻分片的數(shù)量小于I時,獲取最低碼率的視頻分片。一旦緩沖區(qū)內(nèi)視頻分片的數(shù)量大于I,算法根據(jù)帶寬狀態(tài)開始碼率自適應(yīng)。當BcurrBβ時,仍然獲取最高碼率的視頻分片,但算法會在視頻分片的數(shù)量小于Bβ時才發(fā)送對下一個視頻分片的請求,以避免在用戶提前退出觀看視頻的情況下獲取不必要的視頻分片。
算法使用媒體分片的持續(xù)時間(media segment time,MSD)與視頻分片的獲取時間(sengmen fetch time,SFT)的比值μ進行帶寬估計,如式(3)所示
μ=MSD/SFT
(3)
如果μ>1+ε,則提高下一個視頻分片的碼率,ε為提高視頻碼率的一個因子;如果μ<γd,則降低下一個視頻分片的碼率,γd為降低視頻碼率的閾值;如果帶寬接近先前的帶寬,則視頻碼率保持不變。
(2)算法的步驟
算法的步驟如下所示。
1)輸入
Rprev:先前的視頻碼率
Bcurr:當前緩沖區(qū)占用量
I、Bα、Bβ:緩沖區(qū)的3個閾值
Segduration:視頻分片的持續(xù)時間
ε:視頻碼率向上切換的因子
γd:降低視頻碼率的閾值
2)算法的執(zhí)行過程
RAAS的執(zhí)行過程如圖3所示。
3)輸出
Rnext:下一個視頻分片的碼率
圖3 算法RAAS的執(zhí)行過程
碼率自適應(yīng)算法的好壞決定用戶觀看視頻體驗質(zhì)量的好壞。在文獻[9,10]的基礎(chǔ)上,本文提出了基于視頻分片的碼率自適應(yīng)算法,文獻[9]是基于緩沖區(qū)的碼率自適應(yīng)算法(buffer-based algorithm,BBA),文獻[10]是基于帶寬的碼率自適應(yīng)算法(throughput-based adaptive bit-rate algorithm,TBA)。為了驗證3種算法對用戶觀看視頻的體驗質(zhì)量的管理能力,使用視頻碼率切換的次數(shù)、碼率切換的極性和視頻達到最高視頻碼率的收斂時間[11]來表示算法性能。
(1)實驗環(huán)境
實驗主要包括3部分:Web服務(wù)器、網(wǎng)絡(luò)仿真和DASH客戶端。DASH客戶端使用開源軟件AStream,AStream的源碼可以從GitHub上下載[12]。DASH客戶端通過從服務(wù)器上下載并解析MPD文件進行啟動。為了驗證算法在不同網(wǎng)絡(luò)條件下的性能,網(wǎng)絡(luò)仿真使用DammyNet配置服務(wù)器和客戶端之間的可用帶寬,從而模擬不同的網(wǎng)絡(luò)環(huán)境。
(2)帶寬狀態(tài)
基于以下3種帶寬[13]驗證算法。
1)固定帶寬(fixed bandwidth):這種情況下,在客戶端和服務(wù)器之間的帶寬限制為0.5 Mbps、1 Mbps、4 Mbps或6 Mbps。選擇的這些帶寬值可以覆蓋低帶寬網(wǎng)絡(luò)環(huán)境。
2)帶寬短暫中斷(short interruptions):對于1)中列出的不同帶寬,在網(wǎng)絡(luò)數(shù)據(jù)傳輸過程中,當帶寬低于0.005 Mbps 時有多個短暫中斷,每個中斷持續(xù)10 s。
3)帶寬長時間中斷(long interruptions):對于長時間中斷,當帶寬低于0.005 Mbps時有3個1 min的中斷。
(3)驗證結(jié)果
在以上所述的3種帶寬狀態(tài)下,算法的驗證結(jié)果如下所示。
1)結(jié)果一:不同帶寬情況下,碼率切換事件的次數(shù)雖然DASH通過切換視頻碼率確保視頻在播放過程中沒有中斷,但頻繁的視頻切換會降低用戶的體驗質(zhì)量。
當最大帶寬設(shè)置為4 Mbps時,在不同帶寬情況下觀察到的視頻碼率切換事件的次數(shù)如圖4所示。在視頻播放過程中,碼率切換次數(shù)越少,用戶體驗質(zhì)量越高。在固定帶寬和短暫中斷兩種場景下,BBA和TBA的碼率切換次數(shù)相似;在長時間中斷場景下,TBA的碼率切換次數(shù)變化很大,BBA變化不大。而RAAS不管在哪種場景下,碼率切換次數(shù)明顯少于BBA和TBA,且?guī)缀鯖]有變化,所以,從碼率切換事件的次數(shù)來看,RAAS顯然能夠提高用戶的體驗質(zhì)量。
圖4 碼率切換的次數(shù)
2)結(jié)果二:帶寬長時間中斷情況下,碼率切換的極性碼率切換的極性即碼率向上切換或向下切換。
最大帶寬設(shè)置為1 Mbps和6 Mbps,當帶寬長時間中斷時,碼率切換的極性如圖5所示。由于碼率自適應(yīng)算法在碼率切換的過程中是逐步提高視頻碼率和迅速降低視頻碼率的,所以觀察到的結(jié)果大多數(shù)是視頻碼率向上切換。從驗證結(jié)果來看,RAAS向上切換和向下切換的次數(shù)變化不大,且少于BBA和TBA,因此RAAS帶給用戶較高的體驗質(zhì)量。
圖5 碼率切換的極性
3)結(jié)果三:達到最高視頻質(zhì)量的收斂時間
在任何網(wǎng)絡(luò)帶寬下,達到最高碼率花費的時間稱為收斂時間。
對于依靠緩沖區(qū)占用量來確定最合適碼率的BBA來說,達到最高視頻碼率的收斂時間較長。在本次實驗中,緩沖區(qū)的大小為240 s(文獻[5]推薦),BBA直到等待到90%(216 s)的緩沖區(qū)已滿才能切換到最高碼率的視頻。然而,對于RAAS來說,由于考慮到視頻分片的持續(xù)時間,所以能夠使RAAS更加精確的估計下一個視頻分片的下載速率,這可以促使視頻能夠較快的達到最高碼率。如圖6所示,在3種帶寬情況下,RAAS的收斂時間明顯優(yōu)于TBA和BBA。
圖6 收斂時間
4)驗證結(jié)論
從以上算法的驗證結(jié)果來看,RAAS具有較低的碼率切換事件、更高的視頻質(zhì)量和更快的收斂時間,其性能明顯優(yōu)于TBA和BBA。
通過構(gòu)建DASH播放器已經(jīng)實現(xiàn)視頻的自適應(yīng)傳輸,但為了進一步提高用戶觀看視頻的體驗質(zhì)量,將本文提出的基于視頻分片的碼率自適應(yīng)算法應(yīng)用到DASH播放器中。
DASH-IF提供了開源的MPEG-DASH播放器框架dash.js,dash.js是用JavaScript編寫的開源的MPEG-DASH視頻播放器框架,可以在任何支持W3C媒體源擴展(MSE)的瀏覽器中提供MPEG-DASH播放。dash-js提供了比較全面的DASH標準支持,因此,使用dash.js在網(wǎng)頁中構(gòu)建DASH播放器,構(gòu)建過程如圖7所示。
圖7 構(gòu)建DASH播放器過程
Dash.js主要有3個核心模塊,即視頻分片請求模塊、基本緩沖區(qū)模塊和帶寬估計模塊,3個模塊的相互交互實現(xiàn)了視頻碼率的自適應(yīng)。RAAS算法的實現(xiàn)類RaasAction.java需要獲取這3個模塊的參數(shù),例如:視頻分片的持續(xù)時間segmentDuTime、緩沖區(qū)的占用量bufferOccupancy、帶寬的大小bandwidth等參數(shù),然后將這些參數(shù)應(yīng)用到預(yù)測下一個視頻分片的碼率的方法estimateSegment()中。
DASH功能的實現(xiàn)需要客戶端和服務(wù)器端的交互,DASH客戶端構(gòu)建完成后,還需要生成服務(wù)器端DASH媒體內(nèi)容和MPD文件。
DASH支持兩種視頻標準:MPEG-4和MPEG-2 TS,所以需要將原始視頻進行編碼,實驗將原始視頻編碼為MP4格式,主要原因如下所示。
(1)MP4是一種輕量級容器格式,開銷少;
(2)MP4更容易被解析;
(3)MP4基于廣泛使用的標準,可以使第三方更直接的采用和支持;
(4)MP4的設(shè)計考慮了H.264視頻編碼器的支持。
視頻編碼完成以后,使用MP4Box的dash相關(guān)命令將MP4視頻文件生成DASH視頻分片和MPD文件。通過名為medical_news.mp4的視頻文件為例說明最終生成的視頻分片segments和MPD文件。
medical_news.mp4生成兩個representation、一個MPD文件medical_news.mpd和一個視頻初始化文件medical_news_init.mp4。
medical_news.mpd文件對生成的視頻分片的部分描述信息如下所示。
…… media="medical_news_1_1369377/medical_news_segmemt_15.m4s"/>
……
客戶端通過解析MPD文件,根據(jù)當前網(wǎng)絡(luò)狀況等因素向服務(wù)器請求相應(yīng)碼率的視頻分片進行播放。
使用測試數(shù)據(jù)big buck bunny(動畫片)、Of Forest and Men(紀錄片)、The Swiss Account(體育片)和Valkaama(電影)[14]驗證搭建的DASH平臺,測試結(jié)果表明,不管是哪種類型的數(shù)據(jù),視頻都能進行DASH播放。在DASH播放的過程中,以測試數(shù)據(jù)big buck bunny為例,來說明視頻在播放的某個時間段DASH平臺根據(jù)當時的帶寬狀態(tài)選擇視頻分片碼率的自適應(yīng)情況,如圖8所示。
圖8 某時間段視頻碼率的自適應(yīng)狀態(tài)
圖8中共有3條線,上面波動的線為estimated bandwidth,下面波動的線為根據(jù)estimated bandwidth而選擇的representation bandwidth,垂直的線表示視頻的播放時間,隨著視頻的播放或暫停而前進或停止。在播放當前視頻分片的同時,DASH客戶端已經(jīng)估計好了下一個視頻分片所處的帶寬狀態(tài)和要獲取的合適的視頻碼率。
從驗證結(jié)果來看,該方案實現(xiàn)了視頻的DASH自適應(yīng)傳輸,由于算法RAAS考慮了視頻分片的持續(xù)時間,所以該方案能夠更加精確預(yù)測下一個視頻分片的碼率,從而進一步提高了用戶觀看視頻的體驗質(zhì)量。
本文基于DASH標準提出了一種視頻自適應(yīng)傳輸方案。該方案中提出的基于視頻分片的碼率自適應(yīng)算法考慮了視頻分片的持續(xù)時間,從而進一步提高了用戶觀看視頻的體驗質(zhì)量。經(jīng)過驗證,該方案不僅解決了傳統(tǒng)流媒體技術(shù)無法根據(jù)實時變化的帶寬自適應(yīng)調(diào)整視頻碼率的問題,而且能夠更加精確預(yù)測下一個視頻分片的碼率,具有重要的理論和應(yīng)用價值。下一步的工作主要是優(yōu)化服務(wù)器端的數(shù)據(jù)存儲空間,實現(xiàn)服務(wù)器的負載均衡。
[1]Go Y,Kwon OC,Song H.An energy-efficient HTTP adaptive video streaming with networking cost constraint over hete-rogeneous wireless networks[J].IEEE Transactions on Multimedia,2015,17(9):1646-1657.
[2]Baik E,Pande A,Stover C,et al.Video acuity assessment in mobile devices[C]//IEEE Conference on Computer Communica-tions,2015:1-9.
[3]Zhao M,Gong X,Liang J,et al.QoE-driven cross-layer optimization for wireless dynamic adaptive streaming of scalable vi-deos over HTTP[J].IEEE Transactions on Circuits and Systems for Video Technology,2015,25(3):451-465.
[4]Cao Y,You X,Wang J,et al.A QoE friendly rate adaptation method for DASH[C]//IEEE International Symposium on Broadband Multimedia Systems and Broadcasting,2014:1-6.
[5]Kim S,Yun D,Chung K.Video quality adaptation scheme for improving QoE in HTTP adaptive streaming[C]//International Conference on Information Networking,2016:201-205.
[6]Villa B J,Heegaard P E.Group based traffic shaping for adaptive HTTP video streaming by segment duration control[C]//IEEE 27th International Conference on Advanced Information Networking and Applications,2013:830-837.
[7]Nguyen D M,Tran L B,Le H T,et al.An evaluation of segment duration effects in HTTP adaptive streaming over mobile networks[C]//2nd National Foundation for Science and Technology Development Conference on Information and Computer Science,2015:248-253.
[8]Sideris A,Markakis E,Zotos N,et al.MPEG-DASH users’ QoE:The segment duration effect[C]//Seventh International Workshop on Quality of Multimedia Experience,2015:1-6.
[9]Te Yuan Huang,Ramesh Johari,Nick McKeown,et al.A buffer-based approach to rate adaptation:Evidence from a large video streaming service[C]//SIGCOMM Comput Commun Rev,2014:187-198.
[10]Dongeun Suh,Insun Jang,Sangheon Pack.QoE-enhanced adaptation algorithm over DASH for multimedia streaming[C]//The International Conference on Information Networking,2014:497-501.
[11]Juluri P,Tamarapalli V,Medhi D.SARA:Segment aware rate adaptation algorithm for dynamic adaptive streaming over HTTP[C]//IEEE International Conference on Communication Workshop,2015:1765-1770.
[12]AStream:A rate adaptation model for DASH[EB/OL].[2015-05-27].http://github.com/pari685/AStream.
[13]Julur P,Tamarapalli V,Medhi D.QoE management in DASH systems using the segment aware rate adaptation algorithm[C]//IEEE/IFIP Network Operations and Management Symposium,2016:129-136.
[14]DASHDataset[EB/OL].[2014-10-16].http://www-itec.uni-klu.ac.at/dash/?page_id=6.