ICME2021:基于机器学习的VVC帧内编码码率控制
Posted Dillon2015
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ICME2021:基于机器学习的VVC帧内编码码率控制相关的知识,希望对你有一定的参考价值。
本文来自ICME论文《MACHINE LEARNING-BASED RATE DISTORTION MODELING FOR VVC/H.266INTRA-FRAME 》
文章提出利用4种传统机器学习模型构建VVC帧内编码帧的RD模型。
RD模型
Fig.1是整个算法的流程。首先,从输入序列提取特征。然后,利用模型调整帧内编码帧的RDO。重复以上过程直到整个序列编码完。
RDO可以描述为在给定码率下使得失真最小,如下式,
在构建RD模型时除了要考虑码率,还需要考虑视频内容。本文提出了基于机器学习的RD模型,如下式,
式中Do是最优的失真,P(.)是基于学习的RD模型,F是和视频内容相关的特征向量。
Fig.2是RD模型的优化过程。
特征选择
文章使用多尺度各向异性方向导数(multi-scale anisotropic directional derivative,ADD)滤波器来提取帧内编码帧的特征。ADD可以提取边缘和角点处的各向异性强度变化特征。
帧内编码帧I在角度θ 上的ADD特征为:
其中⊗ 表示卷积操作。I(i,j)表示亮度通道在(i,j)处的像素值。psi(θ)是ADD滤波器。
文章提取了4个ADD特征:
(1)F_mean:为了描述I的强度,在水平和垂直方向上计算F_ADD的均值:
(2)F_max:F_max是两个方向的F_ADD最大值,F_max越大表示该帧水平或垂直方向性更强:
(3)F_min:F_min是两个方向的F_ADD最小值,F_min越小表示该帧水平或垂直方向越平坦:
(4)F_var:F_var(θ)反映I在方向θ的平坦性,F_var反映I的整体平坦性:
为了展示以上特征和码率的关系,Fig.3画出了实际编码比特数和ADD特征的关系,使用的序列为“Campfire”,QP=27。
可以看见ADD特征和码率有很强的相关性。最终视频内容特征F定义如下:
机器学习实现
使用4个传统的机器学习算法来训练P(R_t,F)模型。SVR(Support Vector Regression)、RFR(Random Forest Regression )、GPR(Gaussian Process Regression)、ANN(Artificial Neural Networks),训练预测模型P(.),特征为(R_t,F),label为D_o。
数据集:训练数据包括41条序列,每条序列的最后20帧用于训练模型。测试序列是VVC标准的26个序列的前20帧。
训练:整个训练过程如Fig.1所示。每条序列使用4个QP(22、27、32、37)编码以获得RD cost作为label。使用4种机器学习方法训练P(R_t,F)预测模型。
为了获取VVC中最优的label D_o,采用多QP优化。设置4个初始QP_initial,然后搜索它周围的13个QP(QP_initial-6到QP_initial+6),为每个CTU选择最优的QP以使RD cost最小,称为optimal R-D model 。
起始I帧的码率控制
起始I帧(IDR帧)无法利用之前的码率控制信息,给定目标码率R_t,使用拉格朗日乘子模型,
实验中SVR模型使用RBF作为核函数,参数gamma=8,C=4,epsilon=0.0078。RFR模型有80棵树,最大深度16。GPR模型超参数为(0.1,10)。ANN模型层结构为5x15x30x1。
实验结果
实验平台为VTM7.0,测试序列为VVC的26条序列,使用All-intra配置,编码器参数T emporalSubsampling 设为1。每天序列设置的码率由4个固定QP(22,27,32,37)编码结果获得。为了确保当前的帧内编码帧不能获取之前的帧的参考信息,编码过程中模型参数和每帧的目标比特数不更新。
RD效果
Fig.4展示了4条序列的结果。可以看见本文算法效果与optimal R-D model相近,优于VTM7.0。但是多QP优化复杂度高很难实际应用,所以本文算法在计算复杂度和编码效果上达到更好的平衡。
表1是初始I帧码率控制的结果。
Fig.5是两条序列的码率波动情况,可以看见基于学习的方法的码率更接近目标码率。
Fig.6是亮度分量的PSNR变化,可以看见GPR和ANN的PSNR更稳定。Fig.7是主观效果,4种机器学习模型要优于VTM7.0。
感兴趣的请关注微信公众号Video Coding
以上是关于ICME2021:基于机器学习的VVC帧内编码码率控制的主要内容,如果未能解决你的问题,请参考以下文章