APP下载

流媒体视频的两阶段码率调节提升QoE策略研究

2022-06-16丁国梁刘海涛

通信电源技术 2022年1期
关键词:码率缓冲器缓冲区

孙 鹏,丁国梁,刘海涛,吴 涛,凌 洋,王 健

(中国移动通信集团设计院有限公司 江苏分公司,江苏 南京 210029)

1 研究背景

1.1 QoE描述及其量化方案

用户体验质量(Quality of Experience,QoE)是从用户角度来对一个服务感知体验的评判。QoE的定义和影响因素在不同的文献中被展开诸多讨论,目前仍未达成一致的研究共识。其中QoE在ITU的定义为终端用户对应用或者服务整体的主观可接受程度[1]。综合文献中对QoE的定义描述,本文将QoE定义为终端的用户在实际环境下与服务交互的过程中产生的对流媒体服务的主观感受与认可程度的评判。流媒体服务的QoE包含了用户在一定客观环境下使用流媒体服务过程中的身心体验、与服务交互时产生的主观感受以及服务结束后对服务的认可程度,因此QoE贯穿了流媒体服务的整个生命周期。

QoE的评价量化方案分为主观评测和客观评测,常规QoE主观评价是随机选择一批事先不知情人员,将其暴露于特定环境可控的氛围中,采用规定的时间让其观看一系列连续的测试序列,通过不同方法来计算收集他们对观看的视频的评分,即平均意见分(Mean Opinion Score,MOS),并对所得数据进行分析。

而文中将QoE客观评价方案归并为网络QoS参数的获取评判以及基于视频内容本身的相似度对比或质量评判。有效获取流媒体服务中的客观参数是能否准确量化QoE的关键因素。将针对视频码率调节中产生的客观参数提出一套QoE的映射关系。

1.2 视频码率调节策略

视频码率调整(Rate Adaptation,RA)是一种为了最大化用户QoE来进行视频块码率分配的策略。一般来说,最高的视频质量(泛指视频码率),最少的视频播放中断(重载)和最平滑的码率变化可带来最好的观感体验。

基于网络容量的方法和基于缓冲区的方法是现有码率的主流调节方法。前者基于预估计的网络容量来调整视频码率,这导致调节很难准确。过高估计和过低估计可用网络容量将分别导致不必要的重载和偏低的视频质量。基于缓冲区的策略则尽可能地利用缓冲区占用率来引导码率调节过程。如果缓冲区接近其最大容量大小,则采取更积极的策略来获取更高质量的视频块,反之就更保守地选择下一块的视频码率。在文献[2]中,虽然视频码率自适应基于网络容量估计,但其实该模型将客户端的缓存容量级别作为反馈。在文献[3]中,设计两种不同的独立操作步骤,当缓冲区刚建立并开始增长时,可用网络容量的编码信息不充分,码率调节依赖于网络估计,并且当缓冲区已经建立时,码率调节仅基于播放缓存区(BBA)。在文献[4]中,通过使用Lyapunov优化技术改进BBA。在文献[5]中,HAS动态缓存驱动码率调节是依靠客户端和基站侧的协作来执行的。在文献[6]中,研究了联合用户关联和码率调节的问题,以在满足用户QoE要求的同时最大化系统效用。现有的DASH方法使所选择的目标处于平等的基础而不考虑在视频播放期间时变用户QoE焦点的变化。

基于这样的一个观点,在视频播放过程中,不同阶段的关键QoE感知因素不相同。尽量最大化视频质量,在视频启动阶段的关键QoE感知因素是启动延迟,而码率变化和重载决定了后续播放阶段的QoE。利用这些特点,可以通过目标改善用户实时体验的退化,简化用户的服务质量优化。

2 两阶段码率适应策略描述

本文首先分别定义视频播放过程中的启动阶段和回放阶段,然后分析影响用户QoE的关键因素,并提出每个阶段的视频码率自适应方法。

根据客户端缓冲区的占用率将视频观看过程分为两个阶段:启动阶段和回放阶段。客户端缓冲区大小通过下载的视频块的时间长度(以秒为单位)来度量,标定播放器的总缓冲区大小为240 s。当长度Ts= 4s的单个视频块在被下载好后,可以被添加到视频缓存区去。每秒从缓冲区中移除1 s的视频内容并播放给用户。播放器在从缓冲区播放4 s视频块时探测缓冲区,保证缓冲区占用量必须是4 s的倍数。将缓冲区占用80 s内的部分对应于视频播放的启动阶段。当缓冲区占用率超过80 s时,则判断为进入视频播放的播放阶段。影响用户在视频播放两个阶段体验的关键因素不同,在启动阶段,用户对启动延迟更敏感,而在播放过程中,不好的视频质量和频繁的重载很难被接受。因此,使用不同的自适应方法来选择适当的视频块码率,从而改善用户的QoE。

2.1 流媒体启动阶段

在启动播放的阶段,启动延迟对QoE的影响大于视频码率高低和码率波动带来的影响,因为用户对视频打开即刻播放的要求迫切。因此面向QoE的视频码率自适应需要确保启动延迟尽可能小,并且该策略基于网络带宽估计。为了最小化启动延迟,一旦用户按下视频的播放按钮,就为前3个连续时间的视频块选择最低级别的视频码率R1,这保证了给定网络带宽下的最短启动延迟。实际流媒体播放过程中开头大多数是广告以及背景信息,其视频质量对用户QoE几乎没有影响,因此为这些内容选择较低的视频码率是可行的。

然后,在缓存区占用达到80 s之前,视频码率调节必须考虑视频码率和重载之间的权衡,尽量最小化视频码率调节的频率。在视频服务刚开始的阶段,缓冲区占用率仍处于较低水平,其编码的可用容量信息不足,不适合作为码率调节的参照。启动阶段的核心码率适配策略基于容量估计。启动阶段,当下载最后一个视频块并将其推入缓冲区时,将整个阶段的平均下载速率Rd作为网络容量的估计值,并将当前视频块的码率记录为Rc。下一个视频块Rnext的视频码率由当前视频块Rd和Rc之间的关系确定。

(1)Rd>Rc:这表明了可选择更高级别的码率,因为在该条件下缓存占有率变大。其中将视频码率R看做一系列离散值,R={R1,R2,...,Rn}。码率自适应调节策略意在从R中为下一个视频块选择一个合适的值。假设以高一阶的视频码率Rc+1获取下一个视频块,那么在与最新的一个视频段相同的网络条件下所需的下载时间是:

一个新视频块被下载的同时,缓冲区中的视频内容将以秒为单位向外播放。预防缓冲区耗尽的方法,需要确保下载新视频块的时间比占用缓冲区的时间短。定义BO(t)为下载新视频块之前的缓冲区剩余占有量。若Tthr≥BO(t),则继续保留Rc作为下一个视频块的码率;若Tthr<BO(t),进行类似于有限状态机的码率转换[7]。

在BDRM中,最小视频码率R1被用来预测最坏情况下的网络容量,并且当下一个视频块的计算下载时间小于缓冲器占用量时,视频码率立即增加[8]。相反,采用一个更积极的预测指标Rd来估计网络容量,当计算出的下一个块的下载时间小于缓冲器大小时,视频码率的增加更为谨慎。检测到最后3个下载的视频块的码率,如果它们共享相同的视频码率Rc,那么当Tthr<BO(t)再次发生时下一个视频块的码率将调整为Rc+1;在其他情况下,仍然选择与前一个块相同的视频码率Rc。也就是说,只有当最后3个块共享相同的视频码率时,视频码率才会根据指标Rd提示增加而调整增加。表1提供了2-S和BDRM之间的码率调节比较。与BDRM相比,2-S更细致地增加视频码率,体现在以下两个方面。

一是由于前3个视频块使用最小码率R1,所以在一开始就可以很容易地满足Rd>Rc和Tthr<BO(t)的条件,随后视频码率就会被提升;

二是由于视频码率只有在连续3个视频块码率都是Rc后才能提高到Rc+1,因此可以降低码率变化的频率,补偿对网络容量的过度估计。

(2)Rd≤Rc:在这种情况下将降低或保持视频码率。为了避免重载事件,应满足以下公式:

对于可以满足式(2)的最大视频码率Ri,若Ri<Rc,将R′设置为Ri,否则设R′为Rc;与情景(1)中增加部分不同,视频码率的降低将在下一个块中立即执行,且可以一次将视频码率降低几个级别,如表1所示,2-S 在t 355时刻立即将视频速率从R27降至R8。由于启动阶段的缓冲区占用时间不足以抵消低下载速率与高视频码率之间的不匹配,因此立即降低视频码率有助于避免重载。

表1 比较 2-S和 BDRM之间的码率调节

当最开始的3个视频块以最低级别的码率(R1)被下载后开始实行算法1,即启动阶段的2-S算法。在网络容量估计的基础上,当网络条件良好时,视频速率从最小值R1逐步提高,当网络条件很差,视频码率立即降低。这一阶段的主要目标是将启动延迟保持在最小值,并在填充缓存器时降低重载发生的可能性。本文提出的2-S与BDRM相比,通过加入有穷状态自动机来控制所选视频码率的变化性,这有利于降低因为视频质量波动导致的不悦观感[8]。

当储存器被填满,即缓冲器占用率延伸到80 s时,添加到缓冲器最后一块的视频码率是随机的,并且其分布与启动阶段期间的网络状况密切相关。该视频码率值提供用于播放阶段以下的基于缓冲器的速率适配策略的网络容量先验信息。

算法1启动阶段的码率调节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作为网络容量的估计值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

2.2 播放阶段

在回放阶段期间,储存器被填满,即缓冲器占用率大于80 s。假设缓冲器占用足以抵抗网络容量的波动,并且可以采取更积极的策略来基于缓冲器以提升视频码率[9]。当缓冲区达到80 s时,将最后一个块的视频码率表示为Rbase,然后Rbase∈R是一个不确定的值,它受启动阶段的网络条件的影响。算法2为正常播放阶段的码率调节。

