info
Bampis C G, Bovik A C. Learning to predict streaming video QoE: Distortions, rebuffering and memory[J]. arXiv preprint arXiv:1703.00633, 2017.
PDF can be found here
与其说是笔记,不如说是小翻译,以便日后翻阅,也给有需要的人提供一点参考。但是能力有限,万望谅解。
注:文中的我们
是指作者(们),不是我(们)
-
- Abstract
- Introduction
- Previous Work on QoE Prediction
- The LIVE-Netflix Rebuffering Dataset
- Is Objective VQA Enough ?
- Learning-based Framework for QoE Prediction
- Training and Evaluation of The Proposed Framework
- Experiment 1: Testing for Content Independence (LIVE-Netflix)
- Experiment 2: Testing for Pattern Independence (LIVE-Netflix)
- Experiment 3: Training and Testing for Waterloo DB
- Experiment 4: Training on Waterloo DB and testing on LIVE-Netflix
- Experiment 5: Training on LIVE-Netflix and testing on Waterloo DB
- Future Work
Abstract
移动流媒体视频数据与日俱增,而我们可使用的带宽经常不稳定,所以就会给高质量视频的传输带来困扰。诸如Netflix或者YouTube等流媒体服务提供商都需要根据带宽的变动,调整其供给状态,比如降低传输视频的比特率,或者在更糟糕的时候进行缓冲(rebuffering)。
在调整供给时,通过估计用户的体验质量(Quality of Experience, QoE),可以更好地设计一种感知驱动的网络资源分配策略,以便获得更高的QoE。现有的QoE方法仅仅考虑了视频质量衰减或者rebuffering中的一种情况,而对于流媒体应用来说,在有限带宽的情况下,比特率的动态分配(带来视频质量衰减)和rebuffering都可能会出现。
因此,我们提出了一种基于机器学习的框架:Video Assessment of TemoraL Artifacts and Stalls (Video ATLAS),来同时度量这两种情况。我们结合了一些与QoE相关的特征,包括客观质量特征、与rebuffering有关特征,以及记忆驱动的特征,来做QoE的估计。我们在LIVE-Netflix数据集上测试了苏提出的模型,取得了较好的结果,并且通过在Waterloo DB上测试,也表明了模型有很好的泛化性。同时,给源码。
Introduction
背景介绍,我为什么要做这个工作?
现在视频越来越多,诸如Netflix和YouTube等提供商在面对有限的网络带宽时,都不得不做一些资源分配的决策,以便平衡用户的体验质量(Quality of Experience, QoE)。由于视频数据的最终用户是人,所以应该设计一种感知驱动的优化策略来指导资源分配问题。(也就是说,要是我的QoE做得好,那么我就可以根据QoE来调整供给策略,使得QoE最大化)
但是,人很复杂啊,所以QoE要做好其实很难。我们关注的的QoE一般有两种:单个QoE值和连续时间的QoE。单个QoE值就是给你一段视频,看完后,给我打一个质量分数(好不好啊,给个五星好评还是一星差评),描述的是整个视频片段的质量;连续的QoE分数是随着时间,被试者不停地给出连续时间的质量分数,可能会受到短时或者长时的记忆机制的影响。
同时,现有的视频质量评价(Video Quality Assessment, VQA)方法不足以估计主观QoE,视频的各种噪声,包括压缩噪声,以及rebuffering,都会对主观的QoE产生不同的影响。然而,只有近年来的一些方法才关注rebuffering的影响,而同时估计不同质量衰减噪声和rebuffering的QoE方法,更是难上加难。
为了解决这个问题,我们用一种基于学习的方法,同时考虑比特率变化所带来的质量衰减影响和rebuffering,来做QoE的估计。由于现有的QoE数据集都不能很好的同时刻画出质量衰减和rebuffering,但在实际中,这是很常见的情况。所以我们最近也做了一个数据集LIVE-Netflix,来弥补这一缺陷。
Previous Work on QoE Prediction
我要做这个工作,那之前是怎么做的呢?做到什么程度了?
我们考虑两种影响QoE的情况:
Impairments of Videos with Normal Playback
一种常见的优化带宽消耗的策略就是采用自适应比特率分配策略。降低比特率会带来更强的压缩噪声,如下图左。除了比特率的选择会导致压缩噪声,其它一些与网络相关的影响也会产生数据丢包等问题。但是这类视频噪声基本没有rebuffering问题,因为在网络很差的时候会丢包。
基本上现有的大部分VQA算法都是基于此类视频噪声来做的。FR-IQA:SSIM、MS-SSIM,FR-VQA:VQM_VFD、MOVIE、ST-MAD、VMAF、FLOSIM,RR-VQA:STRRED。
Playback Interruption
但是有时候,在可用带宽极低时,播放中断是不可不避免的,如下图右。大部分的工作都表明,rebuffering的持续时长、频率和位置都会影响QoE。一些方法如FTW、VsQM利用了rebuffering的全局统计特性,现在的一些工作在考虑rebuffering对QoE的影响的基础上,整合了recency的机制。
但是这些工作都只是对上述两种噪声类型中的一种进行研究,要么针对第一种压缩噪声,要么针对第二种rebuffering,其中一个因素是因为缺少合适的主观数据。在[32]中,作者结合了全参考的算法(如SSIM和MS-SSIM)和rebuffering的信息,产生了Streaming Quality Index (SQI)。在[33]中,作者将QP值和与rebuffering相关的特征输入到Random Neural Network估计QoE。但是呢,这些算法用的视频数据不充分,一共只有4种视频内容,每段视频只有16秒,因此也没考虑到长时记忆的影响。这就引导我们做一个更大的基于流媒体的主观数据集,以及设计相应的算法。
需要注意的是,HTTP Adaptive Streaming(HAS)使用了TCP协议,因此能抗拒一些由数据丢包产生的噪声,比如视频数据丢失或者其他的瞬变。因此,我们只需要考虑两类主要的噪声:压缩(多个编码比特率)和播放中断(rebuffering)。
所以,下面,我们要先介绍一下我们见了一个数据集,然后基于这个数据集,我们提出一个新的方法:Video ATLAS。
The LIVE-Netflix Rebuffering Dataset
他们的数据集都不够好,所以我要自己造
大部分现有的数据集,都只考虑了上述两种噪声中的一种,或者方式很特定,妨碍了实用性。所以我们自己造了一个数据集LIVE-Netflix:14个参考视频,每个参考视频可以产生8种不同的比特变化或者rebuffering形式(Patterns),产生了112个噪声视频。我们假设可获得带宽最大250kbps,最小100kbps,下图给一个小例子。我们假定buffer的容量是固定的,所以我们可以对不同比特率下的Patterns、rebuffering的位置和时长等进行比较。
Is Objective VQA Enough ?
数据集造好了,我要开始自己设计算法了,为什么呢?因为现有的算法不行……行就没得玩儿了
现有的大部分VQA算法都没考虑rebuffering,但是现实中我们其实很需要。所以我们挑了一堆QA算法,在我们的LIVE-Netflix上测了一下,他们果然不行:)
我们是这样测的,首先挑出没有rebuffering的视频,测得一个质量 Sq S q ,然后对所有视频,测得一个质量 Sall S a l l ,结果在下面这张图。(都是辣鸡)
我们觉得,主观QoE是受rebuffering和质量衰减联合影响的,而不应该仅仅只度量质量衰减这一个因素。所以客观VQA都不这么可靠,因为它们都将这种关联性去掉了,这也启发我们要考虑这种相关性。
Learning-based Framework for QoE Prediction
你们都不行,所以该我了
我们提了一些特征,因为需要同时度量质量衰减和rebuffering,所以这些特征有:
- Objective Video Quality Scores (VQA):现有的一些VQA算法都可以整合进来用,取平均到一个score值;
- Rebuffering-aware features (
R1
R
1
和
R2
R
2
):每段rebuffering的时间长度
R1
R
1
和rebuffering的次数
R2
R
2
;
- Memory-related feature (M):由于QoE在的一定程度上依赖于recency effect(一般来说,噪声出现的时刻越接近你给出质量分数的时刻,噪声的主观效果越强烈),所以我们也计算了最后一次发生rebuffering或者比特率跳变,到视频末尾的时间长度;
- Impairments duration feature (I):噪声所cover的时长。
事实上,第一种VQA特征基本度量质量衰减,后续的几个特征主要是在致力于rebuffering的度量(当然,也对质量衰减有影响)。同时,由于rebuffering的视频中有在暂停缓冲阶段,噪声视频是静止的,而参考视频在继续随着时间播放,所以在做FR-VQA时,会有一个校准的过程,避免在计算时出现参考帧和测试帧不是在同一个时刻的情况。
Training and Evaluation of The Proposed Framework
我们试了很多次,发现效果还可以,所以发论文了
我们提了一些特征,所以该用机器学习来训练测试了。机器学习有很多,每个的性能出来都不一样,所以我选了一堆(而不是一个):linear models (Ridge and Lasso regression), Support Vector Regression (SVR), 以及ensemble methods: Random Forest (RF), Gradient Boosting (GB), Extra Trees (ET) regression。
因为是机器学习嘛,所以我们做了很多实验……
Experiment 1: Testing for Content Independence (LIVE-Netflix)
按照80%/20%对视频内容分训练/测试集,然后我们可以看到,经过训练过后的QoE估计比没有经过训练的VQA算法好(这还用说……而且测试数据太少了吧,24个数据样本)
然后,我们发现,使用不同的VQA算法,使用不同的机器学习方法,结果也很不一样
emmm……不同特征的贡献也不同
通过不同的特征组合方式,结果也五花八门,总的来说,虽然特征有点贡献高,有的贡献低,但是缺一不可啊,少了一个性能都会下降
其实我们可以看到,不论是单个特征,还是组合特征,考虑了记忆特征(M)真的很有效。这也证明了单个QoE评价很受recency/memory的影响。
当然了,我们在做VQA算法的时候,其实还考虑过一些时域pooling策略,结果发现还是取平均结果稳定一些
如果不是8/2分做训练/测试呢?基本上就是训练集越少效果越差吧……
总的来说,就是我们的框架产生的效果真的很好,你看,我们在LIVE-Netflix上的结果
Experiment 2: Testing for Pattern Independence (LIVE-Netflix)
因为我们的LIVE-Netflix数据集上,每个参考视频有8中对应的Patterns来产生噪声测试视频,那么结果会不会很依赖于Pattern呢?所以我们又做了对Pattern 8/2分训练/测试集(而不是基于视频内容)。
那么结果也很乐观啦,说明对了Pattern不敏感
Experiment 3: Training and Testing for Waterloo DB
有人会说,你自己的数据集,训练测试都在上面,当然可以根据数据集来建模型咯。所以我又用别人的数据集Waterloo DB来做,用8/2在Waterloo DB上做训练测试,效果还是好好的,甚至比根据Waterloo DB建立起来的算法SQI还要好一点点
Experiment 4: Training on Waterloo DB and testing on LIVE-Netflix
进一步,为了证明框架的合理性和泛化性,我可以在Waterloo DB上训练,在LIVE-Netflix上测试啊。
Experiment 5: Training on LIVE-Netflix and testing on Waterloo DB
同样地,我也可以在LIVE-Netflix上训练,在Waterloo DB上测试,效果都是我最好,这你没得说了吧。
(不,我还是要说:
在LIVE-Netflix上,内容独立时,MS-SSIM+ATLAS+EF最好;Pattern独立时,STRRED+ATLAS+Ridge与SSIM+ATLAS+RF最好;在Waterloo DB上,SSIM+ATLAS+SVR最好;两个数据集做跨库时,SSIM+ATLAS+Lasso最好。
到最后,还是没有一个general的模型,可以在所以实验中都有稳定的结果,依然没有足够的泛化能力。或许这就是所谓的framework,而不是model。
并且这两个数据集真的很小,如果还要拆分出训练集,就更小了。更希望看到在一些传统做VQA数据集上的结果,至少测试压缩噪声子数据集。
我更趋向于去结合这些特征去学习一个temporal pooling策略,而不是平均诸多帧质量之后,再去找这些时域变化特征来做combination)
Future Work
LIVE-Netflix QoE数据集有大量的连续时间的主观数据,可以整合这些时域方面的QoE质量来进一步设计更好的资源分配策略。
[小广告]
我的Github:https://github.com/Sissuire
第一手博客来源:https://sissuire.github.io/
(End of this file)