0
点赞
收藏
分享

微信扫一扫

VVC码率控制改进


  本文来自提案JVET-Y0105 《An improved VVC rate control scheme》,提案对VVC的码率控制做了一些改进,主要包括三部分,第一,CTU级的skip和非skip块码率分配。第二,基于GOP size和IntraPeriod设置滑动窗口。第三,将​​QDF​​扩展到低帧率情况。

简介

CTU级码率分配

当前的CTU级码率分配方式中,每个CTU的初始权重由帧级lambda和内容相关的因子alpha和beta决定,

  

VVC码率控制改进_RC

  

VVC码率控制改进_RC_02

默认的RD模型无法精准描述skip块的特征,因此提案对skip和非skip块单独处理,首先,skip CTU的码率计算如下,

  

VVC码率控制改进_码率控制_03

其中scale是经验因子,设为0.4,P_skip是skip CTU的像素数量。则非skip CTU的码率分配问题就变为以下约束优化问题,

  

VVC码率控制改进_码率控制_04

转换为非约束优化问题,

VVC码率控制改进_RC_05

 其中

VVC码率控制改进_码率_06

可以使用牛顿法求  参数以使non-skip CTU分配的码率最优,  

VVC码率控制改进_码率控制_07

  

VVC码率控制改进_滑动窗口_08

牛顿法最大迭代次数设为20,可以根据下面条件提前终止,

  

VVC码率控制改进_滑动窗口_09

滑动窗口设置 

在GOP级码率分配中,滑动窗口SW用于使码率变化更平滑。SW会影响GOP级和帧级码率,

  

VVC码率控制改进_RC_10

  

VVC码率控制改进_滑动窗口_11

由于intra帧的影响, 

VVC码率控制改进_码率控制_12

 经常会算出负数导致GOP级码率被截断为200比特。在HM中当SW设为40时,LD和RA配置的GOP size分别为4和8。在VTM中,LD和RA配置的GOP size分别为32和8,固定SW不适合当前配置和将来扩展,因为提案根据GOP size和IntraPeriod(IP)计算SW,  

VVC码率控制改进_滑动窗口_13

alpha和beta分别设为20和60。

QDF扩展到低帧率配置

在VTM中根据下列条件判断是否使用基于QDF的码控,

if (encRCSeq->getAdaptiveBits() > 0 && encRCSeq->getLastLambda() > 0.1)m_lastLambda = encRCSeq->getLastLambda()

m_lastLambda在GOP Size=IntraPeriod配置(低帧率)下不会更新。

为了将QDF扩展到低帧率,上述条件修改为,

m_encRCSeq->getAdaptiveBits() > 0 && m_listRCPictures.size() >= m_encRCSeq->getGOPSize()

实验结果

实验平台为VTM14.0,提案方法在LDB和RA配置下YUV的BD-Rate分别为-0.65%/-0.65%/-0.51%和 -1.38%/-1.59%/-1.63%,如表1,

VVC码率控制改进_码率_14

提案的CTU级码率分配方法的结果如表2,

VVC码率控制改进_码率_15

提案的SW设置方法结果如表3,

VVC码率控制改进_帧率_16

提案的CTU级码率分配方法和SW设置同时开启的结果如表4,

VVC码率控制改进_RC_17

表5是将QDF扩展到低帧率的结果,

VVC码率控制改进_帧率_18

表6是同时开启SW和QDF的结果,

VVC码率控制改进_RC_19

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

举报

相关推荐

VVC代码阅读 compressSlice()

VVC 代码阅读 compressCtu()函数

0 条评论