本节的视频码率自适应方案实际上给出了所选码率R和缓冲器占用率BO(t)之间的映射关系。如图1所示,由于码率自适应基于网络估计,因此在启动阶段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)的区间以及构成R和BO(t)的映射关系。由于R是一系列离散值,只要码率映射图建议的码率不超过下一个更高(Rc+1)或更低(Rc-1)的离散视频码率,R就保持在Rc,否则R被切换提升或者降低到码率映射图所建议的新离散值[10]。当缓冲区已满时,即BO(t)接近240 s时,将暂停下载并等待从缓冲区中消耗3个视频块,然后继续使用新的2-S指令。

图1 在2-S中码率映射图

算法2 正常播放阶段的码率调节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

播放阶段的码率调整策略根据缓冲区占用率选择合适的视频码率。它可以在一定程度上避免频繁的码率变化。在实际中只要维持Rd∈(0.5Rc,1.5Rc),即平均网络下载速率Rd的估计值在给定范围内波动,就不需要调整视频码率。算法3中提供了2-S策略的总体框架。与BBA-0相比,本章中的R-BO(t)映射关系随着在前一阶段确定的端点值Rbase而变化。在启动阶段,还采用基于网络条件的适当码率增加,而不是将视频码率固定在R1。提出的2-S策略更有利于在回放阶段匹配视频速率和网络容量,并提高网络效率。

算法3两阶段的码率调节框架输入: C: 模拟的网络下载速率;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:分别计算出重载和码率变化的次数 rb_t,rw_t 16: 生成元组 T = { Rnext(t), rb_t, rw_t }17: 计算实时QoE: QoE(t) = f(T)18: t++19: end if

3 性能分析与评价

在该节将提出的两阶段码率调节策略与其他3种码率调节算法在关于包括平均视频码率,码率变化次数,重载次数和平均QoE分数这几个方面进行横向对比。3种码率调节算法描述如下。

(1)Baseline,如果在12 s的视频内容(3个视频块)中没有重载,则将视频码率提高到更高水平,并采用与启动阶段相同的码率调节策略,以在重载发生之后立即将视频码率降低到适当的水平[11]。

(2)BBA-0是一种基于缓冲的方案,它在启动阶段保持最小视频码率,然后根据一种码率映射图进入码率快速增长周期,当每次对应的网络吞吐量不足需要降低码率时码率降低到最小值。

(3)BDRM,以保守的方式估算最坏情况的网络容量,但在容量允许的情况下根据码率映射指标立即提高视频码率,并且在整个过程中保持视频码率不变。

3.1 实验设计

如图2所示,在下载1 000个视频块期间,波动的网络带宽由1 000个随机下载速率模拟,范围主要在28 Mb / s附近徘徊。视频码率集R= {1,1.5,2,2.5,...,13,13.5},单位为Mb / s,|R| =25,当缓冲器占用率BO(t)≤0时发生重载。在这种情况下,下一个视频块将以1Mb/s下载,直到BO(t)≥TS。对于每种视频码率自适应方法,从中获得对应于1 000个视频块的1000个码率和缓冲器BO(t)的动态变化[12]。结果产生了一系列的三元组,即视频码率R、重载次数T和码率波动次数V即表述为(R、T、V)[1];考虑到人类视觉系统的新近性,本文提出以下公式来进行三元组与QoE的映射:

式中,N代表视频块的数量;Rn指当前视频块的码率;|q(Rn)代表码率和QoE之间的映射。本文采用文献[13]中提出的BOLA模型中的计算方法:

而重载惩罚系数也是源自BOLA模型之中,其为固定值2.66。

3.2 结果分析

所有4种码率调节算法都运行在图2中的模拟网络的环境中[12]。通过到目前为止计算的模拟结果,为了量化4种视频码率自适应算法的综合性能,将(R,T,V)导入提出的映射模型,以测算用户的QoE。如表2中的前3行所示,可以构成一系列(R,T,V)三元组。可以看到2-S具有最高的平均码率,最低的码率变化数量,并且重载的数量仍然是非常低的水平。

图2 网络吞吐量的概率分布图

表2 比较三元组中R,T,V值以及QoE值

4 结 论

本文提出了一种两阶段码率自适应(2-S)策略,该策略充分利用影响因子的变化对用户的体验,并实现目标码率自适应以改善实时视频QoE。2-S算法将视频播放过程分为初始启动阶段和稳定播放阶段,保守地调节码率使得前一阶段的启动延迟缩短,同时专注于平衡视频码率和后阶段的缓冲。仿真结果表明,2-S可以改善影响用户QoE的3个关键因素,有效改善视频播放服务的平均QoE得分。

猜你喜欢

码率缓冲器缓冲区
基于缓存补偿的视频码率自适应算法
动车组车钩缓冲装置橡胶缓冲器失效机理分析及优化*
更正
移动视频源m3u8多码率节目源终端自动适配技术
考虑全帧间参考依赖性的监控视频高效视频编码码率控制算法
8编组A型车缓冲器选型对比分析
机车用MT-3型缓冲器压装方式改进
基于DASH标准的码率平滑切换算法
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区