国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

強化學(xué)習(xí)在自適應(yīng)視頻碼率控制算法中的應(yīng)用

2020-05-09 02:59:46白光偉
小型微型計算機系統(tǒng) 2020年2期
關(guān)鍵詞:比特率碼率緩沖區(qū)

肖 強,白光偉,沈 航

(南京工業(yè)大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,南京 211816)

1 引 言

隨著互聯(lián)網(wǎng)多媒體的迅猛發(fā)展,互聯(lián)網(wǎng)在線視頻目前已占據(jù)互聯(lián)網(wǎng)流量的半數(shù)以上1https://www.cisco.com/web/about/ac79/docs/sp/Online-Video-Consumption_Consumers.pdf.,并且視頻收視率正以極快的速度增長.研究表明視頻服務(wù)質(zhì)量與用戶的觀看時長[1]成正相關(guān),因此,提高視頻傳輸?shù)馁|(zhì)量對于視頻服務(wù)提供商至關(guān)重要[2].為了在不同的網(wǎng)絡(luò)條件下傳輸高質(zhì)量的視頻,大多數(shù)因特網(wǎng)視頻傳輸都會使用自適應(yīng)比特率(ABR)算法[5,6].ABR算法大致?lián)碛袃蓚€步驟:1) 將視頻分割成塊,每個塊都以一定的比特率(或質(zhì)量)編碼;2) 根據(jù)客戶端已緩沖的視頻數(shù)量和客戶端最近實現(xiàn)的吞吐量等條件,選擇要獲取哪個比特率級別的視頻塊.在這個總體框架內(nèi),各ABR算法在碼率選擇策略上會有所不同,并且這些決策會影響諸如平均比特率或卡頓率等指標(biāo)[3],這些指標(biāo)直接影響用戶的體驗.

近年來,各界對如何高效地為用戶進行碼率選擇越來越重視.針對該問題,Kevin等人[5]提出了一種通過求解優(yōu)化問題來選擇比特率的方法即Bola算法.Bola是一種用于dash.js2https://github.com/Dash-Industry-Forum/dash.js.的算法,該算法是一種基于緩沖區(qū)的算法[4],它通過將比特率選擇建模為一個優(yōu)化問題,并對給定的緩沖區(qū)值進行了求解,從而提高用戶的視頻服務(wù)質(zhì)量.Yin等人[6]提出了MPC算法,該算法會對吞吐量緩沖區(qū)占用率有一定的預(yù)測性,它根據(jù)最近下載的塊的吞吐量樣本預(yù)測未來塊下載的吞吐量,然后使用這個預(yù)測的吞吐量選擇比特率,來優(yōu)化一個給定的QoE函數(shù),從而達到調(diào)節(jié)碼率的目的.上述研究工作對提高用戶的總體平均質(zhì)量卓有成效,但是忽略了網(wǎng)絡(luò)狀態(tài)對ABR算法參數(shù)設(shè)置的影響,使得在部分網(wǎng)絡(luò)狀態(tài)下,用戶無法獲得高質(zhì)量服務(wù).針對上述不足,文獻[12]提出了一種基于強化學(xué)習(xí)的算法,來實現(xiàn)視頻碼率的自適應(yīng),該算法在一定程度上增強客戶端碼率決策機制的靈活性和自適應(yīng)性,該算法是根據(jù)平均可用帶寬和實時緩存數(shù)據(jù)填充量進行環(huán)境狀態(tài)建模,從而實現(xiàn)對視頻碼率的調(diào)節(jié).

然而,現(xiàn)有工作大多都試圖將一套相對固定的模型規(guī)則應(yīng)用于所有用戶,但用戶與用戶之間的網(wǎng)絡(luò)條件往往存在差異性,即便是同一用戶,在不同時刻的QoE喜好也可能存在著差異,因此相對固定的ABR算法已無法確保使所有用戶擁有一致的觀看體驗,因此本文提出一種基于強化學(xué)習(xí)的ABR參數(shù)實時自適應(yīng)機制(PA),充分考慮每個用戶網(wǎng)絡(luò)條件的特征,增強ABR模型的定制性,以確保每個用戶都可以獲得最佳的視頻服務(wù)質(zhì)量.該系統(tǒng)會預(yù)先計算給定的視頻碼率自適應(yīng)算法在不同網(wǎng)絡(luò)條件時的最佳參數(shù)設(shè)置,然后在運行時根據(jù)客戶端連接的當(dāng)前網(wǎng)絡(luò)狀態(tài),特別是吞吐量和吞吐量可變性來自動調(diào)整ABR算法的參數(shù),從而改善ABR算法的動態(tài)范圍.

