RV30/40 4x4 block decoding functions


Modules

 VC1 Macroblock-level functions in Simple/Main Profiles

Defines

#define GET_MQUANT()
 Get macroblock-level quantizer scale.
#define GET_MVDATA(_dmv_x, _dmv_y)
 Get MV differentials.

Functions

static int rv34_decode_cbp (GetBitContext *gb, RV34VLC *vlc, int table)
 Decode coded block pattern.
static void decode_coeff (DCTELEM *dst, int coef, int esc, GetBitContext *gb, VLC *vlc)
 Get one coefficient value from the bistream and store it.
static void decode_subblock (DCTELEM *dst, int code, const int is_block2, GetBitContext *gb, VLC *vlc)
 Decode 2x2 subblock of coefficients.
static void rv34_decode_block (DCTELEM *dst, GetBitContext *gb, RV34VLC *rvlc, int fc, int sc)
 Decode coefficients for 4x4 block.
static void rv34_dequant4x4 (DCTELEM *block, int Qdc, int Q)
 Dequantize ordinary 4x4 block.
static void rv34_dequant4x4_16x16 (DCTELEM *block, int Qdc, int Q)
 Dequantize 4x4 block of DC values for 16x16 macroblock.
static void vc1_pred_mv (MpegEncContext *s, int n, int dmv_x, int dmv_y, int mv1, int r_x, int r_y, uint8_t *is_intra)
 Predict and set motion vector.
static void vc1_interp_mc (VC1Context *v)
 Motion compensation for direct or interpolated blocks in B-frames.
static av_always_inline int scale_mv (int value, int bfrac, int inv, int qs)
static void vc1_b_mc (VC1Context *v, int dmv_x[2], int dmv_y[2], int direct, int mode)
 Reconstruct motion vector for B-frame and do motion compensation.
static void vc1_pred_b_mv (VC1Context *v, int dmv_x[2], int dmv_y[2], int direct, int mvtype)
static int vc1_i_pred_dc (MpegEncContext *s, int overlap, int pq, int n, int16_t **dc_val_ptr, int *dir_ptr)
 Get predicted DC value for I-frames only prediction dir: left=0, top=1.
static int vc1_pred_dc (MpegEncContext *s, int overlap, int pq, int n, int a_avail, int c_avail, int16_t **dc_val_ptr, int *dir_ptr)
 Get predicted DC value prediction dir: left=0, top=1.

Detailed Description

See also:
7.1.4, p91 and 8.1.1.7, p(1)04

Define Documentation

 
#define GET_MQUANT (  ) 

Get macroblock-level quantizer scale.

Definition at line 1518 of file vc1.c.

Referenced by vc1_decode_b_mb(), vc1_decode_i_blocks_adv(), and vc1_decode_p_mb().

#define GET_MVDATA ( _dmv_x,
_dmv_y   ) 

Get MV differentials.

See also:
MVDATA decoding from 8.3.5.2, p(1)20
Parameters:
_dmv_x Horizontal differential for decoded MV
_dmv_y Vertical differential for decoded MV

Definition at line 1558 of file vc1.c.

Referenced by vc1_decode_b_mb(), and vc1_decode_p_mb().


Function Documentation

static void decode_coeff ( DCTELEM dst,
int  coef,
int  esc,
GetBitContext gb,
VLC vlc 
) [inline, static]

Get one coefficient value from the bistream and store it.

Definition at line 251 of file rv34.c.

Referenced by decode_subblock().

static void decode_subblock ( DCTELEM dst,
int  code,
const int  is_block2,
GetBitContext gb,
VLC vlc 
) [inline, static]

Decode 2x2 subblock of coefficients.

Definition at line 271 of file rv34.c.

Referenced by rv34_decode_block().

static void rv34_decode_block ( DCTELEM dst,
GetBitContext gb,
RV34VLC rvlc,
int  fc,
int  sc 
) [inline, static]

Decode coefficients for 4x4 block.

This is done by filling 2x2 subblocks with decoded coefficients in this order (the same for subblocks and subblock coefficients): o--o / / o--o

Definition at line 301 of file rv34.c.

Referenced by rv34_decode_macroblock().

static int rv34_decode_cbp ( GetBitContext gb,
RV34VLC vlc,
int  table 
) [static]

Decode coded block pattern.

Definition at line 218 of file rv34.c.

Referenced by rv34_decode_mb_header().

static void rv34_dequant4x4 ( DCTELEM block,
int  Qdc,
int  Q 
) [inline, static]

Dequantize ordinary 4x4 block.

Todo:
optimize

Definition at line 331 of file rv34.c.

Referenced by rv34_decode_macroblock().

static void rv34_dequant4x4_16x16 ( DCTELEM block,
int  Qdc,
int  Q 
) [inline, static]

Dequantize 4x4 block of DC values for 16x16 macroblock.

Todo:
optimize

Definition at line 345 of file rv34.c.

Referenced by rv34_decode_macroblock().

static av_always_inline int scale_mv ( int  value,
int  bfrac,
int  inv,
int  qs 
) [static]

Definition at line 1838 of file vc1.c.

static void vc1_b_mc ( VC1Context v,
int  dmv_x[2],
int  dmv_y[2],
int  direct,
int  mode 
) [inline, static]

Reconstruct motion vector for B-frame and do motion compensation.

Definition at line 1859 of file vc1.c.

Referenced by vc1_decode_b_mb().

static int vc1_i_pred_dc ( MpegEncContext s,
int  overlap,
int  pq,
int  n,
int16_t **  dc_val_ptr,
int *  dir_ptr 
) [inline, static]

Get predicted DC value for I-frames only prediction dir: left=0, top=1.

Parameters:
s MpegEncContext
[in] n block index in the current MB
dc_val_ptr Pointer to DC predictor
dir_ptr Prediction direction for use in AC prediction

Definition at line 2099 of file vc1.c.

Referenced by vc1_decode_i_block().

static void vc1_interp_mc ( VC1Context v  )  [static]

Motion compensation for direct or interpolated blocks in B-frames.

Definition at line 1737 of file vc1.c.

Referenced by vc1_b_mc().

static void vc1_pred_b_mv ( VC1Context v,
int  dmv_x[2],
int  dmv_y[2],
int  direct,
int  mvtype 
) [inline, static]

Definition at line 1883 of file vc1.c.

Referenced by vc1_decode_b_mb().

static int vc1_pred_dc ( MpegEncContext s,
int  overlap,
int  pq,
int  n,
int  a_avail,
int  c_avail,
int16_t **  dc_val_ptr,
int *  dir_ptr 
) [inline, static]

Get predicted DC value prediction dir: left=0, top=1.

Parameters:
s MpegEncContext
[in] n block index in the current MB
dc_val_ptr Pointer to DC predictor
dir_ptr Prediction direction for use in AC prediction

Definition at line 2159 of file vc1.c.

Referenced by vc1_decode_i_block_adv(), and vc1_decode_intra_block().

static void vc1_pred_mv ( MpegEncContext s,
int  n,
int  dmv_x,
int  dmv_y,
int  mv1,
int  r_x,
int  r_y,
uint8_t is_intra 
) [inline, static]

Predict and set motion vector.

Definition at line 1603 of file vc1.c.

Referenced by vc1_decode_p_mb().


Generated on Fri Apr 23 15:12:05 2010 for ffmpeg by  doxygen 1.5.6