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

How does H264 inter prediction fills the prediction block old position?

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

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

假设编码器决定使用帧间预测对以下两幅图像进行编码,它计算球应该在哪里(它的新位置和剩余能量)但是它如何填充旧的 space?

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

Block motion compensation divides up the current frame into non-overlapping blocks, and the motion compensation vector tells where those blocks come from (a common misconception is that the previous frame is divided up into non-overlapping blocks, and the motion compensation vectors tell where those blocks move to). The source blocks typically overlap in the source frame. Some video compression algorithms assemble the current frame out of pieces of several different previously-transmitted frames.

因此,运动矢量不是 "move the block from old frame",它是 当前帧的宏块 的(帧内)编码,当一些块是从旧帧中复制的,带有一些小的shift(一些块可以从前一帧复制到当前帧多次;大多数块是用零运动矢量复制的)。理论上我们可以通过其宏块对新帧进行编码,但是在运动补偿的帮助下,我们已经改变以从先前的帧中获取大量图像信息并且编码更少。未补偿的部分图像用图像宏块编码。

来自 "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 中对 encoding/decoding 进程有很好的描述,但在俄语中:http://www.compression.ru/dv/course/compr_h264.pdf (from http://www.compression.ru/video/ 站点)

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