00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016 #ifndef _MV_SEARCH_H_
00017 #define _MV_SEARCH_H_
00018
00019 typedef struct {
00020 int min_x;
00021 int max_x;
00022 int min_y;
00023 int max_y;
00024 } SearchWindow;
00025
00026
00027 extern int* mvbits;
00028
00029 extern int *byte_abs;
00030 extern SearchWindow searchrange;
00031
00032 extern void get_neighbors(Macroblock *currMB,
00033 PixelPos *block_a, PixelPos *block_b, PixelPos *block_c, PixelPos *block_d,
00034 int mb_x, int mb_y, int blockshape_x);
00035
00036 extern void set_access_method(int *access_method, MotionVector *blk, int min_x, int min_y, int max_x, int max_y);
00037
00038 extern int (*BiPredME) (Macroblock *, imgpel *, short, int, char ***, short ****,
00039 int, int, int, MotionVector *, MotionVector *, MotionVector *, MotionVector *, int, int, int, int, int);
00040
00041 extern int (*SubPelBiPredME)(imgpel* orig_pic, short ref, int list, int pic_pix_x, int pic_pix_y,
00042 int blocktype, MotionVector *pred_mv1, MotionVector *pred_mv2, MotionVector *mv1, MotionVector *mv2,
00043 int search_pos2, int search_pos4, int min_mcost, int* lambda_factor, int apply_weights);
00044 extern int (*SubPelME) (imgpel* orig_pic, short ref, int list, int list_offset, int pic_pix_x, int pic_pix_y,
00045 int blocktype, MotionVector *pred_mv, MotionVector *mv,
00046 int search_pos2, int search_pos4, int min_mcost, int* lambda_factor, int apply_weights);
00047
00048 extern void SetMotionVectorPredictor (Macroblock *currMB, short pmv[2], char **refPic, short ***tmp_mv,
00049 short ref_frame, int list, int block_x, int block_y, int blockshape_x, int blockshape_y);
00050 extern void GetMotionVectorPredictor (Macroblock *currMB, PixelPos *block_a, PixelPos *block_b, PixelPos *block_c,
00051 short pmv[2], char **refPic, short ***tmp_mv, short ref_frame, int mb_x, int mb_y, int bx, int by);
00052
00053 extern void PrepareMEParams (int apply_weights, int ChromaMEEnable, int list, int ref);
00054 extern void PrepareBiPredMEParams(int apply_weights, int ChromaMEEnable, int list, int list_offset, int ref);
00055
00056 extern void Init_Motion_Search_Module (void);
00057 extern void Clear_Motion_Search_Module (void);
00058
00059 #endif
00060