基于HTTP的动态自适应流媒体传输算法
侯永宏, 王利伟, 邢家明
天津大学 电气自动化与信息工程学院,天津 300072

作者简介:侯永宏(1968-),男,副教授. 博士生导师.研究方向:视频信号处理,深度学习.E-mail:houroy@tju.edu.cn

摘要

采用实际的物理缓存大小作为视频缓存余量的计量方式,提出了一种基于物理缓存的自适应传输算法,该算法根据缓存占用率的大小以及网络估计吞吐量,动态地调整申请视频的码率。最后,分别在两种虚拟和两种实际的网络环境下进行性能测试。实验表明,本文算法可以降低视频码率对缓存变化的敏感度,可以避免视频码率过于频繁的切换,相比传统算法可以带来更好的用户体验。

关键词: 计算机应用; 流媒体传输; 用户体验质量; 物理缓存; 缓存占用率
中图分类号:TP391 文献标志码:A 文章编号:1671-5497(2018)04-1244-10
HTTP-based dynamic adaptive streaming video transmission algorithm
HOU Yong-hong, WANG Li-wei, XING Jia-ming
School of Electrical and Information Engineering, Tianjin University, Tianjin 300072, China
Abstract

Taking the actual physical cache as the measurement of the buffered video, an adaptive algorithm based on physical caching of the video is proposed. The algorithm adjusts the bitrate of the video according to the buffer occupancy rate and the estimated throughput of the Internet. The performance tests are conducted under two virtual network conditions and two real network conditions. The results show that the proposed algorithm can reduce the sensitivity of the video bitrate to the change of the buffer and avoid the buffer frequent fluctuation. Compared with the traditional algorithm, the proposed algorithm is superior in terms of Quality of Experience (QoE).

Keyword: computer application; streaming video transmission; quality of experience(QoE); physical cache; buffer occupancy rate
0 引 言

基于HTTP的动态自适应流媒体传输协议(Dynamic adaptive streaming over HTTP, DASH)[1]可以适应网络带宽的实时波动以及不同处理能力的智能终端, 为用户提供最佳的体验质量(Quality of experience, QoE), 是目前流媒体传输的主流技术。与RTP/UDP 视频传输协议相比, DASH采用基于HTTP/TCP传输协议, 其主要优势在于[2, 3]:①通用的Web服务器均支持HTTP协议, 因此, 基于HTTP协议的服务器推广起来更容易; ②基于TCP协议的视频传输具有高可靠性, 更容易穿越防火墙; ③HTTP协议的可扩展性更强, 与RTP协议相比更容易扩展到CDN、P2P等网络环境中。

在基于DASH的视频自适应传输技术中, 客户端会根据当前的网络带宽以及视频缓存余量等因素, 自适应地调整申请视频的码率, 来保证视频流畅播放, 使得用户的QoE最大化。因此, 如何设计一种合理的自适应算法是DASH研究的主要问题。

目前基于DASH的自适应算法可大致分为两类:①基于网络吞吐量的控制算法[4], 例如Thang等[4]提出了一种基于平滑的吞吐量估计算法(StbDASH), 该算法采用加权移动平均值的方法, 根据网络带宽和视频码率的失配程度动态地调整权重大小, 并根据该权重对各个视频切片下载完成时的网络吞吐量进行加权平均并作为下一个切片下载时估计的网络吞吐量, 进而调整申请的码率; ②基于缓存的控制算法[5, 6, 7], 通过分析缓存以及网络吞吐量等因素, 动态地对申请视频的码率进行调配。例如, Mü ller等[5]提出一种基于缓存的自适应算法(BufDASH), 通过缓存占用率以及网络吞吐量, 动态地调整申请视频的码率; Tian等[6]采用了基于PI控制的自适应算法(PiDASH), 将缓存视频的时间长度做为误差反馈量, 通过PI控制器调整申请视频码率; Vergados等[7]提出了一种基于模糊控制(FASH)的自适应算法, 将缓存和缓存变化量作为输入, 通过模糊规则动态地调整申请的视频码率。

