me_epzs_int.h File Reference

Headerfile for EPZS motion estimation. More...

#include "me_epzs.h"

Include dependency graph for me_epzs_int.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Functions

int EPZSIntPelBlockMotionSearch (Macroblock *, MotionVector *, MEBlock *, int, int)
int EPZSIntPelBlockMotionSearchSubMB (Macroblock *, MotionVector *, MEBlock *, int, int)
int EPZSIntBiPredBlockMotionSearch (Macroblock *, int, MotionVector *, MotionVector *, MotionVector *, MotionVector *, MEBlock *, int, int, int)


Detailed Description

Headerfile for EPZS motion estimation.

me_epzs_int.h

Author:
Alexis Michael Tourapis <alexis.tourapis@dolby.com>
Date:
11. August 2006

Definition in file me_epzs_int.h.


Function Documentation

int EPZSIntBiPredBlockMotionSearch ( Macroblock ,
int  ,
MotionVector ,
MotionVector ,
MotionVector ,
MotionVector ,
MEBlock *  ,
int  ,
int  ,
int   
)

FAST Motion Estimation using EPZS AMT/HYC.

If p_EPZS->medthres satisfied, then terminate, otherwise generate Predictors

Add Spatial Predictors in predictor list. Scheme adds zero, left, top-left, top, top-right. Note that top-left adds very little in terms of performance and could be removed with little penalty if any.

Check all predictors

Refine using EPZS pattern if needed Note that we are using a conservative threshold method. Threshold could be tested after checking only a certain number of predictors instead of the full set. Code could be easily modified for this task.

Adapt pattern based on different conditions.

center on best predictor

Check Second best predictor with EPZS pattern

Second best. Note that following code is identical as for best predictor.

Definition at line 762 of file me_epzs_int.c.

References EPZSDetermineStopCriterion(), EPZSSpatialPredictors(), storable_picture::motion, pic_motion_params::mv, macroblock::p_Img, macroblock::p_slice, and pic_motion_params::ref_idx.

Referenced by init_ME_engine().

Here is the call graph for this function:

int EPZSIntPelBlockMotionSearch ( Macroblock ,
MotionVector ,
MEBlock *  ,
int  ,
int   
)

FAST Motion Estimation using EPZS AMT/HYC.

If p_EPZS->medthres satisfied, then terminate, otherwise generate Predictors Condition could be strengthened by consideration distortion of adjacent partitions.

Add Spatial Predictors in predictor list. Scheme adds zero, left, top-left, top, top-right. Note that top-left adds very little in terms of performance and could be removed with little penalty if any.

Window Size Based Predictors Basically replaces a Hierarchical ME concept and helps escaping local minima, or determining large motion variations. Following predictors can be adjusted further (i.e. removed, conditioned etc) based on distortion, correlation of adjacent MVs, complexity etc. These predictors and their conditioning could also be moved after all other predictors have been tested. Adaptation could also be based on type of material and coding mode (i.e. field/frame coding,MBAFF etc considering the higher dependency with opposite parity field

Blocktype/Reference dependent predictors. Since already mvs for other blocktypes/references have been computed, we can reuse them in order to easier determine the optimal point. Use of predictors could depend on cost,

Check all predictors

Refine using EPZS pattern if needed Note that we are using a conservative threshold method. Threshold could be tested after checking only a certain number of predictors instead of the full set. Code could be easily modified for this task.

Adapt pattern based on different conditions.

center on best predictor

Check Second best predictor with EPZS pattern

Second best. Note that following code is identical as for best predictor.

Definition at line 42 of file me_epzs_int.c.

References EPZSBlockTypePredictorsMB(), EPZSDetermineStopCriterion(), EPZSSpatialMemPredictors(), EPZSSpatialPredictors(), EPZSTemporalPredictors(), EPZSWindowPredictors(), macroblock::mbAddrX, storable_picture::motion, pic_motion_params::mv, macroblock::p_Img, macroblock::p_slice, pic_motion_params::ref_idx, and slice::slice_type.

Referenced by init_ME_engine(), PartitionMotionSearch(), and SubPartitionMotionSearch().

Here is the call graph for this function:

int EPZSIntPelBlockMotionSearchSubMB ( Macroblock ,
MotionVector ,
MEBlock *  ,
int  ,
int   
)

FAST Motion Estimation using EPZS AMT/HYC.

If p_EPZS->medthres satisfied, then terminate, otherwise generate Predictors Condition could be strengthened by consideration distortion of adjacent partitions.

Add Spatial Predictors in predictor list. Scheme adds zero, left, top-left, top, top-right. Note that top-left adds very little in terms of performance and could be removed with little penalty if any.

Blocktype/Reference dependent predictors. Since already mvs for other blocktypes/references have been computed, we can reuse them in order to easier determine the optimal point. Use of predictors could depend on cost,

Check all predictors

Refine using EPZS pattern if needed Note that we are using a conservative threshold method. Threshold could be tested after checking only a certain number of predictors instead of the full set. Code could be easily modified for this task.

Adapt pattern based on different conditions.

center on best predictor

Check Second best predictor with EPZS pattern

Now consider second best.

Definition at line 411 of file me_epzs_int.c.

References EPZSBlockTypePredictors(), EPZSDetermineStopCriterion(), EPZSSpatialMemPredictors(), EPZSSpatialPredictors(), macroblock::mbAddrX, storable_picture::motion, pic_motion_params::mv, macroblock::p_Img, macroblock::p_slice, pic_motion_params::ref_idx, and slice::slice_type.

Referenced by SubPartitionMotionSearch().

Here is the call graph for this function:


Documentation generated with DoxyGen