视频压缩 论文笔记26 -- 【CVPR2020】M( 四 )


结合论文和作者代码,我大概总结了下编码和解码流程:

视频压缩  论文笔记26 -- 【CVPR2020】M

文章插图
编码流程:
对第0帧(I帧)进行帧内压缩(作者使用了BPG)解码第0帧(I帧),得到第一个重构帧运动估计网络(ME-Net):前一重构帧,当前原始帧 -> 原始MV运动预测网络(MAMVP-Net):多个先前解码MV -> 预测MV原始MV,预测MV -> 编解码网络:MVD ->(非线性变换)->(量化压缩)-> 量化MVD,同时得到解码MVD预测MV,解码MVD -> 解码MV光流优化网络:解码MV,前一重构帧 -> 最终解码MV运动补偿网络(MMC-Net):最终解码MV,前多个重构帧 -> 当前预测帧当前原始帧,当前预测帧 -> 残差残差编解码网络:残差 ->(非线性变换)->(量化压缩)-> 量化残差,同时得到解码残差残差优化网络:解码残差,当前预测帧 -> 最终解码残差最终解码残差,当前预测帧 -> 当前重构帧(用于下一帧编码)存储I帧的压缩文件(.bpg)封装编码结果并存储到文件(.bin)
解码流程:
加载I帧.bpg文件并解码为.png文件加载.png文件作为前一重构帧加载并解析.bin文件运动预测网络(MAMVP-Net):多个先前解码MV -> 预测MVMVD解码网络:量化MVD ->(非线性逆变换)->(解压缩)-> 解码MVD预测MV,解码MVD -> 解码MV光流优化网络:解码MV,前一重构帧 -> 最终解码MV运动补偿网络(MMC-Net):最终解码MV,前多个重构帧 -> 当前预测帧残差解码网络:量化残差 ->(非线性逆变换)->(解压缩)-> 解码残差残差优化网络:解码残差,当前预测帧 -> 最终解码残差最终解码残差,当前预测帧 -> 当前重构帧所有重构帧即构成原始YUV视频帧 3.2. Multi-scaleMV
3.3. MV3.4.with
在传统的视频编码方案中,H.264/AVC[31]采用了多参考帧的运动补偿,并继承了以下标准 。例如,一些编码块可以使用来自不同参考帧的两个不同的运动补偿预测的加权平均值,这极大地提高了压缩效率 。此外,在最近的视频超分辨率研究中,多帧方法也比基于单帧的方法要好得多[10,14,29] 。因此,作者建议在他们的方案中使用多个参考帧进行运动补偿 。
3.5.3.6.
Loss .
本文的方案旨在联合优化编码比特数和原始帧与重构帧之间的失真度,
J = D + λ R = d ( x t , x ^ t ) + λ ( R m v d + R r e s ) , ( 6 ) \ J=D+λR=d(x_t,\hat{x}_t)+λ(R_{mvd}+R_{res}), (6) J=D+λR=d(xt?,x^t?)+λ(Rmvd?+Rres?),(6)
其中 d ( x t , x ^ t ) \ d(x_t,\hat{x}_t) d(xt?,x^t?)是 x t \ x_t xt?和 x ^ t \ \hat{x}_t x^t?之间的失真,作者在实验中使用均方误差(MSE)作为失真度量 。R m v d \ R_{mvd} Rmvd?和 R r e s \ R_{res} Rres?分别表示用于编码MVDd t \ d_t dt?和残差 r t \ r_t rt?的比特率 。在训练过程中,不进行实际编码,而是根据相应的潜在表示 m ^ t \ \hat{m}_t m^t?和 y ^ t \ \hat{y}_t y^?t?的熵来估计比特率 。分别使用[3]和[4]中的CNNs来估计 m ^ t \ \hat{m}_t m^t?和 y ^ t \ \hat{y}_t y^?t?的概率分布,然后得到相应的熵 。由于 m ^ t \ \hat{m}_t m^t?和 y ^ t \ \hat{y}_t y^?t?是量化表示,且量化运算是不可微的,因此采用了文献[3]中提出的方法,在训练过程中通过添加均匀噪声来代替量化运算 。
.
4.4.1.Setup
Data. 使用了Vimeo-90k数据集[33],并将视频序列裁剪为192×192及16帧的片段 。
. 在实验中,编码结构为IPPP…并且所有P帧均由同一网络压缩 。作者没有实现单个图像压缩网络,而是使用H.265压缩唯一的I帧(代码实现中使用BPG进行I帧压缩) 。对于前三个P帧,其参考帧小于4,所以复制最远的参考帧以获得所需的4个帧 。针对多种编码率训练了具有不同λ值(16、24、40、64)的四个模型 。使用动量为0.9的Adam优化器[13] 。对于新添加的模块,初始学习率为5e?5,在微调阶段为1e?5 。在训练期间,学习率降低了2-5倍 。batch-size是8(即8个裁剪片段) 。整个方案由实现,并在单个Titan Xp GPU上进行训练/测试 。