从已有的研究结果来看[8], 基于客户端的缓存状态并综合考虑可用的网络带宽, 动态调整申请视频的码率可以得到较好的终端用户体验质量。但是, 目前大部分文献在考虑缓存大小时是以视频的播放时间长度作为计量单位, 这样做带来的一个问题是对于相同的缓存时间长度, 不同视频码率所占用的实际物理缓冲大小不一样, 而在实际应用中, 系统为应用程序分配的存储空间大小通常是固定的。在物理缓存大小固定的情况下, 已有的自适应算法是否还是最优, 是否存在更好的自适应策略, 尚待进一步研究。

因此, 针对物理缓存大小固定的情况, 本文研究了已有的自适应策略, 并在此基础上提出了一种改进的自适应算法, 该算法根据视频的物理缓存占用率、码率修正系数以及网络吞吐量动态地对用户申请的视频码率进行调配。仿真结果表明, 与同类算法相比, 本文算法可以获得更好的用户体验质量。

1 系统介绍

如图1所示, 在DASH系统中, 服务器在视频传输之前会将原始视频内容切割成时间间隔相同的视频切片(Segment), 并对每个切片以不同的码率进行编码, 从而生成相同视频内容的N个码率不同的视频副本[9], 即v1< v2< …< vi< …< vN。此外, 服务器会生成一份媒体描述(Media presentation description, MPD)文件, 它用于描述服务器端视频切片的码率、分辨率以及其服务器端存储所对应的URL等相应的属性信息。在点播服务中, 客户端预先下载MPD文件, 并通过解析获得服务器端视频资源的属性信息。在视频传输时, 客户端根据网络吞吐量和缓存以及MPD文件所提供的视频切片属性信息, 采用HTTP-GET指令自适应地向服务器提出视频资源申请。

图1 DASH系统框图Fig.1 Block diagram of DASH system

基于DASH的视频传输服务的两个关键因素是网络吞吐量和视频缓存余量。其中, 网络吞吐量直接影响用户可申请的平均视频质量。在DASH系统中, 第k个视频切片下载完成时的网络吞吐量Tr(k)可表示为客户端在单位时间内接受到的比特数, 即[10]:

Trk=vk×τ/tdown(1)

式中:tdown表示该视频切片完成下载所需要的时间; τ表示视频切片的时间长度; v(k)表示用户申请的第k个视频切片的码率。

客户端缓存的视频余量直接影响视频播放的流畅性。传统算法中, 多将缓存的视频时间长度作为缓存的计量单位, 这样做带来的一个问题是即使缓存时间长度相同, 实际占用的缓存大小可能因为视频的编码比特率不同而不同。实际应用中, 给应用程序所分配的缓存大小是固定的, 即以比特为单位。因此, 本文将缓存视频的物理尺寸作为缓存的度量单位, 则第k+1个视频切片下载完成时的缓存余量B(k+1)可度量为:

Bk+1=Bk+vk×τ-play_sizek, k> 1(2)

式中:play_size(k)表示第k个视频切片下载期间播放掉的视频所占的物理缓存大小, 它取决于视频下载期间播放掉的各个视频切片的平均码率play_rate(k), 即:

play_sizek=vk×τTrk×play_ratek(3)

play_size(k)反应了网络吞吐量和申请视频的码率的匹配程度, 当网络吞吐量高于申请视频的码率, 则下载所需要的时间较短, 因此播放掉的视频量较少, 缓存的视频增加; 当网络吞吐量低于申请视频的码率, 则下载所需要的时间较长, 因此播放掉的视频量较多, 缓存的视频减少。

2 码率切换算法
2.1 码率选择的原则

动态调整码率的目的是为了让用户在网络带宽波动较为频繁的环境中获得最佳的用户体验质量, Claeys等[8]的研究结果表明, 视频能否流畅播放对于QoE的影响最大, 其次在保证视频播放不发生间断的情况下, 视频的平均码率同样会影响用户的QoE。此外, 视频码率过于频繁的切换会增加用户观看的疲劳感。因此, 视频码率自适应选择的几个基本原则是:①保证视频播放不发生中断和停滞; ②在满足条件①的基础上, 尽量提高播放视频的码率, 充分利用带宽; ③在满足条件①②的基础上, 避免视频码率过于频繁的切换。

