H264帧间预测如何填充预测块旧位置?

时间:2017-03-03 04:53:52

标签: encoding compression h.264 prediction video-codecs

根据我的理解(非常简单的观点),H264标准的帧间预测(运动估计/补偿)首先在参考帧上找到最佳匹配块,然后用运动矢量编码(有效的新X和Y)和残差(预测与现实)。

但是解码器如何知道如何填充预测块之前的旧空间?我假设残差是从块位,而不是帧级别的新位置计算的。

让我们说编码器决定使用帧间预测来编码以下两个图像,它计算球应该在哪里(它的新位置和剩余能量)但是它如何填充旧空间?

frame 0 frame 1

1 个答案:

答案 0 :(得分:1)

Motion compensation只是帧编码的优化。如果我们谈论运动矢量,这就是"块运动补偿",如维基百科中所定义的那样:

  

块运动补偿将当前帧划分为非重叠块,并且运动补偿向量告知这些块来自何处(常见的误解是前一帧被划分为非重叠块,以及运动补偿向量告诉那些块移动到哪里)。源块通常在源帧中重叠。一些视频压缩算法将当前帧从几个不同的先前传输的帧中组合出来。

因此,运动矢量不是"从旧帧"移动块,它是当前帧的宏块的(帧内)编码,当某些块是从具有一些小移位的旧帧复制(并且一些块可以从前一帧复制多次到当前;并且大多数块被复制为零运动矢量)。从理论上讲,我们可以通过宏块对新帧进行编码,但是在运动补偿的帮助下,我们需要改变以从先前帧中获取大量图像信息并进行编码。未补偿的图像部分用图像宏块编码。

来自" Big Buck Bunny的other Wikipedia page示例"免费电影:

Frame with motion vectors displayed, dots are zero vectors

Residual image after motion compensation to be encoded

H.264中的编码/解码过程有很好的描述,但俄语:http://www.compression.ru/dv/course/compr_h264.pdf(来自http://www.compression.ru/video/站点)

用英语描述运动补偿:http://inst.eecs.berkeley.edu/~ee290t/sp04/lectures/02-Motion_Compensation_girod.pdf(预测误差被编码,全新的图像几乎完全被错误预测。背景图像的信息频率很低,很可能会被一些运动补偿。附近的背景区。)