戚惠丹,李澤平
(貴州大學 計算機科學與技術學院,貴州 貴陽 550025)
DASH(dynamic adaptive streaming over HTTP)解決了傳統流媒體技術的不足和現有HTTP自適應技術間的兼容性問題,并使HTTP自適應解決方案達到統一。為了提高用戶觀看視頻的體驗質量,本文提出一種基于DASH標準的視頻自適應傳輸方案。
作為統一的國際化標準,DASH自制定以來,便引起各界研究學者的共同關注,眾多的研究人員投入到DASH的研究行列中來。文獻[1]提出一個無縫的高質量的HTTP自適應流算法,算法考慮了在異構無線網絡中的無線網絡狀態和具有網絡成本約束的移動設備的能源消耗。文獻[2]提出一個使用機器學習技術在智能手機或平板上進行在線估計視頻敏銳度的框架,該框架能夠在移動設備上快速進行在線計算,從而精確的估計移動視頻的體驗質量。文獻[3]考慮可擴展視頻在無線帶寬接入網絡基于DASH的傳輸,提出3種方式來提高無線DASH用戶的視頻體驗質量,首先設計從可伸縮視頻編碼層到DASH層的映射方案;然后設計一種友好的DASH調度和資源分配算法;最后提出一種基于DASH代理的視頻碼率算法。文獻[4]提出一個固定間隔緩沖模型,每當媒體緩沖區大小在預設的間隔內時,視頻碼率保持不變;另外,通過一種逐步向上切換的方式以防止緩沖區溢出,并基于中間質量級別向下切換的方式來防止緩沖區下溢。
DASH是MPEG組織制定的一個技術標準,該標準旨在支持一個媒體流模型,該模型交付媒體內容的控制權完全在客戶端,客戶端使用HTTP協議從沒有特定DASH功能的web服務器請求數據。DASH的基本原理:服務器端存儲將原始視頻資源生成同一內容、不同碼率的視頻分片和相應的MPD索引文件,客戶端根據當前網絡狀況等因素向服務器請求相應碼率的視頻分片進行播放。圖1[5]形象展示了DASH的基本原理。

圖1 DASH的基本原理
當播放視頻內容時,DASH客戶端通過獲取并解析MPD文件,向服務器請求合適碼率的視頻分片。通過適當的緩沖,客戶端在適應了網絡帶寬變化后,并同時監測網絡帶寬的波動,根據其測量結果,繼續獲取后面的視頻分片,以保持緩沖區有足夠的緩沖內容。
MPD文件格式和視頻分片Segment是DASH技術標準的重要內容,沒有這兩個文件,客戶端和服務器端將無法交互。
為了提高用戶觀看視頻的體驗質量,DASH碼率自適應算法是DASH技術標準的一個研究熱點。本節提出基于視頻分片的碼率自適應算法,并將其與兩種典型的碼率自適應算法進行驗證比較。
很多DASH碼率自適應算法在估計下一個視頻分片碼率的過程中,只考慮緩沖區或帶寬,沒有考慮到視頻分片。文獻[6-8]經過驗證,視頻分片的持續時間影響用戶的體驗質量,現就文獻[8]的驗證情況進行說明。
兩個不同的客戶端向服務器端請求相同內容但不同時長的視頻分片。經過反復實驗,得到兩個客戶端請求的視頻分片時長,見表1。
MPEG-DASH中的每個Quality Profile與特定的QoE水平相關聯,換言之,較高的Quality Profile對應較高的QoE水平,因此,使用Quality Profile通過式(1)和式(2)得出用戶的體驗質量

表1 兩個客戶端獲取的視頻分片時長
(1)
wi=count(QP1,…QPi)/n
(2)
其中,wi為第i個QP的權值,qi為第i個Quality Profile中接收的視頻分片的比率,n為QP的數量。
兩個客戶端的QoE的度量結果見表2。

表2 由視頻分片時長得出的QoE結果
實驗結果表明,視頻分片的不同時長帶給用戶不同的體驗質量,較長的視頻分片持續時間帶給用戶較高的體驗質量。鑒于此,在文獻[9,10]的基礎上,提出基于視頻分片的碼率自適應算法。
本節提出的基于視頻分片的碼率自適應算法(rate ada-ptation algorithm based on segment,RAAS)在文獻[9,10]的基礎上考慮了視頻分片的持續時間,因此,算法共考慮帶寬、緩沖區和視頻分片的持續時間3個因素。
(1)算法描述
一般情況下,將視頻劃分為1 s、2 s、4 s、6 s、10 s或15 s的視頻分片。根據2.1節的驗證結論可知,較長的視頻分片時長帶給用戶較高的視頻體驗質量,所以該算法獲取視頻分片中取持續時間最長的視頻分片。
算法的緩沖區與3個閾值有關,即I(默認為2)、Bα和Bβ,如圖2所示。閾值的定義與視頻分片的數量有關。