在这几个原则之间存在一定的制约关系, 即:

(1)当缓存较高时, 此时申请视频的码率可以高于信道带宽, 由于下载时长增加, 因此可以适当降低缓存, 但过高的码率可能会使得缓存急剧下降, 当缓存为空时, 会使视频播放中断。

(2)当缓存较低时, 为防止视频中断, 此时申请的视频码率应低于信道带宽, 使缓存快速增加, 但是过低的码率会使得算法过于保守, 造成带宽浪费。

此外, 在传统算法中, 视频的码率一般对缓存的波动较为敏感, 容易造成视频码率切换较为频繁, 这大大增加了用户观看的疲劳感。因此, 通常需要引入相应的去抖机制, 进而降低码率对于缓存变化的敏感度, 但这也增加了算法的复杂度。

2.2 算法描述

本文设计了一种码率自适应算法, 不同于已有的算法, 本文假定物理缓存大小固定, 考虑视频缓存的长度和视频的码率, 计算得出物理缓存的实际占用率, 根据物理缓存的实际占用率和信道可用带宽确定下一个时刻下载视频的码率。

算法流程图如图2所示, 可分为以下3个阶段。

图2 算法流程图Fig.2 Flow chart of proposed algorithm

阶段一:初始化阶段

在视频播放前, 客户端选择码率最低的视频切片下载, 尽可能降低视频开始播放的延时时间。当缓存两个视频切片后, 视频开始播放。在视频播放期间, 当缓存耗尽时, 视频播放发生中断, 需要重新进行初始化。

阶段二:自适应阶段

当下载完两个视频切片后, 客户端首先计算缓存占用率和估计信道带宽。第k个视频切片下载完成时的缓存占用率B_rate(k)为:

B_ratek=BkB_max(4)

式中:B_max为计算机分配的物理缓存上限; B(k)为实际物理缓存的大小。

本文采用上一个视频切片下载完成时的网络平均吞吐量作为下个视频切片下载期间的网络吞吐量估计值Te(k), 即[10]:

Tek=Trk-1, k> 1(5)

客户端根据可用的信道带宽以及缓存占用率大小动态调整申请视频的码率。根据前文的分析, 当缓存占用率较低时, 此时申请的码率应当低于信道带宽; 当缓存占用率较高时, 此时申请视频的码率可以适当地高于信道的可用带宽。据此, 本文设计了一种动态的码率调配方案如式(6)所示:

Voptk+1=0.8×Tek+1,  0< B_ratekBlow1+δ×B_ratek×Tek+1,  Blow< B_ratekBopt1+0.77×B_ratek×Tek+1,  Bopt< B_ratek1(6)

式中:Vopt(k+1)为下一个时刻应当申请的视频切片的码率参考值, Vopt(k+1)根据缓存占用率大小, 动态选择激进程度不同的计算方式; Blow为缓存占用率的门限值, 用于表示算法激进和保守的分界点; 为防止盲目地增加算法激进程度所造成的缓存过低, 将Bopt设置为缓存占用率的理想值, 用于表示算法激进程度的增加幅度的分界点。

根据式(6), 当缓存占用率B_rate(k)在不同的区间情况下, 式(6)的自适应分析如下:

(1)当缓存占用率B_rate(k)低于设定的门限Blow时, 缓存较低, 为了防止视频发生中断, 此时应当采用较为保守的方式来计算下载码率参考值Vopt(k+1), 即使Vopt(k+1)略低于估计的信道带宽, 以保证在缓存的视频播放完之前, 下载足够长度的新的视频。实验结果表明:当Vopt(k+1)等于0.8倍的信道带宽时, 实验结果最优。

