JVET-T0079
本文提出了一种基于神经网络的环路内滤波器作为附加的环路内滤波器级,并将其放置在ALF滤波器之后。因此,将ALF的输出作为NN滤波器的输入。结果表明,RA下平均节约BD rate4.11%、13.83%和13.28%,AI下平均节约BD rate 3.63%、9.47%和9.98%。
网络结构
本文提出的NN滤波器如下图所示。它包含14层,包括12个隐藏层,每层96个通道。每个隐藏层由一个3x3卷积层和一个Leaky RELU组成。总共有大约100万个模型参数。
NN滤波的输入是一个128x128大小的亮度块和2个64x64的色度块。在滤波之前,使用JVET-M0159中提出的方法,对128x128的亮度块进行4次2x2的下采样操作,得到4个64x64的子块,每个子块和色度块尺寸相同。这4个亮度子块和2个色度块构成了一个6通道的CNN输入,如下图所示。
在滤波结束之后,数据尺寸仍为64x64x6。再将前4个通道组成亮度CTB,后两个通道分别形成两个色度CTB。
训练
训练中使用了DIV2K数据集。利用VTM-10.0对原始图像进行压缩(ALL INTRA配置),得到重建帧作为训练数据集。训练过程中使用的QP为20、25、30、35、40和45。在训练过程中,重建图像被分割成128x128的亮度和64x64个色度块。批大小设置为64。
每个模型训练400个epoch。网络培训过程的其他信息见表2。
Network Information in Training Stage | ||
Mandatory | HW environment: | CPU: Intel(R) Xeon(R) Gold 6138 CPU @ 2.00GHz, 754GB Memory GPU: NVIDIA Tesla V100-SXM2-32GB |
SW environment: | Ubuntu 18.04.4 LTS CUDA Version:10.1, Driver Version: 418.87.00 | |
Framework: | TensorFlow 2.2.0 | |
Epoch: | 400 | |
Batch size: | 1.9K * 64 | |
Training time: | 32h | |
Training data information: | DIV2K | |
Configurations for generating compressed training data (if different to VTM CTC): | QP values: 20, 25, 30, 35, 40, 45 | |
Optional | ||
Patch size | 128x128 | |
Learning rate: | 1e-3 | |
Optimizer: | Adam | |
Loss function: | L2 | |
Preprocessing: | Convert 128x128 YUV420 signal to 6 64x64 blocks. Normalize to 0~1 | |
Other information: | ||
inter frame的模型细化
本文还测试了使用BVI-DVC数据集训练的额外的模型。为了创建训练集,编码器对每个训练序列的前17帧进行压缩,并使用第上述的训练模型作为附加的环路滤波器。对于时间级别id等于4或5(最高两个时间级别)的编码帧,随机选择10个CTU作为训练样本。以DIV2K数据集上训练的模型为起点,训练100个epoch。其他训练配置设置与上述相同。
集成在VTM10.0中
提出的神经网络滤波器作为ALF后的在环滤波器被并入VTM-10.0,并带有CTU(开/关)标志。
在编码器端,对一组候选模型执行RD选择,并在picture头中选择模型的索引。本贡献报告了三种不同的候选集构造方法的仿真结果:
- 基于两个最接近的QP模型的RD选择:RD选择过程应用于基于两个最接近当前输入QP的QP训练的两个DIV2K模型,并且在picture header中发送1位标志以指示哪个NN模型应用于当前图片。
- 基于所有模型的RD选择:在DIV2K数据集上训练的所有6个模型(QP=20,25,30,35,40,45)始终用作候选集。一个3位索引值在picture header中发出信号,以指示哪个NN模型应用于当前图片。
- 包含帧间细化模型的RD选择:除DIV2K模型外,每帧使用基于BVI-DVC数据集训练的附加模型作为附加候选。索引值在picture header中发出信号。
Scaling of NN filter residues
当所提出的神经网络滤波器应用重建图像时,针对slice header中的每一个颜色分量发出一个比例因子信号。NN滤波器的输出(残差)在被添加到输入样本之前,由缩放因子缩放。
JVET-U0104
本提案所提出的NN滤波器如下图所示。隐藏层由滤波器块组成,每个滤波器块由两个1x1卷积组成,其中一个leaky ReLU作为它们之间的激活层,然后是一个3x3卷积层,其中M的值设置为大于K的值。NN滤波过程的输入是一个128x128大小的亮度块和2个64x64色度块。在用作滤波过程的输入之前,将亮度样本下采样成四个64x64大小的块。归一化的QP Step也用作NN滤波器的输入。
在~138K模型参数下,RA配置下的BD率分别为3.85%、8.75%和8.11%,AI配置下Y、Cb和Cr的BD率分别为3.45%、6.54%和6.84%。
在~270K模型参数下,RA配置下的BD率分别为4.53%、12.38%和12.25%,AI配置下Y、Cb和Cr的BD率分别为4.02%、9.00%和9.77%。
在~510K模型参数下,RA节省xx%、xx%和xx%的BD率,AI配置下Y、Cb和Cr分别节省。节省4.50%、10.40%、11.23%的BD率,
该方法的滤波过程与U0094相同。该神经网络滤波器在DBF后作为环路滤波器并入VTM-10.0中,并带有CTU级别的开关标志。同时,还应用了神经网络滤波器残差的缩放。在U0094的子测试1中,训练了4个模型,以涵盖不同的QP范围和图片类型,模型选择在picture级别进行。
JVET-U0115
如下图所示,此提案中使用的网络结构与U0094的子测试1相同,共包含14个卷积层,包括N=12个隐藏层,每个层中有96个通道。每个隐藏层由一个3x3卷积层和一个leaky RELU组成。每个模型中大约有一百万个模型参数。
与U0094相比,NN滤波过程的输入大小从128x128增加到144x144,以包括当前CTU每侧的8个相邻样本。在输入网络之前,将144x144的l亮度块下采样成四个72x72大小的块。而输出大小保持不变(64x64x6),对应4个亮度块和2个色度块。
此外,由VVC的DBF模块生成的边界强度信息用作网络的附加输入channel。
Random access Main10 | ||||||
BD-rate Over VTM-10.0 | ||||||
Y-PSNR | U-PSNR | V-PSNR | EncT | DecT | bit DIFF | |
Class A1 | -7.10% | -8.89% | -13.28% | 145% | 13252% | 0% |
Class A2 | -7.46% | -15.28% | -13.78% | 140% | 11771% | 1% |
Class B | -6.63% | -14.69% | -15.24% | 145% | 14161% | 0% |
Class C | -6.88% | -15.73% | -16.80% | 130% | 12292% | 0% |
Class E | ||||||
Overall | -6.95% | -13.92% | -14.97% | 140% | 12969% | 0% |
Class D | -7.97% | -17.08% | -18.64% | 131% | 13743% | 1% |
Class F | -3.48% | -10.73% | -10.16% | 170% | 16351% | 0% |
Class H | -6.47% | -9.98% | -13.24% | 180% | 16645% | 0% |
All Intra Main10 | ||||||
BD-rate Over VTM-10.0 | ||||||
Y-PSNR | U-PSNR | V-PSNR | EncT | DecT | bit DIFF | |
Class A1 | -5.78% | -9.14% | -12.10% | 154% | 9600% | 0% |
Class A2 | -5.65% | -12.03% | -10.75% | 136% | 8291% | 0% |
Class B | -5.58% | -11.60% | -13.58% | 125% | 7038% | 0% |
Class C | -6.05% | -13.31% | -15.69% | 118% | 5970% | 0% |
Class E | -7.95% | -12.99% | -14.39% | 133% | 8634% | 0% |
Overall | -6.13% | -11.87% | -13.46% | 131% | 7507% | 0% |
Class D | -6.27% | -12.75% | -16.56% | 117% | 6718% | 0% |
Class F | -4.26% | -10.40% | -10.56% | 114% | 6859% | 0% |
Class H | -6.32% | -8.99% | -10.41% | 138% | 7044% | 0% |
JVET-V0114
使用U0115提出的网络结构,如下图所示。NN滤波过程的输入大小为144x144的YUV420块,包括当前CTU(128x128)和当前CTU每侧的8个相邻样本。在用作滤波过程的输入之前,将luma样本下采样成四个72x72大小的块。输出张量对应于滤波后的CTU(64x64x6),包括4个亮度块和2个色度块。另外,QP和边界强度(BS)信息被用作网络的附加输入平面。像素值被归一化到[0,1]之间。
集成到VTM11.0中,对于每一帧,从4个候选模型中选择一个模型;支持slice/CTU级别的开/关;去块滤波模块用于生成边界强度信息,但不进行滤波。
JVET-V0115
本文测试的NN滤波器是JVET-U0104[1]和JVET-U0115[2]中提出的滤波器的组合,网络结构如图1所示。它包含14个filter blocks,包括12个用作隐藏层的filter blocks。每个filter blocks由两个1x1卷积层组成,它们之间有一个Leaky ReLU作为激活层,然后是一个3x3卷积层,其中M的值被设置为大于K的值。
NN滤波过程的输入大小为144x144,包括当前CTU和当前CTU每侧的8个相邻样本。在用作滤波过程的输入之前,将l亮度块下采样成四个72x72大小的块。输出张量对应于滤波后的CTU样本(64x64x6),包括4个亮度块和2个色度块。
另外,QP和边界强度(BS)信息被用作网络的附加输入平面。
当对重建图应用提出的NN滤波器时时,为图片header中的每个颜色分量发送缩放因子信号。输入样本和NN滤波样本(残差)之间的差异被添加到输入样本之前由缩放因子缩放。
JVET-W0131
网络结构如下图所示,总共包含13个filter blocks,其中11个filter blocks作为hidden layer。对于hidden layer中的filter blocks,其包含一个1x1卷积+leaky relu+1x1卷积+3x3卷积,其中M的值设置为大于K的值。
网络的输入为一个 CTU 和 CTU 每一侧的 8 个相邻像素。在输入滤波器之前,亮度块被下采样为四个 72x72 大小的块。 输出张量对应于滤波后的 CTU (64x64x6),包括 4 个亮度块和 2 个色度块,并且将Qp信息和边界强度信息作为额外的输入通道。像素值归一化为[0.0,1.0]
CNN滤波器放在SAO之前,同时禁用Deblock。
训练
集成到VTM
集成到VTM-11.0 + GOP-based MCTF;对于每张图片,从4个候选中选择一个模型;支持Slice/CTU水平开关;在picture header为每个颜色分量发信号通知缩放因子
本提案比较了不同M/K参数的影响