FFmpeg
Macros | Variables
h264data.c File Reference

H.264 / AVC / MPEG-4 part10 codec data table. More...

#include <stdint.h>
#include "libavutil/avutil.h"
#include "h264_parse.h"
#include "h264data.h"
#include "mpegutils.h"

Go to the source code of this file.

Macros

#define QP(qP, depth)   ((qP) + 6 * ((depth) - 8))
 
#define CHROMA_QP_TABLE_END(d)
 

Variables

const uint8_t ff_h264_golomb_to_pict_type [5]
 
const uint8_t ff_h264_golomb_to_intra4x4_cbp [48]
 
const uint8_t ff_h264_golomb_to_inter_cbp [48]
 
const uint8_t ff_h264_chroma_dc_scan [4]
 
const uint8_t ff_h264_chroma422_dc_scan [8]
 
const IMbInfo ff_h264_i_mb_type_info [26]
 
const PMbInfo ff_h264_p_mb_type_info [5]
 
const PMbInfo ff_h264_p_sub_mb_type_info [4]
 
const PMbInfo ff_h264_b_mb_type_info [23]
 
const PMbInfo ff_h264_b_sub_mb_type_info [13]
 
const uint8_t ff_h264_dequant4_coeff_init [6][3]
 
const uint8_t ff_h264_dequant8_coeff_init_scan [16]
 
const uint8_t ff_h264_dequant8_coeff_init [6][6]
 
const uint8_t ff_h264_quant_rem6 [QP_MAX_NUM+1]
 
const uint8_t ff_h264_quant_div6 [QP_MAX_NUM+1]
 
const uint8_t ff_h264_chroma_qp [7][QP_MAX_NUM+1]
 

Detailed Description

H.264 / AVC / MPEG-4 part10 codec data table.

Author
Michael Niedermayer micha.nosp@m.elni.nosp@m.@gmx..nosp@m.at

Definition in file h264data.c.

Macro Definition Documentation

◆ QP

#define QP (   qP,
  depth 
)    ((qP) + 6 * ((depth) - 8))

Definition at line 190 of file h264data.c.

◆ CHROMA_QP_TABLE_END

#define CHROMA_QP_TABLE_END (   d)
Value:
QP(0, d), QP(1, d), QP(2, d), QP(3, d), QP(4, d), QP(5, d), \
QP(6, d), QP(7, d), QP(8, d), QP(9, d), QP(10, d), QP(11, d), \
QP(12, d), QP(13, d), QP(14, d), QP(15, d), QP(16, d), QP(17, d), \
QP(18, d), QP(19, d), QP(20, d), QP(21, d), QP(22, d), QP(23, d), \
QP(24, d), QP(25, d), QP(26, d), QP(27, d), QP(28, d), QP(29, d), \
QP(29, d), QP(30, d), QP(31, d), QP(32, d), QP(32, d), QP(33, d), \
QP(34, d), QP(34, d), QP(35, d), QP(35, d), QP(36, d), QP(36, d), \
QP(37, d), QP(37, d), QP(37, d), QP(38, d), QP(38, d), QP(38, d), \
QP(39, d), QP(39, d), QP(39, d), QP(39, d)

Definition at line 192 of file h264data.c.

Variable Documentation

◆ ff_h264_golomb_to_pict_type

const uint8_t ff_h264_golomb_to_pict_type[5]

◆ ff_h264_golomb_to_intra4x4_cbp

const uint8_t ff_h264_golomb_to_intra4x4_cbp[48]
Initial value:
= {
47, 31, 15, 0, 23, 27, 29, 30, 7, 11, 13, 14, 39, 43, 45, 46,
16, 3, 5, 10, 12, 19, 21, 26, 28, 35, 37, 42, 44, 1, 2, 4,
8, 17, 18, 20, 24, 6, 9, 22, 25, 32, 33, 34, 36, 40, 38, 41
}

Definition at line 42 of file h264data.c.

Referenced by ff_h264_decode_mb_cavlc(), and svq3_decode_mb().

◆ ff_h264_golomb_to_inter_cbp

const uint8_t ff_h264_golomb_to_inter_cbp[48]
Initial value:
= {
0, 16, 1, 2, 4, 8, 32, 3, 5, 10, 12, 15, 47, 7, 11, 13,
14, 6, 9, 31, 35, 37, 42, 44, 33, 34, 36, 40, 39, 43, 45, 46,
17, 18, 20, 24, 19, 21, 26, 28, 23, 27, 29, 30, 22, 25, 38, 41
}

