HEVC Test Model (HM)  HM-16.18
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
ContextTables.h File Reference

Defines constants and tables for SBAC. More...

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

#define MAX_NUM_CTX_MOD   512
 maximum number of supported contexts More...
 
#define NUM_SPLIT_FLAG_CTX   3
 number of context models for split flag More...
 
#define NUM_SKIP_FLAG_CTX   3
 number of context models for skip flag More...
 
#define NUM_MERGE_FLAG_EXT_CTX   1
 number of context models for merge flag of merge extended More...
 
#define NUM_MERGE_IDX_EXT_CTX   1
 number of context models for merge index of merge extended More...
 
#define NUM_PART_SIZE_CTX   4
 number of context models for partition size More...
 
#define NUM_PRED_MODE_CTX   1
 number of context models for prediction mode More...
 
#define NUM_INTRA_PREDICT_CTX   1
 number of context models for intra prediction More...
 
#define NUM_CHROMA_PRED_CTX   2
 number of context models for intra prediction (chroma) More...
 
#define NUM_INTER_DIR_CTX   5
 number of context models for inter prediction direction More...
 
#define NUM_MV_RES_CTX   2
 number of context models for motion vector difference More...
 
#define NUM_CHROMA_QP_ADJ_FLAG_CTX   1
 number of context models for chroma_qp_adjustment_flag More...
 
#define NUM_CHROMA_QP_ADJ_IDC_CTX   1
 number of context models for chroma_qp_adjustment_idc More...
 
#define NUM_REF_NO_CTX   2
 number of context models for reference index More...
 
#define NUM_TRANS_SUBDIV_FLAG_CTX   3
 number of context models for transform subdivision flags More...
 
#define NUM_QT_ROOT_CBF_CTX   1
 number of context models for QT ROOT CBF More...
 
#define NUM_DELTA_QP_CTX   3
 number of context models for dQP More...
 
#define NUM_SIG_CG_FLAG_CTX   2
 number of context models for MULTI_LEVEL_SIGNIFICANCE More...
 
#define NUM_EXPLICIT_RDPCM_FLAG_CTX   1
 number of context models for the flag which specifies whether to use RDPCM on inter coded residues More...
 
#define NUM_EXPLICIT_RDPCM_DIR_CTX   1
 number of context models for the flag which specifies which RDPCM direction is used on inter coded residues More...
 
#define NUM_SIG_FLAG_CTX_LUMA   28
 number of context models for luma sig flag More...
 
#define NUM_SIG_FLAG_CTX_CHROMA   16
 number of context models for chroma sig flag More...
 
#define NEIGHBOURHOOD_00_CONTEXT_1_THRESHOLD_4x4   3
 
#define NEIGHBOURHOOD_00_CONTEXT_2_THRESHOLD_4x4   1
 
#define FIRST_SIG_FLAG_CTX_LUMA   0
 
#define FIRST_SIG_FLAG_CTX_CHROMA   (FIRST_SIG_FLAG_CTX_LUMA + NUM_SIG_FLAG_CTX_LUMA)
 
#define NUM_SIG_FLAG_CTX   (NUM_SIG_FLAG_CTX_LUMA + NUM_SIG_FLAG_CTX_CHROMA)
 number of context models for sig flag More...
 
#define NUM_CTX_LAST_FLAG_SETS   2
 
#define NUM_CTX_LAST_FLAG_XY   15
 number of context models for last coefficient position More...
 
#define NUM_ONE_FLAG_CTX_PER_SET   4
 number of context models for greater than 1 flag in a set More...
 
#define NUM_ABS_FLAG_CTX_PER_SET   1
 number of context models for greater than 2 flag in a set More...
 
#define NUM_CTX_SETS_LUMA   4
 number of context model sets for luminance More...
 
#define NUM_CTX_SETS_CHROMA   2
 number of context model sets for combined chrominance More...
 
#define FIRST_CTX_SET_LUMA   0
 index of first luminance context set More...
 
#define NUM_ONE_FLAG_CTX_LUMA   (NUM_ONE_FLAG_CTX_PER_SET * NUM_CTX_SETS_LUMA)
 number of context models for greater than 1 flag of luma More...
 
#define NUM_ONE_FLAG_CTX_CHROMA   (NUM_ONE_FLAG_CTX_PER_SET * NUM_CTX_SETS_CHROMA)
 number of context models for greater than 1 flag of chroma More...
 
#define NUM_ABS_FLAG_CTX_LUMA   (NUM_ABS_FLAG_CTX_PER_SET * NUM_CTX_SETS_LUMA)
 number of context models for greater than 2 flag of luma More...
 
