«上一篇 下一篇»
  计算机工程  2021, Vol. 47 Issue (5): 292-300  DOI: 10.19678/j.issn.1000-3428.0057142
0

引用本文  

耿俊杰, 李晓明, 颜金尧. 基于网络流量预测的DASH系统优化[J]. 计算机工程, 2021, 47(5), 292-300. DOI: 10.19678/j.issn.1000-3428.0057142.
GENG Junjie, LI Xiaoming, YAN Jinyao. Optimization of DASH System Based on Network Traffic Prediction[J]. Computer Engineering, 2021, 47(5), 292-300. DOI: 10.19678/j.issn.1000-3428.0057142.

基金项目

国家自然科学基金(61971382);国家重点研发计划(2019YFB1804300)

作者简介

耿俊杰(1987-), 男, 博士研究生, 主研方向为融媒体网络技术;
李晓明, 博士;
颜金尧, 教授、博士、博士生导师

文章历史

收稿日期:2020-01-07
修回日期:2020-03-24
基于网络流量预测的DASH系统优化
耿俊杰1 , 李晓明2 , 颜金尧1     
1. 中国传媒大学 协同创新中心, 北京 100024;
2. 北京华宇信息技术有限公司, 北京 100024
摘要:近年来基于超文本传输协议(HTTP)的自适应视频流量大幅上升,传统HTTP动态自适应流(DASH)速率算法无法准确预测网络吞吐量,导致网络带宽波动,使传输控制协议慢启动并触发抛弃规则,从而降低视频质量。提出一种基于网络流量预测的改进DASH速率算法。将DASH算法分为视频质量选择阶段、视频下载阶段和请求等待阶段,在视频质量选择阶段引入支持向量回归模型和长短期记忆网络预测网络吞吐量,结合缓冲时长选择更优质量的视频片段,在视频下载阶段通过预测实时吞吐量降低触发抛弃规则的次数。仿真结果表明,该算法可自适应流速率并减少抛弃规则的命中次数,有效提高视频体验质量。
关键词基于HTTP的动态自适应流    体验质量    吞吐量预测    支持向量回归模型    长短期记忆网络    
Optimization of DASH System Based on Network Traffic Prediction
GENG Junjie1 , LI Xiaoming2 , YAN Jinyao1     
1. Collaborative Innovation Center, Communication University of China, Beijing 100024, China;
2. Beijing Thunisoft Information Technology Co., Ltd., Beijing 100024, China
Abstract: In recent years, the adaptive video traffic based on Hyper Text Transfer Protocol(HTTP) has increased greatly.The traditional Dynamic Adaptive Streaming over HTTP(DASH) rate algorithm can no longer accurately predict the network throughput, giving rise to the fluctuations of network bandwidth.The fluctuations cause the transmission control protocol slow to start and thus trigger the discarding rules, leading to a decrease in the video quality.This paper proposes an improved DASH rate algorithm based on network traffic prediction.The DASH algorithm is divided into video quality selection stage, video downloading stage and request waiting stage.In the video quality selection stage, the Support Vector Regression(SVR) model and the Long Short-Term Memory(LSTM) network are introduced to predict the network throughput.In addition, the buffer duration is used to select the better quality video clips.In the video downloading stage, the real-time throughput is predicted to reduce the number of times the discarding rules are triggered. Simulation results show that the proposed algorithm can adapt to the streaming rate and reduce the hit times of discarding rules, effectively improving the Quality of Experience(QoE) for video.
Key words: Dynamic Adaptive Streaming over HTTP(DASH)    Quality of Experience(QoE)    throughput prediction    Support Vector Regression(SVR) model    Long Short-Term Memory(LSTM) network    
0 概述

随着网络带宽不断增加,人们对网络媒体的信息需求日益增长。根据2016年CISCO公司发布的基于网络应用分类的流量报告[1],网络媒体流量占整个网络流量的86%,各类媒体应用成为人们信息化生活必不可少的一部分。传统的RTP/RTSP[2-3]流媒体技术主要基于用户数据报协议(User Datagram Protocol,UDP),其传输具有不可靠性,且RTP/RTSP流媒体技术需要特定的流媒体服务器CDN,部署成本较高。此外,网络带宽实时波动会影响用户的视频播放体验,为了使用户获得更快速、流畅和清晰的媒体服务体验,改进流媒体技术提高用户的体验质量(Quality of Experience,QoE)成为研究热点。

用户的体验质量与重缓冲时长成反比,与视频清晰度成正比。用户期望获得较高的视频质量[4],而视频质量与视频编码速率成正比,当网络状况较差、视频编码速率较低时,客户端如果仍选择较高视频质量,则会造成当前回放的缓冲时长过度消耗而发生重缓冲,导致播放出现停顿[5],从而降低用户体验质量。近年来,超文本传输协议(Hyper Text Transfer Protocol,HTTP)自适应传输技术逐渐兴起,2011年MPEG组织联合3GPP公司共同发布关于HTTP自适应流化的公开草案MPEG-DASH[6],推出基于HTTP的动态自适应流(Dynamic Adaptive Streaming over HTTP,DASH)[7-8]技术,其可通过感知当前客户端网络和缓冲等状况,动态选择相应编码速率的视频片段下载播放,在客户端网络状况较好或缓冲时间较长时会获得更高的视频质量,是提高用户体验质量的有效途径。

