强化学习在自适应视频码率控制算法中的应用

2020-05-09 02:59白光伟
小型微型计算机系统 2020年2期
关键词:码率缓冲区吞吐量

肖 强,白光伟,沈 航

(南京工业大学 计算机科学与技术学院,南京 211816)

1 引 言

随着互联网多媒体的迅猛发展,互联网在线视频目前已占据互联网流量的半数以上1https://www.cisco.com/web/about/ac79/docs/sp/Online-Video-Consumption_Consumers.pdf.,并且视频收视率正以极快的速度增长.研究表明视频服务质量与用户的观看时长[1]成正相关,因此,提高视频传输的质量对于视频服务提供商至关重要[2].为了在不同的网络条件下传输高质量的视频,大多数因特网视频传输都会使用自适应比特率(ABR)算法[5,6].ABR算法大致拥有两个步骤:1) 将视频分割成块,每个块都以一定的比特率(或质量)编码;2) 根据客户端已缓冲的视频数量和客户端最近实现的吞吐量等条件,选择要获取哪个比特率级别的视频块.在这个总体框架内,各ABR算法在码率选择策略上会有所不同,并且这些决策会影响诸如平均比特率或卡顿率等指标[3],这些指标直接影响用户的体验.

近年来,各界对如何高效地为用户进行码率选择越来越重视.针对该问题,Kevin等人[5]提出了一种通过求解优化问题来选择比特率的方法即Bola算法.Bola是一种用于dash.js2https://github.com/Dash-Industry-Forum/dash.js.的算法,该算法是一种基于缓冲区的算法[4],它通过将比特率选择建模为一个优化问题,并对给定的缓冲区值进行了求解,从而提高用户的视频服务质量.Yin等人[6]提出了MPC算法,该算法会对吞吐量缓冲区占用率有一定的预测性,它根据最近下载的块的吞吐量样本预测未来块下载的吞吐量,然后使用这个预测的吞吐量选择比特率,来优化一个给定的QoE函数,从而达到调节码率的目的.上述研究工作对提高用户的总体平均质量卓有成效,但是忽略了网络状态对ABR算法参数设置的影响,使得在部分网络状态下,用户无法获得高质量服务.针对上述不足,文献[12]提出了一种基于强化学习的算法,来实现视频码率的自适应,该算法在一定程度上增强客户端码率决策机制的灵活性和自适应性,该算法是根据平均可用带宽和实时缓存数据填充量进行环境状态建模,从而实现对视频码率的调节.

然而,现有工作大多都试图将一套相对固定的模型规则应用于所有用户,但用户与用户之间的网络条件往往存在差异性,即便是同一用户,在不同时刻的QoE喜好也可能存在着差异,因此相对固定的ABR算法已无法确保使所有用户拥有一致的观看体验,因此本文提出一种基于强化学习的ABR参数实时自适应机制(PA),充分考虑每个用户网络条件的特征,增强ABR模型的定制性,以确保每个用户都可以获得最佳的视频服务质量.该系统会预先计算给定的视频码率自适应算法在不同网络条件时的最佳参数设置,然后在运行时根据客户端连接的当前网络状态,特别是吞吐量和吞吐量可变性来自动调整ABR算法的参数,从而改善ABR算法的动态范围.

本文的结构安排为:第2节介绍了研究动机;第3节介绍了本文提出的视频码率调节算法参数自适应机制;第4节介绍了基于Q-learning的离线学习方法;第5节介绍了实验与结果分析.第6节总结了全文.

2 研究动机

目前大多数视频服务提供商都希望为尽可能多的用户提供优质的视频服务,而不是仅仅提高视频服务平均水平.现有的ABR算法都需要事先建立一套相对固定的算法模型,例如Bola和MPC,这些算法模型由于规则简单、模式单一,在不同网络环境可能会有不同的调节效果,所以在应用过程中,某些用户或视频可能效果不佳.

图1 MPC算法性能Fig.1 Performance of MPC

本文对MPC算法和Bola算法在不同的会话场景应用不同ABR参数时的运行效果进行了对比,图1、图2分别显示了两种ABR算法应该如何根据网络条件选择最优的参数配置.图1显示了MPC算法在两个不同会话场景下选择不同参数时的比特率和卡顿率,使用MPC算法对其参数进行三种不同的配置策略试验(Cons:偏保守;Mod:适中;Aggr:偏激进).两个会话的吞吐量行为有明显差异,会话A的吞吐量比较平稳,波动较小;会话B吞吐量变化较大.如果视频服务提供商更倾向于消除卡顿,那么适中的配置策略(Mod)更适合于会话A,但偏保守的配置策略(Cons)更适合会话B.图2显示Bola算法在相同的场景下拥有类似的行为.

