mv_search.h File Reference

array definition for motion search More...

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

Go to the source code of this file.

Functions

void get_neighbors (Macroblock *currMB, PixelPos *block, int mb_x, int mb_y, int blockshape_x)
void set_access_method (int *access_method, MotionVector *blk, int min_x, int min_y, int max_x, int max_y)
void PrepareMEParams (Slice *currSlice, MEBlock *mv_block, int ChromaMEEnable, int list, int ref)
void PrepareBiPredMEParams (Slice *currSlice, MEBlock *mv_block, int ChromaMEEnable, int list, int list_offset, int ref)
void Init_Motion_Search_Module (ImageParameters *p_Img, InputParameters *p_Inp)
void Clear_Motion_Search_Module (ImageParameters *p_Img, InputParameters *p_Inp)
void PartitionMotionSearch (Macroblock *currMB, int, int, int *)
void SubPartitionMotionSearch (Macroblock *currMB, int, int, int *)
void Get_Direct_MV_Spatial_MBAFF (Macroblock *currMB)
void Get_Direct_MV_Spatial_Normal (Macroblock *currMB)
void Get_Direct_MV_Temporal (Macroblock *currMB)
void FindSkipModeMotionVector (Macroblock *currMB)
void init_ME_engine (Macroblock *currMB)
int BlockMotionSearch (Macroblock *currMB, MEBlock *mv_block, int, int, int *)
void init_mv_block (Macroblock *currMB, MEBlock *mv_block, short blocktype, int list, char ref_idx, short mb_x, short mb_y)
void get_original_block (ImageParameters *p_Img, InputParameters *p_Inp, MEBlock *mv_block)
void free_mv_block (InputParameters *p_Inp, MEBlock *mv_block)
void update_mv_block (Macroblock *currMB, MEBlock *mv_block, int h, int v)
void get_search_range (MEBlock *mv_block, InputParameters *p_Inp, short ref, int blocktype)
static void add_mvs (MotionVector *mv0, const MotionVector *mv1)
static MotionVector add_MVs (MotionVector mv0, const MotionVector *mv1)
static MotionVector pad_MVs (MotionVector mv0, MEBlock *mv_block)
static int weight_cost (int lambda, int bits)
static int mv_cost (const ImageParameters *p_Img, int lambda, const MotionVector *mv, const MotionVector *pmv)
static int ref_cost (const ImageParameters *p_Img, int lambda, short ref, int list_offset)


Detailed Description

array definition for motion search

Author:
Inge Lille-Langoy <inge.lille-langoy@telenor.com>
Alexis Michael Tourapis <alexis.tourapis@dolby.com>

Definition in file mv_search.h.


Function Documentation

int BlockMotionSearch ( Macroblock currMB,
MEBlock *  mv_block,
int  mb_x,
int  mb_y,
int *  lambda_factor 
)

Block motion search.

< minimum motion cost after search

Parameters:
currMB Current Macroblock
mv_block Motion estimation information block
mb_x x-coordinate inside macroblock
mb_y y-coordinate inside macroblock
lambda_factor lagrangian parameter for determining motion cost

Definition at line 835 of file mv_search.c.

References slice::all_mv, BiPredBlockMotionSearch(), clip_mv_range(), inp_par_enc::DisableSubpelME, F_PEL, FindSkipModeMotionVector(), get_neighbors(), GetSkipCostMB(), is_bipred_enabled(), storable_picture::motion, pic_motion_params::mv, macroblock::p_Img, macroblock::p_slice, macroblock::pix_x, PrepareMEParams(), Q_PEL, pic_motion_params::ref_idx, slice::slice_type, smpUMHEX_setup(), img_par::start_me_refinement_hp, and UMHEXSetMotionVectorPredictor().

Referenced by PartitionMotionSearch(), and SubPartitionMotionSearch().

Here is the call graph for this function:

void Clear_Motion_Search_Module ( ImageParameters p_Img,
InputParameters p_Inp 
)

Free memory used by motion search.

Definition at line 503 of file mv_search.c.

References ClearFastFullIntegerSearch(), free_mem4Dint(), inp_par_enc::IntraProfile, and inp_par_enc::search_range.

Referenced by free_encoder_memory().

Here is the call graph for this function:

void FindSkipModeMotionVector ( Macroblock currMB  ) 

void free_mv_block ( InputParameters p_Inp,
MEBlock *  mv_block 
)

free motion vector block

Definition at line 777 of file mv_search.c.

References free_mem1Dpel().

Referenced by PartitionMotionSearch(), and SubPartitionMotionSearch().

Here is the call graph for this function:

void Get_Direct_MV_Spatial_MBAFF ( Macroblock currMB  ) 

void Get_Direct_MV_Spatial_Normal ( Macroblock currMB  ) 

void Get_Direct_MV_Temporal ( Macroblock currMB  ) 

Calculate Temporal Direct Mode Motion Vectors.

invalid index. Default to zero even though this case should not happen

Definition at line 1775 of file mv_search.c.

References slice::all_mv, macroblock::block_x, macroblock::block_y, slice::direct_pdir, slice::direct_ref_idx, macroblock::mbAddrX, motion_params::mv, macroblock::opix_y, out_of_bounds_mvs(), macroblock::p_Img, macroblock::p_slice, macroblock::pix_x, motion_params::ref_idx, motion_params::ref_pic_id, slice::wbp_weight, and YUV400.

Referenced by init_slice().

Here is the call graph for this function:

void get_neighbors ( Macroblock currMB,
PixelPos block,
int  mb_x,
int  mb_y,
int  blockshape_x 
)

Get current block spatial neighbors.

Definition at line 280 of file mv_search.c.

References get4x4Neighbour(), and macroblock::p_Img.

Referenced by BlockMotionSearch(), FindSkipModeMotionVector(), Get_Direct_MV_Spatial_MBAFF(), Get_Direct_MV_Spatial_Normal(), SetupFastFullPelSearch(), and writeMotionVector8x8().

Here is the call graph for this function:

void get_search_range ( MEBlock *  mv_block,
InputParameters p_Inp,
short  ref,
int  blocktype 
)

Set search range. This needs to be changed to provide 2D support.

Definition at line 68 of file mv_search.c.

Referenced by PartitionMotionSearch(), and SubPartitionMotionSearch().

void init_ME_engine ( Macroblock currMB  ) 

void Init_Motion_Search_Module ( ImageParameters p_Img,
InputParameters p_Inp 
)

void init_mv_block ( Macroblock currMB,
MEBlock *  mv_block,
short  blocktype,
int  list,
char  ref_idx,
short  mb_x,
short  mb_y 
)

Init motion vector block.

Definition at line 706 of file mv_search.c.

References F_PEL, get_mem1Dpel(), H_PEL, no_mem_exit(), macroblock::p_Img, macroblock::p_slice, Q_PEL, slice::slice_type, inp_par_enc::UseWeightedReferenceME, and slice::weighted_prediction.

Referenced by PartitionMotionSearch(), and SubPartitionMotionSearch().

Here is the call graph for this function:

void PartitionMotionSearch ( Macroblock currMB,
int  ,
int  ,
int *   
)

void PrepareBiPredMEParams ( Slice currSlice,
MEBlock *  mv_block,
int  ChromaMEEnable,
int  list,
int  list_offset,
int  ref 
)

Prepare Motion Estimation parameters for bipred list ME.

Definition at line 218 of file mv_search.c.

References slice::wbp_weight, and slice::wp_offset.

Referenced by BiPredBlockMotionSearch().

void PrepareMEParams ( Slice currSlice,
MEBlock *  mv_block,
int  ChromaMEEnable,
int  list,
int  ref 
)

Prepare Motion Estimation parameters for single list ME.

Definition at line 195 of file mv_search.c.

References slice::wp_offset, and slice::wp_weight.

Referenced by BlockMotionSearch().

void set_access_method ( int *  access_method,
MotionVector blk,
int  min_x,
int  min_y,
int  max_x,
int  max_y 
)

Set ME access method.

Definition at line 122 of file mv_search.c.

References FAST_ACCESS, and UMV_ACCESS.

void SubPartitionMotionSearch ( Macroblock currMB,
int  ,
int  ,
int *   
)


Documentation generated with DoxyGen