APP下载

面向视频流媒体直播的码率自适应算法研究

2022-05-03金肱羽武霄泳张志龙刘丹谱尹方方

关键词:缓冲区切片时延

金肱羽,武霄泳,张志龙,刘丹谱,尹方方

(1.北京邮电大学,先进信息网络北京实验室,网络体系构建与融合北京市重点实验室,北京 100876;2.上海无线电设备研究所,上海 201109;3.中国传媒大学媒体融合与传播国家重点实验室,北京 100024)

1 引言

直播作为流媒体技术的重要应用形式,近年来得到快速发展。相较于传统的流媒体点播业务,视频直播更具挑战性。直播业务互动性更强,对于实时性要求更高。因此,为提高直播用户的体验质量,不仅需要考虑视频质量、平滑度、卡顿等因素,还需尽量降低端到端时延。

码率自适应算法通过动态选择合适的视频码率,使业务适应信道的时变特征,可以有效改善用户的体验质量。现有的码率自适应算法多是针对点播场景设计的,并未考虑端到端的时延因素,直接应用在直播场景很难获得较好的业务性能。

近年来,已有一些针对流媒体直播的码率自适应算法被相继提出。例如,Wang 等人提出了HCA[1],通过前馈反馈机制降低时延;Xie 等人提出了动态调整缓冲区阈值的DTBB[2]避免卡顿;Zhang等人提出以降低时延为目标的LAPAS 算法[3];Peng等人针对直播场景下,提出通过调整播放速度、增加跳帧等时延控制机制并且选择合适的码率,从而达到降低时延的效果[4]。

然而,很多针对直播的码率自适应算法未能做到在用户体验质量的影响因素之间做到很好的均衡,例如,DTBB 算法只考虑当前客户端的缓冲区容量,而并未考虑到时延机制优化。因此,本文提出了基于PID的码率自适应算法。该算法综合考虑网络波动状况以及缓冲区占用情况进行稳健的码率决策,同时对直播场景的时延机制进行优化。仿真实验表明,与基线算法相比,本文所提算法可以有效提高用户体验质量。

2 流媒体直播架构及系统模型

2.1 直播架构

基于HTTP 的自适应流媒体(HTTP Adaptive Streaming, HAS)是目前被广泛采用的流媒体直播技术之一。图1 展示了使用HAS 的流媒体直播的典型框架[5]。其中,主播端提供直播内容并上传到HTTP服务器,原始视频被切割成相等时长的视频切片,同一个视频切片被编码为不同的版本,每个版本对应一个视频码率。客户端可向服务器请求合适的下一个视频切片,以降低时延和卡顿,从而提高用户体验质量。由内容分发服务器将特定码率的视频切片文件发送到客户端。

图1 基于HAS的流媒体直播传输系统框架[5]

2.2 系统模型

系统模型由视频传输模型、缓冲区模型、时延控制模型以及QoE模型组成。

a)视频传输模型

主播端从t= 0 时刻开始采集并上传视频内容到服务器,服务器对视频进行编码和切片处理。在基于HTTP 的动态自适应流标准(Dynamic Adaptive Streaming over HTTP, DASH)的视频流媒体架构下,视频切片的时长通常为2-10 秒,而面向直播场景时,通常使用时长更短的视频切片。在本文中,视频切片的时长用L秒进行表示。

假设直播过程中视频内容共分为N个视频切片。在服务器端,每个视频切片都有K个不同码率和分辨率的版本,并且其大小满足V1<V2<…<VK。K个码率等级对应的码率大小用{ }R1,R2,…,RK

表示。用户在观看直播时,按照上传顺序从服务器端下载视频切片。由于视频内容是以视频切片为单位,用户在下载每个视频切片时都可以从K个版本中进行选择。

相比于视频点播,直播的主要特点在于其视频内容是实时生成的。为聚焦问题,本文在建立视频传输模型中,不考虑实时视频封装以及视频编码解码过程的耗时。第n个视频切片于t=nL时刻开始生成,由于客户端无法向服务器请求还未生成的视频内容,所以客户端开始下载和播放第n个视频切片时刻tn需满足以下约束条件:

令τn代表下载第n个视频切片所用的时间,可以表示为:

其中,Sn(Rn)表示第n个视频切片对应码率为Rn的视频大小,Cn表示下载过程中网络平均吞吐量。当第n个视频切片于时刻完成下载,而第n+ 1个视频切片还未完全生成时,即<(n+ 1)L情况下,用户无法从服务器端获取视频数据,需要等待Δtn方可进行下一个视频切片的下载;≥(n+ 1)L时,第n+ 1个视频切片需从t=tn+τn时刻开始下载。Δtn可以表示为:

b)缓冲区模型

缓冲区位于客户端,其状态示意图如图2所示,视频切片从服务器端下载后会先存储到客户端的缓冲区中,用户播放视频时从缓冲区取出视频内容进行观看。

图2 缓冲区状态示意图

缓冲区占用大小由视频填充速率和播放速率共同决定。设B(t)表示t时刻缓冲区的占用大小,以视频切片为单位,当下载完成一个视频切片并开始下载下一个切片时,缓冲区大小增加一个视频切片的时长,并且减去下载视频切片过程以及等待时间中客户端播放的视频时长。缓冲区占用量不能小于0,开始下载第n+ 1个视频切片tn+1时缓冲区占用量用Bn+1可以表示为:

其中,λn代表着第n个视频的播放速度。在直播场景下,为避免卡顿以及降低时延,引入播放速度控制机制。播放速度会根据需求改变,播放速度的选择会在下一节时延控制模型中进行说明。

在下载过程t∈(nL,nL+τn]中,可以对缓冲区占用量进行求导得到视频填充速率。在下载第n个视频切片过程中,求导过程可以表述为:

其中,Cn代表下载第n个视频切片过程中的平均吞吐量,Rn代表第n个视频切片对应的码率。

c)时延控制模型

本文所考虑的端到端的时延由两部分构成,一部分为直播用户缓冲区中已经缓冲的视频时长,一部分为存储到服务器端但尚未下载的部分。

时延控制机制由两部分构成:调整视频播放速度以及跳帧机制。调整视频播放速度通过加快或减缓客户端播放视频的速度,达到降低时延及减少卡顿的目的。通过调整播放速度降低时延的能力有限,当时延比较大时,执行跳帧操作,即超过时延阈值时,客户端跳过当前正在进行的下载,直接请求下载下一个关键帧,从而降低时延。

首先,对视频播放速度进行调整。最基本的方法是通过比较实际缓冲区的占用情况和预设的缓冲区阈值来控制播放速度。 假设阈值为(Bmin,Btarget,Bmax),其中Btarget代表目标缓冲区水平,Bmin和Bmax分别代表缓冲区阈值的上限和下限。缓冲区阈值需要满足Bmin<Btarget<Bmax。缓冲区占用量大于Bmax,加快视频播放速度,播放速度为正常播放速度的rfast倍;缓冲区占用量小于Bmin,减缓视频播放速度,播放速度为正常播放速度的rslow倍;其他情况则选择正常的播放速度。

综上所述,第n个视频切片的播放速度λn可以表示为:

其次,对跳帧的阈值进行选择。对于第n个视频切片执行跳帧的时延阈值表示为ln,即当Ln>ln时,客户端向服务器请求新的关键帧,跳过的帧数表示为Sn。通常情况下将ln设置为常数,即每一个视频切片触发跳帧的时延阈值都相同。

d)QoE模型

码率自适应算法以提高QoE 为目标[6],为了明确视频流媒体直播QoE 与其影响因素之间的定量关系,需要对QoE 进行客观评价。可以将QoE 映射为数值,为之后设计码率自适应算法并且进行性能优化和比较建立基础。在评价视频点播业务的性能时,文献[7]提出将各个QoE 指标进行加权平均,得到的数值作为QoE 估计值。面向直播场景时,QoE 不仅需要考虑视频质量、码率切换频次、卡顿时长等影响因素以外,还需计算端到端的时延以及跳帧时长对QoE 数值的影响。因此,本文建立如下直播QoE 模型:

其中,N代表该直播视频总共由N个视频切片组成,QoEtotal表示N个视频切片的QoE 数值的总和,Rn表示第n个视频切片的码率大小;f(Rn)为计算视频质量的函数,通常可以计算视频切片中每帧的视频质量并进行求和,表示为:f(Rn)=RnτframeFn。其中,τframe表示每帧的时长,由视频画面每秒传输的帧数决定,Fn代表第n个视频切片所包含的帧数,f(Rn)随着码率增加而增大;Tn表示由于缓冲区耗尽而造成的卡顿时长;Ln代表端到端的时延;Sn表示跳帧的时长;|Rn+1-Rn|代表码率切换的幅度;θq、θr、θd、θs、θa分别代表各个指标的权重指数,由于不同的用户对于视频观看有着不同的偏好,可以根据不同的用户需求以及应用场景设置不同的参数。

