前面讲过BDOF是VVC新增的帧间预测工具,它由JEM中的BIO发展而来。BDOF基于光流的概念它假设物体的运动是平滑的。对于每个4x4的子块,通过使L0和L1的预测值的差值最小来计算运动修正量(Vx,Vy),然后用计算出来的运动修正值来调整4x4子块的双向预测值。

ECM中提出了像素级BDOF,即对每个像素进行运动向量mv的修正。过程如下:

  • 将CU划分为8x8的子块。

  • 确定每个子块是否使用BDOF。通过计算两个参考子块的SAD是否超过给定阈值来确定该子块是否使用BDOF。

  • 对于决定使用BDOF的子块,使用一个5x5的滑动窗口,并使用BDOF为每个滑动窗口计算Vx和Vy,这里使用的BDOF就是正常的BDOF技术。

  • 对滑动窗口的中心像素使用(Vx,Vy)进行双向预测修正。

对于CU,按8x8的子块决定是否使用BDOF,对于使用BDOF是子块使用滑动窗口对窗口中心像素计算mv修正值,随着滑动窗口不断移动子块内的每个像素最终都会得到对应的mv修正值。

感兴趣的请关注微信公众号Video Coding

像素级BDOF_微信公众号