ABR自适应比特率算法[9]是一种使用较广泛的自适应流媒体速率算法,其主要分为两类:第一类算法利用网络吞吐量预测并选择视频片段质量,即根据上一个视频片段平均下载速率选择下一个视频片段质量;第二类算法仅根据当前缓冲区的缓存状态选择视频片段质量。第一类算法对吞吐量的预测较简单,常会过高或过低估计网络带宽,导致发生重缓冲。第二类算法由于未对网络吞吐量进行实时预测,因此网络的动态性和DASH基于HTTP的渐进式下载方式会导致提前触发抛弃规则,从而损失带宽利用率,降低视频质量。抛弃规则是指在视频片段下载过程中实时监控下载速率,当下载速率无法满足一定条件时,则放弃当前所选视频片段,并根据当前网络状况重新选择视频片段。网络吞吐量的准确预测有助于提高用户的视频体验质量[10-11]

本文在传统基于吞吐量的ABR自适应比特率算法基础上,提出一种改进自适应流媒体速率算法。使用机器学习方法预测网络吞吐量并自适应流速率,建立基于浏览器缓冲时长和当前网络吞吐量预测的决策模型,将支持向量回归(Support Vector Regression,SVR)模型和长短期记忆(Long Short-Term Memory,LSTM)网络[12]相结合,在不发生重缓冲情况下获得较高的视频质量。同时,将评价指标SSIMPlus[13]作为不同编码速率下视频效用的客观度量,并设定阈值,当视频质量效用超过阈值时进行切换以减少视频播放抖动,最终采用带宽描述文件[14]进行实验验证。

1 相关工作

为提高基于HTTP的视频流用户体验质量,研究人员提出众多自适应比特率算法。其中,传统基于吞吐量的自适应算法[15-17]使用上一个视频片段的平均下载速率作为下一个视频片段的选择标准,然而其吞吐量估计不够准确。BBA模型[18]充分利用缓存信息,提出当缓存时间较长时应选择较高的视频片段下载速率,反之应选择较低的视频片段下载速率,并将缓存时长与所选速率映射为单调递增的分段线性函数。该模型虽然根据当前的缓存状态选择速率,但在带宽的预测上仍基于上一个视频片段的平均下载速率选择下一个视频片段。PANDA模型[19]根据TCP加窗原理,利用加窗函数对选择速率进行微调来测试网络性能。该模型能提高视频播放速率的稳定性,但由于其采用类似TCP慢启动的特性,从启动到达到最高可用带宽需要一定时间,无法快速利用可用带宽,导致用户的体验质量有所降低。QDash-abw模型[20]利用代理模块实时测定TCP的延时特性,用于计算可用网络带宽,在一定程度上加大客户端的负担。

BOLA模型[21]基于李雅普诺夫稳定理论证明在已知当前缓存的情况下,无需知道网络状况就可采用最大化效用函数选择相应的编码速率,从而达到在缓存稳定条件下时间平均效用的最大化。该模型需在缓存达到稳定状态时触发算法,由于前期缺少缓存信息,因此可采用传统算法选择合适的比特率。BOLA模型可降低重缓冲率,并能保证在缓存相对稳定的情况下,实现用户体验质量效用最大化。为保证该模型在网络带宽波动较大时的有效性,在视频片段下载阶段会触发BOLA抛弃规则,即通过实时监控网络吞吐量重新选择视频片段质量。由于TCP协议具有慢启动的特性,因此在实际网络中BOLA抛弃规则会提前触发,导致视频质量下降。

相关研究表明吞吐量的准确预测有助于提高用户的视频体验[22],然而在网络流量预测方面,许多研究工作集中在如何理解网络流量的模式[23-24]以及通过建模来预测网络流量。传统网络流量预测采用统计学方法,根据网络流量时间序列之间相关性建立线性预测模型,例如移动平均模型MA、自回归模型AR和自回归滑动平均模型ARMA等。由于大部分网络的时间序列具有非平稳性和非线性的特点,因此研究人员提出基于原有线性预测模型进行差分处理的ARMA模型[25]。此外,基于机器学习的时间序列模型也被应用于网络流量预测。文献[26-27]提出一种基于支持向量机(Support Vector Machine,SVM)的流量预测模型,在此基础上,研究人员针对视频流量进行预测[28]。文献[29]使用LSTM深度模型对时间序列进行预测。文献[30]提出一种基于SDN的DASH模型,通过SDN的网络架构实时调整网络服务质量策略,为客户端提供带宽保证,从而提高用户的体验质量。

2 系统模型

传统DASH系统结构如图 1所示。客户端视频播放器向媒体服务器发送请求获取媒体文件并展示描述文件MPD,再根据当前网络状况向媒体服务器请求相应质量的视频片段。由于DASH服务器与客户端之间的网络可用带宽在拥塞或者4G传输等情况下存在实时变化,导致用户的体验质量发生变化,包括所看视频的质量降低以及出现重缓冲现象。

Download:
图 1 传统DASH系统结构 Fig. 1 Structure of traditional DASH system
2.1 传统DASH模型

定义1(视频质量)   一个完整的视频流被编码为代表不同视频质量的$ l $种比特率,视频编码速率集合$ \mathbb{R}=\{{r}_{1}, {r}_{2}, \cdots , {r}_{l}\}, \forall {r}_{i}\in \mathbb{R}, 1\le i\le l, $ri为视频编码速率。各种比特率的视频流均可划分为N个视频片段,即$ \exists \mathrm{C}\mathrm{h}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{S}\mathrm{e}{\mathrm{t}}_{i}=\{\mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{i1}, \mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{i2}, \cdots , \mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{iN}\} $,每个视频片段有相同的时间间隔p,即$ \forall \mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{ij}\in $ $ \mathrm{C}\mathrm{h}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{S}\mathrm{e}{\mathrm{t}}_{i}, 1\le i\le L, 1\le j\le N, \mathrm{P}\mathrm{e}\mathrm{r}\mathrm{i}\mathrm{o}\mathrm{d}\mathrm{o}\mathrm{f}\mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{ij} $ $ =p $。视频片段大小$ {S}_{ij}=p\times r $,视频效用随视频片段增大而单调递增。其中,$ {r}_{i}\le {r}_{j}, 1\le i\le j\le l, {u}_{i}\le {u}_{j} $ui为以速率ri编码的视频片段效用)。

