#include <motion_estimate.h>
Public Member Functions | |
MotionEstimator (const EncoderParams &encp) | |
Constructor. | |
~MotionEstimator () | |
Destructor. | |
bool | DoME (const FrameBuffer &my_buffer, int frame_num, MEData &me_data) |
Do the motion estimation. |
Class to handle the whole motion estimation process, which works in three stages.
First a pixel-accurate estimate is formed by looking at the current frame data and the data from the reference frame(s). Motion vectors are found for every block.
Second, these pixel-accurate motion vectors are refined to sub-pixel accuracy. This means some sort of upconversion needs to be applied to the reference. This can be done by actually upconverting the reference to create a bigger picture or by doing some interpolation of values on the fly.
Third, mode decisions have to be made. This means choosing which (if any) reference to use for each block, and whether to use the same motion vectors for groups of blocks together. A 2x2 group of blocks is called a sub-MB and a 4x4 group of blocks is a MB (Macroblock). All the MV data is organised by MB.
Definition at line 71 of file motion_estimate.h.