From e2c521fb73d89945e2d90065f48bf9c2970cac3c Mon Sep 17 00:00:00 2001 From: Vadim Seregin <vseregin@qti.qualcomm.com> Date: Wed, 24 Jul 2024 09:18:58 +0000 Subject: [PATCH] JVET-AI0281: CABAC context retraining --- source/App/CabacTraining/README.md | 6 +- source/Lib/CommonLib/Contexts.cpp | 4 +- source/Lib/CommonLib/Contexts_ecm14.0.inl | 6399 +++++++++++++++++++++ source/Lib/CommonLib/TypeDef.h | 1 + source/Lib/DecoderLib/BinDecoder.cpp | 3 + 5 files changed, 6410 insertions(+), 3 deletions(-) create mode 100644 source/Lib/CommonLib/Contexts_ecm14.0.inl diff --git a/source/App/CabacTraining/README.md b/source/App/CabacTraining/README.md index 13b678a03..6c53d0d66 100644 --- a/source/App/CabacTraining/README.md +++ b/source/App/CabacTraining/README.md @@ -29,9 +29,11 @@ The resulting parameters are in the file: `` 821 A 26 41 35 7 7 8 4 4 18 99 115 99 115 99 115 `` -821 is the context number, ``A`` can be ignored. Following numbers are the cabac parameters. +821 is the context number, ``A`` can be ignored. Following numbers are the initialization parameters. All contexts can be trained in parallel. +## Troubleshooting - +If there is an error that the bin file is not opened, one of the reasons can be that the limit of opened files is not enough. +In Linux, use ulimit to increase that number, for example, ulimit -n 2048 (assuming the total number of contexts is less than 2048). \ No newline at end of file diff --git a/source/Lib/CommonLib/Contexts.cpp b/source/Lib/CommonLib/Contexts.cpp index d1365b15c..a671e55e1 100644 --- a/source/Lib/CommonLib/Contexts.cpp +++ b/source/Lib/CommonLib/Contexts.cpp @@ -728,7 +728,9 @@ std::vector<std::vector<uint8_t>> ContextSetCfg::sm_InitTables(NUMBER_OF_SLICE_T std::vector<std::vector<uint8_t>> ContextSetCfg::sm_InitTables(NUMBER_OF_SLICE_TYPES + 1); #endif -#if JVET_AH0176_LOW_DELAY_B_CTX +#if JVET_AI0281_CABAC_RETRAIN +#include "Contexts_ecm14.0.inl" +#elif JVET_AH0176_LOW_DELAY_B_CTX #include "Contexts_ecm13.inl" #elif JVET_ECM12_CABAC_RETRAIN #include "Contexts_ecm12.inl" diff --git a/source/Lib/CommonLib/Contexts_ecm14.0.inl b/source/Lib/CommonLib/Contexts_ecm14.0.inl new file mode 100644 index 000000000..c3dbadb5a --- /dev/null +++ b/source/Lib/CommonLib/Contexts_ecm14.0.inl @@ -0,0 +1,6399 @@ +#pragma once +#include "CommonDef.h" +#if JVET_AG0196_WINDOWS_OFFSETS_SLICETYPE +// CONTEXTS WSA START +const CtxSet ContextSetCfg::SplitFlag = ContextSetCfg::addCtxSet({ +// ctx 0 8 + { 18, 20, 52, 19, 21, 30, 42, 37, 31 }, + { 11, 20, 52, 19, 6, 30, 5, 22, 23 }, + { 27, 36, 38, 20, 29, 30, 28, 38, 31 }, + { 11, 20, 52, 4, 6, 30, 20, 30, 31 }, + { 5, 6, 7, 5, 10, 13, 8, 7, 13 }, + { 6, 10, 10, 5, 10, 13, 10, 7, 13 }, + { 9, 9, 9, 9, 9, 9, 6, 9, 9 }, + { 5, 6, 6, 5, 10, 13, 9, 7, 13 }, + { 4, 11, 25, 11, 11, 18, 11, 11, 11 }, + { 4, 11, 32, 4, 4, 11, 11, 4, 18 }, + { 11, 4, 18, 11, 4, 4, 18, 11, 11 }, + { 4, 4, 18, 4, 11, 18, 11, 4, 11 }, + { 212, 150, 133, 230, 245, 217, 101, 145, 194 }, + { 140, 133, 114, 172, 250, 117, 181, 120, 132 }, + { 211, 230, 209, 188, 250, 234, 101, 115, 115 }, + { 170, 234, 113, 203, 250, 229, 244, 118, 105 }, + { 163, 166, 151, 243, 186, 251, 101, 130, 165 }, + { 251, 251, 84, 251, 251, 91, 116, 147, 84 }, + { 212, 165, 133, 247, 183, 150, 115, 114, 131 }, + { 140, 155, 107, 171, 250, 216, 216, 115, 98 }, +}); + +const CtxSet ContextSetCfg::SplitQtFlag = ContextSetCfg::addCtxSet({ +// ctx 9 14 + { 34, 14, 23, 11, 12, 6 }, + { 19, 14, 23, 11, 12, 21 }, + { 4, 13, 22, 33, 27, 22 }, + { 11, 14, 23, 11, 12, 21 }, + { 8, 6, 13, 12, 6, 5 }, + { 6, 5, 13, 13, 10, 10 }, + { 0, 1, 5, 12, 12, 13 }, + { 7, 3, 13, 12, 6, 5 }, + { 11, 11, 25, 4, 4, 4 }, + { 4, 4, 18, 4, 4, 18 }, + { 4, 4, 18, 11, 18, 32 }, + { 4, 4, 18, 4, 4, 11 }, + { 194, 100, 119, 86, 117, 133 }, + { 139, 251, 234, 235, 150, 134 }, + { 114, 102, 133, 106, 106, 116 }, + { 138, 252, 138, 234, 213, 122 }, + { 116, 116, 148, 85, 217, 163 }, + { 190, 153, 115, 235, 235, 153 }, + { 129, 116, 121, 88, 107, 117 }, + { 135, 251, 232, 137, 164, 124 }, +}); + +const CtxSet ContextSetCfg::SplitHvFlag = ContextSetCfg::addCtxSet({ +// ctx 15 19 + { 43, 35, 44, 34, 45 }, + { 36, 35, 44, 34, 45 }, + { 43, 50, 44, 27, 52 }, + { 43, 35, 44, 34, 45 }, + { 6, 6, 10, 5, 5 }, + { 10, 7, 10, 6, 6 }, + { 9, 9, 9, 5, 5 }, + { 7, 6, 7, 5, 5 }, + { 4, 4, 11, 4, 11 }, + { 4, 4, 4, 4, 4 }, + { 11, 11, 11, 11, 4 }, + { 4, 4, 4, 4, 4 }, + { 149, 211, 165, 116, 164 }, + { 123, 180, 121, 164, 118 }, + { 118, 179, 136, 119, 243 }, + { 122, 132, 119, 132, 117 }, + { 244, 243, 196, 244, 228 }, + { 243, 132, 148, 118, 181 }, + { 133, 148, 137, 106, 212 }, + { 120, 133, 122, 132, 121 }, +}); + +const CtxSet ContextSetCfg::Split12Flag = ContextSetCfg::addCtxSet({ +// ctx 20 23 + { 44, 30, 44, 37 }, + { 44, 37, 29, 37 }, + { 44, 45, 44, 45 }, + { 44, 37, 44, 37 }, + { 12, 10, 12, 13 }, + { 13, 13, 13, 13 }, + { 12, 13, 8, 13 }, + { 12, 10, 12, 13 }, + { 18, 4, 11, 4 }, + { 18, 4, 18, 4 }, + { 18, 11, 4, 11 }, + { 18, 4, 11, 4 }, + { 147, 106, 116, 117 }, + { 100, 84, 102, 84 }, + { 116, 100, 116, 106 }, + { 218, 85, 234, 105 }, + { 134, 210, 134, 100 }, + { 131, 85, 132, 212 }, + { 100, 103, 101, 103 }, + { 107, 90, 229, 88 }, +}); + +const CtxSet ContextSetCfg::SkipFlag = ContextSetCfg::addCtxSet({ +// ctx 24 26 + { 49, 59, 53 }, + { 57, 59, 53 }, + { 0, 34, 29 }, + { 56, 51, 60 }, + { 6, 6, 9 }, + { 6, 7, 10 }, + { 4, 9, 10 }, + { 6, 6, 9 }, + { 18, 11, 18 }, + { 11, 11, 18 }, + { 4, 11, 11 }, + { 11, 11, 18 }, + { 119, 116, 123 }, + { 118, 163, 179 }, + { 131, 122, 134 }, + { 116, 242, 135 }, + { 107, 181, 234 }, + { 118, 117, 250 }, + { 131, 119, 134 }, + { 116, 195, 163 }, +}); + +const CtxSet ContextSetCfg::MergeFlag = ContextSetCfg::addCtxSet({ +// ctx 27 27 + { 6 }, + { 7 }, + { 5 }, + { 22 }, + { 5 }, + { 5 }, + { 4 }, + { 5 }, + { 18 }, + { 4 }, + { 4 }, + { 18 }, + { 131 }, + { 102 }, + { 132 }, + { 101 }, + { 244 }, + { 244 }, + { 131 }, + { 108 }, +}); + + +#if JVET_AG0276_LIC_FLAG_SIGNALING +const CtxSet ContextSetCfg::MergeFlagOppositeLic = ContextSetCfg::addCtxSet +({ +// ctx 28 28 + { 25 }, + { 25 }, + { 35 }, + { 10 }, + { 5 }, + { 5 }, + { 8 }, + { 5 }, + { 11 }, + { 4 }, + { 18 }, + { 11 }, + { 99 }, + { 227 }, + { 115 }, + { 132 }, + { 119 }, + { 119 }, + { 100 }, + { 118 }, + }); +const CtxSet ContextSetCfg::AffineFlagOppositeLic = ContextSetCfg::addCtxSet +({ +// ctx 29 29 + { 18 }, + { 18 }, + { 35 }, + { 18 }, + { 5 }, + { 5 }, + { 8 }, + { 5 }, + { 11 }, + { 4 }, + { 18 }, + { 4 }, + { 115 }, + { 243 }, + { 115 }, + { 132 }, + { 119 }, + { 119 }, + { 131 }, + { 132 }, + }); +const CtxSet ContextSetCfg::TmMergeFlagOppositeLic = ContextSetCfg::addCtxSet +({ +// ctx 30 30 + { 19 }, + { 11 }, + { 35 }, + { 42 }, + { 5 }, + { 5 }, + { 8 }, + { 5 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 102 }, + { 117 }, + { 117 }, + { 117 }, + { 119 }, + { 119 }, + { 117 }, + { 117 }, + }); +#endif + + +const CtxSet ContextSetCfg::RegularMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 31 32 + { 30, 13 }, + { 23, 6 }, + { 35, 35 }, + { 30, 13 }, + { 6, 6 }, + { 7, 6 }, + { 8, 8 }, + { 6, 6 }, + { 4, 18 }, + { 4, 18 }, + { 18, 18 }, + { 4, 11 }, + { 147, 107 }, + { 116, 115 }, + { 122, 107 }, + { 116, 115 }, + { 119, 119 }, + { 119, 119 }, + { 117, 101 }, + { 116, 130 }, +}); + +#if JVET_AG0164_AFFINE_GPM +const CtxSet ContextSetCfg::AffineGPMFlag = ContextSetCfg::addCtxSet +({ +// ctx 33 35 + { 35, 35, 35 }, + { 35, 35, 35 }, + { 35, 35, 35 }, + { 19, 6, 7 }, + { 8, 8, 8 }, + { 8, 8, 8 }, + { 8, 8, 8 }, + { 5, 1, 0 }, + { 18, 18, 18 }, + { 18, 18, 18 }, + { 18, 18, 18 }, + { 11, 11, 4 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 116, 119, 148 }, + { 117, 117, 116 }, +}); + +const CtxSet ContextSetCfg::GpmMergeIdx = ContextSetCfg::addCtxSet +({ +// ctx 36 45 + { 35, 29, 37, 37, 37, 35, 35, 35, 35, 35 }, + { 36, 44, 37, 37, 37, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 28, 29, 29, 37, 29, 35, 35, 35, 35, 35 }, + { 2, 7, 6, 6, 13, 8, 8, 8, 8, 8 }, + { 7, 10, 9, 9, 13, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 6, 10, 7, 7, 13, 8, 8, 8, 8, 8 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 122, 250, 134, 134, 234, 119, 119, 119, 119, 119 }, + { 116, 154, 107, 101, 234, 119, 119, 119, 119, 119 }, + { 115, 250, 117, 117, 234, 119, 119, 119, 119, 119 }, + { 102, 135, 102, 101, 234, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 107, 250, 122, 120, 234, 119, 119, 119, 119, 119 }, + { 100, 201, 119, 118, 136, 119, 119, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::GpmAffMergeIdx = ContextSetCfg::addCtxSet +({ +// ctx 46 55 + { 28, 37, 37, 37, 37, 35, 35, 35, 35, 35 }, + { 21, 37, 37, 37, 44, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 22, 45, 37, 37, 35, 35, 35, 35, 35 }, + { 5, 5, 5, 5, 13, 8, 8, 8, 8, 8 }, + { 6, 6, 5, 5, 13, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 5, 5, 5, 13, 8, 8, 8, 8, 8 }, + { 11, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 252, 136, 140, 140, 234, 119, 119, 119, 119, 119 }, + { 101, 102, 100, 100, 186, 119, 119, 119, 119, 119 }, + { 251, 139, 139, 122, 234, 119, 119, 119, 119, 119 }, + { 106, 106, 101, 101, 106, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 136, 134, 124, 134, 233, 119, 119, 119, 119, 119 }, + { 131, 106, 116, 102, 233, 119, 119, 119, 119, 119 }, +}); +#endif + +#if JVET_AG0112_REGRESSION_BASED_GPM_BLENDING +const CtxSet ContextSetCfg::GeoBlendFlag = ContextSetCfg::addCtxSet +({ +// ctx 56 56 + { 40 }, + { 33 }, + { 35 }, + { 40 }, + { 5 }, + { 10 }, + { 8 }, + { 5 }, + { 11 }, + { 18 }, + { 18 }, + { 4 }, + { 102 }, + { 117 }, + { 97 }, + { 177 }, + { 119 }, + { 119 }, + { 108 }, + { 132 }, +}); +#endif + +#if JVET_AG0135_AFFINE_CIIP +const CtxSet ContextSetCfg::CiipAffineFlag = ContextSetCfg::addCtxSet +({ +// ctx 57 59 + { 12, 6, 15 }, + { 19, 5, 6 }, + { 35, 35, 35 }, + { 12, 14, 15 }, + { 5, 1, 1 }, + { 6, 3, 5 }, + { 8, 8, 8 }, + { 5, 1, 1 }, + { 4, 4, 11 }, + { 4, 4, 11 }, + { 18, 18, 18 }, + { 4, 4, 4 }, + { 105, 118, 116 }, + { 211, 118, 116 }, + { 107, 119, 103 }, + { 107, 122, 148 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 107, 118, 116 }, + { 116, 119, 118 }, +}); +#endif + +const CtxSet ContextSetCfg::MergeIdx = ContextSetCfg::addCtxSet({ +// ctx 60 69 + { 33, 29, 36, 44, 29, 35, 35, 35, 35, 35 }, + { 4, 29, 44, 44, 29, 35, 35, 35, 35, 35 }, + { 42, 43, 36, 51, 43, 35, 35, 35, 35, 35 }, + { 11, 29, 36, 44, 29, 35, 35, 35, 35, 35 }, + { 5, 5, 6, 7, 13, 8, 8, 8, 8, 8 }, + { 7, 6, 6, 6, 13, 8, 8, 8, 8, 8 }, + { 5, 5, 10, 10, 12, 8, 8, 8, 8, 8 }, + { 5, 5, 7, 7, 13, 8, 8, 8, 8, 8 }, + { 11, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 18, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 11, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 116, 118, 119, 116, 234, 119, 119, 119, 119, 119 }, + { 108, 108, 122, 122, 234, 119, 119, 119, 119, 119 }, + { 116, 117, 117, 116, 234, 119, 119, 119, 119, 119 }, + { 121, 116, 117, 117, 234, 119, 119, 119, 119, 119 }, + { 116, 104, 100, 119, 219, 119, 119, 119, 119, 119 }, + { 164, 137, 249, 115, 179, 119, 119, 119, 119, 119 }, + { 116, 117, 116, 115, 149, 119, 119, 119, 119, 119 }, + { 108, 118, 117, 120, 234, 119, 119, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::TmMergeIdx = ContextSetCfg::addCtxSet({ +// ctx 70 79 + { 28, 28, 42, 36, 43, 35, 35, 35, 35, 35 }, + { 51, 20, 27, 59, 48, 35, 35, 35, 35, 35 }, + { 30, 37, 29, 44, 43, 35, 35, 35, 35, 35 }, + { 28, 28, 50, 44, 43, 35, 35, 35, 35, 35 }, + { 5, 5, 6, 10, 10, 8, 8, 8, 8, 8 }, + { 6, 6, 6, 13, 10, 8, 8, 8, 8, 8 }, + { 4, 10, 9, 13, 13, 8, 8, 8, 8, 8 }, + { 5, 6, 6, 13, 12, 8, 8, 8, 8, 8 }, + { 11, 4, 4, 4, 11, 18, 18, 18, 18, 18 }, + { 18, 4, 4, 4, 32, 18, 18, 18, 18, 18 }, + { 4, 11, 4, 4, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 4, 4, 4, 18, 18, 18, 18, 18 }, + { 117, 108, 118, 199, 234, 119, 119, 119, 119, 119 }, + { 132, 138, 121, 104, 113, 119, 119, 119, 119, 119 }, + { 123, 116, 118, 233, 202, 119, 119, 119, 119, 119 }, + { 116, 123, 133, 150, 161, 119, 119, 119, 119, 119 }, + { 253, 134, 251, 199, 200, 119, 119, 119, 119, 119 }, + { 100, 82, 226, 69, 67, 119, 119, 119, 119, 119 }, + { 133, 116, 120, 168, 219, 119, 119, 119, 119, 119 }, + { 116, 118, 117, 135, 99, 119, 119, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::GPMIntraFlag = ContextSetCfg::addCtxSet({ +// ctx 80 80 + { 26 }, + { 33 }, + { 35 }, + { 19 }, + { 2 }, + { 2 }, + { 8 }, + { 2 }, + { 11 }, + { 4 }, + { 18 }, + { 11 }, + { 243 }, + { 122 }, + { 180 }, + { 124 }, + { 119 }, + { 119 }, + { 148 }, + { 133 }, +}); + +const CtxSet ContextSetCfg::MmvdFlag = ContextSetCfg::addCtxSet({ +// ctx 81 84 + { 25, 34, 35, 35 }, + { 25, 42, 35, 35 }, + { 35, 35, 35, 35 }, + { 25, 57, 35, 35 }, + { 5, 5, 8, 8 }, + { 6, 5, 8, 8 }, + { 8, 8, 8, 8 }, + { 5, 5, 8, 8 }, + { 11, 18, 18, 18 }, + { 4, 18, 18, 18 }, + { 18, 18, 18, 18 }, + { 4, 18, 18, 18 }, + { 100, 242, 119, 119 }, + { 147, 100, 119, 119 }, + { 162, 115, 119, 119 }, + { 226, 103, 119, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 131, 115, 119, 119 }, + { 179, 115, 119, 119 }, +}); + +const CtxSet ContextSetCfg::MmvdMergeIdx = ContextSetCfg::addCtxSet({ +// ctx 85 88 + { 43, 35, 35, 35 }, + { 43, 43, 35, 35 }, + { 35, 35, 35, 35 }, + { 28, 43, 35, 35 }, + { 10, 9, 8, 8 }, + { 10, 10, 8, 8 }, + { 8, 8, 8, 8 }, + { 10, 10, 8, 8 }, + { 4, 4, 18, 18 }, + { 4, 4, 18, 18 }, + { 18, 18, 18, 18 }, + { 4, 4, 18, 18 }, + { 133, 115, 119, 119 }, + { 115, 137, 119, 119 }, + { 168, 134, 119, 119 }, + { 99, 106, 119, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 167, 121, 119, 119 }, + { 90, 103, 119, 119 }, +}); + +const CtxSet ContextSetCfg::MmvdStepMvpIdx = ContextSetCfg::addCtxSet({ +// ctx 89 93 + { 28, 36, 36, 28, 35 }, + { 28, 21, 36, 28, 35 }, + { 35, 35, 35, 35, 35 }, + { 28, 21, 21, 28, 35 }, + { 6, 7, 7, 10, 7 }, + { 7, 7, 6, 9, 7 }, + { 8, 8, 8, 8, 8 }, + { 6, 6, 7, 10, 7 }, + { 4, 4, 4, 4, 4 }, + { 4, 4, 4, 4, 4 }, + { 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4 }, + { 147, 122, 118, 138, 119 }, + { 119, 121, 154, 100, 137 }, + { 122, 116, 117, 90, 106 }, + { 117, 135, 138, 120, 153 }, + { 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119 }, + { 118, 105, 104, 105, 118 }, + { 118, 154, 234, 117, 134 }, +}); + +const CtxSet ContextSetCfg::MmvdStepMvpIdxECM3 = ContextSetCfg::addCtxSet({ +// ctx 94 94 + { 35 }, + { 35 }, + { 35 }, + { 35 }, + { 8 }, + { 8 }, + { 8 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, +}); + +const CtxSet ContextSetCfg::GeoMmvdFlag = ContextSetCfg::addCtxSet({ +// ctx 95 95 + { 33 }, + { 33 }, + { 35 }, + { 48 }, + { 3 }, + { 7 }, + { 8 }, + { 3 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 115 }, + { 123 }, + { 98 }, + { 106 }, + { 119 }, + { 119 }, + { 115 }, + { 115 }, +}); + +const CtxSet ContextSetCfg::GeoMmvdStepMvpIdx = ContextSetCfg::addCtxSet({ +// ctx 96 96 + { 45 }, + { 60 }, + { 35 }, + { 30 }, + { 1 }, + { 3 }, + { 8 }, + { 2 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 125 }, + { 117 }, + { 116 }, + { 155 }, + { 119 }, + { 119 }, + { 118 }, + { 123 }, +}); + +const CtxSet ContextSetCfg::GeoBldFlag = ContextSetCfg::addCtxSet({ +#if JVET_AH0314_ADAPTIVE_GPM_BLENDING_IMPROV +// ctx 97 104 + { 58, 37, 45, 13, 58, 14, 31, 42 }, + { 52, 44, 50, 36, 52, 57, 51, 34 }, + { 35, 35, 35, 35, 35, 35, 35, 35 }, + { 58, 45, 45, 13, 58, 44, 38, 42 }, + { 1, 1, 1, 1, 0, 0, 0, 1 }, + { 1, 1, 1, 1, 1, 0, 1, 1 }, + { 8, 8, 8, 8, 8, 8, 8, 8 }, + { 1, 2, 1, 2, 1, 2, 0, 1 }, + { 11, 25, 25, 11, 11, 32, 32, 11 }, + { 4, 18, 11, 11, 4, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 18, 18, 4, 4, 25, 32, 4 }, + { 243, 116, 116, 119, 244, 116, 116, 117 }, + { 118, 117, 132, 117, 119, 132, 116, 118 }, + { 117, 116, 115, 118, 117, 116, 147, 116 }, + { 119, 116, 228, 118, 125, 120, 131, 135 }, + { 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119 }, + { 132, 115, 116, 117, 132, 115, 133, 132 }, + { 117, 115, 117, 116, 117, 130, 116, 118 }, +#else + { 58, 22, 45, 13 }, + { 60, 36, 58, 36 }, + { 35, 35, 35, 35 }, + { 58, 22, 52, 13 }, + { 1, 1, 1, 1 }, + { 1, 1, 1, 1 }, + { 8, 8, 8, 8 }, + { 1, 2, 1, 1 }, + { 11, 18, 18, 11 }, + { 4, 18, 11, 11 }, + { 18, 18, 18, 18 }, + { 4, 18, 18, 4 }, + { 132, 116, 116, 117 }, + { 118, 116, 132, 118 }, + { 117, 116, 116, 117 }, + { 118, 117, 133, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 132, 115, 116, 117 }, + { 117, 115, 117, 117 }, +#endif +}); + +const CtxSet ContextSetCfg::GeoSubModeIdx = ContextSetCfg::addCtxSet({ +// ctx 105 109 + { 35, 36, 44, 29, 29 }, + { 13, 36, 44, 29, 29 }, + { 35, 35, 35, 35, 35 }, + { 43, 36, 44, 29, 29 }, + { 7, 7, 7, 7, 8 }, + { 7, 7, 6, 5, 8 }, + { 8, 8, 8, 8, 8 }, + { 7, 7, 7, 7, 8 }, + { 4, 4, 4, 4, 4 }, + { 4, 4, 4, 4, 4 }, + { 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4 }, + { 117, 122, 133, 154, 185 }, + { 121, 121, 106, 105, 101 }, + { 120, 122, 133, 123, 137 }, + { 122, 122, 118, 108, 101 }, + { 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119 }, + { 117, 122, 133, 133, 156 }, + { 121, 117, 115, 106, 102 }, +}); + +const CtxSet ContextSetCfg::AfMmvdFlag = ContextSetCfg::addCtxSet({ +// ctx 110 110 + { 18 }, + { 18 }, + { 35 }, + { 11 }, + { 6 }, + { 6 }, + { 8 }, + { 6 }, + { 18 }, + { 11 }, + { 18 }, + { 11 }, + { 101 }, + { 116 }, + { 130 }, + { 116 }, + { 119 }, + { 119 }, + { 100 }, + { 242 }, +}); + +const CtxSet ContextSetCfg::AfMmvdIdx = ContextSetCfg::addCtxSet({ +// ctx 111 114 + { 29, 35, 28, 35 }, + { 21, 28, 43, 35 }, + { 35, 35, 35, 35 }, + { 29, 35, 43, 35 }, + { 10, 9, 9, 8 }, + { 9, 10, 9, 8 }, + { 8, 8, 8, 8 }, + { 10, 10, 8, 8 }, + { 11, 4, 4, 18 }, + { 18, 18, 11, 18 }, + { 18, 18, 18, 18 }, + { 11, 11, 4, 18 }, + { 146, 132, 115, 119 }, + { 115, 103, 149, 119 }, + { 134, 118, 134, 119 }, + { 100, 130, 105, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 106, 131, 132, 119 }, + { 116, 116, 133, 119 }, +}); + +const CtxSet ContextSetCfg::AfMmvdOffsetStep = ContextSetCfg::addCtxSet({ +// ctx 115 120 + { 21, 37, 37, 37, 44, 50 }, + { 13, 45, 29, 37, 52, 58 }, + { 35, 35, 35, 35, 35, 35 }, + { 6, 37, 37, 37, 44, 57 }, + { 5, 7, 6, 7, 7, 5 }, + { 5, 6, 5, 5, 7, 5 }, + { 8, 8, 8, 8, 8, 8 }, + { 5, 7, 6, 7, 7, 5 }, + { 11, 18, 4, 11, 4, 32 }, + { 4, 11, 4, 4, 4, 25 }, + { 18, 18, 18, 18, 18, 18 }, + { 4, 18, 4, 11, 4, 25 }, + { 133, 149, 153, 138, 250, 99 }, + { 102, 101, 100, 99, 122, 114 }, + { 133, 195, 136, 133, 170, 101 }, + { 147, 115, 102, 108, 250, 114 }, + { 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119 }, + { 117, 137, 123, 132, 250, 102 }, + { 117, 106, 103, 106, 122, 130 }, +}); + +const CtxSet ContextSetCfg::AfMmvdOffsetStepECM3 = ContextSetCfg::addCtxSet({ +// ctx 121 121 + { 35 }, + { 35 }, + { 35 }, + { 35 }, + { 8 }, + { 8 }, + { 8 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, +}); + +const CtxSet ContextSetCfg::IbcMbvdFlag = ContextSetCfg::addCtxSet({ +// ctx 122 123 + { 26, 35 }, + { 40, 35 }, + { 28, 52 }, + { 26, 35 }, + { 5, 8 }, + { 5, 8 }, + { 4, 10 }, + { 5, 8 }, + { 11, 18 }, + { 11, 18 }, + { 4, 4 }, + { 11, 18 }, + { 131, 119 }, + { 108, 119 }, + { 116, 119 }, + { 104, 119 }, + { 102, 106 }, + { 108, 99 }, + { 116, 179 }, + { 108, 200 }, +}); + +const CtxSet ContextSetCfg::IbcMbvdMergeIdx = ContextSetCfg::addCtxSet({ +// ctx 124 124 + { 35 }, + { 27 }, + { 43 }, + { 35 }, + { 6 }, + { 6 }, + { 10 }, + { 6 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 146 }, + { 117 }, + { 119 }, + { 115 }, + { 129 }, + { 105 }, + { 107 }, + { 116 }, +}); + +const CtxSet ContextSetCfg::IbcMbvdStepMvpIdx = ContextSetCfg::addCtxSet({ +// ctx 125 129 + { 34, 43, 43, 35, 35 }, + { 42, 36, 14, 35, 35 }, + { 35, 43, 43, 35, 35 }, + { 34, 43, 43, 35, 35 }, + { 6, 10, 10, 8, 8 }, + { 7, 13, 7, 8, 8 }, + { 9, 10, 13, 8, 8 }, + { 7, 10, 13, 8, 8 }, + { 4, 4, 4, 18, 18 }, + { 4, 4, 4, 18, 18 }, + { 11, 4, 4, 18, 18 }, + { 4, 4, 4, 18, 18 }, + { 105, 105, 88, 119, 119 }, + { 123, 106, 250, 119, 119 }, + { 104, 85, 106, 119, 119 }, + { 116, 201, 214, 119, 119 }, + { 99, 249, 90, 119, 119 }, + { 154, 84, 170, 119, 119 }, + { 117, 135, 88, 119, 119 }, + { 116, 106, 184, 119, 119 }, +}); + +const CtxSet ContextSetCfg::TMMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 130 131 + { 40, 40 }, + { 18, 0 }, + { 35, 40 }, + { 25, 40 }, + { 5, 9 }, + { 6, 5 }, + { 8, 6 }, + { 5, 5 }, + { 11, 18 }, + { 4, 4 }, + { 18, 4 }, + { 4, 4 }, + { 117, 81 }, + { 117, 118 }, + { 242, 107 }, + { 117, 148 }, + { 119, 97 }, + { 119, 135 }, + { 117, 99 }, + { 118, 119 }, +}); + +const CtxSet ContextSetCfg::CiipTMMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 132 132 + { 27 }, + { 19 }, + { 35 }, + { 34 }, + { 5 }, + { 6 }, + { 8 }, + { 5 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 140 }, + { 108 }, + { 121 }, + { 117 }, + { 119 }, + { 119 }, + { 234 }, + { 106 }, +}); + +const CtxSet ContextSetCfg::PredMode = ContextSetCfg::addCtxSet({ +// ctx 133 134 + { 33, 21 }, + { 40, 50 }, + { 35, 35 }, + { 33, 29 }, + { 6, 1 }, + { 7, 1 }, + { 8, 8 }, + { 6, 1 }, + { 18, 11 }, + { 18, 4 }, + { 18, 18 }, + { 18, 11 }, + { 102, 117 }, + { 116, 132 }, + { 100, 117 }, + { 120, 148 }, + { 119, 119 }, + { 119, 119 }, + { 105, 117 }, + { 117, 132 }, +}); + +const CtxSet ContextSetCfg::MultiRefLineIdx = ContextSetCfg::addCtxSet({ +// ctx 135 141 + { 35, 35, 35, 35, 35, 25, 59 }, + { 35, 35, 35, 35, 35, 25, 59 }, + { 35, 35, 35, 35, 35, 25, 60 }, + { 35, 35, 35, 35, 35, 25, 52 }, + { 8, 8, 8, 8, 8, 5, 4 }, + { 8, 8, 8, 8, 8, 5, 6 }, + { 8, 8, 8, 8, 8, 6, 8 }, + { 8, 8, 8, 8, 8, 5, 4 }, + { 18, 18, 18, 18, 18, 11, 25 }, + { 18, 18, 18, 18, 18, 4, 18 }, + { 18, 18, 18, 18, 18, 18, 32 }, + { 18, 18, 18, 18, 18, 4, 18 }, + { 119, 119, 119, 119, 119, 99, 116 }, + { 119, 119, 119, 119, 119, 148, 131 }, + { 119, 119, 119, 119, 119, 103, 116 }, + { 119, 119, 119, 119, 119, 148, 130 }, + { 119, 119, 119, 119, 119, 106, 116 }, + { 119, 119, 119, 119, 119, 133, 114 }, + { 119, 119, 119, 119, 119, 103, 107 }, + { 119, 119, 119, 119, 119, 116, 211 }, +}); + +const CtxSet ContextSetCfg::IntraLumaMpmFlag = ContextSetCfg::addCtxSet({ +// ctx 142 142 + { 29 }, + { 29 }, + { 22 }, + { 29 }, + { 6 }, + { 5 }, + { 6 }, + { 6 }, + { 11 }, + { 4 }, + { 18 }, + { 11 }, + { 116 }, + { 116 }, + { 108 }, + { 106 }, + { 115 }, + { 117 }, + { 116 }, + { 116 }, +}); + +const CtxSet ContextSetCfg::IntraLumaSecondMpmFlag = ContextSetCfg::addCtxSet({ +// ctx 143 143 + { 37 }, + { 30 }, + { 37 }, + { 37 }, + { 9 }, + { 10 }, + { 6 }, + { 10 }, + { 4 }, + { 11 }, + { 4 }, + { 11 }, + { 122 }, + { 82 }, + { 116 }, + { 99 }, + { 131 }, + { 118 }, + { 179 }, + { 97 }, +}); + +const CtxSet ContextSetCfg::IntraLumaMPMIdx = ContextSetCfg::addCtxSet({ +// ctx 144 146 + { 27, 35, 42 }, + { 12, 35, 50 }, + { 42, 35, 49 }, + { 27, 35, 57 }, + { 7, 8, 9 }, + { 9, 8, 6 }, + { 4, 8, 6 }, + { 10, 8, 6 }, + { 4, 18, 4 }, + { 25, 18, 4 }, + { 4, 18, 4 }, + { 11, 18, 4 }, + { 161, 119, 84 }, + { 135, 119, 118 }, + { 83, 119, 100 }, + { 251, 119, 136 }, + { 101, 119, 100 }, + { 125, 119, 133 }, + { 97, 119, 100 }, + { 120, 119, 136 }, +}); + +const CtxSet ContextSetCfg::IntraLumaSecondMpmIdx = ContextSetCfg::addCtxSet({ +// ctx 147 151 + { 43, 35, 35, 35, 35 }, + { 43, 35, 35, 35, 35 }, + { 59, 35, 35, 35, 35 }, + { 43, 35, 35, 35, 35 }, + { 9, 10, 9, 8, 8 }, + { 9, 10, 9, 8, 8 }, + { 9, 10, 13, 8, 8 }, + { 10, 10, 9, 8, 8 }, + { 4, 4, 4, 18, 18 }, + { 4, 4, 4, 18, 18 }, + { 18, 4, 4, 18, 18 }, + { 4, 4, 4, 18, 18 }, + { 169, 85, 84, 119, 119 }, + { 86, 234, 235, 119, 119 }, + { 117, 86, 83, 119, 119 }, + { 100, 250, 235, 119, 119 }, + { 116, 118, 73, 119, 119 }, + { 101, 116, 234, 119, 119 }, + { 233, 83, 84, 119, 119 }, + { 90, 250, 250, 119, 119 }, +}); + +const CtxSet ContextSetCfg::IntraLumaPlanarFlag = ContextSetCfg::addCtxSet({ +// ctx 152 155 + { 14, 6, 26, 43 }, + { 14, 13, 33, 43 }, + { 31, 22, 11, 28 }, + { 22, 6, 26, 43 }, + { 0, 2, 10, 10 }, + { 1, 2, 9, 10 }, + { 4, 5, 8, 8 }, + { 1, 2, 9, 10 }, + { 11, 18, 32, 18 }, + { 18, 11, 25, 32 }, + { 11, 18, 18, 18 }, + { 18, 18, 18, 25 }, + { 121, 115, 81, 98 }, + { 132, 116, 250, 211 }, + { 117, 115, 89, 129 }, + { 115, 162, 153, 122 }, + { 148, 100, 84, 117 }, + { 102, 242, 229, 131 }, + { 120, 116, 82, 98 }, + { 116, 116, 153, 131 }, +}); + +const CtxSet ContextSetCfg::CclmModeFlag = ContextSetCfg::addCtxSet({ +// ctx 156 156 + { 27 }, + { 34 }, + { 37 }, + { 12 }, + { 1 }, + { 1 }, + { 6 }, + { 1 }, + { 18 }, + { 11 }, + { 25 }, + { 18 }, + { 116 }, + { 131 }, + { 116 }, + { 179 }, + { 102 }, + { 114 }, + { 116 }, + { 131 }, +}); + +const CtxSet ContextSetCfg::CclmModeIdx = ContextSetCfg::addCtxSet({ +// ctx 157 157 + { 42 }, + { 19 }, + { 44 }, + { 34 }, + { 5 }, + { 5 }, + { 5 }, + { 5 }, + { 11 }, + { 11 }, + { 11 }, + { 18 }, + { 163 }, + { 146 }, + { 211 }, + { 100 }, + { 124 }, + { 99 }, + { 131 }, + { 102 }, +}); + +const CtxSet ContextSetCfg::IntraChromaPredMode = ContextSetCfg::addCtxSet({ +// ctx 158 158 + { 25 }, + { 25 }, + { 35 }, + { 25 }, + { 5 }, + { 5 }, + { 5 }, + { 5 }, + { 18 }, + { 11 }, + { 4 }, + { 18 }, + { 108 }, + { 101 }, + { 101 }, + { 102 }, + { 131 }, + { 227 }, + { 101 }, + { 103 }, +}); + +const CtxSet ContextSetCfg::DimdChromaMode = ContextSetCfg::addCtxSet({ +// ctx 159 159 + { 41 }, + { 26 }, + { 35 }, + { 41 }, + { 8 }, + { 9 }, + { 5 }, + { 8 }, + { 18 }, + { 25 }, + { 11 }, + { 18 }, + { 84 }, + { 116 }, + { 90 }, + { 116 }, + { 227 }, + { 147 }, + { 90 }, + { 104 }, +}); + +const CtxSet ContextSetCfg::ChromaFusionMode = ContextSetCfg::addCtxSet({ +// ctx 160 160 + { 44 }, + { 51 }, + { 26 }, + { 29 }, + { 8 }, + { 9 }, + { 4 }, + { 9 }, + { 32 }, + { 32 }, + { 11 }, + { 32 }, + { 124 }, + { 84 }, + { 163 }, + { 83 }, + { 109 }, + { 132 }, + { 116 }, + { 84 }, +}); + +const CtxSet ContextSetCfg::DbvChromaMode = ContextSetCfg::addCtxSet({ +// ctx 161 161 + { 17 }, + { 40 }, + { 34 }, + { 9 }, + { 2 }, + { 1 }, + { 1 }, + { 0 }, + { 18 }, + { 18 }, + { 11 }, + { 4 }, + { 115 }, + { 146 }, + { 115 }, + { 117 }, + { 116 }, + { 120 }, + { 117 }, + { 148 }, +}); + +const CtxSet ContextSetCfg::MipFlag = ContextSetCfg::addCtxSet({ +// ctx 162 165 + { 48, 41, 34, 40 }, + { 48, 56, 57, 48 }, + { 40, 33, 34, 40 }, + { 40, 33, 49, 40 }, + { 9, 9, 8, 9 }, + { 9, 9, 9, 6 }, + { 9, 12, 6, 6 }, + { 9, 12, 12, 6 }, + { 11, 11, 4, 18 }, + { 11, 11, 25, 11 }, + { 4, 4, 11, 4 }, + { 4, 18, 32, 4 }, + { 97, 83, 244, 85 }, + { 135, 235, 148, 118 }, + { 83, 84, 98, 98 }, + { 133, 167, 251, 133 }, + { 91, 116, 99, 97 }, + { 117, 164, 235, 139 }, + { 105, 103, 152, 99 }, + { 148, 116, 99, 179 }, +}); + +const CtxSet ContextSetCfg::TmpFlag = ContextSetCfg::addCtxSet({ +#if JVET_AH0200_INTRA_TMP_BV_REORDER +// ctx 166 173 + { 25, 26, 29, 25, 43, 21, 41, 42 }, + { 9, 26, 29, 17, 13, 5, 49, 27 }, + { 25, 19, 36, 25, 21, 13, 48, 42 }, + { 25, 19, 29, 18, 28, 13, 41, 42 }, + { 2, 1, 1, 1, 1, 10, 9, 8 }, + { 5, 1, 0, 5, 1, 9, 8, 9 }, + { 6, 5, 1, 2, 1, 8, 4, 8 }, + { 5, 1, 1, 1, 1, 9, 9, 8 }, + { 11, 11, 4, 11, 11, 25, 25, 32 }, + { 11, 4, 11, 18, 11, 25, 25, 25 }, + { 18, 18, 4, 18, 18, 18, 11, 25 }, + { 11, 11, 11, 11, 11, 25, 25, 32 }, + { 116, 133, 119, 117, 227, 249, 83, 100 }, + { 147, 147, 132, 147, 117, 84, 163, 124 }, + { 103, 149, 120, 108, 132, 155, 82, 99 }, + { 242, 163, 133, 114, 118, 83, 218, 134 }, + { 104, 104, 119, 116, 131, 250, 100, 147 }, + { 146, 115, 243, 130, 118, 85, 135, 117 }, + { 116, 133, 125, 117, 132, 251, 83, 101 }, + { 242, 131, 116, 131, 117, 83, 243, 124 }, +#else + { 25, 19, 29, 25, 43, 21, 41 }, + { 9, 19, 60, 9, 13, 5, 49 }, + { 25, 34, 28, 25, 21, 13, 48 }, + { 25, 19, 29, 25, 28, 13, 41 }, + { 2, 1, 1, 2, 1, 10, 9 }, + { 5, 1, 0, 5, 1, 9, 8 }, + { 6, 5, 1, 2, 1, 8, 4 }, + { 5, 1, 1, 2, 1, 9, 9 }, + { 11, 11, 4, 11, 11, 25, 25 }, + { 11, 4, 11, 11, 11, 25, 25 }, + { 18, 18, 4, 18, 18, 18, 11 }, + { 11, 11, 4, 11, 11, 25, 25 }, + { 117, 122, 124, 116, 227, 249, 83 }, + { 131, 116, 116, 130, 117, 84, 163 }, + { 104, 133, 121, 102, 132, 155, 82 }, + { 242, 195, 132, 114, 118, 83, 218 }, + { 102, 102, 125, 115, 131, 250, 100 }, + { 146, 115, 163, 130, 118, 85, 135 }, + { 101, 121, 124, 116, 132, 251, 83 }, + { 242, 116, 116, 130, 117, 83, 243 }, +#endif +}); + +const CtxSet ContextSetCfg::TmpIdx = ContextSetCfg::addCtxSet({ +// ctx 174 176 + { 20, 36, 36 }, + { 20, 43, 20 }, + { 20, 36, 36 }, + { 20, 36, 36 }, + { 5, 10, 13 }, + { 5, 10, 10 }, + { 5, 10, 13 }, + { 5, 9, 13 }, + { 4, 18, 4 }, + { 4, 25, 25 }, + { 4, 11, 4 }, + { 4, 11, 4 }, + { 124, 133, 234 }, + { 163, 98, 71 }, + { 118, 122, 217 }, + { 163, 88, 83 }, + { 124, 151, 234 }, + { 102, 129, 74 }, + { 119, 134, 218 }, + { 195, 98, 84 }, +}); + +const CtxSet ContextSetCfg::TmpFusion = ContextSetCfg::addCtxSet({ +// ctx 177 182 + { 49, 43, 37, 33, 20, 57 }, + { 27, 21, 22, 33, 42, 50 }, + { 49, 36, 30, 33, 13, 34 }, + { 49, 35, 29, 33, 13, 57 }, + { 5, 4, 7, 5, 4, 4 }, + { 6, 6, 6, 2, 4, 5 }, + { 4, 6, 6, 1, 4, 8 }, + { 5, 5, 6, 6, 4, 4 }, + { 25, 4, 11, 25, 25, 4 }, + { 32, 18, 4, 4, 32, 18 }, + { 18, 18, 11, 4, 11, 18 }, + { 25, 18, 4, 25, 32, 11 }, + { 105, 245, 154, 98, 105, 132 }, + { 117, 100, 161, 147, 131, 180 }, + { 98, 103, 121, 114, 121, 99 }, + { 135, 100, 103, 243, 115, 139 }, + { 125, 132, 102, 117, 116, 99 }, + { 117, 115, 169, 120, 180, 117 }, + { 108, 180, 120, 97, 106, 211 }, + { 124, 105, 178, 241, 131, 148 }, +}); + +#if JVET_AG0136_INTRA_TMP_LIC +const CtxSet ContextSetCfg::TmpLic = ContextSetCfg::addCtxSet +({ +// ctx 183 183 + { 35 }, + { 35 }, + { 20 }, + { 43 }, + { 5 }, + { 4 }, + { 5 }, + { 1 }, + { 25 }, + { 18 }, + { 32 }, + { 11 }, + { 116 }, + { 146 }, + { 118 }, + { 131 }, + { 116 }, + { 115 }, + { 119 }, + { 132 }, + }); + +const CtxSet ContextSetCfg::ItmpLicIndex = ContextSetCfg::addCtxSet +({ +// ctx 184 185 + { 19, 36 }, + { 11, 5 }, + { 19, 36 }, + { 27, 51 }, + { 8, 8 }, + { 8, 7 }, + { 5, 5 }, + { 10, 7 }, + { 32, 32 }, + { 32, 25 }, + { 18, 18 }, + { 32, 25 }, + { 100, 133 }, + { 131, 114 }, + { 130, 154 }, + { 134, 105 }, + { 121, 117 }, + { 117, 131 }, + { 99, 137 }, + { 122, 114 }, + }); +#endif +const CtxSet ContextSetCfg::MMLMFlag = ContextSetCfg::addCtxSet({ +// ctx 186 186 + { 28 }, + { 36 }, + { 11 }, + { 51 }, + { 5 }, + { 5 }, + { 5 }, + { 5 }, + { 25 }, + { 18 }, + { 11 }, + { 25 }, + { 103 }, + { 140 }, + { 114 }, + { 229 }, + { 108 }, + { 227 }, + { 107 }, + { 134 }, +}); + +const CtxSet ContextSetCfg::DeltaQP = ContextSetCfg::addCtxSet({ +// ctx 187 188 + { 35, 35 }, + { 35, 35 }, + { 35, 35 }, + { 35, 35 }, + { 8, 8 }, + { 8, 8 }, + { 8, 8 }, + { 8, 8 }, + { 18, 18 }, + { 18, 18 }, + { 18, 18 }, + { 18, 18 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, +}); + +const CtxSet ContextSetCfg::InterDir = ContextSetCfg::addCtxSet({ +// ctx 189 196 + { 7, 26, 11, 18, 25, 25, 2, 35 }, + { 7, 6, 4, 11, 18, 18, 25, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 26, 11, 18, 25, 25, 2, 35 }, + { 0, 0, 0, 1, 4, 8, 8, 8 }, + { 0, 0, 2, 2, 5, 10, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 3, 0, 1, 4, 9, 8, 8 }, + { 32, 25, 11, 4, 4, 32, 32, 18 }, + { 25, 25, 18, 11, 11, 25, 32, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 25, 4, 4, 4, 32, 32, 18 }, + { 116, 116, 117, 116, 101, 88, 82, 119 }, + { 137, 116, 228, 164, 196, 146, 133, 119 }, + { 116, 116, 117, 116, 104, 82, 82, 119 }, + { 169, 117, 178, 179, 132, 133, 252, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119 }, + { 152, 113, 117, 116, 101, 87, 82, 119 }, + { 134, 115, 244, 196, 133, 119, 120, 119 }, +}); + +const CtxSet ContextSetCfg::RefPic = ContextSetCfg::addCtxSet({ +// ctx 197 198 + { 35, 35 }, + { 35, 35 }, + { 35, 35 }, + { 35, 35 }, + { 8, 8 }, + { 8, 8 }, + { 8, 8 }, + { 8, 8 }, + { 18, 18 }, + { 18, 18 }, + { 18, 18 }, + { 18, 18 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, +}); + +const CtxSet ContextSetCfg::RefPicLC = ContextSetCfg::addCtxSet({ +// ctx 199 201 + { 41, 34, 27 }, + { 27, 35, 43 }, + { 35, 35, 35 }, + { 27, 28, 36 }, + { 5, 5, 8 }, + { 5, 9, 8 }, + { 8, 8, 8 }, + { 5, 6, 9 }, + { 4, 4, 4 }, + { 4, 18, 11 }, + { 18, 18, 18 }, + { 4, 4, 4 }, + { 119, 119, 252 }, + { 118, 118, 252 }, + { 108, 114, 148 }, + { 119, 136, 236 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 117, 117, 234 }, + { 148, 117, 251 }, +}); + +const CtxSet ContextSetCfg::SubblockMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 202 204 + { 25, 34, 21 }, + { 40, 34, 36 }, + { 35, 35, 35 }, + { 25, 20, 37 }, + { 6, 5, 4 }, + { 6, 5, 5 }, + { 8, 8, 8 }, + { 6, 5, 5 }, + { 4, 4, 18 }, + { 11, 4, 18 }, + { 18, 18, 18 }, + { 4, 4, 18 }, + { 131, 116, 117 }, + { 131, 132, 118 }, + { 117, 117, 119 }, + { 117, 132, 117 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 131, 117, 118 }, + { 131, 117, 118 }, +}); + +const CtxSet ContextSetCfg::BMMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 205 208 + { 56, 50, 58, 28 }, + { 49, 50, 58, 28 }, + { 35, 35, 35, 35 }, + { 56, 50, 58, 28 }, + { 5, 5, 4, 5 }, + { 6, 5, 7, 5 }, + { 8, 8, 8, 8 }, + { 5, 5, 4, 5 }, + { 18, 4, 4, 11 }, + { 18, 4, 4, 4 }, + { 18, 18, 18, 18 }, + { 18, 11, 4, 11 }, + { 118, 134, 153, 108 }, + { 116, 131, 100, 108 }, + { 119, 118, 250, 103 }, + { 116, 116, 99, 104 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 124, 164, 141, 116 }, + { 117, 163, 101, 116 }, +}); + +const CtxSet ContextSetCfg::affBMFlag = ContextSetCfg::addCtxSet({ +// ctx 209 210 + { 40, 43 }, + { 40, 43 }, + { 35, 35 }, + { 40, 50 }, + { 5, 1 }, + { 6, 4 }, + { 8, 8 }, + { 5, 1 }, + { 18, 4 }, + { 11, 4 }, + { 18, 18 }, + { 18, 4 }, + { 101, 117 }, + { 133, 117 }, + { 113, 105 }, + { 118, 102 }, + { 119, 119 }, + { 119, 119 }, + { 99, 120 }, + { 121, 117 }, +}); + +const CtxSet ContextSetCfg::rribcFlipType = ContextSetCfg::addCtxSet({ +// ctx 211 214 + { 39, 39, 39, 35 }, + { 39, 39, 0, 35 }, + { 39, 39, 39, 35 }, + { 39, 39, 39, 35 }, + { 0, 0, 0, 8 }, + { 0, 0, 0, 8 }, + { 0, 0, 0, 8 }, + { 0, 0, 0, 8 }, + { 32, 32, 32, 18 }, + { 32, 32, 32, 18 }, + { 32, 32, 32, 18 }, + { 32, 32, 32, 18 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, + { 116, 116, 116, 119 }, +}); + +const CtxSet ContextSetCfg::bvOneZeroComp = ContextSetCfg::addCtxSet({ +// ctx 215 218 + { 34, 43, 20, 27 }, + { 49, 41, 0, 12 }, + { 34, 42, 43, 19 }, + { 41, 27, 27, 27 }, + { 1, 7, 2, 5 }, + { 5, 5, 0, 3 }, + { 5, 9, 2, 5 }, + { 1, 3, 1, 5 }, + { 4, 4, 4, 11 }, + { 11, 18, 4, 18 }, + { 18, 4, 11, 11 }, + { 4, 4, 4, 11 }, + { 132, 113, 115, 101 }, + { 118, 121, 114, 227 }, + { 99, 98, 117, 139 }, + { 147, 252, 116, 130 }, + { 115, 91, 146, 103 }, + { 108, 85, 236, 131 }, + { 117, 114, 211, 108 }, + { 119, 163, 137, 131 }, +}); + +const CtxSet ContextSetCfg::AffineFlag = ContextSetCfg::addCtxSet({ +// ctx 219 221 + { 33, 12, 13 }, + { 26, 19, 20 }, + { 35, 35, 35 }, + { 33, 20, 14 }, + { 6, 6, 1 }, + { 6, 3, 1 }, + { 8, 8, 8 }, + { 5, 3, 1 }, + { 4, 11, 11 }, + { 4, 4, 4 }, + { 18, 18, 18 }, + { 11, 4, 4 }, + { 194, 114, 125 }, + { 179, 180, 229 }, + { 107, 122, 118 }, + { 123, 163, 212 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 104, 115, 119 }, + { 132, 242, 149 }, +}); + +const CtxSet ContextSetCfg::AffineType = ContextSetCfg::addCtxSet({ +// ctx 222 222 + { 20 }, + { 26 }, + { 35 }, + { 19 }, + { 0 }, + { 5 }, + { 8 }, + { 1 }, + { 4 }, + { 18 }, + { 18 }, + { 4 }, + { 125 }, + { 133 }, + { 105 }, + { 179 }, + { 119 }, + { 119 }, + { 117 }, + { 212 }, +}); + +const CtxSet ContextSetCfg::AffMergeIdx = ContextSetCfg::addCtxSet({ +// ctx 223 225 + { 22, 14, 37 }, + { 7, 14, 22 }, + { 35, 35, 35 }, + { 14, 14, 22 }, + { 1, 5, 9 }, + { 1, 5, 9 }, + { 8, 8, 8 }, + { 1, 5, 9 }, + { 11, 11, 4 }, + { 11, 4, 4 }, + { 18, 18, 18 }, + { 18, 4, 4 }, + { 132, 117, 148 }, + { 117, 104, 89 }, + { 132, 132, 132 }, + { 132, 108, 101 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 123, 227, 117 }, + { 119, 101, 101 }, +}); + +const CtxSet ContextSetCfg::LICFlag = ContextSetCfg::addCtxSet({ +#if JVET_AG0276_LIC_SLOPE_ADJUST +// ctx 226 228 + { 18, 18, 11 }, + { 18, 41, 11 }, + { 35, 35, 35 }, + { 26, 34, 34 }, + { 4, 4, 0 }, + { 5, 4, 4 }, + { 8, 8, 8 }, + { 4, 4, 4 }, + { 4, 18, 18 }, + { 11, 18, 18 }, + { 18, 18, 18 }, + { 4, 25, 32 }, + { 102, 115, 116 }, + { 212, 148, 151 }, + { 104, 100, 99 }, + { 148, 244, 137 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 101, 100, 99 }, + { 133, 134, 136 }, +#else + { 11, }, + { 11, }, + { 11, }, + { 11, }, + { 4, }, + { 5, }, + { 6, }, + { 4, }, + { 4, }, + { 4, }, + { 4, }, + { 4, }, + { 102, }, + { 133, }, + { 101, }, + { 133, }, + { 106, }, + { 211, }, + { 102, }, + { 133, }, +#endif +}); + +#if JVET_AG0276_LIC_SLOPE_ADJUST +const CtxSet ContextSetCfg::LicDelta = ContextSetCfg::addCtxSet +({ +// ctx 229 230 + { 35, 51 }, + { 50, 59 }, + { 35, 35 }, + { 43, 59 }, + { 8, 0 }, + { 4, 0 }, + { 8, 8 }, + { 8, 0 }, + { 25, 18 }, + { 18, 18 }, + { 18, 18 }, + { 25, 11 }, + { 106, 149 }, + { 131, 116 }, + { 124, 123 }, + { 227, 116 }, + { 119, 119 }, + { 119, 119 }, + { 186, 137 }, + { 99, 116 }, + }); +#endif + +const CtxSet ContextSetCfg::BcwIdx = ContextSetCfg::addCtxSet({ +// ctx 231 231 + { 5 }, + { 5 }, + { 35 }, + { 12 }, + { 1 }, + { 3 }, + { 8 }, + { 3 }, + { 11 }, + { 11 }, + { 18 }, + { 18 }, + { 132 }, + { 117 }, + { 139 }, + { 116 }, + { 119 }, + { 119 }, + { 155 }, + { 122 }, +}); + +const CtxSet ContextSetCfg::Mvd = ContextSetCfg::addCtxSet({ +// ctx 232 233 + { 44, 37 }, + { 44, 58 }, + { 35, 35 }, + { 44, 22 }, + { 2, 2 }, + { 3, 2 }, + { 8, 8 }, + { 2, 2 }, + { 4, 4 }, + { 4, 4 }, + { 18, 18 }, + { 4, 4 }, + { 252, 116 }, + { 252, 116 }, + { 202, 116 }, + { 171, 115 }, + { 119, 119 }, + { 119, 119 }, + { 252, 115 }, + { 252, 115 }, +}); + +const CtxSet ContextSetCfg::Bvd = ContextSetCfg::addCtxSet({ +// ctx 234 245 + { 38, 38, 38, 37, 29, 28, 36, 38, 44, 28, 27, 27 }, + { 31, 46, 38, 29, 36, 29, 28, 46, 38, 13, 34, 13 }, + { 38, 38, 38, 30, 37, 36, 29, 45, 37, 37, 28, 42 }, + { 38, 38, 38, 37, 21, 35, 28, 46, 30, 28, 19, 27 }, + { 5, 9, 5, 5, 2, 5, 1, 5, 1, 0, 0, 1 }, + { 6, 7, 7, 5, 1, 5, 2, 6, 1, 0, 1, 2 }, + { 6, 9, 10, 7, 7, 2, 1, 6, 6, 1, 2, 2 }, + { 5, 6, 5, 5, 2, 5, 1, 6, 1, 0, 0, 1 }, + { 18, 11, 4, 4, 4, 11, 11, 25, 4, 4, 4, 4 }, + { 18, 4, 4, 4, 4, 11, 11, 18, 11, 4, 4, 11 }, + { 25, 18, 25, 18, 18, 11, 11, 25, 25, 18, 11, 18 }, + { 18, 4, 4, 4, 4, 18, 4, 18, 4, 4, 4, 11 }, + { 242, 243, 122, 119, 134, 148, 117, 116, 118, 126, 121, 125 }, + { 107, 82, 102, 115, 116, 100, 117, 115, 132, 117, 117, 116 }, + { 241, 122, 132, 148, 149, 131, 116, 130, 120, 120, 133, 133 }, + { 101, 102, 114, 100, 117, 116, 117, 147, 117, 117, 116, 117 }, + { 209, 147, 116, 122, 119, 179, 118, 116, 114, 125, 124, 124 }, + { 102, 83, 90, 105, 106, 117, 120, 104, 98, 118, 131, 130 }, + { 226, 122, 124, 118, 133, 117, 132, 130, 118, 120, 119, 120 }, + { 102, 98, 102, 100, 117, 101, 117, 162, 132, 117, 117, 117 }, +}); + +const CtxSet ContextSetCfg::MvsdIdxMVDMSB = ContextSetCfg::addCtxSet({ +// ctx 246 277 + { 42, 34, 41, 41, 33, 33, 34, 34, 41, 41, 48, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 42, 49, 49, 41, 33, 26, 26, 34, 41, 41, 48, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 42, 34, 41, 41, 33, 26, 34, 34, 41, 41, 33, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 13, 13, 9, 10, 6, 6, 13, 13, 13, 10, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 12, 13, 13, 10, 10, 6, 6, 13, 13, 13, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 12, 13, 9, 10, 6, 5, 12, 13, 9, 12, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 4, 4, 25, 4, 11, 4, 4, 4, 4, 4, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 11, 4, 11, 11, 4, 4, 4, 25, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 11, 4, 4, 11, 4, 11, 11, 18, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 162, 70, 115, 98, 96, 98, 241, 83, 193, 73, 81, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 103, 134, 99, 120, 116, 101, 218, 115, 185, 101, 105, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 219, 105, 82, 113, 81, 98, 97, 87, 98, 74, 83, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 85, 119, 104, 121, 116, 130, 203, 119, 230, 136, 122, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 89, 87, 209, 98, 97, 114, 98, 99, 71, 81, 66, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 100, 152, 90, 117, 101, 130, 233, 136, 234, 232, 115, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::MvsdIdxBVDMSB = ContextSetCfg::addCtxSet({ +// ctx 278 293 + { 34, 41, 41, 41, 42, 41, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 42, 41, 0, 18, 34, 41, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 34, 41, 34, 41, 42, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 34, 41, 26, 33, 42, 49, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 9, 13, 10, 13, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 9, 1, 8, 12, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 10, 13, 13, 13, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 9, 6, 13, 10, 13, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 4, 4, 4, 18, 4, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 25, 25, 32, 4, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 11, 4, 4, 11, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 185, 83, 134, 81, 73, 84, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 84, 100, 151, 199, 234, 101, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 70, 84, 252, 252, 66, 90, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 120, 100, 119, 100, 235, 101, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 201, 84, 234, 217, 234, 84, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 85, 99, 87, 131, 101, 151, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 138, 84, 251, 102, 87, 70, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 87, 100, 98, 136, 152, 152, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::MvsdIdx = ContextSetCfg::addCtxSet({ +// ctx 294 297 + { 34, 33, 34, 33 }, + { 41, 48, 41, 33 }, + { 35, 35, 35, 35 }, + { 34, 33, 34, 33 }, + { 13, 10, 12, 12 }, + { 13, 10, 13, 10 }, + { 8, 8, 8, 8 }, + { 13, 10, 12, 13 }, + { 11, 4, 4, 11 }, + { 4, 4, 4, 11 }, + { 18, 18, 18, 18 }, + { 4, 4, 4, 18 }, + { 66, 81, 67, 177 }, + { 118, 106, 120, 84 }, + { 88, 82, 72, 81 }, + { 90, 101, 90, 178 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 67, 83, 67, 80 }, + { 100, 100, 104, 99 }, +}); + +const CtxSet ContextSetCfg::MvsdIdxIBC = ContextSetCfg::addCtxSet({ +// ctx 298 299 + { 41, 33 }, + { 56, 26 }, + { 34, 41 }, + { 34, 41 }, + { 13, 10 }, + { 13, 10 }, + { 12, 13 }, + { 10, 10 }, + { 4, 4 }, + { 4, 11 }, + { 4, 11 }, + { 4, 11 }, + { 170, 85 }, + { 100, 100 }, + { 234, 82 }, + { 101, 210 }, + { 219, 83 }, + { 85, 100 }, + { 183, 82 }, + { 99, 115 }, +}); + +const CtxSet ContextSetCfg::MultiHypothesisFlag = ContextSetCfg::addCtxSet({ +// ctx 300 302 + { 10, 58, 51 }, + { 10, 42, 43 }, + { 35, 35, 35 }, + { 17, 50, 52 }, + { 1, 1, 1 }, + { 2, 5, 2 }, + { 8, 8, 8 }, + { 1, 4, 1 }, + { 11, 4, 11 }, + { 4, 4, 4 }, + { 18, 18, 18 }, + { 4, 4, 4 }, + { 116, 118, 116 }, + { 243, 148, 163 }, + { 115, 107, 117 }, + { 131, 147, 116 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 116, 102, 117 }, + { 132, 103, 117 }, +}); + +const CtxSet ContextSetCfg::MHRefPic = ContextSetCfg::addCtxSet({ +// ctx 303 304 + { 43, 41 }, + { 28, 26 }, + { 35, 35 }, + { 36, 13 }, + { 0, 0 }, + { 1, 0 }, + { 8, 8 }, + { 1, 1 }, + { 18, 18 }, + { 4, 4 }, + { 18, 18 }, + { 4, 4 }, + { 148, 148 }, + { 117, 116 }, + { 155, 141 }, + { 124, 117 }, + { 119, 119 }, + { 119, 119 }, + { 212, 125 }, + { 124, 117 }, +}); + +const CtxSet ContextSetCfg::MHWeight = ContextSetCfg::addCtxSet({ +// ctx 305 306 + { 51, 35 }, + { 51, 35 }, + { 35, 35 }, + { 59, 35 }, + { 0, 8 }, + { 0, 8 }, + { 8, 8 }, + { 0, 8 }, + { 18, 18 }, + { 4, 18 }, + { 18, 18 }, + { 4, 18 }, + { 120, 119 }, + { 165, 119 }, + { 151, 119 }, + { 150, 119 }, + { 119, 119 }, + { 119, 119 }, + { 138, 119 }, + { 246, 119 }, +}); + +const CtxSet ContextSetCfg::BDPCMMode = ContextSetCfg::addCtxSet({ +// ctx 307 310 + { 25, 28, 0, 50 }, + { 25, 21, 0, 58 }, + { 11, 50, 0, 34 }, + { 17, 21, 0, 58 }, + { 1, 0, 1, 0 }, + { 2, 0, 0, 0 }, + { 1, 1, 8, 0 }, + { 2, 0, 1, 0 }, + { 4, 25, 25, 18 }, + { 11, 4, 4, 32 }, + { 18, 25, 4, 4 }, + { 4, 11, 11, 32 }, + { 117, 117, 115, 116 }, + { 164, 118, 167, 116 }, + { 117, 148, 116, 116 }, + { 131, 116, 167, 117 }, + { 120, 118, 82, 123 }, + { 125, 131, 135, 116 }, + { 123, 117, 115, 116 }, + { 120, 117, 153, 116 }, +}); + +const CtxSet ContextSetCfg::QtRootCbf = ContextSetCfg::addCtxSet({ +// ctx 311 311 + { 5 }, + { 5 }, + { 6 }, + { 13 }, + { 1 }, + { 2 }, + { 1 }, + { 1 }, + { 4 }, + { 4 }, + { 11 }, + { 4 }, + { 117 }, + { 118 }, + { 117 }, + { 117 }, + { 117 }, + { 117 }, + { 118 }, + { 118 }, +}); + +const CtxSet ContextSetCfg::ACTFlag = ContextSetCfg::addCtxSet({ +// ctx 312 312 + { 35 }, + { 35 }, + { 35 }, + { 35 }, + { 8 }, + { 8 }, + { 8 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, +}); + +const CtxSet ContextSetCfg::QtCbf[3] = { + ContextSetCfg::addCtxSet({ +// ctx 313 316 + { 30, 38, 5, 7 }, + { 15, 14, 5, 7 }, + { 7, 42, 4, 7 }, + { 15, 46, 5, 7 }, + { 5, 1, 5, 5 }, + { 5, 1, 6, 6 }, + { 5, 1, 5, 5 }, + { 5, 1, 5, 5 }, + { 18, 18, 4, 4 }, + { 11, 11, 4, 11 }, + { 18, 18, 4, 4 }, + { 18, 11, 4, 4 }, + { 131, 148, 100, 195 }, + { 107, 115, 228, 148 }, + { 147, 243, 99, 130 }, + { 102, 115, 211, 185 }, + { 131, 116, 100, 115 }, + { 116, 131, 147, 251 }, + { 131, 149, 100, 147 }, + { 108, 115, 196, 232 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 317 318 + { 25, 61 }, + { 17, 59 }, + { 4, 14 }, + { 25, 46 }, + { 5, 0 }, + { 5, 1 }, + { 5, 7 }, + { 5, 0 }, + { 18, 11 }, + { 18, 32 }, + { 18, 32 }, + { 18, 18 }, + { 99, 228 }, + { 130, 119 }, + { 101, 115 }, + { 242, 141 }, + { 101, 97 }, + { 131, 154 }, + { 101, 116 }, + { 242, 121 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 319 321 + { 17, 36, 22 }, + { 1, 5, 58 }, + { 33, 13, 29 }, + { 17, 21, 15 }, + { 3, 1, 0 }, + { 2, 1, 1 }, + { 2, 2, 2 }, + { 3, 1, 1 }, + { 18, 11, 11 }, + { 18, 11, 32 }, + { 11, 18, 18 }, + { 18, 4, 18 }, + { 114, 116, 116 }, + { 115, 116, 254 }, + { 118, 117, 136 }, + { 118, 117, 115 }, + { 116, 119, 132 }, + { 118, 119, 114 }, + { 115, 117, 115 }, + { 116, 117, 253 }, + }), +}; + +const CtxSet ContextSetCfg::SigCoeffGroup[2] = { + ContextSetCfg::addCtxSet({ +// ctx 322 323 + { 25, 38 }, + { 25, 52 }, + { 18, 31 }, + { 25, 30 }, + { 8, 5 }, + { 8, 5 }, + { 4, 5 }, + { 5, 5 }, + { 25, 18 }, + { 25, 18 }, + { 11, 18 }, + { 11, 18 }, + { 92, 148 }, + { 107, 148 }, + { 92, 133 }, + { 103, 133 }, + { 105, 179 }, + { 102, 116 }, + { 101, 133 }, + { 243, 148 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 324 325 + { 1, 38 }, + { 2, 38 }, + { 25, 30 }, + { 9, 53 }, + { 12, 9 }, + { 9, 5 }, + { 5, 9 }, + { 8, 4 }, + { 25, 25 }, + { 32, 11 }, + { 11, 25 }, + { 18, 18 }, + { 67, 251 }, + { 228, 117 }, + { 82, 251 }, + { 133, 171 }, + { 147, 230 }, + { 163, 147 }, + { 82, 170 }, + { 198, 251 }, + }), +}; + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::SigFlagL[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 326 343 + { 11, 26, 27, 28, 21, 21, 42, 27, 28, 29, 37, 30, 35, 44, 37, 30, 30, 38 }, + { 26, 41, 34, 28, 5, 44, 57, 42, 35, 29, 37, 30, 42, 37, 44, 22, 38, 38 }, + { 34, 26, 19, 28, 13, 21, 50, 27, 28, 14, 22, 30, 43, 52, 37, 38, 38, 38 }, + { 11, 26, 27, 28, 21, 29, 42, 27, 28, 29, 37, 30, 50, 44, 52, 30, 30, 38 }, + { 13, 10, 10, 13, 13, 13, 8, 13, 13, 10, 10, 13, 8, 10, 8, 10, 9, 13 }, + { 13, 10, 10, 13, 12, 8, 8, 13, 10, 10, 13, 13, 9, 9, 12, 10, 13, 13 }, + { 13, 9, 10, 10, 13, 13, 12, 13, 13, 13, 13, 13, 12, 9, 9, 13, 13, 13 }, + { 13, 10, 10, 13, 13, 13, 10, 13, 10, 13, 13, 13, 8, 10, 12, 12, 12, 13 }, + { 32, 4, 4, 4, 4, 11, 25, 4, 4, 4, 4, 4, 25, 4, 4, 4, 4, 18 }, + { 25, 4, 4, 18, 4, 4, 18, 4, 4, 4, 4, 4, 25, 4, 11, 11, 11, 11 }, + { 25, 4, 4, 4, 4, 11, 18, 4, 4, 4, 4, 4, 32, 4, 4, 4, 4, 18 }, + { 18, 4, 11, 11, 4, 4, 18, 11, 4, 18, 4, 4, 32, 4, 18, 4, 4, 11 }, + { 234, 83, 85, 89, 85, 234, 252, 83, 118, 131, 234, 216, 243, 186, 118, 120, 251, 202 }, + { 87, 250, 250, 121, 168, 66, 99, 234, 234, 202, 90, 86, 130, 100, 156, 134, 83, 65 }, + { 121, 82, 99, 84, 155, 252, 132, 74, 106, 99, 122, 137, 90, 163, 131, 105, 100, 199 }, + { 148, 250, 136, 233, 68, 83, 118, 234, 151, 250, 106, 118, 168, 251, 229, 250, 218, 67 }, + { 234, 89, 100, 85, 199, 234, 201, 84, 132, 115, 117, 153, 235, 100, 119, 86, 117, 234 }, + { 122, 202, 138, 250, 84, 66, 119, 234, 234, 234, 122, 90, 84, 251, 187, 234, 169, 65 }, + { 217, 83, 88, 83, 105, 234, 195, 83, 116, 99, 213, 182, 100, 210, 115, 147, 120, 234 }, + { 114, 249, 250, 233, 154, 67, 100, 234, 234, 234, 85, 88, 134, 154, 202, 235, 84, 192 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 344 355 + { 18, 42, 27, 5, 21, 13, 4, 52, 45, 38, 38, 31 }, + { 4, 27, 27, 28, 21, 36, 19, 36, 14, 7, 30, 54 }, + { 42, 34, 20, 21, 29, 37, 43, 53, 53, 38, 38, 46 }, + { 11, 42, 27, 21, 37, 60, 12, 36, 53, 46, 38, 31 }, + { 13, 13, 13, 12, 9, 12, 7, 5, 8, 8, 10, 8 }, + { 12, 13, 12, 10, 10, 0, 9, 8, 8, 8, 8, 0 }, + { 8, 13, 9, 13, 13, 8, 9, 9, 12, 8, 13, 9 }, + { 0, 12, 9, 6, 8, 7, 4, 9, 12, 10, 10, 13 }, + { 4, 4, 4, 25, 18, 18, 4, 4, 11, 32, 32, 25 }, + { 18, 11, 4, 25, 25, 18, 4, 11, 11, 18, 25, 4 }, + { 4, 4, 4, 18, 4, 18, 32, 4, 11, 4, 18, 11 }, + { 4, 11, 18, 11, 11, 4, 4, 11, 32, 11, 32, 32 }, + { 234, 115, 137, 84, 85, 167, 116, 102, 133, 147, 232, 236 }, + { 184, 234, 234, 201, 251, 165, 166, 252, 181, 138, 99, 82 }, + { 106, 69, 105, 88, 241, 254, 132, 87, 132, 163, 134, 254 }, + { 235, 234, 235, 250, 245, 116, 170, 252, 252, 252, 82, 116 }, + { 235, 70, 101, 83, 104, 252, 213, 104, 116, 132, 234, 234 }, + { 118, 234, 251, 218, 212, 83, 251, 251, 235, 252, 84, 82 }, + { 249, 85, 196, 99, 226, 184, 121, 99, 131, 164, 218, 216 }, + { 250, 235, 219, 234, 98, 161, 131, 235, 203, 201, 80, 117 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 356 373 + { 36, 21, 45, 46, 46, 46, 30, 54, 61, 39, 39, 39, 13, 39, 39, 39, 39, 39 }, + { 43, 44, 22, 46, 46, 54, 44, 54, 54, 39, 39, 39, 39, 39, 39, 39, 39, 39 }, + { 44, 21, 45, 54, 54, 54, 37, 39, 39, 39, 39, 39, 31, 39, 39, 39, 39, 39 }, + { 29, 21, 45, 46, 46, 46, 22, 54, 61, 39, 39, 39, 61, 39, 39, 39, 39, 39 }, + { 9, 13, 13, 10, 8, 8, 8, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 12, 13, 12, 13, 10, 3, 10, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 13, 12, 13, 4, 12, 8, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 9, 12, 13, 9, 5, 8, 10, 8, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 32, 25, 18, 4, 11, 4, 25, 25, 25, 32, 25, 25, 32, 32, 32, 32, 32, 32 }, + { 32, 25, 18, 4, 4, 4, 25, 25, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 4, 4, 11, 11, 25, 4, 18, 25, 25, 32, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 18, 11, 11, 4, 4, 4, 25, 25, 25, 25, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 251, 103, 133, 181, 217, 213, 252, 252, 236, 203, 254, 237, 254, 235, 116, 116, 116, 237 }, + { 83, 234, 202, 248, 82, 82, 85, 242, 98, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 235, 100, 107, 196, 201, 135, 250, 252, 184, 251, 254, 254, 253, 237, 116, 116, 235, 238 }, + { 85, 216, 219, 200, 81, 114, 98, 211, 131, 118, 117, 117, 116, 116, 116, 116, 116, 116 }, + { 188, 91, 131, 133, 233, 199, 235, 252, 252, 217, 254, 190, 235, 254, 254, 251, 251, 252 }, + { 139, 235, 234, 201, 73, 99, 100, 242, 98, 99, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 251, 102, 106, 134, 252, 219, 250, 252, 252, 184, 254, 174, 250, 116, 116, 235, 238, 116 }, + { 91, 235, 234, 249, 98, 82, 85, 242, 114, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 374 385 + { 21, 29, 38, 31, 62, 39, 39, 39, 39, 39, 39, 39 }, + { 42, 45, 53, 62, 62, 39, 31, 39, 39, 39, 39, 39 }, + { 22, 46, 38, 39, 39, 39, 39, 39, 39, 39, 39, 39 }, + { 13, 29, 38, 31, 54, 39, 39, 39, 39, 39, 39, 39 }, + { 8, 13, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 12, 13, 4, 0, 8, 9, 0, 0, 0, 0, 0, 0 }, + { 4, 12, 12, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 13, 9, 0, 8, 4, 2, 4, 0, 0, 0, 0, 0 }, + { 32, 32, 25, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 32, 32, 25, 11, 25, 11, 32, 32, 32, 32, 32, 32 }, + { 25, 18, 18, 32, 25, 25, 32, 32, 32, 32, 32, 32 }, + { 32, 25, 4, 18, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 252, 234, 254, 253, 254, 116, 235, 251, 235, 116, 116, 116 }, + { 83, 234, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 233, 197, 217, 254, 236, 162, 235, 252, 235, 116, 116, 116 }, + { 82, 234, 99, 180, 82, 168, 116, 116, 116, 116, 116, 116 }, + { 235, 231, 234, 253, 252, 214, 235, 253, 238, 253, 253, 254 }, + { 100, 235, 132, 99, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 202, 139, 236, 108, 99, 235, 251, 238, 252, 238, 116, 116 }, + { 168, 251, 116, 149, 153, 115, 99, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 386 403 + { 36, 54, 39, 39, 39, 39, 38, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 20, 39, 54, 39, 39, 39, 60, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 43, 39, 39, 39, 39, 39, 44, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 36, 54, 39, 39, 39, 39, 53, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 13, 8, 8, 13, 5, 6, 13, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 9, 8, 8, 12, 10, 0, 13, 4, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0 }, + { 10, 8, 12, 12, 12, 13, 12, 0, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 12, 9, 8, 13, 0, 2, 12, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 25, 25, 25, 32, 18, 11, 32, 18, 32, 32, 32, 32, 4, 32, 32, 32, 32, 32 }, + { 18, 25, 18, 32, 32, 4, 32, 18, 32, 32, 32, 32, 4, 32, 32, 32, 32, 32 }, + { 18, 25, 32, 25, 18, 11, 11, 25, 32, 32, 32, 32, 25, 32, 32, 32, 32, 32 }, + { 18, 25, 32, 25, 18, 18, 32, 18, 25, 32, 32, 32, 25, 32, 32, 32, 32, 32 }, + { 234, 235, 183, 234, 252, 131, 217, 253, 253, 237, 233, 254, 116, 116, 116, 252, 116, 252 }, + { 80, 252, 180, 80, 114, 97, 192, 99, 99, 115, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 251, 252, 186, 217, 232, 238, 234, 253, 220, 253, 215, 254, 116, 116, 116, 116, 116, 235 }, + { 194, 235, 249, 81, 80, 120, 64, 243, 99, 99, 99, 116, 116, 116, 116, 116, 116, 116 }, + { 248, 252, 219, 184, 181, 234, 213, 236, 234, 254, 254, 250, 116, 235, 252, 235, 251, 252 }, + { 161, 252, 163, 114, 97, 162, 149, 116, 99, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 235, 251, 229, 148, 237, 251, 234, 253, 250, 254, 254, 254, 116, 116, 116, 116, 116, 116 }, + { 98, 251, 247, 114, 116, 116, 161, 179, 99, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 404 415 + { 20, 38, 54, 39, 39, 39, 9, 39, 39, 39, 39, 39 }, + { 13, 53, 39, 39, 39, 39, 5, 39, 39, 39, 39, 39 }, + { 28, 39, 39, 39, 39, 39, 4, 39, 39, 39, 39, 39 }, + { 5, 30, 54, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 12, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 13, 12, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 13, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 13, 9, 4, 0, 5, 0, 0, 0, 1, 0, 0, 8 }, + { 32, 25, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 32, 32, 25, 32, 25, 32, 4, 32, 32, 32, 32, 32 }, + { 4, 18, 25, 18, 32, 32, 4, 32, 32, 32, 32, 32 }, + { 32, 32, 32, 25, 32, 32, 4, 32, 32, 32, 32, 32 }, + { 235, 252, 253, 205, 116, 116, 201, 251, 235, 251, 116, 116 }, + { 83, 252, 116, 195, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 201, 235, 134, 254, 116, 235, 123, 253, 235, 116, 235, 116 }, + { 82, 235, 133, 118, 116, 116, 132, 116, 116, 116, 116, 116 }, + { 218, 252, 236, 236, 251, 254, 122, 254, 252, 251, 254, 253 }, + { 67, 252, 100, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + { 150, 235, 253, 253, 218, 116, 116, 238, 236, 116, 235, 218 }, + { 199, 251, 179, 164, 162, 116, 116, 116, 116, 116, 148, 114 }, + }), +}; +#else +const CtxSet ContextSetCfg::SigFlagL[6] = { + ContextSetCfg::addCtxSet({ + { 10, 26, 27, 21, 25, 27, 28, 37, 34, 44, 44, 38 }, + { 10, 41, 42, 21, 19, 42, 28, 37, 27, 37, 44, 38 }, + { 26, 26, 19, 28, 34, 27, 28, 22, 43, 52, 37, 38 }, + { 10, 26, 27, 21, 25, 27, 28, 37, 34, 44, 44, 38 }, + { 12, 10, 10, 10, 8, 10, 10, 10, 8, 10, 8, 9 }, + { 12, 10, 9, 13, 8, 10, 10, 10, 8, 10, 8, 10 }, + { 12, 9, 9, 10, 8, 13, 13, 13, 9, 9, 9, 10 }, + { 12, 10, 10, 10, 8, 10, 10, 10, 8, 10, 8, 9 }, + { 25, 4, 11, 11, 25, 4, 11, 4, 25, 18, 11, 4 }, + { 25, 4, 4, 18, 25, 4, 4, 4, 25, 18, 11, 11 }, + { 25, 4, 4, 4, 4, 4, 11, 11, 18, 4, 4, 4 }, + { 25, 4, 11, 11, 25, 4, 11, 4, 25, 18, 11, 4 }, + { 231, 100, 114, 100, 251, 147, 152, 122, 201, 170, 186, 119 }, + { 102, 138, 138, 233, 100, 137, 122, 138, 101, 99, 100, 106 }, + { 234, 119, 227, 89, 252, 118, 199, 122, 252, 135, 251, 137 }, + { 84, 137, 121, 234, 114, 132, 227, 122, 83, 104, 115, 90 }, + { 131, 101, 117, 116, 252, 85, 211, 101, 131, 163, 132, 121 }, + { 148, 152, 118, 118, 132, 186, 164, 234, 182, 235, 135, 122 }, + { 231, 100, 114, 100, 251, 147, 152, 122, 201, 170, 186, 119 }, + { 102, 138, 138, 233, 100, 137, 122, 138, 101, 99, 100, 106 }, + }), + ContextSetCfg::addCtxSet({ + { 18, 42, 35, 21, 34, 52, 53, 38 }, + { 11, 27, 20, 21, 19, 52, 30, 38 }, + { 26, 34, 20, 21, 43, 53, 53, 38 }, + { 18, 42, 35, 21, 34, 52, 53, 38 }, + { 8, 13, 9, 13, 6, 5, 8, 10 }, + { 13, 13, 12, 12, 5, 5, 8, 8 }, + { 12, 13, 9, 13, 8, 8, 9, 9 }, + { 8, 13, 9, 13, 6, 5, 8, 10 }, + { 11, 18, 4, 25, 18, 11, 18, 25 }, + { 18, 11, 11, 25, 4, 4, 18, 25 }, + { 25, 11, 4, 11, 25, 4, 4, 4 }, + { 11, 18, 4, 25, 18, 11, 18, 25 }, + { 251, 215, 123, 99, 138, 132, 117, 146 }, + { 118, 120, 171, 186, 131, 117, 139, 116 }, + { 233, 115, 101, 84, 140, 132, 117, 147 }, + { 106, 133, 235, 235, 138, 124, 153, 252 }, + { 235, 86, 104, 163, 118, 164, 132, 132 }, + { 107, 149, 251, 147, 252, 108, 251, 154 }, + { 251, 215, 123, 99, 138, 132, 117, 146 }, + { 118, 120, 171, 186, 131, 117, 139, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 35, 37, 45, 46, 28, 54, 61, 39, 43, 39, 39, 39 }, + { 27, 30, 38, 46, 51, 54, 54, 39, 22, 39, 39, 39 }, + { 20, 37, 45, 54, 36, 39, 39, 39, 38, 39, 39, 39 }, + { 35, 37, 45, 46, 28, 54, 61, 39, 43, 39, 39, 39 }, + { 12, 13, 13, 8, 10, 8, 8, 4, 0, 0, 0, 0 }, + { 12, 13, 12, 8, 7, 8, 8, 5, 0, 0, 0, 0 }, + { 8, 12, 13, 12, 13, 8, 8, 4, 0, 0, 0, 0 }, + { 12, 13, 13, 8, 10, 8, 8, 4, 0, 0, 0, 0 }, + { 25, 11, 18, 11, 25, 25, 25, 25, 18, 25, 25, 25 }, + { 25, 25, 25, 4, 25, 25, 25, 25, 25, 25, 25, 25 }, + { 11, 11, 25, 11, 25, 25, 25, 25, 25, 25, 25, 25 }, + { 25, 11, 18, 11, 25, 25, 25, 25, 18, 25, 25, 25 }, + { 235, 234, 232, 152, 250, 252, 235, 173, 212, 238, 116, 116 }, + { 162, 234, 162, 101, 112, 147, 99, 99, 116, 116, 116, 116 }, + { 235, 153, 195, 135, 250, 252, 220, 150, 230, 116, 238, 235 }, + { 82, 234, 235, 121, 97, 136, 115, 98, 116, 116, 116, 116 }, + { 187, 149, 228, 213, 234, 252, 231, 154, 133, 116, 123, 238 }, + { 228, 235, 181, 187, 98, 242, 242, 99, 148, 116, 116, 116 }, + { 235, 234, 232, 152, 250, 252, 235, 173, 212, 238, 116, 116 }, + { 162, 234, 162, 101, 112, 147, 99, 99, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 34, 37, 38, 31, 6, 39, 39, 39 }, + { 34, 38, 53, 54, 38, 39, 39, 39 }, + { 13, 46, 38, 39, 54, 39, 39, 39 }, + { 34, 37, 38, 31, 6, 39, 39, 39 }, + { 8, 12, 8, 4, 0, 0, 0, 0 }, + { 10, 12, 8, 4, 12, 0, 0, 0 }, + { 8, 12, 13, 4, 0, 0, 0, 0 }, + { 8, 12, 8, 4, 0, 0, 0, 0 }, + { 25, 25, 18, 18, 25, 25, 25, 25 }, + { 18, 18, 25, 25, 25, 25, 25, 25 }, + { 25, 18, 25, 25, 25, 25, 25, 25 }, + { 25, 25, 18, 18, 25, 25, 25, 25 }, + { 235, 235, 252, 151, 164, 252, 116, 238 }, + { 115, 214, 83, 99, 132, 116, 116, 116 }, + { 202, 235, 252, 221, 235, 235, 116, 116 }, + { 129, 235, 83, 100, 65, 116, 116, 116 }, + { 252, 235, 186, 246, 148, 253, 254, 133 }, + { 242, 235, 101, 102, 132, 116, 116, 116 }, + { 235, 235, 252, 151, 164, 252, 116, 238 }, + { 115, 214, 83, 99, 132, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 35, 54, 39, 39, 35, 39, 39, 39, 0, 39, 39, 39 }, + { 43, 39, 54, 39, 35, 39, 39, 39, 35, 39, 39, 39 }, + { 19, 39, 39, 39, 43, 39, 39, 39, 0, 39, 39, 39 }, + { 35, 54, 39, 39, 35, 39, 39, 39, 0, 39, 39, 39 }, + { 12, 9, 8, 8, 13, 4, 4, 4, 0, 0, 0, 0 }, + { 12, 8, 8, 12, 13, 4, 4, 4, 8, 0, 0, 0 }, + { 5, 8, 12, 12, 13, 0, 0, 0, 0, 0, 0, 0 }, + { 12, 9, 8, 8, 13, 4, 4, 4, 0, 0, 0, 0 }, + { 25, 25, 25, 18, 4, 25, 25, 25, 4, 25, 25, 25 }, + { 25, 25, 11, 25, 25, 18, 25, 25, 18, 25, 25, 25 }, + { 18, 25, 25, 25, 18, 25, 18, 18, 25, 25, 25, 25 }, + { 25, 25, 25, 18, 4, 25, 25, 25, 4, 25, 25, 25 }, + { 197, 251, 252, 218, 233, 188, 205, 221, 116, 116, 235, 252 }, + { 114, 250, 118, 179, 146, 99, 99, 99, 116, 116, 116, 116 }, + { 235, 235, 236, 202, 234, 253, 215, 215, 119, 116, 235, 235 }, + { 68, 251, 251, 162, 65, 115, 99, 99, 119, 116, 116, 116 }, + { 119, 252, 235, 155, 184, 249, 174, 173, 116, 235, 135, 254 }, + { 123, 251, 227, 114, 209, 116, 116, 116, 116, 116, 132, 116 }, + { 197, 251, 252, 218, 233, 188, 205, 221, 116, 116, 235, 252 }, + { 114, 250, 118, 179, 146, 99, 99, 99, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 19, 30, 54, 39, 42, 39, 39, 39 }, + { 27, 38, 62, 39, 33, 39, 39, 39 }, + { 20, 39, 39, 39, 61, 39, 39, 39 }, + { 19, 30, 54, 39, 42, 39, 39, 39 }, + { 10, 8, 4, 0, 0, 0, 0, 0 }, + { 10, 8, 0, 0, 1, 0, 0, 0 }, + { 9, 8, 8, 0, 1, 0, 0, 0 }, + { 10, 8, 4, 0, 0, 0, 0, 0 }, + { 25, 18, 25, 25, 25, 25, 25, 25 }, + { 18, 25, 25, 25, 11, 25, 25, 25 }, + { 18, 18, 25, 4, 25, 25, 25, 25 }, + { 25, 18, 25, 25, 25, 25, 25, 25 }, + { 216, 236, 253, 253, 212, 116, 253, 238 }, + { 192, 233, 100, 148, 116, 116, 116, 116 }, + { 248, 252, 254, 254, 115, 116, 238, 235 }, + { 100, 203, 117, 116, 221, 116, 116, 116 }, + { 123, 252, 204, 217, 115, 148, 116, 134 }, + { 210, 246, 162, 116, 251, 116, 116, 132 }, + { 216, 236, 253, 253, 212, 116, 253, 238 }, + { 192, 233, 100, 148, 116, 116, 116, 116 }, + }), +}; +#endif + +const CtxSet ContextSetCfg::ParFlagL[2] = { + ContextSetCfg::addCtxSet({ +// ctx 416 436 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 0, 17, 18, 0, 0, 25, 33, 26, 34, 19, 25, 34, 42, 42, 35, 26, 27, 35, 42, 35 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 10, 13, 13, 0, 0, 0, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 12, 13, 13, 12, 13 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 25, 25, 11, 25, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 18, 18, 4, 4, 4 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 66, 64, 195, 116, 116, 116, 66, 84, 75, 104, 87, 106, 86, 117, 122, 105, 122, 234, 100, 90, 122 }, + { 181, 183, 252, 116, 116, 116, 167, 235, 235, 170, 234, 227, 234, 136, 151, 234, 101, 106, 218, 235, 122 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 437 447 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 25, 26, 19, 42, 27, 33, 50, 35, 35, 35 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 13, 13, 12, 12, 13, 12, 12, 12, 10, 13, 10 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 25, 4, 18, 25, 18, 25, 4, 11, 11, 25, 11 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 64, 122, 85, 99, 99, 117, 219, 106, 243, 180, 249 }, + { 234, 117, 234, 187, 203, 123, 86, 104, 168, 165, 88 }, + }), +}; + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::GtxFlagL[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 448 476 + { 25, 0, 0, 35, 35, 35, 35, 35, 2, 10, 26, 34, 4, 12, 28, 18, 34, 27, 20, 28, 36, 29, 19, 20, 21, 29, 22, 45, 30 }, + { 2, 0, 0, 35, 35, 35, 35, 35, 25, 2, 26, 26, 27, 27, 28, 25, 26, 27, 35, 36, 28, 29, 34, 27, 43, 36, 37, 37, 30 }, + { 17, 0, 0, 0, 0, 35, 35, 35, 2, 10, 26, 11, 27, 27, 20, 18, 26, 27, 35, 13, 28, 29, 27, 28, 36, 29, 22, 22, 30 }, + { 25, 0, 0, 0, 35, 35, 35, 35, 2, 18, 26, 34, 4, 12, 28, 18, 34, 12, 20, 28, 36, 29, 27, 20, 21, 29, 22, 45, 30 }, + { 7, 0, 0, 8, 8, 8, 8, 8, 9, 13, 12, 13, 13, 10, 13, 13, 12, 9, 9, 9, 10, 9, 9, 8, 10, 10, 8, 12, 9 }, + { 6, 0, 0, 8, 8, 8, 8, 8, 13, 13, 12, 13, 13, 12, 10, 12, 12, 10, 12, 12, 9, 10, 9, 9, 9, 8, 10, 12, 13 }, + { 7, 0, 0, 0, 0, 8, 8, 8, 12, 13, 12, 13, 12, 13, 9, 10, 12, 9, 9, 13, 9, 13, 6, 8, 9, 12, 9, 10, 9 }, + { 12, 0, 0, 0, 8, 8, 8, 8, 12, 13, 10, 13, 13, 13, 10, 13, 13, 13, 9, 9, 13, 10, 13, 9, 12, 13, 12, 13, 10 }, + { 4, 4, 4, 18, 18, 18, 18, 18, 4, 25, 4, 4, 11, 4, 4, 18, 11, 4, 4, 4, 4, 4, 18, 18, 18, 18, 11, 11, 4 }, + { 18, 4, 4, 18, 18, 18, 18, 18, 4, 25, 11, 18, 4, 4, 4, 18, 11, 11, 11, 4, 4, 4, 11, 18, 18, 11, 25, 25, 25 }, + { 18, 4, 4, 4, 4, 18, 18, 18, 18, 18, 11, 11, 11, 18, 4, 4, 11, 4, 4, 4, 4, 11, 4, 4, 11, 18, 4, 4, 4 }, + { 25, 4, 4, 4, 18, 18, 18, 18, 18, 18, 4, 4, 4, 4, 4, 18, 18, 25, 4, 4, 18, 11, 25, 18, 32, 32, 25, 32, 11 }, + { 97, 116, 116, 119, 119, 119, 119, 119, 133, 234, 219, 218, 151, 169, 186, 233, 235, 234, 251, 251, 234, 202, 251, 252, 164, 202, 106, 163, 251 }, + { 180, 116, 116, 119, 119, 119, 119, 119, 123, 99, 90, 87, 167, 184, 83, 99, 99, 101, 101, 87, 86, 83, 86, 86, 98, 85, 119, 182, 82 }, + { 133, 116, 116, 119, 119, 119, 119, 119, 234, 218, 183, 234, 233, 235, 201, 219, 168, 163, 213, 107, 234, 167, 197, 244, 119, 244, 116, 121, 154 }, + { 195, 116, 116, 119, 119, 119, 119, 119, 105, 115, 101, 114, 87, 87, 83, 90, 115, 106, 105, 86, 86, 87, 115, 114, 146, 115, 137, 100, 86 }, + { 249, 116, 116, 116, 116, 119, 119, 119, 85, 234, 213, 122, 219, 234, 218, 202, 235, 250, 235, 179, 251, 234, 155, 152, 235, 136, 122, 148, 251 }, + { 116, 116, 116, 116, 116, 119, 119, 119, 120, 99, 116, 101, 100, 83, 86, 102, 84, 101, 100, 227, 84, 68, 116, 90, 84, 83, 103, 99, 82 }, + { 200, 116, 116, 116, 116, 116, 116, 119, 178, 82, 213, 233, 100, 198, 202, 133, 162, 106, 120, 247, 138, 202, 88, 243, 107, 120, 100, 98, 250 }, + { 106, 116, 116, 116, 116, 116, 116, 119, 100, 138, 179, 115, 165, 99, 84, 115, 90, 116, 101, 115, 99, 82, 101, 114, 100, 90, 232, 122, 81 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 477 491 + { 41, 10, 3, 11, 27, 44, 52, 14, 2, 19, 27, 44, 53, 6, 54 }, + { 17, 17, 3, 35, 3, 51, 3, 21, 10, 3, 12, 13, 61, 46, 53 }, + { 10, 10, 26, 27, 35, 28, 20, 29, 27, 28, 29, 29, 22, 22, 38 }, + { 41, 2, 11, 11, 28, 28, 29, 6, 10, 42, 35, 52, 29, 6, 46 }, + { 12, 8, 8, 1, 10, 0, 13, 3, 10, 13, 10, 7, 8, 4, 10 }, + { 12, 8, 5, 5, 3, 8, 13, 7, 13, 13, 8, 7, 13, 5, 1 }, + { 6, 9, 9, 13, 13, 12, 9, 13, 12, 9, 10, 10, 8, 10, 8 }, + { 12, 5, 10, 10, 12, 10, 10, 2, 13, 12, 12, 1, 1, 5, 12 }, + { 4, 4, 11, 11, 11, 4, 32, 18, 4, 11, 18, 4, 25, 32, 18 }, + { 4, 18, 4, 18, 18, 32, 32, 32, 25, 25, 4, 4, 4, 18, 4 }, + { 25, 4, 4, 11, 11, 18, 4, 4, 11, 11, 11, 11, 4, 4, 4 }, + { 32, 4, 4, 32, 32, 11, 4, 11, 25, 4, 18, 11, 4, 32, 32 }, + { 132, 86, 83, 121, 83, 116, 232, 183, 250, 169, 131, 137, 226, 100, 180 }, + { 72, 132, 197, 132, 138, 196, 194, 113, 99, 146, 192, 98, 195, 100, 85 }, + { 187, 183, 99, 100, 119, 202, 234, 245, 144, 151, 196, 199, 215, 98, 205 }, + { 72, 84, 132, 226, 209, 251, 104, 96, 122, 130, 181, 99, 154, 100, 115 }, + { 251, 83, 251, 146, 227, 102, 106, 137, 134, 211, 177, 210, 132, 149, 251 }, + { 146, 133, 100, 152, 130, 123, 83, 69, 84, 242, 244, 84, 247, 99, 83 }, + { 200, 103, 82, 250, 66, 234, 82, 117, 82, 149, 148, 148, 170, 99, 235 }, + { 234, 102, 170, 103, 234, 170, 104, 242, 121, 148, 106, 167, 115, 99, 86 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 492 520 + { 1, 0, 9, 57, 0, 0, 0, 0, 25, 34, 27, 20, 13, 21, 29, 26, 20, 36, 29, 37, 22, 30, 35, 36, 37, 45, 38, 38, 38 }, + { 1, 0, 17, 0, 57, 0, 35, 35, 25, 26, 27, 20, 28, 21, 21, 33, 27, 43, 36, 29, 37, 45, 34, 20, 29, 37, 37, 38, 38 }, + { 25, 0, 17, 33, 9, 2, 39, 39, 25, 11, 27, 20, 13, 21, 21, 26, 20, 21, 21, 37, 22, 22, 28, 29, 45, 30, 38, 38, 23 }, + { 9, 0, 9, 41, 0, 0, 35, 35, 25, 34, 27, 28, 13, 21, 29, 26, 35, 28, 21, 29, 22, 30, 27, 13, 37, 45, 38, 38, 38 }, + { 9, 10, 3, 0, 0, 0, 0, 0, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 10, 13, 13, 13, 7, 9, 9, 12, 13, 12, 10 }, + { 9, 5, 13, 0, 13, 0, 8, 8, 13, 13, 13, 13, 10, 10, 10, 10, 13, 13, 13, 13, 13, 13, 8, 9, 10, 10, 12, 13, 13 }, + { 9, 13, 13, 5, 0, 0, 0, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 10, 13, 12, 13, 9, 10, 10, 10, 12, 13, 13 }, + { 9, 5, 7, 0, 0, 0, 8, 8, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 12, 12, 12, 13, 13, 12 }, + { 4, 4, 4, 32, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 18, 11, 11, 4, 11, 4, 4, 18, 11, 11, 11, 18, 11, 4 }, + { 4, 32, 4, 4, 32, 4, 18, 18, 11, 11, 11, 4, 4, 11, 4, 11, 18, 18, 11, 11, 4, 11, 11, 18, 25, 11, 32, 25, 4 }, + { 18, 4, 11, 32, 25, 4, 4, 4, 11, 11, 4, 4, 11, 11, 4, 18, 11, 4, 4, 11, 4, 4, 11, 4, 11, 4, 4, 11, 4 }, + { 4, 4, 32, 32, 4, 4, 18, 18, 11, 18, 11, 18, 4, 11, 4, 18, 18, 25, 18, 11, 11, 4, 18, 18, 32, 18, 25, 25, 4 }, + { 82, 102, 232, 116, 116, 116, 116, 116, 85, 84, 120, 165, 98, 100, 134, 234, 217, 179, 117, 103, 115, 117, 116, 179, 101, 99, 86, 85, 170 }, + { 168, 250, 145, 222, 116, 116, 116, 116, 234, 234, 200, 150, 234, 250, 186, 234, 234, 234, 250, 234, 185, 138, 122, 101, 139, 235, 234, 235, 82 }, + { 81, 98, 64, 116, 150, 116, 119, 119, 67, 87, 87, 178, 99, 99, 218, 116, 194, 226, 131, 115, 90, 103, 163, 101, 101, 100, 99, 99, 117 }, + { 185, 252, 70, 116, 64, 116, 119, 119, 234, 154, 170, 234, 250, 250, 100, 250, 234, 234, 234, 233, 234, 201, 148, 117, 202, 249, 235, 234, 85 }, + { 81, 64, 74, 178, 116, 116, 116, 116, 87, 117, 186, 118, 85, 90, 218, 234, 233, 228, 249, 100, 86, 168, 131, 146, 99, 100, 99, 86, 132 }, + { 187, 234, 101, 248, 116, 116, 116, 116, 234, 234, 199, 234, 234, 234, 83, 234, 234, 235, 250, 234, 235, 84, 117, 153, 250, 250, 235, 233, 154 }, + { 81, 98, 227, 116, 116, 116, 116, 116, 67, 84, 100, 84, 100, 84, 164, 130, 194, 118, 178, 103, 89, 116, 99, 130, 129, 84, 84, 90, 214 }, + { 230, 252, 250, 116, 116, 116, 116, 116, 234, 234, 218, 234, 234, 186, 217, 234, 234, 234, 234, 202, 234, 234, 115, 100, 235, 235, 233, 234, 84 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 521 535 + { 9, 25, 27, 28, 13, 60, 45, 7, 28, 45, 38, 46, 46, 54, 62 }, + { 9, 25, 19, 4, 5, 21, 14, 22, 12, 6, 7, 53, 23, 23, 31 }, + { 40, 33, 27, 20, 13, 21, 29, 37, 36, 37, 45, 30, 38, 38, 46 }, + { 9, 25, 35, 28, 5, 37, 14, 30, 36, 45, 38, 23, 46, 62, 62 }, + { 12, 12, 12, 8, 4, 1, 1, 9, 8, 9, 4, 9, 10, 13, 8 }, + { 9, 12, 12, 9, 8, 4, 7, 5, 5, 9, 9, 5, 8, 4, 12 }, + { 13, 12, 12, 12, 9, 12, 13, 9, 8, 12, 8, 9, 12, 10, 12 }, + { 12, 13, 12, 9, 10, 7, 5, 13, 8, 7, 1, 10, 9, 3, 13 }, + { 4, 11, 32, 32, 18, 18, 4, 18, 11, 18, 4, 18, 25, 4, 32 }, + { 4, 4, 25, 25, 18, 4, 32, 4, 4, 32, 18, 32, 25, 11, 4 }, + { 18, 4, 11, 18, 11, 4, 4, 11, 4, 25, 11, 4, 11, 4, 4 }, + { 4, 18, 32, 18, 32, 11, 11, 4, 18, 4, 4, 4, 4, 4, 4 }, + { 86, 235, 178, 130, 147, 147, 147, 84, 180, 130, 180, 164, 234, 183, 116 }, + { 148, 235, 164, 169, 218, 251, 205, 185, 100, 117, 138, 82, 160, 144, 82 }, + { 81, 67, 113, 209, 98, 203, 99, 252, 131, 97, 100, 140, 200, 102, 219 }, + { 181, 219, 183, 151, 217, 205, 247, 99, 118, 183, 251, 98, 130, 232, 65 }, + { 64, 154, 163, 179, 131, 180, 148, 251, 101, 209, 132, 100, 131, 100, 165 }, + { 217, 235, 235, 235, 251, 235, 201, 145, 101, 219, 168, 251, 162, 99, 81 }, + { 68, 165, 88, 131, 247, 131, 236, 232, 99, 103, 121, 137, 131, 218, 103 }, + { 149, 185, 231, 218, 216, 116, 135, 66, 219, 197, 117, 115, 82, 196, 67 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 536 564 + { 25, 0, 0, 0, 0, 35, 35, 35, 25, 18, 19, 27, 12, 28, 36, 33, 27, 28, 36, 21, 29, 37, 27, 36, 37, 37, 30, 30, 38 }, + { 25, 0, 0, 0, 0, 35, 35, 35, 25, 18, 26, 27, 12, 20, 28, 26, 34, 35, 36, 36, 29, 37, 34, 28, 36, 29, 37, 30, 38 }, + { 25, 0, 9, 1, 0, 0, 0, 0, 25, 3, 11, 12, 12, 5, 13, 26, 27, 28, 21, 21, 29, 22, 20, 29, 37, 22, 30, 38, 23 }, + { 25, 17, 1, 0, 0, 35, 35, 35, 25, 18, 11, 27, 20, 28, 36, 33, 27, 28, 36, 21, 29, 37, 27, 28, 37, 45, 30, 22, 38 }, + { 6, 0, 9, 0, 0, 8, 8, 8, 13, 13, 13, 13, 13, 12, 13, 13, 10, 13, 13, 13, 13, 13, 9, 9, 10, 9, 12, 13, 13 }, + { 8, 0, 0, 0, 0, 8, 8, 8, 13, 13, 13, 10, 13, 10, 13, 10, 10, 13, 10, 13, 13, 13, 12, 10, 12, 10, 12, 13, 12 }, + { 9, 8, 0, 0, 0, 0, 0, 0, 13, 12, 13, 9, 13, 13, 13, 9, 10, 10, 10, 13, 13, 13, 9, 9, 10, 13, 13, 13, 12 }, + { 6, 0, 8, 0, 0, 8, 8, 8, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 13, 10, 12, 12, 13, 13, 13, 13 }, + { 4, 4, 25, 4, 4, 18, 18, 18, 11, 4, 11, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 11, 11, 18, 11, 11, 11, 4 }, + { 25, 25, 4, 4, 4, 18, 18, 18, 18, 18, 4, 11, 18, 4, 4, 18, 11, 25, 11, 18, 18, 11, 25, 25, 32, 25, 32, 32, 4 }, + { 11, 4, 32, 25, 4, 4, 4, 4, 11, 11, 4, 4, 11, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 18, 18, 18, 4 }, + { 11, 32, 4, 4, 4, 18, 18, 18, 18, 11, 11, 11, 11, 4, 4, 18, 25, 25, 18, 18, 11, 11, 18, 25, 32, 32, 32, 32, 11 }, + { 97, 116, 234, 116, 116, 119, 119, 119, 66, 102, 73, 85, 85, 73, 233, 106, 100, 83, 88, 212, 118, 233, 131, 100, 99, 115, 115, 99, 212 }, + { 219, 116, 81, 116, 116, 119, 119, 119, 234, 234, 234, 200, 201, 219, 88, 101, 250, 234, 218, 170, 234, 83, 105, 148, 250, 120, 232, 234, 85 }, + { 82, 116, 116, 116, 116, 119, 119, 119, 65, 83, 106, 90, 85, 90, 182, 82, 100, 100, 99, 101, 100, 131, 145, 98, 145, 102, 99, 99, 132 }, + { 252, 116, 116, 116, 116, 119, 119, 119, 217, 233, 215, 250, 184, 234, 104, 186, 200, 234, 250, 218, 234, 135, 165, 218, 234, 183, 235, 234, 139 }, + { 82, 201, 116, 116, 116, 116, 116, 116, 67, 68, 115, 84, 105, 83, 101, 85, 100, 86, 90, 132, 100, 101, 89, 99, 99, 99, 100, 85, 101 }, + { 185, 186, 236, 116, 116, 116, 116, 116, 185, 235, 218, 251, 233, 234, 122, 153, 234, 250, 250, 234, 234, 234, 135, 251, 250, 234, 184, 234, 235 }, + { 97, 116, 170, 116, 116, 116, 116, 116, 67, 84, 130, 86, 83, 87, 229, 84, 90, 90, 89, 117, 100, 137, 90, 90, 84, 90, 98, 130, 131 }, + { 166, 116, 187, 116, 116, 116, 116, 116, 186, 233, 234, 234, 168, 250, 90, 119, 234, 234, 234, 202, 234, 83, 116, 131, 234, 234, 184, 97, 133 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 565 579 + { 17, 33, 11, 27, 59, 6, 60, 14, 26, 36, 29, 53, 46, 15, 46 }, + { 25, 25, 11, 11, 5, 21, 52, 14, 18, 20, 29, 22, 54, 61, 31 }, + { 40, 33, 19, 12, 20, 5, 21, 37, 20, 29, 37, 22, 30, 30, 38 }, + { 17, 33, 11, 12, 59, 5, 45, 30, 26, 36, 29, 53, 46, 30, 31 }, + { 8, 8, 8, 6, 4, 4, 2, 12, 8, 8, 4, 8, 4, 8, 0 }, + { 12, 8, 4, 6, 6, 4, 8, 8, 8, 8, 2, 4, 3, 5, 13 }, + { 12, 12, 12, 9, 13, 13, 8, 12, 9, 12, 4, 9, 13, 10, 9 }, + { 9, 10, 8, 8, 13, 10, 4, 13, 10, 13, 8, 5, 10, 13, 8 }, + { 4, 4, 18, 18, 25, 25, 11, 18, 4, 18, 4, 32, 4, 32, 25 }, + { 4, 18, 18, 11, 4, 4, 32, 11, 11, 18, 4, 18, 25, 4, 4 }, + { 11, 11, 25, 11, 18, 32, 18, 4, 11, 32, 4, 18, 18, 4, 4 }, + { 4, 4, 11, 11, 32, 32, 4, 4, 18, 32, 4, 4, 25, 32, 32 }, + { 201, 86, 84, 210, 119, 245, 147, 184, 83, 226, 109, 105, 245, 98, 252 }, + { 116, 133, 234, 181, 147, 221, 236, 85, 235, 251, 237, 152, 155, 216, 116 }, + { 129, 82, 131, 178, 146, 100, 98, 119, 83, 98, 244, 202, 130, 194, 132 }, + { 217, 245, 202, 251, 251, 253, 218, 82, 248, 250, 168, 120, 184, 201, 64 }, + { 219, 67, 71, 83, 99, 129, 101, 120, 83, 82, 117, 131, 129, 178, 152 }, + { 179, 152, 235, 251, 167, 233, 252, 68, 251, 235, 189, 169, 218, 99, 81 }, + { 201, 85, 88, 83, 218, 232, 101, 165, 82, 81, 227, 244, 201, 129, 213 }, + { 106, 106, 235, 204, 114, 229, 103, 160, 249, 234, 236, 115, 234, 195, 82 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 580 608 + { 58, 35, 35, 35, 35, 35, 35, 35, 18, 26, 11, 19, 19, 12, 20, 26, 19, 35, 35, 28, 36, 29, 28, 36, 29, 29, 22, 22, 30 }, + { 57, 35, 35, 35, 35, 35, 35, 35, 18, 18, 26, 34, 27, 42, 12, 26, 19, 27, 20, 28, 28, 29, 27, 36, 36, 44, 37, 37, 38 }, + { 26, 35, 35, 35, 35, 35, 35, 35, 41, 26, 26, 11, 4, 4, 20, 11, 19, 12, 20, 28, 13, 29, 35, 36, 29, 29, 22, 22, 30 }, + { 57, 35, 0, 35, 35, 35, 35, 35, 18, 26, 11, 19, 19, 27, 20, 26, 19, 35, 35, 13, 21, 29, 43, 36, 29, 29, 22, 22, 30 }, + { 13, 8, 8, 8, 8, 8, 8, 8, 13, 13, 13, 13, 12, 13, 13, 12, 13, 13, 12, 13, 13, 13, 3, 10, 9, 12, 12, 13, 12 }, + { 0, 8, 8, 8, 8, 8, 8, 8, 8, 13, 13, 13, 13, 13, 13, 13, 13, 10, 13, 13, 13, 13, 3, 9, 9, 13, 13, 13, 13 }, + { 0, 8, 8, 8, 8, 8, 8, 8, 12, 12, 12, 13, 12, 13, 13, 10, 13, 13, 13, 13, 13, 13, 9, 10, 10, 9, 13, 13, 13 }, + { 12, 8, 0, 8, 8, 8, 8, 8, 12, 12, 13, 13, 13, 13, 13, 13, 12, 13, 12, 13, 13, 13, 9, 13, 13, 13, 13, 13, 12 }, + { 25, 18, 18, 18, 18, 18, 18, 18, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 4, 18, 11, 18, 4 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 11, 4, 11, 4, 4, 4, 4, 4, 4, 18, 11, 18, 4, 4, 11, 18, 25, 25, 25, 11 }, + { 4, 18, 18, 18, 18, 18, 18, 18, 25, 18, 11, 18, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 11 }, + { 11, 18, 4, 18, 18, 18, 18, 18, 18, 4, 11, 4, 11, 4, 4, 4, 4, 11, 11, 11, 18, 11, 11, 18, 25, 32, 32, 18, 4 }, + { 64, 119, 119, 119, 119, 119, 119, 119, 65, 68, 85, 117, 231, 136, 201, 167, 201, 103, 235, 234, 234, 234, 117, 118, 148, 186, 180, 138, 235 }, + { 234, 119, 119, 119, 119, 119, 119, 119, 200, 233, 233, 234, 235, 234, 199, 88, 101, 218, 107, 231, 218, 131, 153, 148, 251, 107, 219, 202, 84 }, + { 187, 119, 119, 119, 119, 119, 119, 119, 83, 67, 185, 218, 226, 234, 215, 121, 118, 150, 103, 153, 217, 233, 138, 107, 133, 180, 115, 118, 195 }, + { 135, 119, 119, 119, 119, 119, 119, 119, 252, 234, 217, 232, 234, 202, 234, 179, 118, 201, 234, 218, 233, 234, 120, 251, 248, 200, 234, 234, 234 }, + { 254, 119, 119, 119, 119, 119, 119, 119, 136, 148, 235, 234, 85, 103, 202, 87, 233, 164, 234, 218, 170, 234, 122, 150, 148, 218, 117, 197, 234 }, + { 126, 119, 119, 119, 119, 119, 119, 119, 195, 219, 118, 201, 235, 234, 218, 149, 102, 234, 234, 234, 234, 119, 100, 116, 202, 103, 234, 234, 82 }, + { 152, 119, 116, 119, 119, 119, 116, 119, 67, 68, 130, 147, 230, 234, 233, 137, 118, 162, 203, 211, 102, 218, 88, 102, 106, 131, 117, 138, 198 }, + { 132, 119, 116, 119, 119, 119, 116, 119, 216, 155, 233, 186, 218, 234, 170, 90, 165, 234, 187, 234, 234, 120, 216, 152, 234, 233, 233, 234, 86 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 609 623 + { 56, 10, 11, 34, 27, 11, 35, 13, 41, 34, 4, 20, 13, 36, 22 }, + { 3, 57, 10, 3, 19, 3, 27, 44, 10, 11, 43, 34, 21, 21, 37 }, + { 11, 18, 11, 11, 35, 20, 5, 21, 20, 13, 21, 29, 14, 22, 30 }, + { 17, 18, 26, 3, 19, 4, 20, 5, 18, 11, 27, 20, 5, 44, 14 }, + { 0, 3, 13, 13, 13, 4, 12, 7, 6, 12, 13, 13, 13, 10, 13 }, + { 0, 13, 9, 12, 13, 13, 3, 10, 13, 8, 13, 13, 13, 13, 13 }, + { 13, 12, 13, 7, 13, 13, 13, 12, 10, 13, 12, 13, 13, 10, 13 }, + { 13, 13, 13, 12, 10, 2, 13, 12, 8, 7, 13, 13, 13, 12, 13 }, + { 18, 4, 32, 18, 11, 4, 4, 32, 4, 32, 4, 4, 4, 11, 4 }, + { 32, 18, 18, 32, 4, 4, 4, 25, 4, 4, 11, 4, 4, 4, 4 }, + { 32, 11, 11, 4, 4, 18, 25, 4, 11, 18, 4, 18, 18, 4, 11 }, + { 4, 18, 4, 11, 32, 11, 4, 25, 4, 4, 18, 11, 4, 25, 25 }, + { 233, 168, 81, 72, 209, 172, 186, 231, 105, 150, 118, 179, 169, 250, 115 }, + { 148, 163, 231, 198, 218, 102, 216, 209, 131, 235, 218, 234, 234, 249, 202 }, + { 116, 149, 97, 167, 73, 234, 193, 250, 199, 130, 199, 233, 146, 167, 185 }, + { 116, 184, 251, 234, 234, 153, 218, 86, 183, 202, 234, 200, 201, 218, 136 }, + { 103, 116, 226, 217, 218, 163, 86, 203, 114, 179, 235, 202, 117, 210, 234 }, + { 193, 195, 103, 101, 216, 131, 234, 91, 250, 202, 179, 226, 101, 250, 113 }, + { 163, 97, 154, 185, 178, 194, 149, 233, 83, 100, 170, 199, 234, 219, 218 }, + { 218, 166, 120, 195, 213, 234, 182, 88, 252, 200, 233, 234, 234, 200, 233 }, + }), +}; +#else +const CtxSet ContextSetCfg::GtxFlagL[4] = { + ContextSetCfg::addCtxSet({ + { 17, 0, 0, 0, 0, 0, 0, 17, 25, 25, 26, 9, 25, 18, 26, 12, 18, 26, 12, 20, 37 }, + { 1, 0, 0, 0, 0, 35, 0, 9, 25, 25, 18, 9, 25, 33, 26, 20, 18, 26, 12, 20, 22 }, + { 1, 0, 0, 0, 0, 0, 1, 17, 17, 25, 18, 17, 25, 18, 26, 12, 33, 19, 20, 28, 14 }, + { 17, 0, 0, 0, 0, 0, 0, 17, 25, 25, 26, 9, 25, 18, 26, 12, 18, 26, 12, 20, 37 }, + { 4, 0, 0, 0, 0, 0, 12, 9, 13, 13, 6, 12, 10, 9, 9, 6, 9, 8, 5, 8, 9 }, + { 4, 0, 0, 0, 0, 8, 13, 12, 13, 13, 5, 13, 10, 9, 10, 9, 9, 4, 8, 8, 9 }, + { 4, 0, 0, 0, 0, 0, 12, 8, 12, 13, 6, 9, 10, 9, 10, 9, 6, 9, 10, 10, 9 }, + { 4, 0, 0, 0, 0, 0, 12, 9, 13, 13, 6, 12, 10, 9, 9, 6, 9, 8, 5, 8, 9 }, + { 18, 25, 25, 25, 4, 4, 11, 11, 18, 11, 11, 4, 4, 11, 4, 4, 18, 25, 11, 11, 4 }, + { 4, 25, 25, 25, 4, 18, 18, 4, 11, 25, 4, 4, 4, 4, 11, 4, 18, 4, 25, 18, 4 }, + { 4, 25, 25, 25, 4, 4, 25, 4, 4, 18, 4, 4, 4, 4, 4, 4, 4, 18, 18, 18, 4 }, + { 18, 25, 25, 25, 4, 4, 11, 11, 18, 11, 11, 4, 4, 11, 4, 4, 18, 25, 11, 11, 4 }, + { 99, 116, 116, 116, 116, 116, 66, 81, 65, 147, 100, 87, 121, 148, 132, 122, 118, 252, 155, 220, 118 }, + { 149, 116, 116, 116, 116, 116, 181, 215, 184, 103, 133, 132, 105, 118, 103, 104, 104, 100, 101, 86, 122 }, + { 99, 116, 116, 116, 116, 119, 66, 68, 66, 83, 100, 103, 138, 235, 242, 100, 235, 253, 252, 252, 123 }, + { 168, 116, 116, 116, 116, 119, 135, 151, 234, 234, 121, 103, 106, 132, 134, 100, 100, 101, 101, 115, 101 }, + { 99, 116, 116, 116, 116, 116, 65, 83, 99, 89, 123, 82, 90, 102, 194, 147, 107, 117, 103, 104, 118 }, + { 171, 116, 116, 116, 116, 116, 154, 156, 229, 117, 116, 149, 122, 136, 133, 102, 119, 116, 122, 121, 117 }, + { 99, 116, 116, 116, 116, 116, 66, 81, 65, 147, 100, 87, 121, 148, 132, 122, 118, 252, 155, 220, 118 }, + { 149, 116, 116, 116, 116, 116, 181, 215, 184, 103, 133, 132, 105, 118, 103, 104, 104, 100, 101, 86, 122 }, + }), + ContextSetCfg::addCtxSet({ + { 17, 9, 25, 25, 41, 4, 17, 33, 34, 36, 45 }, + { 1, 1, 17, 10, 18, 4, 17, 33, 19, 43, 14 }, + { 0, 1, 25, 33, 18, 19, 18, 19, 20, 28, 14 }, + { 17, 9, 25, 25, 41, 4, 17, 33, 34, 36, 45 }, + { 4, 9, 12, 8, 9, 4, 5, 5, 10, 6, 12 }, + { 5, 9, 12, 8, 12, 5, 5, 10, 5, 3, 7 }, + { 13, 12, 12, 8, 10, 5, 5, 5, 9, 8, 8 }, + { 4, 9, 12, 8, 9, 4, 5, 5, 10, 6, 12 }, + { 25, 18, 25, 18, 25, 11, 4, 4, 18, 11, 25 }, + { 4, 11, 25, 25, 25, 4, 4, 18, 11, 4, 4 }, + { 4, 25, 25, 18, 18, 4, 4, 4, 25, 18, 4 }, + { 25, 18, 25, 18, 25, 11, 4, 4, 18, 11, 25 }, + { 99, 82, 65, 150, 226, 116, 98, 99, 210, 100, 115 }, + { 122, 148, 232, 107, 155, 103, 134, 124, 250, 203, 234 }, + { 98, 83, 81, 82, 225, 132, 98, 85, 100, 116, 119 }, + { 252, 120, 120, 234, 164, 101, 185, 137, 203, 138, 129 }, + { 183, 66, 65, 102, 98, 122, 99, 101, 114, 101, 116 }, + { 122, 148, 154, 120, 150, 103, 119, 119, 155, 120, 200 }, + { 99, 82, 65, 150, 226, 116, 98, 99, 210, 100, 115 }, + { 122, 148, 232, 107, 155, 103, 134, 124, 250, 203, 234 }, + }), + ContextSetCfg::addCtxSet({ + { 9, 17, 2, 10, 19, 0, 25, 34, 27, 28, 29, 26, 20, 36, 29, 22, 35, 29, 37, 45, 38 }, + { 1, 1, 17, 0, 20, 0, 25, 34, 27, 28, 29, 19, 28, 36, 29, 22, 20, 36, 30, 45, 38 }, + { 25, 0, 25, 33, 2, 2, 25, 11, 27, 20, 21, 26, 20, 36, 21, 22, 28, 29, 45, 30, 23 }, + { 9, 17, 2, 10, 19, 0, 25, 34, 27, 28, 29, 26, 20, 36, 29, 22, 35, 29, 37, 45, 38 }, + { 9, 4, 7, 2, 0, 0, 13, 13, 13, 13, 10, 13, 10, 13, 10, 10, 6, 9, 9, 12, 13 }, + { 9, 4, 7, 13, 0, 0, 13, 13, 13, 12, 13, 13, 10, 13, 10, 10, 9, 8, 9, 8, 13 }, + { 9, 12, 10, 13, 13, 0, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 9, 10, 10, 10, 13 }, + { 9, 4, 7, 2, 0, 0, 13, 13, 13, 13, 10, 13, 10, 13, 10, 10, 6, 9, 9, 12, 13 }, + { 4, 11, 25, 25, 25, 4, 4, 11, 11, 11, 4, 18, 4, 11, 4, 4, 18, 11, 11, 11, 11 }, + { 4, 11, 25, 25, 4, 4, 4, 4, 11, 18, 18, 18, 4, 4, 4, 4, 25, 18, 4, 4, 11 }, + { 18, 4, 25, 11, 4, 25, 11, 11, 4, 4, 4, 18, 11, 11, 4, 4, 11, 11, 11, 4, 4 }, + { 4, 11, 25, 25, 25, 4, 4, 11, 11, 11, 4, 18, 4, 11, 4, 4, 18, 11, 11, 11, 11 }, + { 84, 99, 97, 114, 116, 116, 105, 106, 152, 90, 99, 234, 250, 197, 163, 133, 155, 245, 154, 166, 169 }, + { 148, 253, 208, 220, 116, 116, 200, 234, 197, 217, 234, 201, 149, 234, 250, 103, 107, 100, 85, 115, 70 }, + { 87, 99, 103, 64, 116, 116, 105, 102, 131, 90, 87, 234, 250, 182, 136, 122, 250, 235, 214, 202, 153 }, + { 180, 136, 216, 185, 116, 116, 234, 234, 234, 235, 234, 234, 234, 216, 186, 106, 99, 89, 115, 87, 72 }, + { 82, 97, 80, 215, 122, 116, 90, 117, 148, 227, 131, 234, 213, 227, 196, 106, 131, 117, 115, 116, 117 }, + { 137, 198, 217, 201, 168, 116, 234, 233, 197, 202, 234, 234, 234, 234, 202, 154, 117, 120, 234, 234, 185 }, + { 84, 99, 97, 114, 116, 116, 105, 106, 152, 90, 99, 234, 250, 197, 163, 133, 155, 245, 154, 166, 169 }, + { 148, 253, 208, 220, 116, 116, 200, 234, 197, 217, 234, 201, 149, 234, 250, 103, 107, 100, 85, 115, 70 }, + }), + ContextSetCfg::addCtxSet({ + { 9, 18, 27, 36, 13, 37, 43, 45, 53, 46, 46 }, + { 9, 25, 27, 20, 13, 14, 20, 22, 30, 30, 23 }, + { 40, 33, 27, 20, 13, 29, 36, 37, 45, 30, 46 }, + { 9, 18, 27, 36, 13, 37, 43, 45, 53, 46, 46 }, + { 9, 12, 12, 8, 12, 8, 9, 8, 5, 10, 9 }, + { 12, 13, 12, 8, 5, 13, 5, 9, 4, 0, 13 }, + { 13, 13, 12, 12, 9, 10, 8, 12, 8, 12, 13 }, + { 9, 12, 12, 8, 12, 8, 9, 8, 5, 10, 9 }, + { 4, 18, 25, 18, 25, 25, 25, 11, 11, 18, 18 }, + { 4, 18, 25, 25, 25, 18, 11, 25, 18, 4, 18 }, + { 25, 11, 11, 25, 11, 11, 4, 25, 4, 25, 18 }, + { 4, 18, 25, 18, 25, 25, 25, 11, 11, 18, 18 }, + { 103, 83, 131, 147, 210, 211, 117, 243, 119, 178, 212 }, + { 132, 134, 148, 252, 186, 108, 115, 252, 115, 250, 81 }, + { 87, 228, 225, 114, 146, 101, 135, 225, 148, 136, 231 }, + { 148, 151, 235, 251, 220, 150, 116, 181, 107, 132, 210 }, + { 64, 211, 179, 131, 100, 137, 102, 130, 148, 162, 120 }, + { 134, 234, 235, 138, 251, 100, 108, 235, 103, 182, 104 }, + { 103, 83, 131, 147, 210, 211, 117, 243, 119, 178, 212 }, + { 132, 134, 148, 252, 186, 108, 115, 252, 115, 250, 81 }, + }), +}; +#endif + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::SigFlag[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 624 641 + { 17, 41, 27, 44, 37, 30, 9, 42, 43, 37, 45, 30, 33, 59, 51, 45, 30, 38 }, + { 17, 41, 42, 28, 37, 30, 40, 49, 35, 29, 45, 30, 33, 59, 51, 22, 30, 38 }, + { 25, 19, 20, 14, 22, 30, 18, 28, 29, 30, 30, 38, 26, 45, 30, 38, 38, 38 }, + { 17, 41, 42, 36, 37, 30, 9, 42, 43, 37, 45, 30, 33, 59, 51, 45, 30, 38 }, + { 13, 9, 9, 9, 10, 10, 9, 9, 10, 10, 10, 9, 8, 9, 9, 9, 10, 9 }, + { 13, 9, 9, 10, 10, 13, 9, 10, 10, 10, 10, 13, 8, 9, 9, 9, 10, 10 }, + { 13, 9, 9, 10, 13, 10, 9, 9, 9, 13, 13, 13, 8, 9, 10, 10, 10, 9 }, + { 13, 9, 9, 10, 10, 10, 9, 10, 10, 10, 10, 10, 8, 9, 9, 9, 10, 9 }, + { 4, 4, 18, 4, 4, 4, 11, 11, 18, 4, 4, 4, 11, 18, 18, 4, 11, 4 }, + { 4, 4, 18, 18, 4, 18, 18, 18, 18, 4, 4, 11, 18, 18, 18, 4, 4, 11 }, + { 11, 11, 18, 4, 4, 4, 18, 4, 4, 11, 4, 4, 11, 18, 11, 4, 4, 4 }, + { 4, 4, 18, 11, 4, 4, 11, 18, 18, 4, 4, 4, 11, 18, 18, 4, 4, 4 }, + { 82, 123, 118, 116, 250, 249, 137, 163, 117, 115, 136, 250, 117, 131, 116, 116, 151, 251 }, + { 121, 148, 116, 119, 99, 83, 211, 243, 115, 250, 103, 83, 196, 121, 117, 136, 90, 82 }, + { 67, 116, 116, 116, 169, 120, 106, 105, 114, 106, 134, 122, 106, 131, 116, 107, 134, 167 }, + { 150, 244, 117, 122, 102, 87, 123, 117, 116, 137, 104, 71, 118, 123, 118, 122, 114, 82 }, + { 98, 117, 118, 115, 118, 153, 89, 195, 243, 101, 137, 199, 116, 116, 162, 118, 135, 251 }, + { 148, 133, 117, 154, 105, 90, 122, 120, 122, 234, 89, 68, 118, 118, 244, 122, 90, 82 }, + { 67, 105, 116, 146, 135, 250, 101, 106, 103, 102, 135, 202, 104, 131, 116, 103, 213, 251 }, + { 197, 133, 117, 163, 103, 88, 117, 120, 116, 249, 104, 83, 118, 123, 119, 136, 87, 83 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 642 653 + { 25, 27, 43, 44, 45, 38, 33, 45, 45, 30, 38, 31 }, + { 18, 19, 28, 14, 22, 15, 26, 45, 37, 14, 15, 54 }, + { 25, 35, 28, 29, 37, 30, 26, 53, 53, 46, 46, 46 }, + { 25, 35, 51, 52, 45, 30, 41, 45, 45, 30, 46, 31 }, + { 12, 13, 9, 13, 13, 13, 4, 1, 8, 5, 8, 12 }, + { 12, 13, 13, 13, 13, 13, 5, 4, 8, 9, 13, 8 }, + { 12, 12, 9, 9, 12, 9, 4, 5, 8, 8, 8, 8 }, + { 12, 8, 8, 9, 13, 13, 4, 1, 8, 4, 8, 12 }, + { 18, 18, 11, 18, 18, 11, 11, 4, 18, 4, 32, 32 }, + { 11, 11, 11, 11, 18, 11, 4, 4, 11, 18, 32, 32 }, + { 18, 18, 11, 4, 11, 4, 4, 4, 11, 11, 4, 4 }, + { 18, 4, 4, 4, 18, 4, 4, 4, 18, 4, 18, 11 }, + { 68, 98, 147, 122, 234, 215, 116, 148, 100, 147, 108, 186 }, + { 118, 131, 118, 100, 82, 67, 118, 123, 137, 235, 242, 65 }, + { 66, 115, 163, 149, 217, 153, 115, 196, 116, 117, 193, 105 }, + { 213, 132, 132, 162, 83, 89, 120, 109, 149, 118, 128, 82 }, + { 114, 101, 116, 103, 196, 118, 100, 132, 211, 116, 180, 252 }, + { 103, 164, 123, 152, 101, 185, 125, 105, 251, 236, 170, 82 }, + { 67, 90, 116, 211, 234, 200, 101, 118, 131, 101, 117, 85 }, + { 117, 181, 150, 134, 89, 67, 118, 125, 165, 108, 107, 215 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 654 671 + { 26, 45, 53, 46, 46, 46, 26, 54, 61, 39, 39, 39, 33, 39, 39, 39, 39, 39 }, + { 26, 38, 38, 46, 46, 46, 48, 54, 54, 39, 39, 39, 33, 39, 39, 39, 39, 39 }, + { 26, 38, 46, 54, 54, 54, 18, 39, 39, 39, 39, 39, 28, 39, 39, 39, 39, 39 }, + { 26, 45, 53, 46, 46, 46, 26, 54, 61, 39, 39, 39, 49, 39, 39, 39, 39, 39 }, + { 8, 13, 12, 8, 8, 8, 8, 8, 8, 4, 0, 4, 0, 0, 0, 0, 0, 0 }, + { 9, 13, 13, 8, 8, 8, 8, 8, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0 }, + { 12, 13, 12, 8, 8, 8, 8, 4, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0 }, + { 9, 13, 12, 8, 8, 8, 8, 8, 8, 4, 4, 1, 0, 0, 0, 0, 0, 0 }, + { 4, 4, 18, 18, 18, 18, 18, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 4, 11, 25, 11, 11, 18, 18, 25, 32, 32, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 18, 4, 18, 4, 4, 4, 18, 32, 25, 25, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 4, 4, 18, 18, 18, 18, 18, 32, 25, 32, 32, 18, 32, 32, 32, 32, 32, 32 }, + { 108, 234, 218, 252, 252, 252, 131, 252, 252, 173, 254, 251, 116, 253, 116, 116, 252, 238 }, + { 123, 234, 123, 84, 82, 82, 103, 210, 82, 99, 116, 102, 132, 116, 116, 116, 116, 116 }, + { 118, 234, 232, 252, 219, 218, 227, 246, 251, 167, 236, 234, 116, 237, 116, 235, 238, 235 }, + { 123, 234, 152, 85, 98, 82, 108, 180, 226, 99, 99, 99, 148, 116, 116, 116, 116, 116 }, + { 118, 234, 235, 252, 252, 219, 101, 253, 254, 254, 202, 254, 115, 254, 254, 253, 251, 254 }, + { 118, 218, 122, 85, 83, 82, 105, 115, 116, 116, 116, 116, 147, 116, 116, 116, 116, 116 }, + { 243, 234, 235, 234, 252, 171, 103, 252, 250, 247, 253, 180, 116, 237, 116, 134, 116, 253 }, + { 123, 234, 151, 85, 82, 82, 108, 195, 146, 99, 99, 115, 132, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 672 683 + { 25, 30, 38, 31, 31, 31, 3, 39, 39, 39, 39, 39 }, + { 26, 38, 53, 54, 54, 62, 20, 39, 39, 39, 39, 39 }, + { 18, 46, 38, 39, 39, 39, 59, 39, 39, 39, 39, 39 }, + { 25, 30, 38, 31, 31, 62, 4, 39, 39, 39, 39, 39 }, + { 8, 12, 12, 8, 8, 8, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 12, 8, 1, 12, 0, 0, 0, 0, 0, 13 }, + { 8, 12, 12, 4, 4, 4, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 13, 5, 13, 2, 0, 0, 0, 0, 0, 0 }, + { 18, 11, 11, 11, 11, 32, 32, 32, 32, 32, 32, 32 }, + { 11, 4, 25, 32, 11, 4, 32, 32, 32, 32, 32, 32 }, + { 18, 11, 18, 4, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 25, 11, 18, 4, 32, 18, 32, 32, 32, 32, 32, 32 }, + { 100, 235, 219, 219, 166, 220, 116, 254, 187, 238, 238, 116 }, + { 118, 133, 194, 83, 83, 82, 117, 116, 116, 116, 116, 116 }, + { 131, 219, 219, 182, 228, 219, 116, 253, 237, 235, 116, 199 }, + { 106, 171, 75, 85, 115, 65, 132, 116, 116, 116, 116, 64 }, + { 115, 235, 235, 138, 133, 252, 116, 253, 254, 253, 252, 150 }, + { 117, 200, 145, 99, 99, 179, 228, 116, 116, 116, 116, 116 }, + { 99, 122, 147, 252, 199, 231, 116, 254, 235, 253, 235, 235 }, + { 117, 152, 152, 164, 65, 114, 136, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 684 701 + { 26, 62, 39, 39, 39, 39, 34, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 19, 39, 54, 39, 39, 39, 19, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 18, 39, 39, 39, 39, 39, 11, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 26, 62, 39, 39, 39, 39, 34, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 8, 8, 8, 12, 12, 13, 8, 4, 4, 1, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 8, 12, 13, 12, 8, 4, 4, 0, 0, 4, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 12, 12, 12, 12, 8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 8, 12, 12, 13, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 18, 32, 25, 32, 32, 25, 25, 32, 32, 32, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 18, 25, 32, 25, 25, 32, 18, 32, 32, 32, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 18, 25, 25, 25, 25, 25, 18, 32, 32, 32, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 18, 32, 32, 32, 25, 32, 18, 25, 32, 32, 25, 32, 25, 32, 32, 32, 32, 32 }, + { 116, 252, 252, 235, 235, 234, 101, 252, 203, 253, 254, 253, 116, 116, 116, 235, 116, 116 }, + { 119, 82, 82, 65, 65, 66, 117, 99, 99, 115, 116, 116, 253, 116, 116, 116, 116, 116 }, + { 121, 252, 252, 235, 211, 235, 147, 253, 200, 251, 254, 251, 116, 237, 116, 116, 116, 235 }, + { 120, 98, 82, 65, 80, 65, 117, 99, 99, 116, 116, 99, 252, 116, 116, 116, 116, 116 }, + { 135, 252, 235, 235, 235, 234, 131, 253, 236, 238, 254, 235, 116, 238, 251, 252, 253, 253 }, + { 117, 82, 65, 70, 72, 73, 117, 116, 116, 116, 116, 99, 254, 116, 116, 116, 116, 116 }, + { 118, 252, 252, 235, 235, 215, 131, 205, 252, 246, 253, 254, 116, 116, 116, 238, 253, 235 }, + { 120, 82, 82, 65, 65, 65, 117, 99, 99, 99, 116, 116, 253, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 702 713 + { 25, 38, 54, 39, 39, 39, 10, 39, 39, 39, 39, 39 }, + { 26, 38, 54, 62, 62, 39, 10, 39, 39, 39, 39, 39 }, + { 18, 39, 39, 39, 39, 39, 2, 39, 39, 39, 39, 39 }, + { 18, 38, 54, 39, 39, 62, 10, 39, 39, 39, 39, 39 }, + { 8, 12, 12, 12, 8, 12, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 12, 9, 5, 4, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 4, 12, 12, 12, 8, 8, 0, 0, 0, 0, 0, 0 }, + { 18, 25, 25, 18, 4, 4, 25, 32, 32, 32, 32, 25 }, + { 18, 25, 25, 25, 18, 11, 25, 32, 32, 32, 25, 32 }, + { 25, 32, 25, 18, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 18, 18, 11, 11, 32, 18, 25, 32, 32, 32, 32, 32 }, + { 84, 235, 234, 218, 185, 235, 118, 116, 164, 251, 236, 252 }, + { 196, 219, 130, 117, 86, 135, 116, 116, 116, 116, 116, 116 }, + { 114, 219, 218, 251, 252, 253, 116, 237, 238, 116, 116, 116 }, + { 117, 218, 85, 147, 98, 115, 123, 116, 116, 116, 116, 116 }, + { 242, 252, 252, 253, 252, 254, 116, 251, 254, 254, 238, 235 }, + { 116, 164, 82, 99, 116, 117, 153, 116, 116, 116, 116, 116 }, + { 115, 216, 218, 235, 251, 252, 116, 253, 254, 238, 116, 235 }, + { 123, 219, 163, 232, 104, 83, 116, 116, 116, 116, 116, 116 }, + }), +}; +#else +const CtxSet ContextSetCfg::SigFlag[6] = { + ContextSetCfg::addCtxSet({ + { 17, 41, 42, 29, 9, 42, 28, 37, 33, 59, 51, 45 }, + { 17, 41, 42, 29, 25, 42, 43, 37, 33, 59, 51, 30 }, + { 25, 19, 20, 14, 33, 28, 29, 30, 26, 45, 30, 38 }, + { 17, 41, 42, 29, 9, 42, 28, 37, 33, 59, 51, 45 }, + { 13, 9, 9, 10, 9, 10, 9, 10, 8, 9, 9, 9 }, + { 13, 9, 9, 10, 9, 10, 10, 10, 8, 9, 9, 9 }, + { 13, 9, 9, 10, 10, 9, 9, 13, 8, 9, 10, 10 }, + { 13, 9, 9, 10, 9, 10, 9, 10, 8, 9, 9, 9 }, + { 11, 11, 18, 18, 11, 18, 18, 11, 11, 18, 18, 11 }, + { 11, 11, 18, 18, 18, 18, 18, 11, 11, 18, 18, 4 }, + { 18, 11, 18, 11, 18, 11, 11, 11, 11, 18, 18, 11 }, + { 11, 11, 18, 18, 11, 18, 18, 11, 11, 18, 18, 11 }, + { 73, 118, 117, 117, 105, 106, 116, 122, 108, 147, 117, 117 }, + { 134, 228, 117, 119, 117, 121, 117, 116, 212, 119, 118, 103 }, + { 73, 107, 131, 116, 107, 115, 115, 120, 148, 147, 117, 132 }, + { 134, 244, 117, 117, 119, 122, 116, 117, 180, 118, 117, 116 }, + { 89, 117, 117, 147, 99, 116, 179, 118, 164, 131, 115, 133 }, + { 195, 133, 117, 131, 119, 134, 122, 122, 196, 139, 250, 99 }, + { 73, 118, 117, 117, 105, 106, 116, 122, 108, 147, 117, 117 }, + { 134, 228, 117, 119, 117, 121, 117, 116, 212, 119, 118, 103 }, + }), + ContextSetCfg::addCtxSet({ + { 25, 27, 43, 37, 33, 60, 60, 38 }, + { 18, 27, 28, 22, 34, 45, 45, 38 }, + { 25, 35, 28, 37, 26, 53, 53, 46 }, + { 25, 27, 43, 37, 33, 60, 60, 38 }, + { 8, 13, 9, 12, 5, 4, 8, 8 }, + { 12, 13, 13, 12, 6, 5, 8, 8 }, + { 12, 12, 9, 9, 4, 5, 8, 8 }, + { 8, 13, 9, 12, 5, 4, 8, 8 }, + { 4, 25, 11, 18, 18, 11, 18, 18 }, + { 11, 18, 18, 4, 11, 11, 18, 18 }, + { 18, 18, 11, 4, 4, 4, 4, 4 }, + { 4, 25, 11, 18, 18, 11, 18, 18 }, + { 89, 101, 116, 122, 131, 148, 211, 117 }, + { 149, 115, 118, 100, 118, 117, 119, 137 }, + { 82, 105, 118, 151, 115, 243, 117, 117 }, + { 118, 120, 117, 103, 122, 108, 121, 236 }, + { 130, 100, 227, 179, 109, 164, 116, 133 }, + { 195, 148, 123, 135, 120, 107, 252, 236 }, + { 89, 101, 116, 122, 131, 148, 211, 117 }, + { 149, 115, 118, 100, 118, 117, 119, 137 }, + }), + ContextSetCfg::addCtxSet({ + { 26, 45, 53, 46, 26, 54, 61, 39, 34, 39, 39, 39 }, + { 26, 38, 38, 46, 34, 54, 54, 39, 5, 39, 39, 39 }, + { 26, 38, 46, 54, 26, 39, 39, 39, 20, 39, 39, 39 }, + { 26, 45, 53, 46, 26, 54, 61, 39, 34, 39, 39, 39 }, + { 9, 13, 12, 8, 8, 8, 8, 4, 0, 0, 0, 0 }, + { 9, 13, 12, 8, 8, 8, 8, 4, 0, 0, 0, 0 }, + { 9, 13, 12, 8, 8, 4, 4, 0, 4, 0, 0, 0 }, + { 9, 13, 12, 8, 8, 8, 8, 4, 0, 0, 0, 0 }, + { 11, 4, 18, 18, 18, 25, 25, 18, 18, 25, 25, 25 }, + { 4, 11, 25, 11, 18, 25, 25, 25, 25, 25, 25, 25 }, + { 11, 4, 18, 4, 18, 18, 25, 18, 25, 25, 25, 25 }, + { 11, 4, 18, 18, 18, 25, 25, 18, 18, 25, 25, 25 }, + { 117, 234, 201, 218, 116, 247, 184, 170, 116, 238, 238, 253 }, + { 123, 234, 123, 84, 117, 163, 178, 99, 148, 116, 116, 116 }, + { 132, 234, 234, 236, 116, 246, 170, 198, 116, 237, 237, 237 }, + { 133, 234, 137, 85, 117, 243, 131, 99, 244, 116, 116, 116 }, + { 118, 234, 235, 252, 116, 220, 188, 173, 147, 238, 237, 124 }, + { 123, 234, 228, 85, 117, 196, 99, 116, 243, 116, 116, 116 }, + { 117, 234, 201, 218, 116, 247, 184, 170, 116, 238, 238, 253 }, + { 123, 234, 123, 84, 117, 163, 178, 99, 148, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 33, 45, 38, 31, 11, 39, 39, 39 }, + { 26, 38, 53, 54, 29, 39, 39, 39 }, + { 18, 46, 38, 39, 59, 39, 39, 39 }, + { 33, 45, 38, 31, 11, 39, 39, 39 }, + { 8, 12, 12, 12, 0, 0, 0, 0 }, + { 8, 12, 12, 8, 0, 0, 0, 0 }, + { 8, 12, 12, 8, 0, 0, 0, 0 }, + { 8, 12, 12, 12, 0, 0, 0, 0 }, + { 18, 18, 18, 25, 25, 25, 25, 25 }, + { 11, 4, 18, 4, 25, 25, 25, 25 }, + { 18, 11, 18, 25, 25, 25, 25, 25 }, + { 18, 18, 18, 25, 25, 25, 25, 25 }, + { 100, 235, 235, 170, 132, 248, 254, 138 }, + { 117, 187, 179, 85, 135, 116, 132, 116 }, + { 227, 235, 235, 183, 132, 236, 238, 142 }, + { 117, 235, 98, 90, 138, 116, 116, 116 }, + { 132, 235, 235, 216, 116, 254, 253, 157 }, + { 107, 235, 98, 101, 228, 116, 116, 116 }, + { 100, 235, 235, 170, 132, 248, 254, 138 }, + { 117, 187, 179, 85, 135, 116, 132, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 26, 54, 39, 39, 26, 39, 39, 39, 0, 39, 39, 39 }, + { 19, 39, 54, 39, 19, 39, 39, 39, 40, 39, 39, 39 }, + { 18, 39, 39, 39, 11, 39, 39, 39, 0, 39, 39, 39 }, + { 26, 54, 39, 39, 26, 39, 39, 39, 0, 39, 39, 39 }, + { 8, 8, 8, 12, 8, 4, 4, 4, 0, 0, 0, 0 }, + { 8, 8, 8, 12, 8, 4, 4, 4, 0, 0, 0, 0 }, + { 8, 8, 12, 12, 8, 0, 0, 4, 0, 0, 0, 0 }, + { 8, 8, 8, 12, 8, 4, 4, 4, 0, 0, 0, 0 }, + { 18, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25 }, + { 18, 25, 25, 25, 18, 18, 25, 25, 25, 25, 25, 25 }, + { 18, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25 }, + { 18, 25, 25, 25, 18, 25, 25, 25, 25, 25, 25, 25 }, + { 117, 252, 252, 235, 116, 253, 153, 246, 116, 116, 116, 124 }, + { 119, 98, 86, 82, 117, 99, 99, 99, 141, 116, 116, 116 }, + { 118, 234, 252, 235, 116, 253, 229, 188, 116, 116, 116, 235 }, + { 121, 98, 92, 82, 117, 99, 99, 99, 197, 116, 116, 116 }, + { 124, 252, 235, 235, 132, 249, 189, 172, 116, 235, 235, 253 }, + { 118, 130, 98, 75, 116, 116, 116, 99, 139, 116, 116, 116 }, + { 117, 252, 252, 235, 116, 253, 153, 246, 116, 116, 116, 124 }, + { 119, 98, 86, 82, 117, 99, 99, 99, 141, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet({ + { 18, 38, 54, 39, 18, 39, 39, 39 }, + { 26, 38, 62, 39, 18, 39, 39, 39 }, + { 26, 39, 39, 39, 18, 39, 39, 39 }, + { 18, 38, 54, 39, 18, 39, 39, 39 }, + { 8, 12, 8, 12, 0, 0, 0, 0 }, + { 8, 8, 12, 13, 0, 0, 0, 0 }, + { 8, 8, 8, 4, 0, 0, 0, 0 }, + { 8, 12, 8, 12, 0, 0, 0, 0 }, + { 25, 25, 25, 25, 25, 25, 25, 25 }, + { 11, 4, 25, 25, 25, 25, 25, 25 }, + { 25, 25, 25, 11, 25, 25, 25, 25 }, + { 25, 25, 25, 25, 25, 25, 25, 25 }, + { 100, 235, 167, 151, 116, 253, 238, 253 }, + { 118, 235, 152, 203, 118, 116, 132, 116 }, + { 242, 252, 185, 180, 116, 212, 213, 252 }, + { 118, 188, 138, 122, 135, 132, 116, 116 }, + { 131, 252, 252, 234, 116, 238, 237, 157 }, + { 116, 246, 99, 100, 158, 116, 132, 116 }, + { 100, 235, 167, 151, 116, 253, 238, 253 }, + { 118, 235, 152, 203, 118, 116, 132, 116 }, + }), +}; +#endif + +const CtxSet ContextSetCfg::ParFlag[2] = { + ContextSetCfg::addCtxSet({ +// ctx 714 734 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 40, 33, 26, 34, 42, 25, 33, 34, 34, 27, 25, 34, 42, 42, 35, 33, 27, 35, 42, 35 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 12, 13, 13, 13, 13, 13, 13, 13, 13, 13, 12, 13, 13, 13, 13, 9, 13, 13, 12, 13 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 11, 18, 18, 18, 4, 4, 11, 11, 11, 4, 4, 4, 18, 11, 4, 4, 4, 25, 11, 4, 4 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 90, 88, 91, 89, 105, 106, 88, 104, 89, 185, 106, 235, 106, 119, 104, 122, 101, 122, 117, 105, 138 }, + { 180, 132, 119, 116, 118, 122, 148, 122, 234, 120, 185, 100, 148, 122, 232, 136, 227, 227, 168, 198, 120 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 735 745 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 33, 26, 34, 42, 27, 33, 34, 35, 27, 35 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 12, 12, 12, 12, 13, 10, 8, 10, 8, 13 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 25, 18, 11, 4, 4, 11, 25, 18, 11, 4 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 124, 235, 102, 179, 100, 200, 72, 129, 115, 211, 234 }, + { 196, 117, 119, 106, 246, 104, 138, 232, 153, 252, 87 }, + }), +}; + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::GtxFlag[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 746 774 + { 34, 41, 41, 34, 42, 27, 27, 36, 33, 18, 34, 42, 43, 36, 52, 18, 34, 27, 43, 36, 44, 37, 26, 19, 20, 28, 29, 37, 30 }, + { 33, 41, 41, 34, 3, 43, 50, 28, 25, 10, 26, 42, 35, 20, 13, 25, 26, 19, 12, 20, 28, 29, 18, 19, 20, 28, 29, 29, 30 }, + { 27, 33, 26, 34, 19, 27, 35, 36, 10, 26, 19, 27, 20, 28, 29, 11, 27, 20, 28, 21, 21, 22, 27, 28, 21, 44, 22, 22, 38 }, + { 19, 33, 41, 34, 34, 27, 43, 36, 10, 18, 34, 19, 35, 28, 21, 18, 19, 12, 20, 36, 44, 37, 11, 27, 20, 28, 29, 37, 38 }, + { 0, 8, 5, 10, 7, 5, 7, 8, 10, 12, 12, 12, 6, 10, 9, 12, 8, 8, 8, 5, 8, 9, 6, 6, 8, 8, 8, 12, 12 }, + { 2, 6, 4, 7, 10, 7, 7, 3, 13, 12, 13, 10, 7, 7, 7, 9, 8, 8, 12, 9, 9, 8, 6, 7, 8, 8, 10, 9, 13 }, + { 4, 9, 9, 9, 9, 9, 10, 9, 13, 13, 9, 9, 10, 10, 6, 13, 9, 9, 10, 9, 10, 9, 7, 9, 9, 9, 10, 10, 9 }, + { 0, 4, 4, 10, 2, 2, 7, 4, 10, 12, 12, 12, 7, 10, 6, 10, 8, 6, 12, 5, 9, 6, 6, 7, 8, 9, 8, 12, 10 }, + { 11, 18, 18, 25, 11, 4, 4, 25, 18, 18, 11, 18, 4, 11, 11, 18, 11, 18, 18, 4, 4, 11, 4, 4, 4, 11, 4, 25, 11 }, + { 25, 11, 18, 25, 25, 18, 4, 4, 18, 11, 11, 4, 4, 4, 11, 11, 11, 18, 32, 11, 11, 11, 4, 4, 4, 11, 4, 25, 32 }, + { 11, 4, 4, 4, 4, 4, 4, 18, 25, 18, 4, 4, 4, 11, 4, 18, 11, 4, 18, 4, 11, 4, 4, 18, 4, 11, 11, 4, 4 }, + { 18, 11, 11, 25, 4, 4, 4, 4, 18, 4, 18, 4, 4, 4, 4, 11, 11, 11, 25, 4, 11, 18, 4, 4, 4, 18, 4, 25, 11 }, + { 118, 122, 186, 106, 233, 120, 118, 124, 250, 235, 235, 235, 136, 132, 132, 234, 123, 135, 120, 134, 108, 132, 120, 251, 150, 186, 121, 114, 137 }, + { 117, 90, 242, 115, 145, 117, 241, 99, 129, 85, 99, 130, 107, 104, 89, 114, 116, 100, 100, 104, 101, 114, 131, 101, 92, 86, 164, 196, 225 }, + { 124, 215, 137, 228, 178, 178, 132, 147, 234, 233, 215, 234, 122, 116, 132, 184, 106, 120, 107, 105, 120, 118, 123, 218, 149, 140, 162, 210, 118 }, + { 130, 162, 148, 208, 98, 248, 116, 114, 161, 85, 210, 99, 136, 120, 114, 178, 227, 131, 193, 210, 86, 99, 116, 101, 102, 86, 106, 136, 83 }, + { 100, 211, 84, 101, 106, 122, 122, 131, 234, 201, 169, 251, 212, 149, 123, 145, 181, 199, 232, 135, 170, 121, 115, 251, 135, 251, 148, 133, 152 }, + { 118, 131, 117, 107, 103, 101, 100, 115, 98, 99, 102, 115, 114, 106, 107, 116, 131, 100, 99, 131, 90, 90, 118, 89, 115, 83, 100, 114, 83 }, + { 118, 189, 252, 151, 250, 124, 103, 118, 168, 116, 99, 137, 134, 100, 123, 106, 102, 116, 101, 124, 101, 135, 101, 106, 196, 131, 101, 225, 131 }, + { 132, 103, 227, 129, 116, 211, 122, 116, 129, 195, 101, 115, 116, 215, 131, 130, 102, 117, 146, 103, 131, 100, 122, 132, 104, 100, 118, 203, 130 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 775 789 + { 35, 26, 26, 11, 12, 12, 51, 30, 26, 27, 35, 14, 45, 22, 46 }, + { 35, 2, 3, 18, 28, 5, 59, 13, 25, 26, 4, 12, 6, 14, 22 }, + { 12, 18, 34, 27, 20, 13, 5, 37, 27, 12, 28, 21, 37, 45, 46 }, + { 3, 26, 3, 4, 20, 20, 36, 13, 18, 19, 12, 21, 29, 53, 46 }, + { 3, 8, 7, 2, 2, 0, 4, 4, 3, 5, 2, 5, 3, 1, 0 }, + { 5, 12, 0, 0, 1, 0, 2, 4, 6, 13, 7, 4, 0, 0, 6 }, + { 4, 13, 8, 8, 8, 8, 5, 12, 8, 10, 10, 9, 10, 12, 12 }, + { 2, 5, 5, 4, 0, 0, 0, 5, 12, 3, 4, 4, 0, 0, 4 }, + { 25, 11, 25, 18, 25, 18, 32, 18, 25, 32, 18, 32, 18, 18, 32 }, + { 11, 25, 32, 32, 32, 32, 25, 25, 11, 32, 32, 32, 32, 32, 32 }, + { 4, 32, 18, 11, 18, 18, 4, 25, 11, 18, 11, 11, 11, 4, 11 }, + { 4, 4, 4, 32, 4, 32, 32, 32, 18, 4, 32, 25, 11, 4, 4 }, + { 139, 219, 128, 131, 115, 117, 121, 213, 202, 187, 130, 120, 117, 147, 140 }, + { 113, 86, 113, 115, 116, 116, 99, 101, 129, 130, 124, 98, 113, 116, 116 }, + { 235, 89, 132, 148, 131, 116, 210, 244, 250, 234, 120, 236, 140, 253, 251 }, + { 98, 97, 139, 116, 116, 116, 115, 121, 241, 98, 115, 99, 116, 116, 97 }, + { 115, 217, 229, 184, 148, 131, 116, 107, 82, 83, 129, 86, 130, 84, 211 }, + { 118, 128, 102, 100, 106, 252, 140, 88, 251, 250, 196, 233, 150, 154, 86 }, + { 219, 236, 186, 148, 148, 132, 137, 217, 235, 120, 99, 124, 213, 118, 100 }, + { 162, 195, 100, 109, 149, 118, 116, 116, 68, 226, 147, 99, 116, 116, 99 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 790 818 + { 17, 17, 26, 19, 35, 28, 36, 29, 25, 19, 20, 36, 29, 29, 45, 33, 35, 36, 29, 37, 37, 30, 42, 36, 37, 45, 38, 38, 38 }, + { 9, 17, 18, 34, 19, 12, 12, 36, 25, 34, 35, 28, 21, 21, 37, 33, 27, 28, 21, 29, 37, 22, 41, 28, 37, 37, 53, 22, 38 }, + { 25, 25, 19, 27, 20, 36, 21, 29, 18, 12, 28, 21, 29, 37, 22, 34, 28, 29, 29, 22, 22, 30, 28, 29, 45, 30, 23, 38, 23 }, + { 9, 17, 26, 19, 35, 28, 36, 29, 25, 19, 20, 28, 21, 21, 45, 33, 35, 36, 29, 37, 37, 30, 34, 36, 37, 45, 30, 38, 38 }, + { 9, 8, 8, 9, 13, 13, 13, 9, 9, 10, 13, 13, 10, 13, 13, 10, 9, 10, 10, 12, 12, 13, 6, 9, 10, 13, 12, 12, 13 }, + { 9, 8, 6, 10, 13, 13, 10, 12, 9, 10, 13, 13, 10, 13, 13, 10, 10, 10, 10, 13, 13, 13, 9, 9, 10, 10, 13, 13, 13 }, + { 9, 9, 6, 10, 10, 10, 13, 9, 13, 10, 13, 13, 13, 13, 13, 9, 10, 9, 10, 13, 13, 13, 9, 10, 10, 10, 12, 13, 13 }, + { 9, 8, 6, 9, 13, 13, 13, 6, 9, 10, 12, 13, 10, 13, 13, 10, 10, 10, 10, 13, 13, 12, 6, 9, 10, 13, 12, 9, 12 }, + { 11, 4, 4, 11, 18, 18, 11, 18, 11, 11, 11, 11, 4, 4, 4, 18, 11, 11, 11, 11, 11, 11, 11, 4, 18, 18, 25, 18, 18 }, + { 11, 4, 4, 18, 25, 32, 18, 32, 11, 11, 11, 4, 4, 4, 11, 18, 18, 11, 11, 4, 4, 18, 18, 4, 11, 11, 18, 32, 25 }, + { 18, 18, 4, 4, 4, 4, 4, 11, 18, 11, 11, 11, 11, 4, 11, 4, 11, 4, 4, 4, 4, 11, 11, 18, 11, 4, 11, 18, 11 }, + { 11, 4, 4, 11, 18, 18, 11, 4, 11, 11, 4, 4, 4, 4, 11, 18, 18, 11, 11, 18, 11, 25, 11, 11, 18, 18, 25, 4, 18 }, + { 82, 90, 103, 229, 163, 122, 168, 120, 88, 104, 131, 210, 114, 100, 211, 106, 147, 114, 102, 115, 101, 115, 102, 115, 106, 177, 114, 86, 116 }, + { 163, 107, 103, 116, 99, 182, 162, 146, 243, 117, 163, 201, 250, 186, 147, 116, 147, 163, 218, 183, 107, 98, 119, 132, 151, 234, 235, 235, 82 }, + { 82, 84, 107, 132, 195, 115, 218, 152, 85, 106, 226, 115, 99, 90, 163, 98, 106, 106, 105, 115, 100, 102, 101, 102, 130, 115, 130, 119, 117 }, + { 147, 165, 119, 130, 103, 129, 113, 177, 116, 117, 116, 213, 250, 233, 99, 115, 115, 147, 134, 148, 137, 114, 107, 101, 136, 120, 234, 106, 87 }, + { 82, 99, 106, 147, 118, 105, 90, 148, 98, 116, 227, 131, 131, 115, 117, 227, 132, 102, 148, 114, 90, 228, 101, 136, 227, 103, 85, 101, 149 }, + { 243, 116, 119, 101, 106, 122, 151, 116, 106, 122, 122, 234, 218, 234, 102, 117, 116, 235, 122, 234, 234, 83, 107, 100, 100, 250, 235, 234, 69 }, + { 81, 84, 106, 117, 102, 100, 133, 169, 85, 100, 131, 100, 90, 87, 115, 99, 102, 241, 99, 87, 87, 103, 107, 115, 145, 88, 99, 89, 227 }, + { 147, 118, 123, 116, 118, 131, 135, 146, 243, 117, 134, 133, 250, 151, 197, 116, 120, 247, 250, 167, 180, 130, 117, 121, 200, 184, 203, 234, 82 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 819 833 + { 25, 33, 27, 36, 21, 37, 37, 38, 50, 29, 37, 38, 38, 46, 46 }, + { 1, 25, 26, 20, 13, 6, 13, 14, 42, 21, 14, 22, 7, 54, 31 }, + { 40, 33, 35, 28, 13, 29, 29, 22, 43, 37, 45, 38, 46, 46, 46 }, + { 17, 33, 27, 36, 29, 37, 37, 53, 50, 36, 53, 38, 46, 46, 54 }, + { 2, 9, 6, 4, 6, 4, 4, 8, 4, 5, 1, 6, 2, 2, 0 }, + { 6, 13, 7, 4, 4, 0, 2, 8, 5, 9, 4, 9, 5, 8, 4 }, + { 12, 12, 9, 12, 12, 8, 12, 12, 8, 8, 8, 12, 8, 9, 10 }, + { 5, 12, 5, 5, 5, 0, 0, 0, 4, 4, 4, 9, 0, 3, 4 }, + { 11, 11, 11, 11, 32, 25, 32, 32, 11, 18, 11, 25, 11, 4, 32 }, + { 4, 18, 18, 32, 32, 25, 25, 32, 4, 32, 11, 32, 32, 25, 32 }, + { 18, 11, 11, 25, 25, 4, 18, 11, 11, 11, 4, 18, 11, 4, 11 }, + { 4, 32, 11, 25, 25, 18, 18, 11, 11, 11, 4, 18, 11, 4, 11 }, + { 123, 90, 116, 133, 151, 125, 155, 134, 101, 114, 132, 99, 130, 115, 133 }, + { 147, 132, 147, 165, 120, 116, 100, 84, 118, 137, 119, 132, 168, 202, 116 }, + { 99, 74, 138, 172, 150, 138, 202, 135, 100, 99, 132, 105, 98, 86, 199 }, + { 147, 194, 241, 243, 228, 132, 131, 178, 118, 116, 107, 102, 101, 86, 99 }, + { 74, 147, 226, 130, 146, 103, 115, 163, 99, 84, 132, 98, 86, 86, 250 }, + { 115, 100, 118, 123, 151, 252, 137, 201, 135, 252, 123, 235, 217, 250, 96 }, + { 101, 83, 131, 118, 122, 125, 124, 140, 101, 211, 100, 129, 116, 115, 243 }, + { 132, 116, 148, 242, 210, 164, 132, 212, 122, 228, 105, 251, 167, 216, 99 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 834 862 + { 18, 25, 18, 26, 27, 27, 35, 13, 25, 26, 27, 35, 36, 36, 29, 33, 19, 43, 36, 29, 37, 45, 26, 20, 21, 37, 22, 22, 38 }, + { 25, 25, 10, 10, 42, 4, 20, 43, 25, 18, 19, 12, 20, 36, 52, 33, 11, 27, 5, 44, 21, 37, 26, 12, 36, 36, 22, 22, 30 }, + { 26, 25, 26, 34, 27, 20, 28, 21, 18, 19, 12, 28, 13, 21, 14, 26, 20, 21, 29, 22, 22, 30, 20, 29, 45, 30, 38, 38, 23 }, + { 11, 25, 18, 26, 50, 35, 43, 36, 25, 26, 19, 35, 28, 36, 29, 18, 19, 43, 28, 21, 29, 45, 11, 20, 21, 37, 22, 22, 38 }, + { 5, 8, 9, 10, 9, 10, 9, 8, 10, 13, 10, 13, 9, 10, 9, 9, 9, 10, 13, 13, 9, 9, 7, 13, 9, 13, 12, 12, 13 }, + { 5, 9, 9, 10, 10, 7, 3, 5, 10, 10, 10, 13, 10, 10, 10, 9, 9, 10, 10, 12, 10, 10, 10, 10, 9, 10, 12, 12, 13 }, + { 8, 9, 6, 10, 10, 10, 13, 9, 13, 10, 12, 12, 9, 10, 9, 10, 10, 9, 9, 12, 13, 13, 9, 10, 9, 10, 12, 12, 13 }, + { 5, 9, 9, 12, 10, 10, 10, 8, 10, 13, 10, 13, 10, 10, 9, 9, 9, 10, 13, 12, 10, 9, 7, 12, 9, 12, 12, 12, 13 }, + { 18, 11, 18, 18, 11, 11, 4, 25, 4, 18, 4, 18, 4, 4, 4, 4, 11, 18, 25, 25, 4, 11, 4, 25, 18, 25, 25, 25, 18 }, + { 11, 18, 18, 25, 18, 25, 4, 11, 4, 4, 4, 18, 11, 4, 11, 4, 11, 18, 18, 18, 11, 18, 11, 11, 18, 4, 32, 32, 32 }, + { 32, 4, 4, 4, 4, 4, 4, 18, 18, 4, 11, 4, 4, 4, 4, 4, 11, 4, 4, 18, 18, 11, 11, 11, 4, 4, 18, 4, 11 }, + { 25, 18, 18, 25, 18, 18, 4, 11, 4, 18, 11, 18, 11, 4, 4, 4, 11, 18, 32, 18, 11, 18, 4, 25, 18, 18, 25, 18, 25 }, + { 100, 132, 162, 153, 115, 243, 201, 133, 86, 90, 209, 103, 99, 131, 148, 99, 116, 99, 98, 89, 90, 117, 98, 90, 100, 113, 99, 101, 146 }, + { 131, 116, 226, 101, 131, 162, 101, 178, 131, 116, 195, 102, 203, 212, 115, 195, 131, 116, 146, 198, 235, 101, 132, 117, 136, 234, 154, 103, 193 }, + { 100, 91, 102, 161, 162, 208, 119, 140, 82, 89, 98, 89, 114, 114, 100, 84, 102, 117, 103, 90, 100, 116, 84, 209, 115, 132, 209, 146, 133 }, + { 242, 242, 242, 113, 106, 117, 136, 210, 147, 120, 148, 138, 168, 202, 146, 243, 115, 241, 119, 120, 137, 129, 132, 116, 154, 210, 169, 120, 83 }, + { 88, 87, 101, 194, 102, 99, 114, 117, 68, 114, 115, 115, 102, 100, 107, 106, 115, 115, 115, 84, 85, 105, 85, 114, 131, 100, 146, 115, 118 }, + { 118, 103, 123, 146, 104, 120, 120, 116, 133, 152, 118, 136, 170, 250, 107, 116, 122, 251, 251, 235, 234, 88, 251, 135, 251, 250, 234, 219, 86 }, + { 105, 107, 130, 105, 115, 102, 152, 215, 82, 82, 129, 83, 241, 88, 101, 83, 99, 113, 87, 88, 99, 121, 97, 161, 114, 84, 114, 178, 116 }, + { 146, 242, 242, 114, 105, 134, 87, 242, 179, 118, 136, 133, 249, 250, 195, 243, 195, 132, 162, 148, 121, 162, 133, 117, 249, 235, 235, 228, 86 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 863 877 + { 49, 33, 11, 4, 13, 44, 44, 45, 26, 42, 21, 45, 15, 30, 31 }, + { 48, 25, 3, 4, 5, 13, 13, 21, 25, 4, 5, 7, 6, 7, 54 }, + { 26, 33, 19, 20, 13, 13, 13, 14, 19, 28, 29, 30, 53, 38, 46 }, + { 41, 33, 11, 27, 44, 21, 36, 29, 26, 35, 29, 37, 38, 53, 54 }, + { 1, 4, 5, 4, 1, 0, 3, 5, 9, 4, 6, 6, 0, 3, 4 }, + { 5, 8, 1, 0, 0, 0, 1, 7, 9, 9, 10, 3, 0, 4, 3 }, + { 8, 8, 8, 9, 8, 4, 9, 8, 8, 8, 5, 5, 12, 8, 10 }, + { 2, 5, 1, 0, 0, 0, 3, 1, 9, 4, 7, 4, 1, 0, 3 }, + { 18, 4, 18, 18, 11, 11, 25, 25, 32, 25, 18, 25, 4, 18, 32 }, + { 18, 11, 18, 18, 18, 18, 18, 32, 11, 32, 32, 32, 11, 32, 4 }, + { 18, 4, 11, 25, 18, 4, 18, 4, 11, 18, 4, 4, 18, 11, 4 }, + { 11, 11, 11, 11, 11, 18, 18, 25, 25, 32, 18, 25, 4, 18, 4 }, + { 125, 102, 105, 132, 132, 149, 155, 188, 82, 99, 99, 113, 116, 149, 117 }, + { 131, 118, 117, 227, 132, 245, 115, 102, 241, 121, 217, 119, 124, 129, 99 }, + { 119, 115, 134, 148, 133, 182, 182, 214, 148, 113, 114, 113, 140, 228, 138 }, + { 146, 102, 125, 164, 244, 246, 211, 177, 132, 153, 96, 137, 196, 99, 113 }, + { 83, 102, 179, 225, 99, 133, 101, 116, 98, 130, 163, 100, 86, 131, 116 }, + { 105, 108, 135, 136, 200, 141, 139, 122, 252, 252, 252, 251, 216, 234, 82 }, + { 121, 107, 116, 133, 124, 123, 132, 141, 82, 100, 114, 121, 147, 118, 153 }, + { 210, 117, 134, 212, 180, 117, 129, 124, 133, 138, 134, 227, 179, 116, 113 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 878 906 + { 43, 42, 57, 58, 58, 50, 43, 28, 34, 19, 19, 27, 35, 43, 44, 27, 27, 35, 43, 36, 36, 37, 27, 27, 28, 28, 21, 21, 30 }, + { 11, 34, 18, 4, 50, 26, 11, 58, 18, 26, 11, 42, 50, 35, 36, 34, 11, 19, 12, 20, 28, 29, 34, 19, 35, 20, 36, 21, 22 }, + { 44, 26, 34, 19, 27, 35, 35, 13, 11, 19, 27, 27, 20, 28, 29, 35, 12, 20, 28, 21, 29, 22, 43, 36, 29, 44, 22, 30, 38 }, + { 20, 34, 42, 50, 50, 58, 27, 36, 19, 11, 19, 19, 35, 43, 36, 27, 27, 20, 28, 36, 36, 14, 20, 27, 28, 28, 21, 29, 30 }, + { 0, 4, 8, 4, 6, 4, 5, 5, 3, 9, 9, 8, 12, 12, 6, 6, 9, 12, 13, 12, 13, 9, 1, 9, 10, 13, 13, 13, 9 }, + { 0, 8, 4, 4, 12, 4, 4, 5, 4, 7, 12, 12, 12, 13, 10, 6, 9, 9, 13, 13, 12, 9, 3, 9, 9, 13, 13, 13, 13 }, + { 4, 5, 6, 6, 10, 10, 10, 10, 4, 13, 13, 13, 12, 13, 10, 10, 10, 10, 10, 13, 10, 10, 3, 10, 10, 13, 13, 12, 13 }, + { 0, 5, 5, 0, 7, 0, 0, 2, 2, 5, 5, 9, 13, 12, 5, 9, 9, 13, 13, 13, 10, 8, 2, 9, 12, 12, 13, 13, 12 }, + { 11, 4, 25, 11, 11, 4, 4, 25, 4, 11, 4, 4, 18, 4, 4, 11, 18, 25, 32, 18, 25, 11, 4, 11, 11, 18, 25, 18, 4 }, + { 11, 25, 32, 25, 25, 32, 32, 25, 4, 11, 18, 11, 4, 18, 25, 4, 11, 18, 25, 25, 32, 18, 4, 4, 4, 11, 18, 11, 18 }, + { 4, 11, 4, 4, 4, 4, 4, 25, 4, 18, 18, 11, 11, 11, 18, 25, 4, 11, 11, 18, 4, 4, 4, 4, 4, 18, 11, 18, 11 }, + { 18, 18, 25, 4, 18, 4, 4, 11, 4, 4, 4, 4, 11, 11, 18, 18, 11, 32, 32, 32, 32, 32, 11, 11, 11, 18, 32, 25, 18 }, + { 119, 122, 105, 102, 163, 135, 148, 203, 123, 84, 135, 202, 232, 235, 153, 102, 117, 149, 234, 219, 233, 214, 116, 117, 98, 234, 132, 218, 201 }, + { 118, 246, 226, 136, 155, 198, 184, 150, 195, 149, 117, 121, 217, 234, 196, 165, 148, 137, 181, 234, 234, 164, 165, 132, 250, 234, 234, 234, 251 }, + { 230, 233, 204, 244, 170, 124, 205, 133, 108, 103, 105, 235, 196, 120, 169, 117, 132, 169, 217, 183, 185, 185, 118, 139, 117, 230, 234, 234, 232 }, + { 132, 108, 163, 137, 130, 227, 117, 124, 165, 132, 107, 147, 235, 234, 245, 118, 147, 154, 234, 234, 231, 227, 132, 120, 251, 234, 234, 234, 106 }, + { 101, 102, 101, 106, 130, 102, 250, 154, 118, 84, 116, 234, 234, 182, 153, 87, 122, 250, 250, 233, 133, 154, 123, 133, 132, 234, 168, 101, 169 }, + { 109, 121, 135, 250, 250, 250, 249, 180, 133, 179, 152, 147, 235, 234, 153, 186, 138, 122, 119, 234, 250, 147, 117, 181, 250, 178, 234, 235, 83 }, + { 155, 252, 218, 139, 250, 252, 237, 154, 120, 100, 108, 107, 118, 211, 156, 89, 101, 115, 132, 134, 201, 152, 115, 101, 178, 148, 169, 168, 218 }, + { 117, 138, 133, 134, 194, 133, 118, 147, 227, 151, 248, 196, 186, 234, 243, 247, 149, 234, 216, 231, 233, 227, 151, 228, 235, 235, 218, 218, 218 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 907 921 + { 51, 27, 27, 27, 27, 58, 28, 52, 42, 42, 4, 12, 28, 21, 53 }, + { 5, 19, 27, 18, 3, 4, 4, 20, 57, 42, 27, 19, 44, 5, 45 }, + { 13, 11, 27, 20, 20, 5, 13, 29, 36, 20, 28, 36, 29, 29, 30 }, + { 35, 11, 4, 4, 19, 4, 19, 5, 19, 12, 12, 19, 5, 52, 30 }, + { 1, 9, 8, 12, 12, 10, 7, 10, 0, 1, 3, 1, 13, 13, 0 }, + { 4, 13, 12, 0, 12, 10, 8, 8, 13, 4, 8, 9, 3, 13, 8 }, + { 3, 4, 4, 8, 8, 12, 12, 10, 1, 3, 7, 7, 9, 13, 10 }, + { 0, 5, 3, 7, 3, 3, 2, 0, 7, 4, 3, 4, 13, 4, 5 }, + { 32, 18, 18, 32, 32, 32, 25, 32, 32, 32, 25, 32, 32, 32, 32 }, + { 18, 32, 32, 32, 32, 32, 32, 32, 32, 18, 32, 32, 18, 25, 32 }, + { 11, 4, 4, 11, 11, 25, 32, 18, 4, 4, 4, 4, 11, 4, 4 }, + { 4, 4, 4, 32, 25, 18, 18, 18, 25, 25, 25, 32, 32, 32, 18 }, + { 155, 117, 244, 234, 235, 249, 250, 250, 186, 140, 119, 115, 218, 234, 174 }, + { 117, 117, 118, 139, 233, 249, 200, 249, 132, 131, 131, 179, 234, 218, 116 }, + { 221, 209, 65, 132, 225, 247, 252, 252, 96, 180, 146, 161, 251, 216, 246 }, + { 116, 234, 219, 236, 184, 247, 252, 252, 234, 203, 219, 117, 251, 217, 82 }, + { 115, 155, 140, 87, 118, 105, 117, 250, 115, 115, 225, 115, 151, 122, 151 }, + { 115, 105, 119, 166, 134, 217, 235, 103, 228, 151, 249, 151, 251, 218, 147 }, + { 254, 218, 122, 176, 227, 193, 243, 247, 152, 243, 120, 115, 234, 253, 120 }, + { 126, 123, 135, 247, 219, 251, 202, 252, 154, 131, 138, 197, 234, 250, 211 }, + }), +}; +#else +const CtxSet ContextSetCfg::GtxFlag[4] = { + ContextSetCfg::addCtxSet({ + { 25, 0, 40, 25, 33, 26, 0, 17, 25, 33, 19, 9, 25, 26, 34, 20, 25, 18, 19, 20, 37 }, + { 1, 0, 9, 17, 25, 26, 0, 9, 25, 33, 19, 9, 25, 33, 34, 20, 25, 33, 19, 27, 29 }, + { 25, 1, 40, 25, 33, 11, 9, 25, 25, 18, 12, 17, 33, 26, 19, 13, 33, 19, 20, 28, 22 }, + { 25, 0, 40, 25, 33, 26, 0, 17, 25, 33, 19, 9, 25, 26, 34, 20, 25, 18, 19, 20, 37 }, + { 1, 9, 10, 10, 7, 5, 9, 9, 10, 9, 6, 9, 9, 10, 6, 5, 6, 9, 6, 10, 10 }, + { 2, 8, 6, 9, 7, 5, 12, 13, 10, 13, 3, 9, 9, 10, 10, 6, 6, 6, 10, 10, 10 }, + { 4, 12, 6, 9, 10, 5, 12, 9, 9, 9, 5, 13, 10, 10, 10, 10, 6, 9, 10, 10, 9 }, + { 1, 9, 10, 10, 7, 5, 9, 9, 10, 9, 6, 9, 9, 10, 6, 5, 6, 9, 6, 10, 10 }, + { 11, 11, 25, 18, 11, 18, 4, 4, 11, 4, 18, 11, 11, 25, 11, 4, 11, 18, 11, 25, 18 }, + { 11, 11, 4, 4, 4, 18, 18, 11, 4, 11, 4, 4, 11, 18, 18, 11, 11, 4, 18, 18, 11 }, + { 4, 25, 4, 11, 11, 18, 18, 11, 4, 11, 11, 18, 18, 18, 18, 18, 4, 18, 18, 18, 4 }, + { 11, 11, 25, 18, 11, 18, 4, 4, 11, 4, 18, 11, 11, 25, 11, 4, 11, 18, 11, 25, 18 }, + { 115, 99, 86, 85, 102, 227, 82, 84, 100, 103, 117, 87, 100, 102, 106, 107, 98, 103, 115, 102, 116 }, + { 164, 131, 193, 130, 116, 131, 212, 148, 116, 147, 116, 243, 131, 118, 147, 131, 195, 131, 116, 120, 122 }, + { 118, 84, 99, 131, 122, 117, 65, 69, 99, 85, 118, 82, 90, 104, 99, 115, 98, 101, 99, 103, 116 }, + { 131, 116, 243, 227, 178, 116, 148, 179, 147, 103, 117, 132, 131, 130, 146, 105, 243, 116, 116, 116, 115 }, + { 99, 70, 98, 84, 82, 147, 68, 83, 123, 102, 107, 88, 100, 116, 104, 115, 99, 117, 106, 116, 119 }, + { 119, 147, 121, 195, 116, 117, 119, 123, 132, 117, 117, 116, 121, 116, 120, 115, 123, 116, 118, 121, 107 }, + { 115, 99, 86, 85, 102, 227, 82, 84, 100, 103, 117, 87, 100, 102, 106, 107, 98, 103, 115, 102, 116 }, + { 164, 131, 193, 130, 116, 131, 212, 148, 116, 147, 116, 243, 131, 118, 147, 131, 195, 131, 116, 120, 122 }, + }), + ContextSetCfg::addCtxSet({ + { 25, 9, 25, 33, 26, 12, 17, 33, 11, 28, 37 }, + { 1, 1, 25, 18, 11, 12, 17, 33, 11, 4, 22 }, + { 25, 9, 25, 18, 26, 4, 25, 26, 27, 28, 37 }, + { 25, 9, 25, 33, 26, 12, 17, 33, 11, 28, 37 }, + { 2, 8, 8, 5, 8, 5, 6, 8, 7, 5, 5 }, + { 3, 10, 12, 9, 9, 7, 5, 12, 5, 7, 8 }, + { 1, 12, 8, 8, 8, 2, 5, 4, 6, 4, 7 }, + { 2, 8, 8, 5, 8, 5, 6, 8, 7, 5, 5 }, + { 11, 4, 4, 4, 4, 4, 4, 25, 25, 11, 4 }, + { 4, 4, 4, 4, 4, 4, 4, 25, 18, 18, 25 }, + { 4, 25, 4, 18, 18, 4, 4, 4, 18, 4, 4 }, + { 11, 4, 4, 4, 4, 4, 4, 25, 25, 11, 4 }, + { 115, 201, 135, 122, 148, 196, 98, 83, 97, 131, 131 }, + { 131, 108, 107, 119, 91, 105, 195, 140, 150, 137, 124 }, + { 119, 106, 87, 105, 105, 135, 98, 83, 99, 102, 130 }, + { 130, 119, 101, 118, 102, 121, 164, 123, 152, 114, 168 }, + { 115, 67, 100, 100, 211, 119, 98, 99, 98, 103, 117 }, + { 120, 163, 118, 123, 104, 116, 120, 183, 219, 137, 105 }, + { 115, 201, 135, 122, 148, 196, 98, 83, 97, 131, 131 }, + { 131, 108, 107, 119, 91, 105, 195, 140, 150, 137, 124 }, + }), + ContextSetCfg::addCtxSet({ + { 9, 17, 26, 27, 35, 21, 25, 27, 43, 36, 37, 33, 35, 36, 29, 30, 42, 36, 37, 45, 38 }, + { 1, 17, 26, 42, 35, 44, 25, 34, 35, 36, 37, 33, 20, 36, 29, 22, 34, 28, 37, 37, 38 }, + { 25, 25, 19, 27, 20, 21, 33, 12, 28, 21, 22, 34, 28, 29, 29, 30, 28, 29, 45, 30, 23 }, + { 9, 17, 26, 27, 35, 21, 25, 27, 43, 36, 37, 33, 35, 36, 29, 30, 42, 36, 37, 45, 38 }, + { 9, 8, 9, 10, 10, 9, 9, 10, 13, 13, 10, 9, 10, 9, 10, 10, 5, 9, 10, 13, 13 }, + { 9, 9, 6, 10, 10, 10, 9, 10, 10, 13, 10, 10, 10, 10, 10, 10, 9, 9, 10, 10, 13 }, + { 9, 9, 6, 10, 10, 9, 13, 10, 13, 13, 13, 9, 10, 10, 10, 13, 9, 10, 10, 10, 13 }, + { 9, 8, 9, 10, 10, 9, 9, 10, 13, 13, 10, 9, 10, 9, 10, 10, 5, 9, 10, 13, 13 }, + { 11, 4, 11, 11, 11, 18, 11, 11, 18, 4, 4, 18, 18, 11, 11, 4, 11, 11, 18, 18, 18 }, + { 11, 11, 4, 11, 11, 18, 11, 11, 4, 4, 4, 18, 18, 11, 11, 4, 18, 11, 11, 11, 11 }, + { 18, 18, 4, 4, 4, 18, 18, 11, 11, 11, 18, 11, 11, 11, 4, 11, 18, 18, 11, 11, 11 }, + { 11, 4, 11, 11, 11, 18, 11, 11, 18, 4, 4, 18, 18, 11, 11, 4, 11, 11, 18, 18, 18 }, + { 82, 85, 102, 146, 134, 122, 90, 115, 116, 227, 116, 107, 115, 116, 116, 131, 116, 116, 116, 116, 119 }, + { 211, 107, 106, 116, 101, 116, 243, 117, 117, 137, 131, 117, 116, 123, 136, 118, 117, 116, 119, 134, 85 }, + { 82, 83, 107, 121, 120, 116, 89, 116, 163, 147, 116, 99, 115, 115, 116, 116, 104, 227, 116, 122, 132 }, + { 211, 132, 117, 100, 105, 130, 227, 116, 117, 182, 117, 116, 117, 133, 135, 99, 116, 131, 120, 103, 85 }, + { 83, 99, 107, 131, 117, 119, 98, 116, 195, 101, 102, 131, 119, 115, 120, 116, 115, 132, 132, 122, 164 }, + { 122, 116, 118, 101, 106, 117, 116, 122, 121, 234, 138, 118, 117, 170, 121, 102, 120, 106, 106, 106, 86 }, + { 82, 85, 102, 146, 134, 122, 90, 115, 116, 227, 116, 107, 115, 116, 116, 131, 116, 116, 116, 116, 119 }, + { 211, 107, 106, 116, 101, 116, 243, 117, 117, 137, 131, 117, 116, 123, 136, 118, 117, 116, 119, 134, 85 }, + }), + ContextSetCfg::addCtxSet({ + { 17, 33, 27, 28, 21, 37, 42, 37, 45, 38, 46 }, + { 9, 25, 27, 20, 13, 22, 35, 29, 22, 30, 23 }, + { 40, 33, 35, 28, 13, 37, 43, 37, 45, 38, 46 }, + { 17, 33, 27, 28, 21, 37, 42, 37, 45, 38, 46 }, + { 9, 12, 9, 9, 12, 9, 5, 4, 4, 10, 8 }, + { 9, 13, 12, 13, 13, 13, 5, 8, 4, 5, 8 }, + { 12, 12, 9, 12, 12, 9, 8, 8, 8, 13, 10 }, + { 9, 12, 9, 9, 12, 9, 5, 4, 4, 10, 8 }, + { 18, 11, 11, 11, 25, 4, 11, 4, 4, 25, 11 }, + { 4, 11, 4, 11, 11, 4, 4, 18, 11, 18, 11 }, + { 18, 11, 11, 25, 18, 11, 11, 18, 11, 25, 11 }, + { 18, 11, 11, 11, 25, 4, 11, 4, 4, 25, 11 }, + { 106, 115, 101, 115, 227, 197, 147, 243, 244, 98, 116 }, + { 242, 211, 119, 203, 117, 123, 117, 251, 120, 249, 118 }, + { 86, 84, 87, 195, 179, 134, 116, 115, 132, 178, 132 }, + { 195, 104, 166, 202, 106, 88, 148, 252, 138, 118, 236 }, + { 75, 115, 131, 178, 131, 227, 179, 92, 164, 98, 243 }, + { 131, 91, 117, 120, 137, 116, 136, 252, 105, 198, 84 }, + { 106, 115, 101, 115, 227, 197, 147, 243, 244, 98, 116 }, + { 242, 211, 119, 203, 117, 123, 117, 251, 120, 249, 118 }, + }), +}; +#endif + +const CtxSet ContextSetCfg::LastX[2] = { + ContextSetCfg::addCtxSet({ +// ctx 922 957 + { 13, 13, 5, 6, 6, 12, 6, 14, 6, 5, 21, 6, 6, 6, 44, 21, 21, 13, 21, 45, 52, 21, 13, 53, 53, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 5, 12, 14, 6, 4, 7, 7, 6, 5, 14, 7, 7, 7, 53, 14, 7, 14, 7, 15, 61, 7, 30, 31, 62, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 13, 12, 14, 6, 4, 6, 6, 14, 4, 14, 14, 22, 6, 11, 22, 15, 30, 22, 13, 18, 7, 37, 6, 28, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 6, 5, 14, 7, 5, 14, 7, 14, 5, 6, 14, 14, 14, 36, 14, 7, 14, 14, 52, 51, 29, 7, 45, 60, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 5, 5, 5, 6, 5, 0, 6, 4, 2, 1, 6, 1, 2, 1, 1, 2, 2, 2, 0, 0, 0, 2, 5, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 7, 7, 6, 7, 6, 1, 6, 5, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 1, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 9, 5, 5, 6, 5, 4, 6, 5, 1, 1, 6, 1, 1, 1, 0, 1, 2, 1, 1, 0, 0, 1, 4, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 6, 6, 6, 6, 1, 6, 6, 2, 1, 2, 1, 1, 1, 2, 2, 1, 1, 1, 1, 0, 1, 0, 3, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 18, 18, 18, 18, 18, 4, 18, 18, 25, 32, 18, 11, 25, 32, 32, 11, 11, 25, 32, 32, 32, 18, 25, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 4, 18, 18, 18, 18, 18, 4, 18, 25, 25, 4, 4, 18, 25, 32, 32, 11, 18, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 11, 11, 18, 18, 18, 18, 25, 18, 18, 25, 18, 25, 32, 32, 11, 25, 18, 32, 32, 32, 18, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 11, 11, 18, 18, 18, 4, 11, 18, 18, 18, 4, 4, 18, 25, 32, 11, 4, 18, 18, 32, 32, 11, 25, 25, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 116, 131, 131, 123, 117, 149, 135, 117, 133, 117, 136, 118, 121, 180, 115, 140, 117, 123, 118, 245, 116, 244, 252, 244, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 117, 116, 228, 245, 117, 181, 246, 252, 116, 245, 181, 243, 252, 115, 167, 180, 211, 180, 254, 116, 156, 252, 180, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 121, 122, 132, 123, 119, 123, 117, 134, 117, 123, 118, 121, 135, 115, 125, 117, 118, 125, 135, 116, 180, 151, 244, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 115, 114, 115, 134, 148, 117, 148, 148, 141, 116, 134, 244, 148, 153, 116, 134, 212, 132, 227, 249, 123, 149, 234, 254, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 115, 117, 119, 123, 124, 132, 123, 124, 125, 131, 123, 125, 119, 245, 116, 123, 124, 116, 116, 244, 116, 155, 253, 254, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 115, 117, 117, 139, 252, 147, 147, 251, 149, 115, 148, 246, 132, 252, 116, 213, 251, 163, 247, 252, 116, 253, 253, 254, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 226, 119, 122, 123, 118, 147, 117, 133, 117, 135, 118, 120, 133, 114, 133, 117, 116, 132, 212, 116, 180, 150, 251, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 131, 115, 116, 123, 133, 117, 243, 226, 133, 116, 149, 133, 148, 148, 115, 138, 133, 147, 227, 244, 116, 228, 142, 250, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 958 960 + { 12, 20, 50 }, + { 42, 50, 41 }, + { 20, 4, 3 }, + { 19, 5, 19 }, + { 1, 0, 0 }, + { 5, 5, 4 }, + { 6, 4, 1 }, + { 1, 0, 0 }, + { 11, 11, 11 }, + { 18, 18, 18 }, + { 18, 18, 4 }, + { 11, 11, 11 }, + { 116, 133, 117 }, + { 148, 228, 164 }, + { 103, 116, 107 }, + { 116, 117, 116 }, + { 123, 119, 120 }, + { 197, 228, 117 }, + { 117, 118, 132 }, + { 132, 244, 148 }, + }), +}; + +const CtxSet ContextSetCfg::LastY[2] = { + ContextSetCfg::addCtxSet({ +// ctx 961 996 + { 5, 13, 20, 6, 6, 12, 6, 14, 5, 20, 6, 21, 5, 21, 29, 21, 14, 5, 5, 52, 29, 21, 13, 45, 45, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 5, 20, 14, 14, 12, 14, 7, 6, 13, 14, 7, 6, 7, 38, 21, 7, 13, 14, 30, 46, 13, 6, 23, 39, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 13, 12, 14, 6, 4, 14, 14, 5, 11, 14, 7, 6, 5, 18, 37, 38, 22, 22, 12, 18, 29, 30, 13, 28, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 21, 20, 6, 14, 12, 6, 7, 13, 5, 6, 14, 13, 13, 36, 14, 7, 13, 13, 51, 43, 6, 22, 30, 15, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 5, 5, 5, 6, 5, 1, 6, 6, 1, 1, 2, 5, 1, 0, 0, 2, 2, 2, 0, 0, 0, 2, 5, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 6, 7, 7, 7, 2, 7, 7, 2, 2, 6, 5, 1, 2, 1, 2, 2, 1, 1, 2, 0, 1, 4, 1, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 9, 5, 8, 6, 5, 4, 6, 6, 1, 0, 6, 6, 1, 1, 0, 1, 1, 2, 2, 0, 0, 2, 4, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 6, 7, 7, 6, 2, 6, 6, 1, 2, 2, 5, 1, 2, 0, 2, 2, 1, 1, 2, 0, 0, 4, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 18, 18, 18, 18, 18, 11, 18, 18, 18, 25, 4, 11, 11, 32, 32, 4, 4, 18, 32, 32, 32, 18, 25, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 11, 11, 18, 18, 4, 18, 18, 18, 18, 11, 4, 11, 25, 32, 4, 4, 4, 18, 32, 32, 11, 25, 25, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 4, 18, 18, 4, 18, 18, 11, 18, 25, 18, 18, 32, 32, 18, 11, 25, 32, 32, 32, 32, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 11, 18, 18, 18, 4, 11, 11, 11, 18, 4, 4, 4, 25, 18, 4, 4, 11, 25, 32, 25, 4, 32, 18, 25, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 117, 118, 123, 116, 120, 118, 117, 116, 141, 116, 134, 102, 121, 151, 116, 148, 117, 120, 126, 165, 116, 136, 236, 148, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 131, 131, 116, 132, 134, 118, 132, 151, 253, 116, 164, 148, 247, 253, 116, 132, 134, 244, 164, 228, 116, 124, 252, 116, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 108, 118, 117, 122, 122, 118, 122, 122, 140, 116, 117, 102, 125, 140, 115, 132, 121, 119, 137, 149, 116, 164, 156, 247, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 115, 114, 122, 122, 117, 122, 122, 250, 116, 131, 132, 246, 246, 120, 117, 122, 244, 229, 245, 136, 116, 234, 250, 123, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 117, 120, 118, 123, 124, 109, 123, 123, 141, 133, 123, 115, 125, 173, 117, 125, 118, 124, 116, 245, 116, 140, 123, 245, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 101, 118, 103, 123, 138, 117, 123, 211, 253, 117, 118, 242, 253, 253, 116, 133, 165, 252, 249, 253, 116, 146, 253, 254, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 116, 122, 117, 123, 118, 242, 116, 125, 115, 124, 102, 125, 133, 116, 132, 121, 122, 140, 170, 116, 149, 139, 254, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 243, 116, 115, 116, 122, 117, 194, 163, 247, 116, 123, 116, 246, 212, 117, 117, 124, 212, 179, 211, 117, 117, 253, 251, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 997 999 + { 26, 20, 42 }, + { 41, 19, 48 }, + { 20, 4, 19 }, + { 11, 5, 19 }, + { 1, 4, 0 }, + { 2, 4, 1 }, + { 7, 5, 4 }, + { 1, 4, 0 }, + { 4, 25, 11 }, + { 4, 18, 11 }, + { 11, 18, 11 }, + { 4, 25, 4 }, + { 116, 117, 119 }, + { 243, 131, 132 }, + { 116, 118, 119 }, + { 131, 243, 163 }, + { 132, 124, 106 }, + { 243, 243, 132 }, + { 116, 117, 119 }, + { 243, 131, 148 }, + }), +}; + + +#if JVET_AG0143_INTER_INTRA +const CtxSet ContextSetCfg::SigCoeffGroupCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 1000 1001 + { 11, 31 }, + { 11, 31 }, + { 10, 38 }, + { 3, 31 }, + { 4, 5 }, + { 4, 5 }, + { 8, 5 }, + { 4, 5 }, + { 4, 18 }, + { 11, 18 }, + { 25, 18 }, + { 4, 18 }, + { 132, 148 }, + { 101, 101 }, + { 116, 135 }, + { 107, 101 }, + { 179, 121 }, + { 242, 132 }, + { 116, 133 }, + { 102, 101 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1002 1003 + { 10, 23 }, + { 25, 38 }, + { 17, 37 }, + { 33, 23 }, + { 9, 10 }, + { 9, 10 }, + { 0, 0 }, + { 8, 7 }, + { 11, 4 }, + { 4, 4 }, + { 25, 25 }, + { 18, 4 }, + { 99, 250 }, + { 131, 101 }, + { 82, 250 }, + { 164, 119 }, + { 229, 212 }, + { 122, 197 }, + { 103, 226 }, + { 226, 98 }, + }), +}; + + + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::SigFlagCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 1004 1021 + { 25, 19, 28, 14, 22, 30, 18, 28, 29, 30, 30, 38, 26, 45, 30, 38, 38, 38 }, + { 25, 19, 20, 14, 22, 30, 18, 28, 29, 30, 30, 38, 11, 45, 30, 38, 38, 38 }, + { 17, 26, 27, 29, 37, 30, 9, 42, 28, 37, 45, 30, 33, 59, 36, 45, 30, 38 }, + { 25, 19, 28, 14, 22, 30, 18, 28, 29, 30, 30, 38, 26, 45, 30, 38, 38, 38 }, + { 13, 9, 9, 13, 13, 10, 10, 9, 10, 13, 13, 10, 9, 10, 10, 10, 10, 9 }, + { 13, 9, 9, 13, 13, 10, 9, 10, 10, 13, 13, 13, 9, 8, 10, 10, 10, 9 }, + { 13, 9, 8, 12, 9, 8, 9, 9, 8, 12, 10, 10, 8, 9, 9, 9, 13, 9 }, + { 13, 9, 9, 13, 13, 10, 10, 10, 10, 13, 13, 10, 8, 9, 10, 10, 10, 9 }, + { 11, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 4, 11, 18, 4, 4, 4, 11 }, + { 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4 }, + { 11, 11, 11, 32, 4, 4, 4, 11, 4, 4, 11, 4, 18, 18, 18, 4, 11, 11 }, + { 18, 4, 4, 4, 4, 4, 18, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 11 }, + { 114, 171, 164, 180, 137, 217, 113, 118, 138, 132, 217, 250, 171, 137, 163, 135, 231, 250 }, + { 132, 121, 107, 196, 89, 83, 131, 121, 101, 199, 69, 82, 101, 99, 135, 100, 83, 81 }, + { 83, 139, 244, 120, 165, 201, 226, 102, 119, 164, 169, 151, 244, 119, 179, 135, 247, 203 }, + { 120, 122, 101, 105, 85, 85, 117, 119, 104, 170, 85, 69, 117, 180, 195, 104, 83, 81 }, + { 74, 117, 132, 85, 251, 168, 217, 195, 116, 87, 250, 152, 98, 130, 120, 122, 135, 235 }, + { 149, 132, 164, 235, 88, 84, 132, 131, 119, 219, 83, 82, 136, 119, 117, 106, 161, 81 }, + { 82, 139, 164, 211, 137, 230, 85, 102, 133, 103, 233, 249, 103, 132, 120, 148, 199, 251 }, + { 118, 120, 104, 102, 87, 86, 119, 133, 106, 135, 70, 82, 108, 195, 217, 102, 82, 82 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1022 1033 + { 33, 20, 28, 21, 29, 14, 26, 53, 53, 46, 46, 46 }, + { 18, 19, 35, 28, 14, 45, 19, 53, 37, 30, 38, 7 }, + { 25, 35, 28, 21, 6, 22, 48, 52, 60, 38, 61, 15 }, + { 33, 20, 36, 29, 45, 30, 26, 53, 53, 46, 46, 46 }, + { 13, 13, 13, 13, 13, 13, 10, 5, 8, 8, 9, 6 }, + { 13, 13, 13, 13, 13, 13, 8, 5, 8, 8, 13, 13 }, + { 10, 13, 8, 10, 12, 13, 5, 2, 8, 7, 0, 13 }, + { 13, 12, 9, 10, 13, 13, 10, 5, 8, 9, 13, 9 }, + { 11, 18, 4, 4, 4, 4, 18, 4, 11, 18, 11, 4 }, + { 18, 11, 4, 4, 18, 11, 11, 4, 11, 18, 25, 32 }, + { 18, 25, 4, 4, 4, 4, 11, 4, 25, 4, 25, 25 }, + { 32, 18, 11, 4, 4, 4, 25, 4, 4, 4, 18, 32 }, + { 225, 100, 131, 115, 106, 120, 241, 132, 102, 115, 163, 251 }, + { 131, 152, 164, 148, 148, 146, 114, 149, 252, 252, 186, 98 }, + { 82, 121, 101, 147, 88, 163, 163, 119, 101, 194, 178, 233 }, + { 116, 234, 118, 122, 200, 83, 102, 155, 202, 251, 103, 83 }, + { 96, 113, 85, 88, 84, 218, 118, 118, 210, 116, 138, 226 }, + { 116, 105, 171, 85, 171, 234, 108, 115, 116, 233, 116, 64 }, + { 97, 135, 118, 131, 179, 179, 193, 118, 103, 101, 116, 251 }, + { 103, 131, 132, 132, 86, 213, 105, 120, 156, 187, 130, 81 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1034 1051 + { 26, 38, 46, 54, 54, 54, 11, 39, 39, 39, 39, 39, 28, 39, 39, 39, 39, 39 }, + { 26, 38, 46, 54, 54, 54, 11, 39, 39, 39, 39, 39, 28, 39, 39, 39, 39, 39 }, + { 18, 45, 53, 46, 46, 46, 11, 54, 61, 39, 39, 39, 10, 39, 39, 39, 39, 39 }, + { 26, 38, 46, 54, 54, 54, 11, 39, 39, 39, 39, 39, 28, 39, 39, 39, 39, 39 }, + { 9, 13, 12, 8, 8, 8, 8, 0, 0, 0, 0, 4, 4, 0, 0, 0, 0, 0 }, + { 8, 13, 12, 8, 8, 8, 8, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 8, 13, 12, 8, 8, 8, 8, 8, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 8, 13, 12, 8, 8, 8, 8, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0 }, + { 11, 4, 25, 4, 4, 4, 18, 32, 32, 25, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 4, 4, 25, 11, 4, 4, 18, 32, 32, 32, 18, 25, 32, 32, 32, 32, 32, 32 }, + { 4, 4, 18, 18, 18, 18, 18, 32, 11, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 11, 4, 25, 4, 4, 4, 18, 32, 32, 25, 32, 25, 32, 32, 32, 32, 32, 32 }, + { 195, 234, 219, 252, 252, 236, 99, 254, 251, 188, 186, 253, 131, 237, 235, 251, 252, 134 }, + { 132, 234, 105, 84, 82, 82, 117, 116, 116, 116, 116, 99, 115, 116, 116, 116, 116, 116 }, + { 132, 234, 219, 251, 252, 219, 100, 238, 252, 254, 200, 252, 116, 237, 235, 238, 252, 237 }, + { 120, 185, 102, 83, 84, 82, 117, 116, 116, 119, 116, 116, 252, 116, 116, 116, 116, 116 }, + { 165, 234, 233, 252, 252, 220, 194, 252, 253, 253, 253, 134, 132, 254, 139, 251, 238, 252 }, + { 119, 234, 118, 83, 82, 82, 117, 98, 99, 116, 116, 116, 132, 116, 116, 116, 116, 116 }, + { 163, 234, 235, 252, 250, 252, 114, 253, 253, 236, 252, 254, 101, 251, 116, 116, 254, 238 }, + { 123, 133, 88, 84, 82, 82, 117, 116, 116, 116, 116, 116, 131, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1052 1063 + { 18, 46, 38, 39, 39, 39, 59, 39, 39, 39, 39, 39 }, + { 18, 46, 38, 39, 39, 39, 53, 39, 39, 39, 39, 39 }, + { 33, 30, 46, 31, 39, 31, 11, 39, 39, 39, 39, 39 }, + { 26, 46, 38, 39, 39, 39, 28, 39, 39, 39, 39, 39 }, + { 8, 12, 12, 4, 4, 2, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 12, 4, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 4, 8, 9, 0, 3, 13, 0, 0, 0, 0, 0, 0 }, + { 8, 12, 12, 0, 0, 2, 0, 0, 0, 0, 0, 0 }, + { 11, 11, 32, 25, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 18, 11, 18, 25, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 4, 18, 4, 25, 18, 4, 25, 25, 25, 25, 25, 25 }, + { 25, 11, 32, 25, 25, 32, 32, 32, 32, 32, 32, 32 }, + { 244, 235, 235, 253, 133, 250, 116, 252, 254, 235, 238, 235 }, + { 228, 87, 66, 99, 99, 115, 164, 116, 116, 116, 148, 116 }, + { 118, 235, 235, 253, 237, 251, 116, 237, 116, 116, 116, 116 }, + { 120, 102, 65, 99, 116, 115, 116, 116, 116, 116, 116, 116 }, + { 100, 252, 248, 250, 250, 218, 148, 238, 235, 116, 116, 116 }, + { 107, 102, 82, 180, 130, 68, 150, 116, 116, 116, 116, 116 }, + { 146, 235, 235, 254, 238, 233, 116, 238, 252, 116, 238, 251 }, + { 119, 114, 65, 116, 148, 115, 198, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1064 1081 + { 18, 39, 39, 39, 39, 39, 11, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 18, 39, 39, 39, 39, 39, 11, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 26, 54, 39, 39, 39, 39, 26, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 18, 39, 39, 39, 39, 39, 11, 39, 39, 39, 39, 39, 0, 39, 39, 39, 39, 39 }, + { 8, 8, 12, 12, 12, 12, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 12, 12, 12, 12, 8, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0 }, + { 8, 4, 4, 8, 5, 12, 8, 0, 0, 0, 1, 1, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 12, 12, 12, 12, 8, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0 }, + { 11, 32, 25, 32, 25, 25, 18, 32, 32, 32, 25, 25, 32, 32, 32, 32, 32, 32 }, + { 18, 25, 25, 32, 32, 25, 18, 25, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 32, 18, 25, 11, 11, 25, 18, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 18, 32, 32, 25, 25, 25, 25, 32, 25, 32, 32, 32, 32, 32, 32, 32, 32, 32 }, + { 166, 252, 235, 219, 217, 235, 162, 218, 253, 252, 198, 238, 116, 116, 116, 251, 235, 252 }, + { 164, 82, 65, 65, 65, 67, 116, 116, 116, 116, 116, 116, 253, 116, 116, 116, 116, 116 }, + { 107, 252, 234, 235, 235, 235, 130, 238, 254, 158, 251, 235, 148, 116, 116, 116, 235, 238 }, + { 121, 82, 65, 65, 68, 65, 118, 116, 116, 116, 148, 104, 254, 116, 116, 116, 116, 116 }, + { 116, 253, 250, 252, 133, 218, 131, 254, 254, 167, 252, 253, 116, 116, 116, 116, 251, 254 }, + { 121, 99, 99, 82, 98, 65, 102, 116, 116, 116, 115, 116, 253, 116, 116, 116, 116, 116 }, + { 103, 219, 235, 235, 235, 219, 114, 254, 252, 186, 174, 254, 115, 116, 235, 116, 238, 251 }, + { 124, 82, 65, 65, 65, 67, 122, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116, 116 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1082 1093 + { 11, 39, 39, 39, 39, 39, 2, 39, 39, 39, 39, 39 }, + { 26, 39, 39, 39, 39, 39, 2, 39, 39, 39, 39, 39 }, + { 18, 38, 54, 39, 39, 39, 33, 39, 39, 39, 39, 39 }, + { 11, 39, 39, 39, 39, 31, 10, 39, 39, 39, 39, 39 }, + { 8, 4, 8, 0, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 8, 8, 4, 4, 0, 1, 0, 0, 0, 0, 0, 0 }, + { 5, 10, 0, 5, 0, 0, 3, 0, 0, 0, 0, 0 }, + { 9, 8, 4, 4, 4, 0, 0, 0, 0, 0, 0, 0 }, + { 18, 25, 32, 32, 32, 25, 25, 32, 32, 32, 32, 32 }, + { 18, 25, 25, 32, 25, 25, 32, 32, 32, 32, 32, 32 }, + { 18, 25, 4, 25, 25, 25, 25, 25, 25, 25, 25, 25 }, + { 25, 25, 18, 11, 11, 25, 25, 32, 32, 32, 32, 32 }, + { 147, 253, 252, 254, 253, 253, 116, 235, 238, 235, 116, 235 }, + { 118, 99, 82, 116, 116, 117, 118, 116, 116, 116, 116, 116 }, + { 131, 252, 253, 253, 253, 251, 116, 116, 116, 116, 116, 116 }, + { 134, 82, 99, 99, 116, 131, 121, 116, 116, 116, 116, 116 }, + { 162, 250, 247, 252, 116, 235, 241, 253, 116, 116, 116, 116 }, + { 120, 129, 116, 99, 116, 116, 113, 132, 116, 132, 116, 116 }, + { 99, 252, 253, 198, 253, 134, 125, 251, 252, 235, 116, 235 }, + { 116, 83, 99, 99, 136, 116, 116, 116, 116, 116, 116, 116 }, + }), +}; +#else +const CtxSet ContextSetCfg::SigFlagCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ + { 25, 19, 28, 14, 18, 28, 29, 30, 19, 45, 30, 38, }, + { 25, 19, 20, 14, 18, 28, 29, 30, 19, 45, 30, 38, }, + { 17, 26, 27, 29, 9, 42, 28, 37, 33, 44, 36, 45, }, + { 25, 19, 28, 14, 18, 28, 29, 30, 19, 45, 30, 38, }, + { 13, 9, 10, 10, 10, 9, 9, 13, 10, 9, 10, 10, }, + { 13, 9, 9, 10, 10, 9, 10, 13, 9, 9, 10, 10, }, + { 13, 9, 9, 5, 9, 9, 9, 9, DWS, DWS, 9, 10, }, + { 13, 9, 10, 10, 10, 9, 9, 13, 10, 9, 10, 10, }, + { DWE, 4, DWE, 11, DWE, 4, 4, 4, DWE, DWE, 11, 11, }, + { 11, 4, 11, 4, 11, 4, 4, 4, 11, 11, 11, 11, }, + { 11, 11, DWE, 4, 4, DWE, DWE, 4, DWE, 11, DWE, DWE, }, + { DWE, 4, DWE, 11, DWE, 4, 4, 4, DWE, DWE, 11, 11, }, + { 85, 117, 131, 133, 105, 107, 107, 123, 99, 116, 117, 149, }, + { 121, 180, 118, 124, 117, 123, 123, 102, 134, 136, 123, 90, }, + { 85, 117, 131, 133, 105, 107, 107, 123, 99, 116, 117, 149, }, + { 121, 180, 118, 124, 117, 123, 123, 102, 134, 136, 123, 90, }, + { 85, 117, 131, 133, 105, 107, 107, 123, 99, 116, 117, 149, }, + { 121, 180, 118, 124, 117, 123, 123, 102, 134, 136, 123, 90, }, + { 85, 117, 131, 133, 105, 107, 107, 123, 99, 116, 117, 149, }, + { 121, 180, 118, 124, 117, 123, 123, 102, 134, 136, 123, 90, }, + }), + ContextSetCfg::addCtxSet + ({ + { 25, 12, 28, 29, 26, 53, 53, 46, }, + { 25, 12, 28, 29, 34, 53, 45, 38, }, + { 25, 27, 43, 29, 33, 60, 60, 38, }, + { 25, 12, 28, 29, 26, 53, 53, 46, }, + { 13, 13, 10, 10, 6, 5, DWS, DWS, }, + { 13, 12, 10, 12, 5, 5, DWS, DWS, }, + { 9, 9, 5, 13, 4, 1, 4, 13, }, + { 13, 13, 10, 10, 6, 5, DWS, DWS, }, + { DWE, DWE, 11, 4, 11, 4, 4, 11, }, + { DWE, 4, 4, 4, 4, 4, 11, DWE, }, + { DWE, DWE, 4, 4, 25, 4, 11, 25, }, + { DWE, DWE, 11, 4, 11, 4, 4, 11, }, + { 131, 103, 117, 116, 117, 118, 102, 180, }, + { 107, 136, 123, 123, 122, 107, 200, 220, }, + { 131, 103, 117, 116, 117, 118, 102, 180, }, + { 107, 136, 123, 123, 122, 107, 200, 220, }, + { 131, 103, 117, 116, 117, 118, 102, 180, }, + { 107, 136, 123, 123, 122, 107, 200, 220, }, + { 131, 103, 117, 116, 117, 118, 102, 180, }, + { 107, 136, 123, 123, 122, 107, 200, 220, }, + }), + ContextSetCfg::addCtxSet + ({ + { 26, 38, 46, 54, 19, 39, 39, 39, 13, 39, 39, 39, }, + { 26, 38, 46, 54, 19, 39, 39, 39, 28, 39, 39, 39, }, + { 18, 45, 53, 46, 11, 54, 61, 39, 26, 39, 39, 39, }, + { 26, 38, 46, 54, 19, 39, 39, 39, 13, 39, 39, 39, }, + { 9, 13, 12, DWS, DWS, 4, 4, 0, 1, 0, 0, 0, }, + { 9, 13, 12, DWS, DWS, 4, 4, 0, 4, 0, 0, 0, }, + { 9, 13, 12, 9, DWS, DWS, DWS, 4, 0, 0, 0, 0, }, + { 9, 13, 12, DWS, DWS, 4, 4, 0, 1, 0, 0, 0, }, + { 11, 4, 25, 4, 25, 25, 25, 25, 25, 25, 25, 25, }, + { 4, 4, 25, 4, DWE, 25, 25, 25, 25, 25, 25, 25, }, + { 11, 11, DWE, 25, DWE, 25, 25, 25, 11, 25, 25, 25, }, + { 11, 4, 25, 4, 25, 25, 25, 25, 25, 25, 25, 25, }, + { 165, 234, 217, 252, 104, 236, 252, 216, 115, 253, 254, 140, }, + { 117, 234, 117, 83, 117, 146, 130, 99, 164, 116, 116, 116, }, + { 165, 234, 217, 252, 104, 236, 252, 216, 115, 253, 254, 140, }, + { 117, 234, 117, 83, 117, 146, 130, 99, 164, 116, 116, 116, }, + { 165, 234, 217, 252, 104, 236, 252, 216, 115, 253, 254, 140, }, + { 117, 234, 117, 83, 117, 146, 130, 99, 164, 116, 116, 116, }, + { 165, 234, 217, 252, 104, 236, 252, 216, 115, 253, 254, 140, }, + { 117, 234, 117, 83, 117, 146, 130, 99, 164, 116, 116, 116, }, + }), + ContextSetCfg::addCtxSet + ({ + { 26, 46, 38, 39, 44, 39, 39, 39, }, + { 26, 46, 38, 39, 44, 39, 39, 39, }, + { 33, 45, 38, 31, 4, 39, 39, 39, }, + { 26, 46, 38, 39, 44, 39, 39, 39, }, + { DWS, 12, 12, DWS, 0, 0, 0, 0, }, + { DWS, 12, 12, 4, 0, 0, 0, 0, }, + { DWS, 12, DWS, 7, 1, 0, 0, 0, }, + { DWS, 12, 12, DWS, 0, 0, 0, 0, }, + { DWE, 11, DWE, 25, 25, 25, 25, 25, }, + { DWE, 11, DWE, 25, 25, 25, 25, 25, }, + { 25, 25, 25, DWE, 25, 25, 25, 25, }, + { DWE, 11, DWE, 25, 25, 25, 25, 25, }, + { 164, 235, 235, 236, 115, 185, 253, 118, }, + { 117, 91, 97, 82, 212, 116, 116, 116, }, + { 164, 235, 235, 236, 115, 185, 253, 118, }, + { 117, 91, 97, 82, 212, 116, 116, 116, }, + { 164, 235, 235, 236, 115, 185, 253, 118, }, + { 117, 91, 97, 82, 212, 116, 116, 116, }, + { 164, 235, 235, 236, 115, 185, 253, 118, }, + { 117, 91, 97, 82, 212, 116, 116, 116, }, + }), + ContextSetCfg::addCtxSet + ({ + { 18, 39, 39, 39, 19, 39, 39, 39, 0, 39, 39, 39, }, + { 18, 39, 39, 39, 19, 39, 39, 39, 0, 39, 39, 39, }, + { 26, 54, 39, 39, 34, 39, 39, 39, 0, 39, 39, 39, }, + { 18, 39, 39, 39, 19, 39, 39, 39, 0, 39, 39, 39, }, + { DWS, DWS, 12, 12, DWS, 0, 0, 0, 0, 0, 0, 0, }, + { DWS, DWS, 12, 12, DWS, 0, 0, 4, 0, 0, 0, 0, }, + { DWS, 4, 4, DWS, DWS, 4, 0, 4, 0, 0, 0, 0, }, + { DWS, DWS, 12, 12, DWS, 0, 0, 0, 0, 0, 0, 0, }, + { DWE, 25, 25, 25, 25, 25, 25, 25, DWE, 25, 25, 25, }, + { 11, 25, 25, 25, DWE, 25, 25, 25, 25, 25, 25, 25, }, + { DWE, 4, 25, DWE, DWE, 25, 25, 25, 25, 25, 25, 25, }, + { DWE, 25, 25, 25, 25, 25, 25, 25, DWE, 25, 25, 25, }, + { 148, 252, 235, 235, 115, 219, 187, 189, 116, 237, 252, 238, }, + { 118, 114, 82, 73, 132, 99, 116, 99, 182, 116, 116, 116, }, + { 148, 252, 235, 235, 115, 219, 187, 189, 116, 237, 252, 238, }, + { 118, 114, 82, 73, 132, 99, 116, 99, 182, 116, 116, 116, }, + { 148, 252, 235, 235, 115, 219, 187, 189, 116, 237, 252, 238, }, + { 118, 114, 82, 73, 132, 99, 116, 99, 182, 116, 116, 116, }, + { 148, 252, 235, 235, 115, 219, 187, 189, 116, 237, 252, 238, }, + { 118, 114, 82, 73, 132, 99, 116, 99, 182, 116, 116, 116, }, + }), + ContextSetCfg::addCtxSet + ({ + { 11, 39, 39, 39, 18, 39, 39, 39, }, + { 11, 39, 39, 39, 18, 39, 39, 39, }, + { 18, 38, 62, 39, 18, 39, 39, 39, }, + { 11, 39, 39, 39, 18, 39, 39, 39, }, + { DWS, DWS, DWS, DWS, 0, 0, 0, 0, }, + { DWS, DWS, DWS, 0, 0, 0, 0, 0, }, + { 6, DWS, 4, 0, 0, 0, 0, 0, }, + { DWS, DWS, DWS, DWS, 0, 0, 0, 0, }, + { DWE, 25, 25, 25, 25, 25, 25, 25, }, + { DWE, 25, 25, DWE, 25, 25, 25, 25, }, + { 25, DWE, 11, 4, 25, 25, 25, 25, }, + { DWE, 25, 25, 25, 25, 25, 25, 25, }, + { 211, 252, 199, 252, 116, 252, 142, 252, }, + { 117, 146, 86, 82, 151, 116, 116, 116, }, + { 211, 252, 199, 252, 116, 252, 142, 252, }, + { 117, 146, 86, 82, 151, 116, 116, 116, }, + { 211, 252, 199, 252, 116, 252, 142, 252, }, + { 117, 146, 86, 82, 151, 116, 116, 116, }, + { 211, 252, 199, 252, 116, 252, 142, 252, }, + { 117, 146, 86, 82, 151, 116, 116, 116, }, + }), +}; +#endif + +const CtxSet ContextSetCfg::ParFlagCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 1094 1114 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 25, 18, 26, 34, 27, 25, 26, 19, 42, 35, 33, 19, 27, 35, 35, 34, 42, 20, 43, 20 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 10, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 91, 90, 103, 151, 120, 88, 203, 100, 233, 106, 235, 147, 119, 107, 135, 118, 105, 101, 235, 234 }, + { 133, 115, 117, 164, 116, 164, 118, 180, 169, 106, 185, 100, 136, 134, 165, 135, 243, 216, 201, 227, 105 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1115 1125 + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 33, 25, 26, 19, 19, 27, 26, 42, 35, 35, 35 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 12, 12, 12, 12, 12, 13, 13, 13, 13, 13, 13 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 25, 11, 18, 25, 18, 4, 18, 25, 11, 4, 4 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 88, 235, 131, 99, 162, 121, 88, 106, 99, 164, 115 }, + { 196, 101, 211, 243, 196, 106, 227, 227, 211, 102, 151 }, + }), +}; + + +#if JVET_AG0100_TRANSFORM_COEFFICIENT_CODING +const CtxSet ContextSetCfg::GtxFlagCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +// ctx 1126 1154 + { 42, 33, 26, 34, 42, 27, 20, 21, 10, 26, 19, 27, 20, 28, 29, 3, 27, 20, 28, 21, 29, 30, 19, 13, 21, 44, 22, 22, 38 }, + { 58, 25, 18, 3, 11, 4, 4, 5, 2, 26, 11, 4, 20, 28, 29, 18, 27, 20, 28, 29, 21, 22, 42, 28, 13, 44, 22, 22, 38 }, + { 27, 41, 49, 42, 50, 27, 59, 21, 18, 18, 11, 27, 20, 28, 21, 26, 11, 27, 28, 36, 21, 22, 11, 27, 20, 28, 29, 29, 38 }, + { 57, 18, 26, 34, 27, 27, 20, 21, 10, 26, 19, 35, 20, 28, 29, 3, 27, 20, 13, 29, 29, 30, 27, 13, 21, 52, 22, 22, 38 }, + { 6, 9, 7, 10, 12, 7, 13, 10, 10, 13, 9, 9, 7, 7, 10, 12, 10, 9, 9, 9, 10, 10, 5, 5, 10, 8, 10, 9, 12 }, + { 1, 12, 13, 13, 13, 13, 13, 10, 10, 12, 10, 10, 10, 7, 10, 13, 8, 9, 12, 9, 12, 10, 7, 8, 6, 5, 10, 9, 13 }, + { 8, 6, 3, 3, 12, 4, 13, 8, 9, 9, 12, 12, 13, 12, 8, 10, 10, 9, 9, 9, 13, 10, 10, 10, 7, 8, 9, 13, 13 }, + { 4, 7, 7, 10, 13, 7, 13, 10, 10, 13, 10, 10, 10, 7, 10, 12, 9, 9, 9, 10, 13, 10, 7, 9, 6, 8, 10, 10, 13 }, + { 25, 11, 4, 4, 4, 4, 4, 18, 11, 18, 4, 4, 4, 4, 11, 18, 11, 11, 11, 4, 4, 4, 4, 4, 18, 18, 11, 4, 11 }, + { 25, 25, 4, 4, 4, 4, 4, 11, 4, 4, 4, 11, 4, 4, 4, 25, 4, 4, 18, 4, 4, 4, 4, 11, 4, 4, 11, 4, 4 }, + { 11, 11, 4, 4, 4, 4, 11, 18, 18, 4, 18, 4, 4, 4, 11, 25, 18, 11, 18, 25, 32, 18, 11, 18, 4, 4, 25, 18, 11 }, + { 25, 18, 4, 4, 11, 4, 4, 18, 11, 4, 4, 4, 4, 4, 11, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 11 }, + { 119, 149, 99, 106, 235, 169, 131, 130, 250, 167, 251, 251, 250, 250, 122, 235, 250, 251, 219, 251, 234, 133, 252, 252, 250, 236, 250, 218, 235 }, + { 120, 194, 120, 114, 85, 103, 137, 114, 100, 88, 100, 84, 102, 103, 85, 85, 89, 85, 84, 146, 84, 86, 100, 100, 90, 84, 82, 83, 67 }, + { 115, 136, 148, 135, 197, 100, 168, 147, 250, 119, 234, 231, 180, 138, 117, 232, 219, 251, 203, 213, 152, 149, 153, 236, 217, 252, 135, 201, 183 }, + { 137, 162, 84, 106, 87, 179, 199, 129, 178, 115, 100, 99, 146, 104, 90, 100, 101, 115, 84, 101, 84, 83, 105, 87, 99, 100, 86, 100, 67 }, + { 219, 117, 233, 183, 185, 236, 70, 230, 122, 219, 198, 137, 115, 99, 236, 115, 132, 251, 243, 134, 197, 241, 218, 250, 147, 134, 115, 99, 132 }, + { 146, 101, 120, 137, 130, 100, 113, 98, 194, 242, 105, 85, 120, 75, 84, 99, 106, 114, 163, 129, 130, 101, 100, 99, 130, 115, 102, 99, 115 }, + { 131, 102, 105, 102, 87, 169, 104, 116, 233, 218, 233, 200, 169, 186, 117, 199, 203, 251, 138, 117, 163, 121, 122, 201, 155, 137, 151, 154, 202 }, + { 131, 152, 122, 100, 99, 101, 87, 130, 130, 130, 130, 99, 99, 101, 98, 90, 101, 90, 99, 130, 83, 99, 105, 99, 107, 84, 241, 86, 66 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1155 1169 + { 11, 10, 11, 4, 12, 5, 5, 6, 18, 19, 20, 29, 29, 53, 46 }, + { 18, 10, 3, 4, 4, 28, 5, 6, 10, 11, 20, 21, 5, 22, 15 }, + { 35, 18, 11, 19, 36, 59, 28, 29, 11, 50, 28, 21, 22, 22, 46 }, + { 11, 26, 19, 43, 36, 21, 13, 37, 26, 19, 20, 13, 37, 45, 46 }, + { 5, 9, 8, 9, 8, 6, 8, 8, 12, 10, 10, 5, 6, 10, 9 }, + { 13, 12, 8, 8, 5, 2, 8, 13, 8, 13, 13, 10, 13, 7, 9 }, + { 4, 4, 13, 3, 9, 12, 3, 13, 6, 0, 0, 12, 0, 13, 0 }, + { 4, 8, 8, 10, 4, 5, 9, 9, 10, 13, 12, 7, 7, 13, 13 }, + { 32, 32, 18, 32, 25, 11, 11, 4, 4, 4, 25, 4, 4, 4, 4 }, + { 25, 18, 4, 32, 4, 4, 25, 32, 4, 4, 32, 4, 4, 18, 18 }, + { 4, 4, 4, 4, 4, 18, 4, 11, 25, 25, 4, 11, 25, 25, 11 }, + { 4, 32, 11, 25, 4, 11, 25, 18, 18, 4, 32, 4, 4, 18, 18 }, + { 219, 232, 195, 135, 180, 146, 106, 92, 91, 89, 97, 100, 105, 183, 182 }, + { 98, 113, 131, 116, 101, 211, 106, 229, 163, 119, 247, 219, 214, 201, 131 }, + { 168, 178, 181, 99, 180, 116, 121, 135, 82, 234, 164, 121, 218, 250, 105 }, + { 82, 115, 91, 108, 115, 118, 92, 103, 122, 121, 215, 167, 122, 102, 200 }, + { 99, 124, 105, 115, 161, 88, 132, 169, 250, 248, 251, 70, 117, 184, 237 }, + { 220, 243, 234, 121, 234, 87, 249, 137, 97, 116, 116, 129, 116, 201, 116 }, + { 138, 135, 134, 246, 229, 148, 117, 122, 84, 102, 81, 103, 99, 201, 99 }, + { 100, 101, 115, 133, 102, 118, 163, 146, 133, 100, 219, 130, 137, 145, 132 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1170 1198 + { 25, 25, 19, 27, 20, 36, 21, 37, 33, 12, 28, 21, 29, 37, 22, 34, 28, 29, 29, 22, 22, 30, 28, 29, 45, 30, 23, 38, 23 }, + { 25, 25, 19, 27, 20, 36, 13, 29, 18, 12, 28, 21, 29, 37, 22, 34, 28, 29, 37, 22, 22, 30, 13, 29, 45, 30, 15, 38, 23 }, + { 9, 17, 26, 27, 35, 13, 36, 29, 25, 27, 20, 36, 21, 29, 22, 33, 35, 36, 21, 37, 14, 30, 19, 36, 37, 45, 30, 38, 46 }, + { 25, 25, 19, 27, 20, 36, 21, 29, 33, 12, 28, 21, 29, 37, 22, 34, 28, 29, 29, 22, 22, 30, 28, 29, 45, 30, 23, 38, 23 }, + { 8, 9, 9, 10, 10, 13, 13, 10, 13, 13, 13, 13, 13, 13, 13, 9, 9, 10, 10, 13, 13, 13, 10, 9, 10, 10, 12, 13, 13 }, + { 9, 9, 10, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 13, 10, 10, 10, 10, 13, 13, 13, 10, 10, 9, 10, 12, 12, 13 }, + { 12, 8, 8, 10, 10, 7, 13, 8, 9, 9, 12, 13, 13, 13, 13, 9, 9, 9, 12, 8, 9, 8, 6, 9, 9, 8, 9, 8, 7 }, + { 9, 9, 7, 10, 10, 10, 13, 9, 13, 13, 13, 13, 13, 13, 13, 9, 9, 10, 10, 13, 13, 13, 10, 9, 10, 13, 12, 10, 13 }, + { 4, 11, 4, 4, 4, 11, 4, 11, 4, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 11, 11, 4, 4, 18, 11 }, + { 18, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 4, 4, 11, 4, 4, 11, 18, 4, 11, 4, 11, 11 }, + { 18, 18, 18, 18, 4, 18, 25, 18, 11, 4, 11, 4, 4, 4, 4, 11, 11, 4, 11, 4, 11, 18, 4, 11, 4, 4, 18, 11, 4 }, + { 18, 11, 4, 4, 4, 4, 4, 11, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 11, 4, 4, 4, 11, 4, 11 }, + { 82, 85, 101, 170, 170, 148, 103, 132, 84, 151, 231, 150, 132, 106, 228, 202, 251, 133, 250, 103, 148, 167, 244, 167, 184, 181, 89, 118, 201 }, + { 166, 104, 106, 99, 101, 105, 122, 210, 102, 102, 103, 182, 200, 169, 83, 117, 100, 119, 100, 106, 131, 67, 98, 84, 99, 214, 234, 183, 66 }, + { 81, 90, 115, 152, 168, 186, 103, 134, 74, 117, 150, 116, 211, 116, 105, 103, 137, 163, 179, 115, 117, 138, 194, 133, 117, 117, 90, 163, 232 }, + { 135, 103, 116, 83, 88, 100, 152, 84, 102, 103, 117, 168, 217, 200, 88, 119, 106, 151, 168, 153, 218, 69, 106, 99, 139, 105, 91, 234, 69 }, + { 184, 83, 132, 98, 248, 129, 234, 235, 88, 115, 131, 88, 89, 147, 114, 242, 107, 89, 211, 132, 102, 134, 146, 132, 131, 101, 242, 131, 243 }, + { 115, 123, 118, 243, 242, 138, 118, 130, 117, 136, 200, 121, 147, 166, 233, 117, 131, 251, 197, 172, 202, 89, 117, 100, 213, 234, 122, 251, 117 }, + { 82, 99, 106, 119, 137, 106, 106, 212, 83, 118, 153, 165, 148, 117, 229, 106, 122, 104, 170, 100, 119, 169, 100, 148, 136, 117, 100, 118, 230 }, + { 139, 103, 116, 100, 101, 102, 122, 107, 102, 101, 103, 150, 201, 216, 146, 122, 103, 150, 102, 183, 134, 69, 115, 88, 99, 103, 235, 248, 66 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1199 1213 + { 40, 18, 12, 5, 5, 13, 21, 22, 43, 29, 45, 38, 38, 46, 46 }, + { 25, 18, 4, 12, 12, 13, 13, 6, 20, 13, 37, 38, 46, 46, 54 }, + { 17, 33, 12, 20, 59, 21, 29, 45, 42, 29, 53, 46, 54, 54, 54 }, + { 25, 26, 20, 13, 21, 6, 14, 22, 43, 29, 45, 38, 38, 46, 46 }, + { 12, 12, 12, 12, 12, 8, 13, 13, 8, 8, 8, 13, 8, 12, 13 }, + { 12, 13, 9, 12, 12, 13, 10, 13, 8, 8, 12, 13, 12, 10, 10 }, + { 6, 9, 8, 7, 12, 7, 13, 10, 4, 2, 3, 13, 0, 2, 8 }, + { 12, 12, 12, 13, 13, 8, 12, 13, 8, 9, 9, 13, 13, 9, 9 }, + { 32, 4, 18, 32, 32, 18, 18, 18, 25, 18, 18, 32, 18, 32, 32 }, + { 25, 4, 11, 25, 25, 32, 11, 32, 11, 25, 32, 25, 32, 25, 25 }, + { 4, 11, 18, 11, 11, 18, 25, 18, 25, 4, 4, 11, 25, 4, 25 }, + { 25, 4, 11, 18, 32, 4, 11, 18, 18, 4, 18, 25, 4, 4, 18 }, + { 91, 102, 115, 114, 210, 148, 226, 99, 99, 210, 179, 83, 119, 131, 194 }, + { 114, 101, 103, 123, 120, 136, 138, 105, 122, 203, 244, 215, 250, 214, 81 }, + { 66, 82, 105, 98, 114, 177, 185, 167, 227, 242, 130, 98, 88, 82, 146 }, + { 148, 131, 117, 235, 194, 166, 118, 89, 118, 137, 177, 96, 183, 151, 116 }, + { 114, 131, 178, 115, 233, 134, 198, 101, 163, 115, 134, 83, 150, 114, 218 }, + { 117, 103, 236, 234, 66, 231, 116, 145, 147, 235, 115, 169, 116, 114, 82 }, + { 73, 179, 227, 130, 115, 107, 104, 133, 115, 84, 116, 97, 201, 181, 234 }, + { 116, 101, 99, 146, 122, 118, 212, 102, 140, 171, 100, 234, 234, 104, 81 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1214 1242 + { 18, 25, 26, 34, 27, 43, 28, 52, 33, 19, 12, 28, 21, 21, 37, 26, 20, 21, 29, 22, 22, 30, 20, 29, 45, 30, 38, 38, 23 }, + { 48, 25, 10, 34, 19, 12, 20, 13, 33, 19, 12, 28, 28, 21, 14, 26, 20, 21, 29, 37, 22, 30, 20, 14, 37, 30, 38, 38, 23 }, + { 26, 25, 26, 34, 19, 12, 51, 29, 25, 26, 27, 35, 5, 21, 37, 33, 19, 43, 36, 29, 29, 45, 11, 20, 21, 29, 22, 45, 38 }, + { 18, 25, 26, 19, 27, 20, 28, 21, 33, 19, 12, 28, 21, 21, 14, 26, 20, 21, 29, 22, 22, 30, 20, 29, 45, 30, 38, 38, 23 }, + { 9, 10, 10, 13, 10, 13, 10, 10, 13, 10, 13, 12, 9, 10, 9, 10, 10, 10, 10, 12, 13, 13, 10, 10, 10, 10, 10, 12, 13 }, + { 8, 13, 13, 13, 13, 13, 13, 10, 13, 10, 13, 12, 10, 13, 10, 10, 10, 10, 10, 12, 13, 13, 10, 9, 9, 10, 12, 12, 13 }, + { 8, 8, 5, 7, 10, 9, 8, 12, 13, 9, 8, 10, 8, 7, 8, 8, 9, 8, 13, 8, 8, 8, 7, 5, 8, 12, 9, 9, 9 }, + { 9, 13, 7, 10, 10, 10, 10, 10, 13, 10, 13, 13, 10, 13, 10, 10, 10, 10, 10, 12, 13, 13, 10, 8, 10, 9, 12, 12, 13 }, + { 25, 11, 4, 4, 4, 11, 4, 18, 18, 4, 11, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 11, 4, 11, 4, 4, 11 }, + { 32, 11, 4, 4, 4, 4, 4, 11, 18, 4, 11, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 11, 11, 4, 4, 18, 4, 4 }, + { 18, 25, 18, 4, 32, 25, 4, 32, 18, 4, 4, 4, 4, 4, 11, 4, 11, 11, 32, 11, 11, 32, 4, 4, 4, 18, 18, 11, 4 }, + { 25, 11, 4, 4, 4, 4, 4, 18, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4, 4, 11, 4, 4, 18, 11, 4 }, + { 129, 90, 85, 133, 119, 178, 102, 115, 74, 100, 227, 106, 101, 163, 121, 153, 154, 147, 132, 85, 89, 228, 89, 130, 104, 178, 117, 91, 218 }, + { 194, 162, 118, 84, 103, 90, 151, 106, 120, 170, 116, 134, 203, 137, 101, 103, 100, 230, 184, 235, 202, 82, 116, 242, 180, 246, 184, 235, 67 }, + { 88, 146, 152, 162, 103, 102, 164, 149, 68, 100, 131, 87, 116, 100, 118, 88, 116, 101, 100, 115, 100, 117, 84, 131, 179, 104, 90, 91, 122 }, + { 242, 163, 101, 115, 146, 182, 182, 114, 133, 152, 184, 168, 122, 216, 106, 120, 122, 186, 218, 235, 234, 84, 154, 135, 139, 250, 187, 170, 68 }, + { 252, 116, 130, 101, 161, 118, 121, 186, 153, 115, 87, 249, 85, 161, 117, 107, 99, 102, 224, 90, 181, 232, 102, 115, 211, 115, 146, 227, 201 }, + { 99, 120, 228, 225, 113, 129, 210, 97, 101, 196, 134, 88, 252, 250, 100, 132, 107, 149, 168, 187, 200, 84, 122, 219, 138, 227, 231, 180, 82 }, + { 129, 83, 105, 146, 117, 104, 104, 178, 71, 99, 115, 115, 100, 131, 117, 101, 121, 101, 103, 85, 114, 117, 87, 101, 114, 100, 102, 164, 168 }, + { 210, 226, 121, 104, 99, 100, 104, 114, 119, 184, 105, 228, 233, 150, 114, 119, 117, 169, 167, 235, 186, 83, 152, 249, 248, 185, 235, 203, 72 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1243 1257 + { 33, 18, 4, 5, 5, 5, 5, 6, 11, 20, 29, 30, 22, 30, 23 }, + { 10, 25, 11, 4, 4, 5, 5, 21, 18, 5, 29, 30, 53, 61, 54 }, + { 34, 33, 27, 27, 52, 12, 13, 5, 34, 43, 37, 60, 45, 46, 54 }, + { 33, 18, 27, 13, 21, 21, 29, 22, 11, 20, 29, 30, 30, 38, 46 }, + { 8, 12, 8, 8, 8, 4, 8, 6, 9, 8, 8, 6, 9, 12, 12 }, + { 7, 13, 8, 8, 8, 10, 7, 7, 9, 8, 6, 5, 12, 3, 12 }, + { 8, 12, 6, 13, 3, 3, 12, 13, 2, 0, 0, 0, 3, 0, 4 }, + { 8, 12, 8, 8, 8, 5, 12, 8, 13, 9, 8, 6, 13, 2, 8 }, + { 32, 32, 25, 25, 25, 4, 11, 4, 11, 32, 4, 4, 25, 4, 32 }, + { 18, 18, 25, 32, 32, 25, 4, 4, 18, 25, 18, 4, 25, 11, 32 }, + { 25, 11, 18, 11, 11, 18, 4, 25, 18, 18, 25, 25, 4, 4, 25 }, + { 25, 25, 4, 18, 18, 4, 25, 4, 18, 32, 4, 11, 18, 4, 4 }, + { 133, 82, 103, 146, 162, 108, 195, 117, 97, 84, 83, 130, 115, 184, 146 }, + { 98, 131, 139, 133, 150, 123, 150, 120, 234, 216, 249, 248, 251, 235, 101 }, + { 102, 145, 100, 98, 146, 128, 120, 186, 83, 114, 98, 99, 70, 133, 101 }, + { 194, 226, 123, 103, 119, 198, 117, 104, 184, 252, 134, 199, 134, 131, 148 }, + { 83, 116, 99, 185, 161, 232, 69, 234, 122, 116, 116, 116, 113, 235, 253 }, + { 107, 131, 251, 234, 186, 138, 227, 176, 132, 212, 116, 116, 199, 116, 232 }, + { 136, 88, 181, 116, 102, 116, 99, 197, 67, 98, 115, 99, 104, 116, 149 }, + { 101, 147, 124, 140, 152, 153, 130, 245, 232, 233, 232, 216, 150, 131, 98 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1258 1286 + { 28, 34, 26, 34, 27, 27, 35, 28, 11, 19, 19, 27, 28, 28, 29, 27, 12, 28, 28, 21, 29, 22, 20, 36, 29, 44, 30, 22, 38 }, + { 61, 10, 18, 3, 11, 19, 27, 28, 3, 34, 19, 27, 12, 20, 21, 27, 12, 28, 28, 21, 29, 22, 43, 36, 21, 44, 22, 45, 38 }, + { 29, 26, 42, 34, 19, 35, 58, 13, 19, 19, 19, 27, 12, 28, 29, 35, 19, 35, 20, 36, 36, 22, 12, 20, 28, 5, 21, 21, 30 }, + { 59, 26, 26, 19, 19, 12, 35, 13, 11, 19, 19, 27, 28, 28, 29, 27, 12, 28, 28, 21, 29, 22, 28, 36, 29, 44, 30, 22, 38 }, + { 4, 5, 10, 6, 10, 13, 10, 10, 10, 13, 10, 12, 13, 13, 10, 10, 13, 13, 9, 13, 13, 10, 3, 13, 13, 12, 13, 13, 13 }, + { 8, 0, 13, 3, 13, 10, 13, 9, 10, 12, 13, 13, 13, 13, 10, 10, 10, 13, 10, 13, 13, 10, 10, 13, 13, 12, 13, 13, 13 }, + { 5, 7, 2, 10, 13, 3, 8, 4, 1, 8, 8, 6, 13, 12, 5, 8, 8, 5, 12, 8, 8, 9, 3, 10, 9, 9, 10, 12, 13 }, + { 5, 8, 7, 10, 13, 13, 13, 10, 10, 13, 10, 12, 13, 13, 10, 9, 13, 13, 9, 13, 13, 10, 6, 13, 13, 12, 13, 13, 13 }, + { 4, 18, 4, 4, 4, 4, 4, 25, 25, 11, 4, 11, 4, 4, 11, 4, 4, 4, 4, 11, 4, 4, 4, 4, 4, 11, 4, 4, 4 }, + { 32, 18, 32, 11, 11, 4, 4, 18, 18, 4, 4, 4, 11, 11, 11, 18, 4, 4, 4, 18, 4, 4, 4, 4, 4, 11, 4, 4, 4 }, + { 11, 32, 11, 11, 4, 18, 18, 4, 4, 11, 4, 4, 32, 11, 4, 11, 18, 4, 32, 25, 25, 18, 4, 4, 11, 4, 4, 11, 4 }, + { 18, 11, 4, 4, 11, 4, 4, 25, 25, 11, 4, 4, 4, 4, 18, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 11, 4, 4 }, + { 125, 116, 137, 122, 118, 234, 250, 217, 88, 85, 250, 219, 180, 232, 169, 113, 234, 184, 251, 200, 170, 250, 135, 232, 153, 235, 118, 228, 234 }, + { 253, 122, 194, 147, 232, 184, 249, 210, 193, 227, 103, 103, 218, 234, 227, 250, 118, 153, 118, 234, 202, 99, 121, 232, 216, 119, 201, 234, 67 }, + { 227, 117, 177, 119, 117, 90, 234, 203, 81, 68, 217, 218, 234, 186, 218, 83, 120, 234, 250, 179, 201, 200, 85, 195, 119, 219, 101, 199, 234 }, + { 252, 132, 215, 130, 234, 194, 168, 154, 121, 235, 153, 167, 234, 186, 227, 234, 250, 218, 234, 234, 234, 118, 136, 234, 234, 149, 234, 202, 90 }, + { 134, 216, 211, 88, 234, 250, 235, 253, 137, 108, 121, 234, 213, 101, 154, 85, 220, 251, 116, 219, 150, 133, 116, 89, 115, 123, 233, 216, 117 }, + { 132, 215, 217, 226, 199, 117, 84, 105, 116, 131, 116, 104, 169, 199, 167, 133, 89, 101, 185, 203, 213, 203, 123, 149, 118, 103, 217, 235, 150 }, + { 117, 122, 154, 102, 121, 100, 217, 250, 89, 83, 250, 219, 133, 218, 153, 83, 218, 212, 234, 234, 181, 200, 106, 202, 132, 235, 101, 103, 218 }, + { 196, 179, 225, 178, 162, 234, 154, 180, 148, 147, 116, 103, 234, 218, 138, 203, 234, 218, 251, 217, 234, 106, 135, 233, 218, 136, 234, 231, 74 }, + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1287 1301 + { 5, 11, 4, 4, 12, 5, 5, 6, 34, 19, 12, 35, 13, 21, 22 }, + { 51, 10, 18, 11, 35, 12, 5, 29, 42, 27, 12, 51, 5, 14, 30 }, + { 4, 11, 12, 12, 43, 28, 36, 5, 52, 52, 29, 5, 13, 45, 7 }, + { 5, 11, 35, 4, 20, 13, 5, 6, 50, 4, 12, 20, 13, 5, 30 }, + { 4, 4, 8, 8, 12, 5, 9, 13, 4, 10, 13, 13, 13, 13, 13 }, + { 3, 13, 10, 9, 13, 12, 12, 10, 7, 13, 12, 12, 13, 8, 13 }, + { 4, 2, 4, 12, 4, 12, 13, 2, 0, 0, 10, 3, 0, 8, 10 }, + { 10, 4, 4, 4, 8, 8, 12, 9, 2, 9, 13, 13, 13, 13, 13 }, + { 32, 4, 18, 4, 25, 4, 18, 25, 18, 11, 4, 25, 11, 18, 4 }, + { 18, 32, 18, 4, 4, 4, 25, 11, 32, 18, 32, 18, 11, 4, 11 }, + { 4, 4, 18, 4, 25, 4, 4, 4, 11, 18, 4, 18, 18, 25, 25 }, + { 4, 4, 4, 4, 11, 11, 25, 11, 18, 11, 4, 32, 4, 4, 4 }, + { 137, 200, 101, 165, 102, 196, 89, 132, 99, 84, 66, 113, 179, 183, 199 }, + { 131, 165, 252, 202, 233, 232, 249, 234, 204, 228, 232, 233, 234, 233, 234 }, + { 218, 182, 209, 91, 90, 154, 201, 248, 96, 66, 168, 177, 234, 83, 233 }, + { 114, 168, 232, 169, 231, 98, 214, 117, 250, 201, 235, 234, 217, 252, 233 }, + { 212, 194, 115, 67, 100, 114, 72, 203, 116, 245, 185, 121, 252, 252, 196 }, + { 115, 116, 121, 88, 244, 228, 83, 114, 182, 133, 137, 113, 158, 167, 234 }, + { 210, 234, 138, 157, 105, 186, 227, 165, 115, 82, 88, 112, 202, 234, 200 }, + { 102, 149, 221, 150, 151, 235, 182, 117, 180, 215, 217, 217, 234, 201, 218 }, + }), +}; +#else +const CtxSet ContextSetCfg::GtxFlagCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ + { 25, 1, 40, 25, 33, 11, 9, 25, 25, 18, 12, 17, 33, 26, 19, 13, 18, 19, 20, 28, 22, }, + { 17, 0, 9, 25, 25, 26, 1, 25, 25, 18, 12, 17, 33, 26, 19, 13, 33, 19, 20, 28, 22, }, + { 25, 0, 40, 17, 33, 26, 0, 17, 25, 33, 19, 9, 25, 18, 34, 20, 25, 18, 11, 12, 29, }, + { 25, 1, 40, 25, 33, 11, 9, 25, 25, 18, 12, 17, 33, 26, 19, 13, 18, 19, 20, 28, 22, }, + { 4, 13, 10, 10, 10, 5, 12, 9, 9, 9, 5, 13, 9, 9, 9, 9, 6, 9, 9, 9, 9, }, + { 4, 13, 10, 10, 10, 5, 12, 10, 10, 10, 6, 13, 10, 9, 10, 9, 6, DWS, DWS, 9, 10, }, + { 2, DWS, 5, 5, 9, 2, 9, DWS, 9, 12, 5, DWS, 12, DWS, 4, 5, 6, 9, 5, 10, 5, }, + { 4, 13, 10, 10, 10, 5, 12, 9, 9, 9, 5, 13, 9, 9, 9, 9, 6, 9, 9, 9, 9, }, + { 11, 25, DWE, 11, 11, DWE, DWE, 11, 4, 4, 11, 11, 11, 11, 11, 11, 4, DWE, 11, 11, 4, }, + { 25, 25, 11, 11, 4, DWE, DWE, 11, 4, 4, 11, 11, 11, 11, DWE, 11, 4, 11, 11, 11, 4, }, + { 4, 4, 4, DWE, 25, DWE, 4, 4, 4, 11, 11, 4, 25, DWE, 4, 11, 11, 25, 11, 25, 4, }, + { 11, 25, DWE, 11, 11, DWE, DWE, 11, 4, 4, 11, 11, 11, 11, 11, 11, 4, DWE, 11, 11, 4, }, + { 99, 71, 83, 84, 91, 163, 73, 83, 135, 121, 108, 85, 100, 148, 148, 116, 101, 107, 121, 118, 137, }, + { 125, 102, 118, 116, 115, 117, 164, 134, 117, 147, 117, 108, 116, 117, 118, 101, 163, 116, 116, 115, 89, }, + { 99, 71, 83, 84, 91, 163, 73, 83, 135, 121, 108, 85, 100, 148, 148, 116, 101, 107, 121, 118, 137, }, + { 125, 102, 118, 116, 115, 117, 164, 134, 117, 147, 117, 108, 116, 117, 118, 101, 163, 116, 116, 115, 89, }, + { 99, 71, 83, 84, 91, 163, 73, 83, 135, 121, 108, 85, 100, 148, 148, 116, 101, 107, 121, 118, 137, }, + { 125, 102, 118, 116, 115, 117, 164, 134, 117, 147, 117, 108, 116, 117, 118, 101, 163, 116, 116, 115, 89, }, + { 99, 71, 83, 84, 91, 163, 73, 83, 135, 121, 108, 85, 100, 148, 148, 116, 101, 107, 121, 118, 137, }, + { 125, 102, 118, 116, 115, 117, 164, 134, 117, 147, 117, 108, 116, 117, 118, 101, 163, 116, 116, 115, 89, }, + }), + ContextSetCfg::addCtxSet + ({ + { 40, 9, 25, 3, 3, 12, 25, 18, 19, 28, 37, }, + { 17, 1, 17, 2, 3, 4, 25, 18, 11, 12, 14, }, + { 41, 9, 25, 33, 42, 27, 2, 41, 50, 36, 45, }, + { 40, 9, 25, 3, 3, 12, 25, 18, 19, 28, 37, }, + { DWS, 12, DWS, DWS, DWS, 4, 4, DWS, 10, 4, 10, }, + { 4, DWS, 12, DWS, 4, 4, 4, 4, 4, 4, DWS, }, + { 4, DWS, 9, 10, 4, 3, 0, 1, 0, 1, 3, }, + { DWS, 12, DWS, DWS, DWS, 4, 4, DWS, 10, 4, 10, }, + { 25, 25, DWE, 25, 25, 11, 4, 25, 25, 4, 4, }, + { 25, 25, 25, 25, 25, 25, 11, DWE, 25, 11, 4, }, + { DWE, 25, 25, 4, 4, 4, 4, 25, 25, 25, 25, }, + { 25, 25, DWE, 25, 25, 11, 4, 25, 25, 4, 4, }, + { 99, 82, 92, 177, 115, 117, 99, 83, 160, 228, 179, }, + { 242, 195, 212, 117, 118, 103, 149, 123, 180, 123, 122, }, + { 99, 82, 92, 177, 115, 117, 99, 83, 160, 228, 179, }, + { 242, 195, 212, 117, 118, 103, 149, 123, 180, 123, 122, }, + { 99, 82, 92, 177, 115, 117, 99, 83, 160, 228, 179, }, + { 242, 195, 212, 117, 118, 103, 149, 123, 180, 123, 122, }, + { 99, 82, 92, 177, 115, 117, 99, 83, 160, 228, 179, }, + { 242, 195, 212, 117, 118, 103, 149, 123, 180, 123, 122, }, + }), + ContextSetCfg::addCtxSet + ({ + { 25, 25, 19, 27, 20, 29, 33, 12, 28, 21, 22, 34, 28, 29, 29, 30, 28, 29, 45, 30, 23, }, + { 25, 25, 19, 27, 20, 21, 33, 12, 28, 21, 22, 34, 28, 29, 29, 30, 28, 37, 45, 30, 23, }, + { 9, 17, 26, 27, CNU, 21, 25, 19, CNU, 36, 37, 33, CNU, 28, 29, 30, 19, 36, 37, 45, 38, }, + { 25, 25, 19, 27, 20, 29, 33, 12, 28, 21, 22, 34, 28, 29, 29, 30, 28, 29, 45, 30, 23, }, + { 9, 9, 7, 10, 10, 10, 13, 10, 13, 13, 13, 9, 9, 10, 10, 13, 10, DWS, 9, 10, 13, }, + { 9, 6, 7, 10, 10, 10, 13, 10, 13, 13, 13, 9, 10, 10, 13, 13, 9, 9, 10, 9, 13, }, + { 12, DWS, DWS, 12, 10, DWS, 9, 9, 13, 13, 10, 9, 10, 9, DWS, DWS, 5, DWS, 10, DWS, 9, }, + { 9, 9, 7, 10, 10, 10, 13, 10, 13, 13, 13, 9, 9, 10, 10, 13, 10, DWS, 9, 10, 13, }, + { DWE, 11, 4, 4, 4, DWE, 11, 4, 4, 4, DWE, 4, 4, 4, 4, 11, DWE, 11, 4, 11, 11, }, + { DWE, 4, 4, 4, 4, DWE, 4, 4, 4, 4, 11, 4, 4, 4, 4, 11, 11, 11, 11, 4, 11, }, + { DWE, DWE, 11, 25, 25, DWE, 11, 11, DWE, 4, 4, DWE, DWE, 11, 4, 4, 11, 4, DWE, 4, 11, }, + { DWE, 11, 4, 4, 4, DWE, 11, 4, 4, 4, DWE, 4, 4, 4, 4, 11, DWE, 11, 4, 11, 11, }, + { 84, 83, 116, 147, 121, 118, 85, 163, 213, 117, 105, 104, 122, 121, 228, 132, 195, 181, 121, 181, 135, }, + { 179, 117, 116, 100, 101, 116, 117, DWO, 105, 185, 118, 120, 116, 131, 123, 120, 117, 101, 162, 102, 74, }, + { 84, 83, 116, 147, 121, 118, 85, 163, 213, 117, 105, 104, 122, 121, 228, 132, 195, 181, 121, 181, 135, }, + { 179, 117, 116, 100, 101, 116, 117, DWO, 105, 185, 118, 120, 116, 131, 123, 120, 117, 101, 162, 102, 74, }, + { 84, 83, 116, 147, 121, 118, 85, 163, 213, 117, 105, 104, 122, 121, 228, 132, 195, 181, 121, 181, 135, }, + { 179, 117, 116, 100, 101, 116, 117, DWO, 105, 185, 118, 120, 116, 131, 123, 120, 117, 101, 162, 102, 74, }, + { 84, 83, 116, 147, 121, 118, 85, 163, 213, 117, 105, 104, 122, 121, 228, 132, 195, 181, 121, 181, 135, }, + { 179, 117, 116, 100, 101, 116, 117, DWO, 105, 185, 118, 120, 116, 131, 123, 120, 117, 101, 162, 102, 74, }, + }), + ContextSetCfg::addCtxSet + ({ + { 40, 18, 20, 5, 13, 14, 43, 29, 45, 38, 46, }, + { 40, 18, 12, 5, 5, 6, 20, 14, 37, 30, 46, }, + { 17, 33, CNU, 28, 13, 21, 42, 37, 53, 61, 46, }, + { 40, 18, 20, 5, 13, 14, 43, 29, 45, 38, 46, }, + { 12, 13, 9, 12, 12, DWS, DWS, DWS, DWS, 13, 13, }, + { 12, 13, 12, 12, 12, DWS, DWS, DWS, DWS, 10, 12, }, + { DWS, 10, 10, DWS, 7, 12, 4, 3, 0, 0, 4, }, + { 12, 13, 9, 12, 12, DWS, DWS, DWS, DWS, 13, 13, }, + { 25, DWE, 11, 25, 25, 4, DWE, DWE, 11, 25, DWE, }, + { 25, 11, DWE, 25, 25, 25, 11, 25, 25, 25, DWE, }, + { DWE, 25, DWE, 4, 4, 4, 25, 11, 11, 4, 25, }, + { 25, DWE, 11, 25, 25, 4, DWE, DWE, 11, 25, DWE, }, + { 87, 86, 100, 115, 194, 228, 116, 226, 101, 90, 165, }, + { 116, 115, 148, 121, 228, 133, DWO, 219, 148, 213, 99, }, + { 87, 86, 100, 115, 194, 228, 116, 226, 101, 90, 165, }, + { 116, 115, 148, 121, 228, 133, DWO, 219, 148, 213, 99, }, + { 87, 86, 100, 115, 194, 228, 116, 226, 101, 90, 165, }, + { 116, 115, 148, 121, 228, 133, DWO, 219, 148, 213, 99, }, + { 87, 86, 100, 115, 194, 228, 116, 226, 101, 90, 165, }, + { 116, 115, 148, 121, 228, 133, DWO, 219, 148, 213, 99, }, + }), +}; +#endif + +const CtxSet ContextSetCfg::TsSigCoeffGroupCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1302 1304 + { 18, 28, 38 }, + { 18, 43, 61 }, + { 11, 20, 30 }, + { 18, 36, 46 }, + { 5, 5, 8 }, + { 5, 5, 4 }, + { 6, 10, 9 }, + { 5, 4, 8 }, + { 18, 11, 4 }, + { 18, 11, 4 }, + { 18, 18, 4 }, + { 18, 4, 4 }, + { 120, 250, 132 }, + { 227, 250, 103 }, + { 120, 186, 123 }, + { 147, 180, 100 }, + { 116, 200, 171 }, + { 242, 153, 83 }, + { 124, 141, 149 }, + { 147, 230, 89 }, + }); + + +const CtxSet ContextSetCfg::TsSigFlagCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1305 1307 + { 25, 28, 30 }, + { 25, 43, 38 }, + { 25, 35, 37 }, + { 25, 28, 30 }, + { 13, 13, 9 }, + { 13, 13, 5 }, + { 13, 9, 6 }, + { 13, 13, 9 }, + { 4, 18, 11 }, + { 4, 4, 4 }, + { 4, 4, 18 }, + { 4, 4, 4 }, + { 72, 234, 91 }, + { 83, 234, 98 }, + { 74, 234, 131 }, + { 83, 218, 108 }, + { 74, 251, 107 }, + { 101, 251, 105 }, + { 68, 234, 89 }, + { 83, 234, 114 }, + }); + + + + +const CtxSet ContextSetCfg::TsParFlagCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1308 1308 + { 4 }, + { 11 }, + { 19 }, + { 11 }, + { 9 }, + { 5 }, + { 9 }, + { 8 }, + { 18 }, + { 11 }, + { 11 }, + { 18 }, + { 242 }, + { 100 }, + { 211 }, + { 108 }, + { 116 }, + { 131 }, + { 148 }, + { 102 }, + }); + +const CtxSet ContextSetCfg::TsGtxFlagCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1309 1313 + { 35, 3, 4, 5, 5 }, + { 35, 3, 4, 59, 4 }, + { 35, 3, 3, 4, 4 }, + { 35, 3, 4, 5, 5 }, + { 8, 1, 1, 4, 4 }, + { 8, 1, 1, 4, 1 }, + { 8, 1, 1, 5, 4 }, + { 8, 1, 1, 4, 4 }, + { 18, 11, 11, 18, 18 }, + { 18, 4, 11, 18, 18 }, + { 18, 4, 4, 18, 18 }, + { 18, 4, 11, 18, 18 }, + { 119, 164, 228, 243, 243 }, + { 119, 116, 116, 108, 104 }, + { 119, 212, 212, 148, 227 }, + { 119, 117, 117, 108, 122 }, + { 119, 148, 244, 242, 148 }, + { 119, 117, 117, 101, 102 }, + { 119, 244, 180, 243, 243 }, + { 119, 116, 117, 105, 105 }, + }); + + +const CtxSet ContextSetCfg::TsLrg1FlagCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1314 1317 + { 5, 5, 5, 14 }, + { 42, 5, 4, 7 }, + { 4, 20, 13, 35 }, + { 5, 13, 13, 7 }, + { 4, 1, 1, 5 }, + { 0, 1, 1, 5 }, + { 1, 1, 1, 8 }, + { 4, 1, 1, 5 }, + { 18, 11, 11, 18 }, + { 11, 4, 4, 18 }, + { 4, 4, 4, 18 }, + { 18, 4, 4, 18 }, + { 117, 243, 243, 210 }, + { 105, 116, 116, 108 }, + { 125, 243, 243, 194 }, + { 118, 116, 116, 108 }, + { 118, 243, 243, 119 }, + { 117, 116, 116, 119 }, + { 117, 227, 243, 242 }, + { 116, 116, 116, 108 }, +}); + +const CtxSet ContextSetCfg::TsResidualSignCtxSetSwitch = ContextSetCfg::addCtxSet + ({ +// ctx 1318 1323 + { 12, 17, 54, 35, 33, 38 }, + { 12, 17, 61, 58, 17, 54 }, + { 36, 10, 46, 35, 35, 35 }, + { 12, 17, 46, 27, 41, 38 }, + { 0, 1, 4, 5, 4, 8 }, + { 0, 5, 1, 7, 7, 9 }, + { 1, 5, 5, 8, 8, 8 }, + { 0, 1, 1, 5, 4, 8 }, + { 11, 4, 18, 18, 4, 18 }, + { 18, 4, 4, 18, 32, 32 }, + { 4, 18, 18, 18, 18, 18 }, + { 11, 4, 4, 18, 4, 18 }, + { 116, 116, 132, 118, 118, 228 }, + { 116, 118, 99, 99, 120, 123 }, + { 116, 146, 120, 170, 101, 107 }, + { 116, 163, 115, 98, 165, 169 }, + { 117, 147, 116, 119, 119, 119 }, + { 117, 116, 106, 119, 119, 119 }, + { 116, 132, 118, 124, 244, 132 }, + { 116, 118, 115, 100, 150, 169 }, + }); + + +const CtxSet ContextSetCfg::LastXCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +#if TU_256 +// ctx 1324 1359 + { 6, 5, 4, 14, 5, 11, 14, 13, 13, 19, 22, 6, 6, 20, 11, 22, 7, 14, 28, 57, 3, 14, 6, 4, 62, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 5, 4, 14, 5, 3, 7, 6, 13, 10, 30, 14, 6, 4, 3, 37, 44, 30, 21, 3, 13, 7, 20, 29, 39, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 13, 6, 5, 6, 7, 5, 5, 14, 14, 12, 13, 14, 21, 21, 4, 13, 22, 22, 6, 6, 34, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 13, 4, 14, 13, 4, 14, 6, 13, 19, 22, 6, 6, 12, 26, 22, 7, 14, 13, 26, 17, 15, 14, 36, 2, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 9, 5, 5, 6, 7, 4, 6, 5, 0, 0, 6, 1, 1, 0, 0, 2, 1, 1, 0, 2, 0, 0, 7, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 10, 5, 8, 6, 5, 7, 3, 6, 1, 0, 7, 0, 1, 1, 0, 2, 1, 2, 0, 0, 10, 0, 0, 6, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 5, 4, 1, 5, 4, 1, 5, 1, 1, 5, 0, 1, 1, 0, 1, 0, 0, 0, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 9, 5, 5, 6, 5, 4, 6, 6, 0, 0, 6, 1, 1, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 3, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 11, 4, 4, 11, 25, 25, 11, 25, 18, 18, 11, 18, 25, 32, 32, 4, 18, 25, 32, 25, 32, 4, 25, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 18, 11, 18, 25, 4, 25, 18, 11, 18, 4, 25, 32, 32, 11, 11, 25, 32, 32, 32, 11, 32, 18, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 11, 4, 11, 18, 18, 11, 25, 18, 25, 25, 11, 25, 32, 32, 18, 11, 32, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 11, 11, 11, 25, 25, 11, 25, 11, 18, 18, 18, 25, 32, 32, 4, 18, 25, 32, 32, 32, 18, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 131, 117, 140, 171, 154, 116, 251, 137, 125, 116, 202, 141, 123, 183, 116, 138, 125, 117, 126, 132, 148, 167, 250, 244, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 130, 107, 102, 251, 250, 102, 244, 252, 245, 116, 245, 253, 179, 246, 116, 150, 253, 211, 213, 194, 116, 251, 250, 244, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 101, 117, 102, 139, 134, 116, 150, 123, 134, 133, 153, 141, 125, 253, 116, 136, 117, 118, 150, 250, 165, 116, 253, 251, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 99, 243, 102, 245, 163, 106, 215, 242, 164, 116, 162, 246, 147, 147, 116, 249, 245, 243, 148, 116, 80, 196, 132, 230, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 115, 163, 149, 116, 131, 227, 132, 116, 148, 115, 115, 118, 118, 132, 116, 140, 132, 116, 116, 116, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 115, 116, 104, 119, 140, 104, 148, 146, 244, 115, 148, 197, 147, 179, 116, 164, 246, 248, 116, 212, 164, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 130, 132, 168, 134, 139, 117, 150, 123, 119, 116, 139, 139, 125, 237, 116, 136, 123, 122, 142, 236, 118, 132, 254, 251, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 114, 116, 101, 244, 243, 104, 243, 243, 181, 116, 227, 244, 147, 212, 116, 181, 164, 147, 132, 158, 116, 148, 116, 153, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, +#else + { 21, 5, 4, 6, 6, 4, 6, 14, 14, 4, 14, 7, 30, 14, 4, 22, 38, 15, 22, 6 }, + { 21, 5, 4, 6, 6, 4, 6, 14, 14, 4, 14, 7, 30, 14, 4, 22, 38, 15, 22, 6 }, + { 21, 6, 12, 14, 7, 4, 14, 7, 6, 4, 14, 7, 14, 6, 5, 14, 7, 14, 14, 22 }, + { 21, 5, 4, 6, 6, 4, 6, 14, 14, 4, 14, 7, 30, 14, 4, 22, 38, 15, 22, 6 }, + { 9, 5, 5, 6, 5, 4, 5, 5, 1, 1, 5, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 9, 5, 5, 6, 5, 4, 5, 5, 1, 1, 5, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 5, 5, 5, 6, 5, 1, 6, 5, 2, 1, 6, 1, 1, 1, 1, 2, 2, 1, 1, 1 }, + { 9, 5, 5, 6, 5, 4, 5, 5, 1, 1, 5, 1, 1, 0, 0, 1, 1, 1, 0, 0 }, + { 25, 18, 18, 18, 25, 25, 18, 25, 18, 32, 25, 18, 25, 18, 32, 18, 18, 25, 32, 32 }, + { 25, 18, 18, 18, 25, 25, 18, 25, 18, 32, 25, 18, 25, 18, 32, 18, 18, 25, 32, 32 }, + { 18, 18, 18, 18, 18, 11, 18, 18, 18, 18, 18, 11, 18, 25, 25, 11, 11, 18, 25, 32 }, + { 25, 18, 18, 18, 25, 25, 18, 25, 18, 32, 25, 18, 25, 18, 32, 18, 18, 25, 32, 32 }, + { 116, 117, 118, 125, 119, 118, 122, 118, 126, 132, 118, 121, 118, 228, 116, 133, 126, 118, 148, 148 }, + { 117, 118, 117, 132, 228, 103, 132, 228, 149, 117, 164, 149, 149, 229, 116, 126, 132, 227, 228, 228 }, + { 116, 117, 118, 125, 119, 118, 122, 118, 126, 132, 118, 121, 118, 228, 116, 133, 126, 118, 148, 148 }, + { 117, 118, 117, 132, 228, 103, 132, 228, 149, 117, 164, 149, 149, 229, 116, 126, 132, 227, 228, 228 }, + { 116, 117, 118, 125, 119, 118, 122, 118, 126, 132, 118, 121, 118, 228, 116, 133, 126, 118, 148, 148 }, + { 117, 118, 117, 132, 228, 103, 132, 228, 149, 117, 164, 149, 149, 229, 116, 126, 132, 227, 228, 228 }, + { 116, 117, 118, 125, 119, 118, 122, 118, 126, 132, 118, 121, 118, 228, 116, 133, 126, 118, 148, 148 }, + { 117, 118, 117, 132, 228, 103, 132, 228, 149, 117, 164, 149, 149, 229, 116, 126, 132, 227, 228, 228 }, +#endif +}), + ContextSetCfg::addCtxSet + ({ +// ctx 1360 1362 + { 12, 11, 25 }, + { 43, 58, 48 }, + { 12, 5, 4 }, + { 4, 11, 2 }, + { 5, 4, 4 }, + { 5, 10, 4 }, + { 0, 4, 4 }, + { 5, 4, 4 }, + { 11, 18, 11 }, + { 11, 32, 4 }, + { 4, 25, 25 }, + { 11, 18, 18 }, + { 118, 119, 118 }, + { 149, 118, 101 }, + { 116, 121, 105 }, + { 137, 115, 103 }, + { 119, 134, 136 }, + { 133, 131, 100 }, + { 179, 117, 122 }, + { 119, 116, 101 }, + }), +}; + +const CtxSet ContextSetCfg::LastYCtxSetSwitch[] = +{ + ContextSetCfg::addCtxSet + ({ +#if TU_256 +// ctx 1363 1398 + { 21, 13, 12, 14, 6, 19, 22, 14, 12, 26, 22, 7, 5, 5, 26, 30, 15, 13, 5, 42, 3, 22, 13, 20, 62, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 6, 5, 35, 14, 6, 19, 7, 14, 5, 42, 22, 22, 5, 12, 34, 37, 22, 13, 20, 3, 58, 28, 5, 15, 39, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 5, 13, 20, 13, 6, 20, 13, 14, 5, 35, 13, 7, 13, 12, 11, 36, 30, 21, 28, 6, 11, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 21, 13, 12, 14, 14, 4, 22, 14, 5, 11, 22, 7, 21, 5, 11, 30, 15, 14, 21, 27, 25, 7, 29, 13, 0, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35, 35 }, + { 9, 5, 9, 7, 6, 5, 6, 6, 1, 0, 6, 5, 1, 1, 0, 2, 3, 1, 3, 0, 0, 2, 1, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 9, 5, 12, 6, 6, 5, 6, 5, 6, 0, 5, 5, 1, 0, 0, 2, 2, 0, 0, 0, 0, 3, 4, 4, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 5, 4, 4, 1, 4, 4, 5, 5, 4, 1, 1, 2, 0, 0, 0, 1, 3, 0, 1, 0, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 9, 5, 13, 6, 5, 9, 6, 5, 1, 0, 6, 5, 1, 1, 0, 2, 2, 2, 0, 0, 0, 1, 0, 3, 0, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8 }, + { 18, 4, 11, 11, 11, 4, 11, 11, 11, 11, 18, 11, 18, 32, 32, 4, 4, 11, 32, 32, 32, 11, 4, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 32, 11, 11, 11, 11, 11, 25, 4, 11, 4, 11, 18, 32, 11, 4, 11, 11, 32, 4, 18, 32, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 4, 4, 11, 11, 18, 18, 32, 18, 11, 4, 11, 32, 32, 25, 18, 18, 25, 32, 32, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 18, 4, 32, 18, 11, 25, 18, 11, 11, 11, 18, 11, 11, 32, 32, 11, 4, 18, 18, 32, 32, 11, 11, 32, 25, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 18 }, + { 106, 123, 148, 212, 133, 117, 165, 122, 173, 149, 155, 117, 125, 182, 116, 134, 119, 125, 123, 244, 116, 201, 251, 116, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 100, 107, 131, 178, 231, 132, 227, 250, 253, 117, 117, 197, 253, 253, 116, 244, 154, 253, 250, 244, 116, 227, 253, 244, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 114, 196, 100, 147, 117, 116, 131, 117, 135, 133, 137, 117, 125, 155, 164, 163, 124, 142, 134, 155, 218, 137, 252, 99, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 117, 117, 102, 213, 147, 116, 228, 118, 251, 117, 180, 164, 245, 245, 116, 135, 117, 254, 244, 116, 116, 130, 246, 250, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 116, 165, 154, 117, 133, 244, 115, 116, 117, 163, 148, 116, 125, 142, 132, 121, 133, 149, 122, 116, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 131, 132, 101, 118, 148, 116, 163, 196, 228, 116, 148, 185, 246, 244, 116, 132, 245, 149, 179, 249, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 114, 118, 146, 131, 117, 104, 122, 117, 157, 133, 133, 116, 125, 173, 116, 147, 117, 116, 126, 244, 116, 244, 125, 241, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, + { 242, 132, 224, 138, 181, 104, 138, 117, 253, 132, 123, 243, 253, 253, 116, 166, 179, 244, 182, 164, 116, 147, 254, 251, 116, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119, 119 }, +#else + { 13, 5, 4, 14, 6, 11, 14, 14, 5, 11, 14, 7, 6, 5, 3, 22, 38, 22, 14, 5 }, + { 13, 5, 4, 14, 6, 11, 14, 14, 5, 11, 14, 7, 6, 5, 3, 22, 38, 22, 14, 5 }, + { 5, 5, 20, 6, 6, 4, 6, 14, 5, 12, 14, 7, 13, 5, 20, 21, 7, 6, 5, 28 }, + { 13, 5, 4, 14, 6, 11, 14, 14, 5, 11, 14, 7, 6, 5, 3, 22, 38, 22, 14, 5 }, + { 9, 5, 8, 6, 5, 4, 6, 5, 4, 0, 6, 6, 1, 4, 0, 1, 1, 1, 1, 0 }, + { 9, 5, 8, 6, 5, 4, 6, 5, 4, 0, 6, 6, 1, 4, 0, 1, 1, 1, 1, 0 }, + { 6, 5, 5, 6, 5, 5, 6, 6, 5, 1, 2, 6, 1, 1, 0, 2, 2, 1, 0, 0 }, + { 9, 5, 8, 6, 5, 4, 6, 5, 4, 0, 6, 6, 1, 4, 0, 1, 1, 1, 1, 0 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 18, 32, 32, 18, 18, 25, 32, 32 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 18, 32, 32, 18, 18, 25, 32, 32 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 4, 18, 11, 18, 25, 11, 4, 11, 11, 25 }, + { 18, 18, 18, 18, 18, 18, 18, 18, 18, 18, 25, 25, 18, 32, 32, 18, 18, 25, 32, 32 }, + { 116, 120, 118, 119, 123, 118, 118, 124, 119, 132, 117, 116, 124, 134, 116, 126, 118, 119, 118, 196 }, + { 116, 118, 118, 126, 228, 117, 116, 147, 230, 117, 132, 195, 165, 229, 116, 118, 123, 149, 228, 228 }, + { 116, 120, 118, 119, 123, 118, 118, 124, 119, 132, 117, 116, 124, 134, 116, 126, 118, 119, 118, 196 }, + { 116, 118, 118, 126, 228, 117, 116, 147, 230, 117, 132, 195, 165, 229, 116, 118, 123, 149, 228, 228 }, + { 116, 120, 118, 119, 123, 118, 118, 124, 119, 132, 117, 116, 124, 134, 116, 126, 118, 119, 118, 196 }, + { 116, 118, 118, 126, 228, 117, 116, 147, 230, 117, 132, 195, 165, 229, 116, 118, 123, 149, 228, 228 }, + { 116, 120, 118, 119, 123, 118, 118, 124, 119, 132, 117, 116, 124, 134, 116, 126, 118, 119, 118, 196 }, + { 116, 118, 118, 126, 228, 117, 116, 147, 230, 117, 132, 195, 165, 229, 116, 118, 123, 149, 228, 228 }, +#endif + }), + ContextSetCfg::addCtxSet + ({ +// ctx 1399 1401 + { 19, 11, 41 }, + { 42, 19, 48 }, + { 4, 21, 43 }, + { 11, 4, 18 }, + { 6, 6, 5 }, + { 6, 9, 8 }, + { 0, 4, 0 }, + { 6, 5, 4 }, + { 18, 25, 25 }, + { 18, 25, 32 }, + { 4, 25, 11 }, + { 18, 25, 25 }, + { 115, 120, 124 }, + { 146, 116, 130 }, + { 115, 107, 122 }, + { 122, 115, 100 }, + { 118, 118, 250 }, + { 164, 163, 116 }, + { 107, 116, 149 }, + { 241, 146, 101 }, + }), +}; +#endif + + +const CtxSet ContextSetCfg::MVPIdx = ContextSetCfg::addCtxSet({ +// ctx 1402 1402 + { 34 }, + { 27 }, + { 41 }, + { 34 }, + { 10 }, + { 9 }, + { 13 }, + { 10 }, + { 11 }, + { 4 }, + { 25 }, + { 4 }, + { 114 }, + { 103 }, + { 115 }, + { 117 }, + { 129 }, + { 99 }, + { 99 }, + { 104 }, +}); + +const CtxSet ContextSetCfg::amFlagState = ContextSetCfg::addCtxSet({ +// ctx 1403 1403 + { 40 }, + { 26 }, + { 35 }, + { 25 }, + { 5 }, + { 5 }, + { 8 }, + { 5 }, + { 11 }, + { 4 }, + { 18 }, + { 4 }, + { 119 }, + { 107 }, + { 118 }, + { 108 }, + { 119 }, + { 119 }, + { 108 }, + { 108 }, +}); + +const CtxSet ContextSetCfg::SmvdFlag = ContextSetCfg::addCtxSet({ +// ctx 1404 1404 + { 35 }, + { 28 }, + { 35 }, + { 43 }, + { 0 }, + { 4 }, + { 8 }, + { 1 }, + { 4 }, + { 4 }, + { 18 }, + { 4 }, + { 126 }, + { 117 }, + { 109 }, + { 103 }, + { 119 }, + { 119 }, + { 125 }, + { 117 }, +}); + +#if JVET_AG0098_AMVP_WITH_SBTMVP +const CtxSet ContextSetCfg::amvpSbTmvpFlag = ContextSetCfg::addCtxSet({ +// ctx 1405 1406 + { 40, 0 }, + { 33, 49 }, + { 35, 35 }, + { 40, 34 }, + { 2, 0 }, + { 2, 1 }, + { 8, 8 }, + { 2, 1 }, + { 25, 18 }, + { 11, 4 }, + { 18, 18 }, + { 18, 4 }, + { 124, 236 }, + { 114, 116 }, + { 131, 125 }, + { 146, 132 }, + { 119, 119 }, + { 119, 119 }, + { 118, 125 }, + { 115, 117 }, +}); + +const CtxSet ContextSetCfg::amvpSbTmvpMvdIdx = ContextSetCfg::addCtxSet({ +// ctx 1407 1409 + { 5, 27, 0 }, + { 12, 34, 5 }, + { 35, 35, 35 }, + { 5, 4, 60 }, + { 0, 4, 4 }, + { 3, 8, 7 }, + { 8, 8, 8 }, + { 2, 4, 4 }, + { 4, 11, 4 }, + { 11, 18, 4 }, + { 18, 18, 18 }, + { 4, 4, 11 }, + { 157, 252, 100 }, + { 133, 102, 253 }, + { 146, 236, 106 }, + { 162, 99, 105 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 124, 172, 101 }, + { 133, 117, 253 }, +}); +#endif + +const CtxSet ContextSetCfg::SaoMergeFlag = ContextSetCfg::addCtxSet({ +// ctx 1410 1410 + { 10 }, + { 61 }, + { 61 }, + { 10 }, + { 0 }, + { 0 }, + { 0 }, + { 0 }, + { 4 }, + { 4 }, + { 4 }, + { 4 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 118 }, + { 116 }, + { 116 }, +}); + +const CtxSet ContextSetCfg::SaoTypeIdx = ContextSetCfg::addCtxSet({ +// ctx 1411 1411 + { 10 }, + { 4 }, + { 4 }, + { 10 }, + { 0 }, + { 8 }, + { 1 }, + { 1 }, + { 18 }, + { 32 }, + { 32 }, + { 18 }, + { 155 }, + { 148 }, + { 251 }, + { 252 }, + { 253 }, + { 253 }, + { 135 }, + { 181 }, +}); + +const CtxSet ContextSetCfg::BifCtrlFlags[3] = { + ContextSetCfg::addCtxSet({ +// ctx 1412 1412 + { 30 }, + { 15 }, + { 38 }, + { 30 }, + { 1 }, + { 1 }, + { 1 }, + { 1 }, + { 4 }, + { 4 }, + { 4 }, + { 4 }, + { 115 }, + { 115 }, + { 115 }, + { 115 }, + { 115 }, + { 115 }, + { 115 }, + { 115 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 1413 1413 + { 45 }, + { 37 }, + { 29 }, + { 37 }, + { 0 }, + { 0 }, + { 0 }, + { 0 }, + { 4 }, + { 4 }, + { 4 }, + { 4 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 1414 1414 + { 37 }, + { 37 }, + { 29 }, + { 45 }, + { 0 }, + { 0 }, + { 0 }, + { 0 }, + { 4 }, + { 4 }, + { 4 }, + { 4 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + { 116 }, + }), +}; + +const CtxSet ContextSetCfg::CcSaoControlIdc = ContextSetCfg::addCtxSet({ +// ctx 1415 1423 + { 26, 46, 62, 25, 46, 62, 25, 46, 54 }, + { 4, 54, 54, 18, 61, 62, 18, 46, 54 }, + { 59, 46, 62, 20, 54, 62, 60, 62, 62 }, + { 26, 46, 54, 11, 46, 62, 18, 61, 62 }, + { 8, 0, 4, 9, 0, 0, 10, 0, 0 }, + { 6, 0, 4, 7, 0, 0, 9, 0, 0 }, + { 0, 0, 8, 0, 1, 4, 0, 1, 0 }, + { 10, 0, 1, 6, 0, 0, 12, 0, 0 }, + { 25, 18, 11, 18, 25, 4, 18, 18, 11 }, + { 18, 11, 18, 18, 18, 4, 18, 18, 18 }, + { 32, 18, 11, 32, 25, 4, 32, 18, 4 }, + { 25, 11, 4, 18, 18, 4, 18, 18, 4 }, + { 82, 116, 149, 81, 116, 197, 80, 116, 135 }, + { 252, 132, 99, 148, 228, 116, 146, 244, 116 }, + { 98, 116, 125, 97, 132, 135, 82, 132, 166 }, + { 248, 228, 99, 230, 244, 116, 229, 244, 116 }, + { 116, 164, 105, 116, 131, 246, 116, 131, 185 }, + { 254, 132, 194, 254, 141, 99, 254, 252, 116 }, + { 81, 116, 149, 97, 132, 135, 65, 116, 150 }, + { 196, 148, 115, 213, 244, 116, 228, 244, 116 }, +}); + +const CtxSet ContextSetCfg::LFNSTIdx = ContextSetCfg::addCtxSet({ +// ctx 1424 1427 + { 51, 35, 43, 42 }, + { 36, 35, 51, 35 }, + { 35, 43, 50, 42 }, + { 51, 35, 43, 42 }, + { 10, 8, 5, 12 }, + { 10, 8, 6, 13 }, + { 8, 9, 5, 10 }, + { 10, 8, 5, 12 }, + { 4, 18, 11, 4 }, + { 4, 18, 11, 11 }, + { 18, 4, 4, 4 }, + { 4, 18, 11, 4 }, + { 105, 119, 118, 152 }, + { 122, 119, 103, 88 }, + { 116, 119, 116, 101 }, + { 116, 119, 115, 117 }, + { 119, 118, 132, 121 }, + { 119, 107, 116, 116 }, + { 194, 122, 116, 118 }, + { 119, 116, 116, 91 }, +}); + +#if JVET_AG0061_INTER_LFNST_NSPT +const CtxSet ContextSetCfg::InterLFNSTIdx = ContextSetCfg::addCtxSet({ +// ctx 1428 1430 + { 42, 28, 35 }, + { 35, 36, 43 }, + { 35, 35, 35 }, + { 35, 28, 35 }, + { 5, 9, 9 }, + { 5, 10, 10 }, + { 8, 8, 8 }, + { 6, 10, 10 }, + { 11, 4, 4 }, + { 4, 4, 4 }, + { 18, 18, 18 }, + { 11, 4, 4 }, + { 117, 251, 251 }, + { 117, 89, 100 }, + { 108, 133, 138 }, + { 132, 105, 116 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 116, 122, 151 }, + { 116, 105, 105 }, +}); +#endif + +const CtxSet ContextSetCfg::PLTFlag = ContextSetCfg::addCtxSet({ +// ctx 1431 1431 + { 0 }, + { 0 }, + { 25 }, + { 0 }, + { 0 }, + { 0 }, + { 2 }, + { 0 }, + { 4 }, + { 25 }, + { 25 }, + { 18 }, + { 116 }, + { 116 }, + { 116 }, + { 180 }, + { 121 }, + { 131 }, + { 116 }, + { 116 }, +}); + +const CtxSet ContextSetCfg::RotationFlag = ContextSetCfg::addCtxSet({ +// ctx 1432 1432 + { 50 }, + { 0 }, + { 35 }, + { 43 }, + { 4 }, + { 4 }, + { 2 }, + { 5 }, + { 32 }, + { 32 }, + { 11 }, + { 32 }, + { 115 }, + { 179 }, + { 217 }, + { 102 }, + { 130 }, + { 124 }, + { 130 }, + { 251 }, +}); + +const CtxSet ContextSetCfg::RunTypeFlag = ContextSetCfg::addCtxSet({ +// ctx 1433 1433 + { 37 }, + { 0 }, + { 42 }, + { 58 }, + { 0 }, + { 5 }, + { 9 }, + { 1 }, + { 4 }, + { 4 }, + { 32 }, + { 4 }, + { 117 }, + { 123 }, + { 151 }, + { 147 }, + { 107 }, + { 242 }, + { 116 }, + { 132 }, +}); + +const CtxSet ContextSetCfg::IdxRunModel = ContextSetCfg::addCtxSet({ +// ctx 1434 1438 + { 60, 46, 46, 46, 46 }, + { 0, 0, 0, 0, 0 }, + { 50, 37, 45, 30, 46 }, + { 59, 53, 38, 38, 46 }, + { 0, 2, 5, 0, 5 }, + { 1, 0, 0, 0, 0 }, + { 5, 2, 6, 10, 5 }, + { 4, 1, 6, 1, 2 }, + { 11, 25, 18, 4, 11 }, + { 25, 11, 18, 4, 4 }, + { 11, 4, 4, 18, 18 }, + { 18, 11, 18, 11, 11 }, + { 244, 115, 162, 118, 211 }, + { 125, 170, 182, 220, 100 }, + { 253, 197, 217, 214, 149 }, + { 172, 132, 117, 116, 116 }, + { 252, 118, 115, 103, 116 }, + { 252, 124, 119, 106, 116 }, + { 230, 117, 130, 124, 131 }, + { 125, 196, 150, 205, 131 }, +}); + +const CtxSet ContextSetCfg::CopyRunModel = ContextSetCfg::addCtxSet({ +// ctx 1439 1441 + { 31, 54, 39 }, + { 0, 0, 0 }, + { 39, 38, 54 }, + { 23, 31, 39 }, + { 0, 2, 8 }, + { 0, 0, 4 }, + { 0, 5, 8 }, + { 0, 2, 8 }, + { 4, 4, 18 }, + { 32, 32, 32 }, + { 32, 11, 18 }, + { 32, 4, 18 }, + { 133, 134, 152 }, + { 116, 163, 83 }, + { 123, 116, 253 }, + { 116, 116, 99 }, + { 116, 123, 134 }, + { 116, 163, 99 }, + { 164, 152, 151 }, + { 116, 116, 99 }, +}); + +const CtxSet ContextSetCfg::TransformSkipFlag = ContextSetCfg::addCtxSet({ +// ctx 1442 1443 + { 25, 1 }, + { 25, 0 }, + { 25, 9 }, + { 25, 1 }, + { 5, 5 }, + { 5, 6 }, + { 5, 5 }, + { 2, 5 }, + { 25, 18 }, + { 18, 25 }, + { 25, 25 }, + { 18, 18 }, + { 108, 99 }, + { 114, 114 }, + { 101, 104 }, + { 242, 114 }, + { 107, 102 }, + { 162, 130 }, + { 117, 99 }, + { 131, 114 }, +}); + +const CtxSet ContextSetCfg::MTSIdx = ContextSetCfg::addCtxSet({ +// ctx 1444 1447 + { 50, 53, 46, 35 }, + { 44, 46, 46, 35 }, + { 34, 53, 38, 35 }, + { 43, 53, 46, 35 }, + { 8, 9, 6, 8 }, + { 13, 10, 8, 8 }, + { 8, 9, 8, 8 }, + { 9, 9, 6, 8 }, + { 11, 18, 4, 18 }, + { 18, 25, 4, 18 }, + { 4, 18, 11, 18 }, + { 11, 25, 11, 18 }, + { 116, 118, 119, 119 }, + { 105, 138, 98, 119 }, + { 146, 134, 133, 119 }, + { 146, 90, 82, 119 }, + { 100, 133, 149, 119 }, + { 166, 99, 83, 119 }, + { 227, 120, 132, 119 }, + { 102, 104, 99, 119 }, +}); + +const CtxSet ContextSetCfg::ISPMode = ContextSetCfg::addCtxSet({ +// ctx 1448 1450 + { 33, 43, 25 }, + { 33, 35, 40 }, + { 33, 43, 33 }, + { 33, 43, 25 }, + { 5, 1, 9 }, + { 5, 1, 12 }, + { 9, 1, 9 }, + { 5, 1, 9 }, + { 18, 11, 25 }, + { 4, 11, 18 }, + { 18, 4, 18 }, + { 4, 4, 18 }, + { 103, 116, 82 }, + { 163, 117, 117 }, + { 100, 118, 139 }, + { 243, 211, 210 }, + { 98, 117, 82 }, + { 162, 118, 137 }, + { 108, 117, 115 }, + { 211, 243, 210 }, +}); + +const CtxSet ContextSetCfg::SbtFlag = ContextSetCfg::addCtxSet({ +// ctx 1451 1452 + { 40, 48 }, + { 48, 56 }, + { 35, 35 }, + { 40, 48 }, + { 2, 6 }, + { 2, 6 }, + { 8, 8 }, + { 3, 6 }, + { 4, 11 }, + { 4, 4 }, + { 18, 18 }, + { 4, 4 }, + { 122, 100 }, + { 117, 118 }, + { 117, 104 }, + { 118, 118 }, + { 119, 119 }, + { 119, 119 }, + { 118, 104 }, + { 117, 117 }, +}); + +const CtxSet ContextSetCfg::SbtQuadFlag = ContextSetCfg::addCtxSet({ +// ctx 1453 1453 + { 35 }, + { 35 }, + { 35 }, + { 50 }, + { 10 }, + { 10 }, + { 8 }, + { 10 }, + { 4 }, + { 11 }, + { 18 }, + { 4 }, + { 130 }, + { 102 }, + { 119 }, + { 100 }, + { 119 }, + { 119 }, + { 102 }, + { 100 }, +}); + +const CtxSet ContextSetCfg::SbtHorFlag = ContextSetCfg::addCtxSet({ +// ctx 1454 1456 + { 20, 58, 5 }, + { 20, 51, 19 }, + { 35, 35, 35 }, + { 20, 58, 13 }, + { 4, 5, 2 }, + { 5, 7, 5 }, + { 8, 8, 8 }, + { 5, 5, 2 }, + { 4, 18, 18 }, + { 4, 18, 11 }, + { 18, 18, 18 }, + { 4, 4, 11 }, + { 108, 163, 117 }, + { 103, 108, 131 }, + { 102, 114, 107 }, + { 118, 122, 131 }, + { 119, 119, 119 }, + { 119, 119, 119 }, + { 101, 243, 116 }, + { 117, 108, 147 }, +}); + +const CtxSet ContextSetCfg::SbtPosFlag = ContextSetCfg::addCtxSet({ +// ctx 1457 1457 + { 28 }, + { 20 }, + { 35 }, + { 20 }, + { 13 }, + { 13 }, + { 8 }, + { 13 }, + { 11 }, + { 4 }, + { 18 }, + { 11 }, + { 84 }, + { 163 }, + { 83 }, + { 122 }, + { 119 }, + { 119 }, + { 83 }, + { 103 }, +}); + +const CtxSet ContextSetCfg::ChromaQpAdjFlag = ContextSetCfg::addCtxSet({ +// ctx 1458 1458 + { 35 }, + { 35 }, + { 35 }, + { 35 }, + { 8 }, + { 8 }, + { 8 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, +}); + +const CtxSet ContextSetCfg::DimdFlag = ContextSetCfg::addCtxSet({ +// ctx 1459 1461 + { 40, 35, 35 }, + { 48, 35, 35 }, + { 25, 35, 35 }, + { 40, 35, 35 }, + { 9, 8, 8 }, + { 6, 8, 8 }, + { 6, 8, 8 }, + { 9, 8, 8 }, + { 11, 18, 18 }, + { 4, 18, 18 }, + { 4, 18, 18 }, + { 11, 18, 18 }, + { 149, 119, 119 }, + { 102, 119, 119 }, + { 100, 119, 119 }, + { 118, 119, 119 }, + { 116, 119, 119 }, + { 147, 119, 119 }, + { 131, 119, 119 }, + { 105, 119, 119 }, +}); + +const CtxSet ContextSetCfg::TimdFlag = ContextSetCfg::addCtxSet({ +// ctx 1462 1464 + { 41, 34, 34 }, + { 34, 57, 59 }, + { 57, 50, 58 }, + { 41, 49, 50 }, + { 6, 7, 10 }, + { 6, 10, 1 }, + { 6, 6, 2 }, + { 6, 7, 4 }, + { 4, 11, 32 }, + { 4, 25, 32 }, + { 4, 4, 4 }, + { 4, 11, 32 }, + { 100, 97, 90 }, + { 139, 250, 161 }, + { 99, 89, 117 }, + { 185, 211, 243 }, + { 107, 107, 124 }, + { 139, 134, 124 }, + { 100, 106, 100 }, + { 134, 195, 227 }, +}); + +const CtxSet ContextSetCfg::SgpmFlag = ContextSetCfg::addCtxSet({ +// ctx 1465 1467 + { 26, 26, 26 }, + { 33, 33, 41 }, + { 26, 27, 27 }, + { 34, 27, 34 }, + { 8, 4, 0 }, + { 6, 8, 4 }, + { 5, 8, 0 }, + { 8, 5, 0 }, + { 18, 25, 25 }, + { 4, 32, 32 }, + { 11, 32, 18 }, + { 18, 32, 32 }, + { 86, 107, 134 }, + { 243, 243, 116 }, + { 103, 119, 252 }, + { 211, 146, 99 }, + { 103, 88, 118 }, + { 180, 242, 244 }, + { 88, 108, 124 }, + { 243, 146, 116 }, +}); + +const CtxSet ContextSetCfg::ObmcFlag = ContextSetCfg::addCtxSet({ +// ctx 1468 1469 + { 39, 60 }, + { 39, 61 }, + { 35, 35 }, + { 39, 60 }, + { 4, 4 }, + { 1, 5 }, + { 8, 8 }, + { 1, 4 }, + { 32, 18 }, + { 18, 11 }, + { 18, 18 }, + { 4, 18 }, + { 122, 115 }, + { 99, 132 }, + { 123, 115 }, + { 115, 164 }, + { 119, 119 }, + { 119, 119 }, + { 164, 147 }, + { 115, 101 }, +}); + +const CtxSet ContextSetCfg::ChromaQpAdjIdc = ContextSetCfg::addCtxSet({ +// ctx 1470 1470 + { 35 }, + { 35 }, + { 35 }, + { 35 }, + { 8 }, + { 8 }, + { 8 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, +}); + +const CtxSet ContextSetCfg::ImvFlag = ContextSetCfg::addCtxSet({ +// ctx 1471 1475 + { 60, 41, 50, 60, 46 }, + { 59, 48, 57, 60, 60 }, + { 35, 35, 35, 35, 35 }, + { 30, 26, 42, 59, 46 }, + { 1, 4, 1, 0, 4 }, + { 1, 2, 1, 0, 4 }, + { 8, 8, 8, 8, 8 }, + { 1, 1, 0, 0, 4 }, + { 11, 25, 4, 25, 4 }, + { 4, 18, 4, 32, 4 }, + { 18, 18, 18, 18, 18 }, + { 4, 18, 4, 32, 4 }, + { 117, 101, 116, 116, 132 }, + { 118, 131, 148, 116, 134 }, + { 118, 115, 117, 116, 117 }, + { 117, 131, 133, 116, 104 }, + { 119, 119, 119, 119, 119 }, + { 119, 119, 119, 119, 119 }, + { 117, 131, 117, 116, 109 }, + { 118, 116, 165, 116, 102 }, +}); + +const CtxSet ContextSetCfg::ImvFlagIBC = ContextSetCfg::addCtxSet({ +// ctx 1476 1480 + { 54, 41, 35, 35, 35 }, + { 46, 40, 35, 35, 35 }, + { 51, 0, 35, 35, 35 }, + { 39, 33, 35, 35, 35 }, + { 2, 0, 8, 8, 8 }, + { 2, 1, 8, 8, 8 }, + { 0, 0, 8, 8, 8 }, + { 5, 0, 8, 8, 8 }, + { 18, 18, 18, 18, 18 }, + { 18, 25, 18, 18, 18 }, + { 25, 32, 18, 18, 18 }, + { 18, 18, 18, 18, 18 }, + { 115, 132, 119, 119, 119 }, + { 117, 116, 119, 119, 119 }, + { 226, 131, 119, 119, 119 }, + { 132, 119, 119, 119, 119 }, + { 123, 116, 119, 119, 119 }, + { 117, 116, 119, 119, 119 }, + { 130, 116, 119, 119, 119 }, + { 133, 116, 119, 119, 119 }, +}); + +const CtxSet ContextSetCfg::ctbAlfFlag = ContextSetCfg::addCtxSet({ +// ctx 1481 1489 + { 34, 31, 46, 11, 46, 62, 26, 46, 62 }, + { 5, 31, 46, 4, 54, 39, 4, 46, 62 }, + { 31, 39, 39, 54, 39, 39, 54, 39, 39 }, + { 20, 31, 39, 19, 54, 39, 34, 54, 39 }, + { 8, 0, 8, 10, 0, 8, 8, 0, 13 }, + { 13, 0, 8, 12, 1, 13, 12, 1, 12 }, + { 0, 0, 8, 0, 0, 4, 0, 0, 9 }, + { 12, 1, 10, 12, 0, 13, 12, 0, 13 }, + { 32, 18, 32, 32, 11, 11, 32, 18, 25 }, + { 32, 18, 18, 32, 18, 25, 32, 18, 32 }, + { 32, 18, 4, 32, 11, 11, 32, 18, 32 }, + { 32, 18, 25, 32, 11, 25, 32, 11, 25 }, + { 83, 133, 147, 96, 116, 212, 98, 132, 130 }, + { 213, 254, 98, 234, 228, 120, 244, 228, 66 }, + { 74, 135, 149, 81, 133, 119, 81, 132, 120 }, + { 147, 251, 100, 235, 181, 214, 235, 243, 81 }, + { 116, 116, 147, 116, 116, 118, 116, 116, 103 }, + { 217, 185, 82, 254, 236, 99, 254, 247, 81 }, + { 65, 243, 145, 65, 132, 209, 65, 132, 115 }, + { 234, 250, 146, 235, 117, 232, 234, 228, 130 }, +}); + +const CtxSet ContextSetCfg::ctbAlfAlternative = ContextSetCfg::addCtxSet({ +// ctx 1490 1492 + { 19, 34, 19 }, + { 26, 34, 11 }, + { 26, 26, 26 }, + { 11, 19, 19 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 0, 0, 0 }, + { 18, 25, 25 }, + { 18, 25, 25 }, + { 25, 25, 25 }, + { 18, 32, 32 }, + { 132, 116, 116 }, + { 116, 116, 116 }, + { 132, 116, 116 }, + { 116, 116, 116 }, + { 254, 174, 158 }, + { 132, 116, 116 }, + { 116, 116, 116 }, + { 116, 116, 116 }, +}); + +const CtxSet ContextSetCfg::AlfUseTemporalFilt = ContextSetCfg::addCtxSet({ +// ctx 1493 1493 + { 39 }, + { 39 }, + { 39 }, + { 39 }, + { 4 }, + { 6 }, + { 4 }, + { 4 }, + { 4 }, + { 18 }, + { 25 }, + { 4 }, + { 116 }, + { 100 }, + { 130 }, + { 100 }, + { 134 }, + { 99 }, + { 132 }, + { 100 }, +}); + +const CtxSet ContextSetCfg::CcAlfFilterControlFlag = ContextSetCfg::addCtxSet({ +// ctx 1494 1499 + { 18, 45, 46, 10, 60, 46 }, + { 10, 60, 54, 10, 60, 31 }, + { 18, 29, 46, 18, 37, 46 }, + { 11, 52, 46, 10, 60, 54 }, + { 4, 2, 4, 5, 2, 4 }, + { 5, 2, 6, 6, 2, 5 }, + { 4, 3, 8, 4, 2, 4 }, + { 6, 2, 6, 7, 2, 6 }, + { 18, 18, 4, 18, 18, 11 }, + { 11, 18, 4, 25, 18, 4 }, + { 18, 11, 32, 32, 18, 11 }, + { 25, 18, 4, 25, 18, 4 }, + { 99, 114, 107, 99, 114, 119 }, + { 149, 130, 99, 121, 131, 99 }, + { 99, 115, 131, 102, 115, 196 }, + { 134, 146, 106, 131, 146, 98 }, + { 99, 115, 117, 99, 115, 118 }, + { 149, 162, 98, 155, 252, 99 }, + { 105, 115, 117, 104, 115, 117 }, + { 137, 114, 98, 122, 114, 98 }, +}); + +const CtxSet ContextSetCfg::CiipFlag = ContextSetCfg::addCtxSet({ +// ctx 1500 1501 + { 56, 43 }, + { 56, 43 }, + { 35, 35 }, + { 56, 43 }, + { 2, 2 }, + { 2, 3 }, + { 8, 8 }, + { 2, 2 }, + { 11, 4 }, + { 11, 4 }, + { 18, 18 }, + { 4, 4 }, + { 120, 121 }, + { 117, 124 }, + { 117, 122 }, + { 117, 123 }, + { 119, 119 }, + { 119, 119 }, + { 117, 121 }, + { 117, 124 }, +}); + +const CtxSet ContextSetCfg::IBCFlag = ContextSetCfg::addCtxSet({ +// ctx 1502 1504 + { 25, 35, 30 }, + { 40, 58, 31 }, + { 1, 18, 35 }, + { 40, 43, 38 }, + { 9, 5, 9 }, + { 9, 5, 8 }, + { 5, 5, 9 }, + { 9, 5, 9 }, + { 25, 11, 18 }, + { 25, 11, 18 }, + { 11, 11, 18 }, + { 25, 11, 18 }, + { 99, 106, 118 }, + { 146, 163, 115 }, + { 100, 108, 132 }, + { 242, 243, 122 }, + { 116, 132, 116 }, + { 119, 117, 131 }, + { 101, 104, 117 }, + { 162, 211, 147 }, +}); + +const CtxSet ContextSetCfg::BiPredIbcFlag = ContextSetCfg::addCtxSet({ +// ctx 1505 1506 + { 35, 35 }, + { 35, 35 }, + { 20, 10 }, + { 35, 35 }, + { 8, 8 }, + { 8, 8 }, + { 5, 5 }, + { 8, 8 }, + { 18, 18 }, + { 18, 18 }, + { 18, 11 }, + { 18, 18 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 119, 119 }, + { 133, 100 }, + { 100, 147 }, + { 124, 122 }, + { 116, 164 }, +}); + +const CtxSet ContextSetCfg::IbcCiipFlag = ContextSetCfg::addCtxSet({ +// ctx 1507 1509 + { 25, 35, 35 }, + { 26, 35, 35 }, + { 40, 0, 35 }, + { 40, 35, 35 }, + { 6, 8, 8 }, + { 0, 8, 8 }, + { 9, 4, 8 }, + { 2, 8, 8 }, + { 32, 18, 18 }, + { 18, 18, 18 }, + { 25, 4, 18 }, + { 18, 18, 18 }, + { 97, 119, 119 }, + { 241, 119, 119 }, + { 116, 119, 119 }, + { 228, 119, 119 }, + { 82, 99, 119 }, + { 117, 199, 119 }, + { 114, 99, 119 }, + { 147, 137, 119 }, +}); + +const CtxSet ContextSetCfg::IbcCiipIntraIdx = ContextSetCfg::addCtxSet({ +// ctx 1510 1510 + { 43 }, + { 25 }, + { 50 }, + { 27 }, + { 4 }, + { 1 }, + { 13 }, + { 0 }, + { 11 }, + { 4 }, + { 4 }, + { 4 }, + { 211 }, + { 138 }, + { 236 }, + { 115 }, + { 218 }, + { 85 }, + { 197 }, + { 204 }, +}); + +const CtxSet ContextSetCfg::IbcGpmFlag = ContextSetCfg::addCtxSet({ +// ctx 1511 1511 + { 41 }, + { 19 }, + { 33 }, + { 41 }, + { 5 }, + { 2 }, + { 6 }, + { 5 }, + { 11 }, + { 4 }, + { 4 }, + { 11 }, + { 101 }, + { 116 }, + { 117 }, + { 118 }, + { 98 }, + { 163 }, + { 103 }, + { 116 }, +}); + +const CtxSet ContextSetCfg::IbcGpmIntraFlag = ContextSetCfg::addCtxSet({ +// ctx 1512 1513 + { 41, 49 }, + { 27, 49 }, + { 50, 50 }, + { 49, 57 }, + { 2, 1 }, + { 2, 2 }, + { 2, 1 }, + { 2, 1 }, + { 4, 4 }, + { 11, 11 }, + { 4, 11 }, + { 4, 4 }, + { 131, 116 }, + { 117, 116 }, + { 116, 115 }, + { 131, 115 }, + { 131, 115 }, + { 119, 119 }, + { 131, 116 }, + { 115, 179 }, +}); + +const CtxSet ContextSetCfg::IbcGpmSplitDirSetFlag = ContextSetCfg::addCtxSet({ +// ctx 1514 1514 + { 38 }, + { 45 }, + { 22 }, + { 23 }, + { 4 }, + { 3 }, + { 5 }, + { 5 }, + { 4 }, + { 11 }, + { 18 }, + { 11 }, + { 103 }, + { 132 }, + { 130 }, + { 123 }, + { 131 }, + { 100 }, + { 131 }, + { 133 }, +}); + +const CtxSet ContextSetCfg::IbcGpmBldIdx = ContextSetCfg::addCtxSet({ +// ctx 1515 1518 + { 35, 35, 35, 35 }, + { 35, 35, 35, 35 }, + { 30, 59, 27, 36 }, + { 35, 35, 35, 35 }, + { 8, 8, 8, 8 }, + { 8, 8, 8, 8 }, + { 5, 4, 13, 0 }, + { 8, 8, 8, 8 }, + { 18, 18, 18, 18 }, + { 18, 18, 18, 18 }, + { 32, 4, 11, 4 }, + { 18, 18, 18, 18 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 119, 119, 119, 119 }, + { 210, 253, 231, 197 }, + { 98, 99, 115, 254 }, + { 226, 119, 117, 131 }, + { 108, 99, 119, 118 }, +}); + +const CtxSet ContextSetCfg::IbcLicFlag = ContextSetCfg::addCtxSet({ +// ctx 1519 1522 + { 33, 35, 35, 35 }, + { 25, 35, 35, 35 }, + { 26, 17, 25, 41 }, + { 33, 35, 35, 35 }, + { 1, 8, 8, 8 }, + { 1, 8, 8, 8 }, + { 2, 6, 2, 0 }, + { 1, 8, 8, 8 }, + { 18, 18, 18, 18 }, + { 4, 18, 18, 18 }, + { 32, 25, 18, 32 }, + { 4, 18, 18, 18 }, + { 115, 119, 119, 119 }, + { 131, 119, 119, 119 }, + { 148, 119, 119, 119 }, + { 115, 119, 119, 119 }, + { 114, 97, 115, 116 }, + { 115, 162, 162, 116 }, + { 163, 98, 100, 118 }, + { 115, 162, 226, 115 }, +}); + +const CtxSet ContextSetCfg::IbcLicIndex = ContextSetCfg::addCtxSet({ +// ctx 1523 1524 + { 26, 44 }, + { 61, 19 }, + { 34, 26 }, + { 58, 12 }, + { 5, 1 }, + { 3, 0 }, + { 5, 1 }, + { 5, 2 }, + { 32, 32 }, + { 32, 25 }, + { 18, 4 }, + { 32, 32 }, + { 178, 117 }, + { 101, 131 }, + { 113, 116 }, + { 137, 132 }, + { 252, 125 }, + { 100, 148 }, + { 244, 119 }, + { 101, 130 }, +}); + +const CtxSet ContextSetCfg::JointCbCrFlag = ContextSetCfg::addCtxSet({ +// ctx 1525 1527 + { 34, 43, 59 }, + { 27, 5, 60 }, + { 12, 29, 58 }, + { 34, 43, 52 }, + { 1, 0, 1 }, + { 1, 0, 1 }, + { 1, 1, 1 }, + { 1, 0, 1 }, + { 18, 18, 25 }, + { 18, 18, 11 }, + { 18, 18, 25 }, + { 18, 18, 11 }, + { 117, 132, 115 }, + { 116, 116, 115 }, + { 117, 132, 131 }, + { 119, 117, 115 }, + { 116, 147, 116 }, + { 117, 116, 116 }, + { 116, 116, 115 }, + { 116, 116, 115 }, +}); + +const CtxSet ContextSetCfg::TsSigCoeffGroup = ContextSetCfg::addCtxSet({ +// ctx 1528 1530 + { 18, 20, 37 }, + { 18, 27, 44 }, + { 18, 20, 38 }, + { 18, 20, 37 }, + { 9, 9, 5 }, + { 6, 5, 4 }, + { 6, 8, 6 }, + { 6, 5, 5 }, + { 18, 18, 4 }, + { 4, 4, 4 }, + { 18, 18, 18 }, + { 11, 4, 4 }, + { 101, 117, 180 }, + { 148, 251, 148 }, + { 102, 140, 139 }, + { 228, 252, 148 }, + { 116, 132, 194 }, + { 163, 118, 99 }, + { 107, 124, 117 }, + { 243, 250, 135 }, +}); + +const CtxSet ContextSetCfg::TsSigFlag = ContextSetCfg::addCtxSet({ +// ctx 1531 1533 + { 25, 35, 37 }, + { 25, 50, 44 }, + { 25, 28, 38 }, + { 25, 35, 29 }, + { 13, 9, 5 }, + { 13, 10, 4 }, + { 13, 13, 10 }, + { 13, 9, 5 }, + { 4, 4, 18 }, + { 4, 4, 11 }, + { 4, 18, 11 }, + { 4, 4, 18 }, + { 74, 251, 108 }, + { 148, 251, 107 }, + { 74, 250, 104 }, + { 118, 250, 109 }, + { 69, 234, 99 }, + { 85, 234, 114 }, + { 74, 251, 103 }, + { 134, 251, 108 }, +}); + +const CtxSet ContextSetCfg::TsParFlag = ContextSetCfg::addCtxSet({ +// ctx 1534 1534 + { 3 }, + { 10 }, + { 11 }, + { 3 }, + { 5 }, + { 2 }, + { 5 }, + { 5 }, + { 18 }, + { 11 }, + { 4 }, + { 18 }, + { 116 }, + { 242 }, + { 117 }, + { 147 }, + { 164 }, + { 108 }, + { 116 }, + { 131 }, +}); + +const CtxSet ContextSetCfg::TsGtxFlag = ContextSetCfg::addCtxSet({ +// ctx 1535 1539 + { 35, 3, 4, 5, 5 }, + { 35, 17, 18, 3, 59 }, + { 35, 3, 3, 4, 3 }, + { 35, 3, 4, 4, 5 }, + { 8, 1, 5, 4, 0 }, + { 8, 1, 5, 5, 1 }, + { 8, 1, 5, 1, 1 }, + { 8, 1, 5, 5, 1 }, + { 18, 18, 32, 25, 18 }, + { 18, 11, 18, 25, 11 }, + { 18, 18, 25, 18, 18 }, + { 18, 18, 25, 25, 11 }, + { 119, 117, 130, 131, 164 }, + { 119, 147, 114, 115, 117 }, + { 119, 117, 131, 226, 243 }, + { 119, 117, 102, 107, 117 }, + { 119, 132, 162, 243, 211 }, + { 119, 118, 100, 117, 116 }, + { 119, 117, 130, 242, 243 }, + { 119, 117, 115, 107, 117 }, +}); + +const CtxSet ContextSetCfg::TsLrg1Flag = ContextSetCfg::addCtxSet({ +// ctx 1540 1543 + { 19, 11, 4, 35 }, + { 33, 11, 4, 35 }, + { 4, 5, 5, 14 }, + { 26, 11, 12, 35 }, + { 1, 1, 1, 8 }, + { 5, 1, 1, 8 }, + { 5, 2, 2, 7 }, + { 1, 1, 1, 8 }, + { 18, 11, 11, 18 }, + { 18, 11, 4, 18 }, + { 18, 11, 18, 18 }, + { 11, 11, 4, 18 }, + { 119, 116, 243, 119 }, + { 179, 116, 116, 119 }, + { 104, 116, 132, 119 }, + { 242, 116, 116, 119 }, + { 108, 242, 162, 240 }, + { 162, 115, 116, 98 }, + { 117, 116, 243, 129 }, + { 148, 116, 116, 100 }, +}); + +const CtxSet ContextSetCfg::TsResidualSign = ContextSetCfg::addCtxSet({ +// ctx 1544 1549 + { 20, 10, 46, 35, 35, 35 }, + { 12, 10, 53, 35, 35, 35 }, + { 5, 17, 46, 28, 25, 38 }, + { 20, 10, 53, 35, 35, 35 }, + { 1, 5, 5, 8, 8, 8 }, + { 5, 5, 4, 8, 8, 8 }, + { 1, 5, 1, 5, 9, 8 }, + { 1, 5, 5, 8, 8, 8 }, + { 4, 18, 25, 18, 18, 18 }, + { 4, 4, 4, 18, 18, 18 }, + { 25, 18, 4, 18, 32, 18 }, + { 4, 11, 18, 18, 18, 18 }, + { 118, 117, 116, 119, 119, 119 }, + { 118, 131, 117, 119, 119, 119 }, + { 116, 243, 109, 119, 119, 119 }, + { 227, 116, 133, 119, 119, 119 }, + { 116, 102, 118, 242, 246, 117 }, + { 115, 210, 115, 115, 145, 181 }, + { 123, 132, 117, 162, 232, 107 }, + { 125, 243, 116, 115, 130, 251 }, +}); + +const CtxSet ContextSetCfg::signPred[2] = { + ContextSetCfg::addCtxSet({ +// ctx 1550 1553 + { 34, 34, 34, 26 }, + { 34, 34, 19, 34 }, + { 42, 42, 34, 26 }, + { 34, 42, 34, 26 }, + { 13, 10, 10, 10 }, + { 13, 13, 13, 10 }, + { 13, 10, 10, 10 }, + { 13, 10, 10, 10 }, + { 4, 4, 4, 4 }, + { 4, 4, 4, 4 }, + { 4, 4, 4, 4 }, + { 4, 4, 4, 4 }, + { 106, 103, 100, 100 }, + { 85, 100, 106, 100 }, + { 90, 85, 90, 101 }, + { 89, 100, 100, 101 }, + { 90, 100, 118, 122 }, + { 90, 105, 90, 83 }, + { 102, 90, 101, 103 }, + { 86, 103, 106, 100 }, + }), + ContextSetCfg::addCtxSet({ +// ctx 1554 1557 + { 26, 41, 34, 41 }, + { 41, 41, 34, 34 }, + { 34, 34, 35, 35 }, + { 26, 41, 34, 26 }, + { 13, 13, 10, 6 }, + { 13, 12, 10, 10 }, + { 10, 10, 8, 8 }, + { 13, 13, 10, 7 }, + { 4, 4, 4, 4 }, + { 4, 4, 4, 4 }, + { 4, 4, 18, 18 }, + { 4, 4, 4, 4 }, + { 85, 67, 113, 99 }, + { 100, 105, 106, 116 }, + { 89, 67, 101, 82 }, + { 100, 213, 106, 105 }, + { 90, 83, 119, 119 }, + { 101, 101, 119, 119 }, + { 86, 67, 90, 99 }, + { 178, 101, 100, 115 }, + }), +}; + +const CtxSet ContextSetCfg::CclmDeltaFlags = ContextSetCfg::addCtxSet({ +// ctx 1558 1562 + { 20, 35, 35, 59, 51 }, + { 19, 3, 60, 59, 43 }, + { 51, 42, 34, 51, 43 }, + { 50, 57, 12, 59, 28 }, + { 3, 2, 12, 10, 2 }, + { 0, 4, 0, 13, 13 }, + { 0, 9, 0, 9, 13 }, + { 7, 3, 10, 3, 7 }, + { 11, 4, 32, 32, 4 }, + { 18, 11, 4, 32, 25 }, + { 4, 18, 11, 11, 4 }, + { 18, 25, 32, 11, 18 }, + { 113, 227, 82, 129, 115 }, + { 136, 228, 138, 212, 118 }, + { 116, 248, 116, 234, 166 }, + { 181, 99, 116, 162, 66 }, + { 116, 216, 254, 251, 84 }, + { 254, 103, 116, 100, 196 }, + { 209, 242, 153, 130, 114 }, + { 242, 118, 225, 122, 100 }, +}); + +const CtxSet ContextSetCfg::GlmFlags = ContextSetCfg::addCtxSet({ +// ctx 1563 1567 + { 2, 53, 53, 12, 35 }, + { 17, 60, 53, 5, 4 }, + { 25, 14, 52, 36, 43 }, + { 10, 45, 53, 35, 50 }, + { 1, 0, 4, 0, 1 }, + { 0, 0, 0, 0, 0 }, + { 0, 4, 0, 0, 4 }, + { 0, 0, 3, 0, 2 }, + { 25, 32, 32, 32, 4 }, + { 18, 32, 25, 25, 4 }, + { 4, 11, 18, 18, 25 }, + { 18, 25, 18, 18, 25 }, + { 115, 172, 115, 116, 228 }, + { 211, 116, 115, 166, 116 }, + { 116, 219, 116, 126, 116 }, + { 180, 116, 116, 132, 246 }, + { 119, 187, 116, 116, 116 }, + { 116, 99, 120, 133, 120 }, + { 116, 172, 193, 116, 232 }, + { 133, 116, 169, 164, 115 }, +}); + +const CtxSet ContextSetCfg::CccmFlag = ContextSetCfg::addCtxSet({ +// ctx 1568 1570 + { 13, 44, 52 }, + { 21, 52, 13 }, + { 29, 58, 43 }, + { 13, 52, 52 }, + { 8, 4, 4 }, + { 8, 4, 8 }, + { 4, 4, 4 }, + { 8, 4, 4 }, + { 25, 25, 32 }, + { 32, 25, 32 }, + { 4, 25, 11 }, + { 32, 25, 32 }, + { 162, 116, 124 }, + { 114, 102, 99 }, + { 115, 123, 131 }, + { 130, 147, 83 }, + { 118, 118, 196 }, + { 132, 131, 117 }, + { 130, 131, 147 }, + { 114, 115, 99 }, +}); + +const CtxSet ContextSetCfg::CccmMpfFlag = ContextSetCfg::addCtxSet({ +// ctx 1571 1573 + { 27, 43, 35 }, + { 27, 43, 19 }, + { 43, 45, 50 }, + { 27, 43, 42 }, + { 8, 8, 4 }, + { 8, 8, 4 }, + { 9, 4, 4 }, + { 8, 8, 4 }, + { 32, 25, 25 }, + { 32, 25, 25 }, + { 32, 4, 18 }, + { 25, 18, 25 }, + { 146, 136, 102 }, + { 114, 114, 244 }, + { 130, 164, 105 }, + { 130, 115, 227 }, + { 162, 180, 115 }, + { 100, 148, 133 }, + { 114, 133, 107 }, + { 226, 146, 131 }, +}); + +const CtxSet ContextSetCfg::BvgCccmFlag = ContextSetCfg::addCtxSet({ +// ctx 1574 1574 + { 35 }, + { 35 }, + { 41 }, + { 35 }, + { 8 }, + { 8 }, + { 1 }, + { 8 }, + { 18 }, + { 18 }, + { 18 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 121 }, + { 116 }, + { 125 }, + { 117 }, +}); + +const CtxSet ContextSetCfg::CcInsideFilterFlag = ContextSetCfg::addCtxSet({ +// ctx 1575 1575 + { 53 }, + { 7 }, + { 53 }, + { 60 }, + { 0 }, + { 4 }, + { 0 }, + { 0 }, + { 32 }, + { 32 }, + { 32 }, + { 32 }, + { 116 }, + { 116 }, + { 99 }, + { 99 }, + { 116 }, + { 118 }, + { 116 }, + { 132 }, +}); + +const CtxSet ContextSetCfg::ChromaFusionType = ContextSetCfg::addCtxSet({ +// ctx 1576 1576 + { 22 }, + { 30 }, + { 36 }, + { 22 }, + { 8 }, + { 8 }, + { 5 }, + { 8 }, + { 32 }, + { 32 }, + { 11 }, + { 32 }, + { 168 }, + { 82 }, + { 252 }, + { 82 }, + { 124 }, + { 101 }, + { 182 }, + { 82 }, +}); + +const CtxSet ContextSetCfg::ChromaFusionCclm = ContextSetCfg::addCtxSet({ +// ctx 1577 1577 + { 57 }, + { 57 }, + { 58 }, + { 42 }, + { 8 }, + { 7 }, + { 4 }, + { 8 }, + { 32 }, + { 32 }, + { 11 }, + { 32 }, + { 82 }, + { 165 }, + { 98 }, + { 183 }, + { 157 }, + { 243 }, + { 83 }, + { 164 }, +}); + +const CtxSet ContextSetCfg::TmrlDerive = ContextSetCfg::addCtxSet({ +// ctx 1578 1585 + { 48, 50, 43, 35, 35, 35, 50, 35 }, + { 48, 50, 43, 27, 50, 35, 35, 35 }, + { 33, 50, 43, 43, 35, 35, 50, 35 }, + { 41, 50, 43, 43, 35, 35, 35, 35 }, + { 9, 8, 8, 8, 5, 9, 8, 8 }, + { 10, 8, 9, 12, 8, 9, 9, 8 }, + { 5, 8, 8, 10, 10, 8, 9, 8 }, + { 9, 8, 8, 10, 12, 9, 8, 8 }, + { 25, 18, 11, 4, 4, 4, 4, 18 }, + { 25, 4, 18, 18, 4, 11, 4, 18 }, + { 18, 11, 11, 4, 4, 18, 18, 18 }, + { 25, 4, 11, 4, 4, 4, 4, 18 }, + { 83, 134, 187, 236, 137, 107, 86, 119 }, + { 130, 131, 86, 99, 105, 196, 252, 119 }, + { 90, 151, 219, 232, 172, 131, 100, 119 }, + { 129, 148, 84, 194, 86, 133, 232, 119 }, + { 108, 106, 251, 248, 250, 103, 101, 119 }, + { 131, 103, 90, 130, 100, 137, 152, 119 }, + { 91, 118, 236, 202, 232, 116, 86, 119 }, + { 241, 116, 86, 86, 85, 136, 252, 119 }, +}); + +const CtxSet ContextSetCfg::nonLocalCCP = ContextSetCfg::addCtxSet({ +// ctx 1586 1586 + { 52 }, + { 53 }, + { 35 }, + { 60 }, + { 4 }, + { 5 }, + { 5 }, + { 4 }, + { 18 }, + { 18 }, + { 11 }, + { 18 }, + { 102 }, + { 163 }, + { 108 }, + { 210 }, + { 117 }, + { 147 }, + { 101 }, + { 131 }, +}); + +#if JVET_AG0154_DECODER_DERIVED_CCP_FUSION +const CtxSet ContextSetCfg::decoderDerivedCCP = ContextSetCfg::addCtxSet +({ +// ctx 1587 1587 + { 50 }, + { 42 }, + { 50 }, + { 34 }, + { 4 }, + { 5 }, + { 4 }, + { 4 }, + { 18 }, + { 18 }, + { 18 }, + { 25 }, + { 117 }, + { 117 }, + { 131 }, + { 116 }, + { 109 }, + { 148 }, + { 117 }, + { 107 }, + }); + +const CtxSet ContextSetCfg::ddNonLocalCCP = ContextSetCfg::addCtxSet +({ +// ctx 1588 1588 + { 33 }, + { 25 }, + { 34 }, + { 18 }, + { 4 }, + { 8 }, + { 4 }, + { 4 }, + { 32 }, + { 32 }, + { 11 }, + { 32 }, + { 100 }, + { 133 }, + { 82 }, + { 242 }, + { 132 }, + { 164 }, + { 99 }, + { 163 }, + }); +#endif + +const CtxSet ContextSetCfg::InterCccmFlag = ContextSetCfg::addCtxSet({ +// ctx 1589 1589 + { 25 }, + { 1 }, + { 35 }, + { 17 }, + { 5 }, + { 5 }, + { 8 }, + { 2 }, + { 25 }, + { 18 }, + { 18 }, + { 18 }, + { 98 }, + { 114 }, + { 99 }, + { 162 }, + { 119 }, + { 119 }, + { 115 }, + { 146 }, +}); + +#if JVET_AF0073_INTER_CCP_MERGE +const CtxSet ContextSetCfg::InterCcpMergeFlag = ContextSetCfg::addCtxSet({ +#if JVET_AH0066_JVET_AH0202_CCP_MERGE_LUMACBF0 +// ctx 1590 1591 + { 40, 58 }, + { 40, 43 }, + { 35, 35 }, + { 25, 57 }, + { 5, 0 }, + { 2, 3 }, + { 8, 8 }, + { 5, 2 }, + { 32, 32 }, + { 18, 25 }, + { 18, 18 }, + { 25, 25 }, + { 99, 117 }, + { 98, 116 }, + { 115, 114 }, + { 146, 113 }, + { 119, 119 }, + { 119, 119 }, + { 99, 114 }, + { 98, 146 }, +#else + { 40 }, + { 40 }, + { 35 }, + { 40 }, + { 5 }, + { 2 }, + { 8 }, + { 5 }, + { 25 }, + { 18 }, + { 18 }, + { 25 }, + { 99 }, + { 98 }, + { 115 }, + { 162 }, + { 119 }, + { 119 }, + { 99 }, + { 114 }, +#endif +}); +#endif + +#if JVET_AH0066_JVET_AH0202_CCP_MERGE_LUMACBF0 +const CtxSet ContextSetCfg::InterCcpMergeZeroRootCbfIdc = ContextSetCfg::addCtxSet +({ +// ctx 1592 1593 + { 1, 20 }, + { 0, 7 }, + { 35, 35 }, + { 17, 35 }, + { 1, 0 }, + { 1, 0 }, + { 8, 8 }, + { 1, 0 }, + { 25, 32 }, + { 32, 32 }, + { 18, 18 }, + { 18, 32 }, + { 116, 117 }, + { 131, 117 }, + { 115, 116 }, + { 115, 116 }, + { 119, 119 }, + { 119, 119 }, + { 116, 116 }, + { 163, 117 }, + }); +#endif + +#if JVET_AG0058_EIP +const CtxSet ContextSetCfg::EipFlag = ContextSetCfg::addCtxSet + ({ +// ctx 1594 1595 + { 40, 11 }, + { 25, 18 }, + { 17, 27 }, + { 25, 11 }, + { 6, 8 }, + { 6, 8 }, + { 9, 5 }, + { 6, 9 }, + { 25, 32 }, + { 25, 32 }, + { 25, 4 }, + { 25, 32 }, + { 100, 115 }, + { 130, 116 }, + { 102, 163 }, + { 225, 99 }, + { 105, 134 }, + { 241, 132 }, + { 103, 226 }, + { 241, 100 }, + }); +#endif + +#if JVET_AG0059_CCP_MERGE_ENHANCEMENT +const CtxSet ContextSetCfg::CCPMergeFusionFlag = ContextSetCfg::addCtxSet({ +// ctx 1596 1596 + { 35 }, + { 35 }, + { 19 }, + { 35 }, + { 8 }, + { 8 }, + { 4 }, + { 8 }, + { 18 }, + { 18 }, + { 11 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 164 }, + { 132 }, + { 119 }, + { 119 }, +}); +const CtxSet ContextSetCfg::CCPMergeFusionType = ContextSetCfg::addCtxSet({ +// ctx 1597 1597 + { 35 }, + { 35 }, + { 51 }, + { 35 }, + { 8 }, + { 8 }, + { 4 }, + { 8 }, + { 18 }, + { 18 }, + { 25 }, + { 18 }, + { 119 }, + { 119 }, + { 119 }, + { 119 }, + { 131 }, + { 106 }, + { 119 }, + { 119 }, +}); +#endif +#if JVET_AH0076_OBIC +const CtxSet ContextSetCfg::obicFlag = ContextSetCfg::addCtxSet +({ +// ctx 1598 1598 + { 42 }, + { 27 }, + { 27 }, + { 27 }, + { 8 }, + { 10 }, + { 8 }, + { 9 }, + { 18 }, + { 25 }, + { 18 }, + { 25 }, + { 92 }, + { 152 }, + { 99 }, + { 138 }, + { 118 }, + { 117 }, + { 103 }, + { 133 }, + }); +#endif +// CONTEXTS WSA STOP +#endif diff --git a/source/Lib/CommonLib/TypeDef.h b/source/Lib/CommonLib/TypeDef.h index 7d28186ac..bc22e8184 100644 --- a/source/Lib/CommonLib/TypeDef.h +++ b/source/Lib/CommonLib/TypeDef.h @@ -416,6 +416,7 @@ #define JVET_AG0196_WINDOWS_OFFSETS_SLICETYPE 1 // JVET-AG0196 5.2: window offsets per slice type #define JVET_AG0117_CABAC_SPATIAL_TUNING 1 // JVET-AG0117 5.3: spatial CABAC tuning #define JVET_AH0176_LOW_DELAY_B_CTX 1 // JVET-AH0176 6.1: context initialization for B-slice +#define JVET_AI0281_CABAC_RETRAIN 1 // JVET-AI0281: context initialization training // Loop filters #define ALF_IMPROVEMENT 1 // ALF improvement diff --git a/source/Lib/DecoderLib/BinDecoder.cpp b/source/Lib/DecoderLib/BinDecoder.cpp index d35bbffe1..3b4ef2861 100644 --- a/source/Lib/DecoderLib/BinDecoder.cpp +++ b/source/Lib/DecoderLib/BinDecoder.cpp @@ -171,6 +171,9 @@ namespace CabacRetrain s = s.substr( 0, n ) + ".cabac_" + std::to_string( ctxi ); files[ctxi].reset( new std::ofstream{ s,std::ios::binary } ); auto &file = *files[ctxi]; + + CHECK( !file.is_open(), "Context bin file is not opened" ); + file << "ctx " << ctxi << "\n"; if( ctxi < 0 || ctxi >= ( int ) ContextSetCfg::getInitTable( 0 ).size() ) { -- GitLab