cavs.h File Reference

Go to the source code of this file.

Classes

struct  dec_2dvlc_t
struct  AVSContext

Enumerations

enum  mb_t {
  I_8X8 = 0, P_SKIP, P_16X16, P_16X8,
  P_8X16, P_8X8, B_SKIP, B_DIRECT,
  B_FWD_16X16, B_BWD_16X16, B_SYM_16X16, B_8X8 = 29
}
enum  sub_mb_t { B_SUB_DIRECT, B_SUB_FWD, B_SUB_BWD, B_SUB_SYM }
enum  intra_luma_t {
  INTRA_L_VERT, INTRA_L_HORIZ, INTRA_L_LP, INTRA_L_DOWN_LEFT,
  INTRA_L_DOWN_RIGHT, INTRA_L_LP_LEFT, INTRA_L_LP_TOP, INTRA_L_DC_128
}
enum  intra_chroma_t {
  INTRA_C_LP, INTRA_C_HORIZ, INTRA_C_VERT, INTRA_C_PLANE,
  INTRA_C_LP_LEFT, INTRA_C_LP_TOP, INTRA_C_DC_128
}
enum  mv_pred_t {
  MV_PRED_MEDIAN, MV_PRED_LEFT, MV_PRED_TOP, MV_PRED_TOPRIGHT,
  MV_PRED_PSKIP, MV_PRED_BSKIP
}
enum  block_t { BLK_16X16, BLK_16X8, BLK_8X16, BLK_8X8 }
enum  mv_loc_t {
  MV_FWD_D3 = 0, MV_FWD_B2, MV_FWD_B3, MV_FWD_C2,
  MV_FWD_A1, MV_FWD_X0, MV_FWD_X1, MV_FWD_A3 = 8,
  MV_FWD_X2, MV_FWD_X3, MV_BWD_D3 = MV_BWD_OFFS, MV_BWD_B2,
  MV_BWD_B3, MV_BWD_C2, MV_BWD_A1, MV_BWD_X0,
  MV_BWD_X1, MV_BWD_A3 = MV_BWD_OFFS+8, MV_BWD_X2, MV_BWD_X3
}

Functions

 DECLARE_ALIGNED_8 (typedef, struct)
static void modify_pred (const int_fast8_t *mod_table, int *mode)
static void set_intra_mode_default (AVSContext *h)
static void set_mvs (vector_t *mv, enum block_t size)
static void set_mv_intra (AVSContext *h)
static int dequant (AVSContext *h, DCTELEM *level_buf, uint8_t *run_buf, DCTELEM *dst, int mul, int shift, int coeff_num)
void ff_cavs_filter (AVSContext *h, enum mb_t mb_type)
 in-loop deblocking filter for a single macroblock
void ff_cavs_load_intra_pred_luma (AVSContext *h, uint8_t *top, uint8_t **left, int block)
void ff_cavs_load_intra_pred_chroma (AVSContext *h)
void ff_cavs_modify_mb_i (AVSContext *h, int *pred_mode_uv)
void ff_cavs_inter (AVSContext *h, enum mb_t mb_type)
void ff_cavs_mv (AVSContext *h, enum mv_loc_t nP, enum mv_loc_t nC, enum mv_pred_t mode, enum block_t size, int ref)
void ff_cavs_init_mb (AVSContext *h)
 initialise predictors for motion vectors and intra prediction
int ff_cavs_next_mb (AVSContext *h)
 save predictors for later macroblocks and increase macroblock address
void ff_cavs_init_pic (AVSContext *h)
void ff_cavs_init_top_lines (AVSContext *h)
 some predictions require data from the top-neighbouring macroblock.
int ff_cavs_init (AVCodecContext *avctx)
int ff_cavs_end (AVCodecContext *avctx)

Variables

 vector_t
const uint8_t ff_cavs_dequant_shift [64]
const uint16_t ff_cavs_dequant_mul [64]
const dec_2dvlc_t ff_cavs_intra_dec [7]
const dec_2dvlc_t ff_cavs_inter_dec [7]
const dec_2dvlc_t ff_cavs_chroma_dec [5]
const uint8_t ff_cavs_chroma_qp [64]
const uint8_t ff_cavs_scan3x3 [4]
const uint8_t ff_cavs_partition_flags [30]
const int_fast8_t ff_left_modifier_l [8]
const int_fast8_t ff_top_modifier_l [8]
const int_fast8_t ff_left_modifier_c [7]
const int_fast8_t ff_top_modifier_c [7]
const vector_t ff_cavs_intra_mv
 marks block as using intra prediction
