基于NN的编码:Convolutional Neural Networks-based In-Loop Filter(Bytedance)

JVET-T0088

本文提出的CNN滤波网络的结构如下左图所示。为了增加感受野并降低复杂度,该方法在开始时包含一个步长为2的卷积层。通过该层后,Feature Map的空间分辨率在水平和垂直方向上都降低到输入大小的一半。再将该降低分辨率的Feature Map经过几个顺序堆叠的残差块(如下图右所示)。最后一个卷积层将最后一个残差块的Feature Map作为输入,生成4个N×N的Feature Map,最后采用Shuffle层生成空间分辨率与输入相同的图像,即2N×2N大小。

网络的细节如下:

  1. 所有卷积层均采用3x3尺寸。对于内部卷积层,特征映射的数量设置为128。对于激活函数,使用PReLU。
  2. 分别对I帧和B帧使用不同组模型进行训练。
  3. 当训练针对I帧的CNN滤波器时,预测和分区信息也会输入到网络中;当训练针对B帧的CNN滤波器时,预测也会输入到网络中。
  4. 所提出的基于CNN的环内滤波器专门用于时间标识符(即TemporalId)等于0的I slice和B slice,
  5. 该CNN环路滤波器用来取代VTM中的DBF、SAO和ALF等滤波技术(即使用该CNN滤波器时VTM中的DBF、SAO等技术被关闭)。

 训练

训练数据集

  • DIV2K数据集用于训练I帧的CNN滤波器
  • BVI-DVC数据集用于训练B帧的CNN滤波器

实验结果

JVET-U0068

本提案中使用的网络结构和T0088中的网络结构相同,本文在T0088中的网络基础上,提出了一种基于CNN的自适应模型选择(CNN-based in-loop Filter with Adaptive Model Selection,FAMS)环路滤波器方法。主要内容如下:

  1. 在所提出的技术中,每个slice或CTU可以决定是否应用基于CNN的滤波器
  2. 当基于CNN的滤波器被确定应用于slice/CTU时,可以从包括三个候选模型列表中进一步确定使用哪个模型。具体的,使用Qp为{17,22,27,32,37,42}训练单个模型。给定用于编码slice/CTU的测试QP,表示为q,候选模型列表包括{q,q-5,q-10}的QP训练的模型。选择过程基于编码器端的率失真代价,并且如果需要,在比特流中用传递开/关控制的指示以及模型索引。
  3. 所提出的基于CNN的滤波器适用于所有时间层。最后,去块滤波和SAO被禁用,而ALF(和CCALF)被放置在所提出的基于CNN的滤波之后。

训练

实验结果

JVET-V0100

在JVET-U0068的基础上引入了一些新特性;

网络结构

  • U0068
    • 第一层的Stride=2,所有层的卷积核为3x3
    • PRelu作为激活函数
    • 分别为I Slice和B Slice训练不同组的模型:对于I Slices,将预测信息和分区信息输入到网络中;对于B Slices,将预测信息输入到网络中
  • 新特性:
    • 残差块由16变为32
    • 特征通道数由128变成96

模式选择

  • U0068
    • Slice层或者CTU层模式选择
    • 模式列表为{q, q-5, q-10}
  • 新特性

    • 用于滤波器确定和模型选择的自适应粒度:对于更高的分辨率和更大的QP,请使用更粗的粒度

    • 自适应候选列表:对于低时间层,使用intra slice NN滤波器作为第三个候选(if Pintra >= threshold);对于高时间层,候选列表变为{q, q-5, q+5}

    • 对于全帧内配置,模型选择被禁用,而开/关控制仍然保留

去块滤波器和SAO被禁用,而ALF(和CC-ALF)被放置在基于CNN的滤波器之后;训练不同的CNN模型以适应不同的QP和不同的slice

JVET-V0101

网络结构和U0068中相同,增加了Qp信息输入到网络中:

  1. QP被平铺成一个二维数组,其大小与要滤波的块的大小相同,然后被视为一个额外的输入平面。
  2. QP被输入到全连接层中,以扩展成一维向量,其元素将作为通道方向的缩放因子来重新校准特征图。

参数选择

 在所提出的技术中,每个Slice或块可以决定是否应用CNN滤波器。当CNN滤波器被确定应用于slice/块时,可以进一步确定来自具有三个可能的辅助参数的候选集的哪个辅助参数。给定用于编码序列的测试QP,表示为q,候选集包括三个辅助参数。对于较低时间层和较高时间层,候选集被预定义为{q,q-5,q-10}和{q,q-5,q+5}。选择过程基于编码器侧的率失真代价。如果需要,在位流中用信号表示开/关控制以及辅助参数索引。有关参数选择的其他详细信息如下所示。

  1. 滤波器确定和辅助参数选择的粒度取决于图像分辨率和QP。在所提出的方案中,给定更高的分辨率和更大的QP,将对更大的区域执行确定和选择。
  2. Intra Slice NN滤波器可用于Inter-Slice。对于低时间层,如果intra-slice编码像素的比率不小于阈值,则用intra slice NN滤波器模型替换inter slice NN候选列表中的第三个滤波器。
  3. 对于All Intra配置,参数选择被禁用,而开/关控制仍然保留。

训练参数及网络信息

实验结果

JVET-W0100

该提案所使用的的网络结构和V0100类似,在V0100基础上,引入了注意力机制,并为了处理不同类型的内容,针对不同类型的Slice和质量级别对各个网络进行了训练。 

网络结构

所提出的滤波器的结构如下图所示。除了注意力之外,其他部分与 JVET-V0100 中的相同。 注意模块中的计算过程可以写成

F_out = F_in × f (Rec, Pred) + F_in

其中 F_in 和 F_out 分别表示注意力模块的输入和输出。 Rec 和 Pred 分别代表重建和预测。 f 包含 2 个卷积层,其中在第一个卷积层之后使用激活函数。 f 的目标是从外部信息生成空间注意力图,然后重新校准特征图 F_in。

M 表示特征图的数量

 

 模式选择

在本提案中,每个Slice或block都可以决定是否应用CNN 过滤器。当slice/block决定使用 CNN 滤波器,可以进一步决定使用来自包括三个模型的候选模型列表中的哪个模型。为此,单个模型在  QP{17, 22, 27, 32, 37, 42} 下进行训练。给定一个序列的测试 QP,表示为 q,候选模型列表包括 {q, q-5, q-10},通过编码端的率失真选择最优模型。如果需要,在比特流中用信号通知开/关控制以及模型索引的指示。其他有关模型选择的详细信息如下。

  1. 滤波器的决定和模型选择的粒度取决于分辨率和QP。在所提出的方案中,给定更高的分辨率和更大的QP,将在更大的区域内进行确定和选择。
  2. 不同时间层的候选模型列表不同。对于低时间层,如果帧内编码像素的比例不小于阈值,则将第三个候选替换为intra-slice NN 滤波器模型。对于高时间层,第三个候选,即对应于 q-10 的模型被替换为对应于 q+5 的模型。
  3. 对于全帧内配置,禁用模型选择,而开/关控制仍然保留。

 训练

 推断

 禁用Deblock和SAO,在CNN滤波器后使用ALF滤波。

训练不同的CNN模型以适应不同的QP和不同的Slice

 性能

Anchor:VTM-11.0 + new MCTF

 下两表提供了所提出方法的简化版本 1 的编码效率,其中对于inter-slice模型,残差块的数量减少到 8 个。

 

 

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值