陳梓晗,葉 進,肖慶宇
(廣西大學計算機與電子信息學院,南寧 530004)
隨著互聯網技術的不斷發展,視頻流媒體已成為當前網絡傳輸流量的主要組成部分,在網絡應用中占據核心地位。根據第44 次中國互聯網統計報告顯示[1],目前中國視頻類流量占因特網流量的80%,視頻類APP 應用產生了近30%的移動應用流量。思科公司的報告指出[2]:全世界網絡流量的67%是視頻流量,預計到2021 年將達到80%。視頻流媒體的碼率自適應(Adaptive Bitrate,ABR)算法的目標是讓客戶端所播放的視頻塊碼率盡可能匹配當前網絡帶寬,從而最大化帶寬的利用率,提升用戶體驗質量(Quality of Experience,QoE)。
依據工作原理的不同,碼率自適應算法可以分為三類:第一類是基于吞吐量[3-4]帶寬預測[5-6]的方法,依據網絡吞吐量預測帶寬;使得請求視頻塊的碼率接近可用網絡帶寬;第二類是基于緩存[7-9]的方法,將緩存分為若干區間,并對每個緩存區間采用不同的碼率選擇策略[9-10];第三類方法是綜合利用帶寬預測[11-13]以及緩存信息[14-15]。而且隨著人工智能技術的發展,此類策略應用機器學習[16-17]方法實現更精確化的碼率控制和QoE 提升。下文具體分析各類方法的工作原理和特性。
基于吞吐量預測的方法核心是根據預測的網絡吞吐率來選擇碼率。其中,客戶端依據近段時間內的網絡吞吐率來預測網絡帶寬,以此選擇最佳碼率,但受鏈路狀態[3]、帶寬波動[4]、網絡環境異構性[5]等因素的影響,選擇最佳碼率變得較困難,如在時變無線信道上吞吐量預測常常是不準確的,難以選擇最優的碼率。
不同于依據預測未來吞吐率來選擇碼率,文獻[7]依據觀察客戶端視頻緩沖區變化來確定最優碼率,在視頻塊緩沖區長度較大時選擇高碼率,以提升視頻質量;否則,選擇低碼率以避免視頻卡頓。文獻[8]提出的ABR 算法在視頻開始播放階段基于歷史吞吐率選擇碼率,在網絡帶寬平穩后根據當前的緩沖區占用情況選擇視頻碼率。但總體而言,基于緩沖區占用的ABR 算法由于客戶端緩沖區的閾值界定難以選擇,存在實際部署的問題。而基于帶寬和緩存混合控制方法[11-12]能充分利用網絡帶寬和緩沖區的狀態[13-14]選擇碼率。文獻[15]將碼率的選擇建模為一個模型預測控制問題,依據吞吐量和緩沖區占用信息通過控制理論模型進行判斷推理。然而,該方法的性能過度依賴于系統模型,對吞吐量預測誤差和優化周期長度非常敏感。
隨著人工智能技術飛速發展和不斷應用,文獻[16-17]提出基于強化學習框架的碼率自適應方法。其中Pensieve[16]借助于強化學習算法訓練模型,不依賴于環境的假設,而是根據客戶端采集數據為視頻塊選擇碼率,通過觀察過去決策的結果來學習碼率的選擇策略。
現有研究的主流方法是構建統一的QoE 模型,并設計啟發式的碼率自適應算法,考慮不同類型視頻的特點。實際上,短視頻、長視頻和直播視頻各自側重不同的傳輸特性,具有不用的QoE 需求。如果對不同類型視頻采用統一的QoE 優化函數,則難以適應各種類型的個性化需求。例如,在網絡帶寬波動較大時,基于吞吐率的ABR 算法也會頻繁切換碼率,雖然對長視頻的影響不大,但會嚴重影響直播視頻的觀看體驗。在Pensieve 方案[16]中,使用用戶體驗質量的相關指標作為激勵(reward)函數反饋給碼率決策系統,雖然兼顧了各個方面的性能需求,提高了網絡適應性,但也并沒有根據視頻類型去制定更有針對性的reward 函數,難以為各類視頻提供滿意的用戶體驗質量。
本文將視頻分為長視頻、短視頻與直播視頻三類,針對不同視頻類型,通過強化學習方法得到更好的用戶體驗質量。使用不同類型視頻的數據集訓練強化學習模型,得到不同視頻類型對應的reward函數參數,基于Asynchronous Advatage Actor-Critic(A3C)[18]強化學習模型實現視頻類型區分的碼率自適應算法C-ABR。
流媒體碼率自適應算法的目標是提高用戶體驗質量。不同類型視頻由于各自的特點和傳輸需求,對用戶體驗質量產生不同的影響。為解決該問題,本文提出視頻類型敏感的C-ABR 算法。
C-ABR 算法是基于DASH 視頻流框架的碼率自適應算法。整體上包含網絡參數處理模塊、模型訓練模塊和碼率選擇模塊3 個部分。C-ABR 算法的部署如圖1 所示。首先網絡參數處理模塊采集網絡狀態和視頻類型參數,提交給A3C 模型訓練模塊,然后訓練模塊通過訓練輸出ABR 碼率選擇的映射表,最終客戶端依據映射表和當前網絡參數選擇碼率。