(2)当缓存占用率B_rate(k)高于Blow且低于Bopt时, 缓存中有足够长度的视频, 播放中断的概率较小, 此时可以适当提高下载视频的码率, 尽可能提高用户的体验质量, 即Vopt(k+1)应当高于信道带宽Te (k+1), 如式(6)所示, 本文采用1+δ × B_rate(k)作为信道带宽的扩大倍数, 将扩大后的可用带宽作为申请的视频切片的码率参考值。

由于此时缓存占用率没有完全达到理想值Bopt, 盲目地增加算法激进程度, 容易导致缓存过低甚至视频播放中断。因此, 本文算法设计了一种修正因子δ , 用于控制算法激进程度的增加幅度, 它与缓存的充盈程度有关。当缓存占用率接近Blow时, 此时申请的码率的激进程度不宜过高, 因此δ 应当较低; 当缓存占用率接近Bopt时, 此时可以增加视频码率的激进程度, 因此δ 应当较高。所以, δ 应随B_rate(k)的增大而平滑增加, 根据实验经验, 当δ B_rate(k)呈如式(7)所示的正相关关系时, 且最大值为0.77时, 性能最佳, 即:

δ=0.771+e(0.4×(15%-B_rate(k)))(7)

缓存占用率与修正因子δ 关系如图3所示。

图3 缓存占用率与修正系数δ 关系图Fig.3 Relationship between occupancy rate of buffer and control factor δ

(3)当缓存占用率B_rate(k)完全大于Bopt时, 缓存较高, 短时间内无播放中断的风险, 可以较为激进地提高下载视频的码率。即δ 取最大值0.77, 此时的信道带宽的扩大倍数恒为1+0.77× B_rate(k), 因此在式(6)的方案中, Vopt(k+1)可根据缓存占用率以及网络估计吞吐量线性增加, 以此来提高最终用户申请的视频质量。

算法(伪码):
1:B_rate(k) = B(k)/B_max
2:If 0< B_rate(k)≤ Blow:
3:Vopt(k+1) = 0.8× Te(k) ;
4:Else If Blow< B_rate(k)≤ Bopt:
5:δ = calculation(B_rate(k))
6:Vopt(k+1) = (1+δ × B_rate(k) )× Te(k) ;
7:Else:
8:Vopt(k+1) = (1+0.77× B_rate(k) )× Te(k) ;
9:End
10:v(k+1)=ma x{vi:vi< Voptk+1)}vi;

阶段三:码率选择

客户端通过分析和计算得到码率的参考值Vopt(k), 调整申请的码率v(k)。由于服务器端提供的视频切片的码率等级有限, 因此很难找到码率完全等于Vopt(k) 的视频切片。因此, 客户端会根据MPD解析得到的相关信息, 申请小于Vopt(k)且码率最大的视频切片进行下载, 即:

vk=max{vi:vi< Vopt(k)}vi(8)

当缓存占用率过高或过低, 客户端会根据Vopt(k)调整v(k)的大小, 进而保证视频播放流畅, 并最大化带宽利用率。

3 实验验证
3.1 实验平台

为了测试算法的性能, 本文在Ubuntu14.04搭建Apache服务器, 采用Big Buck Bunny[11]作为测试序列。采用Netflix[12]编码方案将视频编码成5个码率等级:300、700、1500、2500、3500 kbit/s。客户端采用开源的C++平台Libdash[13]。此外, 为了模拟网络环境, 采用DummyNet[14]软件模拟了文献[12]所设计的两种网络环境:带宽长周期(Long-term)波动和带宽短周期(Short-term)波动, 并在文献[5]提到的两种实际环境(Real1, Real2)中进行实际的性能测试。实验中对比算法的时间缓存上限设置为35 s, 为了与对比算法做公平比较, 将缓存大小设定为视频的最大码率与最大缓存时间长度的乘积, 即122 500 kbit。此外, 根据多次实验可知, 将Blow设置为10%, Bopt设置为30%最为合适。

3.2 算法性能评价标准

