论文来源:ICSSE 2019
概要:本文目的是在没有编码质量损失的情况下提高H.266的编码速度。参考相邻LCU的划分平均深度信息以确定是否终止CU分解。由于相邻LCU之间的编码模式之间的相关性并不是很强,当前CU的模式预测是基于启发式方法开发的。实验结果证明本文提出的方法在JEM上,AI配置下可以节省25.42%的时间节省,BDBR的损失只有0.31%。如何降低HEVC/H.265和FVC/H.266的时间复杂度可以通过神经网络模型来解决问题,在相同的视频编码质量下,该模型可以降低更多的时间复杂度。
QT划分编码加速
LCU一般都会被QT划分,当CU尺寸达到32x32到8x8时,会开始允许BT划分,但跟上一代标准HEVC相比,QTBT划分决策花费的时间是HEVC的5~6倍。根据文献[9],相邻的块可以分为左上(LU)的CU,左边(L)的CU和上方(U)的CU,如图2所示。这里没包括右上的CU,如果包括的话最右边一列的CU就没办法被加速了,这样的话对整张图片来说减小了加速性能。由于LCU尺寸是128x128,比较大,LCU之间的相关性很难预测,所以每个相邻LCU分配的权重是相同的。
用LCU中洗个64x64的CU的平均QT深度来表示一个LCU的平均深度,如图3所示。训练用的序列如表1所示,其中Class D分辨率太小,Class F中包含很多中不同分辨率的序列,所以都不采用。
用LCU周围的三个邻近LCU(L、U、LU)作参考对QT深度进行剪枝,剪枝规则如下:1)如果当前LCU深度为0和1,这个QT深度还比较小,当前CU最终的深度停留在0和1的可能性较小,所以不作快速处理,如果当前QT深度为2或者3,并且邻近平均QT深度也是2或者3,那么很有可能最终的QT深度为2或者3,表2统计了这样做的准确度,可以看出80%以上CU都满足这个规律。
BT编码加速
BT的编码加速同样利用邻近的三个LCU做参考,计算三个相邻LCU的平均BT深度。计算BT深度时是从32x32开始算起,即32x32大小的CU用BT每向下划分一次,BT深度就增加1。所以计算一整个LCU的深度就是层岑取平均得到:先计算64x64大小的CU中4个32x32的CU的平均BT深度,然后计算一个LCU中4个64x64大小的CU的平均BT深度。
寻找BT深度的统计规律,即统计一个LCU的最优QT深度分别为2/3/4时BT的最优深度情况与邻近平均BT深度之间的关系。最后得出的BT加速方案是:当一个BT深度为0的CU,其邻近LCU的平均BT深度低于0.1时,当前CU很有可能最终的最优BT深度为0。表3统计了这样做的准确度,可以看出80%以上CU都满足这个规律。
提出的QT&BT快速算法
- LCU(128x128)的CU深度为0,后面每用QT向下划分一次,QT深度加一
- 当QT深度为2时,如果邻近平均QT深度小于2,则停止QT划分
- 当QT深度为3时,如果邻近平均QT深度小于3,则停止QT划分
- 当QT深度在2~4之间的时候,启动BT的快速算法
- 当BT深度为0时,如果邻近平均LCU深度小于0.1,则禁止BT再向下划分。
实验结果
实验还是在ClassA1、ClassA2、ClassB、ClassC和ClassE序列上进行实验,实验结果如表5所示。可以看出在高分辨率上效果较好,在低分辨率上效果较差。低分辨率上能参考的LCU信息比较少。总体上提出的方法可以在AI配置下表加速25.423%的同时BDBR增加0.31%。
?
|