Logo Search packages:      
Sourcecode: blender version File versions

motion_est.c File Reference

Detailed Description

Motion estimation.

Definition in file motion_est.c.

#include <stdlib.h>
#include <stdio.h>
#include <limits.h>
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include <assert.h>
#include "motion_est_template.c"

Go to the source code of this file.


struct  Minima


#define BIDIR_MAP(fx, fy, bx, by)   map[(motion_fx+fx)&7][(motion_fy+fy)&7][(motion_bx+bx)&7][(motion_by+by)&7]
#define CHECK_BIDIR(fx, fy, bx, by)
#define CHECK_BIDIR2(a, b, c, d)
#define CHECK_BIDIRR(a, b, c, d)
#define CHECK_SAD_HALF_MV(suffix, x, y)
#define FLAG_CHROMA   2
#define FLAG_DIRECT   4
#define FLAG_QPEL   1
#define P_LEFT   P[1]
#define P_MEDIAN   P[4]
#define P_MV1   P[9]
#define P_TOP   P[2]
#define P_TOPRIGHT   P[3]
#define SQ(a)   ((a)*(a))
#define Z_THRESHOLD   256


static int bidir_refine (MpegEncContext *s, int mb_x, int mb_y)
static int check_bidir_mv (MpegEncContext *s, int motion_fx, int motion_fy, int motion_bx, int motion_by, int pred_fx, int pred_fy, int pred_bx, int pred_by, int size, int h)
static int check_input_motion (MpegEncContext *s, int mb_x, int mb_y, int p_type)
static void clip_input_mv (MpegEncContext *s, int16_t *mv, int interlaced)
static always_inline int cmp (MpegEncContext *s, const int x, const int y, const int subx, const int suby, const int size, const int h, int ref_index, int src_index, me_cmp_func cmp_func, me_cmp_func chroma_cmp_func, const int flags)
static int direct_search (MpegEncContext *s, int mb_x, int mb_y)
void ff_estimate_b_frame_motion (MpegEncContext *s, int mb_x, int mb_y)
static int ff_estimate_motion_b (MpegEncContext *s, int mb_x, int mb_y, int16_t(*mv_table)[2], int ref_index, int f_code)
void ff_estimate_p_frame_motion (MpegEncContext *s, int mb_x, int mb_y)
void ff_fix_long_mvs (MpegEncContext *s, uint8_t *field_select_table, int field_select, int16_t(*mv_table)[2], int f_code, int type, int truncate)
void ff_fix_long_p_mvs (MpegEncContext *s)
int ff_get_best_fcode (MpegEncContext *s, int16_t(*mv_table)[2], int type)
void ff_init_me (MpegEncContext *s)
int ff_pre_estimate_p_frame_motion (MpegEncContext *s, int mb_x, int mb_y)
static int get_flags (MotionEstContext *c, int direct, int chroma)
static void get_limits (MpegEncContext *s, int x, int y)
static int h263_mv4_search (MpegEncContext *s, int mx, int my, int shift)
static void init_interlaced_ref (MpegEncContext *s, int ref_index)
static void init_mv4_ref (MotionEstContext *c)
static void init_ref (MotionEstContext *c, uint8_t *src[3], uint8_t *ref[3], uint8_t *ref2[3], int x, int y, int ref_index)
static int interlaced_search (MpegEncContext *s, int ref_index, int16_t(*mv_tables[2][2])[2], uint8_t *field_select_tables[2], int mx, int my, int user_field_select)
static int minima_cmp (const void *a, const void *b)
static void no_motion_search (MpegEncContext *s, int *mx_ptr, int *my_ptr)
static int sad_hpel_motion_search (MpegEncContext *s, int *mx_ptr, int *my_ptr, int dmin, int src_index, int ref_index, int size, int h)
static void set_p_mv_tables (MpegEncContext *s, int mx, int my, int mv4)
static int update_map_generation (MotionEstContext *c)
static int zero_cmp (void *s, uint8_t *a, uint8_t *b, int stride, int h)
static void zero_hpel (uint8_t *a, const uint8_t *b, int stride, int h)

Generated by  Doxygen 1.6.0   Back to index