基于行的帧内编码快速算法

155 篇文章 138 订阅
66 篇文章 23 订阅

在上一节《基于行的帧内编码》介绍了在帧内编码时将块按水平或垂直划分为1D块,然后对每个1D块按同样的帧内模式逐行编码。HEVC在编码端选择帧内模式时使用两阶段方法降低复杂度,在第一阶段使用快速RD cost方法计算所有帧内模式的RD cost,其中失真用Hadamard变换估计。将RD cost最小的模式放入FIMCL(fast intra mode candidate list)。然后在第二阶段计算列表中的所有模式的RD cost,选择RD cost最小的模式作为最佳模式。使用LIP时,在上面的计算中不仅要考虑帧内模式还要考虑LIP划分(水平或垂直),这些模式的组合将大大增加计算复杂度。然而,有时并不需要编码完所有1D块才知道该模式是否是最优。因此本文将介绍几种LIP快速算法。

加速算法

上图是使用加速算法后的流程图。

利用2D FIMCL

CU中所有LIP划分的1D块都使用同一种帧内预测模式,所以可以复用2D情况下的FIMCL来确定要测试哪些模式。

1D划分早停止

从上面的流程图可以看见,编码器按顺序处理每一行。假设CU划分为N行,在第i次迭代时编码第i行然后计算其RD cost,编码完所有行后将各行RD cost相加得到整个CU的RD cost。

但是有时候并不需要计算完所有行也能判断该模式是否是最优。假设在尝试当前模式前已经获得的最小RD cost为Cmin,如果按当前模式编码当前CU,在编码第i行时RD cost已经大于Cmin了那么就没有必要继续编码了,当前模式肯定不是最优的。否则继续编码第i+1行。如果编码完后RD cost小于Cmin则更新Cmin。

1D划分顺序

对于上一步早停止来说初始Cmin越小越好,这样就可以使那些非最优模式尽早停止。为了使初始Cmin最小我们需要最先尝试那些可能是最优的模式。所以在尝试划分模式时首先尝试那些划分后行数少的模式,例如对4x16的块如果水平划分会产生16行(4x1),垂直划分会产生4行(1x16),所以应该优先尝试垂直划分。

FIMCL修正

为了使LIP避免尝试那些最不可能的帧内模式和1D划分模式的组合,需要对FIMCL进行修正,分为三步。

  1. 对FIMCL中的所有帧内模式使用2D DCT-II计算RD cost,并且存储下来。

  2. 将第1步内最小的2D DCT-II RD cost乘以一个阈值作为门限值,凡是2D DCT-II RD cost大于这个门限值的帧内模式都被排除掉。

  3. 对第2步列表内的剩余模式测试1D划分方式。

0 CBF跳过

CBF语法元素用于标识一个块是否有非零系数。如果一个块的CBF等于0,通常表示这个块内容非常平坦,RD cost非常小,在这种情况下没必要对其使用LIP模式。

signifificant coeffificients跳过

对于那些进行2D DCT-II变换后signifificant coeffificients数量小于特定阈值的块不使用LIP模式,其中阈值由块尺寸决定。

宽高比跳过

令r=log2(W/H),如果满足下面其中一个条件则跳过那些产生行数多的划分模式(类似于前面的1D划分顺序),

  1. |r|>1且帧内模式是非角度模式

  2. |r|>2且帧内模式是角度模式

角度模式聚合

有时邻近的角度模式(例如模式4和5)会产生相似的RD结果,因此将这些模式聚合为一个集合,每个集合只测试一个模式会大大降低计算复杂度。如果一个集合测试的那个模式可能是最优模式则该集合内的所有模式都要测试一遍。

1D划分早停止改进

在1D划分早停止中当编码完第i行后就将Si和Cmin进行比较。如果假设cost在N行中均匀分布则可以将Si和Cmin的比例值进行比较,如下,

实验结果

下表是不同加速算法的效果。

下表Version A没有使用假设算法,Version I使用了上面所有加速算法。

参考

[1] De-Luxan-Hernandez S ,  Schwarz H ,  Marpe D , et al. Fast Line-Based Intra Prediction for Video Coding[C]// 2018 IEEE International Symposium on Multimedia (ISM). IEEE, 2018.

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值