JVET EE1 基于神经网络的视频编码(NNVC)中的环路滤波工具

MPEG/VCEG/JVET下的基于神经网络的视频编码(Neural Network-based Video Compression)探索标准从21年开始设定为探索实验EE1,由AHG11进行维护。

考虑到中文现存的参考模型总结资料较少,本文将对NNVC工作项进行简单总结、性能数据存档,作演进前瞻与相关讨论。

本文以介绍NNVC环路滤波(in-loop filter)工具为主。

#TODO:后续介绍其他NN工具。

SoftWare

一般建议开展的EE1测试的算法复杂度应低于现有NNVC工具(kMAC/pxl需要必须低于;参数量Number of Parameters建议低于,即运算复杂度kMAC/pxl是更受关注和控制的指标)。

现存工具选项

NNVC开启的工具选项可以通过命令行option指定生效。参数如下表所示。

VariantCommand-lineModel nameCommentReference
NN intra–NnIntraPred=1–PrefixAbsolutePathsToGraphsOutput= models/intraUsed for NNVC anchorJVET-AC0116
NN intra low complexity–NnIntraPred=1–PrefixAbsolutePathsToGraphsOutput= models/intra2Half complexity in worst caseJVET-AF0139
LOP2–NnlfOption=1–NnlfModelName= nnlf_lop2_model_int16.sadlAnchor ILF method for JVET-AF, AG, AH meetingsJVET-AF0043
LOP2 b–NnlfOption=1–NnlfModelName= nnlf_lop2_AH0042 _model_int16.sadlImproved training for LOP2JVET-AH0042
LOP3–NnlfOption=3–NnlfModelName= nnlf_lop3_model_int16.sadlNNVC anchor since JVET-AIJVET-AH0080
LOP3 AH0081–NnlfOption=3–NnlfModelName= nnlf_lop3_AH0081_model_int16.sadlLOP3 with 3 stages trainingJVET-AH0081
VLOP–NnlfOption=1–NnlfModelName= nnlf_vlop_model_int16.sadlJVET-AH0051
HOP1–NnlfOption=1–NnlfModelName= nnlf_hop_model_int16.sadlJVET-AF0041
HOP3–NnlfOption=1–NnlfModelName= nnlf_hop3_model_int16.sadlJVET-AG0174
HOP4–NnlfOption=4–NnlfModelName= nnlf_hop4_model_int16.sadlJVET-AH0205 & JVET-AH0189
LOP2 adaptive–NnlfOption=1Encoder and decoder:–NnlfModelName= nnlf_lop2_model_int16.sadlEncoder only (split RA):–NnfuEnabled=1–NumNnfus=1–NnfuPayloadFileName0= /path/to/nnr/bitstream–NnfuModelFileName0= /path/to/sequence/qp/segment/modelDecoder only:–NnfuOutputFileStem= </path/to/file/stem>JVET-AH0096
NNSR-c nn-based/nnsr/nnsr_classAx_sx.cfg–NnsrModelName=super_resolution/NNVC_SR_int16.sadlDifferent options for A1 and A2
RPR-c nn-based/nnsr/nnsr_classAx_sx.cfg–NnsrModelName=default_rprDifferent options for A1 and A2
NNPF–SEINNPFCEnabled=1–SEINNPFAEnabled=1–LCModelPath= models/NnlfSetLC/LC_int16_model0.sadl, models/NnlfSetLC/LC_int16_model1.sadl, models/NnlfSetLC/LC_int16_model2.sadl, models/NnlfSetLC/LC_int16_model3.sadl–NnpfModelPath=/path/to/sequence/qp/segment/modelCheck cfg/nn-based/nnpf/ for full paramsJVET-AC0055

废弃的旧工具:

VariantCommand-lineModel name
LOP1–NnlfOption=12
Filterset0–NnlfOption=10–NnlfModelName=NnlfSet0_model_int16.sadl
Filterset1–NnlfOption=11–NnlfModelName=NnlfSet1_ChromaCNNFilter_InterSlice_int16.sadlNnlfSet1_ChromaCNNFilter_IntraSlice_int16.sadlNnlfSet1_LumaCNNFilter_InterSlice_int16.sadlNnlfSet1_LumaCNNFilter_IntraSlice_int16.sadl

遵循CTC,现有NNVC-9.1参考模型默认开启NNLF- LOP3NNLF-Intra.

算法原理与性能

1. 低复杂度运算点LOP

架构简介

环路滤波器的输入是重建的亮度和色度样本(Rec)、预测的亮度和色度样本(Pred)、亮度和色度的边界强度信息(BS)、基质QP(QPbase)、切片QP(QPslice)和块预测信息(IPB)。
在这里插入图片描述

  • 亮度输入被转换,即大小为 WxH 的输入亮度通过每个 2x2 子块的 2x2 DCT-II 变换进行转换,并重塑为 (W/2)x(H/2)x4,其中 4 代表四个频率通道。然后,将转换后的亮度样本与色度 U 和 V 通道连接,形成 (W/2)x(H/2)x6 的大小。
  • 对于色度重建样本,由于上采样为 2,因此每个 2x2 子块都是常数,无需应用变换。

下图展示了尺寸为 144x144 的重建样本示例。大小为 144x144x1 的输入亮度被转换并重塑为 72x72x4。
在这里插入图片描述

  • 对于 Rec、Pred 和 BS,应用的转换将应用于亮度。对于 QPbase 和 QPslice,由于它们是常数,因此无需应用变换,直接将其重塑为 (W/2)x(H/2)x1。对于IPB,由于只有亮度信息,因此将其转换并重塑为(W/2)x(H/2)x4
  • 转换后的输入由核大小为 3x3 或 1x1 的卷积层处理,并连接起来进行融合和过渡。在融合和过渡模块中,使用了 1x3 和 3x1 的可分离卷积以及因子为 2 的下采样。然后,网络分裂为两个分支,一个分支用于亮度,一个分支用于色度。每个分支由顺序的主干块组成,每个主干块由一个 PReLU、一个具有 1x1 内核的卷积层、一个具有 1x3 和 3x1 内核的可分离卷积层以及一个具有 1x1 内核的卷积层组成。
  • 在输出侧,PixelShuffle 应用于亮度输出,反向 DCT 应用于亮度和色度,使输出恢复到与输入相同的空间大小。

性能

复杂度表现
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2. 极低复杂度运算点(VLOP)

复杂度打到5kMAC/pixel,VLOP 被定义为对 LOP2 架构的修改,通过在transition阶段引入可分离卷积并更改网络配置(例如通道和层数)以实现目标复杂度水平。
在这里插入图片描述

VLOP 模型按照改进的 LOP2 训练程序、使用 Stage 3 LOP2 数据集进行训练。

性能

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 高工作点 (HOP) 模型

架构简介

目标复杂度为470kMAC/pixel。(HOP1-HOP4基本都在这个数量级)

在HOP4中,由重建的 YUV 样本(UV 数据在空间上上采样到 Y 分辨率)和补充数据组成的输入数据:预测信息、deblocking 参数 (BS)、量化(QPBase、QPSlice)和编码模式信息,由 HeadBlock (HB) 并行处理并连接。HB 的输出由融合和过渡块 (FTB) 处理,该模块实现数据融合和空间下采样。FTB的输出由Backbone处理,该处理由一系列Backbone Blocks(BB)组成。滤波通过 Tailblock 和亮度/色度分离完成。

HOP几代模型基本是逐项演进而来:从AD0380的统一滤波器架构开始,AF041中演进为HOP1;AF0155、AF0180演进为HOP2;AG0174演进为HOP3;AH0205、AH0189演进为HOP4结构。

HOP4对HOP3的修改,主要是引入了 Attention 机制。主干由 24 个主干块 (BB) 组成,其中两个块(id=8 和 id=15)通过注意力 (BB+A) 增强。受注意力机制引入影响的模块在图中以红色显示。
在这里插入图片描述

性能

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

参考资料存档

  • HOP设计和训练选择:JVET-AD0380
  • 训练过程:AE0042
  • 训练结果:AE0191
  • 训练程序与结果:AE0289
  • Stage II 模型:AE0291
  • HOP 完整结果:AF0041

#TODO:NNVC架构中有一些小细节都是比较巧妙的设计,例如编解码侧复杂度优化、DBF blending、QP调整等。后续或可单进行介绍分析。

4. loop filter Set 0

已经不维护的旧架构。
在这里插入图片描述

除了重建图像(rec_yuv),其他的side information也被输入到网络中,例如预测图像(pred_yuv)、切片 QP、基础 QP 和切片类型。

  • 复杂度:485kMax/pxl (frame-level input), 615kMax/pxl (block-level input)
  • 参数量:3.8MB (int model)

5. Loop filter Set 1

Set 1 中有两个常规网络,一个用于亮度,另一个用于色度。

  • 亮度网络的输入包括重建的亮度样本(rec)、预测亮度样本(pred)、边界强度(bs)、QP和块类型(IPB)
    在这里插入图片描述

  • 对于色度ILF,亮度信息被用作色度环内滤波的附加输入。考虑到 luma 的分辨率高于 YUV 4:2:0 格式的色度,首先从 luma 和 chroma 中分离提取特征。然后,对亮度特征进行下采样,并与色度特征连接。色度网络的输入包括重建的亮度样本 (recY)、重建的色度样本 (recUV)、预测的色度样本 (predUV)、边界强度 (bsUV) 和 QP.

luma和chroma所用骨干网络都是相同的。

  • 复杂度:532kMax/pxl (frame-level input), 673kMax/pxl (block-level input)
  • 参数量:3.1MB (int model, luma & chroma)

组合测试结果

AI0023报告了现有参考模型NNVC-9.1各个基本工具的性能。可见各工具处于一定的tradeoff边界限上。
在这里插入图片描述
在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值