【HEVC帧间预测论文】P1.1 基于运动特征的HEVC快速帧间预测算法
基于运动特征的 HEVC 快速帧间预测算法/Fast Inter-Frame Prediction Algorithm for HEVC Based on Motion Features
《HEVC标准介绍、HEVC帧间预测论文笔记》系列博客,目录见:http://www.cnblogs.com/DwyaneTalk/p/5711333.html
上海大学学报(自然科学版)第19卷第3期。
利用当前深度CU与时域对应位置已编码CU的亮度像素值的差值平方和均值来判断当前CU的运动特征。属于A类算法
ASSD:Average Sum of the Square Difference
核心公式:
2N表示当前CU的尺寸,CUCur(I,j)和CUCol(I,j)分别表示当前和时域对应位置CU块中(i,j)位置的亮度像素值。
ASSD越大,说明时域相邻CU的差值越大,则表示运动越剧烈。
ASSDX表示已编码(应该是当前帧中已编码)CU中最佳深度为X(0~3)时的ASSD的值。即ASSDX只考虑最佳编码深度为X的CU,其他参数含义如ASSD。
ASSDnotX表示已编码CU中最佳深度大于X(X+1~3)时的ASSD的值。于是ASSDnotX包含ASSDx+1~ASSD4。
ThSkip表示已编码CU中最佳深度大于X的所有CU的ASSD的均值。如果当前CU块深度X下的ASSD大于ThSkip,说明当前CU块运动比较剧烈,所以就不需要对深度X下的各种PU预测模式进行计算和判断,直接跳到下一个深度X+1进行更小尺寸的CU判断。式中b为调节参数,文中取1.2。取值越大,对应的ThSkip越大。
ThStop表示已编码CU中最佳深度为X的所有CU的ASSD的均值。如果当前CU块深度X下的ASSD小于ThStop,说明当前帧已经编码的CU中最佳深度为X的所有块的平均较平滑,因为可以认为当前CU块处于平缓区。对于平缓区的CU,就不继续进行更深度的CU划分判断。其中a为调节参数,文中取0.8。a越小,则对应ThStop越小
核心判断:
由定义可知,一般ThSkip是大于ThStop的,当ASSD处于二者之间时,图像处于运动适中区。算法加速优化主要针对运动剧烈区和运动平缓区,对于运动适中区,并不能进行加速。需要合理的控制ThSkip和ThStop的大小。如果[ThStop,ThSkip]区间太大,加速效果不好,如果[ThStop,ThSkip]区间太小,导致大量判断为运动剧烈和运动平缓区域,容易产生误判,影响图像质量。所以需要合理控制a,b的值,文中指出一般要ThSkip > 2*ThStop。
算法流程:
主要步骤如下: (文中说明了不考虑非对称的PU模式)
1、计算当前 CU 的 ASSD, 并根据已编码 CU 的信息(ThSkip和ThStop), 判断当前 CU 的运动特征;
2、若当前 CU 处于运动剧烈区且其深度小于 MaxDepth, 则跳过当前 CU 所有预测模式的计算, 进入下一深度 CU 的编码,因为这种情况下认为当前深度的所有PU模式都不是最优的,所以就不进行尝试; 若当前 CU处于运动剧烈区且编码深度等于 MaxDepth, 则需要对 Skip, 2N × 2N , N × 2N , 2N × N 以及 N × N 等模式进行预测, 并计算率失真代价值;
3、若当前 CU处于运动适中区且编码深度小于 MaxDepth, 则对除Skip 和 N × N 模式之外的其他模式进行率失真代价值的计算; 若当前 CU 处于运动适中区且编码深度等于 MaxDepth, 则跳过当前 Skip 模式, 对 2N × 2N ,N × 2N , 2N × N 以及 N × N 模式进行率失真代价值的计算;
4、若当前 CU 处于运动平缓区, 则不再继续划分,因为此时认为CU划分深度已经足够了,不需要进一步划分了.
实验结果: