孫 鵬,丁國梁,劉海濤,吳 濤,凌 洋,王 健
(中國移動通信集團設計院有限公司 江蘇分公司,江蘇 南京 210029)
用戶體驗質(zhì)量(Quality of Experience,QoE)是從用戶角度來對一個服務感知體驗的評判。QoE的定義和影響因素在不同的文獻中被展開諸多討論,目前仍未達成一致的研究共識。其中QoE在ITU的定義為終端用戶對應用或者服務整體的主觀可接受程度[1]。綜合文獻中對QoE的定義描述,本文將QoE定義為終端的用戶在實際環(huán)境下與服務交互的過程中產(chǎn)生的對流媒體服務的主觀感受與認可程度的評判。流媒體服務的QoE包含了用戶在一定客觀環(huán)境下使用流媒體服務過程中的身心體驗、與服務交互時產(chǎn)生的主觀感受以及服務結束后對服務的認可程度,因此QoE貫穿了流媒體服務的整個生命周期。
QoE的評價量化方案分為主觀評測和客觀評測,常規(guī)QoE主觀評價是隨機選擇一批事先不知情人員,將其暴露于特定環(huán)境可控的氛圍中,采用規(guī)定的時間讓其觀看一系列連續(xù)的測試序列,通過不同方法來計算收集他們對觀看的視頻的評分,即平均意見分(Mean Opinion Score,MOS),并對所得數(shù)據(jù)進行分析。
而文中將QoE客觀評價方案歸并為網(wǎng)絡QoS參數(shù)的獲取評判以及基于視頻內(nèi)容本身的相似度對比或質(zhì)量評判。有效獲取流媒體服務中的客觀參數(shù)是能否準確量化QoE的關鍵因素。將針對視頻碼率調(diào)節(jié)中產(chǎn)生的客觀參數(shù)提出一套QoE的映射關系。
視頻碼率調(diào)整(Rate Adaptation,RA)是一種為了最大化用戶QoE來進行視頻塊碼率分配的策略。一般來說,最高的視頻質(zhì)量(泛指視頻碼率),最少的視頻播放中斷(重載)和最平滑的碼率變化可帶來最好的觀感體驗。
基于網(wǎng)絡容量的方法和基于緩沖區(qū)的方法是現(xiàn)有碼率的主流調(diào)節(jié)方法。前者基于預估計的網(wǎng)絡容量來調(diào)整視頻碼率,這導致調(diào)節(jié)很難準確。過高估計和過低估計可用網(wǎng)絡容量將分別導致不必要的重載和偏低的視頻質(zhì)量?;诰彌_區(qū)的策略則盡可能地利用緩沖區(qū)占用率來引導碼率調(diào)節(jié)過程。如果緩沖區(qū)接近其最大容量大小,則采取更積極的策略來獲取更高質(zhì)量的視頻塊,反之就更保守地選擇下一塊的視頻碼率。在文獻[2]中,雖然視頻碼率自適應基于網(wǎng)絡容量估計,但其實該模型將客戶端的緩存容量級別作為反饋。在文獻[3]中,設計兩種不同的獨立操作步驟,當緩沖區(qū)剛建立并開始增長時,可用網(wǎng)絡容量的編碼信息不充分,碼率調(diào)節(jié)依賴于網(wǎng)絡估計,并且當緩沖區(qū)已經(jīng)建立時,碼率調(diào)節(jié)僅基于播放緩存區(qū)(BBA)。在文獻[4]中,通過使用Lyapunov優(yōu)化技術改進BBA。在文獻[5]中,HAS動態(tài)緩存驅(qū)動碼率調(diào)節(jié)是依靠客戶端和基站側的協(xié)作來執(zhí)行的。在文獻[6]中,研究了聯(lián)合用戶關聯(lián)和碼率調(diào)節(jié)的問題,以在滿足用戶QoE要求的同時最大化系統(tǒng)效用?,F(xiàn)有的DASH方法使所選擇的目標處于平等的基礎而不考慮在視頻播放期間時變用戶QoE焦點的變化。
基于這樣的一個觀點,在視頻播放過程中,不同階段的關鍵QoE感知因素不相同。盡量最大化視頻質(zhì)量,在視頻啟動階段的關鍵QoE感知因素是啟動延遲,而碼率變化和重載決定了后續(xù)播放階段的QoE。利用這些特點,可以通過目標改善用戶實時體驗的退化,簡化用戶的服務質(zhì)量優(yōu)化。
本文首先分別定義視頻播放過程中的啟動階段和回放階段,然后分析影響用戶QoE的關鍵因素,并提出每個階段的視頻碼率自適應方法。
根據(jù)客戶端緩沖區(qū)的占用率將視頻觀看過程分為兩個階段:啟動階段和回放階段??蛻舳司彌_區(qū)大小通過下載的視頻塊的時間長度(以秒為單位)來度量,標定播放器的總緩沖區(qū)大小為240 s。當長度Ts= 4s的單個視頻塊在被下載好后,可以被添加到視頻緩存區(qū)去。每秒從緩沖區(qū)中移除1 s的視頻內(nèi)容并播放給用戶。播放器在從緩沖區(qū)播放4 s視頻塊時探測緩沖區(qū),保證緩沖區(qū)占用量必須是4 s的倍數(shù)。將緩沖區(qū)占用80 s內(nèi)的部分對應于視頻播放的啟動階段。當緩沖區(qū)占用率超過80 s時,則判斷為進入視頻播放的播放階段。影響用戶在視頻播放兩個階段體驗的關鍵因素不同,在啟動階段,用戶對啟動延遲更敏感,而在播放過程中,不好的視頻質(zhì)量和頻繁的重載很難被接受。因此,使用不同的自適應方法來選擇適當?shù)囊曨l塊碼率,從而改善用戶的QoE。
在啟動播放的階段,啟動延遲對QoE的影響大于視頻碼率高低和碼率波動帶來的影響,因為用戶對視頻打開即刻播放的要求迫切。因此面向QoE的視頻碼率自適應需要確保啟動延遲盡可能小,并且該策略基于網(wǎng)絡帶寬估計。為了最小化啟動延遲,一旦用戶按下視頻的播放按鈕,就為前3個連續(xù)時間的視頻塊選擇最低級別的視頻碼率R1,這保證了給定網(wǎng)絡帶寬下的最短啟動延遲。實際流媒體播放過程中開頭大多數(shù)是廣告以及背景信息,其視頻質(zhì)量對用戶QoE幾乎沒有影響,因此為這些內(nèi)容選擇較低的視頻碼率是可行的。
然后,在緩存區(qū)占用達到80 s之前,視頻碼率調(diào)節(jié)必須考慮視頻碼率和重載之間的權衡,盡量最小化視頻碼率調(diào)節(jié)的頻率。在視頻服務剛開始的階段,緩沖區(qū)占用率仍處于較低水平,其編碼的可用容量信息不足,不適合作為碼率調(diào)節(jié)的參照。啟動階段的核心碼率適配策略基于容量估計。啟動階段,當下載最后一個視頻塊并將其推入緩沖區(qū)時,將整個階段的平均下載速率Rd作為網(wǎng)絡容量的估計值,并將當前視頻塊的碼率記錄為Rc。下一個視頻塊Rnext的視頻碼率由當前視頻塊Rd和Rc之間的關系確定。
(1)Rd>Rc:這表明了可選擇更高級別的碼率,因為在該條件下緩存占有率變大。其中將視頻碼率R看做一系列離散值,R={R1,R2,...,Rn}。碼率自適應調(diào)節(jié)策略意在從R中為下一個視頻塊選擇一個合適的值。假設以高一階的視頻碼率Rc+1獲取下一個視頻塊,那么在與最新的一個視頻段相同的網(wǎng)絡條件下所需的下載時間是:
一個新視頻塊被下載的同時,緩沖區(qū)中的視頻內(nèi)容將以秒為單位向外播放。預防緩沖區(qū)耗盡的方法,需要確保下載新視頻塊的時間比占用緩沖區(qū)的時間短。定義BO(t)為下載新視頻塊之前的緩沖區(qū)剩余占有量。若Tthr≥BO(t),則繼續(xù)保留Rc作為下一個視頻塊的碼率;若Tthr<BO(t),進行類似于有限狀態(tài)機的碼率轉換[7]。
在BDRM中,最小視頻碼率R1被用來預測最壞情況下的網(wǎng)絡容量,并且當下一個視頻塊的計算下載時間小于緩沖器占用量時,視頻碼率立即增加[8]。相反,采用一個更積極的預測指標Rd來估計網(wǎng)絡容量,當計算出的下一個塊的下載時間小于緩沖器大小時,視頻碼率的增加更為謹慎。檢測到最后3個下載的視頻塊的碼率,如果它們共享相同的視頻碼率Rc,那么當Tthr<BO(t)再次發(fā)生時下一個視頻塊的碼率將調(diào)整為Rc+1;在其他情況下,仍然選擇與前一個塊相同的視頻碼率Rc。也就是說,只有當最后3個塊共享相同的視頻碼率時,視頻碼率才會根據(jù)指標Rd提示增加而調(diào)整增加。表1提供了2-S和BDRM之間的碼率調(diào)節(jié)比較。與BDRM相比,2-S更細致地增加視頻碼率,體現(xiàn)在以下兩個方面。
一是由于前3個視頻塊使用最小碼率R1,所以在一開始就可以很容易地滿足Rd>Rc和Tthr<BO(t)的條件,隨后視頻碼率就會被提升;
二是由于視頻碼率只有在連續(xù)3個視頻塊碼率都是Rc后才能提高到Rc+1,因此可以降低碼率變化的頻率,補償對網(wǎng)絡容量的過度估計。
(2)Rd≤Rc:在這種情況下將降低或保持視頻碼率。為了避免重載事件,應滿足以下公式:
對于可以滿足式(2)的最大視頻碼率Ri,若Ri<Rc,將R′設置為Ri,否則設R′為Rc;與情景(1)中增加部分不同,視頻碼率的降低將在下一個塊中立即執(zhí)行,且可以一次將視頻碼率降低幾個級別,如表1所示,2-S 在t 355時刻立即將視頻速率從R27降至R8。由于啟動階段的緩沖區(qū)占用時間不足以抵消低下載速率與高視頻碼率之間的不匹配,因此立即降低視頻碼率有助于避免重載。
表1 比較 2-S和 BDRM之間的碼率調(diào)節(jié)
當最開始的3個視頻塊以最低級別的碼率(R1)被下載后開始實行算法1,即啟動階段的2-S算法。在網(wǎng)絡容量估計的基礎上,當網(wǎng)絡條件良好時,視頻速率從最小值R1逐步提高,當網(wǎng)絡條件很差,視頻碼率立即降低。這一階段的主要目標是將啟動延遲保持在最小值,并在填充緩存器時降低重載發(fā)生的可能性。本文提出的2-S與BDRM相比,通過加入有窮狀態(tài)自動機來控制所選視頻碼率的變化性,這有利于降低因為視頻質(zhì)量波動導致的不悅觀感[8]。
當儲存器被填滿,即緩沖器占用率延伸到80 s時,添加到緩沖器最后一塊的視頻碼率是隨機的,并且其分布與啟動階段期間的網(wǎng)絡狀況密切相關。該視頻碼率值提供用于播放階段以下的基于緩沖器的速率適配策略的網(wǎng)絡容量先驗信息。
算法1啟動階段的碼率調(diào)節(jié)1:If BO(t) < 0 then 2:Rnext(t) = Rmin 3:end if 4:if BO(t - 1) >= 0 &&BO(t - 1) < 80 then 5:Rd = C(t - 1) // 將其平均下載速率Rd作為網(wǎng)絡容量的估計值6:Rc = Rnext(t - 1)7:if Rd >Rc then //對應階段(1)8: R’ = min(Rc+1, Rmax)9: Tthr = (R’ * Ts) / Rd 10: if Tthr < BO(t) && Rnext(t - 3) = = Rnext(t - 2) = = Rc // 判斷是否需要提升碼率11: then 12: Rnext(t) = R’13: else 14: Rnext(t) = Rc 15: end if 16: else 17: fine max R’ in R that satisfies (R’ * Ts) / Rd < BO(t - 1)18: if R’ < Rc then 19: Rnext(t) = R’20: else 21: Rnext(t) = Rc 22: end if 23: end if 24: end if
在回放階段期間,儲存器被填滿,即緩沖器占用率大于80 s。假設緩沖器占用足以抵抗網(wǎng)絡容量的波動,并且可以采取更積極的策略來基于緩沖器以提升視頻碼率[9]。當緩沖區(qū)達到80 s時,將最后一個塊的視頻碼率表示為Rbase,然后Rbase∈R是一個不確定的值,它受啟動階段的網(wǎng)絡條件的影響。算法2為正常播放階段的碼率調(diào)節(jié)。
本節(jié)的視頻碼率自適應方案實際上給出了所選碼率R和緩沖器占用率BO(t)之間的映射關系。如圖1所示,由于碼率自適應基于網(wǎng)絡估計,因此在啟動階段R和BO(t)之間沒有確定的關系。在播放階段,BO(t)的范圍為80~240 s,R與BO(t)成直線關系,直到BO(t)= 216 s,之后最大視頻碼率Rn用于獲取下一個塊。應當注意,當80 s≤BO(t)≤216 s時,所確定的具有端點(80 s,Rbase)和(216 s,Rn)的區(qū)間以及構成R和BO(t)的映射關系。由于R是一系列離散值,只要碼率映射圖建議的碼率不超過下一個更高(Rc+1)或更低(Rc-1)的離散視頻碼率,R就保持在Rc,否則R被切換提升或者降低到碼率映射圖所建議的新離散值[10]。當緩沖區(qū)已滿時,即BO(t)接近240 s時,將暫停下載并等待從緩沖區(qū)中消耗3個視頻塊,然后繼續(xù)使用新的2-S指令。
圖1 在2-S中碼率映射圖
算法2 正常播放階段的碼率調(diào)節(jié)if BO(t-1) >= 80 && BO(t-1)<216 Rnext(t) = map(BO(t-1))End if if BO(t-1) >= 216 && BO(t-1)<236 Rnext(t) = Rn End if if BO(t-1) >= 236 Rnext(t) = 0 End if
播放階段的碼率調(diào)整策略根據(jù)緩沖區(qū)占用率選擇合適的視頻碼率。它可以在一定程度上避免頻繁的碼率變化。在實際中只要維持Rd∈(0.5Rc,1.5Rc),即平均網(wǎng)絡下載速率Rd的估計值在給定范圍內(nèi)波動,就不需要調(diào)整視頻碼率。算法3中提供了2-S策略的總體框架。與BBA-0相比,本章中的R-BO(t)映射關系隨著在前一階段確定的端點值Rbase而變化。在啟動階段,還采用基于網(wǎng)絡條件的適當碼率增加,而不是將視頻碼率固定在R1。提出的2-S策略更有利于在回放階段匹配視頻速率和網(wǎng)絡容量,并提高網(wǎng)絡效率。
算法3兩階段的碼率調(diào)節(jié)框架輸入: C: 模擬的網(wǎng)絡下載速率;R:視頻碼率集合;K: 總刻度時間;map: 播放階段的映射關系;f: 提出的QoE 預測模型;輸出: Rnext(t): 下一個視頻塊的碼率; BO(t): 緩存器大??;QoE: 實時 QoE 分值;1: initialize BO(t)2: initialize t = 1 3: if t < = K 4: if BO(t) < = 80 then 5: do Algorithm 1 6: else 7: do Algorithm 2 8: end if 9: update BO(t):10: if BO(t - 1) < 236 then 11: BO(t) = BO(t - 1) + Ts - Rnext(t) * Ts / C(t)12: else 13:BO(t) = BO(t - 1) - Ts 14: end if 15:分別計算出重載和碼率變化的次數(shù) rb_t,rw_t 16: 生成元組 T = { Rnext(t), rb_t, rw_t }17: 計算實時QoE: QoE(t) = f(T)18: t++19: end if
在該節(jié)將提出的兩階段碼率調(diào)節(jié)策略與其他3種碼率調(diào)節(jié)算法在關于包括平均視頻碼率,碼率變化次數(shù),重載次數(shù)和平均QoE分數(shù)這幾個方面進行橫向?qū)Ρ取?種碼率調(diào)節(jié)算法描述如下。
(1)Baseline,如果在12 s的視頻內(nèi)容(3個視頻塊)中沒有重載,則將視頻碼率提高到更高水平,并采用與啟動階段相同的碼率調(diào)節(jié)策略,以在重載發(fā)生之后立即將視頻碼率降低到適當?shù)乃絒11]。
(2)BBA-0是一種基于緩沖的方案,它在啟動階段保持最小視頻碼率,然后根據(jù)一種碼率映射圖進入碼率快速增長周期,當每次對應的網(wǎng)絡吞吐量不足需要降低碼率時碼率降低到最小值。
(3)BDRM,以保守的方式估算最壞情況的網(wǎng)絡容量,但在容量允許的情況下根據(jù)碼率映射指標立即提高視頻碼率,并且在整個過程中保持視頻碼率不變。
如圖2所示,在下載1 000個視頻塊期間,波動的網(wǎng)絡帶寬由1 000個隨機下載速率模擬,范圍主要在28 Mb / s附近徘徊。視頻碼率集R= {1,1.5,2,2.5,...,13,13.5},單位為Mb / s,|R| =25,當緩沖器占用率BO(t)≤0時發(fā)生重載。在這種情況下,下一個視頻塊將以1Mb/s下載,直到BO(t)≥TS。對于每種視頻碼率自適應方法,從中獲得對應于1 000個視頻塊的1000個碼率和緩沖器BO(t)的動態(tài)變化[12]。結果產(chǎn)生了一系列的三元組,即視頻碼率R、重載次數(shù)T和碼率波動次數(shù)V即表述為(R、T、V)[1];考慮到人類視覺系統(tǒng)的新近性,本文提出以下公式來進行三元組與QoE的映射:
式中,N代表視頻塊的數(shù)量;Rn指當前視頻塊的碼率;|q(Rn)代表碼率和QoE之間的映射。本文采用文獻[13]中提出的BOLA模型中的計算方法:
而重載懲罰系數(shù)也是源自BOLA模型之中,其為固定值2.66。
所有4種碼率調(diào)節(jié)算法都運行在圖2中的模擬網(wǎng)絡的環(huán)境中[12]。通過到目前為止計算的模擬結果,為了量化4種視頻碼率自適應算法的綜合性能,將(R,T,V)導入提出的映射模型,以測算用戶的QoE。如表2中的前3行所示,可以構成一系列(R,T,V)三元組??梢钥吹?-S具有最高的平均碼率,最低的碼率變化數(shù)量,并且重載的數(shù)量仍然是非常低的水平。
圖2 網(wǎng)絡吞吐量的概率分布圖
表2 比較三元組中R,T,V值以及QoE值
本文提出了一種兩階段碼率自適應(2-S)策略,該策略充分利用影響因子的變化對用戶的體驗,并實現(xiàn)目標碼率自適應以改善實時視頻QoE。2-S算法將視頻播放過程分為初始啟動階段和穩(wěn)定播放階段,保守地調(diào)節(jié)碼率使得前一階段的啟動延遲縮短,同時專注于平衡視頻碼率和后階段的緩沖。仿真結果表明,2-S可以改善影響用戶QoE的3個關鍵因素,有效改善視頻播放服務的平均QoE得分。