|
FFmpeg
|
Chinese AVS video (AVS1-P2/P16, JiZhun and Broadcasting profiles) decoder. More...
#include "libavutil/mem.h"#include "avcodec.h"#include "golomb.h"#include "h264chroma.h"#include "idctdsp.h"#include "mathops.h"#include "qpeldsp.h"#include "cavs.h"Go to the source code of this file.
Macros | |
| #define | SET_PARAMS |
| #define | LOWPASS(ARRAY, INDEX) |
Functions | |
| static int | get_bs (cavs_vector *mvP, cavs_vector *mvQ, int b) |
| void | ff_cavs_filter (AVSContext *h, enum cavs_mb 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) |
| static void | intra_pred_vert (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_horiz (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_dc_128 (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_plane (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_lp (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_down_left (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_down_right (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_lp_left (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | intra_pred_lp_top (uint8_t *d, uint8_t *top, uint8_t *left, ptrdiff_t stride) |
| static void | modify_pred (const int8_t *mod_table, int *mode) |
| void | ff_cavs_modify_mb_i (AVSContext *h, int *pred_mode_uv) |
| static void | mc_dir_part (AVSContext *h, AVFrame *pic, int parity, int chroma_height, int list, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int src_x_offset, int src_y_offset, qpel_mc_func *qpix_op, h264_chroma_mc_func chroma_op, cavs_vector *mv) |
| static void | mc_part_std (AVSContext *h, int chroma_height, uint8_t *dest_y, uint8_t *dest_cb, uint8_t *dest_cr, int x_offset, int y_offset, qpel_mc_func *qpix_put, h264_chroma_mc_func chroma_put, qpel_mc_func *qpix_avg, h264_chroma_mc_func chroma_avg, cavs_vector *mv) |
| void | ff_cavs_inter (AVSContext *h, enum cavs_mb mb_type) |
| static void | scale_mv (AVSContext *h, int *d_x, int *d_y, cavs_vector *src, int distp) |
| static void | mv_pred_median (AVSContext *h, cavs_vector *mvP, cavs_vector *mvA, cavs_vector *mvB, cavs_vector *mvC) |
| 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_set_mb_row (AVSContext *h) |
| Point the macroblock sample pointers at macroblock row h->mby, addressed inside the macroblock's own field at the doubled stride (clause 7.2.3.1). | |
| 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 | |
| int | ff_cavs_init_pic (AVSContext *h) |
| int | ff_cavs_init_top_lines (AVSContext *h) |
| some predictions require data from the top-neighbouring macroblock. | |
| av_cold int | ff_cavs_init (AVCodecContext *avctx) |
| av_cold int | ff_cavs_end (AVCodecContext *avctx) |
Variables | |
| static const uint8_t | alpha_tab [64] |
| static const uint8_t | beta_tab [64] |
| static const uint8_t | tc_tab [64] |
| static const cavs_vector | un_mv = { 0, 0, 1, NOT_AVAIL, 0 } |
| mark block as unavailable, i.e. | |
| static const uint8_t | cavs_scan_field [64] |
| Inverse block scan method 2 (clause 9.5.3 c), figure 23), for field coded pictures, as the inverse ff_permute_scantable() expects. | |
| static const int8_t | left_modifier_l [8] = { 0, -1, 6, -1, -1, 7, 6, 7 } |
| static const int8_t | top_modifier_l [8] = { -1, 1, 5, -1, -1, 5, 7, 7 } |
| static const int8_t | left_modifier_c [7] = { 5, -1, 2, -1, 6, 5, 6 } |
| static const int8_t | top_modifier_c [7] = { 4, 1, -1, -1, 4, 6, 6 } |
Chinese AVS video (AVS1-P2/P16, JiZhun and Broadcasting profiles) decoder.
Definition in file cavs.c.
| #define SET_PARAMS |
| #define LOWPASS | ( | ARRAY, | |
| INDEX ) |
Definition at line 314 of file cavs.c.
Referenced by config_input(), filter_frame(), intra_pred_down_left(), intra_pred_down_right(), intra_pred_lp(), intra_pred_lp_left(), intra_pred_lp_top(), and query_formats().
|
inlinestatic |
Definition at line 84 of file cavs.c.
Referenced by 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 |
Definition at line 119 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 195 of file cavs.c.
Referenced by decode_mb_i().
| void ff_cavs_load_intra_pred_chroma | ( | AVSContext * | h | ) |
Definition at line 246 of file cavs.c.
Referenced by decode_mb_i().
|
static |
Definition at line 269 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 277 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 287 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 295 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 317 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 325 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 333 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 346 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 354 of file cavs.c.
Referenced by ff_cavs_init().
|
inlinestatic |
Definition at line 364 of file cavs.c.
Referenced by ff_cavs_modify_mb_i().
| void ff_cavs_modify_mb_i | ( | AVSContext * | h, |
| int * | pred_mode_uv ) |
Definition at line 373 of file cavs.c.
Referenced by decode_mb_i().
|
inlinestatic |
Definition at line 400 of file cavs.c.
Referenced by mc_part_std().
|
inlinestatic |
Definition at line 473 of file cavs.c.
Referenced by ff_cavs_inter(), and mc_part().
| void ff_cavs_inter | ( | AVSContext * | h, |
| enum cavs_mb | mb_type ) |
Definition at line 513 of file cavs.c.
Referenced by decode_mb_b(), and decode_mb_p().
|
inlinestatic |
|
inlinestatic |
Definition at line 564 of file cavs.c.
Referenced by ff_cavs_mv().
| 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 ) |
Definition at line 594 of file cavs.c.
Referenced by decode_mb_b(), and decode_mv().
| void ff_cavs_set_mb_row | ( | AVSContext * | h | ) |
Point the macroblock sample pointers at macroblock row h->mby, addressed inside the macroblock's own field at the doubled stride (clause 7.2.3.1).
Definition at line 673 of file cavs.c.
Referenced by decode_slice_header(), ff_cavs_init_pic(), and ff_cavs_next_mb().
| void ff_cavs_init_mb | ( | AVSContext * | h | ) |
initialise predictors for motion vectors and intra prediction
Definition at line 696 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
Definition at line 742 of file cavs.c.
Referenced by decode_pic().
| int ff_cavs_init_pic | ( | AVSContext * | h | ) |
Definition at line 789 of file cavs.c.
Referenced by decode_pic().
| 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
Definition at line 826 of file cavs.c.
Referenced by decode_seq_header().
| av_cold int ff_cavs_init | ( | AVCodecContext * | avctx | ) |
| av_cold int ff_cavs_end | ( | AVCodecContext * | avctx | ) |
|
static |
Definition at line 37 of file cavs.c.
Referenced by ps_tableinit().
|
static |
|
static |
|
static |
mark block as unavailable, i.e.
out of picture or not yet decoded
Definition at line 60 of file cavs.c.
Referenced by ff_cavs_init(), ff_cavs_init_mb(), ff_cavs_init_pic(), ff_cavs_mv(), and ff_cavs_next_mb().
|
static |
Inverse block scan method 2 (clause 9.5.3 c), figure 23), for field coded pictures, as the inverse ff_permute_scantable() expects.
Definition at line 66 of file cavs.c.
Referenced by ff_cavs_init().
|
static |
Definition at line 73 of file cavs.c.
Referenced by ff_cavs_modify_mb_i().
|
static |
Definition at line 74 of file cavs.c.
Referenced by ff_cavs_modify_mb_i().
|
static |
Definition at line 75 of file cavs.c.
Referenced by ff_cavs_modify_mb_i().
|
static |
Definition at line 76 of file cavs.c.
Referenced by ff_cavs_modify_mb_i().