该模型不仅体现了服务质量,还体现用户对于不同影响因素的偏好,可用于评价视频流媒体直播的QoE。

本文的设计目标为最大化用户在直播会话过程中的QoE,同时尽量减少卡顿以及端到端的时延。

3 基于PID的码率自适应算法

3.1 基于PID控制的码率自适应算法

PID 控制即比例(Proportional)、积分(Integral)、微分(Derivative)控制,是一种常见的闭环控制算法,由于其结构简单、鲁棒性强,常用于工业控制中。PID控制结构示意图如图3所示。

图3 PID控制结构示意图

PID 控制器利用实际输出值c(t)作为反馈信号,将根据所给定的目标值r(t)以及c(t)所构成偏差值e(t)=r(t)-c(t),将偏差值进行比例、积分、微分运算,并将计算结果通过线性组合构成控制量u(t)对受控对象进行控制。u(t)可以表示为:

其中,u(t) 表示PID 控制器的输出值,其中Kp、Ki、Kd分别为比例、积分、微分系数。

PID控制的各部分作用如下:

(1)比例部分:比例部分直接通过偏差值对被控对象进行控制;

(2)积分部分:单纯使用比例部分进行控制时,由于存在静态误差,通过积分对过去偏差值的累积即可消除静态误差;

(3)微分部分:微分控制的主要作用是减少超调量,避免因为实际输出值变化过快而超过目标值,从而增加系统的稳定性。

在观看视频直播的过程中,当缓冲区占用量过大时,说明当前所选择的视频切片码率较小,支持选择更高码率的版本,且端到端的时延也会增加;而当缓冲区占用量较小时,说明当前所选择的视频切片码率较大,缓冲区即将耗尽,面临卡顿的风险。因此,可通过缓冲区占用情况作为反馈信号,选择合适的目标缓冲区阈值作为目标给定值,结合PID控制器,并且利用预估网络吞吐量一起对视频切片的码率进行选择。

基于PID 控制的码率自适应算法原理框图如图4所示,该算法由以下几部分组成:

图4 基于PID的码率自适应算法的结构框图

(1)目标缓冲区选择

根据2.2节中提到的时延控制模型,提供两种目标缓冲区水平供以选择,决策集合为t arg et_buffern={0 ,1} ,所对应的目标缓冲区水平分别为当t arg et_buffern=0时,偏向于减小时延,但有卡顿风险;t arg et_buffern=1时,偏向于避免卡顿,同时会增加一定时延。因此,需要在卡顿和时延之间进行权衡,选择合适的目标缓冲区水平从而提高整体用户体验质量。目标缓冲区的选择使用文献[4]提出的目标缓冲区选择方法,第n个视频切片的目标缓冲区水平可利用以下公式进行决策:

(2)PID控制器

PID控制器的输入分别为:目标缓冲区Btarget以及现有缓冲区占用大小B(t),则偏差值e(t)可以表示为:

根据PID控制模型,PID控制器的输出量u(t)如下:

由于在实际情况中,视频播放过程或以视频帧为单位或以视频切片为单位进行播放,e(t)实际上是离散变量。本文中以视频切片为单位,并且考虑过去五个视频切片的偏差值,将u(t)离散化表示为:

其中,e(n)代表第n个视频切片开始下载时刻的偏差值表示第n个视频切片的目标缓冲区水平,Bn代表第n个视频切片开始下载时刻的缓冲区占用量。

(3)吞吐量预测

利用平均值法即通过计算前5个视频切片的平均网络吞吐量对未来网络吞吐量进行预测。预测的第n个视频切片的平均网络吞吐量可表示为:

(4)码率选择

码率选择是PID模型中的控制进程部分。引入PID控制器的目标是为了通过控制码率的选择使缓冲区的占用水平接近目标缓冲区,避免因缓冲区过大或过小造成的QoE下降。开始下载第n个视频切片时,对视频切片n的码率进行决策,目的是使Bn+1=Btarget,此时缓冲区的占用量为Bn。

在t=nL时刻,偏差值为e(n)=Btarget-Bn。在本文中,PID控制器的输出值表示为u(n)。下载时间过长会导致下载时间内缓冲区耗尽,引起卡顿。为便于分析,令τn=L,根据第2节缓冲区模型中公式(5)对缓冲区占用量进行求导,可以表示为:

第n个视频切片的码率选择不超过Rtarget的最大码率,表示为:

同时,需要考虑到跳帧机制对用户体验的影响。一方面,跳帧可以减少端到端时延,对QoE产生积极影响;另一方面,跳帧会导致用户跳过部分画面,视频观看的连续性下降,对QoE产生消极影响。为提高QoE,本文采用文献[4]所提方法,自适应性调整触发跳帧的延迟阈值。具体的,在客户端下载第n个视频切片时,如果端到端的时延高于ln,则触发跳帧且跳帧数量为Sn。用QoEsp和QoEsn分别表示QoE的积极和消极影响,并采用如下模型:

其中,ηln用于估计不触发跳帧情况时的平均时延,τframe表示视频帧的时长,当QoEsp>QoEsn触发跳帧。ln可以设置为:

码率自适应过程的算法如表1所示:

表1 码率自适应算法

4 仿真结果

本文采用的仿真环境源于2019年ACM Multimedia的为提高用户体验质量而进行的流媒体直播竞赛的仿真环境[8]。在仿真过程中,选择不同直播场景以及网络环境的数据集,其中每种网络都有20个数据文件,对应20种网络条件。根据公式(8)计算用户QoE,平均后最后得到该网络下用户的平均QoE。

为了验证所提算法的性能,将所提算法与HYSA[4]、HCA[1]进行性能对比。

HYSA算法引入播放速度控制机制,选择合适的目标缓冲区,控制视频播放速度;估计跳帧的影响,调整跳帧阈值;估计下一个视频切片的时延,选择使时延最小的码率。

HCA算法同时采用前馈和反馈机制,通过混合控制使码率决策更精确。其中,前馈是指利用预测的网络吞吐量来优化QoE,以适应网络变化,同时利用缓冲区占用情况作为反馈信号。HCA 算法通过前馈控制对网络吞吐量变化做出快速反应,同时借助反馈机制抵抗错误预测的影响。

图5 所示为三种算法的平均QoE 的CDF 曲线图,从图中可以看出所提算法相比于HYSA、HCA 能达到更高的QoE,总体性能比较好。

图5 三种算法的平均QoE的CDF曲线

图6 展示了三种算法在不同场景下的平均QoE。通过游戏直播、体育直播以及室内直播三种直播场景的视频序列进行比较,所提算法的平均QoE在三种场景下都达到最高。

图6 不同直播场景下三种算法的平均QoE

图7展示了三种算法在四种不同网络环境的平均QoE,通过比较可以看出所提算法在四种网络环境(复杂、强网、中网、弱网)下,与HYSA、HCA 算法比较,所提算法的平均QoE均达到最高。

图7 不同网络环境下三种算法的平均QoE

为验证算法在QoE细分指标方面的表现,选择视频质量、卡顿时长以及平均时延3个指标进行仿真和分析。

表2展示了三种算法在以上三个方面的表现。其中视频质量用平均码率表示。总体QoE比HCA算法提高13.1%,比HYSA算法提高6.5%。从细分指标上看,在视频质量方面,所提算法的平均码率最高,视频质量最高,比HYSA算法提高5%。卡顿方面,HYSA、HCA算法偏向于选择较小的码率,所提算法卡顿时长有所增加。在端到端的时延方面,三种算法的时延都比较低,体现针对直播场景实时性要求而设计的特点,所提算法三种算法平均时延最小。从各项指标可以看出,每种算法都有其优势所在,若想达到平均QoE最佳,需要算法在进行码率决策时对QoE的影响因素进行均衡,以HYSA为例,在码率决策时关注的重心在于降低时延,视频质量较低,而所提算法兼顾了视频质量与平均时延,总体的QoE比以上两种算法更高。

表2 不同算法各项指标比较

5 结论

本文以提高用户体验质量为目标,引入PID 控制模型,通过权衡直播场景下影响用户体验质量的关键指标,选择合适的切片码率从而提高用户体验质量。仿真结果表明,所提算法与基线算法相比,整体性能更好,能够有效提高用户的体验质量。

猜你喜欢

缓冲区切片时延
计算机网络总时延公式的探讨
计算机网络总时延公式的探讨
基于物联网的IT运维可视化管理系统设计与实现
新局势下5G网络切片技术的强化思考
5G网络切片技术增强研究
网络切片标准分析与发展现状
《舍不得星星》特辑:摘颗星星给你呀
浅析5G网络切片安全
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区