21 #ifndef AVCODEC_MOTION_EST_H 
   22 #define AVCODEC_MOTION_EST_H 
   32 #if ARCH_IA64 // Limit static arrays to avoid gcc failing "short data segment overflowed" 
   37 #define MAX_DMV (2*MAX_MV) 
   38 #define ME_MAP_SIZE 64 
   96                              int *mx_ptr, 
int *my_ptr, 
int dmin,
 
   97                              int src_index, 
int ref_index,
 
  104     static const uint8_t h263_chroma_roundtab[16] = {
 
  106         0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 1, 1,
 
  108     return h263_chroma_roundtab[x & 0xf] + (x >> 3);
 
  120                           int P[10][2], 
int src_index, 
int ref_index,
 
  125                     int ref_index, 
int size, 
int h, 
int add_rate);
 
  128                       int16_t (*mv_table)[2], 
int type);
 
  133                      int type, 
int truncate);
 
uint8_t * scratchpad
data area for the ME algo, so that the ME does not need to malloc/free. 
int skip
set if ME is skipped for the current MB 
int last_mv[2][2][2]
last MV, used for MV prediction in MPEG-1 & B-frame MPEG-4 
int pre_pass
= 1 for the pre pass 
int ff_epzs_motion_search(struct MpegEncContext *s, int *mx_ptr, int *my_ptr, int P[10][2], int src_index, int ref_index, int16_t(*last_mv)[2], int ref_mv_scale, int size, int h)
uint8_t * current_mv_penalty
void(* qpel_mc_func)(uint8_t *dst, const uint8_t *src, ptrdiff_t stride)
uint32_t * score_map
map to store the scores 
uint8_t(* mv_penalty)[MAX_DMV *2+1]
bit amount needed to encode a MV 
op_pixels_func(* hpel_put)[4]
int ff_get_mb_score(struct MpegEncContext *s, int mx, int my, int src_index, int ref_index, int size, int h, int add_rate)
int ff_get_best_fcode(struct MpegEncContext *s, int16_t(*mv_table)[2], int type)
Motion estimation context. 
qpel_mc_func(* qpel_put)[16]
op_pixels_func(* hpel_avg)[4]
void ff_fix_long_p_mvs(struct MpegEncContext *s)
int ff_pre_estimate_p_frame_motion(struct MpegEncContext *s, int mb_x, int mb_y)
void ff_estimate_p_frame_motion(struct MpegEncContext *s, int mb_x, int mb_y)
void(* op_pixels_func)(uint8_t *block, const uint8_t *pixels, ptrdiff_t line_size, int h)
int penalty_factor
an estimate of the bits required to code a given mv value, e.g. 
Libavcodec external API header. 
main external API structure. 
static int ff_h263_round_chroma(int x)
int f_code
forward MV resolution 
void ff_fix_long_mvs(struct MpegEncContext *s, uint8_t *field_select_table, int field_select, int16_t(*mv_table)[2], int f_code, int type, int truncate)
qpel_mc_func(* qpel_avg)[16]
int64_t mc_mb_var_sum_temp
int direct_basis_mv[4][2]
int ff_init_me(struct MpegEncContext *s)
int co_located_mv[4][2]
mv from last P-frame for direct mode ME 
uint32_t * map
map to avoid duplicate evaluations 
void ff_estimate_b_frame_motion(struct MpegEncContext *s, int mb_x, int mb_y)
int(* sub_motion_search)(struct MpegEncContext *s, int *mx_ptr, int *my_ptr, int dmin, int src_index, int ref_index, int size, int h)