📄 me_umhex.h
字号:
int UMHEX_get_mem(void);
void UMHEX_free_mem(void);
void UMHEX_decide_intrabk_SAD(void);
void UMHEX_skip_intrabk_SAD(int best_mode, int ref_max);
void UMHEX_setup(short ref, int list, int block_y, int block_x, int blocktype, short ******all_mv);
int // ==> minimum motion cost after search
UMHEXIntegerPelBlockMotionSearch (Macroblock *currMB, // <-- current Macroblock
imgpel *orig_pic, // <-- not used
short ref, // <-- reference frame (0... or -1 (backward))
int list, // <-- reference picture list
int list_offset, // <-- MBAFF list offset
char ***refPic, // <-- reference array
short ****tmp_mv, // <-- mv array
int pic_pix_x, // <-- absolute x-coordinate of regarded AxB block
int pic_pix_y, // <-- absolute y-coordinate of regarded AxB block
int blocktype, // <-- block type (1-16x16 ... 7-4x4)
short pred_mv[2], // <-- motion vector predictor (x) in sub-pel units
short mv[2], // --> motion vector (x) - in pel units
int search_range, // <-- 1-d search range in pel units
int min_mcost, // <-- minimum motion cost (cost for center or huge value)
int lambda_factor, // <-- lagrangian parameter for determining motion cost
int apply_weights
);
int // ==> minimum motion cost after search
UMHEXSubPelBlockMotionSearch (
imgpel* orig_pic, // <-- original pixel values for the AxB block
short ref, // <-- reference frame (0... or -1 (backward))
int list, // <-- reference picture list
int list_offset, // <-- MBAFF list offset
int pic_pix_x, // <-- absolute x-coordinate of regarded AxB block
int pic_pix_y, // <-- absolute y-coordinate of regarded AxB block
int blocktype, // <-- block type (1-16x16 ... 7-4x4)
short pred_mv[2], // <-- motion vector predictor (x) in sub-pel units
short mv[2], // <--> in: search center (x) / out: motion vector (x) - in pel units
int search_pos2, // <-- search positions for half-pel search (default: 9)
int search_pos4, // <-- search positions for quarter-pel search (default: 9)
int min_mcost, // <-- minimum motion cost (cost for center or huge value)
int lambda_factor, // <-- lagrangian parameter for determining motion cost
int apply_weights
);
extern int UMHEXSubPelBlockME ( // ==> minimum motion cost after search
imgpel* orig_pic, // <-- original pixel values for the AxB block
short ref, // <-- reference frame (0... or -1 (backward))
int list, // <-- reference picture list
int list_offset, // <-- MBAFF list offset
int pic_pix_x, // <-- absolute x-coordinate of regarded AxB block
int pic_pix_y, // <-- absolute y-coordinate of regarded AxB block
int blocktype, // <-- block type (1-16x16 ... 7-4x4)
short pred_mv[2], // <-- motion vector predictor (x) in sub-pel units
short mv[2], // <--> in: search center (x) / out: motion vector (x) - in pel units
int search_pos2, // <-- search positions for half-pel search (default: 9)
int search_pos4, // <-- search positions for quarter-pel search (default: 9)
int min_mcost, // <-- minimum motion cost (cost for center or huge value)
int* lambda, // <-- lagrangian parameter for determining motion cost
int apply_weights
);
extern int // ==> minimum motion cost after search
SubPelBlockMotionSearch (imgpel* orig_pic, // <-- original pixel values for the AxB block
short ref, // <-- reference frame (0... or -1 (backward))
int list,
int list_offset, // <-- MBAFF list offset
int pic_pix_x, // <-- absolute x-coordinate of regarded AxB block
int pic_pix_y, // <-- absolute y-coordinate of regarded AxB block
int blocktype, // <-- block type (1-16x16 ... 7-4x4)
short pred_mv[2], // <-- motion vector predictor in sub-pel units
short mv[2], // <--> in: search center / out: motion vector - in pel units
int search_pos2, // <-- search positions for half-pel search (default: 9)
int search_pos4, // <-- search positions for quarter-pel search (default: 9)
int min_mcost, // <-- minimum motion cost (cost for center or huge value)
int *lambda_factor, // <-- lagrangian parameter for determining motion cost
int apply_weights);
int // ==> minimum motion cost after search
UMHEXBipredIntegerPelBlockMotionSearch (Macroblock *currMB, // <-- current Macroblock
imgpel* orig_pic, // <-- original pixel values for the AxB block
short ref, // <-- reference frame (0... or -1 (backward))
int list, // <-- Current reference list
int list_offset, // <-- MBAFF list offset
char ***refPic, // <-- reference array
short ****tmp_mv, // <-- mv array
int pic_pix_x, // <-- absolute x-coordinate of regarded AxB block
int pic_pix_y, // <-- absolute y-coordinate of regarded AxB block
int blocktype, // <-- block type (1-16x16 ... 7-4x4)
short pred_mv1[2], // <-- motion vector predictor (x|y) in sub-pel units
short pred_mv2[2], // <-- motion vector predictor (x|y) in sub-pel units
short mv[2], // <--> in: search center (x) / out: motion vector (x) - in pel units
short s_mv[2], // <--> in: search center (x) / out: motion vector (x) - in pel units
int search_range, // <-- 1-d search range in pel units
int min_mcost, // <-- minimum motion cost (cost for center or huge value)
int iteration_no, // <-- bi pred iteration number
int lambda_factor, // <-- lagrangian parameter for determining motion cost
int apply_weights
);
void UMHEXSetMotionVectorPredictor (Macroblock *currMB, short pmv[2], char **refPic, short ***tmp_mv,
short ref_frame, int list, int mb_x, int mb_y,
int blockshape_x, int blockshape_y, int *search_range);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -