⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 me_umhex.h

📁 H.264编码实现
💻 H
📖 第 1 页 / 共 2 页
字号:
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 + -