基于上述分析,本文提出ABR算法参数实时自适应机制,将ABR算法的参数选择建模成优化控制问题,通过前期的强化学习,学习最优的参数选择策略,然后再将策略应用于实时的码率控制中.

图2 Bola算法性能Fig.2 Performance of Bola

3 自适应视频码率调节流程架构

本文提出的ABR算法参数实时自适应机制用了网络连接的分段平稳性来解决ABR参数配置对网络环境的敏感性这一关键性挑战,该机制主要分为两个阶段:1) 离线阶段,系统预先计算每个(固定)网络状态的最佳配置选择.2) 在线阶段,在视频播放过程中,系统不断地检测网络状态的变化,并根据当前网络状态选择预先计算的最佳配置.

图3 离线学习流程示意图Fig.3 Offline learning process diagram

离线阶段.为了将网络状态映射到它们的最佳ABR参数配置,本文使用了一个由3个组件组成的学习管道:环境参数估测器、虚拟播放器和配置参数选择器,如图3所示.环境参数估测器以吞吐量跟踪记录作为输入,表示特定的网络状态,并在此吞吐量记录上对不同ABR配置进行探索.它是通过使用虚拟播放器来实现的,虚拟播放器模拟了实际视频播放器的动态,并且能够输出ABR算法在应用不同配置时的性能.学习流程大致分为3步.

图4 系统组成及其交互流程Fig.4 System composition and its interaction process

1)分析客户端吞吐量序列集合X{Xput1,Xput2,…,Xputn}.通过环境参数估测器计算该周期内的吞吐量均值和均方差,从而标识其网络状态,不同于以往的传统算法,这种表示方法充分考虑了网络状态的波动状况.

2)虚拟播放器以所得的网络状态作为输入,并在此网络状态上对ABR算法不同参数配置进行探索.

3)配置参数选择器比较了不同配置的性能,并构建了一个最优配置表(ConfigMap),它将给定的网络状态映射到最佳配置.

在线阶段.整个系统主要由客户端、云视频服务器等几个部分组成.图4为系统各组成部分及其交互流程图.因为考虑到网络状态变点检测算法是一个计算密集型算法,放在客户端运行势必会带来不必要的资源消耗,所以引入了边缘计算的方法[13],这使得系统具有更好的性能,以及更低的耦合度,利于开发和维护.在线阶段的详细流程大概分为如下几步:

1)在视频播放过程中,客户端播放器会不停地收集播放状态信息(例如缓冲区长度、视频播放状态和吞吐量测量),并且将这些信息周期性的上传到边缘计算节点.

2)边缘节点根据客户端上传的播放器状态信息来分析网络状态,当网络状态发生变化时,则激活参数选择器.

3)参数选择器会根据离线学习生成的最优配置表configMap来选择能够在当前网络状态下运行效果最好的参数C,并且将参数C返回给客户端播放器的ABR模块.

4)ABR模块在接收到新的参数组之后,将模型中的参数替换为新的参数,然后以新的模型参数为客户端播放器选择合适的码率.

4 基于Q-learning的离线学习方法

视频码率自适应的最终目标是提高用户的满意度,以实现更高的用户参与度.我们的目标是提供一个灵活的新模式,而不是一个固定的模型.ABR算法参数实时自适应机制通过对网络状态的感知,实时调整系统参数,然后利用网络状态和视频码率的映射关系选择合适的码率,该映射关系可以表示为:Rk=F(·),并且可以从如下几个方面判断所选择的比特率Rk的性能:

1)平均视频质量,即每个视频块的平均质量:

(1)

2)平均质量变化幅度,它体现了视频质量从一个块到另一个块的变化的大小:

(2)

3)卡顿:对于每个视频块来说,若其下载时长dk(Rk)/Ck高于播放完缓冲区视频块的时长BK时就会发生卡顿,因此总卡顿时长为:

(3)

由于用户可能对上述三个方面中哪个更重要有不同的偏好,所以我们通过对上述因素的加权和来定义视频片段1到K的QoE:

(4)

其中,λ、μ分别是与视频质量变化和卡顿恢复时间相对应的非负加权参数.一个相对较小的λ表示用户并不特别关注视频质量的变化.相对于其他参数,较大的变量表示用户更加关心该指标.