const vector_t ff_cavs_un_mv
 marks block as unavailable, i.e.
const vector_t ff_cavs_dir_mv
 marks block as "no prediction from this direction" e.g.


Enumeration Type Documentation

enum mb_t

Enumerator:
I_8X8 
P_SKIP 
P_16X16 
P_16X8 
P_8X16 
P_8X8 
B_SKIP 
B_DIRECT 
B_FWD_16X16 
B_BWD_16X16 
B_SYM_16X16 
B_8X8 

Definition at line 58 of file cavs.h.

enum sub_mb_t

Enumerator:
B_SUB_DIRECT 
B_SUB_FWD 
B_SUB_BWD 
B_SUB_SYM 

Definition at line 73 of file cavs.h.

Enumerator:
INTRA_L_VERT 
INTRA_L_HORIZ 
INTRA_L_LP 
INTRA_L_DOWN_LEFT 
INTRA_L_DOWN_RIGHT 
INTRA_L_LP_LEFT 
INTRA_L_LP_TOP 
INTRA_L_DC_128 

Definition at line 80 of file cavs.h.

Enumerator:
INTRA_C_LP 
INTRA_C_HORIZ 
INTRA_C_VERT 
INTRA_C_PLANE 
INTRA_C_LP_LEFT 
INTRA_C_LP_TOP 
INTRA_C_DC_128 

Definition at line 91 of file cavs.h.

enum mv_pred_t

Enumerator:
MV_PRED_MEDIAN 
MV_PRED_LEFT 
MV_PRED_TOP 
MV_PRED_TOPRIGHT 
MV_PRED_PSKIP 
MV_PRED_BSKIP 

Definition at line 101 of file cavs.h.

enum block_t

Enumerator:
BLK_16X16 
BLK_16X8 
BLK_8X16 
BLK_8X8 

Definition at line 110 of file cavs.h.

enum mv_loc_t

Enumerator:
MV_FWD_D3 
MV_FWD_B2 
MV_FWD_B3 
MV_FWD_C2 
MV_FWD_A1 
MV_FWD_X0 
MV_FWD_X1 
MV_FWD_A3 
MV_FWD_X2 
MV_FWD_X3 
MV_BWD_D3 
MV_BWD_B2 
MV_BWD_B3 
MV_BWD_C2 
MV_BWD_A1 
MV_BWD_X0 
MV_BWD_X1 
MV_BWD_A3 
MV_BWD_X2 
MV_BWD_X3 

Definition at line 117 of file cavs.h.


Function Documentation

DECLARE_ALIGNED_8 ( typedef  ,
struct   
)

static void modify_pred ( const int_fast8_t *  mod_table,
int *  mode 
) [inline, static]

Definition at line 243 of file cavs.h.

Referenced by ff_cavs_modify_mb_i().

static void set_intra_mode_default ( AVSContext h  )  [inline, static]

Definition at line 251 of file cavs.h.

Referenced by decode_mb_b(), and decode_mb_p().

static void set_mvs ( vector_t mv,
enum block_t  size 
) [inline, static]

Definition at line 256 of file cavs.h.

Referenced by decode_mb_b(), ff_cavs_init_pic(), ff_cavs_mv(), mv_pred_sym(), and set_mv_intra().

static void set_mv_intra ( AVSContext h  )  [inline, static]

Definition at line 270 of file cavs.h.

Referenced by decode_mb_i().

static int dequant ( AVSContext h,
DCTELEM level_buf,
uint8_t *  run_buf,
DCTELEM dst,
int  mul,
int  shift,
int  coeff_num 
) [inline, static]

Definition at line 279 of file cavs.h.

Referenced by decode_residual_block().

void ff_cavs_filter ( AVSContext h,
enum mb_t  mb_type 
)

in-loop deblocking filter for a single macroblock

boundary strength (bs) mapping:

--4---5-- 0 2 | | 6 | 7 | 1 3 | ---------

Definition at line 74 of file cavs.c.

Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().

void ff_cavs_load_intra_pred_luma ( AVSContext h,
uint8_t *  top,
uint8_t **  left,
int  block 
)

Definition at line 146 of file cavs.c.

Referenced by decode_mb_i().

void ff_cavs_load_intra_pred_chroma ( AVSContext h  ) 