本文的結(jié)構(gòu)安排為:第2節(jié)介紹了研究動機;第3節(jié)介紹了本文提出的視頻碼率調(diào)節(jié)算法參數(shù)自適應(yīng)機制;第4節(jié)介紹了基于Q-learning的離線學(xué)習(xí)方法;第5節(jié)介紹了實驗與結(jié)果分析.第6節(jié)總結(jié)了全文.

2 研究動機

目前大多數(shù)視頻服務(wù)提供商都希望為盡可能多的用戶提供優(yōu)質(zhì)的視頻服務(wù),而不是僅僅提高視頻服務(wù)平均水平.現(xiàn)有的ABR算法都需要事先建立一套相對固定的算法模型,例如Bola和MPC,這些算法模型由于規(guī)則簡單、模式單一,在不同網(wǎng)絡(luò)環(huán)境可能會有不同的調(diào)節(jié)效果,所以在應(yīng)用過程中,某些用戶或視頻可能效果不佳.

圖1 MPC算法性能Fig.1 Performance of MPC

本文對MPC算法和Bola算法在不同的會話場景應(yīng)用不同ABR參數(shù)時的運行效果進行了對比,圖1、圖2分別顯示了兩種ABR算法應(yīng)該如何根據(jù)網(wǎng)絡(luò)條件選擇最優(yōu)的參數(shù)配置.圖1顯示了MPC算法在兩個不同會話場景下選擇不同參數(shù)時的比特率和卡頓率,使用MPC算法對其參數(shù)進行三種不同的配置策略試驗(Cons:偏保守;Mod:適中;Aggr:偏激進).兩個會話的吞吐量行為有明顯差異,會話A的吞吐量比較平穩(wěn),波動較??;會話B吞吐量變化較大.如果視頻服務(wù)提供商更傾向于消除卡頓,那么適中的配置策略(Mod)更適合于會話A,但偏保守的配置策略(Cons)更適合會話B.圖2顯示Bola算法在相同的場景下?lián)碛蓄愃频男袨?

基于上述分析,本文提出ABR算法參數(shù)實時自適應(yīng)機制,將ABR算法的參數(shù)選擇建模成優(yōu)化控制問題,通過前期的強化學(xué)習(xí),學(xué)習(xí)最優(yōu)的參數(shù)選擇策略,然后再將策略應(yīng)用于實時的碼率控制中.

圖2 Bola算法性能Fig.2 Performance of Bola

3 自適應(yīng)視頻碼率調(diào)節(jié)流程架構(gòu)

本文提出的ABR算法參數(shù)實時自適應(yīng)機制用了網(wǎng)絡(luò)連接的分段平穩(wěn)性來解決ABR參數(shù)配置對網(wǎng)絡(luò)環(huán)境的敏感性這一關(guān)鍵性挑戰(zhàn),該機制主要分為兩個階段:1) 離線階段,系統(tǒng)預(yù)先計算每個(固定)網(wǎng)絡(luò)狀態(tài)的最佳配置選擇.2) 在線階段,在視頻播放過程中,系統(tǒng)不斷地檢測網(wǎng)絡(luò)狀態(tài)的變化,并根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)選擇預(yù)先計算的最佳配置.

圖3 離線學(xué)習(xí)流程示意圖Fig.3 Offline learning process diagram

離線階段.為了將網(wǎng)絡(luò)狀態(tài)映射到它們的最佳ABR參數(shù)配置,本文使用了一個由3個組件組成的學(xué)習(xí)管道:環(huán)境參數(shù)估測器、虛擬播放器和配置參數(shù)選擇器,如圖3所示.環(huán)境參數(shù)估測器以吞吐量跟蹤記錄作為輸入,表示特定的網(wǎng)絡(luò)狀態(tài),并在此吞吐量記錄上對不同ABR配置進行探索.它是通過使用虛擬播放器來實現(xiàn)的,虛擬播放器模擬了實際視頻播放器的動態(tài),并且能夠輸出ABR算法在應(yīng)用不同配置時的性能.學(xué)習(xí)流程大致分為3步.

圖4 系統(tǒng)組成及其交互流程Fig.4 System composition and its interaction process

1)分析客戶端吞吐量序列集合X{Xput1,Xput2,…,Xputn}.通過環(huán)境參數(shù)估測器計算該周期內(nèi)的吞吐量均值和均方差,從而標(biāo)識其網(wǎng)絡(luò)狀態(tài),不同于以往的傳統(tǒng)算法,這種表示方法充分考慮了網(wǎng)絡(luò)狀態(tài)的波動狀況.

2)虛擬播放器以所得的網(wǎng)絡(luò)狀態(tài)作為輸入,并在此網(wǎng)絡(luò)狀態(tài)上對ABR算法不同參數(shù)配置進行探索.