因此ABR参数自适应问题的目标函数可以表示为:

(5)

同时,满足如下的限制条件:

Ri=F(N,c),∀i=1,…,K.

(6)

c∈C

(7)

公式(6)表示ABR算法将网络状态N映射为比特率R的关系式,其中c(c∈C)表示ABR算法中的参数配置.我们将给定的的网络状态N作为输入,将能使视频QoE(·)最大化的配置参数c作为输出,用于优化ABR算法模型,从而提高ABR算法在给定网络状态时的性能.对于网络状态N的具体定义会在4.1中详细描述.

若要实现上述的ABR算法参数实时自适应目标,需要预先计算在不同网络状态下,ABR算法使用何参数时效果最佳,然后形成网络状态与码率自适应算法参数最优配置映射表.本文采用基于Q-learning的学习方法生成该映射表,将网络状态映射到ABR算法在该网络状态下运行的最佳参数配置.下面详细介绍一下基于Q-learning的离线学习方法设计.

4.1 环境建模

系统状态定义.系统状态Sk主要由两个因素决定:客户端网络状态(Nk)、客户端视频缓冲填充状态(Bk).因此,系统状态定义如公式(8)所示:

Sk=(Bk,Nk)

(8)

本文使用二元组<μk,σk>定义网络状态N[7,10],其中μk是用户感知吞吐量的均值,σk是用户感知吞吐量在这段时间内的标准差,这种方法不仅考虑了网络带宽的均值,并且充分考虑了网络吞吐量的细节变化,例如网络的波动程度等[9].若第k个统计周期内吞吐量记录为{x1,x2,…,xn},则μk,σk的计算公式分别如公式(9)、公式(10)所示:

(9)

(10)

因用户感知吞吐量的均值、吞吐量的标准差取值范围都是连续的区间,为了方便问题的定义、减少系统状态的维度,我们将他们离散化以建模状态变量.取值范围如表1所示.

表1 缓冲填充与网络带宽离散化关系

Table 1 Relationship between buffer filling and
network bandwidth discretization

状态元素值范围μk[0,μmax]secBk[0,Bmax]sec

Bk表示客户端视频缓冲填充状态,以秒(s)作为基本单位,定义如公式(11)所示:

Bk=Bk-1+Ts-dk*Ts

(11)

其中,dk表示在状态k时从客户端缓冲区提取出来的视频片段的个数,且由于只允许从客户端缓冲中删除完整的一个视频片段,dk是一个整数.而从客户端缓冲中提取出来的视频片段经过解码之后得到原始视频片段,被放置到另外一个被称为显示缓冲区(Presentation Buffer)的缓冲区中.当显示缓冲区为空时,会从客户端缓冲区中将新的视频片段添加进去.因此dk的计算应该考虑以下两个方面:最后一个请求段的下载时间Δtk和当前显示缓冲区的占用大小PBk-1,PBk-1表示在前一个阶段没有被显示的视频片段部分.dk的定义如公式(12)所示:

(12)

客户端缓冲区状态Bk可以总结如下:当Bk等于0时,由于客户端缓冲区变为空,下载的视频片段直接被添加到显示缓冲区,所以在前一个视频片段下载的过程中视频卡顿已经发生了;反之,当Bk等于最大缓冲大小Bmax时,客户端需要等待显示缓冲区为空才能重新请求一个新的视频片段.

4.2 构建回报函数

回报函数R反映了一个决策的好坏情况.在本文中,视频片段播放时主要影响用户QoE的因素有三个:视频片段质量水平大小、连续视频片段的质量变化幅度、视频播放时发生卡顿.由于反应客观视频质量的PSNR参数与反应主观的视频质量的MOS之间存在拟线性关系.因此,我们用简单的线性函数来建模回报函数R,定义如公式(13)所示:

R=Rq-λRs-μRb

(13)

其中,Rq为视频片段质量水平的回报函数,Rs为连续视频片段质量变化频率的回报函数,Rb为视频播放时发生卡顿的回报函数.

假设在一个视频序列中有K个完整的片段.每个片段持续τ秒.客户端播放器根据可用带宽请求适当质量级别的视频块.请求的视频质量级别相应地分别为{q1,q2,…,qK},该集合表示请求的视频质量序列.因此,视频质量回报Rq可以表示为使用当前参数时所有请求的视频质量级别的平均值,定义如公式(14)所示:

(14)

