MPEG Video Compression Standard

Motion compensation is a normative part of MPEG, whereas motion estimation, the topic of this chapter, is not. Motion compensation refers to the use of motion displacements in the coding and decoding of the sequence; motion estimation refers to the determination of the motion displacements.
In the encoder the difference between source picture and prediction is coded; in the decoder this difference is decoded and added to the prediction to get the decoded output. Both encoder and decoder use the same motion displacements in determining where to obtain the prediction. However, the encoder must estimate the displacements before encoding them in the bit-stream; the decoder merely decodes them. Chapter 11 has already described the syntax for the coding of motion displacements.
Motion estimation is absolutely necessary in any complete implementation of an MPEG encoder, but the procedures for motion estimation are not normative. What is normative is the rules and constraints such as one vector per macroblock, precisions of full pel or half-pel, the range of motion vector sizes, and the restriction to simple translational motions. However, these are motion compensation rules, not motion estimation rules.
Motion estimation techniques for simple translational motion fall into two main classes, pel-recursion and block matching. Pel-recursion techniques are used primarily for systems where the motion vectors can vary from pel to pel. Block matching techniques are used primarily where a single motion vector is applied to a block of pels. The treatment in this chapter is oriented almost exclusively to block...