3)配置參數(shù)選擇器比較了不同配置的性能,并構(gòu)建了一個最優(yōu)配置表(ConfigMap),它將給定的網(wǎng)絡(luò)狀態(tài)映射到最佳配置.

在線階段.整個系統(tǒng)主要由客戶端、云視頻服務(wù)器等幾個部分組成.圖4為系統(tǒng)各組成部分及其交互流程圖.因為考慮到網(wǎng)絡(luò)狀態(tài)變點檢測算法是一個計算密集型算法,放在客戶端運行勢必會帶來不必要的資源消耗,所以引入了邊緣計算的方法[13],這使得系統(tǒng)具有更好的性能,以及更低的耦合度,利于開發(fā)和維護.在線階段的詳細流程大概分為如下幾步:

1)在視頻播放過程中,客戶端播放器會不停地收集播放狀態(tài)信息(例如緩沖區(qū)長度、視頻播放狀態(tài)和吞吐量測量),并且將這些信息周期性的上傳到邊緣計算節(jié)點.

2)邊緣節(jié)點根據(jù)客戶端上傳的播放器狀態(tài)信息來分析網(wǎng)絡(luò)狀態(tài),當(dāng)網(wǎng)絡(luò)狀態(tài)發(fā)生變化時,則激活參數(shù)選擇器.

3)參數(shù)選擇器會根據(jù)離線學(xué)習(xí)生成的最優(yōu)配置表configMap來選擇能夠在當(dāng)前網(wǎng)絡(luò)狀態(tài)下運行效果最好的參數(shù)C,并且將參數(shù)C返回給客戶端播放器的ABR模塊.

4)ABR模塊在接收到新的參數(shù)組之后,將模型中的參數(shù)替換為新的參數(shù),然后以新的模型參數(shù)為客戶端播放器選擇合適的碼率.

4 基于Q-learning的離線學(xué)習(xí)方法

視頻碼率自適應(yīng)的最終目標(biāo)是提高用戶的滿意度,以實現(xiàn)更高的用戶參與度.我們的目標(biāo)是提供一個靈活的新模式,而不是一個固定的模型.ABR算法參數(shù)實時自適應(yīng)機制通過對網(wǎng)絡(luò)狀態(tài)的感知,實時調(diào)整系統(tǒng)參數(shù),然后利用網(wǎng)絡(luò)狀態(tài)和視頻碼率的映射關(guān)系選擇合適的碼率,該映射關(guān)系可以表示為:Rk=F(·),并且可以從如下幾個方面判斷所選擇的比特率Rk的性能:

1)平均視頻質(zhì)量,即每個視頻塊的平均質(zhì)量:

(1)

2)平均質(zhì)量變化幅度,它體現(xiàn)了視頻質(zhì)量從一個塊到另一個塊的變化的大?。?/p>

(2)

3)卡頓:對于每個視頻塊來說,若其下載時長dk(Rk)/Ck高于播放完緩沖區(qū)視頻塊的時長BK時就會發(fā)生卡頓,因此總卡頓時長為:

(3)

由于用戶可能對上述三個方面中哪個更重要有不同的偏好,所以我們通過對上述因素的加權(quán)和來定義視頻片段1到K的QoE:

(4)

其中,λ、μ分別是與視頻質(zhì)量變化和卡頓恢復(fù)時間相對應(yīng)的非負加權(quán)參數(shù).一個相對較小的λ表示用戶并不特別關(guān)注視頻質(zhì)量的變化.相對于其他參數(shù),較大的變量表示用戶更加關(guān)心該指標(biāo).

因此ABR參數(shù)自適應(yīng)問題的目標(biāo)函數(shù)可以表示為:

(5)

同時,滿足如下的限制條件:

Ri=F(N,c),?i=1,…,K.

(6)

c∈C

(7)

公式(6)表示ABR算法將網(wǎng)絡(luò)狀態(tài)N映射為比特率R的關(guān)系式,其中c(c∈C)表示ABR算法中的參數(shù)配置.我們將給定的的網(wǎng)絡(luò)狀態(tài)N作為輸入,將能使視頻QoE(·)最大化的配置參數(shù)c作為輸出,用于優(yōu)化ABR算法模型,從而提高ABR算法在給定網(wǎng)絡(luò)狀態(tài)時的性能.對于網(wǎng)絡(luò)狀態(tài)N的具體定義會在4.1中詳細描述.