定义2(网络可用带宽)  网络可用带宽在服务器和客户端之间随网络波动不断变化,设网络带宽是一个随时间变化的随机过程$ \mathrm{b}\mathrm{w}\left(t\right) $,在t时刻请求选择下载编码速率为ri的视频片段$ \mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{ij} $,则在下载时间段下载的视频片段大小为:

$ {\int }_{\mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{r}\mathrm{t}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}}^{\mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{f}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{s}\mathrm{h}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}}\mathrm{b}\mathrm{w}\left(t\right)\mathrm{d}t={S}_{ij} $ (1)

下载时间为:

$ \mathrm{d}\mathrm{o}\mathrm{w}\mathrm{n}\mathrm{l}\mathrm{o}\mathrm{a}\mathrm{d}\mathrm{T}\mathrm{i}\mathrm{m}\mathrm{e}=\mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{s}\mathrm{t}\mathrm{a}\mathrm{r}\mathrm{t}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}-\mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{f}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{s}\mathrm{h}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e} $ (2)

DASH客户端处理过程为:视频播放器下载连续的视频片段在客户端进行回放,且每个片段在下载完成后才能播放。播放器根据当前可用带宽向服务器发送请求HTTP Request来下载相应编码的视频片段,视频片段下载完成后以编码速率进行解码播放。视频播放器采用一个有限的缓存来存储下载的连续片段,如果缓存时长为0,则表明无内容可播放;如果缓存被占满已无可用空间,则需等待相应时长

传统DASH模型的交互过程如下[31]

1)以初始化速率下载。初始速率通过预先设定的Default$ r\in \mathbb{R} $获得,先根据视频片段质量量化函数$ q\left({r}_{\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}}\right) $得到相应的视频质量,然后开始下载视频片段。

2)下载监控阶段。实时监控下载过程的网络吞吐量,如果下载相应比特率的视频片段所需时间超过阈值,则抛弃所选比特率,并根据当前网络吞吐量选择视频片段质量。

3)根据上一个视频片段的平均下载速率得到网络吞吐量估计值,并据此选择下一个视频片段的质量。下一个视频片段的平均下载速率$ {r}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}=\mathrm{L}\mathrm{a}\mathrm{s}\mathrm{t}{\mathrm{S}}_{i(j-1)}/ $ $ \mathrm{d}\mathrm{o}\mathrm{w}\mathrm{n}\mathrm{l}\mathrm{o}\mathrm{a}\mathrm{d}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e} $,通过质量量化函数$ q\left({r}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}\right) $得到相应视频片段质量并开始下载,然后重复步骤2。

4)调度阶段。如果客户端在下载第j个视频片段时缓冲时长$ B\left(j\right) $大于最大允许缓冲时长$ {B}_{\mathrm{m}\mathrm{a}\mathrm{x}} $,则等待且等待时长$ ∆=B\left(j\right)-{B}_{\mathrm{m}\mathrm{a}\mathrm{x}} $,否则直接向服务器发送下一次请求HTTP Request,相关表达式如下:

$ ∆=\left\{\begin{array}{l}0,B\left(j\right)<{B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\\ B\left(j\right)-{B}_{\mathrm{m}\mathrm{a}\mathrm{x}}, B\left(j\right)\ge {B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\end{array}\right. $ (3)

在传统DASH系统中,各个视频片段采用基于HTTP的渐进式下载模式,且在全部下载完成后才能回放。当下载下一个视频片段时,需重新发送请求HTTP Request,由于网络带宽的波动会触发DASH算法中的抛弃规则,因此会降低视频质量。

2.2 基于预测和缓冲状态的自适应算法

由于传统的DASH算法未利用缓存状态选择相应的比特率,BOLA模型仅根据当前缓存状态选择相应的比特率,而网络的动态性和基于HTTP的渐进式下载方式会导致BOLA触发抛弃规则,从而损失带宽利用率并降低视频质量,因此本文基于ABR算法使用有时间记忆的机器学习方法预测网络吞吐量,并建立基于缓冲时长和网络流量预测的决策模型,通过对网络吞吐量的有效预测减少抛弃规则的触发概率,从而提高用户体验质量。网络层阀门有遗忘阀门、输入阀门和输出阀门3类。这些阀门可打开或关闭,用于判断网络的记忆态在该层的输出结果是否达到阈值,从而更好地预测网络流量。LSTM网络是在循环神经网络(Recurrent Neural Network,RNN)结构的基础上增加各层阀门节点,其结构如图 2所示。

Download:
图 2 LSTM网络结构 Fig. 2 Structure of LSTM network

LSTM网络具体处理流程如下:

1)采用Sigmoid函数控制遗忘阀门层,根据上一个时刻的输出$ {h}_{t-1} $和当前输入$ {x}_{t} $产生一个0到1的$ {f}_{t} $值,并利用上一个时刻学到的信息$ {C}_{t-1} $进行计算,对部分信息进行去除或保留。$ {f}_{t} $的计算公式如下:

$ {f}_{t}=\sigma ({W}_{f}\cdot [{h}_{t-1}, {x}_{t}]+{b}_{f}) $ (4)

2)通过当前输入$ {x}_{t} $和上一个时刻的输出$ {h}_{t-1} $通知C需要更新的信息,包含两部分:(1)输入阀门层通过Sigmoid函数确定需更新的信息值;(2)tanh层用于生成新的候选值$ \stackrel{ \sim }{{C}_{t}} $,其作为当前层产生的候选值添加到单元状态中,相关计算公式如下:

$ {i}_{t}=\sigma ({W}_{i}\cdot [{h}_{t-1}, {x}_{t}]+{b}_{i}) $ (5)
$ \stackrel{ \sim }{{C}_{t}}=\mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}({W}_{c}\cdot [{h}_{t-1}, {x}_{t}]+{b}_{c}) $ (6)