为了评估算法的性能, 本文采用4种算法StbDASH、BufDASH、FASH、PiDASH作为对比算法, 并分别在3.1节提到的两种模拟和两种实际的网络环境下进行性能测试。根据文献[15]所提出的结论, 将缓存安全区间上限设置为最大缓存的70%。

为了对各个算法在各种网络环境下的性能进行评估, 本文采用Claeys等[8]提出的QoE评价模型, 该模型指出影响QoE的因素主要有:申请视频的平均码率、视频播放流畅度以及视频质量的波动性。因此, 该模型将这3个因素按照不同的权重线性结合, 量化后的数值可以直观地评价用户体验质量, 即:

QoE=4.85Q-4.95F-1.57S+0.5(9)

式中:Q表示所申请视频的平均质量, Q值越高, 即传输的总码率越高, 因此, 相同的网络环境下带宽利用率越高; F表示视频播放的流畅度, 当客户端缓存降低为0 s时, 客户端发生视频播放中断, 根据实际的用户体验, 视频播放中断次数越高和中断时间越长, F值越高; S表示视频质量的波动情况, 视频质量波动越频繁且视频质量波动的码率深度越大, S值越大。

根据文献[8], QFS量化后的数学模型表示为:

Q=1K×vNk=0N-1vkF=78lnfrfref6+1+18minfrtime, 1515S=swnumber×swdepthK×vN-v1(10)

式中:K代表传输的视频切片总数量; vN为最高质量等级的视频码率; v1表示最低质量等级的视频码率; frfreffrtime分别表示视频停顿频率和停顿时间; swnumberswdepth分别表示视频质量波动次数和码率波动平均深度。

此外, 本文算法相较于传统算法不会增加额外的时间和空间开销, 因为算法在进行码率调整时, 各个算法的流程基本都是线性的, 不会出现过多的循环和迭代, 只不过在每个视频切片下载完成后增加了一个很小常数的处理时间。至于存储开销, 各个算法所分配的物理缓存大小是相同的, 本文算法并不会带来额外的缓冲区需求, 只需要保存相关参数即可, 因此该算法在时间和空间上的开销都很小。

3.3 实验结果分析

本文首先采用两种模拟的网络环境:带宽短周期(Short-term)波动和带宽长周期(Long-term)波动来测试各算法性能。在如图4所示的带宽短周期波动环境下, 当网络吞吐量保持在2 Mbit/s的可用情况下, 网络吞吐量可能向上或向下呈现2~4 s短周期的波动, 向上波动到最大值4 Mbit/s, 向下波动到最小值0.5 Mbit/s, 该环境用于测试算法在带宽即时波动的网络环境下的性能。在如图5所示带宽长周期波动环境下, 网络吞吐量从2 Mbit/s开始, 在1.5~3 Mbit/s内以长周期50~100 s进行平滑波动, 该环境用于测试各个算法在带宽平滑波动的网络环境下的稳定性。实验结果如图4和图5所示。各个算法在这两种网络环境下的QoE值汇总至表1表2

图4 带宽短周期变化环境下各算法码率自适应过程Fig.4 Video bitrate adaptation under short-term bandwidth variations

表1 各个算法在带宽短周期变化中的性能指标 Table 1 Performance of each algorithm in short-term bandwidth variations
表2 各个算法在带宽长周期变化中的性能指标 Table 2 Performance of each algorithm in the long-term bandwidth variations

