FFmpeg
|
H.264 / AVC / MPEG4 part10 cavlc bitstream decoding. More...
#include "internal.h"
#include "avcodec.h"
#include "h264.h"
#include "h264data.h"
#include "h264_mvpred.h"
#include "golomb.h"
#include "mpegutils.h"
#include "libavutil/avassert.h"
Go to the source code of this file.
Macros | |
#define | CABAC(h) 0 |
#define | UNCHECKED_BITSTREAM_READER 1 |
#define | LEVEL_TAB_BITS 8 |
#define | CHROMA_DC_COEFF_TOKEN_VLC_BITS 8 |
#define | CHROMA422_DC_COEFF_TOKEN_VLC_BITS 13 |
#define | COEFF_TOKEN_VLC_BITS 8 |
#define | TOTAL_ZEROS_VLC_BITS 9 |
#define | CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3 |
#define | CHROMA422_DC_TOTAL_ZEROS_VLC_BITS 5 |
#define | RUN_VLC_BITS 3 |
#define | RUN7_VLC_BITS 6 |
#define | STORE_BLOCK(type) |
Functions | |
static int | pred_non_zero_count (const H264Context *h, H264SliceContext *sl, int n) |
Get the predicted number of non-zero coefficients. More... | |
static av_cold void | init_cavlc_level_tab (void) |
av_cold void | ff_h264_decode_init_vlc (void) |
static int | get_level_prefix (GetBitContext *gb) |
static int | decode_residual (const H264Context *h, H264SliceContext *sl, GetBitContext *gb, int16_t *block, int n, const uint8_t *scantable, const uint32_t *qmul, int max_coeff) |
Decode a residual block. More... | |
static av_always_inline int | decode_luma_residual (const H264Context *h, H264SliceContext *sl, GetBitContext *gb, const uint8_t *scan, const uint8_t *scan8x8, int pixel_shift, int mb_type, int cbp, int p) |
int | ff_h264_decode_mb_cavlc (const H264Context *h, H264SliceContext *sl) |
Decode a macroblock. More... | |
H.264 / AVC / MPEG4 part10 cavlc bitstream decoding.
Definition in file h264_cavlc.c.
#define CABAC | ( | h | ) | 0 |
Definition at line 28 of file h264_cavlc.c.
#define UNCHECKED_BITSTREAM_READER 1 |
Definition at line 29 of file h264_cavlc.c.
#define LEVEL_TAB_BITS 8 |
Definition at line 271 of file h264_cavlc.c.
Referenced by decode_residual(), and init_cavlc_level_tab().
#define CHROMA_DC_COEFF_TOKEN_VLC_BITS 8 |
Definition at line 274 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define CHROMA422_DC_COEFF_TOKEN_VLC_BITS 13 |
Definition at line 275 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define COEFF_TOKEN_VLC_BITS 8 |
Definition at line 276 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define TOTAL_ZEROS_VLC_BITS 9 |
Definition at line 277 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3 |
Definition at line 278 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define CHROMA422_DC_TOTAL_ZEROS_VLC_BITS 5 |
Definition at line 279 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
#define RUN_VLC_BITS 3 |
Definition at line 280 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
#define RUN7_VLC_BITS 6 |
Definition at line 281 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
#define STORE_BLOCK | ( | type | ) |
Referenced by decode_residual().
|
inlinestatic |
Get the predicted number of non-zero coefficients.
n | block index |
Definition at line 287 of file h264_cavlc.c.
Referenced by decode_residual().
Definition at line 301 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
Definition at line 327 of file h264_cavlc.c.
Referenced by ff_h264_decode_init().
|
inlinestatic |
Definition at line 419 of file h264_cavlc.c.
Referenced by decode_residual().
|
static |
Decode a residual block.
n | block index |
scantable | scantable |
max_coeff | number of coefficients in the block |
Definition at line 446 of file h264_cavlc.c.
Referenced by decode_luma_residual(), and ff_h264_decode_mb_cavlc().
|
static |
Definition at line 639 of file h264_cavlc.c.
Referenced by ff_h264_decode_mb_cavlc().
int ff_h264_decode_mb_cavlc | ( | const H264Context * | h, |
H264SliceContext * | sl | ||
) |
Decode a macroblock.
Definition at line 709 of file h264_cavlc.c.
Referenced by decode_slice().
|
static |
Definition at line 41 of file h264_cavlc.c.
Referenced by ff_h264_decode_mb_cavlc().
|
static |
Definition at line 45 of file h264_cavlc.c.
Referenced by ff_h264_decode_mb_cavlc().
|
static |
Definition at line 49 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 57 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 65 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 77 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 89 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 120 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 151 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 169 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 187 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 193 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 199 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 209 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 219 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc(), on2avc_decode_band_types(), and rle_decode().
|
static |
Definition at line 229 of file h264_cavlc.c.
Referenced by codebook_trellis_rate(), encode_window_bands_info(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 239 of file h264_cavlc.c.
|
static |
Definition at line 240 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 241 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 243 of file h264_cavlc.c.
|
static |
Definition at line 244 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 245 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 247 of file h264_cavlc.c.
|
static |
Definition at line 248 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 249 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 251 of file h264_cavlc.c.
|
static |
Definition at line 252 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 253 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 255 of file h264_cavlc.c.
|
static |
Definition at line 256 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 257 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 259 of file h264_cavlc.c.
|
static |
Definition at line 260 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 261 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 263 of file h264_cavlc.c.
|
static |
Definition at line 264 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 265 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 267 of file h264_cavlc.c.
|
static |
Definition at line 268 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 269 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 272 of file h264_cavlc.c.
Referenced by decode_residual(), and init_cavlc_level_tab().