Scale-space flow for end-to-end optimized video compression 个人理解
文献地址:http://openaccess.thecvf.com/CVPR2020_search.py
文章中了CVPR2020。
目录
一、概述
本文提出了一套全新的端到端视频编解码框架。针对现有基于学习的视频编解码需要光流、双线性warping和运动补偿,而且有相对复杂的架构和训练策略(需要预训练光流、训练各个子网络、训练过程中重建帧需要缓冲区),本文提出一种广义warping操作,可以处理比如去遮挡、快速运动等复杂问题,而且模型和训练流程大大简化。
二、本文贡献
本文对现有的基于学习的包含光流估计+运动补偿的框架总结出四个问题:
(1)光流预测需要解决孔径问题(光流之所以是个病态问题的原因),这个问题比压缩问题更复杂;
(2)编解码框架中加入光流网络,给整个编解码框架增加了约束和复杂度;
(3)好的光流模型如果想要达到state-of-the-art表现,需要标注数据且训练复杂化。根据DVC的训练过程,在联合训练整个网络时,不需要单独的光流标注数据,所以作者总结的这个现有基于学习的视频编解框架的缺点个人认为有点牵强。
(4)稠密光流没有“no use”的概念,每个像素都要进行warped,导致无遮挡情况下会有较大残差。
针对上面四个现有框架缺点,作者提出改进措施,本文的贡献如下:
(1)提出尺度空间光流和warping,一种对光流+双线性warping的直观概述;
(2)简单的编解码框架和训练过程。
(3)实验结果显示达超过了基于训练的视频编解码的state-of-the-art结果,而且消融实验也表明了方法的有效性。
三、论文思想
1、尺度空间光流
重点就在于构造光流时引入了scale field。
一般的warping:
包含尺度空间的warping:
尺度空间warping,主要就是构造了一个尺度固定的volume X:
X = [x, x∗G(σ0), x∗G(2σ0), · · · , x∗G(σ0)],其中,x ∗ G(σ)表示x与尺度为σ的高斯核进行卷积。
X是x具有不用模糊尺度的图片组成的堆栈,维度为(M x N x (M+1)),作者采用M=5。
=0时,尺度空间的warping就退化为双线性warping:
当和
为零,
时,尺度空间的warping就近似于高斯模糊:
X可以通过简单的三线性插值获取,而坐标z这样计算:
其中,0 < σ <σ0
2、压缩模型
主帧压缩、残差压缩、尺度空间光流计算均采用balle那一套框架。
3、量化和熵编码
没有创新的地方,可见参考文献[10]和[32]。
4、损失函数
N帧的率失真相加作为损失。这个在https://blog.****.net/cs_softwore/article/details/106301972论文解析中曾经提到过,这个方法有利于减少错误传播。
四、实验
1、网络结构。
上文已经提到了,就是balle的含有GDN的图像压缩压缩框架,三个网络都是。
2、训练相关
训练数据和一些训练参数可以参见文献,没有特殊地方。这里要提一下训练策略,先用256 x 256的图片训练,再用分辨率较大的384 x 384图片进行微调,这和我们复现DVC时的训练策略一致。
N(Number of unrolled frames)采用9或12取得较好结果,在Nvidia V100 GPU上训练了30天,基于学习的视频编解码训练确实消耗时间。
3、实验结果
(1)一些定性结果:
(2)一些定量结果
也可以看出尺度空间的warping比普通插值warping具有更佳的表现。
(3)视频级的分析
五、结论与总结
提出尺度空间光流和尺度空间warping,而且简化了编解码流程,与DVC相比,是完全不同的框架。为基于深度学习的端到到视频编解码框架提供了一个新的思路。
但从这个文献结果来看,依然是只比人工设计的传统的混合编解码框架H265略好,像本文这么简化的框架能达到如此效果已经很令人惊喜,但是相比H266算法(比H265提升30%+)还是要差很多,基于学习的视频编解码还是有很长的路要走。