质量切换频率回报函数Rs可评估为相邻段之间质量变化的平均次数以及变化的幅度,定义如公式(15)所示:

(15)

Rs旨在为了维持视频片段质量变化的幅度尽可能的小,当两个连续的视频片段的质量突然变化很大,那么将会得到一个较大的惩罚.

而视频播放卡顿回报函数Rb可以用缓存饥饿事件在总播放时长中比率来衡量.假设总饥饿时间Ts与总显示时间Tt的比值,如下所示:

(16)

Tt=N·τ+Ts

(17)

当缓冲区变为空时发生饥饿事件,即卡顿事件.假设qi表示请求的第i个视频块,其所对应的视频码率为Ri,下载期间的网络带宽是bi,而在下载前,缓冲区保留的长度为Ti-1.因此,可以按公式(18)计算相应的饥饿时间:

(18)

因此,如果在下载新的视频块前保持足够的缓冲储备,即Ti-1≥Ri×τ/bi,则不会发生饥饿.否则,饥饿时间是下载时间与缓冲区预留长度之间的差.最后,总饥饿时间可以计算为所有饥饿时间的总和:

(19)

4.3 探索策略

当Agent得到回报函数值并且更新Q表之后,在某个状态下具体选择某个行动主要有两种策略:一种是探索策略,随机选择一个行动,这样对于探索未知的行动会产生更好的效果,且更有利于Q值的更新,对算法的性能与收敛速度有重要的影响;另外一种是利用过往经验的策略,为了能获得最大的期望回报,选择在当前状态下Q值最大的行动.本文采取ε-greedy贪心算法进行探索,探索的过程根据概率ε(0≤ε≤1)来随机地选择下一步行为.ε-greedy贪心算法的选择策略π(s)为:

(20)

其中0≤ζ≤ 1是均匀分布的随机数,每次进行决策前,都会对ζ随机赋值.若ζ<ε,Agent从行为集合A中随机选择一个行为执行.若ζ≥ε,Agent 则遍历行为集合A中的所有行为,最终执行能够获得最大Q值的某个特定的行为.

算法1详细描述了利用每个状态-行动对的平均回报值来生成最终收敛的配置表.

算法1.Q值的初始化

输入:学习速率α,折扣因子γ,系统状态s,客户端行为集合A,贪心系数ε,权重系数λ、μ

输出:Q表

1.初始化Q(s,a)表;

2.Repeat (for each episode);

3. ζ ← random(0,1);//在[0,1]内,取一随机值 ζ

4. if(ζ<ε)

5.a←random(A)

6. else

7.a←argmaxα∈AQ(s,a)

//计算执行行为a后的视频片段平均质量Rquality

//计算执行行为a后的视频播放卡顿率Rbufferstate

10.Tt←N×τ+Ts//总播放时长

//计算执行行为a后的视频码率切换回报函数Rswitches

12.Rswitches←-AVG(|qi-qi-1|)

13.R←Rquality+λRswitches+μRbufferstate

//更新Q表

14.Q(sk,ak) ← (1-α)Q(sk,ak)+α·(R+γ·maxbQ(sk+1,b))

15.Sk:Sk+1

16.UntilQ收敛

5 实验与结果分析

实验环境搭建.客户端程序是基于Dash.js的一个播放器,一个由mpeg-dash论坛实现的基础播放器,其使用的编程语言是JavaScript.我们对Dash.js作了一定程度的修改,修改后的Dash播放器会周期性的上报吞吐量变化信息、缓冲区长度、视频播放状态等播放信息.

我们将ABR参数自适应的核心算法部署在了边缘节点上,边缘节点负责依据客户端上报的播放器数据返回相应的ABR算法参数值.

移动终端的配置Qualcomm Snapdragon 835处理器,8核16线程,主频2.45GHz;6GB RAM;支持IEEE 802.11n WiFi和4G/3G/2G;Android 7.1.1操作系统.视频服务器的配置Intel(R) Xeon(R) CPU E5-2620 v4的处理器,16核32线程,主频为2.10GHz;32GB RAM;Ubuntu 16.04 64位.边缘计算节点的配置为Intel Core i7 4790处理器,4核8线程,主频为3.6GHz;16GB RAM;128GB固态硬盘(SSD).路由器选用极路由HC5962,内存56Mb.

实验过程中,我们通过ChromeDevTools API来模拟不同的网络条件.这样我们就可以使用基于吞吐量跟踪的Chrome远程接口来控制上传和下载吞吐量以及延迟,便于我们模拟真实的应用场景.