Definition at line 196 of file cavs.c.

Referenced by decode_mb_i().

void ff_cavs_modify_mb_i ( AVSContext h,
int *  pred_mode_uv 
)

Definition at line 300 of file cavs.c.

Referenced by decode_mb_i().

void ff_cavs_inter ( AVSContext h,
enum mb_t  mb_type 
)

Definition at line 413 of file cavs.c.

Referenced by decode_mb_b(), and decode_mb_p().

void ff_cavs_mv ( AVSContext h,
enum mv_loc_t  nP,
enum mv_loc_t  nC,
enum mv_pred_t  mode,
enum block_t  size,
int  ref 
)

Definition at line 482 of file cavs.c.

Referenced by decode_mb_b(), and decode_mb_p().

void ff_cavs_init_mb ( AVSContext h  ) 

initialise predictors for motion vectors and intra prediction

Definition at line 535 of file cavs.c.

Referenced by decode_mb_b(), decode_mb_i(), and decode_mb_p().

int ff_cavs_next_mb ( AVSContext h  ) 

save predictors for later macroblocks and increase macroblock address

Returns:
0 if end of frame is reached, 1 otherwise

Definition at line 577 of file cavs.c.

Referenced by decode_pic().

void ff_cavs_init_pic ( AVSContext h  ) 

Definition at line 622 of file cavs.c.

Referenced by decode_pic().

void ff_cavs_init_top_lines ( AVSContext h  ) 

some predictions require data from the top-neighbouring macroblock.

this data has to be stored for one complete row of macroblocks and this storage space is allocated here

Definition at line 655 of file cavs.c.

Referenced by decode_seq_header().

int ff_cavs_init ( AVCodecContext avctx  ) 

Definition at line 671 of file cavs.c.

int ff_cavs_end ( AVCodecContext avctx  ) 

Definition at line 702 of file cavs.c.


Variable Documentation

Definition at line 145 of file cavs.h.

Referenced by ff_cavs_init_top_lines(), ff_cavs_mv(), mv_pred_direct(), and mv_pred_sym().

const uint8_t ff_cavs_dequant_shift[64]

Definition at line 69 of file cavsdata.h.

Referenced by decode_residual_block().

const uint16_t ff_cavs_dequant_mul[64]

Definition at line 80 of file cavsdata.h.

Referenced by decode_residual_block().

Definition at line 104 of file cavsdata.h.

Referenced by decode_mb_i().

Definition at line 241 of file cavsdata.h.

Referenced by decode_residual_inter().

Definition at line 378 of file cavsdata.h.

Referenced by decode_residual_chroma().

const uint8_t ff_cavs_chroma_qp[64]

Definition at line 62 of file cavsdata.h.

Referenced by decode_residual_chroma().

const uint8_t ff_cavs_scan3x3[4]

Definition at line 60 of file cavsdata.h.

Referenced by decode_mb_i().

const uint8_t ff_cavs_partition_flags[30]

Definition at line 27 of file cavsdata.h.

Referenced by decode_mb_b(), ff_cavs_filter(), and ff_cavs_inter().

const int_fast8_t ff_left_modifier_l[8]

Definition at line 500 of file cavsdata.h.

Referenced by ff_cavs_modify_mb_i().

const int_fast8_t ff_top_modifier_l[8]

Definition at line 501 of file cavsdata.h.

Referenced by ff_cavs_modify_mb_i().

const int_fast8_t ff_left_modifier_c[7]

Definition at line 502 of file cavsdata.h.

Referenced by ff_cavs_modify_mb_i().

const int_fast8_t ff_top_modifier_c[7]

Definition at line 503 of file cavsdata.h.

Referenced by ff_cavs_modify_mb_i().

marks block as using intra prediction

Definition at line 100 of file cavsdata.h.

Referenced by set_mv_intra().

marks block as unavailable, i.e.

out of picture or not yet decoded

Definition at line 93 of file cavsdata.h.

Referenced by ff_cavs_init(), ff_cavs_init_mb(), ff_cavs_init_pic(), ff_cavs_mv(), and ff_cavs_next_mb().

marks block as "no prediction from this direction" e.g.

forward motion vector in BWD partition

Definition at line 97 of file cavsdata.h.

Referenced by decode_mb_b(), and ff_cavs_init_pic().


Generated on Sat Dec 18 05:15:51 2010 for MythTV by  doxygen 1.5.5