若要實現(xiàn)上述的ABR算法參數(shù)實時自適應(yīng)目標(biāo),需要預(yù)先計算在不同網(wǎng)絡(luò)狀態(tài)下,ABR算法使用何參數(shù)時效果最佳,然后形成網(wǎng)絡(luò)狀態(tài)與碼率自適應(yīng)算法參數(shù)最優(yōu)配置映射表.本文采用基于Q-learning的學(xué)習(xí)方法生成該映射表,將網(wǎng)絡(luò)狀態(tài)映射到ABR算法在該網(wǎng)絡(luò)狀態(tài)下運行的最佳參數(shù)配置.下面詳細介紹一下基于Q-learning的離線學(xué)習(xí)方法設(shè)計.

4.1 環(huán)境建模

系統(tǒng)狀態(tài)定義.系統(tǒng)狀態(tài)Sk主要由兩個因素決定:客戶端網(wǎng)絡(luò)狀態(tài)(Nk)、客戶端視頻緩沖填充狀態(tài)(Bk).因此,系統(tǒng)狀態(tài)定義如公式(8)所示:

Sk=(Bk,Nk)

(8)

本文使用二元組<μk,σk>定義網(wǎng)絡(luò)狀態(tài)N[7,10],其中μk是用戶感知吞吐量的均值,σk是用戶感知吞吐量在這段時間內(nèi)的標(biāo)準(zhǔn)差,這種方法不僅考慮了網(wǎng)絡(luò)帶寬的均值,并且充分考慮了網(wǎng)絡(luò)吞吐量的細節(jié)變化,例如網(wǎng)絡(luò)的波動程度等[9].若第k個統(tǒng)計周期內(nèi)吞吐量記錄為{x1,x2,…,xn},則μk,σk的計算公式分別如公式(9)、公式(10)所示:

(9)

(10)

因用戶感知吞吐量的均值、吞吐量的標(biāo)準(zhǔn)差取值范圍都是連續(xù)的區(qū)間,為了方便問題的定義、減少系統(tǒng)狀態(tài)的維度,我們將他們離散化以建模狀態(tài)變量.取值范圍如表1所示.

表1 緩沖填充與網(wǎng)絡(luò)帶寬離散化關(guān)系

Table 1 Relationship between buffer filling and
network bandwidth discretization

狀態(tài)元素值范圍μk[0,μmax]secBk[0,Bmax]sec

Bk表示客戶端視頻緩沖填充狀態(tài),以秒(s)作為基本單位,定義如公式(11)所示:

Bk=Bk-1+Ts-dk*Ts

(11)

其中,dk表示在狀態(tài)k時從客戶端緩沖區(qū)提取出來的視頻片段的個數(shù),且由于只允許從客戶端緩沖中刪除完整的一個視頻片段,dk是一個整數(shù).而從客戶端緩沖中提取出來的視頻片段經(jīng)過解碼之后得到原始視頻片段,被放置到另外一個被稱為顯示緩沖區(qū)(Presentation Buffer)的緩沖區(qū)中.當(dāng)顯示緩沖區(qū)為空時,會從客戶端緩沖區(qū)中將新的視頻片段添加進去.因此dk的計算應(yīng)該考慮以下兩個方面:最后一個請求段的下載時間Δtk和當(dāng)前顯示緩沖區(qū)的占用大小PBk-1,PBk-1表示在前一個階段沒有被顯示的視頻片段部分.dk的定義如公式(12)所示:

(12)

客戶端緩沖區(qū)狀態(tài)Bk可以總結(jié)如下:當(dāng)Bk等于0時,由于客戶端緩沖區(qū)變?yōu)榭?,下載的視頻片段直接被添加到顯示緩沖區(qū),所以在前一個視頻片段下載的過程中視頻卡頓已經(jīng)發(fā)生了;反之,當(dāng)Bk等于最大緩沖大小Bmax時,客戶端需要等待顯示緩沖區(qū)為空才能重新請求一個新的視頻片段.

4.2 構(gòu)建回報函數(shù)

回報函數(shù)R反映了一個決策的好壞情況.在本文中,視頻片段播放時主要影響用戶QoE的因素有三個:視頻片段質(zhì)量水平大小、連續(xù)視頻片段的質(zhì)量變化幅度、視頻播放時發(fā)生卡頓.由于反應(yīng)客觀視頻質(zhì)量的PSNR參數(shù)與反應(yīng)主觀的視頻質(zhì)量的MOS之間存在擬線性關(guān)系.因此,我們用簡單的線性函數(shù)來建?;貓蠛瘮?shù)R,定義如公式(13)所示:

R=Rq-λRs-μRb

(13)

其中,Rq為視頻片段質(zhì)量水平的回報函數(shù),Rs為連續(xù)視頻片段質(zhì)量變化頻率的回報函數(shù),Rb為視頻播放時發(fā)生卡頓的回報函數(shù).