StbDASH算法在网络吞吐量短周期和长周期的波动环境中, 所申请的视频平均码率较低, 从表1和2可以看出StbDASH算法的Q值远低于其他几种算法, 因此用户申请的平均视频质量较低。此外, 根据图4 (a) 和图5(a)可知, StbDASH算法在两种环境中缓存占用率最高可至100%, 因此, 出现了缓存的上溢, 带宽利用率降低。如图4(b)(d) 和图5 (b)(d) 所示, 在两种虚拟的网络环境中, BufDASH和PiDASH算法为了将缓存稳定在目标缓存值, 牺牲掉了视频质量切换的流畅性, 视频码率频繁的切换导致视频质量波动较为频繁。从表1和2可以看出:在两种虚拟的网络环境下, BufDASH和PiDASH算法传输的视频平均码率保持在一个较高的水平, 但由于视频质量切换较为频繁使得视频质量波动性指标S较高, 因此降低了用户的QoE。如图4(c) 和图5(c) 所示, FASH算法在两种模拟的网络环境中表现出的性能相对保守, 使得缓存占用率处于较高的状态, 带宽利用率和视频的平均质量较低, 由于受本文的实验环境所限, 使得该算法在带宽长周期波动的环境中, 视频质量抖动较为明显, S值较高, 且传输的视频平均质量较低, Q值明显低于BufDASH和PiDASH算法, 因此QoE较低。如图4 (e) 和图5 (e) 所示, 本文算法在两种网络环境中均表现出较高的性能, 缓存占用率在30%附近上下波动, 且保持着安全状态, 视频可以流畅播放。在保证申请的视频质量最大的前提下, 视频码率切换的频率明显较低, 保证了视频码率的平滑切换, 所以Q较高, S值较低。表1和2的数据表明, 本文算法在两种虚拟的网络环境下QoE指标均为最优。

图5 带宽长周期变化环境下各算法码率自适应过程Fig.5 Video bitrate adaptation under long-term bandwidth variations

为了测试对各个算法的实际性能, 本文分别在两种实际的网络环境 (Real1, Real2) 下进行时长为400 s的视频传输试验, 最终实验结果如图6和7所示。各个算法在这两种实际的网络环境下的QoE值汇总至表3和4。

图6 实际网络环境1下各算法码率自适应过程Fig.6 Video bitrate adaptation under real bandwidth variations 1

图7 实际网络环境 2 下各算法码率自适应过程Fig.7 Video bitrate adaptation under real bandwidth variations 2

表3 各个算法在实际的网络环境 1 中的性能指标 Table 3 Performance of each algorithm in real bandwidth variations 1
表4 各个算法在实际的网络环境 2 中的性能指标 Table 4 Performance of each algorithm in real bandwidth variations 2

图6和7以及表3和4的实验结果表明, StbDASH算法在实际的网络环境中依旧表现出较为保守的性能, 缓存出现上溢, 因此平均视频质量较低, QoE较低。BufDASH和FASH算法相对较为稳定, 但最终的QoE指标均低于本文算法。PiDASH算法在网络环境Real1中, 连续出现了两次视频中断, 使得视频播放流畅性指标F达到23.8, 这大大的降低了用户的QoE。而本文算法在两种实际的网络环境中均表现出较高的性能, 在保证视频流畅播放的前提下, 最大化用户的体验质量, QoE值均为最优。

为了方便对比, 将各个算法在不同的网络环境中的QoE指标汇总并用柱状图表示成图8。通过比较各个算法的QoE可知, StbDASH算法传输的平均视频质量较低。因此, 在各个环境下的QoE指标值较低。BufDASH、FASH、PiDASH三种算法所呈现的QoE指标值较为接近, 其中PiDASH在带宽长周期波动的环境中所呈现的QoE指标值为3.406, 该性能明显优于StbDASH、BufDASH和FASH, 但是由于PiDASH在网络环境Real1中发生了两次视频中断, 使得QoE指标在该环境下最低, 可见该算法的性能稳定性较差。如图8所示, 本文算法在4种网络环境下的QoE指标均为最优。因此, 相比传统算法, 本文算法性能更优且性能较为稳定。

图8 各个算法在不同的网络环境中的QoE 指标Fig.8 QoE of each algorithm in different network conditions

4 结束语

本文提出了一种基于物理缓存的自适应传输算法, 该算法根据物理缓存实际占用率所处的区间以及估计的信道带宽, 动态调整所申请视频码率, 以期获得最佳的用户体验质量。通过在两种虚拟的网络环境和两种实际的网络环境下的性能测试证明, 采用实际的物理缓存作为视频缓存的计量方式, 更符合工程实际, 可以降低视频码率对于缓存变化的敏感度, 本文算法相对于其他的几种对比算法, 表现出更高的QoE指标, 因此可以给用户带来更好的用户体验。