圖1 C-ABR 算法部署過程Fig.1 Deployment process of C-ABR algorithm
在系統部署的過程中,本文選擇A3C 算法作為強化學習模型。與DQN[19]等其他強化學習算法相比,A3C算法不需要使用經驗池來存儲歷史樣本,節約了存儲空間。同時,A3C 算法采用異步訓練的模式,提升了訓練速度。
定義激勵(reward)函數綜合考慮碼率、碼率切換和卡頓時間對用戶體驗質量的影響。在強化學習過程中,reward 函數是影響決策的重要因素,強化學習的每一步行動都會計算當前步數的reward 函數值,reward 函數值越大就表明當前步數對整個過程的貢獻越大。具體計算公式如式(1)所示:

其中:Rk是第k個視頻塊碼率;q(Rk)是指第k個視頻塊reward 函數中的碼率得分,碼率代表視頻塊的播放清晰度,碼率越高,表示播放的視頻塊越清晰,進而reward 得分越高為碼率切換懲罰,是指在播放中對清晰度切換事件,在播放過程中,碼率切換越多,懲罰越大;γ×Tn為卡頓懲罰,Tn是指在播放過程出現卡頓事件的時長,卡頓時間越長,reward 函數值越低。
本文為不同視頻類型設計相應的reward 函數。首先將碼率、碼率切換與卡頓時間3 項指標全部歸一化。每個視頻塊的碼率轉化為其中Rmax是指視頻最高碼率,視頻切換轉化為是視頻最低碼率。另外根據統計,通常視頻塊遭遇卡頓不會超過2 s,所以卡頓歸一化為最終得到歸一化reward 函數如式(2)所示:

然后將λ1、λ2、λ3全設定為1,使用Pensieve 算法測試在3 類視頻中各項指標(碼率、碼率切換、卡頓時間)的影響程度。測試數據集包含各類視頻500 組樣本,得到不同類視頻各項指標項的平均值。計算各項指標平均值的絕對值,得到各項指標對3 項指標絕對值之和的比值,如圖2 所示。

圖2 不同視頻類型下各指標的影響Fig.2 Influence of each index under different video types
最后將長視頻類型下α、β、γ參數分別設置為5、1、1。同時,依據圖2 所示指標項的影響程度,按各指標項之間的比例關系分別設置短視頻和直播視頻的α、β、γ參數,如表1 所示。

表1 視頻類型與α、β、γ 的映射關系Table 1 Mappin relation between video types and α,β,γ
本文使用A3C 強化學習模型來選擇碼率。如圖3所示,將不同視頻類型的數據集分別輸入A3C 訓練模型。輸入數據為{Xt,Tt,Nt,et,v,bt},其中:Xt為上個視頻塊的下載吞吐率;Tt為上個視頻塊下載的時間;Nt為下個視頻塊的大小;et為上個視頻塊的重傳時間;v為上個視頻的視頻類型;bt為當前的緩沖池大小。

