#include "contributors.h"
#include <limits.h>
#include "global.h"
#include "image.h"
#include "memalloc.h"
#include "mb_access.h"
#include "refbuf.h"
#include "me_distortion.h"
#include "me_fullsearch.h"
#include "conformance.h"
#include "mv-search.h"

Go to the source code of this file.
Defines | |
| #define | ADD_UP_BLOCKS() _o=*_bo; _i=*_bi; _j=*_bj; for(pos=0;pos<max_pos;pos++) _o[pos] = _i[pos] + _j[pos]; |
| #define | INCREMENT(inc) _bo+=inc; _bi+=inc; _bj+=inc; |
| #define | GEN_ME 0 |
Functions | |
| void | InitializeFastFullIntegerSearch (void) |
| void | ClearFastFullIntegerSearch () |
| void | ResetFastFullIntegerSearch () |
| void | SetupLargerBlocks (int list, int refindex, int max_pos) |
| void | SetupFastFullPelSearch (Macroblock *currMB, short ref, int list) |
| int | FastFullPelBlockMotionSearch (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) |
Variables | |
| short * | spiral_search_x |
| short * | spiral_search_y |
| static int ** | search_setup_done |
| static int ** | search_center_x |
| static int ** | search_center_y |
| static int ** | pos_00 |
| static distpel ***** | BlockSAD |
| static int ** | max_search_range |
Definition in file me_fullfast.c.
| #define GEN_ME 0 |
| void ClearFastFullIntegerSearch | ( | void | ) |
function for deleting the arrays for fast integer motion estimation
Definition at line 140 of file me_fullfast.c.
References BlockSAD, ImageParameters::max_num_references, pos_00, search_center_x, search_center_y, and search_setup_done.
Referenced by Clear_Motion_Search_Module().
| int FastFullPelBlockMotionSearch | ( | 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 Full pixel block motion search.
Definition at line 799 of file me_fullfast.c.
References BlockSAD, ImageParameters::opix_x, ImageParameters::opix_y, pos_00, InputParameters::rdopt, search_center_x, search_center_y, and search_setup_done.
Referenced by init_ME_engine().
| void InitializeFastFullIntegerSearch | ( | void | ) |
Full pixel block motion search.
function creating arrays for fast integer motion estimation
Definition at line 61 of file me_fullfast.c.
References BlockSAD, InputParameters::full_search, ImageParameters::max_num_references, no_mem_exit(), pos_00, search_center_x, search_center_y, InputParameters::search_range, and search_setup_done.
Referenced by Init_Motion_Search_Module().

| void ResetFastFullIntegerSearch | ( | void | ) |
function resetting flags for fast integer motion estimation (have to be called in start_macroblock())
Definition at line 186 of file me_fullfast.c.
References ImageParameters::max_num_references, and search_setup_done.
Referenced by start_macroblock().
| void SetupLargerBlocks | ( | int | list, | |
| int | refindex, | |||
| int | max_pos | |||
| ) |
calculation of SAD for larger blocks on the basis of 4x4 blocks
Definition at line 199 of file me_fullfast.c.
References BlockSAD.
distpel***** BlockSAD [static] |
SAD for all blocksize, ref. frames and motion vectors.
Definition at line 43 of file me_fullfast.c.
Referenced by ClearFastFullIntegerSearch(), FastFullPelBlockMotionSearch(), InitializeFastFullIntegerSearch(), and SetupLargerBlocks().
int** pos_00 [static] |
position of (0,0) vector
Definition at line 42 of file me_fullfast.c.
Referenced by ClearFastFullIntegerSearch(), FastFullPelBlockMotionSearch(), and InitializeFastFullIntegerSearch().
int** search_center_x [static] |
absolute search center for fast full motion search
Definition at line 40 of file me_fullfast.c.
Referenced by ClearFastFullIntegerSearch(), FastFullPelBlockMotionSearch(), and InitializeFastFullIntegerSearch().
int** search_center_y [static] |
absolute search center for fast full motion search
Definition at line 41 of file me_fullfast.c.
Referenced by ClearFastFullIntegerSearch(), FastFullPelBlockMotionSearch(), and InitializeFastFullIntegerSearch().
int** search_setup_done [static] |
flag if all block SAD's have been calculated yet
Definition at line 39 of file me_fullfast.c.
Referenced by ClearFastFullIntegerSearch(), FastFullPelBlockMotionSearch(), InitializeFastFullIntegerSearch(), and ResetFastFullIntegerSearch().