Definition at line 48 of file h264data.c.

Referenced by ff_h264_decode_mb_cavlc(), and svq3_decode_mb().

◆ ff_h264_chroma_dc_scan

const uint8_t ff_h264_chroma_dc_scan[4]
Initial value:
= {
(0 + 0 * 2) * 16, (1 + 0 * 2) * 16,
(0 + 1 * 2) * 16, (1 + 1 * 2) * 16,
}

Definition at line 54 of file h264data.c.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and svq3_decode_block().

◆ ff_h264_chroma422_dc_scan

const uint8_t ff_h264_chroma422_dc_scan[8]
Initial value:
= {
(0 + 0 * 2) * 16, (0 + 1 * 2) * 16,
(1 + 0 * 2) * 16, (0 + 2 * 2) * 16,
(0 + 3 * 2) * 16, (1 + 1 * 2) * 16,
(1 + 2 * 2) * 16, (1 + 3 * 2) * 16,
}

Definition at line 59 of file h264data.c.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

◆ ff_h264_i_mb_type_info

const IMbInfo ff_h264_i_mb_type_info[26]
Initial value:
= {
{ MB_TYPE_INTRA4x4, -1, -1 },
{ MB_TYPE_INTRA16x16, 2, 0 },
{ MB_TYPE_INTRA16x16, 1, 0 },
{ MB_TYPE_INTRA16x16, 0, 0 },
{ MB_TYPE_INTRA16x16, 3, 0 },
{ MB_TYPE_INTRA16x16, 2, 16 },
{ MB_TYPE_INTRA16x16, 1, 16 },
{ MB_TYPE_INTRA16x16, 0, 16 },
{ MB_TYPE_INTRA16x16, 3, 16 },
{ MB_TYPE_INTRA16x16, 2, 32 },
{ MB_TYPE_INTRA16x16, 1, 32 },
{ MB_TYPE_INTRA16x16, 0, 32 },
{ MB_TYPE_INTRA16x16, 3, 32 },
{ MB_TYPE_INTRA16x16, 2, 15 + 0 },
{ MB_TYPE_INTRA16x16, 1, 15 + 0 },
{ MB_TYPE_INTRA16x16, 0, 15 + 0 },
{ MB_TYPE_INTRA16x16, 3, 15 + 0 },
{ MB_TYPE_INTRA16x16, 2, 15 + 16 },
{ MB_TYPE_INTRA16x16, 1, 15 + 16 },
{ MB_TYPE_INTRA16x16, 0, 15 + 16 },
{ MB_TYPE_INTRA16x16, 3, 15 + 16 },
{ MB_TYPE_INTRA16x16, 2, 15 + 32 },
{ MB_TYPE_INTRA16x16, 1, 15 + 32 },
{ MB_TYPE_INTRA16x16, 0, 15 + 32 },
{ MB_TYPE_INTRA16x16, 3, 15 + 32 },
{ MB_TYPE_INTRA_PCM, -1, -1 },
}

Definition at line 66 of file h264data.c.

Referenced by ff_h264_decode_mb_cabac(), ff_h264_decode_mb_cavlc(), and svq3_decode_mb().

◆ ff_h264_p_mb_type_info

const PMbInfo ff_h264_p_mb_type_info[5]

◆ ff_h264_p_sub_mb_type_info

const PMbInfo ff_h264_p_sub_mb_type_info[4]
Initial value:

Definition at line 103 of file h264data.c.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

◆ ff_h264_b_mb_type_info

const PMbInfo ff_h264_b_mb_type_info[23]
Initial value:

Definition at line 110 of file h264data.c.

Referenced by ff_h264_decode_mb_cabac(), and ff_h264_decode_mb_cavlc().

◆ ff_h264_b_sub_mb_type_info

const PMbInfo ff_h264_b_sub_mb_type_info[13]

◆ ff_h264_dequant4_coeff_init

const uint8_t ff_h264_dequant4_coeff_init[6][3]
Initial value:
= {
{ 10, 13, 16 },
{ 11, 14, 18 },
{ 13, 16, 20 },
{ 14, 18, 23 },
{ 16, 20, 25 },
{ 18, 23, 29 },
}

Definition at line 152 of file h264data.c.

Referenced by init_dequant4_coeff_table().

◆ ff_h264_dequant8_coeff_init_scan

const uint8_t ff_h264_dequant8_coeff_init_scan[16]
Initial value:
= {
0, 3, 4, 3, 3, 1, 5, 1, 4, 5, 2, 5, 3, 1, 5, 1
}

