基于学习的编码(二):使用CNN对intra frame进行环路滤波

196 阅读2分钟

基于学习的编码(二):使用CNN对intra frame进行环路滤波

本文算法来自JVET-O0157

介绍

为了取代VVC环路滤波中的去方块滤波(DBF)提出来一种下采样的CNN滤波器。该CNN滤波器在降低神经网络复杂度的同时能保持编码效率。它是一个轻量级CNN网络,能够高效的控制CNN滤波强度以应对不同量化参数。只用于intra frame

滤波过程

下图展示了针对intra frame加入CNN后的环路滤波过程,DBF被CNN替换了。对于inter frame环路滤波和VTM中一样。

 

网络结构

下图展示了该CNN的网络结构。其中N表示下采样步长,M表示卷积核通道数。核心思想是通过下采样减少计算量,通过控制强度使单个网络可以用于不同QP。

 

 

CNN过程:

  1. (N,N,M)卷积层(N倍下采样)用于提取特征。
  2. 将特征传给多个residual block来加强滤波。
  3. (3,3,NxN)卷积层输出NxN的特征图,DepthToSpace 函数将特征图映射为和输入图像尺寸一致。

滤波强度

网络中除以和乘以Qstep 的目的是控制滤波强度。

 

对不同Qstep 进行round操作会造成不同水平的失真。所以重建图像在传给CNN之前除以正则化的Qstep 来控制失真水平,CNN处理后乘以正则化的Qstep

正则化的Qstep求解过程如下:

 

训练

使用DIV2K数据集(含800幅图像)生成训练数据。首先将每幅图像由RGB转为YUV。然后禁用VTM5.0的环路滤波在All Intra(AI)配置下生成重建图像。然后在Y分量随机裁剪800000块,UV分量随机裁剪800000块,训练两组参数。

 

实验结果

下面是N=4,M=32下的测试结果:

 

下面是一个主观比较,可以看到脖子处的块效应被消除了。

 

该方法在VTM5.0中用预训练的CNN模型取代DBF,在AI配置下Y、U、V的BD-Rate分别-1.44%,-2.51%,-3.39%。解码时间为1040%。

感兴趣的请关注微信公众号Video Coding