#define NUM_ABS_FLAG_CTX_CHROMA   (NUM_ABS_FLAG_CTX_PER_SET * NUM_CTX_SETS_CHROMA)
 number of context models for greater than 2 flag of chroma More...
 
#define NUM_ONE_FLAG_CTX   (NUM_ONE_FLAG_CTX_LUMA + NUM_ONE_FLAG_CTX_CHROMA)
 number of context models for greater than 1 flag More...
 
#define NUM_ABS_FLAG_CTX   (NUM_ABS_FLAG_CTX_LUMA + NUM_ABS_FLAG_CTX_CHROMA)
 number of context models for greater than 2 flag More...
 
#define FIRST_CTX_SET_CHROMA   (FIRST_CTX_SET_LUMA + NUM_CTX_SETS_LUMA)
 index of first chrominance context set More...
 
#define NUM_QT_CBF_CTX_SETS   2
 
#define NUM_QT_CBF_CTX_PER_SET   5
 number of context models for QT CBF More...
 
#define FIRST_CBF_CTX_LUMA   0
 index of first luminance CBF context More...
 
#define FIRST_CBF_CTX_CHROMA   (FIRST_CBF_CTX_LUMA + NUM_QT_CBF_CTX_PER_SET)
 index of first chrominance CBF context More...
 
#define NUM_MVP_IDX_CTX   1
 number of context models for MVP index More...
 
#define NUM_SAO_MERGE_FLAG_CTX   1
 number of context models for SAO merge flags More...
 
#define NUM_SAO_TYPE_IDX_CTX   1
 number of context models for SAO type index More...
 
#define NUM_TRANSFORMSKIP_FLAG_CTX   1
 number of context models for transform skipping More...
 
#define NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX   1
 
#define NUM_CROSS_COMPONENT_PREDICTION_CTX   10
 
#define CNU   154
 dummy initialization value for unused context models 'Context model Not Used' More...
 
#define BSLICE_LUMA_CBF_CONTEXT   153, 111, CNU, CNU, CNU
 
#define PSLICE_LUMA_CBF_CONTEXT   153, 111, CNU, CNU, CNU
 
#define ISLICE_LUMA_CBF_CONTEXT   111, 141, CNU, CNU, CNU
 
#define BSLICE_CHROMA_CBF_CONTEXT   149, 92, 167, 154, 154
 
#define PSLICE_CHROMA_CBF_CONTEXT   149, 107, 167, 154, 154
 
#define ISLICE_CHROMA_CBF_CONTEXT   94, 138, 182, 154, 154
 
#define BSLICE_LUMA_LAST_POSITION_CONTEXT   125, 110, 124, 110, 95, 94, 125, 111, 111, 79, 125, 126, 111, 111, 79
 
#define PSLICE_LUMA_LAST_POSITION_CONTEXT   125, 110, 94, 110, 95, 79, 125, 111, 110, 78, 110, 111, 111, 95, 94
 
#define ISLICE_LUMA_LAST_POSITION_CONTEXT   110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111, 79
 
#define BSLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123, 93, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
 
#define PSLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123, 108, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
 
#define ISLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123, 63, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
 
#define BSLICE_LUMA_SIGNIFICANCE_CONTEXT   170, 154, 139, 153, 139, 123, 123, 63, 124, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 140
 
#define PSLICE_LUMA_SIGNIFICANCE_CONTEXT   155, 154, 139, 153, 139, 123, 123, 63, 153, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 166, 183, 140, 136, 153, 154, 140
 
#define ISLICE_LUMA_SIGNIFICANCE_CONTEXT   111, 111, 125, 110, 110, 94, 124, 108, 124, 107, 125, 141, 179, 153, 125, 107, 125, 141, 179, 153, 125, 107, 125, 141, 179, 153, 125, 141
 
#define BSLICE_CHROMA_SIGNIFICANCE_CONTEXT   170, 153, 138, 138, 122, 121, 122, 121, 167, 151, 183, 140, 151, 183, 140, 140
 
#define PSLICE_CHROMA_SIGNIFICANCE_CONTEXT   170, 153, 123, 123, 107, 121, 107, 121, 167, 151, 183, 140, 151, 183, 140, 140
 
#define ISLICE_CHROMA_SIGNIFICANCE_CONTEXT   140, 139, 182, 182, 152, 136, 152, 136, 153, 136, 139, 111, 136, 139, 111, 111
 
#define BSLICE_LUMA_ONE_CONTEXT   154, 196, 167, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121, 136, 122
 
#define PSLICE_LUMA_ONE_CONTEXT   154, 196, 196, 167, 154, 152, 167, 182, 182, 134, 149, 136, 153, 121, 136, 137
 
