分享

Motion Prediction - MultimediaWik

 巨木大师 2008-09-24

Motion Prediction

From MultimediaWiki

Jump to: navigation, search

Motion prediction is an important area within the majority of modern video codecs describing methods of obtaining motion vectors with which one can predict pixel values from sets of reference pixels, usually in other frames.

Prediction Methods

  • Intra
  • Forward
  • Backward
  • Interpolation (forward and backward)
  • Weighted (similar to interpolation, except the weight of the reference pixels being mixed depends on their distance from the current frame)
  • Direct
  • ...

Direct Prediction

Direct prediction offers methods for calculating motion vectors for already coded vectors to reduce the bit cost of coding B-frames and take advantage of motion coherences in different domains. There are two methods of direct prediction - spatial and temporal.

The spatial mode calculates motion vectors from the vectors (left, top left, top? if available?) of neighbouring blocks. Depending on the prediction method used in said neighbouring blocks, the resultant B-frame prediction mode can be one of forward, backward or interpolation.

Temporal direct prediction necessarily uses the interpolation mode. The temporal mode considers the forward motion vector of the colocated block in the first list 1 reference frame. If there are no reference B-frames or B-frame reordering, the first list 1 reference frame is usually the next P-frame.

Image:H264_direct_temporal_3.png

Image:H264_direct_temporal_4.png

Note: As poc(L1) > poc(cur), the signs of the components of MV_L1 are swapped.

Where MV_L1 colocated is the motion vector of the colocated block in the first L1 reference frame and poc(*) gives the position of frame * in the sequence of frames (c.f. picture order count §8.2.1 of the H.264 spec).

Consider the following setup where we have a sequence of frames PbbbP with no reference B-frames / frame reordering:

Image:H264_direct_temporal_1.png

To visualise the process, the end points of the forward motion vector remain in the same frames (starting at P2, ending at P1) but the vector is translated such that it appropriately intersects the current macroblock (in red) in the current frame (B1).

Image:H264_direct_temporal_2.png

The translated vector is essentially ‘split‘ setting the start point at the appropriate position of the current macroblock and pointing along the translated vector forward to P1 and backward to P2.

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多