ICIP2020:VVC码率控制

本文内容来自ICIP 2020的文章《RATE CONTROL FOR VERSATILE VIDEO CODING

该文章主要是通过对skip块的分析提出了RD参数的更新策略和帧级码率分配的质量依赖因子。由于VVC增加了很多新的技术尤其是帧间预测技术,使得很多块能很好的预测从而变成skip块其残差为0。

RD参数更新

码率控制问题最终可以转化为公式(1)有约束优化问题,

其中lambda是拉格朗日乘子,它是RD曲线的切线,在数学上表示R(D)函数的导数。

VVC中仍然使用R-lambda-QP模型,用双曲线函数描述RD关系,

公式(2)中C和K是模型参数,和视频内容相关,也是本论文算法参数更新的对象。

skip块没有残差信息,其消耗的比特仅用于编码一些辅助信息(例如skip flag,运动向量、参考帧索引等),所以skip块的失真只和其参考块相关。所以skip块的R和D不满足公式(2)的双曲线关系。需要分别考虑。

初始时认为所有CTU都是正常CTU(非skip),lambda可以按公式(3)计算,

其中参数C_p,K_p是模型参数,初始值是给定的,随着编码进行不断更新。

当编码完一个CTU后即可知道该CTU的skip块面积,如果小于预定义的阈值TH则认为其是正常CTU,否则认为其是skip CTU。

  • 对于正常CTU认为其lambda,R,D满足双曲线模型,其实际lambda可由公式(4)计算,

联立公式(2)(4)可得到公式(5),

公式(5)中的C_p,K_p是更新后的参数,可用于下一个块的lambda的计算。

  • 对于skip CTU,由于skip块使用的比特数少,如果更新C和K会造成不稳定,为了避免误差传播对skip块不进行参数更新。它的lambda直接使用该帧的lambda。

正常CTU和skip CTU分块进行参数更新的策略不仅会影响CTU的参数更新也会影响该帧的RD参数。当一帧完成编码后,正常CTU的像素数、失真、实际使用比特数会用于帧级RD参数更新。skip CTU的信息会被忽略。

帧级比特分配

质量依赖

由于视频编码采用分级的结构,低层的帧会作为高层帧的参考,这就使得不同层级的帧间产生了质量依赖关系。定义质量依赖因子(Quality Dependency Factor,QDF),

其中m和n表示layer id。QDF用于描述第m层质量改变对第n层的影响。

第1层和其他层的QDF关系如公式(7)所示,

其中S_n代表第n层的skip的比例,可由前一个GOP得到。A和B是参数可由下表得到,

其他层的QDF关系可由公式(8)表示,

第n和m层的QDF关系由其分别与第1层的关系推导而来。

基于QDF的帧级码率分配

考虑到为GOP内每帧进行码率分配,一般都会转化为一个约束优化问题使得总失真最小。由于帧间存在依赖关系,参考帧质量变化会影响该帧质量。所以引入下式,

其中w_j是第j帧的质量依赖参数,可由下式决定,

最终可以获得每帧的码率分配权重,

其中C_i和K_i是不带skip块的帧级RD参数,由上一节计算得到。

实验结果

最终实验结果如下表所示,

更详细的实验结果和算法细节可以参考原论文。

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

猜你喜欢

转载自blog.csdn.net/Dillon2015/article/details/109501494