motion vector related code (prediction, reconstruction, motion compensation)


Defines

#define GET_PTS_DIFF(a, b)   ((a - b + 8192) & 0x1FFF)

Functions

static void rv34_pred_mv (RV34DecContext *r, int block_type, int subblock_no, int dmv_no)
 motion vector prediction
static int calc_add_mv (RV34DecContext *r, int dir, int val)
 Calculate motion vector component that should be added for direct blocks.
static void rv34_pred_b_vector (int A[2], int B[2], int C[2], int A_avail, int B_avail, int C_avail, int *mx, int *my)
 Predict motion vector for B-frame macroblock.
static void rv34_pred_mv_b (RV34DecContext *r, int block_type, int dir)
 motion vector prediction for B-frames
static void rv34_pred_mv_rv3 (RV34DecContext *r, int block_type, int dir)
 motion vector prediction - RV3 version
static void rv34_mc (RV34DecContext *r, const int block_type, const int xoff, const int yoff, int mv_off, const int width, const int height, int dir, const int thirdpel, qpel_mc_func(*qpel_mc)[16], h264_chroma_mc_func(*chroma_mc))
 generic motion compensation function
static void rv34_mc_1mv (RV34DecContext *r, const int block_type, const int xoff, const int yoff, int mv_off, const int width, const int height, int dir)
static void rv34_mc_2mv (RV34DecContext *r, const int block_type)
static void rv34_mc_2mv_skip (RV34DecContext *r)
static int rv34_decode_mv (RV34DecContext *r, int block_type)
 Decode motion vector differences and perform motion vector reconstruction and motion compensation.

Variables

static const uint8_t part_sizes_w [RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2 }
 macroblock partition width in 8x8 blocks
static const uint8_t part_sizes_h [RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2 }
 macroblock partition height in 8x8 blocks
static const uint8_t avail_indexes [4] = { 5, 6, 9, 10 }
 availability index for subblocks
static const int chroma_coeffs [3] = { 0, 3, 5 }
static const int num_mvs [RV34_MB_TYPES] = { 0, 0, 1, 4, 1, 1, 0, 0, 2, 2, 2, 1 }
 number of motion vectors in each macroblock type

Define Documentation

#define GET_PTS_DIFF ( a,
 )     ((a - b + 8192) & 0x1FFF)

Definition at line 471 of file rv34.c.

Referenced by calc_add_mv().


Function Documentation

static int calc_add_mv ( RV34DecContext r,
int  dir,
int  val 
) [static]

Calculate motion vector component that should be added for direct blocks.

Definition at line 476 of file rv34.c.

Referenced by rv34_decode_mv().

static int rv34_decode_mv ( RV34DecContext r,
int  block_type 
) [static]

Decode motion vector differences and perform motion vector reconstruction and motion compensation.

Definition at line 763 of file rv34.c.

Referenced by rv34_decode_mb_header().

static void rv34_mc ( RV34DecContext r,
const int  block_type,
const int  xoff,
const int  yoff,
int  mv_off,
const int  width,
const int  height,
int  dir,
const int  thirdpel,
qpel_mc_func(*)  qpel_mc[16],
h264_chroma_mc_func chroma_mc 
) [inline, static]

generic motion compensation function

Parameters:
r decoder context
block_type type of the current block
xoff horizontal offset from the start of the current block
yoff vertical offset from the start of the current block
mv_off offset to the motion vector information
width width of the current partition in 8x8 blocks
height height of the current partition in 8x8 blocks
dir motion compensation direction (i.e. from the last or the next reference frame)
thirdpel motion vectors are specified in 1/3 of pixel
qpel_mc a set of functions used to perform luma motion compensation
chroma_mc a set of functions used to perform chroma motion compensation

Definition at line 627 of file rv34.c.

Referenced by rv34_mc_1mv(), rv34_mc_2mv(), and rv34_mc_2mv_skip().

static void rv34_mc_1mv ( RV34DecContext r,
const int  block_type,
const int  xoff,
const int  yoff,
int  mv_off,
const int  width,
const int  height,
int  dir 
) [static]

Definition at line 713 of file rv34.c.

Referenced by rv34_decode_mv().

static void rv34_mc_2mv ( RV34DecContext r,
const int  block_type 
) [static]

Definition at line 724 of file rv34.c.

Referenced by rv34_decode_mv().

static void rv34_mc_2mv_skip ( RV34DecContext r  )  [static]

Definition at line 738 of file rv34.c.

Referenced by rv34_decode_mv().

static void rv34_pred_b_vector ( int  A[2],
int  B[2],
int  C[2],
int  A_avail,
int  B_avail,
int  C_avail,
int *  mx,
int *  my 
) [inline, static]

Predict motion vector for B-frame macroblock.

Definition at line 490 of file rv34.c.

Referenced by rv34_pred_mv_b().

static void rv34_pred_mv ( RV34DecContext r,
int  block_type,
int  subblock_no,
int  dmv_no 
) [static]

motion vector prediction

Motion prediction performed for the block by using median prediction of motion vectors from the left, top and right top blocks but in corner cases some other vectors may be used instead.

Definition at line 422 of file rv34.c.

Referenced by rv34_decode_mv().

static void rv34_pred_mv_b ( RV34DecContext r,
int  block_type,
int  dir 
) [static]

motion vector prediction for B-frames

Definition at line 510 of file rv34.c.

Referenced by rv34_decode_mv().

static void rv34_pred_mv_rv3 ( RV34DecContext r,
int  block_type,
int  dir 
) [static]

motion vector prediction - RV3 version

Definition at line 564 of file rv34.c.

Referenced by rv34_decode_mv().


Variable Documentation

const uint8_t avail_indexes[4] = { 5, 6, 9, 10 } [static]

availability index for subblocks

Definition at line 413 of file rv34.c.

Referenced by rv34_pred_mv(), and rv34_pred_mv_rv3().

const int chroma_coeffs[3] = { 0, 3, 5 } [static]

Definition at line 610 of file rv34.c.

Referenced by rv34_mc().

const int num_mvs[RV34_MB_TYPES] = { 0, 0, 1, 4, 1, 1, 0, 0, 2, 2, 2, 1 } [static]

number of motion vectors in each macroblock type

Definition at line 757 of file rv34.c.

Referenced by tgv_decode_inter().

const uint8_t part_sizes_h[RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 1, 2, 2, 2 } [static]

macroblock partition height in 8x8 blocks

Definition at line 410 of file rv34.c.

Referenced by rv34_pred_mv().

const uint8_t part_sizes_w[RV34_MB_TYPES] = { 2, 2, 2, 1, 2, 2, 2, 2, 2, 1, 2, 2 } [static]

macroblock partition width in 8x8 blocks

Definition at line 407 of file rv34.c.

Referenced by rv34_pred_mv().


Generated on Fri Oct 26 02:35:46 2012 for FFmpeg by  doxygen 1.5.8