一、动机
随着视频流的普及,为了优化视频体验质量(QoE),人们研究出自适应比特率(ABR)算法和传输协议。然而由于视频流量的快速增长,人们日常生活中会出现多用户同时使用流媒体服务,比如家庭或一个办公室或者一个学生宿舍在同时观看YouTube视频。在这种情况下,当前的协议都是注重连接公平性,他们将可用的带宽进行平均分配。
这就导致它忽略了不同用户的带宽需求。不同的视频需要不同的带宽才能达到相同的观看质量。例如与带宽为1 Mbit/s的大型4K电视相比,观看者在智能手机上以1 Mbit/s的速度播放给定视频的体验会更好。此外,用户研究表明视频的感知质量也受其内容的影响,例如其类型或运动程度,如下图所示为一些不同的类型的视频内容在不同比特率的情况下带给人们的感知质量。
由图可知,观看视频“V3”的客户端需要比观看“V19”的客户端更高的带宽来维持相同的观看质量。如果两个客户端接收到的带宽相同,“V3”可能会显得更模糊,视觉满意度也会降低。造成这样不同的感知质量是因为V3视频内容相对V19来说更加静止。
同时,现有的拥塞控制算法在连接之间平均分配带宽这种做法忽略了视频客户端的状态(如播放缓冲区大小),因此它们无法对应用程序级别的警告信号做出反应。比如两个相同的视频,第一个视频的播放缓冲区为6s,而第二个视频缓冲区几乎为零。在传统的拥塞控制中,第二个视频马上就会暂停。如果我们能够考虑到这种差异,把第一个视频的带宽分一部分给第二个视频,便会让第二个视频顺畅播放,不会出现卡顿。
如上图所示,b图便是本文的研究成果,可见Minerva可以动态地在视频之间分配带宽。其主要贡献为(a)允许对视频的带宽共享进行细粒度控制,(b)快速响应低缓冲区,©与非视频流量公平竞争。它能够通过动态修改视频的带宽分配来优化QoE公平性度量,从而改善连接级公平性的缺点,旨在改善QoE最差的客户端的视频质量。
二、模型概述
2.1 QoE公平性
我们想在共享网络的一组视频之间分配带宽,以确保所有视频的体验质量一样。这种考虑到所有视频客户体验的度量称为体验质量公平(quality of experience fairness,QoE fairness)。通俗点说就是牺牲好的体验用户的一些质量来改善体验差的用户的质量,将体验差的用户的感知质量最大化。
本文使用的 Q o E QoE QoE公式如下图所示:其中 P ( c k ) P(c_k) P(ck)表示从以比特率 c k c_k ck观看块获得的质量,我们称之为感知质量(PQ), β β β是发生卡顿时的惩罚系数, γ γ γ是相邻块之间比特率变化的惩罚系数。一般来说,PQ可以根据诸如客户端的屏幕大小、屏幕分辨率、观看距离以及视频内容和类型等参数在视频和客户端之间变化。
假设 N N N个视频客户端在同一个时间段内共享一个网络,在这个时间段内,每个客户端i都有 n i n_i ni个块并有一个 Q o E i QoE_i QoEi。我们的主要目标即将最小的感知质量最大化,也就是 Q o E i / n i QoE_i/n_i QoEi/ni最大化。
2.2 Minerva结构概述
如上图所示为Minerva的结构图,可以看出其通过反复更新视频的权重,进而控制各个视频客户端的下载速率,直到所有视频的感知质量近乎相等。然而QoE的定义并不直接依赖于客户端的下载速率,要想用速率控制算法解决上述优化问题,Minerva必须将其重铸为仅依赖于网络链路速率的形式。所以Minerva首先为每个客户端制定一个带宽效用函数,该函数将优化问题分解为仅依靠下载速率的函数。然后Minerva利用现有的拥塞控制算法为每个视频实现与其权重成比例的带宽分配,同时还充分利用链路容量。
2.3 基本效用函数
效用函数 U ( r ) U(r) U(r)应能捕获在给定当前带宽 r 时客户端所期望实现的 Q o E QoE QoE。客户端可以获得过去下载的块的 Q o E QoE QoE,也能获取正在下载的快的 Q o E QoE QoE,但是未来块的 Q o E QoE QoE不是那么容易获得,因为这将取决于ABR算法,我们不知道会以什么比特率下载它们。所以需要一种方法来预测未来的质量。
为了利用客户端方面的有价值信息,如缓冲区级别。例如当客户端具有较大的缓冲器时可能允许在短期内接收较少的带宽而不降低其编码级别。其次,考虑视频块之间的平滑性以及过去块的 Q o E QoE QoE对整体性能的影响,我们同时使用之前、现在和未来块的 Q o E QoE QoE建立了一个复杂的效用函数 U ( r ) U(r) U(r),其表达式如下图所示。
其中,
α
1
α_1
α1、α2是正权重系数,通过使用当前速率r来估计当前块的QoE,以确定视频流是否将重新缓冲。假设缓冲级别为b的客户端正在下载块ci且还剩下c字节需要下载,则其重缓冲时间
R
=
[
c
/
r
−
b
]
R=[c/r-b]
R=[c/r−b],并估计当前块的
Q
o
E
QoE
QoE为
(
c
i
,
R
,
c
i
−
1
)
(c_i,R,c_{i-1})
(ci,R,ci−1)。
V
h
V_h
Vh是一个值函数,计算接下来
h
h
h个块的每个块的预期
Q
o
E
QoE
QoE,其中
h
h
h是一个可以根据需要设置的范围。它抓住了这样一个概念:客户端将实现的
Q
o
E
QoE
QoE在很大程度上取决于编码的ABR算法。为了准确估计未来的
Q
o
E
QoE
QoE,客户端在接下来的
h
h
h个块中模拟ABR算法。在这里我们将ABR视为一个黑盒,它通过接收网络和缓冲区级别等状态,并输出下一个块的比特率,通过使用这个新的质量来更新客户端的状态并继续迭代这个过程,便可以等到我们预期的未来块的QoE。
上图为当h为5时的值,可以看出效用是速率的一个递增的凹函数,随着下载速率的提高,在未来获得更高质量的块,但是其带来的效用提升是慢慢降低的。其次,如果我们从一个更高的缓冲区开始,这意味着因卡顿而受到惩罚的可能性较低,所以允许我们以更高的质量获取接下来的5个块。
2.4 视频客户端权重
每个客户端都必须找到对应的权重 w i w_i wi,才能利用所有客户端权重的集合进而优化QoE公平性的相对带宽分配。假设 U ( r ) U(r) U(r)是连续的,当所有的U®都相等并且没有一个可以变大时,优化问题的解决方案就会出现。同时我们结合得到的可用下载速度 r i r_i ri,将客户端权重定义为下式。
它是将测量的下载速率
r
i
r_i
ri除以我们得到的预期效用
U
r
U_r
Ur。由式可知,低效用的客户端将获得更高的权重,这将带给它更大的链路带宽,进而使其效用越来越大。
2.5 其他TCP流的公平性
我们知道,在实际应用中还会有其他的非视频客户端的TCP流,为了让Minerva于其公平竞争且不影响其他TCP的带宽,我们引入了一个函数 f ( U i ( r i ) ) f(Ui(r_i)) f(Ui(ri))来代替 U i ( r i ) U_i(r_i) Ui(ri)。只要f是单调递增的,且所有客户机达到稳定状态后 f ( U i ( r i ) ) f(U_i(r_i)) f(Ui(ri))相等,那他们就是等效的。
为了使每个Minerva流占据 α α α的平均TCP流,我们将它们的权重标准化,因此它们的平均值为 α α α,表达式为
其中 N N N是该链路上的Minerva流数,我们通常选择 α = 1 α=1 α=1。因为所有的 U i ( r i ) U_i(r_i) Ui(ri)都会收敛到稳定值 u u u,因此 f f f的结果形式为:
我们把 f − 1 ( r ) f^{-1}(r) f−1(r)叫做标准化函数,因为 f − 1 f^{-1} f−1可以与 u i u_i ui具有相同的单位,可以进行直接比较,如上图所示为一组不同的PQ曲线及其归一化函数之间的关系,图中虚线就是最后所有视频流达到的相同的感知质量曲线。
三、实验及评价
在我们的实现中,视频服务器是建立在QUIC之上的HTTP服务器。Minerva视频客户端只是一个运行Dash.js的chrome浏览器,其使用了模型预测控制(MPC)ABR算法。
对于测试我们使用了19个视频,从动画儿童电影,到动作场面,到纪录片和新闻,再到高清自然拍摄。每个视频块的感知质量都是用VMAF来衡量的(VMAF是Netflix用来预测用户对视频质量的评价的工具),VMAF在0到100之间,100是参考4k视频的质量。
我们首先采用了4个Minerva客户端在配置中共享一个网络链路,然后选择了4个随机组合的视频供这些客户端播放。所有视频同时开始播放,大约5分钟后停止播放。对于这个实验,链接速率是恒定的,并且不随时间变化。
其结果如上图所示,柱形图的顶部表示4个视频中的最小QoE,黑色虚线的顶部表示最大QoE。蓝色的柱形图为Minerva的结果,可以看出Minerva的表现优于这两个备选方案,它增加了最小QoE,并缩小了4个视频中QoE的差距。
我们又重复了43种不同的视频组合实验,并且通过4Mbit/s,10Mbit/s和16Mbit/s的链路播放。Minerva比Cubic的QoE公平性提升结果如上图所示,可得知17%-35%的视频QoE公平性提高了7.65个百分点。(720p和1080p之间的平均差异是7.65VMAF点)
我们又让所有的客户端都观看相同的视频,这消除了由静态差异引起的QoE改进,并将重点放在Minerva利用共享相同链路的客户端之间缓冲区大小的动态差异的能力上。此外,为了将客户端置于具有挑战性的网络条件中,将视频开始的时间调整为泊松过程,并保证在任何给定时间内都有8个视频在共享链路。
其测试结果如上图所示,可以看出Minerva能够显著减少重新缓冲的时间,且在该过程中不会严重损害视频的感知质量。与Cubic相比,Minerva仅降低了0.4%的平均感知质量,但能够将平均再缓冲时间减少47%,并将再缓冲事件的数量减少45%。这表明Minerva可以在观看体验上获得来自利用全局缓冲池的显著收益,而不仅仅是来自于感知质量的差异。
四、总结
我们提出了Minerva,第一个以分布式方式实现的QoE公平性的系统,其可以优化QoE公平性,并与现有的TCP流量进行公平竞争。结果表明,与Cubic和BBR相比,使用Minerva的视频在观看体验上有15-32%的改善,相当于分辨率从720p跃升到1080p。此外,在动态视频到达和离开的情况下,Minerva可以平均减少47%的再缓冲时间,在不同的链路速度和真实的网络链路下效果优异,表明它是寻求优化QoE公平性的视频提供商的可部署解决方案。
思考:本文从视频客户端可用的总流量出发,通过动态地在视频之间分配带宽,进而使该网络链路下的最小QoE达到最大值,进而提升总体的平均QoE。在文中提到不同类型的视频在下降相同的比特率之后带给人的QoE是不一样的,所以这也是我们可以着手做的一个点,实时分析视频内容,在降低分辨率带给人的QoE影响不大视频上,就可以降低此链路的带宽,并将这部分带宽应用到提升分辨率带给人的QoE影响高的视频内容上。