H.266 JEM7.0 帧间预测之八(双向光流BIO)

本文深入探讨双向光流(BIO)技术,介绍其在视频压缩中的应用原理及实现细节,包括运动矢量场的计算、优化过程以及与常规双预测运动补偿的对比。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

双向光流 Bi-directional Optical flow (BIO)

BIO是采样点级别的运动优化,在双向预测的块运动补偿中使用。不需要传输信号。

Ik表示块运动补偿后参考k(0,1)的亮度值,Ik对k求偏导,对y求偏导分别表示Ik梯度的水平和垂直内容。假设光流是有效的,运动矢量场(vx,vy)通过下式可得:

将此公式与艾尔米特插值结合,得到每个样本的运动轨迹,其结果是一个唯一的三阶多项式,其匹配函数值Ik和两个偏导数。多项式的值在t=0时即为BIO预测:

此处,表示到参考帧的距离,根据Ref0和Ref1的POC计算得到:

如果两个预测来自同一个时间方向,标志不同。此时,BIO只适用于预测来自不同时间点的情况,即二者不相等的情况,两个参考区域都有非零运动,且块的MV和时间距离成正比:

运动矢量场(vx,vy)通过最小化点A、B(运动轨迹与参考帧平面的交点)的差值得到。模型只用局部泰勒展开式的第一个线性项:

 

上式的所有值取决于样本位置(i',j'),目前被省略。假设运动包括在局部包围区域,在以当前预测点(i,j)为中心的(2M+1)x(2M+1)窗口欧米伽下最小化上述差值,M=2。

对于优化问题,JEM采用一个简化的操作,使用一种简化的方法,首先在垂直方向上,然后在水平方向上最小化。导致:

其中:

为了避免被0或者一个很小的数除,引入正则化参数r以及m:

此时d表示视频样本的比特深度。

此过程在函数:

TComPrediction::xWeightedAverage()

为了保持BIO与常规双预测运动补偿有相同的内存访问,所有预测和梯度值,Ik,对x求偏导,对y求偏导,只在当前块位置内计算。在s1-s6公式中,位于预测块边界上的预测点为中心的(2M+1)x(2M+1)的正方形窗口,需要访问块外的位置,如下左图。JEM中,块外三者的值被设为等于块内最邻近可获取的值。可理解为填充操作,如右下图所示。

                 

  a) access positions outside of the block;        b) padding isused in order to avoid extra memory access and calculation

采用BIO,每个样本的运动场可以被细化。为了降低计算复杂度,JEM中使用基于块的BIO。运动优化基于4x4的块计算。在基于块的BIO下,一个4x4块所有采样的s1-6的值求和,总和sn值被用来获取4x4块的BIO的运动矢量偏移量。基于块的BIO使用下述推导:

bk表示属于预测快第k个4x4块的样本集合。sn被 ( (sn,bk) >> 4 )代替,用来得到相关运动矢量的偏移。

在一些情况下,BIO的MV组可能由于噪音或不规则运动而不可靠。所以,在BIO中,MV组的数量被门限thBIO限制。门限的值是基于当前图片的参考图片是否都来自一个方向确定的。如果当前图像的所有参考图像均来自同一个方向,门限为12*pow(2.0,14-d),否则为12*pow(2.0,13-d)。

BIO的梯度与HEVC运动补偿操作过程一致的(2D可分离FIR)运动补偿插值同时计算。2D可分离FIR的输入是与MC和根据块运动矢量的分像素部分得到的分像素位置(fracX, fracY)相同的参考帧样本。水平梯度(对x的偏导)情况下,首先使用BIOfilterS ,根据去尺度偏移 d−8的分像素位置fracY 垂直插值,随后水平方向使用与去尺度偏移 18-d的分像素位置相对应的梯度滤波BIOfilterG。在垂直梯度的情况下,首先采用BIOfilterG 梯度滤波器,根据去尺度偏移 d−8的分像素位置fracY 垂直插值,随后采用BIOfilterS 在水平方向上进行位移,与去尺度偏移 18-d的分像素位置fracX相对应。梯度计算的BIOfilterG 和信号位移BIOfilterF 插值滤波器的长度比较短(6抽头),为了保持合理的复杂度。下表表示了BIO块MV在不同分像素位置梯度计算过程中的滤波器。

BIO滤波相关函数为xPredInterBlk()下的:

TComPrediction::xGradFilterX()
TComPrediction::xGradFilterY()

下表表示用于BIO中的预测信号生成的内插滤波器。

JEM中,BIO应用于所有双向预测块中两个预测来自不同参考图像的情况。若当前CU的LIC可用,则BIO不可用。

JEM中,块的OMBC操作在普通MC之后。为了降低计算复杂度,BIO在OBMC过程中不采用。这意味着BIO只在用自己MV的块的MC过程中使用,并且在OBMC过程中使用相邻块的MV时,不应用于MC过程。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值