假設(shè)在一個視頻序列中有K個完整的片段.每個片段持續(xù)τ秒.客戶端播放器根據(jù)可用帶寬請求適當(dāng)質(zhì)量級別的視頻塊.請求的視頻質(zhì)量級別相應(yīng)地分別為{q1,q2,…,qK},該集合表示請求的視頻質(zhì)量序列.因此,視頻質(zhì)量回報Rq可以表示為使用當(dāng)前參數(shù)時所有請求的視頻質(zhì)量級別的平均值,定義如公式(14)所示:

(14)

質(zhì)量切換頻率回報函數(shù)Rs可評估為相鄰段之間質(zhì)量變化的平均次數(shù)以及變化的幅度,定義如公式(15)所示:

(15)

Rs旨在為了維持視頻片段質(zhì)量變化的幅度盡可能的小,當(dāng)兩個連續(xù)的視頻片段的質(zhì)量突然變化很大,那么將會得到一個較大的懲罰.

而視頻播放卡頓回報函數(shù)Rb可以用緩存饑餓事件在總播放時長中比率來衡量.假設(shè)總饑餓時間Ts與總顯示時間Tt的比值,如下所示:

(16)

Tt=N·τ+Ts

(17)

當(dāng)緩沖區(qū)變?yōu)榭諘r發(fā)生饑餓事件,即卡頓事件.假設(shè)qi表示請求的第i個視頻塊,其所對應(yīng)的視頻碼率為Ri,下載期間的網(wǎng)絡(luò)帶寬是bi,而在下載前,緩沖區(qū)保留的長度為Ti-1.因此,可以按公式(18)計算相應(yīng)的饑餓時間:

(18)

因此,如果在下載新的視頻塊前保持足夠的緩沖儲備,即Ti-1≥Ri×τ/bi,則不會發(fā)生饑餓.否則,饑餓時間是下載時間與緩沖區(qū)預(yù)留長度之間的差.最后,總饑餓時間可以計算為所有饑餓時間的總和:

(19)

4.3 探索策略

當(dāng)Agent得到回報函數(shù)值并且更新Q表之后,在某個狀態(tài)下具體選擇某個行動主要有兩種策略:一種是探索策略,隨機選擇一個行動,這樣對于探索未知的行動會產(chǎn)生更好的效果,且更有利于Q值的更新,對算法的性能與收斂速度有重要的影響;另外一種是利用過往經(jīng)驗的策略,為了能獲得最大的期望回報,選擇在當(dāng)前狀態(tài)下Q值最大的行動.本文采取ε-greedy貪心算法進行探索,探索的過程根據(jù)概率ε(0≤ε≤1)來隨機地選擇下一步行為.ε-greedy貪心算法的選擇策略π(s)為:

(20)

其中0≤ζ≤ 1是均勻分布的隨機數(shù),每次進行決策前,都會對ζ隨機賦值.若ζ<ε,Agent從行為集合A中隨機選擇一個行為執(zhí)行.若ζ≥ε,Agent 則遍歷行為集合A中的所有行為,最終執(zhí)行能夠獲得最大Q值的某個特定的行為.

算法1詳細描述了利用每個狀態(tài)-行動對的平均回報值來生成最終收斂的配置表.

算法1.Q值的初始化

輸入:學(xué)習(xí)速率α,折扣因子γ,系統(tǒng)狀態(tài)s,客戶端行為集合A,貪心系數(shù)ε,權(quán)重系數(shù)λ、μ

輸出:Q表

1.初始化Q(s,a)表;

2.Repeat (for each episode);

3. ζ ← random(0,1);//在[0,1]內(nèi),取一隨機值 ζ

4. if(ζ<ε)

5.a←random(A)

6. else

7.a←argmaxα∈AQ(s,a)

//計算執(zhí)行行為a后的視頻片段平均質(zhì)量Rquality

//計算執(zhí)行行為a后的視頻播放卡頓率Rbufferstate

10.Tt←N×τ+Ts//總播放時長

//計算執(zhí)行行為a后的視頻碼率切換回報函數(shù)Rswitches

12.Rswitches←-AVG(|qi-qi-1|)

13.R←Rquality+λRswitches+μRbufferstate

//更新Q表

14.Q(sk,ak) ← (1-α)Q(sk,ak)+α·(R+γ·maxbQ(sk+1,b))

15.Sk:Sk+1

16.UntilQ收斂

5 實驗與結(jié)果分析

實驗環(huán)境搭建.客戶端程序是基于Dash.js的一個播放器,一個由mpeg-dash論壇實現(xiàn)的基礎(chǔ)播放器,其使用的編程語言是JavaScript.我們對Dash.js作了一定程度的修改,修改后的Dash播放器會周期性的上報吞吐量變化信息、緩沖區(qū)長度、視頻播放狀態(tài)等播放信息.

