?

基于狀態機的視頻碼率自適應算法

2018-08-27 10:42胡凌煒付園鵬
計算機應用 2018年7期
關鍵詞:碼率狀態機閾值

黃 勝,胡凌煒,付園鵬

(重慶郵電大學 光通信與網絡重點實驗室,重慶 400065)(*通信作者電子郵箱hulw1018@163.com)

0 引言

基于超文本傳輸協議(Hyper Text Transfer Protocol, HTTP)的動態自適應流媒體傳輸技術(Dynamic Adaptive Streaming over HTTP, DASH)定義了媒體呈現描述(Media Presentation Description, MPD)文件以及媒體段的文件格式。MPD文件包含了媒體段的一些基本信息,如位置、時序、比特率等,服務器依據標準將同一視頻內容編成多種碼率版本,并以固定的時間間隔對視頻進行切片,客戶端實時檢測網絡帶寬、播放緩存變化等信息,并根據MPD文件所記載的信息向服務器請求不同碼率的視頻片段[1-2]。

然而DASH并沒有對碼率自適應機制給出標準定義,高性能的碼率自適應算法能夠提升客戶的觀看體驗,因此基于DASH的碼率自適應算法成為視頻傳輸領域的研究熱點[3]?,F有的碼率自適應方法主要從傳輸帶寬和播放緩存兩個角度進行考慮。文獻[4-6]中所提出的方法是典型的基于帶寬的碼率自適應算法,其中文獻[5]運用調和平均值來估計帶寬,減小帶寬估計中的離群值帶來的影響;文獻[6]對三個不同的客戶端的碼率自適應機制進行對比,其中一個客戶端是Adobe公司的開源媒體框架(Open Source Media Framework, OSMF)流媒體播放器,其自適應機制是根據最近請求的兩個片段的下載時長來估計可用帶寬,而下一個片段的碼率則小于該估計帶寬的最大等級碼率。文獻[7-10]所提出的算法是典型的基于播放緩存的碼率自適應控制算法,文獻[9]提出基于模糊邏輯控制器的DASH(Fuzzy-based DASH, FDASH)碼率自適應算法,根據當前播放緩存與目標緩存的差值和播放緩存變化量這兩個參數,按照一定的規則控制輸出碼率。文獻[10]對客戶端緩沖區進行分級,實現帶寬的不同比例縮放,并采用滑動窗口技術對帶寬進行平滑處理。同時,通過設置每個緩沖區等級的帶寬持續上升或下降時間的限制和采用高低帶寬的中間碼率等級,使碼率等級不會劇烈變化。結合基于帶寬和播放緩存算法兩者的特點,文獻[11-12]從體驗質量(Quality of Experience, QoE)的角度提出碼率自適應算法,通過對QoE進行數值分析,并利用一定的控制方法對請求的視頻碼率進行控制,力求達到較好的QoE。然而上述方法無法避免帶寬快速波動導致碼率頻繁切換的問題,或者不能很好解決播放流暢性和視頻質量之間的矛盾。

針對上述問題,本文提出一種基于狀態機的DASH(State machine-based DASH, SDASH)算法,用狀態機對碼率切換過程進行分析與控制,充分考慮QoE影響因素,將影響因素的數值變化和視頻碼率之間的聯系作為碼率切換的驅動條件,在保證播放緩存和碼率偏移率處于一定閾值的條件下將片段碼率切換至視頻質量和播放流暢性整體性能相對最優的碼率等級上,從而達到較好的觀看體驗。

1 QoE分析

由于網絡帶寬存在動態隨機性,如果沒有一個高效的碼率自適應切換算法,用戶在觀看過程中可能會遇到播放停頓,碼率切換頻繁,碼率階躍、驟降等情況,視頻傳輸過程采用碼率自適應算法的最主要目的就是盡量避免上述情況出現,最大化QoE。在基于DASH的流媒體系統中,QoE的主要影響因素為以下三個:視頻碼率、碼率切換的頻率及幅度、播放停頓次數及停頓時長[13]。

