A Practical Convolutional Neutral Network As Loop Filter for Intra Frame
以往的视频编码后处理的神经网络模型在实际应用中存在问题:一是:使用不同QP的编码帧使用不同的模型,硬件上贵。二是:在不同平台上的编解码端的CNN的浮点运算可能导致不连续性。三是:CNN模型有冗余,消耗资源。
所以作者提出的网络旨在单个,低冗余,并且适应不同质量的解码帧。所以,将重构和QP也作为网络的输入,经过训练后将模型压缩,以减少冗余。为了确保连续性,采用DFP(dynamic fixed points),模型中的参数先经过DFP量化再被输入到CNN中。CNN的最终输出也经过DFP操作。在全intra配置下,取代传统的滤波,在JEM7.0上的实验结果显示在三个分量上分别有3.14%,5.12%,6.28%的码率节省。
作者提出一个实用的卷积神经网络滤波CNNF(convolutional neural network filter)取代所有的传统滤波,如下图所示:
作者提出的模型包含三部分:a novel network,model compression和DFP-based inference of CNNF。CNNF采用全卷积残差学习结构。在压缩模型部分,包含两步:一,在损失函数中增加正则项来帮助压缩。二,将第一部分获得的模型微调进行低阶近似。
网络结构
CNNF输入包括重构和QP map。QP map通过下面公式生成
两个输入项都要归一化到01范围内。解码帧的像素都要后移位深-1。QP map都要除以最大的QP值。经过滤波后,对应要进行去正则化,来获得最终重构。
作者使用8层卷积,网络结构如下图所示:
模型压缩
为了加速,学习的模型在测试之前进行压缩。损失函数加上两项正则项。
W是要学习的参数,S是BN层的scale参数。L是卷积层个数。
Dynamic Fixed Point Inference
为了保证不同平台编解码端的连续性,采用DFP。
Bf是位宽,s是标志位,FL是分数长度,xi是尾数二进制bits。下表是每个卷积层的FL:
训练过程
训练数据从Visual genome(VG),DIV2K和ILSVRC2012中生成。每帧图像采用intra编码,QP值为22,27,32,37采用JEM7.0,关闭BF,DF,SAO和ALF滤波。解码端包含亮度和色度分量,分成35x35大小。每个QP大约600千亮度数据和300千色度数据。使用Caffe实现,参数随机初始化,批量大小为64,基本学习率设为0.1, , 和 设为1e-5,5e-5和3e-6。采用随机梯度下降,梯度裁剪,32周期后训练停止。
实验结果