涂大喜 蔣宇浩 徐成 余林琛
摘 要:針對在動態(tài)網(wǎng)絡(luò)環(huán)境和有限緩存容量限制下用戶觀看視頻體驗質(zhì)量低的問題,提出一種綜合考慮帶寬和緩存因素的動態(tài)自適應(yīng)的HTTP流碼率漸進切換(DASBS)算法。首先,利用滑動窗口分析最近下載分片得到帶寬初步估值;然后,依據(jù)實時帶寬波動程度和緩存狀態(tài)設(shè)置雙矯正因子進一步平滑帶寬估值;最后,設(shè)置緩存閾值使其與當前碼率建立相關(guān)關(guān)系,并利用帶寬估值和緩存動態(tài)閾值共同控制碼率切換。使用libdash平臺驗證算法性能,DASBS在切換平滑性上優(yōu)于VQCQ(Video Quality Control for QoE)算法,視頻播放平均碼率更高,有效提高了帶寬利用率;平均碼率稍低于EABS(Evolution of Adaptive Bitrate Switching)算法時,切換次數(shù)得到大幅下降,整體切換穩(wěn)定性表現(xiàn)更優(yōu)。實驗結(jié)果表明,所提算法在動態(tài)網(wǎng)絡(luò)環(huán)境中具有帶寬高利用、切換平滑和切換穩(wěn)定的良好表現(xiàn),能夠有效改善用戶體驗。
關(guān)鍵詞:流媒體;碼率自適應(yīng);網(wǎng)絡(luò)帶寬;緩存容量;漸進切換
中圖分類號:TP391.41
文獻標志碼:A
文章編號:1001-9081(2019)04-1127-06
Abstract: Aiming at the problem of low quality of video viewing experience in dynamic network environment with limited cache capacity, a Dynamic Adaptive Step-wise Bitrate Switching (DASBS) algorithm for HTTP streaming considering network bandwidth and cache capacity was proposed. Firstly, a sliding window was used to analyze the recent downloaded fragments, obtaining the initial bandwidth estimation. Then, according to the real-time bandwidth fluctuation degree and cache state, two correction factors were set to further smooth the bandwidth estimation. Finally, a cache threshold was set to establish a correlation with the current bitrate, and the bandwidth estimation and the cache dynamic threshold were used to jointly control the bitrate switching. Experimental results on platform libdash show that DASBS is better than Video Quality Control for QoE (VQCQ) algorithm in switching smoothness and its average bitrate of video playback is higher, which effectively improves the bandwidth utilization. Although the average bitrate is slightly lower than that of Evolution of Adaptive Bitrate Switching (EABS) algorithm, the number of switching times is greatly reduced, improving the switching stability. The experimental results show that the proposed algorithm has high bandwidth utilization, switching smoothness and switching stability in dynamic network environment, which can effectively improve user experience.
Key words: streaming media; bitrate adaptation; network bandwidth; cache capacity; step-wise switching
0?引言
近年來,隨著移動互聯(lián)網(wǎng)和智能手機技術(shù)的迅速發(fā)展,多媒體業(yè)務(wù)在整個互聯(lián)網(wǎng)流量中占據(jù)越來越大的比重,視頻流量已經(jīng)成為互聯(lián)網(wǎng)上主要網(wǎng)絡(luò)流量。目前,由思科可視化網(wǎng)絡(luò)指數(shù)預(yù)測報告指出,到2020年,視頻流量將會占到所有消費者流量和內(nèi)容傳輸網(wǎng)絡(luò)流量的82%[1]。
傳統(tǒng)的流媒體傳輸技術(shù)以用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol, UDP)作為傳輸協(xié)議,流媒體報文穿透防火墻的能力較差,穿越網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Transport, NAT)網(wǎng)絡(luò)較為困難,并且采用特定的流媒體服務(wù)器需要額外的搭建成本[2]。而基于超文本傳輸協(xié)議(HyperText Transfer Protocol, HTTP)的流媒體傳輸技術(shù)采用傳輸控制協(xié)議(Transmission Control Protocol, TCP),利用TCP的可靠性、數(shù)據(jù)包容易通過防火墻和NAT網(wǎng)絡(luò)、系統(tǒng)部署配置簡單等特點,更易于適用于復(fù)雜的互聯(lián)網(wǎng)環(huán)境。因此近年來,TCP迅速取代了UDP成為了流媒體傳輸?shù)臉藴?。同時為了應(yīng)對大量高用戶體驗質(zhì)量(Quality of Experience, QoE)需求的挑戰(zhàn),基于HTTP的動態(tài)自適應(yīng)流(Dynamic Adaptive Streaming over HTTP, DASH)媒體技術(shù)作為有前途的解決方案之一,已經(jīng)受到了視頻服務(wù)提供商和學(xué)術(shù)研究的重視[3]。
部署在客戶端的自適應(yīng)碼率(Adaptive Bit-Rate)切換算法作為DASH技術(shù)的研究熱點,當下面臨的最大挑戰(zhàn)就是如何定義碼率自適應(yīng)邏輯來更好地滿足用戶QoE需求[4]。其研究方向主要分為三大類:基于帶寬的切換算法、基于緩存的切換算法以及基于帶寬和緩存等混合因素的切換算法??紤]單一因素的切換算法可能在充分利用帶寬和充分利用緩存兩者之間選擇一點具有高性能表現(xiàn)[5-8],而考慮混合因素的切換算法則重點在帶寬利用和緩存利用之間取得更佳均衡的表現(xiàn)[9-11]。
本文提出一種綜合考慮帶寬和緩存因素的動態(tài)自適應(yīng)的HTTP流碼率漸進切換(Dynamic Adaptive Step-wise Bitrate Switching, DASBS)算法,綜合考慮了網(wǎng)絡(luò)帶寬和緩存狀態(tài)兩種因素來動態(tài)選擇最合適的視頻碼率。以盡可能提升用戶QoE為目標, 本文算法利用滑動窗口分析最近下載的前W個分片,并采用指數(shù)加權(quán)方法對帶寬進行評估;接著,分別依據(jù)帶寬波動程度和緩存實時狀態(tài)設(shè)置矯正因子,對帶寬估值進行平滑化。本文算法在碼率切換時實現(xiàn)了逐級切換,并且在保證視頻平均碼率較高的基礎(chǔ)上,同時也較穩(wěn)定地控制了碼率切換次數(shù)。實驗結(jié)果表明,在模擬網(wǎng)絡(luò)頻繁變化的環(huán)境下,該切換算法具有帶寬高利用、碼率切換平滑和碼率切換穩(wěn)定的良好表現(xiàn)。
1?相關(guān)工作
碼率自適應(yīng)算法在DASH中是一個新興活躍的研究領(lǐng)域。同時DASH標準并沒有提供任何碼率自適應(yīng)邏輯或指定算法,它允許播放客戶端實現(xiàn)專有優(yōu)化算法來適應(yīng)終端設(shè)備和網(wǎng)絡(luò)條件。因此,許多商業(yè)和開源的DASH客戶端都研究并采用各種不同的碼率適應(yīng)算法[12],其中具有代表性的碼率自適應(yīng)切換算法主要分為三類:基于帶寬的切換算法、基于緩存的切換算法以及基于帶寬和緩存等混合因素的切換算法。
基于帶寬的自適應(yīng)算法如VLC(Video LAN Client)算法[5],它采用當前已下載視頻分片下載速度均值作為當前帶寬的估算結(jié)果,以帶寬估值為參考因素選擇下一個分片的最佳碼率。該算法通過用下載速度均值來預(yù)測帶寬,在一定程度上平滑了帶寬抖動的影響。但也因為采用均值估測,使得帶寬的變化趨勢較真實帶寬具有滯后性。Li等[6]提出的Panda算法則是通過“探測和適應(yīng)”機制在客戶端對TCP吞吐量進行預(yù)測,然后適應(yīng)網(wǎng)絡(luò)帶寬來選擇合適的分片碼率。該算法顯著提高了碼率選擇的穩(wěn)定性,但在帶寬狀態(tài)持續(xù)良好或急劇惡化時,客戶端緩存區(qū)會出現(xiàn)溢出。
基于緩存的自適應(yīng)算法側(cè)重于對當前緩存狀態(tài)的持續(xù)監(jiān)測,并依據(jù)不同緩存狀態(tài)采取相應(yīng)碼率適應(yīng)策略。Le等[7]利用實際分段下載時間和緩沖區(qū)實時水平進行比較來進行碼率控制;Spiteri等[8]提出一種不需要任何網(wǎng)絡(luò)帶寬預(yù)測,僅通過當前緩存區(qū)大小狀態(tài)來設(shè)置相關(guān)控制參數(shù)進行碼率選擇的算法。這類方法雖然避免了帶寬估計不準帶來的風(fēng)險,卻也同時會因為緩存狀態(tài)時刻跌宕變化而經(jīng)常觸發(fā)切換動作,這樣頻繁的碼率切換會造成對用戶QoE的影響。
基于帶寬和緩存等混合因素的自適應(yīng)算法是指在選擇不同碼率分片時,同時考慮帶寬和緩存等因素的影響。Lee等[9]提出一種考慮帶寬和緩存的視頻質(zhì)量控制方法——VQCQ(Video Quality Control for QoE),基于帶寬和緩存的碼率切換算法,其通過比較帶寬估值和當前分片碼率、緩存區(qū)剩余時長和下一分片預(yù)估下載時長兩組判斷條件來進行碼率的上升或下調(diào)。該算法對帶寬波動具有較高敏感度,缺點是在帶寬穩(wěn)定只發(fā)生短暫波動時依舊會觸發(fā)切換動作,算法切換穩(wěn)定性有待提升。Müller等[10]將緩存容量分級,不同級別對應(yīng)不同帶寬預(yù)測系數(shù),通過前一分片下載速度與當前緩存級別對應(yīng)預(yù)測系數(shù)結(jié)合來決定下一分片的碼率選擇。該算法同時衡量帶寬因素和緩存因素,提出了一種自適應(yīng)切換算法的改進算法——EABS(Evolution of Adaptive Bitrate Switching),有效地提高了帶寬利用率,但緩存利用相對較低。陳立偉等[11]通過設(shè)置緩存上溢閾值和緩存下溢閾值,調(diào)節(jié)視頻碼率使緩存狀態(tài)處于均衡范圍內(nèi);并依照帶寬狀況設(shè)置不同碼率調(diào)節(jié)策略:保守方法單級別提升視頻碼率和利用logistics方程決定碼率下調(diào)幅度。該算法能較好地平衡緩存狀態(tài)和網(wǎng)絡(luò)帶寬之間的關(guān)系來選擇合適的碼率;但是在網(wǎng)絡(luò)狀況阻塞加劇時,其碼率下調(diào)幅度也會無法避免地急劇增大。
本文提出的DASBS算法通過權(quán)衡帶寬狀態(tài)和緩存狀態(tài)兩種因素來選擇最合適的視頻碼率。該算法主要分為帶寬評估和碼率切換兩大模塊。帶寬評估模塊先通過滑動窗口、指數(shù)加權(quán)等機制得到初步帶寬估值,然后通過帶寬波動影響因子和緩存狀態(tài)影響因子對帶寬估值再次進行矯正,避免緩存下溢風(fēng)險和帶寬的不充分利用;碼率切換模塊通過設(shè)置動態(tài)緩存閾值,并將切換策略與緩存閾值建立相關(guān)關(guān)系,動態(tài)調(diào)控碼率進行漸進式上升/下降,實現(xiàn)碼率平滑切換以及緩存狀態(tài)維持均衡。
2?自適應(yīng)碼率切換算法
2.1?系統(tǒng)模型
基于HTTP的動態(tài)自適應(yīng)流媒體技術(shù)的系統(tǒng)架構(gòu)如圖1所示,本文提出的自適應(yīng)切換算法也適用于在圖示系統(tǒng)中的DASH流媒體客戶端模塊。在流媒體服務(wù)器端,視頻內(nèi)容被編碼成不同碼率的多個版本。每種碼率的視頻被分割成多個小視頻分片,每段分片包含幾秒鐘的視頻;并且在時間線上各種碼率的視頻分片相互對齊,以便于客戶端在需要的時候平穩(wěn)地在不同碼率之間進行切換。與視頻分片同時生成的還有媒體描述文件(Media Presentation Description, MPD),用來描述每個視頻分片持續(xù)時間、有多少個碼率等級、視頻資源統(tǒng)一資源定位符(Uniform Resource Locator, URL)等信息[13]。流媒體客戶端通過接收到MPD后,會調(diào)用碼率自適應(yīng)切換算法來評估網(wǎng)絡(luò)狀況等因素,然后動態(tài)地選擇最合適的碼率分片下載到本地進行播放。
2.2?算法目標
碼率自適應(yīng)的目的是為了在有限網(wǎng)絡(luò)帶寬、網(wǎng)絡(luò)狀態(tài)發(fā)生波動的環(huán)境下,動態(tài)選擇最合適的播放碼率,為用戶提供最佳視頻質(zhì)量服務(wù)的同時,最大化地滿足用戶QoE。而優(yōu)化用戶QoE可以考慮從以下幾個目標著手[14]:1)視頻播放過程中不能出現(xiàn)卡頓現(xiàn)象;
2)視頻的平均碼率盡量地高,要最大化視頻質(zhì)量;
3)碼率切換次數(shù)盡可能少,碼率選擇要具有穩(wěn)定性;
4)碼率切換時盡量逐級切換,切換過程具有平滑性;
5)視頻的啟動時延盡量低。
其中:視頻卡頓現(xiàn)象對用戶QoE帶來的影響最大,所以在網(wǎng)絡(luò)和緩存狀態(tài)惡劣時, 本文算法會通過矯正因子適當?shù)乜s小帶寬估值、動態(tài)增難碼率上調(diào)條件等方式,首先確保客戶端緩存區(qū)容量不會發(fā)生下溢。同時為了充分利用帶寬、最大化視頻質(zhì)量來提升用戶QoE,也設(shè)有矯正因子適當?shù)胤糯蠊浪銕?、動態(tài)增難碼率下調(diào)條件等方式并來避免緩存區(qū)上溢發(fā)生。同時提出建立在動態(tài)緩存閾值上的碼率切換策略, 對切換次數(shù)和切換平滑程度進行有效控制,保證用戶觀看視頻服務(wù)過程不會發(fā)生畫質(zhì)劇烈變化,在一定程度上優(yōu)化用戶QoE。最后,視頻啟動時延取決于對前幾視頻分片的選取策略,為了盡可能減小啟動時延并規(guī)避起始帶寬不佳發(fā)生卡頓的風(fēng)險, 本文算法對最初幾片進行最低碼率下載,快速激活算法控制機制,為用戶QoE提供保障。
2.3?算法提出
本文提出的切換算法將帶寬狀態(tài)和緩存狀態(tài)作為碼率自適應(yīng)的主要參數(shù)。算法由帶寬評估和碼率切換兩個主要模塊組成,首先由帶寬評估模塊根據(jù)已下載視頻分片的下載速率及當前緩存區(qū)容量來對當前的帶寬進行評估;然后,由碼率切換模塊根據(jù)評估出的帶寬依照碼率切換策略選擇能最大化用戶體驗的視頻分片進行下載。
帶寬評估模塊包含了三個步驟:首先,實現(xiàn)初始帶寬評估;其次,衡量真實帶寬波動程度對于帶寬評估結(jié)果的影響并對估值進行矯正;最后,衡量緩存區(qū)狀態(tài)對于帶寬評估結(jié)果的影響并對估值進行矯正。下面詳細描述這三個過程。
1)初步評估帶寬。
該模塊設(shè)置可觀察W個視頻分片的滑動窗口,考慮其中最近下載的W個分片,并且采用指數(shù)權(quán)重的方法為不同視頻分片的下載速率賦予了不同的權(quán)重,剛下載的視頻分片權(quán)重較高,早已下載好的視頻分片權(quán)重則偏低,這樣使評估結(jié)果更接近真實帶寬。
2)衡量帶寬狀態(tài)影響。
其中: μs2為本模塊對評估帶寬進行適當矯正之后的結(jié)果。當前W個視頻分片下載速率在均值附近輕微抖動時,真實帶寬比較穩(wěn)定,此時ρv會趨向于1,這種情況下式(6)對評估出的帶寬μs矯正幅度較小;相反地,當θ較大時, ρv會趨向于其下界ρv,此時對評估出的帶寬μs的矯正幅度較大,能盡量避免帶寬急劇抖動時帶來的緩存溢出風(fēng)險。本文算法中ρv取0.3。
3)衡量緩存狀態(tài)影響。
當緩存區(qū)容量接近下溢時,為了減小播放卡頓的風(fēng)險并快速填充緩沖區(qū),需要對帶寬估值進行縮小矯正從而選擇低碼率分片;當緩存區(qū)容量接近上溢時,需要對帶寬估值進行放大矯正從而選擇高碼率分片,以避免緩存區(qū)飽和導(dǎo)致無法充分利用帶寬。
其中: μs3為最終帶寬估值用于碼率切換模塊選擇合適碼率。本文算法中ρb取值1.5,而ρb取值0.4。
碼率切換是本文算法的另一個重要模塊,完成緩存區(qū)容量閾值的動態(tài)設(shè)定和具體切換策略的設(shè)置,下面詳細描述。
1)緩存區(qū)容量閾值。
在碼率切換模塊中,碼率選擇在以帶寬估值作為判斷條件的同時,還動態(tài)設(shè)置了緩存區(qū)容量閾值條件:分別為碼率上切閾值和碼率下切閾值。需要同時滿足帶寬和緩存的兩組條件時,才會觸發(fā)碼率切換策略。
其中:Bup代表碼率向上切換的閾值;Rk代表第k個視頻質(zhì)量級別所對應(yīng)的碼率;Bmax代表緩存區(qū)的最大容量;L代表最高的視頻質(zhì)量級別;RL則是視頻分片碼率集中最高碼率;Rcur表示當前碼率值;Rcur+1則表示比當前碼率值高一級的碼率。Bup由當前視頻分片碼率動態(tài)決定,只有緩存區(qū)容量大于Bup時,碼率切換模塊才可能選擇較高質(zhì)量的視頻分片去下載。
其中:Bdown代表碼率向下切換的動態(tài)閾值,只有當緩存區(qū)長度小于Bdown時,碼率切換模塊才可能選擇較低質(zhì)量的視頻分片去下載。
2)碼率切換策略。
定義當下載視頻分片的個數(shù)小于或等于φ時屬于快啟動階段,碼率切換模塊會直接選擇最低質(zhì)量視頻分片進行下載,盡可能去降低啟動時延,同時也盡快填充緩存區(qū),避免緩存區(qū)下溢。定義當下載視頻分片個數(shù)大于φ時進入漸進切換階段,在漸進切換階段設(shè)置三組觸發(fā)條件:策略碼率向上逐級切換條件如下:μs3>Rcur+1 & Bcur[i]>Bup(11)
當緩存區(qū)容量比向上切換閾值Bup大,同時帶寬估算結(jié)果比當前播放質(zhì)量高一梯度還高時,此時才會選擇比當前播放質(zhì)量高一梯度視頻分片進行平滑上切。
當緩存區(qū)容量比向下切換閾值Bdown小,同時帶寬估算結(jié)果低于當前視頻播放質(zhì)量時,才會選擇低于當前視頻質(zhì)量一個梯度的視頻分片平滑下切。
3?實驗與結(jié)果分析
3.1?實驗環(huán)境
本文以MPEG-DASH標準的參考平臺libdash[15]作為算法實驗平臺,通過在客戶端部署不同的碼率自適應(yīng)算法,分別對本文DASBS算法、VQCQ算法[9]和EABS算法[10]進行比較。
實驗采用的視頻是Big Buck Bunny(https://peach.blender.org/),視頻時長為300s,一共150個視頻分片,每個視頻分片時長2s。流媒體視頻可供選擇的碼率有10種,編碼碼率集合為{200,400,600,800,1000,1200,1400,1600,1800,2000}(單位為kb/s)。實驗采用的最大緩存區(qū)容量為30 s,并且通過結(jié)合算法理論和實踐測試,最終設(shè)置相關(guān)參數(shù)如下:快啟動分片數(shù)φ=5,滑動窗口W=5,權(quán)值系數(shù)ω=0.4,帶寬矯正因子下界ρv=0.3,緩存矯正因子下界ρb=0.4,緩存矯正因子上界ρb=1.5。
3.2?網(wǎng)絡(luò)設(shè)定
為了模擬用戶在實際視頻點播過程中常見的網(wǎng)絡(luò)波動情景,實驗定義了兩種帶寬變化曲線。場景1主要用于模擬帶寬階梯上升和帶寬階梯下降的情況。如圖3中實線所示,該場景的初始帶寬為500kb/s,并將其維持50s;50~100s時,帶寬被更改為1000kb/s;100~200s時帶寬被設(shè)定為1600kb/s;200~300s這一階段帶寬的變化趨勢與0~100s的變化趨勢正好相反,在200~250s的區(qū)間內(nèi),帶寬被設(shè)定為1000kb/s,250~300s時帶寬則被設(shè)定為500kb/s。場景2模擬了網(wǎng)絡(luò)帶寬發(fā)生突然變化的情況。如圖3虛線所示,在該場景中帶寬在0~60s、66~166s、172~300s為帶寬穩(wěn)定周期,帶寬水平分別保持在800kb/s、1200kb/s、1200kb/s;在60~66s發(fā)生第一次突變,帶寬水平驟降為400kb/s;在166~172s發(fā)生第二次突變,帶寬水平上升為1600kb/s。
3.3?網(wǎng)絡(luò)場景1的實驗結(jié)果
當模擬帶寬是第一種情況時,本文DASBS算法與VQCQ算法進行比較,運行情況如圖4所示,其中圖4(a)為選擇的分片碼率隨時間的變化曲線,圖4(b)為緩存狀態(tài)隨時間的變化曲線。
如圖4(a)碼率變化曲線所示,在評估帶寬階段加入了滑動窗口、指數(shù)權(quán)重以及帶寬矯正因子等機制后,本文DASBS算法動態(tài)選擇的碼率能夠隨著帶寬階梯變化而變化。在視頻播放到50s、100s、200s和250s時網(wǎng)絡(luò)帶寬發(fā)生變化, 本文算法在作出相應(yīng)碼率調(diào)整動作時,逐級上升或者逐級下降來過渡到合適碼率級別,體現(xiàn)出了本文算法的切換平滑性;而VQCQ算法碼率選擇雖也隨帶寬階梯變化而變化,但其在切換上跨級較大,不夠平滑,并且整體帶寬利用更低。
如圖4(b)緩存變化曲線所示,VQCQ算法的緩存狀態(tài)會隨網(wǎng)絡(luò)帶寬下降而更快惡化,緩存下降速率過快容易導(dǎo)致緩存耗盡,造成播放卡頓;相反地,帶寬變化對DASBS算法的緩存曲線影響不大,其整體緩存區(qū)容量維持在較好水平,波動幅度較小。
同時在模擬帶寬是第一種情況的同時,將本文DASBS算法與EABS算法[10]對比。運行情況如圖5所示。
如圖5變化曲線所示:EABS算法能夠較好地利用帶寬,甚至選擇的碼率質(zhì)量會略高于當前帶寬,可其也會隨著緩存狀態(tài)的時刻變化而產(chǎn)生更多的碼率切換動作,所以EABS算法雖然帶寬利用率高,但是切換穩(wěn)定性不足。相比較之下,本文DASBS算法的切換策略能有效避免這些不必要的碼率切換,從DASBS算法碼率曲線就能體現(xiàn)出其在帶寬利用率和切換穩(wěn)定性之間取得較好平衡。在緩存變化方面,兩種算法的緩存曲線都比較穩(wěn)定,但DASBS算法緩存利用率相對更優(yōu)。
3.4?網(wǎng)絡(luò)場景2的實驗結(jié)果
當模擬帶寬是第二種情況時,本文DASBS算法與VQCQ算法[9]對比,運行情況如圖6所示。
如圖6中兩組曲線所示,前30s內(nèi)兩種算法均能快速啟動,填充緩沖區(qū)使碼率適配到相應(yīng)帶寬水平。但在60s時帶寬發(fā)生急劇惡化時,VQCQ算法的碼率選擇明顯受到影響致使碼率級別下調(diào);而本文DASBS算法則表現(xiàn)穩(wěn)定,然后在88s時刻,帶寬情況良好、緩存容量增加達到相應(yīng)閾值時碼率才逐級上調(diào)。接著在166s時刻帶寬二次發(fā)生短期波動,兩種算法均能較好地平滑后期帶寬短暫波動的影響;并且更在236s時DASBS算法因緩存容量持續(xù)增長達到下一動態(tài)閾值時碼率再次發(fā)生逐級上調(diào),能夠適配到更優(yōu)的碼率級別。相比之下,DASBS算法只犧牲了一點緩存利用,但在碼率切換上表現(xiàn)出更好的穩(wěn)定性,也擁有更好的帶寬利用率。
同時在模擬帶寬是第二種情況時,將本文DASBS算法與EABS算法[10]對比。運行情況如圖7所示。
從圖7可看出:視頻播放初期,EABS算法由于緩存變化較大致使碼率切換非常頻繁;DASBS算法則能較快填充緩存、逐級適配碼率到穩(wěn)定水平。后在60s和166s兩次帶寬突然變化時,EABS算法的緩存曲線和碼率曲線均在抖動附近發(fā)生明顯變化,而DASBS算法表現(xiàn)穩(wěn)定。同時整個播放過程中,EABS算法雖然具有很高帶寬利用率,但其碼率自適應(yīng)過程中切換次數(shù)非常頻繁、碼率跨越級別大,其碼率曲線表現(xiàn)出來的切換穩(wěn)定性和平滑性較差;而DASBS算法則在帶寬利用和緩存利用之間作出較好權(quán)衡,在稍微降低平均碼率的前提下,在碼率切換上大幅減少了碼率切換次數(shù),并使得碼率選擇逐級自適應(yīng),表現(xiàn)出了更好的穩(wěn)定性和平滑性。
4?結(jié)語
本文提出一種漸進切換的碼率自適應(yīng)切換算法,該算法基于帶寬和緩存兩種因素來動態(tài)選擇碼率;先通過滑動窗口及指數(shù)權(quán)重來得到初步帶寬估值,再設(shè)置帶寬波動矯正因子和緩存狀態(tài)矯正因子對其作用,使帶寬估值更接近實時帶寬;同時建立緩存閾值與碼率切換條件的相關(guān)關(guān)系,動態(tài)調(diào)整切換臨界來使切換更加穩(wěn)定平滑。實驗結(jié)果表明,在模擬網(wǎng)絡(luò)頻繁變化的環(huán)境下,該切換算法在碼率切換平滑性和穩(wěn)定性上具有顯著優(yōu)勢,同時也能保證帶寬及緩存較高利用率,這能夠更好地滿足用戶的QoE。但是隨著用戶在同一網(wǎng)絡(luò)下體驗自適應(yīng)流媒體視頻的概率提升,用戶間競爭資源的可能性提高,未來在設(shè)計碼率自適應(yīng)切換算法時需要盡量提升多用戶競爭資源時的觀看體驗。
參考文獻(References)
[1] Cisco. White paper: Cisco VNI forecast and methodology, 2015-2020[EB/OL]. [2017-08-14]. https://www.cisco.com/c/en/us/solutions/collateral/service-provider/.
[2] 夏勃, 林滸, 李鴻彬,等. 一種動態(tài)自適應(yīng)HTTP流媒體碼率切換算法[J]. 小型微型計算機系統(tǒng), 2015, 36(2): 275-279. (XIA B, LIN H, LI H B, et al. A dynamic adaptive HTTP streaming rate switching algorithm[J]. Journal of Chinese Computer Systems, 2015, 36(2): 275-279.)
[3] ZHAO S, LI Z, MEDHI D, et al. Study of user QoE improvement for dynamic adaptive streaming over HTTP (MPEG-DASH) [C]// Proceedings of the 2017 International Conference on Computing, Networking and Communications. Piscataway, NJ: IEEE, 2017: 566-570.
[4] MOK R K P, LUO X, CHAN E W W, et al. QDASH: a QoE-aware DASH system[C]// MMSys 2012: Proceedings of the 3rd Multimedia Systems Conference. New York: ACM, 2012: 11-22.
[5] TIMMERER C. A test-bed for the dynamic adaptive streaming over HTTP featuring session mobility[C]// MMSys 2011: Proceedings of the 2nd Annual ACM Conference on Multimedia Systems. New York: ACM, 2011: 271-276.
[6] LI Z, ZHU X, GAHM J, et al. Probe and Adapt: Rate adaptation for HTTP video streaming at scale[J]. IEEE Journal on Selected Areas in Communications, 2014, 32(4): 719-733.
[7] LE H T, NGUYEN D V, NGOC N P, et al. Buffer-based bitrate adaptation for adaptive HTTP streaming [C]// ATC 2013: Proceedings of the 2013 International Conference on Advanced Technologies for Communications. Piscataway, NJ: IEEE, 2013: 33-38.
[8] SPITERI K, URGAONKAR R, SITARAMAN R K. BOLA: near-optimal bitrate adaptation for online videos[C]// IEEE INFOCOM 2016: Proceedings of the 35th Annual IEEE International Conference on Computer Communications. Piscataway, NJ: IEEE, 2016: 1-9.
[9] LEE S, YOUN K, CHUNG K. Adaptive video quality control scheme to improve QoE of MPEG DASH[C]// Proceedings of the 2015 IEEE International Conference on Consumer Electronics. Piscataway, NJ: IEEE, 2015: 126-127.
[10] MLLER C, LEDERER S, TIMMERER C. An evaluation of dynamic adaptive streaming over HTTP in vehicular environments[C]// MoVid 2012: Proceedings of the 4th Workshop on Mobile Video. New York: ACM, 2012: 37-42.
[11] 陳立偉, 李國平, 滕國偉, 等. 基于HTTP流化的自適應(yīng)碼率混合控制算法[J]. 上海大學(xué)學(xué)報(自然科學(xué)版), 2014, 20(3): 313-320. (CHEN L W, LI G P, TENG G W, et al. Adaptive code rate hybrid control algorithm based on HTTP streaming[J]. Journal of Shanghai University (Natural Science), 2014, 20(3): 313-320.)
[12] KESAVAN S, JAYAKUMAR J. Improvement of adaptive HTTP streaming using advanced real-time rate adaptation [J]. Computers & Electrical Engineering, 2017, 58: 49-66.
[13] KUA J, ARMITAGE G, BRANCH P. A survey of rate adaptation techniques for dynamic adaptive streaming over HTTP[J]. IEEE Communications Surveys & Tutorials, 2017, 19(3): 1842-1866.
[14] 祝谷喬, 宋皓. MPEG-DASH與HLS流傳輸技術(shù)的比較分析[J]. 電信科學(xué), 2015, 31(4): 23-27. (ZHU G Q, SONG H. Comparative Analysis of MPEG-DASH and HLS streaming technology[J]. Telecommunications Science, 2015, 31(4): 23-27.)
[15] Libdash [EB/OL]. [2016-12-11]. https://github.com/bitmovin/libdash.