圖3 A3C 強化學習模型Fig.3 Reinforcement learning model of A3C
A3C 強化模型框架包含2 個部分:Actor 行動模塊和Critic 評判模塊。其中,Actor 行動模塊是執行機構,輸入外部的狀態S‘t,然后輸出動作a,在模型中表現為下個視頻塊的選擇碼率。而Critic 評判模塊則根據歷史信息及反饋reward 函數值進行自我調整,然后影響整個Actor 行動模塊。A3C 模型在Actor-Critic 框架中還引入了異步訓練的模式,可以同時啟用多個訓練環境進行訓練,提升模型訓練速度,并使樣本分布更加均勻。
實驗配置:CPU 為Intel i7 7700HQ,RAM 為8 GB,GPU 為Nvidia GTX 1060,GPU加速庫為CUDA 10,實驗系統為Ubuntu 16.04,開發環境為Pytorch,開發工具為Pycharm,開發語言為Python。
為便于對本文的碼率自適應算法進行比較,本文使用L3VTP 仿真器從真實環境中獲取視頻吞吐量數據來進行算法測試。仿真器的輸入包含視頻數據集和網絡數據集,用來仿真模擬真實環境中網絡的動態變化。本文視頻數據集來自于真實環境采集,分別從真實環境中獲取了短視頻、長視頻和直播視頻進行仿真測試。其中各類視頻的樣本數量約為2 000,模型訓練過程中迭代次數設置為20 000,表2所示為視頻樣本范圍。

表2 視頻樣本參數范圍Table 2 Video sample parameter range
首先使用不同的強化學習模型來比較訓練結果。從短視頻、長視頻、直播視頻數據集各取10 組數據分別進行測試,并取其平均結果。分別用DQN、DDQN[20]、A3C 3種不同的強化學習模型訓練,并統計不同模型的QoE 得分,測試結果如表3所示。

表3 不同強化學習模型的QoE 得分Table 3 QoE score of different reinforcement learning models
從測試結果可以看出,A3C 模型在測試中的QoE 得分總體高于DQN、DDQN 模型。其中,對于長視頻,3 種強化學習方法模型最后的得分是比較接近;在直播視頻得分對比中可以看出,A3C 模型效果明顯優于DQN 與DDQN 模型;而在短視頻中,A3C模型的優勢最為明顯。
然后測試本文C-ABR 算法的性能。對比測試C-ABR、Pensieve 與MPC 3 種算法的性能,結果如圖4所示

圖4 不同算法在3 類視頻中的結果Fig.4 Results of different algorithms in three kinds of videos
3 種算法的碼率得分情況如圖4(a)所示,Pensieve和C-ABR 算法相比MPC 算法優勢明顯,原因在于:這2 種算法都是基于強化學習的方法,能夠在有限的帶寬資源下,主動選擇高碼率來提升用戶體驗質量,使得碼率得分提升。MPC 缺乏準確的網絡動態模型,它依賴于簡單的和次優的啟發式方法,導致保守的碼率選擇。而在C-ABR 與Pensieve 的對比中可以看出,短視頻與直播視頻C-ABR 算法的得分更高。
切換懲罰與卡頓懲罰得分如圖4(b)和圖4(c)所示。由于C-ABR 在訓練過程中對視頻進行了分類,在短視頻中C-ABR 將卡頓懲罰系數提高,因此在短視頻的卡頓懲罰對比中,C-ABR 的卡頓懲罰是最低的。而在直播視頻中,C-ABR 將切換頻次懲罰系數提高,使得直播的切換頻次懲罰明顯低于其他算法。
QoE 整體得分如圖4(d)所示:在長視頻中,C-ABR與Pensieve 得分相差無幾,在短視頻的對比中,C-ABR比MPC 提升了50.4%,比Pensieve 提升了17.2%;在直播視頻的對比中,C-ABR 比MPC 和Pensieve 分別提升了42.1%和22.7%。
本文提出一種區分視頻類型特征的碼率選擇算法C-ABR。該算法為不同類型視頻設計了QoE優化函數,并使用A3C 深度強化學習算法選擇視頻碼率。C-ABR可廣泛部署在視頻傳輸框架中,不需要改動現有硬件,有效提升用戶體驗質量。實驗結果表明,與Pensive 算法相比,C-ABR 算法提高了14.7%的用戶體驗質量分數。下一步將考慮使用用戶對不同視頻源的主觀觀看體驗作為選取碼率的依據,制作精準的用戶畫像,并通過設置優先級調節網絡帶寬分配來提升用戶體驗。