然后进行单元状态更新,将上一个时刻的单元状态乘以$ {f}_{t} $过滤冗余信息,再与$ {i}_{t}\times \stackrel{ \sim }{{C}_{t}} $相加得到候选值$ {C}_{t}={f}_{t}\times {C}_{t-1}+{i}_{t}\times \stackrel{ \sim }{{C}_{t}} $

3)通过Sigmoid函数获取初始输出,再与Sigmoid函数得到的输出逐对相乘,从而得到模型的输出,计算公式如下:

$ {o}_{t}=\sigma ({W}_{o}\cdot [{h}_{t-1}, {x}_{t}]+{b}_{o} $ (7)
$ {h}_{t}={o}_{t}\times \mathrm{t}\mathrm{a}\mathrm{n}\mathrm{h}\left({C}_{t}\right) $ (8)

传统算法仅使用上一个视频片段的平均下载速率估计网络吞吐量来选择下一个视频片段的质量。本文DASH系统使用SVR和LSTM模型预测网络吞吐量,结合当前缓存状态和优化模型选择合适的视频编码速率,同时在下载视频片段过程中通过预测模型实时预测网络吞吐量,以判定是否触发抛弃规则,进而决定是否放弃所选质量的视频片段,本文DASH系统结构如图 3所示。

Download:
图 3 本文DASH系统结构 Fig. 3 Structure of the proposed DASH system

为确保用户体验质量最大化,根据预测的网络吞吐量bwest计算所有可选视频片段的下载时间估计值EDT,即$ \forall {r}_{i}\in \mathbb{R}, 1\le i\le l, \mathrm{E}\mathrm{D}\mathrm{T}=({r}_{i}\times p)/\mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}} $,并结合当前的缓冲状态$ B\left(j\right) $构建优化模型如下:

$ \left\{\begin{array}{l}\mathrm{m}\mathrm{i}\mathrm{n}\sum\limits_{j=0}^{N}B\left(j\right)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{j}, j\in \{\mathrm{1, 2}, \cdots , N\}\\ s\mathrm{u}\mathrm{b}\mathrm{j}\mathrm{e}\mathrm{c}\mathrm{t}\mathrm{ } \; \mathrm{t}\mathrm{o}:\\ \alpha B\left(j\right)\le B(j+1), \mathrm{ }0<\mathrm{ }\alpha <1\mathrm{ }(\mathrm{约}\mathrm{束}1)\\ \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le B\left(j\right)\mathrm{ }(\mathrm{约}\mathrm{束}2)\end{array}\right. $ (9)

在当前缓冲状态下,采用合适的优化目标函数选择较高的视频质量,即下载时间估计值$ \mathrm{E}\mathrm{D}{\mathrm{T}}_{j} $越接近当前缓冲时长$ B\left(j\right) $越好。采用约束1通过调节参数可实现缓存一定程度上的稳定性,约束2可保证不出现再缓冲。

推论1   由于$ B(j+1)=\mathrm{m}\mathrm{a}\mathrm{x}[0, B(j)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{j}]+p $,为保证不出现再缓冲,应满足$ \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le B\left(j\right) $,因此$ B(j+1)= $ $ B\left(j\right)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{j}+p $

EDT随缓冲相对稳定系数α的变化如图 4所示。可以看出,随着α不断增大(0 < α1 < α2 < α3 < 1),EDT曲线趋于平缓,表明当α较大时,缓冲相对稳定且视频质量较好。

Download:
图 4 EDT随α的变化 Fig. 4 Change of EDT with α

如果$ p-\alpha B\left(j\right)>0, \mathrm{则}0\le \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le B\left(j\right) $;如果$ p-\alpha B\left(j\right)>0, \mathrm{则}0\le \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le p+(1-\alpha )B\left(j\right) $。约束2可修改为:

$ \left\{\begin{array}{l}0\le \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le B\left(j\right), p-\alpha B\left(j\right)>0\\ 0\le \mathrm{E}\mathrm{D}{\mathrm{T}}_{j}\le p+(1-\alpha )B\left(j\right), p-\alpha B\left(j\right)\le 0\end{array}\right. $ (10)

推论2   当$ B\left(0\right)=0, B\left(1\right)=p, B\left(N\right)=0 $时,得到:

$ \mathrm{m}\mathrm{i}\mathrm{n}\sum\limits_{j=0}^{N}B\left(t\right)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{j}=(N-1)p-\sum\limits_{j=1}^{N-1}\mathrm{E}\mathrm{D}{\mathrm{T}}_{j} $ (11)

EDT随缓冲时长Bj)的变化如图 5所示。可以看出,EDT随Bj)的增长呈分段线性变化。当$ p-\alpha B\left(j\right)>0 $时,选择的视频片段所需下载时长EDT接近Bj),即会耗尽当前缓冲时长;当$ p-\alpha B\left(j\right)<0 $时,为保证所选下一个视频片段具有较高质量,不会完全耗尽当前缓冲时长Bj),EDT增长减缓,即选择的视频片段质量较低。

Download:
图 5 EDT随B(j)的变化 Fig. 5 Change of EDT with B(j)

本文DASH系统算法如下:

算法1  本文DASH系统算法

1.on pick a bitrate:

2.FOR j in [1,N] do

3.IF j=1 then

4. Initialize $ {\mathrm{r}}_{\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}}=\mathrm{D}\mathrm{e}\mathrm{f}\mathrm{a}\mathrm{u}\mathrm{l}\mathrm{t}\mathrm{r} $