為不失一般性,本文假設服務器中存儲的視頻碼率等級為{L0,L1,…,LK-1|L0

(1)

播放的流暢性,即碼率切換頻率和幅度,則可以通過N個片段碼率的標準差σk來定量描述,得到如下計算式:

(2)

式(3)代表第k+1個片段下載完成時的播放緩存為開始下載第k+1個片段時的播放緩存加上片段時長T,再減去下載第k+1個片段所需的時間,也就是在下載過程中播放器消耗的緩存時長。另外,如果帶寬過高,播放緩存存在溢出的可能性,那么就需要一個暫停請求機制來防止緩存溢出,暫停時間為τs。為避免播放出現停頓,需要盡量將qk保持在一定閾值內。

(3)

2 基于狀態機的碼率自適應算法

2.1 碼率切換的狀態轉移過程

本文采用狀態機的設計思想對碼率切換過程進行分析與控制。狀態機通過監測QoE影響因素的數值變化,充分利用影響因素與各個碼率狀態間的聯系控制碼率切換,使切換過程具有較好的QoE。本文考慮到QoE影響因素中的播放流暢性,將碼率切換幅度作為其中一個重要影響因素,特別是當播放緩存不足時需要進行碼率下降操作,如果直接將碼率切換至初始碼率則可能引起碼率驟降,因此需要為碼率切換設定對應的過渡狀態lt以減小碼率驟降對QoE的影響;同時考慮到視頻傳輸過程的網絡帶寬利用率,將最接近平均帶寬的碼率等級lb設置為其中一個目標狀態;當存在帶寬波動等原因需要進行碼率切換時,為減少碼率切換對QoE帶來的影響,在一般情況下采用逐級遞增或者遞減的切換方式,因此將碼率等級加1和碼率等級減1作為目標狀態;其他碼率等級狀態分別為碼率等級保持和避免出現緩存溢出而設定的暫停請求狀態。假設lk為vk對應的碼率等級,在第k個片段完成下載之后,其對應的可轉移狀態如圖1所示。接下來需要確定狀態轉移條件1~6,使碼率自適應過程為客戶提供盡可能好的QoE。

圖1 狀態轉移圖

2.2 面向QoE的狀態轉移條件

根據文獻[15]可知碼率對于用戶體驗的影響遵循對數準則。因為mk和σk都與片段的碼率直接相關,所以視頻碼率和播放流暢性對QoE的影響就可以分別用如下公式表示:

Q_m=ln (mk+ε)

(4)

Q_σ=ln (σk+φ)

(5)

兩者整體對QoE的影響則可以通過式(6)描述:

Qk=a*Q_m-b*Q_σ

(6)

其中ε和φ為常系數,防止式(4)和(5)取對數時出現異常值,一般取數值1即可,片段碼率均方差越小視頻越流暢,{a,b|a+b=1,a>0,b>0}為兩個影響因素的系數。

定義qmin、qmax分別為播放緩存qk的上下兩個閾值,使qk保持在一定范圍內即可避免出現緩存不足導致播放停頓或者緩存溢出等問題,如下所示:

qmin

(7)

θk=|mk-bN|/bN

(8)

其中:bN為最新請求的N個片段的平均下載帶寬。定義θmax為碼率偏移率的最大閾值,使θk保持在一定范圍內,當視頻碼率與鏈路帶寬在一定范圍內保持一致時即可對播放緩存起到一個穩定作用,從而盡量避免碼率出現周期性切換,限定條件如式(9)所示:

0≤θk≤θmax

(9)

綜上所述,轉移條件1、2、3總的切換準則是:在滿足播放緩存和碼率偏移率在一定閾值的條件下選擇Qk+1_max所對應的碼率等級,因此,狀態轉移條件如下。

狀態轉移條件1

在滿足總的切換準則的前提下,進行上升或者下降操作后的碼率等級必須屬于事先設定的碼率等級集合{L0,L1,…,LK-1|L0

狀態轉移條件2

0≤θk≤θmax&&qmin

穩定的作物經濟狀況以及良好的種植條件促進了巴西種植的快速開始。有分析師認為未來巴西大豆面積將增加3%至5%,玉米面積將增加5%以上。

狀態轉移條件3

0≤θk≤θmax&&qmin

接下來對條件4進行分析,當θk>θmax&&qmin

狀態轉移條件4

θk>θmax&&qmin

此外,在視頻請求的初始階段,為保證盡可能低的初始播放時延,將初始碼率設置為L0,當播放緩存達到閾值qmin時,狀態轉移條件4的限制能夠將初始碼率直接從L0提升至lb,不必經歷碼率逐步提升的階段,從而盡快為客戶提供高碼率片段。

狀態轉移條件5

狀態轉移條件6

qk≥qmax

在播放緩存滿足條件6的情況下,需要進行暫停請求的操作,當qk

2.3 算法流程

本文所提算法的具體步驟如下所示。

2)計算mk、bN、θk。

3)判斷是否滿足條件qmin

4)判斷是否滿足條件qk

7)判斷是否滿足條件θk>θmax&&qmin

8)進行暫停請求操作,暫停時間為τs,并將lk賦予lk+1,算法結束。

3 實驗結果與分析

3.1 實驗設置

為驗證算法的有效性,本文采用NS3中DASH模塊對算法進行仿真,操作系統為Ubuntu 14.04,主機CPU為2.3 GHz,RAM為4 GB,將本文所提算法SDASH與文獻[9]所提的FDASH碼率自適應算法在相同環境下進行對比,并分析其結果。在算法的驗證實驗中,將SDASH的QoE影響系數a和b分別設置為0.5和0.5,播放緩存的上下限qmin和qmax分別設置為8 s和90 s,碼率偏移率的閾值θmax設置為0.25,最新請求的片段個數N設置為4。按照文獻[9]原文的設定,FDASH的目標播放緩存設置為35 s,吞吐量估計周期設置為60 s,模糊邏輯控制器的輸出成員函數的系數N1、N2、Z、P1、P2分別設置為0.5、0.25、1、1.5、2。本實驗中服務端存儲的視頻碼率設定為300 Kb/s、700 Kb/s、1 500 Kb/s、2 500 Kb/s、3 500 Kb/s五個等級,視頻片段的固定長度為2 s,實驗設定的仿真時長為500 s。