The authors have declared that no competing interests exist.

参考文献
[1] Stockhammer T. Dynamic adaptive streaming over HTTP——stand ards and design principles[C]//ACM Sigmm Conference on Multimedia Systems, USA , 2011: 133-144. [本文引用:1]
[2] 丁雪瑶. 基于DASH协议的自适应流媒体传输系统研究[D]. 北京: 北京邮电大学电子工程学院, 2013.
Ding Xue-yao. The study of adaptive streaming system based on the DASH protocol[D]. Beijing: College of Electronic Information Engineering, Beijing University of Posts and Telecommunications, 2013. [本文引用:1]
[3] 杨晓萍, 史帅, 陈虹. 一种改进的TCP拥塞控制方法[J]. 吉林大学学报: 工学版, 2006, 36(3): 433-437.
Yang Xiao-ping, Shi Shuai, Chen Hong. Improved algorithm for TCP congestion control[J]. Journal of Jilin University (Engineering and Technology Edition), 2006, 36(3): 433-437. [本文引用:1]
[4] Thang T C, Ho Q D, Kang J W, et al. Adaptive streaming of audiovisual content using MPEG DASH[J]. IEEE Transactions on Consumer Electronics, 2012, 58(1): 78-85. [本文引用:2]
[5] Müller C, Lederer S, Timmerer C. An evaluation of dynamic adaptive streaming over HTTP in vehicular environments[C]//ACM Sigmm Workshop on Mobile Video, Japan, 2012: 37-42. [本文引用:3]
[6] Tian G, Liu Y. Towards agile and smooth video adaptation in dynamic HTTP streaming[C]//IEEE/ACM Transactions on Networking, Australia, 2012: 109-120. [本文引用:2]
[7] Vergados D J, Michalas A, Sgora A, et al. FDASH: a fuzzy-based MPEG/DASH adaptation algorithm[J]. IEEE Systems Journal, 2015, 10(2): 1-10. [本文引用:2]
[8] Claeys M, Latré S, Famaey J, et al. Design of a Q-learning based client quality selection algorithm for HTTP adaptive video streaming[C]//Adaptive and Learning Agents Workshop, USA, 2013: 30-37. [本文引用:4]
[9] 夏勃, 林浒, 李鸿彬, . 一种动态自适应HTTP流媒体码率切换算法[J]. 小型微型计算机系统, 2015, 36(2): 275-279.
Xia Bo, Lin Hu, Li Hong-bin, et al. A dynamic adaptive bitrate switching algorithm for HTTP streaming[J]. Journal of Chinese Computer Systems, 2015, 36(2): 275-279. [本文引用:1]
[10] Thang T C, Le H T, Pham A T, et al. An evaluation of bitrate adaptation methods for HTTP live streaming[J]. IEEE Journal on Selected Areas in Communications, 2014, 32(4): 693-705. [本文引用:2]
[11] Big buck bunny stream. [DB/OL]. [2008-10-22]. http://www.bigbuckbunny.org/index.php/download. [本文引用:1]
[12] Zhou C, Lin C W, Guo Z. m DASH: A Markov decision-based rate adaptation approach for dynamic HTTP streaming[J]. IEEE Transactions on Multimedia, 2016, 18(4): 738-751. [本文引用:2]
[13] Libdash. [DB/OL]. [2017-12-10]. http://www-itec.uni-klu.ac.at/dash/?page_id=6. [本文引用:1]
[14] Rizzo L. Dummynet: A simple approach to the evaluation of network protocols[J]. ACM Sigcomm Computer Communication Review, 1997, 27(1): 31-41. [本文引用:1]
[15] Shuai Y, Herfet T. Improving user experience in low-latency adaptive streaming by stabilizing buffer dynamics[C]//IEEE Consumer Communications & Networking Conference, USA, 2016: 375-380. [本文引用:1]