自适应全零块检测模型

在早期检测出全零块,可以加速RDOQ过程。尽管RDOQ带来了编码性能的显著改善,但是它导致了高计算复杂度(由于码率和失真的折衷来确定最佳量化电平的这种复杂度)。由于许多TB经过RDOQ之后是全零块,因此在RDOQ之前检测全零块是非常值得的,这样就可以直接省去变换量化这样繁琐的步骤。本文主要介绍一种自适应零块检测模型来加速RDOQ过程。


引言

  趁早检测出零块以跳过变换量化等等步骤,可以在保持编码性能的同时,降低编码复杂度,实现快速量化。

HEVC中的RDOQ

  实验表明,RDOQ以10%-15%的总编码时间增加仅获得了3%-6%的编码增益。因此,就迫切需要一种新方法来加速RDOQ。
统计结果表明,经过RDOQ,超过50%的TB是AZB。QP越大,AZB比例也越大。而且,AZB比例与TB大小密切相关。在RDOQ之前检测AZB可以极大节省量化时间,同时保持编码性能不变。

AZB检测方法

  对于大尺寸的TB,很难精确检测出全零块,因为大的TB包含更多的细节(也就是高频非零系数)。在这一部分提出一种比较新颖的可以适用于所有TB尺寸的AZB检测方法。
  首先,分析AZB中原始变换系数(RDOQ之前)的特征,并且找到边界点值;
  然后,研究AZB检测阈值、QP和TB尺寸之间的关系;
  最后,利用自适应阈值模型来检测全零块。
  如果一个TB中每个变换系数都比相应的设定的阈值要小,那么这个TB可以被认为是全零块,并且可以直接跳过RDOQ;除此之外,其他TB被编码为非全零块。

1.全零块中变换系数分析

  为了分析全零块中变换系数特征,需要记录全零块中变换系数的绝对值。
  第一步,根据QP(22,27,32,37)和TB尺寸(4x4,8x8,16x16,32x32)的组合可以分成16组,分组数据按照降序排序;
  第二步,用强制搜索方法来找到每个排序组中的边界点。
  把边界点值定义为一个临时的AZB检测阈值,它将保证至少90%的AZB检测精度。边界点值可以表明一个AZB的系数的能量特征。因此,根据统计规律,排在前5.20%的值定为4x4TU的边界点值;前1.40%的值定为8x8TU的边界点值;前0.35%的值定为16x16TU的边界点值;前0.09%的值定为32x32TU的边界点值。考虑到更大的TB包含更多的细节(低能量系数),因此,对于较大TU的AZB检测,扩大边界点覆盖是可以理解的。我们为不同尺寸的TU选择不同的边界点也是AZB检测精度和编码性能之间的折衷。注意:不同的QP在四种TU尺寸中使用相同的边界点。在这里插入图片描述

2.找寻AZB检测阈值、QP和TU尺寸之间的关系并建立检测模型

  如上所述,边界点值被视为一个临时AZB检测阈值(THd),因为它可以确保超过90%的AZB检测精度。
  四种TU尺寸内的AZB检测阈值和QP的关系可以表示如下:在这里插入图片描述
  从上图中可以看出,AZB检测阈值随着QP指数式增加。因此,阈值和QP直接关系可以描述为:在这里插入图片描述
  其中,α是与TU尺寸有关的参数,b通过训练集实验确定为0.12。并且,AZB检测阈值和QP之间的指数关系完全适用于AI、RA和LD配置。
  现在,来找寻α与TU尺寸之间的关系,用r来表示任意TU尺寸的AZB检测阈值和4x4TU检测阈值的比值:在这里插入图片描述
  那么,我们可以研究不同QP的r和w之间的关系,这可以用幂函数来拟合,如下图:在这里插入图片描述
  r和w关系也就自然而然表示如下:在这里插入图片描述
  其中,c和d是拟合参数。
  因此,AZB检测阈值组合上面三个式子可以得到:在这里插入图片描述
  其中,在这里插入图片描述
  如果把所有(w,QP)成对考虑,那么,在c=4.21,d=1情况下,Thdwxw可以表示为:在这里插入图片描述
  从上式知,为了找到合适的AZB检测阈值,编码器可以根据(w,QP)对在编码一个slice之前自适应设定阈值。这样就可以加速RDOQ。
  尽管由上式决定的AZB检测阈值也许对于某个序列中特定变换块来说不是最优的,但是整体来看,自适应阈值应当是一个不错的选择。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值