我們將ABR參數(shù)自適應(yīng)的核心算法部署在了邊緣節(jié)點上,邊緣節(jié)點負責(zé)依據(jù)客戶端上報的播放器數(shù)據(jù)返回相應(yīng)的ABR算法參數(shù)值.

移動終端的配置Qualcomm Snapdragon 835處理器,8核16線程,主頻2.45GHz;6GB RAM;支持IEEE 802.11n WiFi和4G/3G/2G;Android 7.1.1操作系統(tǒng).視頻服務(wù)器的配置Intel(R) Xeon(R) CPU E5-2620 v4的處理器,16核32線程,主頻為2.10GHz;32GB RAM;Ubuntu 16.04 64位.邊緣計算節(jié)點的配置為Intel Core i7 4790處理器,4核8線程,主頻為3.6GHz;16GB RAM;128GB固態(tài)硬盤(SSD).路由器選用極路由HC5962,內(nèi)存56Mb.

實驗過程中,我們通過ChromeDevTools API來模擬不同的網(wǎng)絡(luò)條件.這樣我們就可以使用基于吞吐量跟蹤的Chrome遠程接口來控制上傳和下載吞吐量以及延遲,便于我們模擬真實的應(yīng)用場景.

模擬數(shù)據(jù)集.模擬數(shù)據(jù)集(1)https://www.fcc.gov/reports-research/reports/.全部來自三個月內(nèi)收集到的真實用戶播放視頻時的吞吐量跟蹤數(shù)據(jù).每條數(shù)據(jù)都包含一段時間內(nèi)視頻塊大小和它們的下載時間.我們通過將塊大小除以它們的下載時間來獲得吞吐量.數(shù)據(jù)集中既包含使用有線連接的PC端視頻播放時的吞吐量數(shù)據(jù),也包含了使用WIFI或蜂窩連接的移動設(shè)備上的吞吐量數(shù)據(jù).我們主要關(guān)注的是平均吞吐量低于6 Mbps的數(shù)據(jù).

視頻質(zhì)量評估參數(shù).在這里,我們使用前面定義的回報函數(shù)作為衡量單個視頻片段質(zhì)量水平的決策好壞的方法.為了評估不同方法的效果,我們還需要使用一個衡量在整個播放過程視頻質(zhì)量的參數(shù).一般情況下,QoE只能通過主觀評價測試或者使用客觀的用戶感知模型來衡量.HAS類型的視頻的QoE的衡量現(xiàn)在仍是一個非?;钴S的研究課題,而只有少量的客觀衡量指標(biāo)能被使用.定義HAS視頻的QoE依賴于視頻片段質(zhì)量水平的平均值和標(biāo)準(zhǔn)差,但此方法并沒有考慮視頻卡頓對QoE的影響.而視頻卡頓主要依賴于卡頓的次數(shù)和平均長度.于是,我們在此基礎(chǔ)上,構(gòu)建一個連續(xù)的函數(shù)來測量視頻卡頓對QoE的影響,定義如公式(21)所示.

(21)

其中,F(xiàn)freq表示視頻卡頓的頻率,F(xiàn)Tavg表示卡頓的平均長度.假定:當(dāng)沒有卡頓發(fā)生時,函數(shù)值設(shè)為0.

衡量QoE大小的MOS(Mean Opinion Score)的計算方法在沒有卡頓的場景中非常有效.于是,結(jié)合視頻播放質(zhì)量、視頻質(zhì)量轉(zhuǎn)換次數(shù)以及視頻卡頓三個方面因素對QoE的影響,一段由K個視頻片段組成且片段k播放質(zhì)量為Qk的HAS類型的視頻播放時MOS的計算公式如公式(22)所示.

eMOS=max(0.81*μ-0.95*σ-4.95*φ+0.17,0)

(22)

參數(shù)設(shè)定.我們設(shè)定一系列能提高算法執(zhí)行效率的參數(shù),例如的參數(shù)學(xué)習(xí)率α、折扣因子γ、客戶端上報周期D等,如表2所示.需要說明的一個參數(shù)是客戶端上報周期D,它代表播放器上報信息的間隔,一般它等于一段時間內(nèi)視頻塊下載的塊數(shù).當(dāng)決策周期太短時,決策結(jié)果將會在很大程度上受到瞬時狀態(tài)的影響,不能真實地反應(yīng)出狀態(tài)的變化;當(dāng)決策周期太長,算法對環(huán)境狀態(tài)的改變不能做出積極的響應(yīng),從而導(dǎo)致整體性能的下降.所以能獲得最好結(jié)果的參數(shù)選擇為D=15,這樣回報函數(shù)只考慮重要的測量,以減少瞬時狀態(tài)和次優(yōu)決策傳遞對結(jié)果的影響.