3.2 結果分析

圖2顯示了兩種自適應算法在鏈路帶寬緩慢隨機波動的情況下各自的片段碼率變化曲線。圖2顯示的FDASH碼率自適應機制在仿真的前112 s所傳輸的視頻片段碼率都是300 Kb/s,之后逐步攀升至3 500 Kb/s,持續到284 s后碼率逐步下降到1 500 Kb/s,經過一段時間后又逐步上升到3 500 Kb/s。FDASH算法在仿真初始階段持續請求低碼率的視頻片段,原因在于當播放緩存低于閾值時,FDASH采用保守的決策機制。當播放緩存達到一定閾值之后,又采用窮盡式的方式提升視頻碼率,雖然這可以短時提升觀看體驗,但同時也會使播放緩存出現大幅波動,容易產生周期性碼率等級變化,且長時間請求低碼率視頻會嚴重降低QoE。

從圖2中可以看出,本文所提的SDASH算法在仿真開始階段,當播放緩存達到閾值之后,因為碼率偏移率的限制,能夠快速使視頻碼率從300 Kb/s提升至1 500 Kb/s,隨著鏈路帶寬的提升和播放緩存的增加逐步提升至2 500 Kb/s,并一直保持到仿真結束,整個過程沒有出現碼率階躍或者驟降的情況。表1給出了本次實驗兩種算法各自的視頻平均碼率和碼率切換次數。表1的結果顯示,相比FDASH算法,本文所提SDASH算法決策出的片段平均碼率要高0.11 Mb/s,且碼率切換次數較少。

圖2 帶寬緩慢隨機變化環境下算法性能對比

Tab. 1 Statistics of simulation results under slow and stochastic bandwidth variation

圖3顯示了兩種自適應算法在鏈路帶寬快速波動的情況下各自的片段碼率變化曲線。

圖3 帶寬快速隨機變化環境下算法性能對比

圖3仿真結果顯示,FDASH算法的仿真結果與圖2中該算法的片段碼率曲線整體趨勢相似。SDASH算法能夠在初始階段就將視頻片段碼率從300 Kb/s提升至2 500 Kb/s,隨著播放緩存和碼率偏移率的變化,碼率在1 500 Kb/s與2 500 Kb/s間緩慢波動;在278 s處由于播放緩存下降至8 s以下,因此碼率下降兩個等級至700 Kb/s,隨著播放緩存的恢復,碼率又回升至2 500 Kb/s,整個過程不存在碼率階躍或者驟降的情況。表2為帶寬快速隨機變化下的兩種算法的平均碼率和碼率切換次數的對比結果,結果顯示,SDASH算法決策的片段平均碼率高出FDASH的決策結果0.28 Mb/s,提高約14.14%。碼率切換次數方面,在帶寬快速且大幅波動的情況下,經過SDASH算法決策的片段碼率比FDASH算法的片段碼率切換次數要多;但是在視頻傳輸的初始階段,SDASH算法相比FDASH算法能夠更快將請求的片段上升到較高的碼率等級。顯然,持續提供較長時間的低碼率視頻將會降低觀看體驗質量,而本文所提算法SDASH能夠一定程度上克服FDASH算法所存在的視頻傳輸初始階段碼率決策較為保守的缺點。

表2 帶寬快速隨機變化下仿真結果統計

4 結語

針對DASH應用環境中存在的播放流暢性與視頻質量之間的矛盾,本文提出一種基于狀態機的碼率自適應算法,采用狀態機對碼率自適應過程進行控制,將影響因素的數值變化與視頻碼率之間的聯系作為狀態轉移條件,依據一定的準則作出碼率切換決策。實驗結果表明,本文所提出的碼率自適應機制能夠較快將片段初始碼率切換到較高碼率,同時在保證較少碼率切換次數的條件下,為客戶提供較高的視頻碼率,且減少碼率驟降等情況出現。下一步工作將在實際視頻傳輸系統中應用本文所提算法,對碼率切換是否會模糊場景切換這一問題進行研究,并對視頻請求過程的QoE進行主觀評價,根據反饋進一步優化算法。

猜你喜歡
碼率狀態機閾值
基于緩存補償的視頻碼率自適應算法
流媒體視頻的兩階段碼率調節提升QoE策略研究
移動視頻源m3u8多碼率節目源終端自動適配技術
土石壩壩體失穩破壞降水閾值的確定方法
FPGA狀態機綜合可靠性探究 ①
一種基于HEVC 和AVC 改進的碼率控制算法
采用紅細胞沉降率和C-反應蛋白作為假體周圍感染的閾值
基于有限狀態機的交會對接飛行任務規劃方法
基于Spring StateMachine的有限狀態機應用研究
遼寧強對流天氣物理量閾值探索統計分析
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合