《Deep Contextual Video Compression》论文阅读

端到端的视频压缩–《Deep Contextual Video Compression》



论文地址:https://proceedings.neurips.cc/paper_files/paper/2021/file/96b250a90d3cf0868c83f8c965142d2a-Paper.pdf
代码:https://github.com/microsoft/DCVC/tree/main/DCVC

摘要

现有的神经视频压缩方法大多采用预测编码框架,首先生成预测帧,然后用当前帧对其残差进行编码。然而,就压缩率而言,预测编码只是次优解决方案,因为它使用简单的减法运算来消除帧间的冗余。在本文中,我们提出了一种深度上下文视频压缩框架,以实现从预测编码到条件编码的范式转变。特别是,我们尝试回答以下问题:如何在深度视频压缩框架下定义、使用和学习条件。为了挖掘条件编码的潜力,我们建议使用特征域上下文作为条件。这使我们能够利用高维上下文向编码器和解码器携带丰富的信息,这有助于重建高频内容以获得更高的视频质量。我们的框架也是可扩展的,可以灵活设计条件。实验表明,我们的方法可以显着优于以前最先进的(SOTA)深度视频压缩方法。与使用veryslow预设的x265相比,我们可以为1080P标准测试视频实现26.0%的比特率节省。


一、简介

主要介绍了基于预测编码的传统视频压缩方法,以及当前基于深度学习的压缩方法。

  1. 传统视频压缩:介绍了从1988年的H.261到2020年的H.266,所有传统视频编码标准都基于预测编码框架,即先生成预测帧,然后对当前帧与预测帧的残差进行编码。
  2. 基于深度学习的视频压缩:指出许多基于深度学习的视频压缩方法也采用预测编码框架,只是将手工模块替换为神经网络。
  3. 残差编码的局限性:强调了残差编码不是最优的编码方法,因为它仅使用简单的减法运算来消除帧间的冗余,而条件编码具有更低的熵下界。指出传统编码器无法利用所有参考帧中的像素相关性,而深度学习提供了自动探索相关性的可能性。
  4. 提出基于条件编码的框架:提出本文旨在从预测编码转向条件编码,以实现更高效的压缩。

文章的主要贡献为:文章通过在多个标准测试视频上的比较,证明了提出的基于条件编码的框架相比现有方法可以实现更低的比特率,最高可节省26%。

  1. 设计了基于条件编码的深度视频压缩框架,其定义、使用和学习方式均具有创新性,可以超越之前的残差编码方法。
  2. 提出了使用上下文帮助编码、解码和熵建模的简单高效方法。
  3. 将条件定义为特征域上下文,高维度的上下文能够提供更丰富的信息,有助于重建高频内容
  4. 框架具有可扩展性,在条件定义、使用和学习方面存在巨大潜力。

在这里插入图片描述

二、相关工作

当前主流的基于深度学习的视频压缩方法都采用预测编码框架,而条件编码框架仍处于初步探索阶段。


  1. 深度图像压缩: 介绍了基于自动编码器压缩图像的相关工作,并提到了Ballé等人提出的基于超先验和自回归上下文的熵模型。强调了自回归网络在图像压缩中的重要性。
  2. 深度视频压缩: 将现有深度视频压缩方法分为两类:非延迟受限和延迟受限方法。非延迟受限(参考位置不受限制)方法允许使用未来帧作为参考,但会导致较大延迟和内存开销。延迟受限方法只使用之前帧作为参考,更适用于实时通信等场景。
  3. 介绍了基于延迟约束方法的DVC、DVCPro等工作的细节,以及基于非延迟约束方法的3D自动编码器工作。
    强调了当前深度视频压缩方法大多采用预测编码框架,而本文旨在探索条件编码框架。
  4. 基于条件编码的方法: 提及了将条件编码应用于熵模型、编码器和解码器等部分的工作。指出现有条件编码方法存在限制,例如需要手工操作过滤内容,条件编码范围受限等。强调本文提出的DCVC框架是一个更全面和灵活的条件编码解决方案。

三、网络模型

3.1DCVC框架

传统的视频编码中,帧间编码采用残差编码:

在这里插入图片描述

其中xt 是当前帧。 ^ xt 和 ^ xt−1 是当前和先前解码的帧。 fenc(·) 和 fdec(·) 是残差编码器和解码器。 在这里插入图片描述是量化运算。 fpredict(·)表示生成预测帧~xt的函数。在传统的视频编解码器中,fpredict(·)是以MEMC(运动估计和运动补偿)的方式实现的,它使用手工编码工具来搜索最佳MV(最佳运动矢量),然后对预测帧进行插值。对于大多数现有的基于深度学习的视频编解码器,fpredict(·)是完全由神经网络组成的MEMC。
在本文中采用的是条件编码,预测帧当条件:
在这里插入图片描述
让网络直接学习条件更好的解决低通道尺寸的像素域的限制
在这里插入图片描述
其中fcontext(·)表示生成上下文̄xt的函数。 fenc(·)和fdec(·)是上下文编码器和解码器,与残差编码器和解码器不同。
在这里插入图片描述

