Motion Estimation

The process of encoding starts with motion estimation (see Figure "Motion Compensation Scheme for Predicted Blocks" and Figure "Motion Compensation Scheme for Bi-Predicted Blocks"). Block SrcRef is found for each non-intra block Dst to be predicted, or two blocks SrcRefF and SrcRefB are found if block Dst is bi-predicted. The reference blocks are supposed to be similar to block Dst.

The figure below shows how reference frames are selected.

Intra, Predicted and Bi-Predicted Frames With Forward and Backward References



The motion estimation process is performed by the following general Motion Estimation functions:

MPEG Video Motion Estimation Functions  
Evaluation of difference between current predicted and reference blocks
For predicted blocks For bi-predicted blocks
GetDiff16x16 GetDiff16x16B
GetDiff16x8 GetDiff16x8B
GetDiff8x8 GetDiff8x8B
GetDiff8x16 GetDiff8x16B
GetDiff8x4 GetDiff8x4B
Evaluation of sum of squares of differences between current and reference blocks
For predicted blocks For bi-predicted blocks
SqrDiff16x16 SqrDiff16x16B
Evaluation of variance and mean of 8x8 block
VarMean8x8  
Evaluation of variances and means of difference between two blocks
VarMeanDiff16x16  
VarMeanDiff16x8  
Evaluation of variance of current block
Variance16x16  
Evaluation of sum of absolute difference between current and reference blocks
SAD16x16  
SAD16x8  
SAD8x8  
SAD4x4  

Submit feedback on this help topic

Copyright © 2000 - 2011, Intel Corporation. All rights reserved.