表2 參數(shù)及其估計值
Table 2 Parameters and their estimated values

參數(shù)估計值D5,10,15,20α0.1,0.5,0.9γ0.1,0.5,0.9

我們對不同的參數(shù)組合進行了實驗,統(tǒng)計結(jié)果如表3所示.由表3可知,大部分的平均視頻質(zhì)量評估值是接近的,這說明了本文提出來的視頻碼率自適應(yīng)調(diào)節(jié)機制具有較好的魯棒性.當(dāng)學(xué)習(xí)率為0.1、折扣率為0.1時,能獲得更高的平均視頻質(zhì)量評估值.所以,在下面的實驗中,我們設(shè)定α=0.1、γ=0.1.

表3 在不同折扣率與學(xué)習(xí)率下的系統(tǒng)性能評估值
Table 3 Average video quality evaluation value at different
discount rates and learning rates

γαeMOS0.10.11.2360.10.51.2200.10.91.1230.50.11.1990.50.51.1340.50.91.0140.90.11.0530.90.50.9890.90.90.836

在本節(jié)中,我們將展示ABR參數(shù)自適應(yīng)機制引入到現(xiàn)有3種算法之后的性能:Bola、Hyb和RobusMPC.

5.1 Bola和Hyb

Bola算法通過求解優(yōu)化問題來選擇比特率.Bola是dash.js[11]中使用的一種基于緩沖區(qū)的算法,因此它在進行比特率判定時不使用吞吐量預(yù)測.它還將比特率選擇建模為一個優(yōu)化問題,并對給定的緩沖區(qū)值進行了求解.它使用下載最低比特率的最小緩沖閾值和它試圖維護的目標(biāo)緩沖區(qū)閾值的比例γ.簡單來說,γ控制著ABR避免緩沖的力度.較高的γ值意味著算法比較保守.Bola算法旨在最大限度地提高平均比特率,同時最小化卡頓.通過對比試驗,我們發(fā)現(xiàn)將參數(shù)自適應(yīng)機制應(yīng)用于Bola算法可以顯著改進現(xiàn)有的一些ABR算法,尤其是在最小化卡頓時間和最大化平均比特率方面有明顯的提升.

圖5 PA算法相較于與BOLA和HYB性能對比Fig.5 Comparison of PA algorithm performance with BOLA and HYB

在參數(shù)自適應(yīng)系統(tǒng)與Bola算法協(xié)同工作時,邊緣節(jié)點根據(jù)網(wǎng)絡(luò)吞吐量對其算法內(nèi)的參數(shù)γ進行實時調(diào)節(jié).參數(shù)γ的大小意味著避免卡頓在Bola算法內(nèi)的權(quán)重.在Dash.js中實現(xiàn)的Bola算法參數(shù)γ默認為-10.28.圖5顯示了在兩個底層度量方面引入?yún)?shù)實時自適應(yīng)機制后的算法的性能都優(yōu)于傳統(tǒng)算法,即卡頓率和平均比特率.在保證了原有的卡頓率不變的情況下,相較于BOLA算法,超過82%的視頻播放提高了平均比特率,并且在所有實驗樣本中比特率平均增加了7.0%.

我們也對Hyb算法進行了對比實驗.Hyb算法[14]使用了簡單的啟發(fā)式選擇比特率.Hyb綜合考慮了預(yù)測的吞吐量和當(dāng)前的緩沖區(qū)占用率.對于每一視頻塊,Hyb選擇可以避免卡頓的最高的比特率.具體來說,如果Sj(i)表示按比特率i編碼的塊j的大小,B是基于過去樣本的預(yù)測吞吐量,L代表緩沖區(qū)的長度.Hyb會選擇最大的比特率i,使得Sj(i)/B

5.2 RobustMPC

此外,我們還試驗了將ABR參數(shù)自適應(yīng)機制與MPC算法相結(jié)合,我們實驗對比的對象是MPC算法中性能最好的變體RobustMPC算法.改良后的MPC算法會根據(jù)當(dāng)前網(wǎng)絡(luò)狀態(tài)選擇一個折扣參數(shù)的最佳值d,來代替原本算法使用中的吞吐量估計值.改良后的算法在卡頓率和平均比特率兩方面的QoS指標(biāo)有明顯提升.將參數(shù)自適應(yīng)系統(tǒng)與MPC算法協(xié)作時,在比特率分布上與RobuMPC相似,如圖6(a)所示.它顯著地減少了視頻播放的卡頓情況:存在卡頓的會話數(shù)量從30.2%減少到5.1%.圖6(b)則顯示了PA機制在平均比特率方面表現(xiàn)更優(yōu)于MPC算法.此外,它還通過將每個視頻塊碼率變化幅度的均值提高38%來實現(xiàn)更好的回放平滑度.

