libavcodec/mpegvideo_motion.c File Reference

#include <string.h>
#include "libavutil/avassert.h"
#include "avcodec.h"
#include "dsputil.h"
#include "mpegvideo.h"
#include "mjpegenc.h"
#include "msmpeg4.h"
#include <limits.h>

Go to the source code of this file.

Defines

#define OBMC_FILTER(x, t, l, m, r, b)   dst[x]= (t*top[x] + l*left[x] + m*mid[x] + r*right[x] + b*bottom[x] + 4)>>3
#define OBMC_FILTER4(x, t, l, m, r, b)
#define MID   0

Functions

static void gmc1_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture)
static void gmc_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture)
static int hpel_motion (MpegEncContext *s, uint8_t *dest, uint8_t *src, int src_x, int src_y, op_pixels_func *pix_op, int motion_x, int motion_y)
static av_always_inline void mpeg_motion_internal (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_based, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int is_mpeg12, int mb_y)
static void mpeg_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int mb_y)
static void mpeg_motion_field (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], int motion_x, int motion_y, int h, int mb_y)
static void put_obmc (uint8_t *dst, uint8_t *src[5], int stride)
static void obmc_motion (MpegEncContext *s, uint8_t *dest, uint8_t *src, int src_x, int src_y, op_pixels_func *pix_op, int16_t mv[5][2])
static void qpel_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int field_based, int bottom_field, int field_select, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16], int motion_x, int motion_y, int h)
static void chroma_4mv_motion (MpegEncContext *s, uint8_t *dest_cb, uint8_t *dest_cr, uint8_t **ref_picture, op_pixels_func *pix_op, int mx, int my)
 h263 chroma 4mv motion compensation.
static void prefetch_motion (MpegEncContext *s, uint8_t **pix, int dir)
static av_always_inline void MPV_motion_internal (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16], int is_mpeg12)
 motion compensation of a single macroblock
void ff_MPV_motion (MpegEncContext *s, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int dir, uint8_t **ref_picture, op_pixels_func(*pix_op)[4], qpel_mc_func(*qpix_op)[16])


Define Documentation

#define MID   0

Referenced by obmc_motion().

#define OBMC_FILTER ( x,
t,
l,
m,
r,
 )     dst[x]= (t*top[x] + l*left[x] + m*mid[x] + r*right[x] + b*bottom[x] + 4)>>3

Referenced by put_obmc().

#define OBMC_FILTER4 ( x,
t,
l,
m,
r,
 ) 

Value:

OBMC_FILTER(x         , t, l, m, r, b);\
    OBMC_FILTER(x+1       , t, l, m, r, b);\
    OBMC_FILTER(x  +stride, t, l, m, r, b);\
    OBMC_FILTER(x+1+stride, t, l, m, r, b);

Referenced by put_obmc().


Function Documentation

static void chroma_4mv_motion ( MpegEncContext s,
uint8_t dest_cb,
uint8_t dest_cr,
uint8_t **  ref_picture,
op_pixels_func pix_op,
int  mx,
int  my 
) [static]

h263 chroma 4mv motion compensation.

Definition at line 550 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

void ff_MPV_motion ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  dir,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
qpel_mc_func(*)  qpix_op[16] 
)

Definition at line 870 of file mpegvideo_motion.c.

Referenced by encode_mb_internal(), and MPV_decode_mb_internal().

static void gmc1_motion ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
uint8_t **  ref_picture 
) [static]

Definition at line 33 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

static void gmc_motion ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
uint8_t **  ref_picture 
) [static]

Definition at line 119 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

static int hpel_motion ( MpegEncContext s,
uint8_t dest,
uint8_t src,
int  src_x,
int  src_y,
op_pixels_func pix_op,
int  motion_x,
int  motion_y 
) [inline, static]

Definition at line 175 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal(), and obmc_motion().

static void mpeg_motion ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  field_select,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
int  motion_x,
int  motion_y,
int  h,
int  mb_y 
) [static]

Definition at line 338 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

static void mpeg_motion_field ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  bottom_field,
int  field_select,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
int  motion_x,
int  motion_y,
int  h,
int  mb_y 
) [static]

Definition at line 356 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

static av_always_inline void mpeg_motion_internal ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  field_based,
int  bottom_field,
int  field_select,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
int  motion_x,
int  motion_y,
int  h,
int  is_mpeg12,
int  mb_y 
) [static]

Definition at line 211 of file mpegvideo_motion.c.

Referenced by mpeg_motion(), and mpeg_motion_field().

static av_always_inline void MPV_motion_internal ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  dir,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
qpel_mc_func(*)  qpix_op[16],
int  is_mpeg12 
) [static]

motion compensation of a single macroblock

Parameters:
s context
dest_y luma destination pointer
dest_cb chroma cb/u destination pointer
dest_cr chroma cr/v destination pointer
dir direction (0->forward, 1->backward)
ref_picture array[3] of pointers to the 3 planes of the reference picture
pix_op halfpel motion compensation function (average or put normally)
qpix_op qpel motion compensation function (average or put normally) the motion vectors are taken from s->mv and the MV type from s->mv_type

Definition at line 625 of file mpegvideo_motion.c.

Referenced by ff_MPV_motion().

static void obmc_motion ( MpegEncContext s,
uint8_t dest,
uint8_t src,
int  src_x,
int  src_y,
op_pixels_func pix_op,
int16_t  mv[5][2] 
) [inline, static]

Definition at line 428 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().

static void prefetch_motion ( MpegEncContext s,
uint8_t **  pix,
int  dir 
) [inline, static]

Definition at line 601 of file mpegvideo_motion.c.

static void put_obmc ( uint8_t dst,
uint8_t src[5],
int  stride 
) [inline, static]

Definition at line 376 of file mpegvideo_motion.c.

Referenced by obmc_motion().

static void qpel_motion ( MpegEncContext s,
uint8_t dest_y,
uint8_t dest_cb,
uint8_t dest_cr,
int  field_based,
int  bottom_field,
int  field_select,
uint8_t **  ref_picture,
op_pixels_func(*)  pix_op[4],
qpel_mc_func(*)  qpix_op[16],
int  motion_x,
int  motion_y,
int  h 
) [inline, static]

Definition at line 455 of file mpegvideo_motion.c.

Referenced by MPV_motion_internal().


Generated on Fri Oct 26 02:50:06 2012 for FFmpeg by  doxygen 1.5.8