HAS的初衷就是为了提高用户观看视频的体验,充分利用带宽状况来提供质量更好的视频。所以,关于HAS的研究以及部署,也都是围绕着提高用户的QoE(quality of experience)来做。总结下来有以下3个的研究方向:服务器、网络、客户端。下面就从这3个方面做详细的介绍。
Part 1: 服务器端
服务器作为视频内容提供环节,主要是涉及到视频内容准备的过程,包括以下几个方面。
1. one-layer or multi-layer coding(单层 or 多层编码)
HAS提供不同码率的实现方式也很多样,
- 一是one-layer coding,就是通过调节编码参数来获取不同码率的视频,这种实现方式比较常见。
- 二是multi-layer coding,这种实现是借助了SVC(scalable video coding)多层编码的特性。
one-layer coding的适应算法在下面会有详解,此处简单介绍下DASH-SVC方案。
SVC(scalable video coding)可以提供一个base layer和一个或多个enhance layer,其适应算法有以下经验,
- 首先保证了base layer的传输就保证了视频的流畅播放,如果带宽状况允许的话,再请求enhance layer来提高视频的质量
- base layer improving is more import than higher quality layers(提升基本层优于提升增强层)
- higher quality in the end of a video clip leads to higher QoE
2. preparation of the content(视频内容呈现方式)
视频内容呈现方式包括以下研究点,
segment length(1s - 15s)
- large segment的话可以提高编码的效率,相同的bit rate可以提供质量更好的视频。
- 但是,large segment会增加播放延迟、更长的初始化时间、对带宽播放反应滞后。
- 对于直播,由于要求低延迟,一定要用small segment(延迟随segment size直线下降,130ms的segment可以获得1s左右的延迟)
- 当然,segment size的下降必然会增加HTTP请求,增加了额外的网络负担。
available bit rate
- 太过多的bit rate必定会增加编码耗时以及服务器存储负担(点播)
- 典型的实现方式(Youtube)是5种bit rate
3. adaptation dimension(多码率实现方式)
在视频编码中可以通过以下三个维度来实现编码视频码率的下降,frame rate、resolution、QP,这一部分和视频编码中QoE和bit rate的研究完全一致,简单介绍如下,
temporal adaptation: frame rate
- in order to achieve 80% of original bitrate, need to reduce 60% frame rate. quality degradation is significant.
- reduction of frame rate has little impact on high motion videos.
spatial adaptation: resolution
- spatial resolution is the key criteration for QoE for small screen
- impact of resolution depends mainly on the content and the device
- for the same video bit rate, higher resolution is perceived worse
image quality adaptation: QP
- decrease bit rate by 30% without any loss in quality(paper:Optimizing video coding adaptive streaming over HTTP)
- increasing bit rate the video quality increases but eventually saturates.
multiple dimensions
- 通过以上多个参数配合来调节bit rate
- there exists an encoding which maximizes the user-perceived quality for a given target bit rate.(paper: User perception of adaptive video quality)
- fast foreground motion like soccer reducing frame is preferred to reducing frame quality
Part 2: 网络
网络这个层次上的研究包含两个大的方面,网络层次的适应算法、网络带宽竞争机制。
网络层次的适应算法,指在网络上重定向客户端的bit rate请求,来获取一个整体的QoE提升。
网络带宽竞争机制包括多个播放器竞争的公平机制以及播放器和其他上网应用之间的竞争。
1. Interactions between network entities
本节涉及到较多了TCP传输协议知识,现在并不能很好的理解。
Interactions between HAS Players
对于同一个网络中存在多个播放器的情况,有以下三个方面的问题需要考虑,stability、fairness and bandwidth utilization
- 播放器之间能否分享网络,并维持一个稳定的状态(没有太多的码率切换)?
- 播放器之间能否公平的分享网络带宽?
- 多个播放器的竞争会不会降低网络带宽的利用率?
Interactions between HAS Players and other applications
这一方面的研究不足。
Interactions between other applications and HAS Players
aggressive player对其他上网应用的影响,
- 由于有很多的HTTP request of small files,会导致排队时间增长,严重影响大文件的传输以及实时的应用。
Interactions between HAS Players and TCP
2. 解决方案
上一节介绍了由于竞争网络带宽带来的一些问题,本节就来介绍一些解决方案,存在以下三个方面的解决方案,
server based approaches
后续补充。
network based approaches
SDN(software defined network)可以重定向HAS请求,基于此可以做一些网络上的适应算法。
proxy and client based approaches
通过一个上层的proxy server来分配带宽,或者,让多个client之间互相通信,了解对方的带宽状况,从而解决上一节遇到的问题。
Part 3: 客户端
客户端涉及到adaptation algo.,这一块MPEG-DASH标准并没有做规定,所以在这块的研究也最为火热,这一块的研究可以分为影响QoE的因素和参与adaptation algo.的参数两个方面进行分解。
1. 影响QoE的因素
影响QoE的因素包括init delay、representation switch events、stalling、media throughput、network utilisation等几个因素,研究多是针对前三个因素,后边两个因素常用作评价标准,在优化前三个因素的基础上,最大化后边2个因素是自适应码率算法的追求目标。
init delay
- 跟segment size & init buffer直接相关
- 小的init buffer可以降低init delay,但是会增加播放后stalling的可能性
- playout buffer可以抵消临时的带宽波动,使得播放更加平滑
- the impact of init delays on QoE of video streaming is not severe.
representation switch events
- 降低视频质量的影响比提升视频质量的影响大,有研究表明,突然提高视频质量反而会提升QoE,因为用户更愿意看到视频质量提升。(paper: Representation switch smoothing for adaptive HTTP streaming)
- 逐渐切换可以降低切换对QoE的影响,switching amplitude and recency effects can be neglected if more than two switches occur
- 相对于切换频率,长时间播放低质量视频会更加影响QoE(Assessing effect sizes of influence factors towards a QoE model for HTTP adaptive streaming)
stalling
- large buffer: 需要更多的内存(对于移动设备不合适) & 更长的初始化等待
2. parameters of adaptation algo.
当前常见的算法多采用如下几个系统参数来作为adaptation algo.的输入参数,预测带宽、video buffer size等。下面结合多种adaptation algo.来介绍这几个参数的运用,
bandwidth estimation algo.
- (paper: Review of bandwidth estimation tools and application to bandwidth adaptive video streaming)
- 可以分为passive & active measurement两种预测方式,active measurement需要额外的probe packet,HAS多是采用passive的方式
adaptation algo.
具体的adaptation algo.以后会分专题讲解,此文只讲一些概括性的东西。由于其发展的很快,所以我都是重点关注些最新的算法。
- Pipelined DASH: several segment can be requested at a time
总结
国庆假期看了些关于HAS领域概括性的文章,特将研究热点总结出来,供交流讨论及自己以后翻看。