通常,视频压缩的目标是通过利用时间和空间冗余来降低存储视频所需的比特率,同时保留视觉内容,目前广泛使用的方法是非神经标准编解码器(例如 H.264/AVC 、H.265/HEVC)。一些研究表明,神经网络在学习视频压缩方面取得了更好的进展,最新的方法在峰值信噪比(PSNR)方面可以与 HEVC 相媲美,或者在 MS-SSIM 方面优于 HEVC。然而,因为很少有研究者发布重制后的视频,这些方法尚未在主观视觉质量方面进行评估。
来自谷歌的研究者提出了一种基于生成对抗网络 (GAN) 的神经视频压缩方法,该方法优于以前的神经视频压缩方法,并且在用户研究中与 HEVC 性能相当。研究者提出了减少时间累积误差的方法,该累积误差由递归帧压缩引起,该方法使用随机移位和非移位,由频谱分析驱动。论文详细介绍了网络设计的选择以及重要性,并阐述了在用户研究中评估视频压缩方法的挑战。
论文地址:https://arxiv.org/pdf/2107.12038.pdf
本文主要贡献包括:
该研究提出了首个在视觉质量方面与 HEVC 具有竞争性的神经压缩方法,这是在用户研究中衡量的。研究表明,在 PSNR 方面具有竞争力的方法在视觉质量方面的表现要差得多; 该研究提出了一种减少展开时时间误差累积的技术,该技术通过随机移动残差输入,然后保持输出不变,激励频谱分析,研究表明该技术在系统和 toy 线性 CNN 模型中具备有效性; 该研究探索了由用户研究测量的视觉质量与可用视频质量指标之间的相关性。为了促进未来的研究,研究者发布了对 MCL-JCV 视频数据集的重建以及从用户研究中获得的所有数据(附录 B 中的链接)。 研究方法
下图为该研究使用的网络架构,其中 x = {x_1, x_2, . . . } 为帧序列,x_1 为初始帧 (I)。该研究在低延迟模式下操作,因此可以从先前的帧中预测后续 (P) 帧,设
是重建视频。
灰色框是中间张量的可视化结果。灰线左侧是 I-frame 分支(蓝色代表用 CNN 学习),右侧是 P-frame 分支(绿色代表用 CNN 学习)。虚线在解码期间没有被激活,判别器 D_I、D_P 仅在训练期间激活。CNN 的大小粗略地表明了它们的容量。SG 是停止梯度操作,Blur 是尺度空间模糊,Warp 是双三次扭曲, UFlow 是冻结光流模型。
研究者采用以下策略来获得高保真重建视频:
在 I-frame 中合成可信的细节; 尽可能清晰地传递这些可信细节; 对于出现在 P-frame 中的新内容,研究者希望能够合成可信细节。
论文中的公式是基于 HiFiC 的。使用条件 GAN,其中生成器和判别器都可以访问额外的标签:公式假设数据点 x 和标签 s 遵循联合分布 p(x, s)。生成器将样本 y ∼ p(y) 映射到分布 p(x|y),而判别器用来预测给定对 (x, s) 是否来自 p(x|s) 而不是来自生成器。
在设置中需要处理帧序列和重建。在 HiFiC 之后,研究者在潜在 y 上调节生成器和判别器,对于 I-frame,y = yI,对于 P-frame,y = y_t,r。为了简化问题,该研究的目标是对每帧分布进行匹配,即对于 T 长度的视频序列,目标是获得一个模型 s.t.:
通过随机移位展开时防止错误累积
正如文中所提到的,「低延迟」设置的循环性质在时域中的泛化具有挑战性,这可能会发生错误传播。理想情况下,只要研究评估的内容至少 T = 60 帧,就可以使用序列进行训练,但实际上由于内存限制,这在当前硬件上是不可行的。虽然我们最多可以将 T = 12 放入加速器中,但这样会使训练模型会变得非常慢。
为了加速原型设计和训练新模型,以及防止展开(unrolling)问题,该研究采用以下训练方案。
1) 仅在随机选择的帧上训练 E_I 、 G_I 、 D_I ,1 000000 step。
2) 冻结 E_I、G_I、D_I ,并从 E_I 、G_I 初始化 E_res、G_res 权重。使用分阶段展开( staged unrolling )训练 E_flow、G_flow、E_res、G_res、D_P 450000step,即使用 T = 2 直到 80k step,T = 3 直到 300step,T = 4 直到 350step,T = 6 直到 400k,T = 9 直到 450k。
该研究将其分为步骤 1) 和 2),因为经过训练的 E_I、 G_I 可以重新用于 P-frame 分支的许多变体,并且跨运行共享 E_I、 G_I 使其更具可比性。
使用比例控制器在训练期间控制速率:超参数 λ_R 用来控制比特率和其他损失项(例如 GAN 损失等)之间的权衡。
实验结果
数据集:训练数据包括大约 992000 个时间 - 空间裁剪视频集,每个视频集长度 T 为 12 帧,每帧画面大小为 256×256,从 YouTube 的公开视频中获取。这些视频的分辨率至少为 1080p,长宽比至少为 16:9,帧率至少为 30 fps。
模型和基准:基线称为「MSE-only」,并且该基准使用了与研究所用一样的架构和训练过程,但没有使用 GAN 损失。实验还与尺度空间流(Scale-Space Flow,SSF)进行了比较,这是最近的神经压缩方法,在 PSNR 方面与 HEVC 相当。最后,该研究与无学习的 HEVC 进行了比较。
研究者在图 1 中总结了评分者偏好,并在图 7 中展示了性能指标。该研究与三种比特率下的 HEVC 进行了比较,结果证明该研究所用方法与 HEVC 在 0.064 bpp 下具有可比性 (14vs12),在 0.13bpp 下效果更佳(18vs9),在 0.22bpp 下性能也不错(16vs9)。
为了评估 GAN 损失对视觉质量的影响,研究者在低速率 (≈ 0.064 bpp) 下将 GAN 损失与 MSE-only 和 SSF 进行了比较。如图 1 所示,在 MSE-only 下,在 30 次结果中只有 4 次结果较好,4 次平局,结果表明了 GAN 损失的重要性,并且 SSF 没有一次是首选、没有平局。研究者强调 MSE-only 仅在 PSNR 方面与 HEVC 相当(图 7),但在视觉质量方面明显更差。
研究发现,下列组件对性能的提升至关重要:不使用「free latent」会引起模糊的重建效果,这类似于 MSE-only 基线产生的效果,如图 3 顶部所示。研究发现,使用「free latent」而不使用条件判别器也会导致模糊的重建效果。当信息不传递给 UFlow 时,实验结果会得到前后不一致的流,当信息传递给 UFlow 时,但没有使用流损失正则化(即公式 6),实验结果也不理想。因此,删除任何一个组件都会损害时间一致性,参见图 3 底部。
总体来说,没有一个指标能够预测图 1 中的结果,但是 PIM 和 LPIPS 对一些比较进行了正确的排序。在神经图像压缩领域已经观察到了这种结果,其中最好的方法是由人类来排序的,因为目前还没有一种度量标准能够根据主观质量来准确地对这些方法进行排序。