利用超分辨率的技术和自适应流传输提升用户体验
in 个人博客 on PAPER
当今的高速移动互联网访问,观众期望的视频质量比以前更高。视频服务提供商已经部署了动态视频比特率自适应服务来满足此类用户需求。然而,传统的视频比特率自适应技术高度依赖于动态带宽的估计,并且无法集成视频质量增强技术,或者无法考虑客户端设备的异构计算能力,从而导致用户的体验质量(QoE)低。在本文中,我们提出了一种基于超分辨率的自适应视频流(SRAVS)框架,该框架应用了强化学习(RL)模型整合了视频超分辨率(VSR)技术与自适应视频流策略。VSR技术允许客户端下载低比特率的视频片段,将其重构并增强为高质量的视频片段,同时使系统减少对带宽估计的依赖。RL模型同时考虑了播放统计信息和客户端计算能力的差异。实验证明,与采用或不采用VSR技术的最新视频流策略相比,SRAVS可以显着提高用户的QoE。
主要内容
作者指出,目前的视频传输框架主要是基于自适应码率来提升用户的体验,但这些研究面临着以下挑战:
- 依赖动态的带宽预测
- 没有集成视频质量增强技术
- 仅仅考虑视频的播放状态,而不考虑客户端计算能力的异构性带来的影响
然后,视频超分(VSR)技术的出现为解决上述问题提供了一种思路,经过调研发现:
- 现有的播放器能够利用最新的VSR模块实时的提升视频质量
- VSR对特定视频的质量提升效果是固定的,并且可以作为先验知识
- 对播放器而言,下载和重建可以是两个独立的线程
本文的主要思路就是将自适应传输和端侧的视频重建结合起来,在网络状态不好的情况下依然能够利用客户端的计算能力增强视频的质量。提出了一个SR-AVS的架构,利用双缓冲区策略将下载和重建分开,并且使用一个RL代理来监控播放状态和计算能力剩余来提供码率决策和重建决策。
但是,客户端的计算能力是有差异的,这个限制了重构的性能。
Though the complex models provide a high quality of the reconstructed video, they may not be executed on mobile devices in real-time.
系统架构
这个视频传输架构整合了视频重建和码率决策,如图所示:
服务器端负责将视频编码为多个码率版本以及处理客户端请求。客户端的修改则是将缓冲区分解为两个部分,下载缓冲区用于下载线程,播放缓冲区用于播放,中间使用视频超分模块建立连接。RL决策模块则提供码率决策以及重建决策。
在视频播放的过程中,客户端会将视频下载到下载缓冲区,同时超分模块从下载缓冲区中提取chunks,重建该chunks并将处理后的chunks送到播放缓冲区。
video chunks with different resolution
MPD文件记录了一个视频中所有chunks的分辨率以及块大小,用于视频流决策。
video streaming with reconstruction
在SRAVS中\(\left( q_{i} , q_{i}^{'} \right)\)标识下载的基础分辨率和要重建的目标分辨率。但决策集合中对重建的目标码率有合法性的要求:
Considering the optimization technique in the state-of-the-art super-resolution models, it is not possible to conduct reconstruction from some base resolution to specific target resolution. The main reason is that the sampled points are better to be located exactly on a pixel, or the interpolation may either degrade the efficiency or weaken the performance.
另外,由于各种设备之间的计算能力差异,系统只会给出一个标准的视频块重建时间\(\bar{\Psi} \left(q_{i}, q_{i}^{'}\right)\),用来提供给客户端估计重建的时间,这个是存在MPD文件里面的。
文章使用PSNR来评价重建的效果,并且每一个视频块的对应的目标分辨率重建效果\(PSNR\left(i, q_{i}, q_{i}^{'}\right)\)也是写在MPD文件里面。
pull-based strategy
拉流策略,就是在第\((i-1)\)th块下载完成并且下载缓冲区不满时,触发RL做出\(\left( q_{i} , q_{i}^{'} \right)\)决策,然后并发的进行下载和重建。所以这里的主要挑战就是如何权衡下载和重建两个任务。
基于超分的自适应码率
问题建模
这里主要就是对下载,重构,播放时间做了建模,还定义了各个缓冲区内部缓存的视频块的数量,另外还有缓冲时长的定义。具体看原文吧
优化的目标:QoE
万变不离其宗,这里定义的QoE模型,还是基于视频质量(由于视频重建的影响,所以这里采用的是PSNR来评价),视频的平滑度以及缓冲时长来定义。
超分模块
超分模块是基于SRCNN,低分辨率的图像帧首先会被插值为目标分辨率,然后SRCNN会将插值后的图像帧重建为高清图像帧。根据复杂度分析,重建时间与基础分辨率和目标分辨率有正相关关系。文章中还提到超分的两个特性,但还不知道是什么意思:
- For a certain base resolution, the higher the target resolution is, the higher the PSNR will be obtained.
- For a certain target resolution, the higher the base resolution is, the higher the PSNR will be obtained.
RL决策
state 包括剩余的chunks数,过去k个chunks的平均下载速率,两个缓冲区的状态,当前下载缓冲区内chunks的标准重建时间总和,当前重建chunk的标准重建时间,剩余可播放视频长度,客户端计算能力,chunk的重建分辨率,以及PSNR,文件大小等信息。
action 输出决策\(\left( q_{i} , q_{i}^{'} \right)\)
reward 奖励函数,\(r_{i} = PSNR \left(i, q_{i}, q_{i}^{'} \right) - \alpha_{1} \left \| f\left( q_{i}^{'}\right) - f\left(q_{i-1}^{'}\right) \right \| - \alpha_{2} \tau_{i}\)
policy 输出一个actions的概率模型
实现
- server 分为三部分,一是将视频切片,一是计算标准的重建时间,另外就是处理网络请求
- client 集成RL模块和SR模块
实验使用了不同的设备进行测试:有GPU的PC,没有GPU的PC,高端手机,低端手机。不确定是否实现了系统原型还是只是用来做仿真的。
总结
主要就是提出了基于SR的自适应视频传输架构,然后用RL进行决策,整合了SR和AVS。文章最后只是在时间的维度上做出是否重建的决策。
作者实验结果来看,发现计算能力对SR还是有不小影响的。
the higher the computing capability is, the higher the probability that the device would execute VSR to improve the video quality.