模拟数据集.模拟数据集(1)https://www.fcc.gov/reports-research/reports/.全部来自三个月内收集到的真实用户播放视频时的吞吐量跟踪数据.每条数据都包含一段时间内视频块大小和它们的下载时间.我们通过将块大小除以它们的下载时间来获得吞吐量.数据集中既包含使用有线连接的PC端视频播放时的吞吐量数据,也包含了使用WIFI或蜂窝连接的移动设备上的吞吐量数据.我们主要关注的是平均吞吐量低于6 Mbps的数据.

视频质量评估参数.在这里,我们使用前面定义的回报函数作为衡量单个视频片段质量水平的决策好坏的方法.为了评估不同方法的效果,我们还需要使用一个衡量在整个播放过程视频质量的参数.一般情况下,QoE只能通过主观评价测试或者使用客观的用户感知模型来衡量.HAS类型的视频的QoE的衡量现在仍是一个非常活跃的研究课题,而只有少量的客观衡量指标能被使用.定义HAS视频的QoE依赖于视频片段质量水平的平均值和标准差,但此方法并没有考虑视频卡顿对QoE的影响.而视频卡顿主要依赖于卡顿的次数和平均长度.于是,我们在此基础上,构建一个连续的函数来测量视频卡顿对QoE的影响,定义如公式(21)所示.

(21)

其中,Ffreq表示视频卡顿的频率,FTavg表示卡顿的平均长度.假定:当没有卡顿发生时,函数值设为0.

衡量QoE大小的MOS(Mean Opinion Score)的计算方法在没有卡顿的场景中非常有效.于是,结合视频播放质量、视频质量转换次数以及视频卡顿三个方面因素对QoE的影响,一段由K个视频片段组成且片段k播放质量为Qk的HAS类型的视频播放时MOS的计算公式如公式(22)所示.

eMOS=max(0.81*μ-0.95*σ-4.95*φ+0.17,0)

(22)

参数设定.我们设定一系列能提高算法执行效率的参数,例如的参数学习率α、折扣因子γ、客户端上报周期D等,如表2所示.需要说明的一个参数是客户端上报周期D,它代表播放器上报信息的间隔,一般它等于一段时间内视频块下载的块数.当决策周期太短时,决策结果将会在很大程度上受到瞬时状态的影响,不能真实地反应出状态的变化;当决策周期太长,算法对环境状态的改变不能做出积极的响应,从而导致整体性能的下降.所以能获得最好结果的参数选择为D=15,这样回报函数只考虑重要的测量,以减少瞬时状态和次优决策传递对结果的影响.

表2 参数及其估计值
Table 2 Parameters and their estimated values

参数估计值D5,10,15,20α0.1,0.5,0.9γ0.1,0.5,0.9

我们对不同的参数组合进行了实验,统计结果如表3所示.由表3可知,大部分的平均视频质量评估值是接近的,这说明了本文提出来的视频码率自适应调节机制具有较好的鲁棒性.当学习率为0.1、折扣率为0.1时,能获得更高的平均视频质量评估值.所以,在下面的实验中,我们设定α=0.1、γ=0.1.

表3 在不同折扣率与学习率下的系统性能评估值
Table 3 Average video quality evaluation value at different
discount rates and learning rates

γαeMOS0.10.11.2360.10.51.2200.10.91.1230.50.11.1990.50.51.1340.50.91.0140.90.11.0530.90.50.9890.90.90.836

在本节中,我们将展示ABR参数自适应机制引入到现有3种算法之后的性能:Bola、Hyb和RobusMPC.

5.1 Bola和Hyb

Bola算法通过求解优化问题来选择比特率.Bola是dash.js[11]中使用的一种基于缓冲区的算法,因此它在进行比特率判定时不使用吞吐量预测.它还将比特率选择建模为一个优化问题,并对给定的缓冲区值进行了求解.它使用下载最低比特率的最小缓冲阈值和它试图维护的目标缓冲区阈值的比例γ.简单来说,γ控制着ABR避免缓冲的力度.较高的γ值意味着算法比较保守.Bola算法旨在最大限度地提高平均比特率,同时最小化卡顿.通过对比试验,我们发现将参数自适应机制应用于Bola算法可以显著改进现有的一些ABR算法,尤其是在最小化卡顿时间和最大化平均比特率方面有明显的提升.

图5 PA算法相较于与BOLA和HYB性能对比Fig.5 Comparison of PA algorithm performance with BOLA and HYB

