H.266 JEM7.0 帧间预测之四(重叠块的运动补偿 OBMC)

重叠块的运动补偿 Overlapped Block Motion Compensation (OBMC)

OBMC可以在CU级别通过采用语法元素进行开关。当JEM中使用OBMC时,对除去右侧和左侧的所有CU的运动补偿MC块边界都使用OBMC,包括亮度及色度。JEM中,MC块对应一个编码块。当CU采用子CU模式编码(包括子CUmerge,affine以及FRUC模式),CU的每个子块都是一个MC块。为了统一处理CU的边界,当子CU块大小设为4x4时,OBMC对所有的子CU级别的MC块的边界均使用。

在当前子CU使用OBMC时,当前MV,四个相邻的子块的MV,如果可获取且与当前MV不完全相同,也会被用来获取当前子CU的预测块。这些基于多MV的多预测块结合起来,得到当前子CU最终的预测信号。

Pn为基于相邻子块MV得到的预测块,N为相邻上方,下方,左侧和右侧子块的索引,基于当前子块得到的预测块为Pc。当Pn是根据和当前子块包括相同运动信息的相邻子块的运动信息得到的,Pn中不使用OBMC。否则,Pn的每个样本均被加入到Pc的相同样本中。如,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}。对于根据水平/垂直相邻子块得到的Pn而言,Pn相同列/行采用相同的权重增加到Pc上。

JEM中,对于亮度样本大小小于等于256的CU而言,CU级别一个标志位需要传输来表示OBMC是否使用。对于亮度样本大小大于256或者不是AMVP模式的CU,OBMC默认使用。编码端,当OBMC使用时,在运动估计层面考虑了其影响。OBMC使用上方和左侧相邻块的运动信息生成的预测信号被用于补偿当前CU上方和左侧边界的原始信号,然后进入运动估计过程。

猜你喜欢

转载自blog.csdn.net/yolo_life/article/details/81180646