5.return$ {\mathrm{q}}_{\mathrm{i}1}=\mathrm{q}\left({\mathrm{r}}_{\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}}\right) $

6.on initial downloadfragmentprocess:

7.$ \mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{C}\mathrm{h}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\mathrm{A}\mathrm{r}\mathrm{r}\mathrm{a}\mathrm{y}=\mathrm{S}\mathrm{t}\mathrm{o}\mathrm{r}\mathrm{e}\left(\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\right); $

8. IF$ {\mathrm{r}}_{\mathrm{i}1}\times \mathrm{p}/\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}>\mathtt{β}\times \mathrm{p} $ THEN

9.Abandon $ {\mathrm{r}}_{\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}} $

10.$ {\mathrm{q}}_{\mathrm{i}1}=\mathrm{q}\left(\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\right) $

11.ELSE

12.$ \mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}}=\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{c}\mathrm{t}\mathrm{o}\mathrm{n}\mathrm{M}\mathrm{o}\mathrm{d}\mathrm{e}\mathrm{l}\left(\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{C}\mathrm{h}\mathrm{u}\mathrm{n}\mathrm{k}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\mathrm{A}\mathrm{r}\mathrm{r}\mathrm{a}\mathrm{y}\right) $

13.FOR i in [1,l] do

14.$ \mathrm{E}\mathrm{D}{\mathrm{T}}_{\mathrm{j}}={\mathrm{r}}_{\mathrm{i}\mathrm{j}}\times \mathrm{p}/\mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}} $

15.IF B(i) < p/a & & EDTj≤B(j)THEN

16.$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}\mathrm{B}\left(\mathrm{j}\right)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{\mathrm{j}} $

17.IF B(j)≥p/α & & EDTj≤p+(1α)B(j)THEN

18.$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}\mathrm{B}\left(\mathrm{j}\right)-\mathrm{E}\mathrm{D}{\mathrm{T}}_{\mathrm{j}} $

19.$ {\mathrm{r}}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}={\mathrm{r}}_{\mathrm{i}\mathrm{j}} $

20.$ \mathrm{q}\mathrm{u}\mathrm{a}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{y}\mathrm{o}\mathrm{f}\mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{\mathrm{i}\mathrm{j}}=\mathrm{q}\left({\mathrm{r}}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}\right) $

21.IF $ {\mathrm{u}}_{{\mathrm{q}}_{\mathrm{i}\mathrm{j}}}-{\mathrm{u}}_{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{q}\mathrm{u}\mathrm{a}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{y}}>0.01 $

22.RETURN $ {\mathrm{q}}_{\mathrm{i}\mathrm{j}}=\mathrm{q}\left({\mathrm{r}}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}\right) $

23.ELSE

24.RETURN $ {\mathrm{q}}_{\mathrm{i}\mathrm{j}}=\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{q}\mathrm{u}\mathrm{a}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{y} $

25.on fragmentprocess:

26.lastChunkthoughputArray=Store(realtimethoughput);

27.$ \mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}}=\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{d}\mathrm{i}\mathrm{c}\mathrm{t}\mathrm{o}\mathrm{n}\mathrm{M}\mathrm{o}\mathrm{d}\mathrm{e}\mathrm{l}\left(\mathrm{r}\mathrm{e}\mathrm{a}\mathrm{l}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\right) $

28.IF $ \frac{{\mathrm{S}}_{\mathrm{i}\mathrm{j}}}{\mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}}}>{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}} $ THEN

29.Abandon$ {\mathrm{r}}_{\mathrm{i}\mathrm{j}} $

30.FOR i in [1,l] do

31.$ \mathrm{E}\mathrm{D}\mathrm{T}={\mathrm{r}}_{\mathrm{i}}\times \mathrm{p}/\mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}} $

32.IF Bnow < p/α & & EDT≤Bnow THEN

33.$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}}-\mathrm{E}\mathrm{D}\mathrm{T} $

34.IF Bnow≥p/α & & EDT≤p+(1α)Bnow THEN

35.$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}}-\mathrm{E}\mathrm{D}\mathrm{T} $

36.RETURN $ \mathrm{q}\mathrm{u}\mathrm{a}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{y}\mathrm{o}\mathrm{f}\mathrm{c}\mathrm{h}\mathrm{u}\mathrm{n}{\mathrm{k}}_{\mathrm{i}1}=\mathrm{f}\mathrm{q}\left(\mathrm{B}{\mathrm{R}}_{\mathrm{i}}\right) $

37.on schedule:

38.IF $ \mathrm{B}\left(\mathrm{j}\right)<{\mathrm{B}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $ THEN

39.Setscheduledelaytime(0);

40.ELSE

41.$ \mathrm{\Delta }=\mathrm{B}\left(\mathrm{j}\right)-{\mathrm{B}}_{\mathrm{m}\mathrm{a}\mathrm{x}} $

42.Setsched$ \mathrm{S}\mathrm{e}\mathrm{t}\mathrm{s}\mathrm{c}\mathrm{h}\mathrm{e}\mathrm{d}\mathrm{u}\mathrm{l}\mathrm{e}\mathrm{d}\mathrm{e}\mathrm{l}\mathrm{a}\mathrm{y}\mathrm{t}\mathrm{i}\mathrm{m}\mathrm{e}\left(\mathrm{\Delta }\right) $

上述算法具体步骤如下:

1)初始化速率

通过预先设定的$ \mathrm{D}\mathrm{e}\mathrm{f}\mathrm{a}\mathrm{u}\mathrm{l}\mathrm{t}\mathrm{r}\in \mathbb{R} $设置初始速率,根据量化函数$ q\left({r}_{\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{t}}\right) $选择相应的视频质量,等待下载。

2)下载监控阶段

实时监控下载过程的网络吞吐量并存储下载的网络轨迹信息,使用预测模型进行预测,相关表达式如下:

$ \mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{i}\mathrm{n}\mathrm{d}\mathrm{e}\mathrm{x}=\left\{\begin{array}{l}1, {q}_{i1}=q\left(\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\right);\\ j, N\ge j>1, \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}}-\mathrm{E}\mathrm{D}\mathrm{T}\end{array}\right. $ (12)

在初始阶段$ \mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{i}\mathrm{n}\mathrm{d}\mathrm{e}\mathrm{x} $=1,如果所选视频片段下载所需时间超过阈值,即$ {r}_{i1}\times p/\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}>\beta \times p $β为初始下载时间阈值系数),则抛弃当前所选的比特率,并根据当前网络吞吐量重新选择视频片段质量$ {q}_{i1}=q\left(\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{e}\mathrm{n}\mathrm{t}\mathrm{t}\mathrm{h}\mathrm{o}\mathrm{u}\mathrm{g}\mathrm{h}\mathrm{p}\mathrm{u}\mathrm{t}\right) $。在非初始阶段$ \mathrm{r}\mathrm{e}\mathrm{q}.\mathrm{i}\mathrm{n}\mathrm{d}\mathrm{e}\mathrm{x}=j, $ $ N\ge j>1 $,如果$ \frac{{S}_{ij}}{\mathrm{b}{\mathrm{w}}_{\mathrm{e}\mathrm{s}\mathrm{t}}}>{B}_{\mathrm{n}\mathrm{o}\mathrm{w}} $$ {B}_{\mathrm{n}\mathrm{o}\mathrm{w}} $为下载阶段的实时缓冲时长),则重新根据优化模型$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}}-\mathrm{E}\mathrm{D}\mathrm{T} $选择视频质量。当视频片段完全下载后,根据优化模型$ \mathrm{m}\mathrm{i}\mathrm{n}\mathrm{i}\mathrm{m}\mathrm{i}\mathrm{z}\mathrm{e}{\mathrm{B}}_{\mathrm{n}\mathrm{o}\mathrm{w}}-\mathrm{E}\mathrm{D}\mathrm{T} $选择下一个视频片段的质量,并通过质量量化函数$ q\left({r}_{\mathrm{n}\mathrm{e}\mathrm{x}\mathrm{t}}\right) $得到相应视频质量并开始下载。为减少视频质量变动,假设当$ {u}_{{q}_{ij}}-{u}_{\mathrm{l}\mathrm{a}\mathrm{s}\mathrm{t}\mathrm{q}\mathrm{u}\mathrm{a}\mathrm{l}\mathrm{i}\mathrm{t}\mathrm{y}}>0.01 $qij为以速率ri编码的第j个视频片段的质量)时,返回新的视频片段质量;否则保持原来的视频片段质量,重复执行步骤2。

3)调度阶段

如果$ B\left(j\right)>{B}_{\mathrm{m}\mathrm{a}\mathrm{x}} $,则等待且等待时长$ \mathit{Δ}=B\left(j\right)-{B}_{\mathrm{m}\mathrm{a}\mathrm{x}} $,否则直接向服务器发送下一次请求HTTP Request,表达式如下:

$ \mathit{Δ}=\left\{\begin{array}{l}0, B\left(j\right)<{B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\\ B\left(j\right)-{B}_{\mathrm{m}\mathrm{a}\mathrm{x}}, B\left(j\right)\ge {B}_{\mathrm{m}\mathrm{a}\mathrm{x}}\end{array}\right. $ (13)
3 实验与结果分析

本文使用mininet2.2平台构建网络拓扑如图 6所示。DASH服务端使用Apache软件,采用DASH数据集[32]提供的视频片段Big Buck Bunny进行测试,并根据DASH提供的网络带宽描述文件,用网络性能测试工具Iperf发送相应的动态流量作为背景流量。

Download:
图 6 网络拓扑 Fig. 6 Network topology

Big Buck Bunny视频时长为600 s,被编码为5种分辨率和20种视频质量,视频片段间隔为10 s,划分为60个视频片段,视频编码如表 1所示。采用SSIMPlus评价指标作为不同编码速率下视频效用的客观度量。

下载CSV 表 1 Big Buck Bunny视频编码 Table 1 Big Buck Bunny video codings

对不同编码速率的Big Buck Bunny视频进行线下客观质量测定,结果如图 7所示。可以看出,视频的客观质量随编码速率的升高呈非线性递增趋势。

Download:
图 7 Big Buck Bunny的客观质量 Fig. 7 Objective quality of Big Buck Bunny

使用开源的DASH.js2.0作为客户端视频播放器,采用Node-webkit.js作为浏览器。由于DASH.js2.0适用于传统的ABR算法和新兴的BOLA算法,因此本文在此基础上进行扩展形成基于预测的自适应算法,并通过文件日志记录视频片段质量和重缓冲事件,具体参数设置如表 2所示。

下载CSV 表 2 实验参数设置 Table 2 Experimental parameters setting

根据网络带宽描述文件使用网络性能测试工具Iperf发送背景流占用带宽,并采用Mininet平台仿真进行网络轨迹测试,每隔250 ms采样一次,实验结果和带宽描述文件具体信息分别如图 8表 3所示。

Download:
图 8 不同网络轨迹测试指数下的吞吐量 Fig. 8 Throughput under different network trajectory test indexes
下载CSV 表 3 带宽描述文件具体信息 Table 3 Specific information of bandwidth description file

4种不同算法得到的60个视频片段的质量如图 9所示。可以看出传统算法的视频片段质量的选择较平稳且质量较高,这是因为传统算法只根据上一个视频片段的下载速率来确定下一个视频片段的质量,并设置固定的下载阈值β×p,而本文设置β=1.5,表示当视频片段的下载时长估计值超过视频片段时长的1.5倍才会触发抛弃规则,此时,客户端缓冲时长已被过度消耗导致发生重缓冲。

Download:
图 9 4种算法的视频质量 Fig. 9 Video quality of four algorithms

4种算法得到的平均视频质量如图 10所示。可以看出基于LSTM预测模型的自适应算法的平均视频质量最高,这是因为该算法不仅使用预测的吞吐量信息,还使用缓存时长作为算法的输入,当缓存时间较长时会选择较高的视频质量,同时实时监控下载阶段的网络吞吐量,当网络出现波动时触发抛弃规则重新适应网络状况。

Download:
图 10 4种算法的平均视频质量 Fig. 10 Average video quality of four algorithms

4种算法的重缓存率如图 11所示。可以看出,虽然基于LSTM的ABR算法平均视频质量最高,但其与传统ABR算法均出现重缓冲现象。这是由于LSTM算法在实际运行过程中预测时间约为1.5 s,不能进行实时预测,无法提前感知判断,因此导致出现重缓冲现象。BOLA算法仅使用缓存信息动态选择视频质量,虽然未出现重缓冲现象,但由于其不能对网络吞吐量进行实时预测,导致提前触发抛弃规则,在一定程度上降低了平均视频质量。

Download:
图 11 4种算法的重缓存率 Fig. 11 Recache rates of four algorithms

4种算法的抛弃规则触发次数如图 12所示。可以看出,BOLA算法触发了20次抛弃规则,由于其在视频片段下载初始阶段提前认为网络变差不符合当前缓存需求,因此过早抛弃当前所选视频质量。结合图 11图 12可知,本文基于SVR的自适应算法综合表现最好,通过SVR预测模型结合缓存状态选择的平均视频质量较高,同时通过实时在线预测减少了抛弃规则命中次数且未发生重缓冲。

Download:
图 12 4种算法的抛弃规则触发次数 Fig. 12 Trigger times of discard rule of four algorithms
4 结束语

本文提出一种基于机器学习的改进自适应流媒体速率算法。在分析基于HTTP动态自适应流媒体技术标准的基础上,利用机器学习方法建立网络吞吐量预测模型,并结合当前缓冲状态选择合适的视频质量,在视频下载阶段实时预测网络吞吐量,降低因TCP慢启动提前触发抛弃规则的次数。实验结果表明,该算法可有效提高用户视频体验质量。随着软件定义网络和可编程网络等下一代网络技术的发展,网络将变得更加智能与可控,后续将结合机器学习和下一代网络技术进行研究,进一步提高网络吞吐量预测准确率。

参考文献
[1]
CISCO. Visual Networking Index[EB/OL]. [2019-11-23]. https://www.cnbeta.com/articles/tech/696531.htm.
[2]
HU Lizhen. Design and implementation of RTSP based embedded streaming media server[D]. Wuhan: Huazhong University of Science and Technology, 2017. (in Chinese)
胡李镇. 基于RTSP的嵌入式流媒体服务器设计与实现[D]. 武汉: 华中科技大学, 2017.
[3]
SCHULZRINNE H, CASNER S, FREDERICK R, et al. RTP: a transport protocol for real-time applications[EB/OL]. [2019-11-23]. http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.418.7756.
[4]
LIN Chaolong. A study on application of network video transmission based on RTP[J]. Electronic Engineer, 2009, 35(12): 54-57. (in Chinese)
林朝龙. 基于RTP的网络视频传输的应用研究[J]. 信息化研究, 2009, 35(12): 54-57.
[5]
KUMAR M V P, MAHAPATRA S. Quality of experience driven rate adaptation for adaptive HTTP streaming[EB/OL]. [2019-11-23]. https://www.researchgate.net/publication/323204676_Quality_of_Experience_Driven_Rate_Adaptation_for_Adaptive_HTTP_Streaming.
[6]
JIN Qixi. Research on HTTP dynamic adaptive streaming media transmission optimization method based on QoE[D]. Hangzhou: Zhejiang University, 2018. (in Chinese)
金栖西. 基于QoE的HTTP动态自适应流媒体传输优化方法研究[D]. 杭州: 浙江大学, 2018.
[7]
KRISHNAN S S, SITARAMAN R K. Video stream quality impacts viewer behavior: inferring causality using quasi-experimental designs[J]. IEEE/ACM Transactions on Networking, 2013, 21(6): 2001-2014. DOI:10.1109/TNET.2013.2281542
[8]
HOU Yonghong, WANG Liwei, XING Jiaming. HTTP-based dynamic adaptive streaming video transmission algorithm[J]. Journal of Jilin University(Engineering and Technology Edition), 2018, 48(4): 1244-1253. (in Chinese)
侯永宏, 王利伟, 邢家明. 基于HTTP的动态自适应流媒体传输算法[J]. 吉林大学学报(工学版), 2018, 48(4): 1244-1253.
[9]
STOCKHAMMER T. Dynamic adaptive streaming over HTTP: standards and design principles[C]//Proceedings of the 2nd Annual ACM SIGMM Conference on Multimedia Systems.New York, USA: ACM Press, 2011: 23-25.
[10]
LI Jian. A just-in-time encapsulation mechanism for adaptive bit rate video stream[J]. Computer and Modernization, 2014, 30(11): 45-48, 52. (in Chinese)
李建. 自适应比特率视频流的适时封装机制[J]. 计算机与现代化, 2014, 30(11): 45-48, 52. DOI:10.3969/j.issn.1006-2475.2014.11.010
[11]
ZOU X K, ERMAN J, GOPALAKRISHNAN V, et al. Can accurate predictions improve video streaming in cellular networks?[C]//Proceedings of the 16th International Workshop on Mobile Computing Systems and Applications. New York, USA: ACM Press, 2015: 57-62.
[12]
YIN X Q, JINDAL A, SEKAR V, et al. A control-theoretic approach for dynamic adaptive video streaming over HTTP[J]. ACM SIGCOMM Computer Communication Review, 2015, 45(5): 325-338.
[13]
GUO Jianyuan, XIE Zhen, QIN Yong, et al. Short-term abnormal passenger flow prediction based on the fusion of SVR and LSTM[J]. IEEE Access, 2019, 7: 42946-42955. DOI:10.1109/ACCESS.2019.2907739
[14]
REHMAN A, ZENG K, WANG Z. Display device-adapted video quality of experience assessment[C]//Proceedings of 2015 Conference on Human Vision and Electronic Imaging. [S. l. ]: SPIE, 2015: 1-6.
[15]
DASH-industry forum, 2014 guidelines for implementation: DASH avc/264 test cases and vectors[EB/OL]. [2019-11-23]. http://dashif.org/wp-content/uploads/2015/04/dash-avc-264-test-vectors-v09-communityreview.pdf.
[16]
LIU C, BOUAZIZI I, HANNUKSELA M M, et al. Rate adaptation for dynamic adaptive streaming over HTTP in content distribution network[J]. Signal Processing: Image Communication, 2012, 27(4): 288-311. DOI:10.1016/j.image.2011.10.001
[17]
MILLER K, QUACCHIO E, GENNARI G, et al. Adaptation algorithm for adaptive streaming over HTTP[C]//Proceedings of 2012 International Conference on Packet Video Workshop. Washington D.C., USA: IEEE Press, 2012: 173-178.
[18]
OZCINAR C, EKMEKCIOGLU E, KONDOZ A. HTTP adaptive multiview video streaming[M]. Berlin, Germany: Springer, 2017.
[19]
HUANG T Y, JOHARI R, MCKEOWN N, et al. Using the buffer to avoid rebuffers: evidence from a large video streaming service[EB/OL]. [2019-11-23]. https://arxiv.org/abs/1401.2209.
[20]
LI Z, ZHU X, GAHM J, et al. Probe and adapt: rate adaptation for HTTP video streaming at scale[J]. IEEE Journal on Selected Areas in Communications, 2014, 32(4): 719-733. DOI:10.1109/JSAC.2014.140405
[21]
MOK R K P, LUO X, CHAN E W W, et al. QDASH: a QoE-aware DASH system[C]//Proceedings of the 3rd Multimedia Systems Conference. New York, USA: ACM Press, 2012: 11-22.
[22]
SPITERI K, URGAONKAR R, SITARAMAN R K. BOLA: near-optimal bitrate adaptation for online videos[EB/OL]. [2019-11-23]. https://www.researchgate.net/publication/301898907_BOLA_Near-Optimal_Bitrate_Adaptation_for_Online_Videos.
[23]
CHEN Jian. Analysis of user video experience modeling on network side assessment[J]. Modern Industrial Economy and Informationization, 2018, 8(10): 23-25. (in Chinese)
陈坚. 网络侧评估用户视频体验建模分析[J]. 现代工业经济和信息化, 2018, 8(10): 23-25.
[24]
JIANG Ming, WU chunming, ZHANG Min, et al. Research on the comparison of time series models for network traffic prediction[J]. Acta Electronica Sinica, 2009, 37(11): 2353-2358. (in Chinese)
姜明, 吴春明, 张旻, 等. 网络流量预测中的时间序列模型比较研究[J]. 电子学报, 2009, 37(11): 2353-2358. DOI:10.3321/j.issn:0372-2112.2009.11.001
[25]
JIANG J, PAPAVASSILIOU S. Enhancing network traffic prediction and anomaly detection via statistical network traffic separation and combination strategies[J]. Computer Communications, 2006, 29(10): 1627-1638. DOI:10.1016/j.comcom.2005.07.030
[26]
CIPTANINGTYAS H T, FATICHAH C, SABILA A. Network traffic anomaly prediction using artificial neural network[EB/OL]. [2019-11-23]. https://aip.scitation.org/doi/10.1063/1.4976874.
[27]
FANG Jie, ZHOU Qingbiao, WU Xide, et al. Network traffic prediction model based on Catfish-PSO-SVM[J]. Journal of Networks, 2013, 8(11): 2534-2540.
[28]
ZHOU Xiaolei, WANG Wanliang, CHEN Weijie. Network traffic prediction model based on wavelet transform and optimised SVM[J]. Computer Applications and Software, 2011, 28(2): 34-36, 59. (in Chinese)
周晓蕾, 王万良, 陈伟杰. 基于小波变换和优化的SVM的网络流量预测模型[J]. 计算机应用与软件, 2011, 28(2): 34-36, 59.
[29]
KHARAT J P. Comparative study of various neural network architectures for MPEG-4 video traffic prediction[J]. International Journal of Advances in Applied Sciences, 2017, 6(4): 283-285. DOI:10.11591/ijaas.v6.i4.pp283-292
[30]
FU Rui, ZHANG Zuo, LI Li. Using LSTM and GRU neural network methods for traffic flow prediction[EB/OL]. [2019-11-23]. https://www.researchgate.net/publication/312402649_Using_LSTM_and_GRU_neural_network_methods_for_traffic_flow_prediction.
[31]
BENTALEB A, BEGEN A C, ZIMMERMANN R. SDNDASH: improving QoE of HTTP adaptive streaming using software defined networking[C]//Proceedings of the 24th ACM International Conference on Multimedia. New York, USA: ACM Press, 2016: 1296-1305.
[32]
DASH. js: a reference client implementation for the playback of MPEG DASH via javascript and compliant browsers[EB/OL]. [2019-11-23]. https://github.com/Dash-Industry-Forum/dash.js/wiki.