圖6 PA算法相較于與RobustMpc性能對比Fig.6 Comparison of PA algorithm performance with RobustMpc

由圖7可知,本文提出的基于Q-learning的視頻碼率算法參數(shù)自適應(yīng)機制與BOLA、MPC原型算法相比,在平均視頻質(zhì)量評估值方面能提升5%~12%,其中eMOS值的計算方法可參照公式(22).

圖7 平均視頻質(zhì)量評估值對比Fig.7 Average video quality evaluation value comparison

在與MPC算法對比時,我們發(fā)現(xiàn)本章提出來的視頻碼率自適應(yīng)機制的有效性,甚至能獲得比其他碼率自適應(yīng)機制更好的效果.同時,從圖中不難發(fā)現(xiàn),隨著最大緩沖空間的增大,平均視頻質(zhì)量評估值亦會增大.因為隨著緩沖空間的增大,若是弱網(wǎng)環(huán)境,則緩沖的初始階段會緩沖更多的視頻數(shù)據(jù),使得視頻在播放的過程中發(fā)生重新緩沖的概率減小,從而視頻卡頓的時長以及頻率也將會減少.

圖8 平均視頻質(zhì)量評估值對比Fig.8 Average video quality evaluation value comparison

如圖8所示,與傳統(tǒng)的MPC、BOLA相比,本文提出來的基于Q-learning的視頻碼率調(diào)節(jié)算法在不同的網(wǎng)絡(luò)環(huán)境下均能獲得更好的視頻服務(wù)質(zhì)量.這樣進一步說明了本文的視頻碼率調(diào)節(jié)機制在實際網(wǎng)絡(luò)環(huán)境下具有較好的適應(yīng)性.同時,對比分析會發(fā)現(xiàn),采用WiFi的接入方式能獲得更好的視頻服務(wù)質(zhì)量,這主要是因為移動網(wǎng)絡(luò)是復(fù)雜多變的[8],更容易發(fā)生網(wǎng)絡(luò)突變,使得網(wǎng)絡(luò)帶寬預(yù)測不夠準(zhǔn)確.

6 結(jié)束語

本文提出了一種基于強化學(xué)習(xí)的自適應(yīng)視頻碼率調(diào)節(jié)機制,實現(xiàn)了根據(jù)網(wǎng)絡(luò)狀態(tài)實時調(diào)整ABR算法.與傳統(tǒng)啟發(fā)式的參數(shù)調(diào)節(jié)方法不同,我們通過對網(wǎng)絡(luò)狀態(tài)的感知來為ABR算法選擇合適的參數(shù).研究發(fā)現(xiàn),本文提出的算法顯著提高了Bola、Hyb以及RobustMPC的性能.在實驗中的數(shù)據(jù)集內(nèi)有大約80%的視頻播放,都可以獲得不同程度的視頻平均比特率提升,視頻播放的總體平均比特率提高大約8.3%,尤其是在網(wǎng)絡(luò)波動較大的情況下,提升效果更為顯著.我們的工作可以作為設(shè)計新型視頻碼率調(diào)節(jié)系統(tǒng)的依據(jù).

猜你喜歡
比特率碼率緩沖區(qū)
嵌入式系統(tǒng)環(huán)形緩沖區(qū)快速讀寫方法的設(shè)計與實現(xiàn)
基于狀態(tài)機的視頻碼率自適應(yīng)算法
基于多個網(wǎng)絡(luò)接口的DASH系統(tǒng)設(shè)計與實現(xiàn)
相同比特率的MPEG視頻雙壓縮檢測*
基于場景突變的碼率控制算法
X264多線程下碼率控制算法的優(yōu)化
計算機工程(2015年8期)2015-07-03 12:19:56
關(guān)鍵鏈技術(shù)緩沖區(qū)的確定方法研究
多光譜圖像壓縮的聯(lián)合碼率分配—碼率控制方法
基于能量分配提高糾錯碼誤比特率性能的研究
地理信息系統(tǒng)繪圖緩沖區(qū)技術(shù)設(shè)計與實現(xiàn)
鄂托克前旗| 太仓市| 伊通| 耿马| 东源县| 望江县| 廊坊市| 威海市| 板桥市| 巨野县| 郓城县| 阿瓦提县| 上栗县| 漯河市| 耒阳市| 康乐县| 舒兰市| 嘉荫县| 永定县| 大连市| 大同县| 横峰县| 焦作市| 农安县| 大化| 武汉市| 中阳县| 启东市| 北安市| 夹江县| 灌南县| 新和县| 蒙自县| 邢台市| 荆门市| 石嘴山市| 东安县| 湟源县| 屏东市| 湾仔区| 榆林市|