FFmpeg
Macros | Functions
cavs.c File Reference

Chinese AVS video (AVS1-P2, JiZhun profile) decoder. More...

#include "avcodec.h"
#include "get_bits.h"
#include "golomb.h"
#include "h264chroma.h"
#include "idctdsp.h"
#include "internal.h"
#include "mathops.h"
#include "qpeldsp.h"
#include "cavs.h"

Macros

#define SET_PARAMS
 
#define LOWPASS(ARRAY, INDEX)   ((ARRAY[(INDEX) - 1] + 2 * ARRAY[(INDEX)] + ARRAY[(INDEX) + 1] + 2) >> 2)
 

Functions

void ff_cavs_filter (AVSContext *h, enum cavs_mb mb_type)
 in-loop deblocking filter for a single macroblock More...
 
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 cavs_mb mb_type)
 
void ff_cavs_mv (AVSContext *h, enum cavs_mv_loc nP, enum cavs_mv_loc nC, enum cavs_mv_pred mode, enum cavs_block 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 More...
 
int ff_cavs_init_pic (AVSContext *h)
 
int ff_cavs_init_top_lines (AVSContext *h)
 some predictions require data from the top-neighbouring macroblock. More...
 
av_cold int ff_cavs_init (AVCodecContext *avctx)
 
av_cold int ff_cavs_end (AVCodecContext *avctx)
 

Detailed Description

Chinese AVS video (AVS1-P2, JiZhun profile) decoder.

Author
Stefan Gehrer stefa.nosp@m.n.ge.nosp@m.hrer@.nosp@m.gmx..nosp@m.de

Macro Definition Documentation

§ SET_PARAMS

#define SET_PARAMS
Value:
alpha = alpha_tab[av_clip_uintp2(qp_avg + h->alpha_offset, 6)]; \
beta = beta_tab[av_clip_uintp2(qp_avg + h->beta_offset, 6)]; \
tc = tc_tab[av_clip_uintp2(qp_avg + h->alpha_offset, 6)];

Function Documentation

§ ff_cavs_filter()

void ff_cavs_filter ( AVSContext h,
enum cavs_mb  mb_type 
)

in-loop deblocking filter for a single macroblock

boundary strength (bs) mapping:

–4—5– 0 2 | | 6 | 7 |

1 3 |

§ ff_cavs_init_top_lines()

int 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

§ ff_cavs_next_mb()

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