在参数自适应系统与Bola算法协同工作时,边缘节点根据网络吞吐量对其算法内的参数γ进行实时调节.参数γ的大小意味着避免卡顿在Bola算法内的权重.在Dash.js中实现的Bola算法参数γ默认为-10.28.图5显示了在两个底层度量方面引入参数实时自适应机制后的算法的性能都优于传统算法,即卡顿率和平均比特率.在保证了原有的卡顿率不变的情况下,相较于BOLA算法,超过82%的视频播放提高了平均比特率,并且在所有实验样本中比特率平均增加了7.0%.

我们也对Hyb算法进行了对比实验.Hyb算法[14]使用了简单的启发式选择比特率.Hyb综合考虑了预测的吞吐量和当前的缓冲区占用率.对于每一视频块,Hyb选择可以避免卡顿的最高的比特率.具体来说,如果Sj(i)表示按比特率i编码的块j的大小,B是基于过去样本的预测吞吐量,L代表缓冲区的长度.Hyb会选择最大的比特率i,使得Sj(i)/B

5.2 RobustMPC

此外,我们还试验了将ABR参数自适应机制与MPC算法相结合,我们实验对比的对象是MPC算法中性能最好的变体RobustMPC算法.改良后的MPC算法会根据当前网络状态选择一个折扣参数的最佳值d,来代替原本算法使用中的吞吐量估计值.改良后的算法在卡顿率和平均比特率两方面的QoS指标有明显提升.将参数自适应系统与MPC算法协作时,在比特率分布上与RobuMPC相似,如图6(a)所示.它显著地减少了视频播放的卡顿情况:存在卡顿的会话数量从30.2%减少到5.1%.图6(b)则显示了PA机制在平均比特率方面表现更优于MPC算法.此外,它还通过将每个视频块码率变化幅度的均值提高38%来实现更好的回放平滑度.

图6 PA算法相较于与RobustMpc性能对比Fig.6 Comparison of PA algorithm performance with RobustMpc

由图7可知,本文提出的基于Q-learning的视频码率算法参数自适应机制与BOLA、MPC原型算法相比,在平均视频质量评估值方面能提升5%~12%,其中eMOS值的计算方法可参照公式(22).

图7 平均视频质量评估值对比Fig.7 Average video quality evaluation value comparison

在与MPC算法对比时,我们发现本章提出来的视频码率自适应机制的有效性,甚至能获得比其他码率自适应机制更好的效果.同时,从图中不难发现,随着最大缓冲空间的增大,平均视频质量评估值亦会增大.因为随着缓冲空间的增大,若是弱网环境,则缓冲的初始阶段会缓冲更多的视频数据,使得视频在播放的过程中发生重新缓冲的概率减小,从而视频卡顿的时长以及频率也将会减少.

图8 平均视频质量评估值对比Fig.8 Average video quality evaluation value comparison

如图8所示,与传统的MPC、BOLA相比,本文提出来的基于Q-learning的视频码率调节算法在不同的网络环境下均能获得更好的视频服务质量.这样进一步说明了本文的视频码率调节机制在实际网络环境下具有较好的适应性.同时,对比分析会发现,采用WiFi的接入方式能获得更好的视频服务质量,这主要是因为移动网络是复杂多变的[8],更容易发生网络突变,使得网络带宽预测不够准确.

6 结束语

本文提出了一种基于强化学习的自适应视频码率调节机制,实现了根据网络状态实时调整ABR算法.与传统启发式的参数调节方法不同,我们通过对网络状态的感知来为ABR算法选择合适的参数.研究发现,本文提出的算法显著提高了Bola、Hyb以及RobustMPC的性能.在实验中的数据集内有大约80%的视频播放,都可以获得不同程度的视频平均比特率提升,视频播放的总体平均比特率提高大约8.3%,尤其是在网络波动较大的情况下,提升效果更为显著.我们的工作可以作为设计新型视频码率调节系统的依据.

猜你喜欢
码率缓冲区吞吐量
基于缓存补偿的视频码率自适应算法
移动视频源m3u8多码率节目源终端自动适配技术
考虑全帧间参考依赖性的监控视频高效视频编码码率控制算法
基于DASH标准的码率平滑切换算法
2017年3月长三角地区主要港口吞吐量
2016年10月长三角地区主要港口吞吐量
2016年11月长三角地区主要港口吞吐量
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区
2014年1月长三角地区主要港口吞吐量