FFMPEG 运动矢量块格式

FFMPEG 运动矢量块格式

我正在尝试使用 ffmpeg 和AVSideDataAPI 从 h264 视频中提取运动矢量。我对格式有点困惑,因为有些细节没有得到很好的记录,我希望有人能确切地知道,因为我在很多地方都读到过一些相互矛盾的内容。

源块和目标块的位置是左上角坐标还是中心坐标?当我绘制运动矢量时,它们看起来像是中心坐标,但如果是这样,那么在块大小为偶数的情况下,我该如何计算块的大小?这会导致我在垂直轴或水平轴上截断像素。

第二个问题是 h264 支持半像素和四分之一像素 MV 位置,鉴于源点和目标点仅为整数,我该如何检测和处理这个问题?我是否需要使用 、 和 自己计算?motion_x如果motion_ymotion_scale这样,那么为什么要包括源位置呢?

示例图片:

使用左上角坐标:

在此处输入图片描述

注意左上角的黑色边框

使用中心坐标:

在此处输入图片描述

相关内容