一种高效全零块检测方法

一种自适应低复杂度全零块检测算法。主要是为了提高基于SATD阈值的自适应检测方法的检测精度,节省RDO检测时间。在传统的SATD检测失败后,提出了一种自适应搜索时域低频最大变换系数幅值的全零块检测方法。


引言

  在变换量化之前提早地检测出全零块无疑是非常有必要的。现有的全零块检测技术大多数是使用SAD或SATD来设计基于一些附加条件的阈值。

一种高效的AZB检测算法

  一般来说,真全零块表示在均匀量化后,一个块的系数全部被量化为0;伪全零块表示一个块被进一步经过RDOQ后,系数被量化为0;除此之外就是非全零块。

1.真全零块检测

  首先,一个真全零块的量化系数应当小于1。
  要提早检测真全零块,就需要在变换之前做文章。那么就来对变换系数设定阈值,即:在这里插入图片描述
  因此,对于一个块内所有变换系数,就有:在这里插入图片描述
  即:在这里插入图片描述
  这样就有了第一个用于检测真全零块的阈值:在这里插入图片描述
  对于变换方式的选择,较大的TU(16x16、32x32)使用4x4和8x8的哈达玛变换来模拟DCT,8x8和4x4TU直接用DCT变换,这样区分的目的还是减小由DCT带来的计算复杂度。
  对于预测残差来说,一般是服从高斯分布或者拉普拉斯分布,所以,就需要由此来推出残差分布与变换系数之间的对应关系。
在这里插入图片描述
  大致如上图推导过程,可得一个阈值。最终检测真全零块的阈值就是:在这里插入图片描述

2.伪全零块检测

  如下图所示,随着TU尺寸的增大,G-AZB和P-AZB都会变少。尤其是对于32x32这样的大尺寸TU,几乎没有G-AZB,这也就是说,没有基于RDO的软判决量化,32x32TU量化为全零块的可能非常小。
在这里插入图片描述
  但是,基于RDO的AZB检测非常耗时,因此提出了一种自适应检测每个时间点最大变换系数的方法。
  具体来说,就是在RDOQ中,引入简化的均匀量化,来提供出预选的量化level(UQ level),然后基于RDO从这些候选值中选择最优的一个。然而,只有UQ level为1或者2的候选值最终才被确定为0。如下图所示,所有非零UQlevel都低于2,并且只有所有UQlevel都小于2的TU才能被编码为P-AZB。
在这里插入图片描述

  为减少系数搜索负担,把每个TU分成低频区域和高频区域。实际上,通过平衡搜索成本和检测精度,低频区域和高频区域的界限是基于QP来决定的。当QP比较低的时候,会有更多的非零UQ level,并且搜索区域应当比低比特率时大。因此,为TU左上角低频区域的块宽或块高设计了一个确定性方案:在这里插入图片描述
  考虑到只有UQlevel为1和2时,TU才有机会被RDOQ确定为0,并且较大系数出现在低频区域也是常见的情况,因此,我们只关注低频区域并且保证最大绝对UQlevel在2以内这一观点是合理的。
  为节省UQ过程的计算,我们同样基于变换系数而不是UQlevel来制定检测阈值。因此就有:在这里插入图片描述

3.全零块检测编程总结

  对于当前TU的残差数据,用flag来标志当前TU是否是全零块:
1.用下式作为变换核:在这里插入图片描述
2.存储SATD的值和变换系数
3.如果SATD满足:在这里插入图片描述
那么把flag设为1,表示当前TU是全零块(G-AZB);
否则,如果在这里插入图片描述
满足在这里插入图片描述
那么也把flag设为1,表示当前TU也是全零块(P-AZB);
否则,如果以上两种情况都不满足,那么设flag为0,表示当前TU是非全零块。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值