#define ISLICE_LUMA_ONE_CONTEXT   140, 92, 137, 138, 140, 152, 138, 139, 153, 74, 149, 92, 139, 107, 122, 152
 
#define BSLICE_LUMA_ABS_CONTEXT   107, 167, 91, 107
 
#define PSLICE_LUMA_ABS_CONTEXT   107, 167, 91, 122
 
#define ISLICE_LUMA_ABS_CONTEXT   138, 153, 136, 167
 
#define BSLICE_CHROMA_ONE_CONTEXT   169, 208, 166, 167, 154, 152, 167, 182
 
#define PSLICE_CHROMA_ONE_CONTEXT   169, 194, 166, 167, 154, 167, 137, 182
 
#define ISLICE_CHROMA_ONE_CONTEXT   140, 179, 166, 182, 140, 227, 122, 197
 
#define BSLICE_CHROMA_ABS_CONTEXT   107, 167
 
#define PSLICE_CHROMA_ABS_CONTEXT   107, 167
 
#define ISLICE_CHROMA_ABS_CONTEXT   152, 152
 
static const UInt significanceMapContextSetStart [MAX_NUM_CHANNEL_TYPE][CONTEXT_NUMBER_OF_TYPES] = { {0, 9, 21, 27}, {0, 9, 12, 15} }
 
static const UInt significanceMapContextSetSize [MAX_NUM_CHANNEL_TYPE][CONTEXT_NUMBER_OF_TYPES] = { {9, 12, 6, 1}, {9, 3, 3, 1} }
 
static const UInt nonDiagonalScan8x8ContextOffset [MAX_NUM_CHANNEL_TYPE] = { 6, 0 }
 
static const UInt notFirstGroupNeighbourhoodContextOffset [MAX_NUM_CHANNEL_TYPE] = { 3, 0 }
 
static const UChar INIT_CU_TRANSQUANT_BYPASS_FLAG [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_SPLIT_FLAG [NUMBER_OF_SLICE_TYPES][3]
 
static const UChar INIT_SKIP_FLAG [NUMBER_OF_SLICE_TYPES][3]
 
static const UChar INIT_MERGE_FLAG_EXT [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_MERGE_IDX_EXT [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_PART_SIZE [NUMBER_OF_SLICE_TYPES][4]
 
static const UChar INIT_PRED_MODE [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_INTRA_PRED_MODE [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_CHROMA_PRED_MODE [NUMBER_OF_SLICE_TYPES][2]
 
static const UChar INIT_INTER_DIR [NUMBER_OF_SLICE_TYPES][5]
 
static const UChar INIT_MVD [NUMBER_OF_SLICE_TYPES][2]
 
static const UChar INIT_REF_PIC [NUMBER_OF_SLICE_TYPES][2]
 
static const UChar INIT_DQP [NUMBER_OF_SLICE_TYPES][3]
 
static const UChar INIT_CHROMA_QP_ADJ_FLAG [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_CHROMA_QP_ADJ_IDC [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_QT_CBF [NUMBER_OF_SLICE_TYPES][2 *5]
 
static const UChar INIT_QT_ROOT_CBF [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_LAST [NUMBER_OF_SLICE_TYPES][2 *15]
 
static const UChar INIT_SIG_CG_FLAG [NUMBER_OF_SLICE_TYPES][2 *2]
 
static const UChar INIT_SIG_FLAG [NUMBER_OF_SLICE_TYPES][(28+16)]
 
static const UChar INIT_ONE_FLAG [NUMBER_OF_SLICE_TYPES][((4 *4)+(4 *2))]
 
static const UChar INIT_ABS_FLAG [NUMBER_OF_SLICE_TYPES][((1 *4)+(1 *2))]
 
static const UChar INIT_MVP_IDX [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_SAO_MERGE_FLAG [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_SAO_TYPE_IDX [NUMBER_OF_SLICE_TYPES][1]
 
static const UChar INIT_TRANS_SUBDIV_FLAG [NUMBER_OF_SLICE_TYPES][3]
 
static const UChar INIT_TRANSFORMSKIP_FLAG [NUMBER_OF_SLICE_TYPES][2 *1]
 
static const UChar INIT_EXPLICIT_RDPCM_FLAG [NUMBER_OF_SLICE_TYPES][2 *1]
 
static const UChar INIT_EXPLICIT_RDPCM_DIR [NUMBER_OF_SLICE_TYPES][2 *1]
 
static const UChar INIT_CROSS_COMPONENT_PREDICTION [NUMBER_OF_SLICE_TYPES][10]
 

Detailed Description

Defines constants and tables for SBAC.

Todo:
number of context models is not matched to actual use, should be fixed

Definition in file ContextTables.h.