82 default:
return "UNK";
168 std::cerr <<
"ERROR: Unknown scan type \"" <<
m_scanType <<
"\"in ScanGenerator::GetNextIndex" << std::endl;
193 for(
UInt log2BlockHeight = 0; log2BlockHeight <
MAX_CU_DEPTH; log2BlockHeight++)
195 for(
UInt log2BlockWidth = 0; log2BlockWidth <
MAX_CU_DEPTH; log2BlockWidth++)
197 const UInt blockWidth = 1 << log2BlockWidth;
198 const UInt blockHeight = 1 << log2BlockHeight;
199 const UInt totalValues = blockWidth * blockHeight;
211 ScanGenerator fullBlockScan(blockWidth, blockHeight, blockWidth, scanType);
213 for (
UInt scanPosition = 0; scanPosition < totalValues; scanPosition++)
228 const UInt groupSize = groupWidth * groupHeight;
229 const UInt totalGroups = widthInGroups * heightInGroups;
237 ScanGenerator fullBlockScan(widthInGroups, heightInGroups, groupWidth, scanType);
239 for (
UInt groupIndex = 0; groupIndex < totalGroups; groupIndex++)
243 const UInt groupOffsetX = groupPositionX * groupWidth;
244 const UInt groupOffsetY = groupPositionY * groupHeight;
245 const UInt groupOffsetScan = groupIndex * groupSize;
247 ScanGenerator groupScan(groupWidth, groupHeight, blockWidth, scanType);
249 for (
UInt scanPosition = 0; scanPosition < groupSize; scanPosition++)
269 for (
UInt log2BlockWidth = 0; log2BlockWidth <
MAX_CU_DEPTH; log2BlockWidth++)
271 for (
UInt log2BlockHeight = 0; log2BlockHeight <
MAX_CU_DEPTH; log2BlockHeight++)
273 delete []
g_scanOrder[groupTypeIndex][scanOrderIndex][log2BlockWidth][log2BlockHeight];
293 Int iStride = 1 << ( iMaxDepth - 1 );
295 if ( iDepth == iMaxDepth )
297 rpuiCurrIdx[0] = uiStartVal;
302 Int iStep = iStride >> iDepth;
306 initZscanToRaster( iMaxDepth, iDepth+1, uiStartVal+iStep*iStride+iStep, rpuiCurrIdx );
312 UInt uiMinCUWidth = uiMaxCUWidth >> ( uiMaxDepth - 1 );
313 UInt uiMinCUHeight = uiMaxCUHeight >> ( uiMaxDepth - 1 );
315 UInt uiNumPartInWidth = (
UInt)uiMaxCUWidth / uiMinCUWidth;
316 UInt uiNumPartInHeight = (
UInt)uiMaxCUHeight / uiMinCUHeight;
318 for (
UInt i = 0; i < uiNumPartInWidth*uiNumPartInHeight; i++ )
331 UInt uiMinCUWidth = uiMaxCUWidth >> ( uiMaxDepth - 1 );
332 UInt uiMinCUHeight = uiMaxCUHeight >> ( uiMaxDepth - 1 );
334 UInt uiNumPartInWidth = uiMaxCUWidth / uiMinCUWidth;
335 UInt uiNumPartInHeight = uiMaxCUHeight / uiMinCUHeight;
337 uiTempX[0] = 0; uiTempX++;
338 for ( i = 1; i < uiNumPartInWidth; i++ )
340 uiTempX[0] = uiTempX[-1] + uiMinCUWidth; uiTempX++;
342 for ( i = 1; i < uiNumPartInHeight; i++ )
344 memcpy(uiTempX, uiTempX-uiNumPartInWidth,
sizeof(
UInt)*uiNumPartInWidth);
345 uiTempX += uiNumPartInWidth;
348 for ( i = 1; i < uiNumPartInWidth*uiNumPartInHeight; i++ )
350 uiTempY[i] = ( i / uiNumPartInWidth ) * uiMinCUWidth;
356 26214,23302,20560,18396,16384,14564
368 #define DEFINE_DST4x4_MATRIX(a,b,c,d) \
376 #define DEFINE_DCT4x4_MATRIX(a,b,c) \
384 #define DEFINE_DCT8x8_MATRIX(a,b,c,d,e,f,g) \
386 { a, a, a, a, a, a, a, a}, \
387 { d, e, f, g, -g, -f, -e, -d}, \
388 { b, c, -c, -b, -b, -c, c, b}, \
389 { e, -g, -d, -f, f, d, g, -e}, \
390 { a, -a, -a, a, a, -a, -a, a}, \
391 { f, -d, g, e, -e, -g, d, -f}, \
392 { c, -b, b, -c, -c, b, -b, c}, \
393 { g, -f, e, -d, d, -e, f, -g} \
396 #define DEFINE_DCT16x16_MATRIX(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o) \
398 { a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a}, \
399 { h, i, j, k, l, m, n, o, -o, -n, -m, -l, -k, -j, -i, -h}, \
400 { d, e, f, g, -g, -f, -e, -d, -d, -e, -f, -g, g, f, e, d}, \
401 { i, l, o, -m, -j, -h, -k, -n, n, k, h, j, m, -o, -l, -i}, \
402 { b, c, -c, -b, -b, -c, c, b, b, c, -c, -b, -b, -c, c, b}, \
403 { j, o, -k, -i, -n, l, h, m, -m, -h, -l, n, i, k, -o, -j}, \
404 { e, -g, -d, -f, f, d, g, -e, -e, g, d, f, -f, -d, -g, e}, \
405 { k, -m, -i, o, h, n, -j, -l, l, j, -n, -h, -o, i, m, -k}, \
406 { a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a}, \
407 { l, -j, -n, h, -o, -i, m, k, -k, -m, i, o, -h, n, j, -l}, \
408 { f, -d, g, e, -e, -g, d, -f, -f, d, -g, -e, e, g, -d, f}, \
409 { m, -h, l, n, -i, k, o, -j, j, -o, -k, i, -n, -l, h, -m}, \
410 { c, -b, b, -c, -c, b, -b, c, c, -b, b, -c, -c, b, -b, c}, \
411 { n, -k, h, -j, m, o, -l, i, -i, l, -o, -m, j, -h, k, -n}, \
412 { g, -f, e, -d, d, -e, f, -g, -g, f, -e, d, -d, e, -f, g}, \
413 { o, -n, m, -l, k, -j, i, -h, h, -i, j, -k, l, -m, n, -o} \
416 #define DEFINE_DCT32x32_MATRIX(a,b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C,D,E) \
418 { a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a, a}, \
419 { p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E, -E, -D, -C, -B, -A, -z, -y, -x, -w, -v, -u, -t, -s, -r, -q, -p}, \
420 { h, i, j, k, l, m, n, o, -o, -n, -m, -l, -k, -j, -i, -h, -h, -i, -j, -k, -l, -m, -n, -o, o, n, m, l, k, j, i, h}, \
421 { q, t, w, z, C, -E, -B, -y, -v, -s, -p, -r, -u, -x, -A, -D, D, A, x, u, r, p, s, v, y, B, E, -C, -z, -w, -t, -q}, \
422 { d, e, f, g, -g, -f, -e, -d, -d, -e, -f, -g, g, f, e, d, d, e, f, g, -g, -f, -e, -d, -d, -e, -f, -g, g, f, e, d}, \
423 { r, w, B, -D, -y, -t, -p, -u, -z, -E, A, v, q, s, x, C, -C, -x, -s, -q, -v, -A, E, z, u, p, t, y, D, -B, -w, -r}, \
424 { i, l, o, -m, -j, -h, -k, -n, n, k, h, j, m, -o, -l, -i, -i, -l, -o, m, j, h, k, n, -n, -k, -h, -j, -m, o, l, i}, \
425 { s, z, -D, -w, -p, -v, -C, A, t, r, y, -E, -x, -q, -u, -B, B, u, q, x, E, -y, -r, -t, -A, C, v, p, w, D, -z, -s}, \
426 { b, c, -c, -b, -b, -c, c, b, b, c, -c, -b, -b, -c, c, b, b, c, -c, -b, -b, -c, c, b, b, c, -c, -b, -b, -c, c, b}, \
427 { t, C, -y, -p, -x, D, u, s, B, -z, -q, -w, E, v, r, A, -A, -r, -v, -E, w, q, z, -B, -s, -u, -D, x, p, y, -C, -t}, \
428 { j, o, -k, -i, -n, l, h, m, -m, -h, -l, n, i, k, -o, -j, -j, -o, k, i, n, -l, -h, -m, m, h, l, -n, -i, -k, o, j}, \
429 { u, -E, -t, -v, D, s, w, -C, -r, -x, B, q, y, -A, -p, -z, z, p, A, -y, -q, -B, x, r, C, -w, -s, -D, v, t, E, -u}, \
430 { e, -g, -d, -f, f, d, g, -e, -e, g, d, f, -f, -d, -g, e, e, -g, -d, -f, f, d, g, -e, -e, g, d, f, -f, -d, -g, e}, \
431 { v, -B, -p, -C, u, w, -A, -q, -D, t, x, -z, -r, -E, s, y, -y, -s, E, r, z, -x, -t, D, q, A, -w, -u, C, p, B, -v}, \
432 { k, -m, -i, o, h, n, -j, -l, l, j, -n, -h, -o, i, m, -k, -k, m, i, -o, -h, -n, j, l, -l, -j, n, h, o, -i, -m, k}, \
433 { w, -y, -u, A, s, -C, -q, E, p, D, -r, -B, t, z, -v, -x, x, v, -z, -t, B, r, -D, -p, -E, q, C, -s, -A, u, y, -w}, \
434 { a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a, a, -a, -a, a}, \
435 { x, -v, -z, t, B, -r, -D, p, -E, -q, C, s, -A, -u, y, w, -w, -y, u, A, -s, -C, q, E, -p, D, r, -B, -t, z, v, -x}, \
436 { l, -j, -n, h, -o, -i, m, k, -k, -m, i, o, -h, n, j, -l, -l, j, n, -h, o, i, -m, -k, k, m, -i, -o, h, -n, -j, l}, \
437 { y, -s, -E, r, -z, -x, t, D, -q, A, w, -u, -C, p, -B, -v, v, B, -p, C, u, -w, -A, q, -D, -t, x, z, -r, E, s, -y}, \
438 { f, -d, g, e, -e, -g, d, -f, -f, d, -g, -e, e, g, -d, f, f, -d, g, e, -e, -g, d, -f, -f, d, -g, -e, e, g, -d, f}, \
439 { z, -p, A, y, -q, B, x, -r, C, w, -s, D, v, -t, E, u, -u, -E, t, -v, -D, s, -w, -C, r, -x, -B, q, -y, -A, p, -z}, \
440 { m, -h, l, n, -i, k, o, -j, j, -o, -k, i, -n, -l, h, -m, -m, h, -l, -n, i, -k, -o, j, -j, o, k, -i, n, l, -h, m}, \
441 { A, -r, v, -E, -w, q, -z, -B, s, -u, D, x, -p, y, C, -t, t, -C, -y, p, -x, -D, u, -s, B, z, -q, w, E, -v, r, -A}, \
442 { c, -b, b, -c, -c, b, -b, c, c, -b, b, -c, -c, b, -b, c, c, -b, b, -c, -c, b, -b, c, c, -b, b, -c, -c, b, -b, c}, \
443 { B, -u, q, -x, E, y, -r, t, -A, -C, v, -p, w, -D, -z, s, -s, z, D, -w, p, -v, C, A, -t, r, -y, -E, x, -q, u, -B}, \
444 { n, -k, h, -j, m, o, -l, i, -i, l, -o, -m, j, -h, k, -n, -n, k, -h, j, -m, -o, l, -i, i, -l, o, m, -j, h, -k, n}, \
445 { C, -x, s, -q, v, -A, -E, z, -u, p, -t, y, -D, -B, w, -r, r, -w, B, D, -y, t, -p, u, -z, E, A, -v, q, -s, x, -C}, \
446 { g, -f, e, -d, d, -e, f, -g, -g, f, -e, d, -d, e, -f, g, g, -f, e, -d, d, -e, f, -g, -g, f, -e, d, -d, e, -f, g}, \
447 { D, -A, x, -u, r, -p, s, -v, y, -B, E, C, -z, w, -t, q, -q, t, -w, z, -C, -E, B, -y, v, -s, p, -r, u, -x, A, -D}, \
448 { o, -n, m, -l, k, -j, i, -h, h, -i, j, -k, l, -m, n, -o, -o, n, -m, l, -k, j, -i, h, -h, i, -j, k, -l, m, -n, o}, \
449 { E, -D, C, -B, A, -z, y, -x, w, -v, u, -t, s, -r, q, -p, p, -q, r, -s, t, -u, v, -w, x, -y, z, -A, B, -C, D, -E} \
456 #if RExt__HIGH_PRECISION_FORWARD_TRANSFORM
471 DEFINE_DCT16x16_MATRIX(16384, 21266, 9224, 22813, 19244, 12769, 4563, 23120, 22063, 20450, 17972, 14642, 11109, 6446, 2316),
472 DEFINE_DCT16x16_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9)
477 DEFINE_DCT32x32_MATRIX(16384, 21266, 9224, 22813, 19244, 12769, 4563, 23120, 22063, 20450, 17972, 14642, 11109, 6446, 2316, 23106, 22852, 22445, 21848, 20995, 19810, 18601, 17143, 15718, 13853, 11749, 9846, 7908, 5573, 3281, 946),
478 DEFINE_DCT32x32_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9, 90, 90, 88, 85, 82, 78, 73, 67, 61, 54, 46, 38, 31, 22, 13, 4)
503 DEFINE_DCT16x16_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9),
504 DEFINE_DCT16x16_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9)
509 DEFINE_DCT32x32_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9, 90, 90, 88, 85, 82, 78, 73, 67, 61, 54, 46, 38, 31, 22, 13, 4),
510 DEFINE_DCT32x32_MATRIX( 64, 83, 36, 89, 75, 50, 18, 90, 87, 80, 70, 57, 43, 25, 9, 90, 90, 88, 85, 82, 78, 73, 67, 61, 54, 46, 38, 31, 22, 13, 4)
523 #undef DEFINE_DST4x4_MATRIX
524 #undef DEFINE_DCT4x4_MATRIX
525 #undef DEFINE_DCT8x8_MATRIX
526 #undef DEFINE_DCT16x16_MATRIX
527 #undef DEFINE_DCT32x32_MATRIX
535 { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 },
536 { 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,29,30,31,32,33,33,34,34,35,35,36,36,37,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51 },
537 { 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,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,51,51,51,51,51,51 },
538 { 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,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,51,51,51,51,51,51 }
566 { 0, 1, 2, 2, 2, 2, 3, 5, 7, 8, 10, 12, 13, 15, 17, 18, 19, 20, 21, 22, 23, 23, 24, 24, 25, 25, 26, 27, 27, 28, 28, 29, 29, 30, 31,
DM_CHROMA_IDX};
575 FILE* g_hTrace =
NULL;
576 const Bool g_bEncDecTraceEnable =
true;
577 const Bool g_bEncDecTraceDisable =
false;
578 Bool g_HLSTraceEnable =
true;
579 Bool g_bJustDoIt =
false;
580 UInt64 g_nSymbolCounter = 0;
598 const UInt g_uiGroupIdx[
MAX_TU_SIZE ] = {0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9};
620 "INTRA16X16_CHROMAU",
621 "INTRA16X16_CHROMAV",
623 "INTER16X16_CHROMAU",
628 "INTRA32X32_CHROMAU_FROM16x16_CHROMAU",
629 "INTRA32X32_CHROMAV_FROM16x16_CHROMAV",
631 "INTER32X32_CHROMAU_FROM16x16_CHROMAU",
632 "INTER32X32_CHROMAV_FROM16x16_CHROMAV"
643 "INTRA16X16_LUMA_DC",
644 "INTRA16X16_CHROMAU_DC",
645 "INTRA16X16_CHROMAV_DC",
646 "INTER16X16_LUMA_DC",
647 "INTER16X16_CHROMAU_DC",
648 "INTER16X16_CHROMAV_DC"
651 "INTRA32X32_LUMA_DC",
652 "INTRA32X32_CHROMAU_DC_FROM16x16_CHROMAU",
653 "INTRA32X32_CHROMAV_DC_FROM16x16_CHROMAV",
654 "INTER32X32_LUMA_DC",
655 "INTER32X32_CHROMAU_DC_FROM16x16_CHROMAU",
656 "INTER32X32_CHROMAV_DC_FROM16x16_CHROMAV"
670 16,16,16,16,17,18,21,24,
671 16,16,16,16,17,19,22,25,
672 16,16,17,18,20,22,25,29,
673 16,16,18,21,24,27,31,36,
674 17,17,20,24,30,35,41,47,
675 18,19,22,27,35,44,54,65,
676 21,22,25,31,41,54,70,88,
677 24,25,29,36,47,65,88,115
682 16,16,16,16,17,18,20,24,
683 16,16,16,17,18,20,24,25,
684 16,16,17,18,20,24,25,28,
685 16,17,18,20,24,25,28,33,
686 17,18,20,24,25,28,33,41,
687 18,20,24,25,28,33,41,54,
688 20,24,25,28,33,41,54,71,
689 24,25,28,33,41,54,71,91
SChar g_aucConvertToBit[MAX_CU_SIZE+1]
const Int g_quantScales[SCALING_LIST_REM_NUM]
const Int g_quantTSDefault4x4[4 *4]
static const Int SCALING_LIST_REM_NUM
UInt GetNextIndex(UInt blockOffsetX, UInt blockOffsetY)
static const Int SCALING_LIST_NUM
list number for quantization matrix
const TMatrixCoeff g_aiT16[TRANSFORM_NUMBER_OF_DIRECTIONS][16][16]
const TChar * nalUnitTypeToString(NalUnitType type)
static const Int MAX_CU_DEPTH
log2(CTUSize)
static const Int DM_CHROMA_IDX
chroma mode index for derived from luma intra mode
static const Int MAX_TU_SIZE
const TMatrixCoeff g_aiT4[TRANSFORM_NUMBER_OF_DIRECTIONS][4][4]
global variables & functions (header)
const Int g_quantInterDefault8x8[8 *8]
#define DEFINE_DST4x4_MATRIX(a, b, c, d)
#define DEFINE_DCT4x4_MATRIX(a, b, c)
Short TMatrixCoeff
transform matrix coefficient
const UInt g_auiPUOffset[NUMBER_OF_PART_SIZES]
static const Int MLS_CG_LOG2_WIDTH
Void initRasterToPelXY(UInt uiMaxCUWidth, UInt uiMaxCUHeight, UInt uiMaxDepth)
const TChar * MatrixType[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]
ScanGenerator(UInt blockWidth, UInt blockHeight, UInt stride, COEFF_SCAN_TYPE scanType)
Void initRasterToZscan(UInt uiMaxCUWidth, UInt uiMaxCUHeight, UInt uiMaxDepth)
UInt * g_scanOrder[SCAN_NUMBER_OF_GROUP_TYPES][SCAN_NUMBER_OF_TYPES][MAX_CU_DEPTH][MAX_CU_DEPTH]
const UChar g_aucIntraModeNumFast_UseMPM[MAX_CU_DEPTH]
const Int g_invQuantScales[SCALING_LIST_REM_NUM]
COEFF_SCAN_TYPE
coefficient scanning type used in ACS
const UInt g_scalingListSize[SCALING_LIST_SIZE_NUM]
UInt g_auiZscanToRaster[MAX_NUM_PART_IDXS_IN_CTU_WIDTH *MAX_NUM_PART_IDXS_IN_CTU_WIDTH]
UInt g_auiRasterToZscan[MAX_NUM_PART_IDXS_IN_CTU_WIDTH *MAX_NUM_PART_IDXS_IN_CTU_WIDTH]
#define DEFINE_DCT8x8_MATRIX(a, b, c, d, e, f, g)
const TMatrixCoeff g_aiT32[TRANSFORM_NUMBER_OF_DIRECTIONS][32][32]
static const Int NUM_INTRA_MODE
const UInt g_uiMinInGroup[LAST_SIGNIFICANT_GROUPS]
const TMatrixCoeff g_aiT8[TRANSFORM_NUMBER_OF_DIRECTIONS][8][8]
unsigned long long UInt64
#define DEFINE_DCT16x16_MATRIX(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o)
const COEFF_SCAN_TYPE m_scanType
const UChar g_chroma422IntraAngleMappingTable[NUM_INTRA_MODE]
const UInt g_uiGroupIdx[MAX_TU_SIZE]
const UInt ctxIndMap4x4[4 *4]
static const Int MAX_CU_SIZE
= 1<<(MAX_CU_DEPTH)
const TMatrixCoeff g_as_DST_MAT_4[TRANSFORM_NUMBER_OF_DIRECTIONS][4][4]
Void initZscanToRaster(Int iMaxDepth, Int iDepth, UInt uiStartVal, UInt *&rpuiCurrIdx)
const UInt g_scalingListSizeX[SCALING_LIST_SIZE_NUM]
static const Int chromaQPMappingTableSize
static const Int MLS_CG_LOG2_HEIGHT
static const Int MAX_NUM_PART_IDXS_IN_CTU_WIDTH
maximum number of partition indices across the width of a CTU (or height of a CTU) ...
const TChar * MatrixType_DC[SCALING_LIST_SIZE_NUM][SCALING_LIST_NUM]
const UChar g_aucChromaScale[NUM_CHROMA_FORMAT][chromaQPMappingTableSize]
UInt g_auiRasterToPelX[MAX_NUM_PART_IDXS_IN_CTU_WIDTH *MAX_NUM_PART_IDXS_IN_CTU_WIDTH]
CU data structure (header)
#define DEFINE_DCT32x32_MATRIX(a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, A, B, C, D, E)
Defines types and objects for environment-variable-based debugging and feature control.
UInt g_auiRasterToPelY[MAX_NUM_PART_IDXS_IN_CTU_WIDTH *MAX_NUM_PART_IDXS_IN_CTU_WIDTH]
const Int g_quantIntraDefault8x8[8 *8]
static const Int LAST_SIGNIFICANT_GROUPS
const UChar g_aucIntraModeNumFast_NotUseMPM[MAX_CU_DEPTH]