me_fullfast.c File Reference

Motion Estimation using Full Search Fast. More...

#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"

Include dependency graph for me_fullfast.c:

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


Detailed Description

Motion Estimation using Full Search Fast.

Author:
Main contributors (see contributors.h for copyright, address and affiliation details)

Definition in file me_fullfast.c.


Define Documentation

#define GEN_ME   0

Setup the fast search for an macroblock.

Definition at line 271 of file me_fullfast.c.


Function Documentation

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

Here is the call graph for this function:

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.


Variable Documentation

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


Documentation generated with DoxyGen