基于学习的编码(五):MCNN

基于学习的编码(五):MCNN

本文介绍的算法来自JVET-P0489,是对基于学习的编码(三):ACNNLF的改进。ACNNLF是在线(online)训练,而MCNN是离线(offline)训练。

网络结构

MCNN(Multiple CNN)是离线(offline)训练,可以使用更深的网络结构。

 

上图是亮度分量的网络结构,可以看出该网络很深,有9个卷积层。

  • Inception layer都是3x3和5x5的32通道卷积。

  • Convolutional layer都是3x3的64通道卷积,且带ReLU。

  • 最后一个Convolutional layer是3x3的64通道卷积,且不带ReLU。

其packing和unpacking操作和基于学习的编码(一):使用CNN进行环路滤波一样。输入输出以CTU为单位(亮度为128x128,色度为64x64)。

 

上图是色度分量的网络结构,和亮度分量一样,只不过输出变为2通道。

实现模式

在VTM6.0中有两种实现MCNN的模式,一种是将其作为环路滤波的一个阶段,另一种是作为后处理。

作为环路滤波的一个阶段的流程图如下:

 

作为后处理,MCNN作用于环外,如下图。

 

对于亮度和色度块需要在SEI中传输2比特表示当前块的状态:

  • 0:当前块不使用CNN。

  • 1:当前块使用第一个CNN。

  • 2:当前块使用第二个CNN。

  • 3:当前块使用第三个CNN。

训练

使用DIV2K (800 images)数据集训练,使用VTM6.0在QP为{22,27,32,37}下生成重建图像。

 

MCNN(以N=3为例)训练过程如上图,和基于学习的编码(三):ACNNLF训练过程类似。

MCNN还有简化的训练过程如下图。

 

  • 首先训练一个CNN,可以从训练集中随机选择部分图像参与训练以加快训练速度。

  • 然后在整个训练集上应用上面训练好的CNN,根据PSNR排序将训练集N等分。

  • 在每个子集上训练CNN。

简化的训练过程训练N(默认N=3)个CNNs速度更快,但会有一定损失。

实验

 

上面是将MCNN作为环路滤波的一个阶段的实验结果。

 

上面是将MCNN作为后处理的实验结果。

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

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值