source: SHVCSoftware/branches/SHM-dev/source/Lib/TLibCommon/ContextTables.h @ 1497

Last change on this file since 1497 was 1315, checked in by seregin, 9 years ago

port rev 4389 and rev 4390

  • Property svn:eol-style set to native
File size: 19.8 KB
RevLine 
[313]1/* The copyright in this software is being made available under the BSD
2 * License, included below. This software may be subject to other third party
3 * and contributor rights, including patent rights, and no such rights are
[1246]4 * granted under this license.
[313]5 *
[1259]6 * Copyright (c) 2010-2015, ITU/ISO/IEC
[313]7 * All rights reserved.
8 *
9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are met:
11 *
12 *  * Redistributions of source code must retain the above copyright notice,
13 *    this list of conditions and the following disclaimer.
14 *  * Redistributions in binary form must reproduce the above copyright notice,
15 *    this list of conditions and the following disclaimer in the documentation
16 *    and/or other materials provided with the distribution.
17 *  * Neither the name of the ITU/ISO/IEC nor the names of its contributors may
18 *    be used to endorse or promote products derived from this software without
19 *    specific prior written permission.
20 *
21 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
22 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
23 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
24 * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS
25 * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
26 * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
27 * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28 * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29 * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
30 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
31 * THE POSSIBILITY OF SUCH DAMAGE.
32 */
33
34/** \file     ContextTables.h
35    \brief    Defines constants and tables for SBAC
36    \todo     number of context models is not matched to actual use, should be fixed
37*/
38
39#ifndef __CONTEXTTABLES__
40#define __CONTEXTTABLES__
41
42//! \ingroup TLibCommon
43//! \{
44
45// ====================================================================================================================
46// Constants
47// ====================================================================================================================
48
49#define MAX_NUM_CTX_MOD             512       ///< maximum number of supported contexts
50
51#define NUM_SPLIT_FLAG_CTX            3       ///< number of context models for split flag
52#define NUM_SKIP_FLAG_CTX             3       ///< number of context models for skip flag
53
54#define NUM_MERGE_FLAG_EXT_CTX        1       ///< number of context models for merge flag of merge extended
55#define NUM_MERGE_IDX_EXT_CTX         1       ///< number of context models for merge index of merge extended
56
57#define NUM_PART_SIZE_CTX             4       ///< number of context models for partition size
58#define NUM_PRED_MODE_CTX             1       ///< number of context models for prediction mode
59
[1315]60#define NUM_INTRA_PREDICT_CTX         1       ///< number of context models for intra prediction
[313]61
62#define NUM_CHROMA_PRED_CTX           2       ///< number of context models for intra prediction (chroma)
63#define NUM_INTER_DIR_CTX             5       ///< number of context models for inter prediction direction
64#define NUM_MV_RES_CTX                2       ///< number of context models for motion vector difference
[1029]65#define NUM_CHROMA_QP_ADJ_FLAG_CTX    1       ///< number of context models for chroma_qp_adjustment_flag
66#define NUM_CHROMA_QP_ADJ_IDC_CTX     1       ///< number of context models for chroma_qp_adjustment_idc
[313]67
68#define NUM_REF_NO_CTX                2       ///< number of context models for reference index
69#define NUM_TRANS_SUBDIV_FLAG_CTX     3       ///< number of context models for transform subdivision flags
70#define NUM_QT_ROOT_CBF_CTX           1       ///< number of context models for QT ROOT CBF
71#define NUM_DELTA_QP_CTX              3       ///< number of context models for dQP
72
73#define NUM_SIG_CG_FLAG_CTX           2       ///< number of context models for MULTI_LEVEL_SIGNIFICANCE
[1029]74#define NUM_EXPLICIT_RDPCM_FLAG_CTX   1       ///< number of context models for the flag which specifies whether to use RDPCM on inter coded residues
75#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
[313]76
[1029]77//--------------------------------------------------------------------------------------------------
[313]78
[1029]79// context size definitions for significance map
80
81#define NUM_SIG_FLAG_CTX_LUMA        28       ///< number of context models for luma sig flag
82#define NUM_SIG_FLAG_CTX_CHROMA      16       ///< number of context models for chroma sig flag
83
84//                                                                                                           |----Luma-----|  |---Chroma----|
85static const UInt significanceMapContextSetStart         [MAX_NUM_CHANNEL_TYPE][CONTEXT_NUMBER_OF_TYPES] = { {0,  9, 21, 27}, {0,  9, 12, 15} };
86static const UInt significanceMapContextSetSize          [MAX_NUM_CHANNEL_TYPE][CONTEXT_NUMBER_OF_TYPES] = { {9, 12,  6,  1}, {9,  3,  3,  1} };
87static const UInt nonDiagonalScan8x8ContextOffset        [MAX_NUM_CHANNEL_TYPE]                          = {  6,               0              };
88static const UInt notFirstGroupNeighbourhoodContextOffset[MAX_NUM_CHANNEL_TYPE]                          = {  3,               0              };
89
90//------------------
91
92#define NEIGHBOURHOOD_00_CONTEXT_1_THRESHOLD_4x4  3
93#define NEIGHBOURHOOD_00_CONTEXT_2_THRESHOLD_4x4  1
94
95//------------------
96
97#define FIRST_SIG_FLAG_CTX_LUMA                   0
98#define FIRST_SIG_FLAG_CTX_CHROMA     (FIRST_SIG_FLAG_CTX_LUMA + NUM_SIG_FLAG_CTX_LUMA)
99
100#define NUM_SIG_FLAG_CTX              (NUM_SIG_FLAG_CTX_LUMA + NUM_SIG_FLAG_CTX_CHROMA)       ///< number of context models for sig flag
101
102//--------------------------------------------------------------------------------------------------
103
104// context size definitions for last significant coefficient position
105
106#define NUM_CTX_LAST_FLAG_SETS         2
107
[313]108#define NUM_CTX_LAST_FLAG_XY          15      ///< number of context models for last coefficient position
109
[1029]110//--------------------------------------------------------------------------------------------------
[313]111
[1029]112// context size definitions for greater-than-one and greater-than-two maps
113
114#define NUM_ONE_FLAG_CTX_PER_SET       4      ///< number of context models for greater than 1 flag in a set
115#define NUM_ABS_FLAG_CTX_PER_SET       1      ///< number of context models for greater than 2 flag in a set
116
117//------------------
118
119#define NUM_CTX_SETS_LUMA              4      ///< number of context model sets for luminance
120#define NUM_CTX_SETS_CHROMA            2      ///< number of context model sets for combined chrominance
121
122#define FIRST_CTX_SET_LUMA             0      ///< index of first luminance context set
123
124//------------------
125
126#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
127#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
128
129#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
130#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
131
132#define NUM_ONE_FLAG_CTX              (NUM_ONE_FLAG_CTX_LUMA + NUM_ONE_FLAG_CTX_CHROMA)        ///< number of context models for greater than 1 flag
133#define NUM_ABS_FLAG_CTX              (NUM_ABS_FLAG_CTX_LUMA + NUM_ABS_FLAG_CTX_CHROMA)        ///< number of context models for greater than 2 flag
134
135#define FIRST_CTX_SET_CHROMA          (FIRST_CTX_SET_LUMA + NUM_CTX_SETS_LUMA)                 ///< index of first chrominance context set
136
137//--------------------------------------------------------------------------------------------------
138
139// context size definitions for CBF
140
141#define NUM_QT_CBF_CTX_SETS           2
142
143#define NUM_QT_CBF_CTX_PER_SET        5       ///< number of context models for QT CBF
144
145#define FIRST_CBF_CTX_LUMA            0       ///< index of first luminance CBF context
146
147#define FIRST_CBF_CTX_CHROMA          (FIRST_CBF_CTX_LUMA + NUM_QT_CBF_CTX_PER_SET)  ///< index of first chrominance CBF context
148
149
150//--------------------------------------------------------------------------------------------------
151
[595]152#define NUM_MVP_IDX_CTX               1       ///< number of context models for MVP index
[313]153
154#define NUM_SAO_MERGE_FLAG_CTX        1       ///< number of context models for SAO merge flags
155#define NUM_SAO_TYPE_IDX_CTX          1       ///< number of context models for SAO type index
156
[1246]157#define NUM_TRANSFORMSKIP_FLAG_CTX    1       ///< number of context models for transform skipping
[1029]158
[1246]159#define NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX  1
[1029]160
161#define NUM_CROSS_COMPONENT_PREDICTION_CTX 10
162
[313]163#define CNU                          154      ///< dummy initialization value for unused context models 'Context model Not Used'
164
[1029]165
[313]166// ====================================================================================================================
167// Tables
168// ====================================================================================================================
169
170// initial probability for cu_transquant_bypass flag
171static const UChar
[1029]172INIT_CU_TRANSQUANT_BYPASS_FLAG[NUMBER_OF_SLICE_TYPES][NUM_CU_TRANSQUANT_BYPASS_FLAG_CTX] =
[313]173{
[1246]174  { 154 },
175  { 154 },
176  { 154 },
[313]177};
178
179// initial probability for split flag
[1246]180static const UChar
[1029]181INIT_SPLIT_FLAG[NUMBER_OF_SLICE_TYPES][NUM_SPLIT_FLAG_CTX] =
[313]182{
183  { 107,  139,  126, },
[1246]184  { 107,  139,  126, },
185  { 139,  141,  157, },
[313]186};
187
[1246]188static const UChar
[1029]189INIT_SKIP_FLAG[NUMBER_OF_SLICE_TYPES][NUM_SKIP_FLAG_CTX] =
[313]190{
[1246]191  { 197,  185,  201, },
192  { 197,  185,  201, },
193  { CNU,  CNU,  CNU, },
[313]194};
195
196static const UChar
[1029]197INIT_MERGE_FLAG_EXT[NUMBER_OF_SLICE_TYPES][NUM_MERGE_FLAG_EXT_CTX] =
[313]198{
[1246]199  { 154, },
200  { 110, },
201  { CNU, },
[313]202};
203
[1246]204static const UChar
[1029]205INIT_MERGE_IDX_EXT[NUMBER_OF_SLICE_TYPES][NUM_MERGE_IDX_EXT_CTX] =
[313]206{
[1246]207  { 137, },
208  { 122, },
209  { CNU, },
[313]210};
211
[1246]212static const UChar
[1029]213INIT_PART_SIZE[NUMBER_OF_SLICE_TYPES][NUM_PART_SIZE_CTX] =
[313]214{
[1246]215  { 154,  139,  154, 154 },
216  { 154,  139,  154, 154 },
217  { 184,  CNU,  CNU, CNU },
[313]218};
219
[1246]220static const UChar
[1029]221INIT_PRED_MODE[NUMBER_OF_SLICE_TYPES][NUM_PRED_MODE_CTX] =
[313]222{
[1246]223  { 134, },
224  { 149, },
225  { CNU, },
[313]226};
227
[1246]228static const UChar
[1315]229INIT_INTRA_PRED_MODE[NUMBER_OF_SLICE_TYPES][NUM_INTRA_PREDICT_CTX] =
[313]230{
[1246]231  { 183, },
232  { 154, },
233  { 184, },
[313]234};
235
[1246]236static const UChar
[1029]237INIT_CHROMA_PRED_MODE[NUMBER_OF_SLICE_TYPES][NUM_CHROMA_PRED_CTX] =
[313]238{
[1246]239  { 152,  139, },
240  { 152,  139, },
241  {  63,  139, },
[313]242};
243
[1246]244static const UChar
[1029]245INIT_INTER_DIR[NUMBER_OF_SLICE_TYPES][NUM_INTER_DIR_CTX] =
[313]246{
[1246]247  {  95,   79,   63,   31,  31, },
248  {  95,   79,   63,   31,  31, },
249  { CNU,  CNU,  CNU,  CNU, CNU, },
[313]250};
251
[1246]252static const UChar
[1029]253INIT_MVD[NUMBER_OF_SLICE_TYPES][NUM_MV_RES_CTX] =
[313]254{
[1246]255  { 169,  198, },
256  { 140,  198, },
257  { CNU,  CNU, },
[313]258};
259
[1246]260static const UChar
[1029]261INIT_REF_PIC[NUMBER_OF_SLICE_TYPES][NUM_REF_NO_CTX] =
[313]262{
[1246]263  { 153,  153 },
264  { 153,  153 },
265  { CNU,  CNU },
[313]266};
267
[1246]268static const UChar
[1029]269INIT_DQP[NUMBER_OF_SLICE_TYPES][NUM_DELTA_QP_CTX] =
[313]270{
[1246]271  { 154,  154,  154, },
272  { 154,  154,  154, },
273  { 154,  154,  154, },
[313]274};
275
[1246]276static const UChar
[1029]277INIT_CHROMA_QP_ADJ_FLAG[NUMBER_OF_SLICE_TYPES][NUM_CHROMA_QP_ADJ_FLAG_CTX] =
[313]278{
[1029]279  { 154, },
280  { 154, },
281  { 154, },
[313]282};
283
[1029]284static const UChar
285INIT_CHROMA_QP_ADJ_IDC[NUMBER_OF_SLICE_TYPES][NUM_CHROMA_QP_ADJ_IDC_CTX] =
286{
287  { 154, },
288  { 154, },
289  { 154, },
290};
291
292//--------------------------------------------------------------------------------------------------
293
294//Initialisation for CBF
295
296//                                 |---------Luminance---------|
297#define BSLICE_LUMA_CBF_CONTEXT     153,  111,  CNU,  CNU,  CNU
298#define PSLICE_LUMA_CBF_CONTEXT     153,  111,  CNU,  CNU,  CNU
299#define ISLICE_LUMA_CBF_CONTEXT     111,  141,  CNU,  CNU,  CNU
300//                                 |--------Chrominance--------|
301#define BSLICE_CHROMA_CBF_CONTEXT   149,   92,  167,  154,  154
302#define PSLICE_CHROMA_CBF_CONTEXT   149,  107,  167,  154,  154
303#define ISLICE_CHROMA_CBF_CONTEXT    94,  138,  182,  154,  154
304
305
[1246]306static const UChar
[1029]307INIT_QT_CBF[NUMBER_OF_SLICE_TYPES][NUM_QT_CBF_CTX_SETS * NUM_QT_CBF_CTX_PER_SET] =
[313]308{
[1029]309  { BSLICE_LUMA_CBF_CONTEXT, BSLICE_CHROMA_CBF_CONTEXT },
310  { PSLICE_LUMA_CBF_CONTEXT, PSLICE_CHROMA_CBF_CONTEXT },
311  { ISLICE_LUMA_CBF_CONTEXT, ISLICE_CHROMA_CBF_CONTEXT },
312};
313
314
315//--------------------------------------------------------------------------------------------------
316
317static const UChar
318INIT_QT_ROOT_CBF[NUMBER_OF_SLICE_TYPES][NUM_QT_ROOT_CBF_CTX] =
319{
[1246]320  {  79, },
321  {  79, },
322  { CNU, },
[313]323};
324
[1029]325
326//--------------------------------------------------------------------------------------------------
327
328//Initialisation for last-significant-position
329
330//                                           |------------------------------Luminance----------------------------------|
331#define BSLICE_LUMA_LAST_POSITION_CONTEXT     125, 110, 124, 110,  95,  94, 125, 111, 111,  79, 125, 126, 111, 111,  79
332#define PSLICE_LUMA_LAST_POSITION_CONTEXT     125, 110,  94, 110,  95,  79, 125, 111, 110,  78, 110, 111, 111,  95,  94
333#define ISLICE_LUMA_LAST_POSITION_CONTEXT     110, 110, 124, 125, 140, 153, 125, 127, 140, 109, 111, 143, 127, 111,  79
334//                                           |------------------------------Chrominance--------------------------------|
335#define BSLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123,  93, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
336#define PSLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123, 108, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
337#define ISLICE_CHROMA_LAST_POSITION_CONTEXT   108, 123,  63, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU, CNU
338
339
[1246]340static const UChar
[1029]341INIT_LAST[NUMBER_OF_SLICE_TYPES][NUM_CTX_LAST_FLAG_SETS * NUM_CTX_LAST_FLAG_XY] =
[313]342{
[1029]343  { BSLICE_LUMA_LAST_POSITION_CONTEXT, BSLICE_CHROMA_LAST_POSITION_CONTEXT },
344  { PSLICE_LUMA_LAST_POSITION_CONTEXT, PSLICE_CHROMA_LAST_POSITION_CONTEXT },
345  { ISLICE_LUMA_LAST_POSITION_CONTEXT, ISLICE_CHROMA_LAST_POSITION_CONTEXT },
[313]346};
347
[1029]348
349//--------------------------------------------------------------------------------------------------
350
[1246]351static const UChar
[1029]352INIT_SIG_CG_FLAG[NUMBER_OF_SLICE_TYPES][2 * NUM_SIG_CG_FLAG_CTX] =
[313]353{
[1246]354  { 121,  140,
355    61,  154,
356  },
357  { 121,  140,
358    61,  154,
359  },
360  {  91,  171,
361    134,  141,
362  },
[313]363};
364
[1029]365
366//--------------------------------------------------------------------------------------------------
367
368//Initialisation for significance map
369
370//                                          |-DC-|  |-----------------4x4------------------|  |------8x8 Diagonal Scan------|  |----8x8 Non-Diagonal Scan----|  |-NxN First group-|  |-NxN Other group-| |-Single context-|
371//                                          |    |  |                                      |  |-First Group-| |-Other Group-|  |-First Group-| |-Other Group-|  |                 |  |                 | |                |
372#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
373#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
374#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
375
376//                                          |-DC-|  |-----------------4x4------------------|  |-8x8 Any group-|  |-NxN Any group-| |-Single context-|
377#define BSLICE_CHROMA_SIGNIFICANCE_CONTEXT   170,    153, 138, 138, 122, 121, 122, 121, 167,   151,  183,  140,   151,  183,  140,        140
378#define PSLICE_CHROMA_SIGNIFICANCE_CONTEXT   170,    153, 123, 123, 107, 121, 107, 121, 167,   151,  183,  140,   151,  183,  140,        140
379#define ISLICE_CHROMA_SIGNIFICANCE_CONTEXT   140,    139, 182, 182, 152, 136, 152, 136, 153,   136,  139,  111,   136,  139,  111,        111
380
381//------------------------------------------------
382
[1246]383static const UChar
[1029]384INIT_SIG_FLAG[NUMBER_OF_SLICE_TYPES][NUM_SIG_FLAG_CTX] =
[313]385{
[1029]386  { BSLICE_LUMA_SIGNIFICANCE_CONTEXT, BSLICE_CHROMA_SIGNIFICANCE_CONTEXT },
387  { PSLICE_LUMA_SIGNIFICANCE_CONTEXT, PSLICE_CHROMA_SIGNIFICANCE_CONTEXT },
388  { ISLICE_LUMA_SIGNIFICANCE_CONTEXT, ISLICE_CHROMA_SIGNIFICANCE_CONTEXT },
[313]389};
390
[1029]391
392//--------------------------------------------------------------------------------------------------
393
394//Initialisation for greater-than-one flags and greater-than-two flags
395
396//                                 |------Set 0-------| |------Set 1-------| |------Set 2-------| |------Set 3-------|
397#define BSLICE_LUMA_ONE_CONTEXT     154, 196, 167, 167,  154, 152, 167, 182,  182, 134, 149, 136,  153, 121, 136, 122
398#define PSLICE_LUMA_ONE_CONTEXT     154, 196, 196, 167,  154, 152, 167, 182,  182, 134, 149, 136,  153, 121, 136, 137
399#define ISLICE_LUMA_ONE_CONTEXT     140,  92, 137, 138,  140, 152, 138, 139,  153,  74, 149,  92,  139, 107, 122, 152
400
401#define BSLICE_LUMA_ABS_CONTEXT     107,                 167,                  91,                 107
402#define PSLICE_LUMA_ABS_CONTEXT     107,                 167,                  91,                 122
403#define ISLICE_LUMA_ABS_CONTEXT     138,                 153,                 136,                 167
404
405//                                 |------Set 4-------| |------Set 5-------|
406#define BSLICE_CHROMA_ONE_CONTEXT   169, 208, 166, 167,  154, 152, 167, 182
407#define PSLICE_CHROMA_ONE_CONTEXT   169, 194, 166, 167,  154, 167, 137, 182
408#define ISLICE_CHROMA_ONE_CONTEXT   140, 179, 166, 182,  140, 227, 122, 197
409
410#define BSLICE_CHROMA_ABS_CONTEXT   107,                 167
411#define PSLICE_CHROMA_ABS_CONTEXT   107,                 167
412#define ISLICE_CHROMA_ABS_CONTEXT   152,                 152
413
414
415//------------------------------------------------
416
[1246]417static const UChar
[1029]418INIT_ONE_FLAG[NUMBER_OF_SLICE_TYPES][NUM_ONE_FLAG_CTX] =
[313]419{
[1029]420  { BSLICE_LUMA_ONE_CONTEXT, BSLICE_CHROMA_ONE_CONTEXT },
421  { PSLICE_LUMA_ONE_CONTEXT, PSLICE_CHROMA_ONE_CONTEXT },
422  { ISLICE_LUMA_ONE_CONTEXT, ISLICE_CHROMA_ONE_CONTEXT },
[313]423};
424
[1246]425static const UChar
[1029]426INIT_ABS_FLAG[NUMBER_OF_SLICE_TYPES][NUM_ABS_FLAG_CTX] =
[313]427{
[1029]428  { BSLICE_LUMA_ABS_CONTEXT, BSLICE_CHROMA_ABS_CONTEXT },
429  { PSLICE_LUMA_ABS_CONTEXT, PSLICE_CHROMA_ABS_CONTEXT },
430  { ISLICE_LUMA_ABS_CONTEXT, ISLICE_CHROMA_ABS_CONTEXT },
[313]431};
432
[1029]433
434//--------------------------------------------------------------------------------------------------
435
[1246]436static const UChar
[1029]437INIT_MVP_IDX[NUMBER_OF_SLICE_TYPES][NUM_MVP_IDX_CTX] =
[313]438{
[1029]439  { 168, },
440  { 168, },
441  { CNU, },
[313]442};
443
[1246]444static const UChar
[1029]445INIT_SAO_MERGE_FLAG[NUMBER_OF_SLICE_TYPES][NUM_SAO_MERGE_FLAG_CTX] =
[313]446{
[1246]447  { 153,  },
448  { 153,  },
449  { 153,  },
[313]450};
451
[1246]452static const UChar
[1029]453INIT_SAO_TYPE_IDX[NUMBER_OF_SLICE_TYPES][NUM_SAO_TYPE_IDX_CTX] =
[313]454{
455  { 160, },
456  { 185, },
457  { 200, },
458};
459
460static const UChar
[1029]461INIT_TRANS_SUBDIV_FLAG[NUMBER_OF_SLICE_TYPES][NUM_TRANS_SUBDIV_FLAG_CTX] =
[313]462{
463  { 224,  167,  122, },
464  { 124,  138,   94, },
465  { 153,  138,  138, },
466};
467
468static const UChar
[1029]469INIT_TRANSFORMSKIP_FLAG[NUMBER_OF_SLICE_TYPES][2*NUM_TRANSFORMSKIP_FLAG_CTX] =
[313]470{
[1246]471  { 139,  139},
472  { 139,  139},
473  { 139,  139},
[313]474};
[1029]475
476static const UChar
477INIT_EXPLICIT_RDPCM_FLAG[NUMBER_OF_SLICE_TYPES][2*NUM_EXPLICIT_RDPCM_FLAG_CTX] =
478{
479  {139, 139},
480  {139, 139},
481  {CNU, CNU}
482};
483
484static const UChar
485INIT_EXPLICIT_RDPCM_DIR[NUMBER_OF_SLICE_TYPES][2*NUM_EXPLICIT_RDPCM_DIR_CTX] =
486{
487  {139, 139},
488  {139, 139},
489  {CNU, CNU}
490};
491
492static const UChar
493INIT_CROSS_COMPONENT_PREDICTION[NUMBER_OF_SLICE_TYPES][NUM_CROSS_COMPONENT_PREDICTION_CTX] =
494{
495  { 154, 154, 154, 154, 154, 154, 154, 154, 154, 154 },
496  { 154, 154, 154, 154, 154, 154, 154, 154, 154, 154 },
497  { 154, 154, 154, 154, 154, 154, 154, 154, 154, 154 },
498};
499
[313]500//! \}
501
502#endif
Note: See TracBrowser for help on using the repository browser.