#include "mbuffer.h"


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 |
Definition in file me_umhexsmp.h.
| 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().

| 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().

| 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 | |||
| ) |
smpUMHEXBipredIntegerPelBlockMotionSearch: fast pixel block motion search for bipred mode
Definition at line 803 of file me_umhexsmp.c.
References InputParameters::blc_size, computeBiPredSAD1(), computeBiPredSAD2(), IMG_PAD_SIZE_TIMES4, storable_picture::imgUV_sub, macroblock::list_offset, storable_picture::p_curr_img_sub, storable_picture::size_x, storable_picture::size_x_cr_pad, storable_picture::size_x_pad, storable_picture::size_y, storable_picture::size_y_cr_pad, and storable_picture::size_y_pad.
Referenced by init_ME_engine().

| 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 | |||
| ) |
Sub pixel block motion search enhanced.
Definition at line 420 of file me_umhexsmp.c.
References InputParameters::blc_size, IMG_PAD_SIZE, storable_picture::imgUV_sub, storable_picture::p_curr_img_sub, Q_PEL, InputParameters::rdopt, storable_picture::size_x, storable_picture::size_x_cr_pad, storable_picture::size_x_pad, storable_picture::size_y, storable_picture::size_y_cr_pad, storable_picture::size_y_pad, and ImageParameters::type.
| 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 | |||
| ) |
Fast integer pixel block motion estimation.
Definition at line 149 of file me_umhexsmp.c.
References InputParameters::blc_size, F_PEL, IMG_PAD_SIZE_TIMES4, storable_picture::imgUV_sub, macroblock::list_offset, storable_picture::p_curr_img_sub, storable_picture::size_x, storable_picture::size_x_cr_pad, storable_picture::size_x_pad, storable_picture::size_y, storable_picture::size_y_cr_pad, and storable_picture::size_y_pad.
Referenced by init_ME_engine().
| 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 | |||
| ) |
Fast sub pixel block motion estimation.
Definition at line 588 of file me_umhexsmp.c.
References InputParameters::blc_size, IMG_PAD_SIZE, storable_picture::imgUV_sub, storable_picture::p_curr_img_sub, Q_PEL, storable_picture::size_x, storable_picture::size_x_cr_pad, storable_picture::size_x_pad, storable_picture::size_y, storable_picture::size_y_cr_pad, and storable_picture::size_y_pad.