me_umhexsmp.h File Reference

Fast integer pixel and sub pixel motion estimation Improved and simplified from the original UMHexagonS algorithms See JVT-P021 for details. More...

#include "mbuffer.h"

Include dependency graph for me_umhexsmp.h:

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

Go to the source code of this file.

Functions

void smpUMHEX_init (void)
int smpUMHEX_get_mem (void)
void smpUMHEX_free_mem (void)
void smpUMHEX_decide_intrabk_SAD (void)
void smpUMHEX_skip_intrabk_SAD (int, int)
void smpUMHEX_setup (short, int, int, int, int, short ******)
int smpUMHEXIntegerPelBlockMotionSearch (Macroblock *currMB, imgpel *orig_pic, short ref, int list, char ***refPic, short ****tmp_mv, int pic_pix_x, int pic_pix_y, int blocktype, MotionVector *pred_mv, MotionVector *mv, int search_range, int min_mcost, int lambda_factor, int apply_weights)
int smpUMHEXSubPelBlockMotionSearch (imgpel *orig_pic, short ref, int list, int list_offset, int pic_pix_x, int pic_pix_y, int blocktype, MotionVector *pred, MotionVector *mv, int search_pos2, int search_pos4, int min_mcost, int lambda_factor, int apply_weights)
int smpUMHEXFullSubPelBlockMotionSearch (imgpel *orig_pic, short ref, int list, int list_offset, int pic_pix_x, int pic_pix_y, int blocktype, MotionVector *pred_mv, MotionVector *mv, int search_pos2, int search_pos4, int min_mcost, int lambda_factor, int apply_weights)
int smpUMHEXBipredIntegerPelBlockMotionSearch (Macroblock *currMB, imgpel *cur_pic, short ref, int list, char ***refPic, short ****tmp_mv, int pic_pix_x, int pic_pix_y, int blocktype, MotionVector *pred_mv1, MotionVector *pred_mv2, MotionVector *mv1, MotionVector *mv2, int search_range, int min_mcost, int iteration_no, int lambda_factor, int apply_weights)
int smpUMHEXSubPelBlockME (imgpel *orig_pic, short ref, int list, int list_offset, int pic_pix_x, int pic_pix_y, int blocktype, MotionVector *pred_mv, MotionVector *mv, int search_pos2, int search_pos4, int min_mcost, int *lambda, int apply_weights)

Variables

unsigned short SymmetricalCrossSearchThreshold1
unsigned short SymmetricalCrossSearchThreshold2
unsigned short ConvergeThreshold
unsigned short SubPelThreshold1
unsigned short SubPelThreshold3
byte ** smpUMHEX_SearchState
int *** smpUMHEX_l0_cost
int *** smpUMHEX_l1_cost
byte * smpUMHEX_flag_intra
int smpUMHEX_flag_intra_SAD
int smpUMHEX_pred_SAD_uplayer
short smpUMHEX_pred_MV_uplayer_X
short smpUMHEX_pred_MV_uplayer_Y


Detailed Description

Fast integer pixel and sub pixel motion estimation Improved and simplified from the original UMHexagonS algorithms See JVT-P021 for details.

Author:
Main contributors: (see contributors.h for copyright, address and affiliation details)

Date:
6. Nov. 2006

Definition in file me_umhexsmp.h.


Function Documentation

void smpUMHEX_decide_intrabk_SAD ( void   ) 

Set neighbouring block mode (intra/inter) used for fast motion estimation.

Definition at line 1092 of file me_umhexsmp.c.

References ImageParameters::pix_x, ImageParameters::pix_y, and ImageParameters::type.

Referenced by encode_one_macroblock_high(), encode_one_macroblock_highfast(), encode_one_macroblock_highloss(), and encode_one_macroblock_low().

void smpUMHEX_free_mem ( void   ) 

Free space for fast motion estimation.

Definition at line 132 of file me_umhexsmp.c.

References free_mem2D(), and free_mem3Dint().

Referenced by free_global_buffers().

Here is the call graph for this function:

int smpUMHEX_get_mem ( void   ) 

Allocation of space for fast motion estimation.

Definition at line 113 of file me_umhexsmp.c.

References get_mem2D(), get_mem3Dint(), ImageParameters::height, no_mem_exit(), and ImageParameters::width.

Referenced by init_global_buffers().

Here is the call graph for this function:

void smpUMHEX_init ( void   ) 

Set thresholds for fast motion estimation Those thresholds may be adjusted to trade off rate-distortion performance and simplified UMHEX speed.

Definition at line 98 of file me_umhexsmp.c.

Referenced by init_global_buffers().

void smpUMHEX_setup ( short  ,
int  ,
int  ,
int  ,
int  ,
short ******   
)

Set up prediction MV and prediction up layer cost used for fast motion estimation.

Definition at line 1158 of file me_umhexsmp.c.

References ImageParameters::pix_x, and ImageParameters::pix_y.

Referenced by BlockMotionSearch().

void smpUMHEX_skip_intrabk_SAD ( int  ,
int   
)

Set cost to zero if neighbouring block is intra used for fast motion estimation.

Definition at line 1125 of file me_umhexsmp.c.

References ImageParameters::number, ImageParameters::pix_x, and ImageParameters::type.

Referenced by encode_one_macroblock_high(), encode_one_macroblock_highfast(), encode_one_macroblock_highloss(), and encode_one_macroblock_low().

int smpUMHEXBipredIntegerPelBlockMotionSearch ( Macroblock *  currMB,
imgpel *  cur_pic,
short  ref,
int  list,
char ***  refPic,
short ****  tmp_mv,
int  pic_pix_x,
int  pic_pix_y,
int  blocktype,
MotionVector *  pred_mv1,
MotionVector *  pred_mv2,
MotionVector *  mv1,
MotionVector *  mv2,
int  search_range,
int  min_mcost,
int  iteration_no,
int  lambda_factor,
int  apply_weights 
)

int smpUMHEXFullSubPelBlockMotionSearch ( imgpel *  orig_pic,
short  ref,
int  list,
int  list_offset,
int  pic_pix_x,
int  pic_pix_y,
int  blocktype,
MotionVector *  pred_mv,
MotionVector *  mv,
int  search_pos2,
int  search_pos4,
int  min_mcost,
int  lambda_factor,
int  apply_weights 
)

int smpUMHEXIntegerPelBlockMotionSearch ( Macroblock *  currMB,
imgpel *  orig_pic,
short  ref,
int  list,
char ***  refPic,
short ****  tmp_mv,
int  pic_pix_x,
int  pic_pix_y,
int  blocktype,
MotionVector *  pred_mv,
MotionVector *  mv,
int  search_range,
int  min_mcost,
int  lambda_factor,
int  apply_weights 
)

int smpUMHEXSubPelBlockMotionSearch ( imgpel *  orig_pic,
short  ref,
int  list,
int  list_offset,
int  pic_pix_x,
int  pic_pix_y,
int  blocktype,
MotionVector *  pred,
MotionVector *  mv,
int  search_pos2,
int  search_pos4,
int  min_mcost,
int  lambda_factor,
int  apply_weights 
)


Documentation generated with DoxyGen