在充分考虑到HEVC编码的四叉树编码结构和视频的时空域相关性的基础上, 本文提出图 2所示的快速剪裁算法。首先通过对四叉树结构类型进行分析,确定其深度遍历区间(Depth Range, DR)类型, 利用参考帧相同位置的LCU和相邻LCU的DR类型来预测当前LCU的CU深度遍历区间;然后, 再根据预测的深度区间进行编码。同时, 采用贝叶斯决策训练原理获取阈值, 并利用该阈值对CU分割进行早期CU裁剪。
1、DR类型的确定
HEVC编码采用四叉树结构进行编码, 一个LCU最终的分割类型是通过其CU深度值确定的,大小为64×64的LCU包括256个4×4块, 每个4×4块都用一个深度值depth(depth∈[0,3])表示。不同四叉树结构的LCU, 其CU深度值的分布情况也不同, 如图 3所示。LCU的四叉树结构类型可以分为8种(即A, B, C, D, E, F, G, H)。若能在LCU四叉树结构划分前对其类型进行预测, 通过该类型设定CU深度遍历范围, 就可以减少不必要的CU深度遍历, 从而降低其编码复杂度。但过于精细的预测遍历区间会很容易造成误判。因此, 本文将深度值分布相近的四叉树结构类型进行合并, 并定义如图 3所示的T1、T2、T3和T4种DR类型。例如, T2包括C和D 2种四叉树结构类型, 其中:C的深度值为1和2,D的深度值则全为2,故将这2种四叉树结构的DR类型定为T2。本文算法根据DR类型进行CU深度遍历,相比原始0~3的全遍历,明显减少了编码复杂度。
2、利用时空相关性的中值DR类型预测
在视频序列中, 当前编码LCU与相邻已编码的LCU以及前一帧和后一帧中与当前编码LCU位置相同的LCU(以下简称为对应LCU)之间有很大的相关性。这里, 通过图 4中Left LCU、Top LCU、Left-top LCU、Col1 LCU和Col2 LCU共5个参选预测LCU的DR类型来预测当前编码LCU的DR类型。具体步骤为:先根据上述方法获得5个参选预测LCU的DR类型, 再按表 2中的映射关系确定DR值的候选列表,将该列表进行从小到大排序,取排序后的中值作为当前LCU预测的DR类型值DRpred。
3、基于贝叶斯决策的早期CU裁剪预判
在LCU的块划分过程中, 若当前CU(depth∈[1,2])为其上一层CU的第4个分割CU(图 5中的CU1, 3和CU2, 0, 3), 则在计算完其率失真代价J后, 就有可能通过预判断提前进行早期CU裁剪过程。以CU1, 3为例, 若满足 J(CU0)
J(CU1,i) , 则说明不分割块CU0比将其分割成4个分割块CU1, i (i=0, 1, 2, 3)更优。因此, CU1, 3没有必要进行进一步分割, 可以提前对其进行CU裁剪。实际上, 完整CU裁剪过程中与J(CU0)最终比较的率失真代价和 J(CU1,i) 之间存在一定的差值ΔJ 。