H.266帧间预测:重叠块运动补偿(OBMC)

重叠块运动补偿(OBMC)曾在H.263中被使用过。目前HEVC采用的是基于块的运动估计和补偿技术,当运动矢量不准确、物体不是简单的平移运动或一个分块中包含多个运动物体时,就容易出现方块效应。采用OBMC可以对块边缘进行处理,可以减少方块效应。

不像H.263,在JEM中可以使用CU级语法来控制OBMC的开关。JEM中,OBMC被用于除CU的右侧和底部边缘的所有运动补偿MC块边缘。另外,OBMC不仅被用于亮度分量,色度分量也可用。在JEM中,MC块对应一个编码块。当一个CU以亚CU模式(包括亚CU merge、affine和FRUC模式)编码时,该CU的每个子块都是一个MC块,其四个邻近块的运动矢量如果可用且与当前运动矢量不相等时,都被用于推导当前子块的预测块。基于多运动矢量的多预测块同加权生成当前子块的最终预测信号。为了以统一的方式处理CU的边缘,OBMC在子块级别对所有MC块边缘进行处理,子块尺寸为4x4,如下图所示。
H.266帧间预测:重叠块运动补偿(OBMC)

PN表示基于邻近子块运动矢量的预测块,PC表示当前子块的基于运动矢量的预测块。当PNPC包含相同的运动信息时,PN不使用OBMC。否则,每一个PN的采样(PN的四行/列)被加到了PC的采样上。PN的权重系数为{1/4, 1/8, 1/16, 1/32},PC的权重系数为{3/4, 7/8, 15/16, 31/32}。对于小MC块(编码块的高或宽等于4或CU以亚CU模式编码),PN只有两行/列加到PC上,此时PN的权重系数为{1/4, 1/8},PC的权重系数为{3/4, 7/8}。对于基于垂直(水平)邻近子块的运动矢量生成的PNPN的同一行(列)样本以相同的权重系数加到PC上。

在JEM中,对于小于等于256亮度采样的CU会为当前CU传输一个CU级别的flag标识是否使用OBMC。对于大于256亮度采样的CU或不使用AMVP模式编码时,默认使用OBMC。在编码器中,CU使用OBMC时,在运动估计阶段要考虑其影响。OBMC使用顶部和左侧邻近块的运动信息生成的预测信号被用于补偿当前CU顶部和左侧边缘的原始信号,然后应用正常的运动估计处理。

总结:
OBMC会使用当前运动矢量和邻近子块运动矢量进行运动补偿,减少方块效应。