FFmpeg
|
#include "h264dec.h"
#include "h264_mvpred.h"
#include "h264data.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, const 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... | |
Variables | |
static const uint8_t | golomb_to_inter_cbp_gray [16] |
static const uint8_t | golomb_to_intra4x4_cbp_gray [16] |
static const uint8_t | chroma_dc_coeff_token_len [4 *5] |
static const uint8_t | chroma_dc_coeff_token_bits [4 *5] |
static const uint8_t | chroma422_dc_coeff_token_len [4 *9] |
static const uint8_t | chroma422_dc_coeff_token_bits [4 *9] |
static const uint8_t | coeff_token_len [4][4 *17] |
static const uint8_t | coeff_token_bits [4][4 *17] |
static const uint8_t | total_zeros_len [16][16] |
static const uint8_t | total_zeros_bits [16][16] |
static const uint8_t | chroma_dc_total_zeros_len [3][4] |
static const uint8_t | chroma_dc_total_zeros_bits [3][4] |
static const uint8_t | chroma422_dc_total_zeros_len [7][8] |
static const uint8_t | chroma422_dc_total_zeros_bits [7][8] |
static const uint8_t | run_len [7][16] |
static const uint8_t | run_bits [7][16] |
static int8_t | cavlc_level_tab [7][1<< LEVEL_TAB_BITS][2] |
static const VLCElem * | coeff_token_vlc [17] |
17 pointers to only four different VLCs More... | |
static VLCElem | chroma_dc_coeff_token_vlc_table [256] |
static VLCElem | chroma422_dc_coeff_token_vlc_table [1<< CHROMA422_DC_COEFF_TOKEN_VLC_BITS] |
static const VLCElem * | total_zeros_vlc [15+1] |
static const VLCElem * | chroma_dc_total_zeros_vlc [3+1] |
static const VLCElem * | chroma422_dc_total_zeros_vlc [7+1] |
static const VLCElem * | run_vlc [6+1] |
static VLCElem | run7_vlc_table [96+(6<< RUN_VLC_BITS)+(15<< TOTAL_ZEROS_VLC_BITS)+(3<< CHROMA_DC_TOTAL_ZEROS_VLC_BITS)+(7<< CHROMA422_DC_TOTAL_ZEROS_VLC_BITS)+(520+332+280+256)] |
H.264 / AVC / MPEG-4 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 237 of file h264_cavlc.c.
#define CHROMA_DC_COEFF_TOKEN_VLC_BITS 8 |
Definition at line 240 of file h264_cavlc.c.
#define CHROMA422_DC_COEFF_TOKEN_VLC_BITS 13 |
Definition at line 241 of file h264_cavlc.c.
#define COEFF_TOKEN_VLC_BITS 8 |
Definition at line 242 of file h264_cavlc.c.
#define TOTAL_ZEROS_VLC_BITS 9 |
Definition at line 243 of file h264_cavlc.c.
#define CHROMA_DC_TOTAL_ZEROS_VLC_BITS 3 |
Definition at line 244 of file h264_cavlc.c.
#define CHROMA422_DC_TOTAL_ZEROS_VLC_BITS 5 |
Definition at line 245 of file h264_cavlc.c.
#define RUN_VLC_BITS 3 |
Definition at line 246 of file h264_cavlc.c.
#define RUN7_VLC_BITS 6 |
Definition at line 247 of file h264_cavlc.c.
#define STORE_BLOCK | ( | type | ) |
|
inlinestatic |
Get the predicted number of non-zero coefficients.
n | block index |
Definition at line 275 of file h264_cavlc.c.
Referenced by decode_residual().
|
static |
Definition at line 289 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
av_cold void ff_h264_decode_init_vlc | ( | void | ) |
Definition at line 315 of file h264_cavlc.c.
Referenced by h264_decode_init().
|
inlinestatic |
Definition at line 382 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 405 of file h264_cavlc.c.
Referenced by decode_luma_residual(), and ff_h264_decode_mb_cavlc().
|
static |
Definition at line 595 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 665 of file h264_cavlc.c.
Referenced by decode_slice().
|
static |
Definition at line 39 of file h264_cavlc.c.
Referenced by ff_h264_decode_mb_cavlc().
|
static |
Definition at line 43 of file h264_cavlc.c.
Referenced by ff_h264_decode_mb_cavlc().
|
static |
Definition at line 47 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 55 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 63 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 75 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 87 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 118 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 149 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 167 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 185 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 191 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 197 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 207 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc().
|
static |
Definition at line 217 of file h264_cavlc.c.
Referenced by ff_h264_decode_init_vlc(), on2avc_decode_band_types(), and rle_decode().
|
static |
Definition at line 227 of file h264_cavlc.c.
Referenced by codebook_trellis_rate(), compute_alpha_vlcs(), encode_window_bands_info(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 238 of file h264_cavlc.c.
Referenced by decode_residual(), and init_cavlc_level_tab().
|
static |
17 pointers to only four different VLCs
Definition at line 250 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 252 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 254 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 256 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 258 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 260 of file h264_cavlc.c.
Referenced by decode_residual(), and ff_h264_decode_init_vlc().
|
static |
Definition at line 262 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().