作者
:Hao Chen, Bo He 等

来源
:NeurIPS 2021

论文题目
:Nerv: Neural representations for videos

项目链接
:https://github.com/haochen-rye/NeRV.git

论文链接
:https://arxiv.org/abs/2110.13903

内容整理
:朱辰
目录
  • 引言
  • 算法介绍
    • NeRV 架构
    • 模型压缩
  • 实验及分析
  • 局限性

引言

文章提出了一种新颖的视频表达方式(NeRV),它将视频压缩在神经网络中。NeRV 将视频表示为以帧索引为输入的神经网络。给定一个帧索引,NeRV 输出相应的 RGB 图像。NeRV 的视频编码只需将神经网络与视频帧进行拟合,解码过程是简单的前馈运算。有了这种隐式表达,可以将视频视为神经网络,并简化一些与视频相关的任务。例如,传统的视频压缩方法需要一个模块多且复杂的工作流,而基于 NeRV 可以使用网络模型作为视频压缩的代理,并实现与传统视频压缩方法(H.264、HEVC 等)类似的编码性能。
图1

算法介绍

首先介绍 NeRV 的表达方式,包括时间戳嵌入(位置编码)、网络结构和损失函数。然后介绍 NeRV 用于视频编码的模型压缩技术。

NeRV 架构

NeRV 中的视频 由函数 : 表示。其中,输入是帧索引 ,输出是相应的RGB图像 。编码函数由神经网络 参数化得到,。
时间戳嵌入(位置编码)
直接用输入时间戳 训练网络 会导致较差的结果,通过将输入映射到高嵌入空间,网络可以更好地用高频变化来拟合数据。NeRV 中使用位置编码作为嵌入函数:
其中 和 是网络超参数。给定一个输入时间戳 ,嵌入函数 会将其标准化至区间 (0,1],输出结果反馈给后续的神经网络。
网络结构
NeRV 的网络结构图 1(b) 所示,输入时间戳,输出对应的 RGB 帧。利用多层感知机(MLP)直接输出帧的所有像素值会导致巨大的网络参数量,特别是当图像分辨率较大时。对此,在 MLP 层之后堆叠了多个 NeRV block,以便不同位置的像素可以共享卷积核,形成一个高效的网络。设计的 NeRV block 如图 1(c) 所示,包含卷积层、PixelShuffle(上采样层)、激活层。
损失函数
网络优化的损失函数联合了 和 损失,它计算了 ground-truth 和预测图像在所有像素位置的损失:
其中, 为帧数, 为 NeRV 的预测, 为 ground-truth, 是用于平衡损失的权重。

模型压缩

图2
NeRV 的模型压缩包含四个步骤:视频过拟合、模型剪枝、模型量化和权重编码。
模型剪枝
给定一个已经拟合了视频的神经网络,首先使用全局非结构化剪枝以减小模型尺寸。根据权重的幅值,将阈值以下的权重设置为零:
其中, 是权重阈值。作为一种常规做法,在剪枝操作之后,对模型进行微调重新获得 NeRV 的视频表达。
模型量化
模型剪枝后,对所有网络参数进行量化。该步骤在网络训练结束后进行。给定一个参数张量 :
其中,“round” 是将数值四舍五入后的整数,“bit” 是量化的比特长度, 和 是 的最大值和最小值,“scale” 是比例因子。通过上述公式,网络的每个参数可以映射到一个 “bit” 长度的数值。存储 “scale” 和 的开销可以忽略。
权重编码(熵编码)
在模型量化后,NeRV 采用霍夫曼编码进一步压缩模型参数。由于霍夫曼编码是无损的,它可以保证在不影响重建质量的情况下实现良好的压缩。根据经验,熵编码可以进一步减少大约 10% 的模型尺寸。

实验及分析

为了与最新的视频压缩方法进行比较,文章使用 scikit-video 中的 “Big Buck Bunny” 序列 (132 帧,1280x720 分辨率)和 UVG 数据集进行实验,UVG 共有 7 个视频,3900 帧,分辨率为 1920×1080。NeRV 中包含 5 个 NeRV block,对于 1080p(720p) 视频,NeRV block 的上采样因子分别为5、3(2)、2、2、2。此外,通过改变 MLP 的隐藏维数和 NeRV block 的通道数,可以建立不同尺寸的 NeRV 模型。实验使用两个客观指标:PSNR 和 MS-SSIM 来评估视频质量。BPP(Bits-per-pixel)用于表示压缩后的码率。
图3
首先在 “Big Buck Bunny” 序列上进行了消融实验。上图左子图显示了不同剪枝率(稀疏度)下的结果,稀疏度为 40% 的模型仍可以达到与完整模型相当的性能。模型量化的实验中发现,8bit 模型相对于 32bit 的原始模型仍保持了视频质量。上图右子图显示了 NeRV 的完整压缩流程。不同尺寸的 NeRV 模型是鲁棒的,每个压缩步骤对最终结果都有一致的贡献。
图4
然后在 UVG 数据集上与先进的编码方案进行比较。7 个视频在时间维度上拼接成一个视频后进行训练,测试中发现,这比为每个视频训练独立的模型更有效。上图给出了率失真曲线,包含与编码标准 H.264(x264)、HEVC(x265)( 预置模式)的比较。作为第一个图像级的神经表示方法,与传统压缩方案和其他基于学习的压缩方法相比,NeRV可以达到相当的性能。特别地,当BPP较小时,NeRV的性能可以与最先进的方法相媲美。下图给出了解码帧的可视化效果。此外,随着训练周期的增加,解码视频质量也可以继续提高。
图5
解码时间: NeRV 与其他方法比较了在相似内存预算下的解码时间。注意 H.264 是在 CPU 上运行的,而其他所有基于学习的方法都在单个 GPU 上运行,包括 NeRV。结果如下图所示,由于简单的解码过程,NeRV 在解码时间方面展现了优势,具有与传统方案 H.264 可比的解码速度。
图6

局限性

提出的 NeRV 也有一些局限性。首先,由于模型是在线训练的,NeRV 的编码时间即模型训练时间比传统视频压缩方法的编码时间长。第二,神经网络的结构和压缩方式尚未达到最优,可以在这些方向上有更多的探索。
继续阅读
阅读原文