Definition at line 161 of file h264data.c.

Referenced by init_dequant8_coeff_table().

◆ ff_h264_dequant8_coeff_init

const uint8_t ff_h264_dequant8_coeff_init[6][6]
Initial value:
= {
{ 20, 18, 32, 19, 25, 24 },
{ 22, 19, 35, 21, 28, 26 },
{ 26, 23, 42, 24, 33, 31 },
{ 28, 25, 45, 26, 35, 33 },
{ 32, 28, 51, 30, 40, 38 },
{ 36, 32, 58, 34, 46, 43 },
}

Definition at line 165 of file h264data.c.

Referenced by init_dequant8_coeff_table().

◆ ff_h264_quant_rem6

const uint8_t ff_h264_quant_rem6[QP_MAX_NUM+1]
Initial value:
= {
0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2,
3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5,
0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2,
3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5,
0, 1, 2, 3,
}

Definition at line 174 of file h264data.c.

Referenced by init_dequant4_coeff_table(), and init_dequant8_coeff_table().

◆ ff_h264_quant_div6

const uint8_t ff_h264_quant_div6[QP_MAX_NUM+1]
Initial value:
= {
0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3,
3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6,
7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 8, 8, 9, 9, 9, 9, 9, 9, 10, 10, 10,
10,10,10,11,11,11,11,11,11,12,12,12,12,12,12,13,13,13, 13, 13, 13,
14,14,14,14,
}

Definition at line 182 of file h264data.c.

Referenced by init_dequant4_coeff_table(), and init_dequant8_coeff_table().

◆ ff_h264_chroma_qp

const uint8_t ff_h264_chroma_qp[7][QP_MAX_NUM+1]
Initial value:
= {
{ 0, 1, 2, 3, 4, 5,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
24,25,26,27, 28, 29,
{ 0, 1, 2, 3, 4, 5,
6, 7, 8, 9, 10, 11,
12,13,14,15, 16, 17,
18,19,20,21, 22, 23,
24,25,26,27, 28, 29,
30,31,32,33, 34, 35,
}

Definition at line 203 of file h264data.c.

Referenced by build_qp_table(), and hl_decode_mb().

MB_TYPE_16x8
#define MB_TYPE_16x8
Definition: mpegutils.h:43
MB_TYPE_INTRA4x4
#define MB_TYPE_INTRA4x4
Definition: mpegutils.h:39
MB_TYPE_16x16
#define MB_TYPE_16x16
Definition: mpegutils.h:42
MB_TYPE_INTRA16x16
#define MB_TYPE_INTRA16x16
Definition: mpegutils.h:40
QP
#define QP(qP, depth)
Definition: h264data.c:190
MB_TYPE_P1L0
#define MB_TYPE_P1L0
Definition: mpegutils.h:55
MB_TYPE_8x16
#define MB_TYPE_8x16
Definition: mpegutils.h:44
MB_TYPE_REF0
#define MB_TYPE_REF0
Definition: h264_parse.h:36
MB_TYPE_8x8
#define MB_TYPE_8x8
Definition: mpegutils.h:45
AV_PICTURE_TYPE_SI
@ AV_PICTURE_TYPE_SI
Switching Intra.
Definition: avutil.h:283
AV_PICTURE_TYPE_I
@ AV_PICTURE_TYPE_I
Intra.
Definition: avutil.h:279
MB_TYPE_INTRA_PCM
#define MB_TYPE_INTRA_PCM
Definition: mpegutils.h:41
MB_TYPE_P0L0
#define MB_TYPE_P0L0
Definition: mpegutils.h:54
AV_PICTURE_TYPE_SP
@ AV_PICTURE_TYPE_SP
Switching Predicted.
Definition: avutil.h:284
MB_TYPE_P0L1
#define MB_TYPE_P0L1
Definition: mpegutils.h:56
CHROMA_QP_TABLE_END
#define CHROMA_QP_TABLE_END(d)
Definition: h264data.c:192
MB_TYPE_L0L1
#define MB_TYPE_L0L1
Definition: mpegutils.h:60
AV_PICTURE_TYPE_B
@ AV_PICTURE_TYPE_B
Bi-dir predicted.
Definition: avutil.h:281
AV_PICTURE_TYPE_P
@ AV_PICTURE_TYPE_P
Predicted.
Definition: avutil.h:280
MB_TYPE_DIRECT2
#define MB_TYPE_DIRECT2
Definition: mpegutils.h:47
MB_TYPE_P1L1
#define MB_TYPE_P1L1
Definition: mpegutils.h:57