圖2 算法緩沖區
當緩沖區內視頻分片的數量小于I時,獲取最低碼率的視頻分片。一旦緩沖區內視頻分片的數量大于I,算法根據帶寬狀態開始碼率自適應。當BcurrBβ時,仍然獲取最高碼率的視頻分片,但算法會在視頻分片的數量小于Bβ時才發送對下一個視頻分片的請求,以避免在用戶提前退出觀看視頻的情況下獲取不必要的視頻分片。
算法使用媒體分片的持續時間(media segment time,MSD)與視頻分片的獲取時間(sengmen fetch time,SFT)的比值μ進行帶寬估計,如式(3)所示
μ=MSD/SFT
(3)
如果μ>1+ε,則提高下一個視頻分片的碼率,ε為提高視頻碼率的一個因子;如果μ<γd,則降低下一個視頻分片的碼率,γd為降低視頻碼率的閾值;如果帶寬接近先前的帶寬,則視頻碼率保持不變。
(2)算法的步驟
算法的步驟如下所示。
1)輸入
Rprev:先前的視頻碼率
Bcurr:當前緩沖區占用量
I、Bα、Bβ:緩沖區的3個閾值
Segduration:視頻分片的持續時間
ε:視頻碼率向上切換的因子
γd:降低視頻碼率的閾值
2)算法的執行過程
RAAS的執行過程如圖3所示。
3)輸出
Rnext:下一個視頻分片的碼率

圖3 算法RAAS的執行過程
碼率自適應算法的好壞決定用戶觀看視頻體驗質量的好壞。在文獻[9,10]的基礎上,本文提出了基于視頻分片的碼率自適應算法,文獻[9]是基于緩沖區的碼率自適應算法(buffer-based algorithm,BBA),文獻[10]是基于帶寬的碼率自適應算法(throughput-based adaptive bit-rate algorithm,TBA)。為了驗證3種算法對用戶觀看視頻的體驗質量的管理能力,使用視頻碼率切換的次數、碼率切換的極性和視頻達到最高視頻碼率的收斂時間[11]來表示算法性能。
(1)實驗環境
實驗主要包括3部分:Web服務器、網絡仿真和DASH客戶端。DASH客戶端使用開源軟件AStream,AStream的源碼可以從GitHub上下載[12]。DASH客戶端通過從服務器上下載并解析MPD文件進行啟動。為了驗證算法在不同網絡條件下的性能,網絡仿真使用DammyNet配置服務器和客戶端之間的可用帶寬,從而模擬不同的網絡環境。
(2)帶寬狀態
基于以下3種帶寬[13]驗證算法。
1)固定帶寬(fixed bandwidth):這種情況下,在客戶端和服務器之間的帶寬限制為0.5 Mbps、1 Mbps、4 Mbps或6 Mbps。選擇的這些帶寬值可以覆蓋低帶寬網絡環境。
2)帶寬短暫中斷(short interruptions):對于1)中列出的不同帶寬,在網絡數據傳輸過程中,當帶寬低于0.005 Mbps 時有多個短暫中斷,每個中斷持續10 s。
3)帶寬長時間中斷(long interruptions):對于長時間中斷,當帶寬低于0.005 Mbps時有3個1 min的中斷。
(3)驗證結果
在以上所述的3種帶寬狀態下,算法的驗證結果如下所示。
1)結果一:不同帶寬情況下,碼率切換事件的次數雖然DASH通過切換視頻碼率確保視頻在播放過程中沒有中斷,但頻繁的視頻切換會降低用戶的體驗質量。
當最大帶寬設置為4 Mbps時,在不同帶寬情況下觀察到的視頻碼率切換事件的次數如圖4所示。在視頻播放過程中,碼率切換次數越少,用戶體驗質量越高。在固定帶寬和短暫中斷兩種場景下,BBA和TBA的碼率切換次數相似;在長時間中斷場景下,TBA的碼率切換次數變化很大,BBA變化不大。而RAAS不管在哪種場景下,碼率切換次數明顯少于BBA和TBA,且幾乎沒有變化,所以,從碼率切換事件的次數來看,RAAS顯然能夠提高用戶的體驗質量。

圖4 碼率切換的次數
2)結果二:帶寬長時間中斷情況下,碼率切換的極性碼率切換的極性即碼率向上切換或向下切換。
最大帶寬設置為1 Mbps和6 Mbps,當帶寬長時間中斷時,碼率切換的極性如圖5所示。由于碼率自適應算法在碼率切換的過程中是逐步提高視頻碼率和迅速降低視頻碼率的,所以觀察到的結果大多數是視頻碼率向上切換。從驗證結果來看,RAAS向上切換和向下切換的次數變化不大,且少于BBA和TBA,因此RAAS帶給用戶較高的體驗質量。