为了给xt编码提供更丰富、更相关的条件,上下文处于更高维度的特征域中(高通道数)。如下图,不同通道关注的信息不一样。
来自 MCL-JCV[29] 数据集中 videoSRC05 的视觉示例。
xt 中的高频通过离散余弦变换进行分解。结果表明,DCVC 改善了小运动背景和大运动前景中高频内容的重建。此外,DCVC擅长对运动引起的新内容区域进行编码,与基于残差编码的框架DVCPro相比,可以显着降低重建误差。 DCVC (0.0306) 的 BPP(每像素位数)小于 DVCPro (0.0359)。
上下文模块(Context refinement) 不仅为分析变换和合成变换提供信息,还参与熵模型的构建。这里的上下文模块指的是帧间的上下文。

3.2熵模型

估计概率分布和实际潜在代码分布之间的交叉熵是实际比特率的紧下界
在这里插入图片描述
实际上,算术编码几乎可以以交叉熵的比特率对潜在码进行编码。实际比特率 R(^ yt) 和交叉熵比特率之间的差距可以忽略不计。设计的熵模型如下:
在这里插入图片描述
和DL的图像压缩一样,使用超先验模型来学习分层先验,并使用自回归网络来学习空间先验。除此之外,使用上下文 ̄ xt 来生成时间先验。假设概率分布为:
在这里插入图片描述
其中索引 i 表示空间位置。 f_hpd(·) 是超先验解码器网络。 f_ar(·) 是自回归网络。 f_tpe(·) 是专门设计的时间先验编码器网络。 f_pf (·) 表示先验融合网络。关于空间先验的操作是非并行的,从而导致编码/解码速度慢。相比之下,关于所提出的时间先验的所有操作都是并行的。因此,论文还提供了一种消除空间先验但依赖时间先验来加速的解决方案,即在这里插入图片描述。(现在又快速的空间自回归算法可以替代,如棋盘自回归)

3.3上下文学习

考虑到普通网络很难在没有监督的情况下提取有用的信息,论文采用了MEMC的思想。但与在像素域中应用 MEMC 的常见用法不同,论文在特征域中执行 MEMC。上下文生成函数fcontext设计为:
在这里插入图片描述
论文首先设计一个特征提取网络 ˇ x_t−1 = f_fe(ˆ xt−1) 将参考帧从像素域转换到特征域。同时,使用光流估计网络来学习参考帧^ x_t−1和当前帧xt之间的MV。然后对MV m_t 进行编码和解码。解码后的 ˆ m_t 通过扭曲操作 ̈ x_t = warp(ˇ x_t−1, ˆ m_t) 引导网络提取上下文。 ̈ x_t 是一种相对粗糙的上下文,因为扭曲操作可能会引入一些空间不连续性。因此设计了一个上下文细化网络f_cr(·)来获得最终的上下文̄x_t=f_cr(̈x_t)。在函数 f_context(·) 中,MV ^ m_t 不仅指导网络从何处提取上下文,而且与没有 MEMC 的解决方案相比,使网络能够从更大的参考区域学习上下文。所以上下文模块由:运动估计,运动补偿和上下文细化网络组成。

3.4损失函数

在这里插入图片描述
D可以是MSE(均方误差)或MS-SSIM(多尺度结构相似性)。在训练过程中,R 被计算为潜在代码的真实概率和估计概率之间的交叉熵(码率)。论文训练4个具有不同λ_s的模型{MSE: 256, 512, 1024, 2048; MS-SSIM:8、16、32、64}。

四、模型训练

1.超参数:

初始学习率:1e-4
最小学习率:1e-5
batch_size:4
λ:{MSE: 256, 512, 1024, 2048; MS-SSIM:8、16、32、64}

2.数据集

训练集:使用 Vimeo-90k septuplet 数据集中的训练部分作为我们的训练数据。(随机裁剪成 256x256 的块)
测试集:编解码器标准社区使用的常见测试数据集的HEVC Class B (1080P)、C (480P)、D (240P)、E (720P)。此外,还测试了来自MCL-JCV和UVG数据集(1080P)。
PS:测试GOP(图片组)大小 HEVC 视频为 10,非 HEVC 视频为 12。对于帧内编码,直接使用 CompressAI提供的现有深度图像压缩模型。使用 heng2020-anchor 作为 MSE 目标,使用 hyperprior 作为 MS-SSIM 目标。

3.训练结果

压缩比:与x265的veryslow预设相比,DVCPro在MCL-JCV、UVG、HEVC Class B和D数据集上分别实现了4.1%、7.9%、9.0%和6.9%的比特率节省。但在HEVC Class C和E上,DVCPro的表现较差,比特率增加了7.2%和17.2%。相比之下,DCVC在所有数据集上都优于x265,对于三个1080p数据集(MCL-JCV、UVG、HEVC Class B),比特率节省分别达到了23.9%、25.3%和26.0%。对于低分辨率的HEVC Class C和D,改善也相当可观,分别为5.8%和17.5%。对于运动较小的HEVC Class E,比特率节省为11.9%。下面分别是MSE和MS-SSIM为重建损失的对比结果:
在这里插入图片描述
在这里插入图片描述
复杂度:DCVC的MAC操作数为2268G,而DVCPro为2014G,增加了约13%。论文指出,在实际的P40 GPU上,每帧1080P的推理时间DCVC为857ms,DVCPro为849ms,仅增加了约1%。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值