圖5 碼率切換的極性
3)結果三:達到最高視頻質量的收斂時間
在任何網絡帶寬下,達到最高碼率花費的時間稱為收斂時間。
對于依靠緩沖區占用量來確定最合適碼率的BBA來說,達到最高視頻碼率的收斂時間較長。在本次實驗中,緩沖區的大小為240 s(文獻[5]推薦),BBA直到等待到90%(216 s)的緩沖區已滿才能切換到最高碼率的視頻。然而,對于RAAS來說,由于考慮到視頻分片的持續時間,所以能夠使RAAS更加精確的估計下一個視頻分片的下載速率,這可以促使視頻能夠較快的達到最高碼率。如圖6所示,在3種帶寬情況下,RAAS的收斂時間明顯優于TBA和BBA。

圖6 收斂時間
4)驗證結論
從以上算法的驗證結果來看,RAAS具有較低的碼率切換事件、更高的視頻質量和更快的收斂時間,其性能明顯優于TBA和BBA。
通過構建DASH播放器已經實現視頻的自適應傳輸,但為了進一步提高用戶觀看視頻的體驗質量,將本文提出的基于視頻分片的碼率自適應算法應用到DASH播放器中。
DASH-IF提供了開源的MPEG-DASH播放器框架dash.js,dash.js是用JavaScript編寫的開源的MPEG-DASH視頻播放器框架,可以在任何支持W3C媒體源擴展(MSE)的瀏覽器中提供MPEG-DASH播放。dash-js提供了比較全面的DASH標準支持,因此,使用dash.js在網頁中構建DASH播放器,構建過程如圖7所示。

圖7 構建DASH播放器過程
Dash.js主要有3個核心模塊,即視頻分片請求模塊、基本緩沖區模塊和帶寬估計模塊,3個模塊的相互交互實現了視頻碼率的自適應。RAAS算法的實現類RaasAction.java需要獲取這3個模塊的參數,例如:視頻分片的持續時間segmentDuTime、緩沖區的占用量bufferOccupancy、帶寬的大小bandwidth等參數,然后將這些參數應用到預測下一個視頻分片的碼率的方法estimateSegment()中。
DASH功能的實現需要客戶端和服務器端的交互,DASH客戶端構建完成后,還需要生成服務器端DASH媒體內容和MPD文件。
DASH支持兩種視頻標準:MPEG-4和MPEG-2 TS,所以需要將原始視頻進行編碼,實驗將原始視頻編碼為MP4格式,主要原因如下所示。
(1)MP4是一種輕量級容器格式,開銷少;
(2)MP4更容易被解析;
(3)MP4基于廣泛使用的標準,可以使第三方更直接的采用和支持;
(4)MP4的設計考慮了H.264視頻編碼器的支持。
視頻編碼完成以后,使用MP4Box的dash相關命令將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文件,根據當前網絡狀況等因素向服務器請求相應碼率的視頻分片進行播放。
使用測試數據big buck bunny(動畫片)、Of Forest and Men(紀錄片)、The Swiss Account(體育片)和Valkaama(電影)[14]驗證搭建的DASH平臺,測試結果表明,不管是哪種類型的數據,視頻都能進行DASH播放。在DASH播放的過程中,以測試數據big buck bunny為例,來說明視頻在播放的某個時間段DASH平臺根據當時的帶寬狀態選擇視頻分片碼率的自適應情況,如圖8所示。

圖8 某時間段視頻碼率的自適應狀態
圖8中共有3條線,上面波動的線為estimated bandwidth,下面波動的線為根據estimated bandwidth而選擇的representation bandwidth,垂直的線表示視頻的播放時間,隨著視頻的播放或暫停而前進或停止。在播放當前視頻分片的同時,DASH客戶端已經估計好了下一個視頻分片所處的帶寬狀態和要獲取的合適的視頻碼率。
從驗證結果來看,該方案實現了視頻的DASH自適應傳輸,由于算法RAAS考慮了視頻分片的持續時間,所以該方案能夠更加精確預測下一個視頻分片的碼率,從而進一步提高了用戶觀看視頻的體驗質量。
本文基于DASH標準提出了一種視頻自適應傳輸方案。該方案中提出的基于視頻分片的碼率自適應算法考慮了視頻分片的持續時間,從而進一步提高了用戶觀看視頻的體驗質量。經過驗證,該方案不僅解決了傳統流媒體技術無法根據實時變化的帶寬自適應調整視頻碼率的問題,而且能夠更加精確預測下一個視頻分片的碼率,具有重要的理論和應用價值。下一步的工作主要是優化服務器端的數據存儲空間,實現服務器的負載均衡。
[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.