/*
 * Copyright (c) 2016, Alliance for Open Media. All rights reserved
 *
 * This source code is subject to the terms of the BSD 2 Clause License and
 * the Alliance for Open Media Patent License 1.0. If the BSD 2 Clause License
 * was not distributed with this source code in the LICENSE file, you can
 * obtain it at www.aomedia.org/license/software. If the Alliance for Open
 * Media Patent License 1.0 was not distributed with this source code in the
 * PATENTS file, you can obtain it at www.aomedia.org/license/patent.
 */

#include "aom_mem/aom_mem.h"

#include "av1/common/reconinter.h"
#include "av1/common/scan.h"
#include "av1/common/onyxc_int.h"
#include "av1/common/seg_common.h"
#if CONFIG_LV_MAP
#include "av1/common/txb_common.h"
#endif

#if CONFIG_LV_MAP
#include "av1/common/txb_common.h"
const aom_prob default_txb_skip[TX_SIZES][TXB_SKIP_CONTEXTS] = {
  { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
  { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
  { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
  { 252, 71, 126, 184, 178, 218, 251, 49, 133, 221, 27, 92, 197 },
};
const aom_prob default_dc_sign[PLANE_TYPES][DC_SIGN_CONTEXTS] = {
  { 125, 102, 147 }, { 119, 101, 135 },
};

#if USE_CAUSAL_BASE_CTX
const aom_prob default_coeff_base
    [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
      { { { 139, 242, 199, 135, 87,  51,  245, 208, 138, 89,  60,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 240,
            200, 108, 70,  56,  230, 199, 126, 66,  32,  242, 204,
            128, 74,  45,  241, 203, 120, 62,  128, 128 },
          { 118, 230, 197, 147, 103, 60,  228, 202, 154, 110, 72,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 213,
            196, 134, 94,  58,  199, 184, 130, 82,  40,  217, 186,
            134, 86,  57,  204, 185, 127, 74,  128, 128 } },
        { { 203, 248, 223, 170, 105, 58,  252, 235, 195, 125, 72,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 253,
            244, 209, 110, 85,  128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 170, 239, 210, 163, 112, 68,  239, 219, 175, 127, 84,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 246,
            234, 184, 142, 154, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
      { { { 119, 240, 196, 136, 90,  50,  247, 214, 159, 109, 64,
            241, 201, 137, 91,  53,  239, 199, 136, 89,  52,  251,
            230, 176, 121, 76,  231, 202, 142, 84,  39,  246, 221,
            169, 111, 61,  248, 221, 152, 97,  60,  128 },
          { 98,  209, 182, 140, 100, 56,  234, 207, 166, 122, 73,
            215, 189, 142, 103, 59,  216, 188, 140, 99,  59,  235,
            216, 179, 137, 88,  214, 189, 141, 96,  46,  224, 200,
            159, 117, 68,  221, 199, 152, 108, 68,  128 } },
        { { 195, 245, 212, 159, 108, 64,  251, 231, 186, 131, 80,
            250, 228, 175, 108, 58,  244, 213, 163, 120, 82,  254,
            245, 216, 159, 91,  128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 150, 207, 199, 164, 121, 76,  239, 221, 185, 142, 89,
            231, 208, 162, 113, 69,  228, 205, 169, 136, 95,  246,
            235, 204, 157, 110, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
      { { { 93,  232, 185, 124, 81,  38,  244, 206, 147, 98,  53,
            246, 210, 150, 100, 54,  244, 208, 146, 94,  44,  253,
            236, 189, 135, 82,  228, 195, 130, 76,  35,  242, 220,
            170, 114, 59,  253, 235, 184, 122, 68,  128 },
          { 80,  203, 169, 127, 86,  41,  228, 194, 151, 108, 58,
            221, 195, 152, 110, 60,  220, 194, 149, 103, 48,  238,
            221, 188, 147, 92,  205, 184, 130, 85,  41,  208, 195,
            159, 120, 62,  233, 212, 173, 126, 76,  128 } },
        { { 187, 239, 199, 149, 109, 66,  250, 226, 179, 130, 82,
            248, 218, 159, 100, 63,  251, 227, 184, 135, 91,  254,
            241, 202, 150, 99,  128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 130, 202, 169, 146, 118, 73,  236, 217, 186, 146, 91,
            215, 194, 154, 102, 77,  234, 216, 188, 145, 98,  245,
            229, 201, 163, 110, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 } } },
      { { { 102, 225, 171, 113, 74,  33,  243, 201, 139, 92,  44,
            244, 208, 146, 99,  53,  247, 214, 158, 107, 52,  253,
            233, 183, 131, 73,  128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 80,  190, 152, 116, 79,  34,  222, 187, 142, 101, 47,
            211, 187, 148, 106, 56,  221, 200, 163, 118, 56,  236,
            215, 181, 140, 78,  128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 } },
        { { 166, 237, 184, 144, 106, 62,  245, 211, 167, 129, 93,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 254,
            240, 205, 158, 112, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 91,  185, 133, 105, 95,  60,  213, 190, 164, 131, 107,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 242,
            227, 203, 160, 127, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128 } } }
    };

const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] = {
  { { 59,  183, 130, 76,  48,  28,  202, 153, 84,  54,  34, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 200, 163, 84,  61, 34,  182, 131,
      71,  31,  16,  210, 156, 78,  36,  26,  220, 170, 73, 32,  128, 128 },
    { 96,  209, 171, 109, 59,  28,  223, 187, 128, 71,  35,  128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 215, 192, 135, 63,  73,  128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 49, 190, 129, 74,  46,  25,  206, 150, 90,  55,  32, 205, 142, 79,
      48, 27,  191, 137, 78,  47,  27,  223, 181, 109, 63, 37,  204, 136,
      82, 42,  19,  226, 169, 106, 58,  30,  231, 180, 96, 49,  29,  128 },
    { 86,  210, 159, 90,  56,  34,  223, 181, 114, 69,  40,  229, 182, 113,
      59,  28,  218, 162, 96,  64,  42,  237, 207, 146, 92,  50,  128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 41, 187, 119, 66,  40,  20,  212, 144, 80,  49,  26,  226, 151, 84,
      49, 27,  214, 146, 82,  47,  22,  237, 190, 115, 68,  40,  206, 126,
      71, 37,  17,  227, 168, 103, 61,  29,  237, 197, 119, 63,  32,  128 },
    { 70,  207, 146, 82,  54,  35,  226, 167, 99,  65,  40,  238, 176, 96,
      57,  29,  229, 171, 108, 69,  47,  244, 201, 124, 78,  48,  128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 40,  176, 107, 57,  37,  16,  216, 136, 73,  44,  22,  235, 145, 79,
      49,  26,  227, 149, 84,  52,  26,  247, 195, 107, 64,  35,  128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    { 49,  210, 153, 95,  58,  31,  217, 151, 93,  64,  41,  128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 248, 197, 123, 79,  53,  128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }
};

#else   // USE_CAUSAL_BASE_CTX

const aom_prob default_coeff_base
    [TX_SIZES][PLANE_TYPES][NUM_BASE_LEVELS][COEFF_BASE_CONTEXTS] = {
      { { {
              230, 199, 168, 74, 128, 169, 213, 173, 87, 21, 60, 117, 213,
              177, 126, 22,  64, 121, 206, 168, 67,  10, 33, 96, 140,
          },
          {
              236, 218, 201, 124, 185, 219, 223, 196, 128, 65, 127, 176, 224,
              199, 151, 75,  131, 177, 217, 190, 102, 38,  93, 161, 192,
          } },
        { {
              219, 188, 161, 46, 114, 163, 198, 154, 73, 10, 43, 101, 199,
              160, 89,  12,  49, 111, 186, 136, 62,  2,  15, 66, 123,
          },
          {
              228, 210, 191, 108, 177, 215, 213, 183, 125, 58, 112, 169, 212,
              183, 134, 65,  120, 171, 206, 166, 90,  27,  73, 140, 173,
          } } },

      { { {
              232, 198, 164, 85, 124, 169, 207, 156, 49, 9,  42, 97,  208,
              160, 90,  11,  45, 101, 198, 145, 50,  2,  15, 66, 120,
          },
          {
              237, 218, 199, 123, 187, 222, 219, 187, 101, 54, 117, 167, 221,
              189, 125, 61,  121, 171, 212, 175, 81,  27,  78, 147, 185,
          } },
        { {
              204, 165, 154, 39, 100, 144, 173, 117, 42, 7,  27, 71,  156,
              108, 52,  9,   32, 78,  165, 117, 46,  2,  12, 55, 102,
          },
          {
              225, 204, 183, 99, 173, 149, 205, 167, 88, 47, 99,  160, 186,
              149, 88,  48,  98, 157, 183, 148, 76,  34, 75, 133, 187,
          } } },

      { { {
              231, 199, 182, 107, 136, 172, 200, 148, 55, 8, 35, 87,  204,
              150, 72,  10,  37,  89,  184, 127, 36,  1,  9, 47, 103,
          },
          {
              236, 217, 206, 128, 188, 222, 213, 180, 98, 51, 113, 166, 218,
              182, 115, 55,  115, 167, 200, 162, 66,  22, 70, 135, 178,
          } },
        { {
              229, 200, 220, 56, 123, 179, 184, 123, 64, 8,  24, 62,  177,
              118, 55,  8,   27, 70,  158, 101, 8,   1,  12, 54, 107,
          },
          {
              232, 222, 223, 108, 195, 154, 213, 184, 71, 41, 101, 154, 206,
              164, 109, 42,  96,  162, 182, 137, 5,   33, 81, 146, 177,
          } } },
      { { {
              232, 208, 213, 120, 151, 192, 200, 152, 57, 13, 44, 94, 200,
              148, 87,  13,  42,  94,  181, 124, 45,  1,  9,  46, 99,
          },
          {
              241, 226, 222, 129, 197, 179, 213, 184, 133, 57, 119, 168, 214,
              178, 116, 64,  119, 162, 199, 157, 64,  24,  70, 130, 176,
          } },
        { {
              233, 223, 202, 65, 131, 128, 178, 138, 128, 2,  24, 59,  99,
              111, 73,  3,   17, 52,  149, 99,  19,  2,   18, 72, 140,
          },
          {
              240, 199, 230, 79, 181, 128, 192, 198, 128, 64,  121, 171, 192,
              148, 37,  26,  83, 85,  183, 149, 8,   33,  101, 168, 128,
          } } }
    };

static const aom_prob default_nz_map[TX_SIZES][PLANE_TYPES][SIG_COEF_CONTEXTS] =
    { { { 40,  157, 108, 70,  34,  19,  168, 98,  60,  32,  20,  128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 125, 80,  41,
          128, 128, 173, 120, 81,  36,  128, 188, 127, 84,  35,  128,
          183, 128, 60,  128, 128, 128, 170, 122, 82,  35,  128, 186,
          129, 84,  34,  128, 183, 128, 56,  128, 128, 128 },
        { 67,  176, 120, 77,  44,  26,  182, 124, 77,  47,  32,  128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 163, 127, 74,
          128, 128, 203, 167, 122, 70,  128, 202, 171, 125, 72,  128,
          198, 176, 105, 128, 128, 128, 192, 160, 108, 67,  128, 186,
          160, 113, 74,  128, 188, 173, 121, 128, 128, 128 } },
      { { 55, 192, 143, 93,  43,  17, 201, 155, 101, 50,  22, 171, 124, 76,  38,
          17, 176, 123, 77,  40,  19, 205, 148, 99,  53,  26, 200, 140, 94,  52,
          24, 218, 157, 103, 58,  28, 221, 161, 109, 63,  34, 128, 194, 144, 96,
          52, 24,  212, 160, 104, 59, 26,  216, 161, 105, 57, 27,  128 },
        { 84,  190, 149, 102, 59,  29,  204, 159, 111, 69,  41,  200,
          151, 98,  54,  32,  193, 143, 98,  69,  46,  216, 167, 111,
          65,  37,  211, 174, 123, 62,  23,  222, 184, 137, 79,  43,
          222, 195, 148, 87,  128, 128, 199, 160, 119, 92,  55,  185,
          147, 98,  70,  57,  197, 169, 122, 82,  68,  128 } },
      { { 56, 204, 126, 80,  41,  16, 218, 157, 100, 50,  22, 211, 142, 92,  47,
          21, 212, 150, 98,  50,  22, 230, 172, 118, 65,  32, 223, 134, 91,  50,
          22, 237, 167, 109, 60,  31, 239, 182, 128, 78,  40, 128, 209, 138, 90,
          52, 25,  223, 160, 105, 62, 30,  228, 173, 119, 72, 36,  128 },
        { 79,  201, 140, 99,  64,  37,  225, 175, 128, 78,  35,  215,
          151, 108, 49,  24,  211, 173, 138, 100, 44,  241, 185, 136,
          95,  39,  210, 109, 89,  43,  128, 234, 144, 73,  85,  128,
          252, 212, 121, 64,  128, 128, 216, 167, 127, 99,  102, 211,
          182, 168, 129, 110, 202, 157, 101, 66,  42,  128 } },
      { { 41,  177, 92,  53,  29,  14,  218, 137, 87,  47,  20,  201,
          124, 80,  50,  29,  208, 151, 104, 59,  27,  244, 173, 113,
          66,  36,  233, 105, 76,  53,  23,  249, 163, 97,  98,  128,
          254, 192, 136, 97,  47,  128, 237, 137, 86,  54,  31,  244,
          157, 100, 60,  33,  241, 177, 115, 68,  33,  128 },
        { 73,  231, 149, 83,  63,  64,  242, 192, 132, 113, 114, 128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 252, 204, 160,
          114, 36,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } } };
#endif  // USE_CAUSAL_BASE_CTX

#if CONFIG_CTX1D
const aom_prob default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
  { { 220, 225, 220, 216, 233, 225, 189, 178, 222, 199, 164, 112, 207,
      171, 115, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      147, 125, 104, 36,  117, 107, 26,  128, 128, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      156, 124, 128, 128, 146, 68,  128, 128, 131, 17,  128, 128, 64,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },

    { 146, 150, 142, 144, 178, 167, 131, 116, 150, 123, 107, 63,  119,
      89,  74,  128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      117, 127, 105, 69,  53,  56,  30,  128, 128, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      128, 86,  128, 128, 140, 72,  128, 128, 120, 44,  128, 128, 80,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 237, 242, 242, 219, 192, 246, 246, 243, 233, 184, 155, 234, 217,
      188, 152, 195, 167, 114, 89,  128, 128, 128, 128, 128, 128,

      180, 173, 154, 133, 112, 147, 145, 142, 102, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      198, 173, 130, 200, 128, 208, 182, 160, 106, 171, 128, 144, 128,
      128, 128, 124, 128, 128, 128, 128, 128, 128, 128, 128, 128 },

    { 140, 170, 162, 111, 94,  182, 195, 165, 153, 110, 81,  178, 169,
      158, 83,  133, 85,  85,  38,  128, 128, 128, 128, 128, 128,

      112, 127, 107, 87,  31,  57,  49,  128, 128, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      160, 143, 99,  126, 128, 164, 133, 126, 59,  71,  128, 138, 128,
      128, 128, 99,  128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 229, 241, 243, 245, 247, 247, 251, 248, 235, 210, 247, 235, 208,
      166, 245, 247, 244, 182, 236, 229, 180, 136, 128, 128, 128,

      191, 197, 96,  70,  199, 128, 128, 191, 174, 117, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      211, 183, 215, 188, 138, 209, 136, 128, 170, 128, 191, 128, 161,
      128, 182, 128, 128, 128, 164, 128, 128, 128, 128, 128, 128 },

    { 106, 153, 182, 191, 186, 202, 211, 203, 166, 147, 205, 205, 195,
      128, 206, 212, 182, 109, 192, 154, 139, 79,  128, 128, 128,

      112, 133, 128, 255, 128, 128, 128, 130, 154, 98,  128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      144, 185, 169, 199, 85,  183, 128, 128, 64,  128, 146, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
  { { 169, 203, 224, 222, 220, 228, 229, 223, 234, 247, 242, 230, 222,
      238, 246, 234, 196, 245, 249, 245, 192, 240, 235, 199, 161,

      176, 148, 158, 77,  178, 128, 128, 158, 128, 128, 196, 208, 155,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      232, 187, 191, 221, 116, 217, 154, 128, 203, 128, 128, 192, 128,
      201, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },

    { 133, 182, 215, 204, 176, 220, 182, 168, 187, 197, 181, 145, 75,
      164, 136, 51,  57,  156, 128, 128, 128, 85,  128, 128, 128,

      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,

      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
      128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } },
};
#else   // CONFIG_CTX1D
static const aom_prob
    default_eob_flag[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
      { { 225, 240, 225, 200, 128, 128, 128, 128, 128, 128, 128,
          245, 246, 238, 203, 128, 128, 128, 128, 128, 128, 128 },
        { 181, 219, 192, 144, 128, 128, 128, 128, 128, 128, 128,
          218, 231, 199, 152, 128, 128, 128, 128, 128, 128, 128 } },
      { { 233, 247, 240, 234, 211, 194, 128, 128, 128, 128, 128,
          252, 252, 249, 242, 221, 208, 128, 128, 128, 128, 128 },
        { 154, 222, 204, 180, 132, 128, 128, 128, 128, 128, 128,
          216, 235, 206, 181, 121, 112, 128, 128, 128, 128, 128 } },
      { { 233, 246, 241, 238, 231, 216, 186, 171, 128, 128, 128,
          251, 252, 251, 244, 233, 218, 192, 191, 128, 128, 128 },
        { 117, 221, 214, 223, 215, 202, 176, 116, 128, 128, 128,
          205, 234, 219, 183, 195, 126, 76,  128, 128, 128, 128 } },
      { { 194, 231, 213, 215, 207, 200, 183, 169, 135, 168, 128,
          240, 246, 243, 238, 210, 201, 172, 133, 107, 128, 128 },
        { 122, 232, 230, 244, 250, 247, 252, 253, 254, 52,  128,
          128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } }
    };

static const aom_prob
    default_eob_extra[TX_SIZES][PLANE_TYPES][EOB_COEF_CONTEXTS] = {
      { {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        },
        {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        } },
      { {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        },
        {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        } },
      { {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        },
        {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        } },
      { {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        },
        {
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
            145, 145, 145, 145, 145, 145, 145, 145, 145, 145, 145,
        } }
    };
#endif  // CONFIG_CTX1D

const aom_prob default_coeff_lps[TX_SIZES][PLANE_TYPES][LEVEL_CONTEXTS] = {
  { { 96,  128, 86,  122, 128, 84,  125, 128, 88,  99,  126, 128,
      135, 159, 99,  130, 134, 100, 128, 144, 70,  97,  128, 139,
      157, 168, 127, 148, 162, 121, 149, 157, 118, 127, 143, 157,
      178, 186, 168, 171, 183, 165, 169, 180, 180, 169, 166, 177 },
    { 81,  128, 72,  95,  128, 64,  98,  128, 42,  66,  101, 128,
      129, 163, 97,  122, 130, 91,  119, 141, 70,  94,  118, 166,
      157, 168, 117, 143, 151, 111, 144, 154, 76,  113, 128, 158,
      177, 185, 165, 167, 179, 155, 166, 179, 110, 137, 115, 165 } },
  { { 102, 128, 79,  125, 128, 74,  121, 128, 61,  98,  128, 128,
      141, 164, 96,  132, 150, 90,  128, 153, 62,  100, 128, 153,
      162, 172, 120, 146, 162, 113, 142, 154, 96,  113, 138, 155,
      181, 188, 151, 170, 179, 147, 167, 181, 158, 157, 163, 176 },
    { 103, 128, 80,  116, 128, 66,  94,  128, 35,  65,  109, 128,
      134, 163, 104, 137, 154, 92,  128, 104, 58,  94,  129, 132,
      156, 173, 137, 149, 165, 104, 143, 143, 112, 101, 133, 159,
      176, 186, 134, 172, 175, 155, 169, 177, 255, 107, 137, 168 } },
  { { 125, 128, 85,  157, 128, 82,  155, 128, 42,  83,  116, 128,
      155, 174, 101, 144, 155, 93,  140, 155, 57,  92,  124, 149,
      173, 178, 114, 148, 161, 111, 145, 161, 77,  101, 131, 153,
      190, 191, 140, 169, 183, 140, 169, 179, 108, 122, 150, 171 },
    { 136, 128, 108, 163, 128, 96,  140, 128, 48,  90,  85,  128,
      144, 164, 113, 158, 179, 107, 159, 128, 43,  75,  133, 160,
      157, 184, 144, 160, 189, 154, 152, 184, 128, 124, 137, 140,
      188, 196, 148, 170, 178, 128, 177, 159, 128, 179, 135, 135 } },
  { { 133, 128, 110, 153, 128, 101, 157, 128, 49,  91,  134, 128,
      151, 168, 129, 158, 162, 112, 154, 168, 63,  99,  130, 158,
      171, 178, 128, 160, 173, 111, 155, 171, 86,  108, 143, 159,
      194, 196, 162, 177, 185, 123, 172, 181, 101, 132, 156, 178 },
    { 133, 128, 129, 144, 128, 116, 135, 128, 43,  101, 100, 128,
      140, 163, 158, 173, 205, 128, 165, 171, 128, 128, 210, 163,
      172, 184, 192, 176, 201, 183, 177, 190, 128, 192, 199, 144,
      192, 192, 1,   196, 192, 255, 171, 178, 255, 128, 171, 179 } }
};

const aom_prob
    default_coeff_br[TX_SIZES][PLANE_TYPES][BASE_RANGE_SETS][LEVEL_CONTEXTS] = {
      { { { 62,  128, 54,  116, 128, 51,  97,  128, 59,  68,  107, 128,
            119, 158, 68,  115, 131, 65,  112, 138, 34,  71,  118, 137,
            171, 184, 110, 152, 178, 105, 146, 172, 89,  111, 145, 173,
            214, 226, 201, 198, 214, 196, 193, 210, 239, 196, 186, 202 },
          { 41,  128, 58,  52,  128, 51,  61,  128, 92,  54,  48,  128,
            67,  113, 36,  55,  75,  30,  56,  72,  12,  25,  50,  79,
            94,  131, 37,  75,  108, 42,  78,  103, 5,   31,  67,  103,
            172, 192, 131, 135, 167, 129, 136, 165, 149, 144, 120, 149 },
          { 35, 128, 74, 50, 128, 63, 59, 128, 87,  74,  38, 128,
            32, 53,  23, 34, 50,  18, 30, 41,  15,  13,  18, 18,
            52, 74,  18, 29, 36,  18, 31, 47,  51,  9,   15, 27,
            96, 134, 85, 70, 93,  96, 79, 100, 108, 100, 55, 65 } },
        { { 52,  128, 35,  79,  128, 29,  66,  128, 12,  30, 57,  128,
            113, 156, 64,  107, 172, 54,  103, 145, 23,  57, 96,  110,
            165, 184, 95,  138, 166, 95,  141, 184, 55,  80, 133, 165,
            212, 222, 134, 175, 206, 158, 177, 197, 102, 61, 154, 190 },
          { 36,  128, 18, 26,  128, 15, 29,  128, 4, 6,  30, 128,
            63,  113, 25, 44,  66,  22, 40,  67,  9, 14, 34, 55,
            90,  125, 26, 66,  82,  29, 73,  88,  1, 26, 34, 67,
            158, 179, 70, 121, 134, 69, 111, 129, 1, 85, 54, 105 },
          { 24, 128, 8,  31, 128, 15, 16, 128, 1,   1, 1,  128,
            32, 39,  16, 18, 43,  5,  17, 13,  1,   1, 22, 1,
            37, 65,  26, 20, 28,  16, 15, 24,  128, 1, 1,  1,
            83, 107, 57, 56, 74,  34, 29, 73,  128, 1, 37, 47 } } },
      { { { 72,  128, 45,  113, 128, 38,  100, 128, 26,  63,  112, 128,
            134, 177, 65,  121, 148, 57,  111, 143, 27,  68,  116, 152,
            181, 198, 98,  148, 173, 84,  136, 168, 53,  89,  134, 170,
            218, 230, 173, 194, 216, 160, 188, 213, 199, 177, 183, 204 },
          { 54,  128, 34,  55,  128, 32,  53,  128, 66,  45,  54,  128,
            81,  128, 33,  59,  102, 26,  55,  80,  7,   23,  49,  91,
            116, 145, 36,  79,  107, 35,  73,  102, 12,  28,  57,  95,
            170, 201, 102, 133, 173, 105, 127, 173, 166, 132, 114, 149 },
          { 40,  128, 25, 30, 128, 21, 31, 128, 24, 17, 24, 128,
            51,  67,  19, 28, 40,  17, 25, 42,  15, 13, 19, 19,
            61,  77,  19, 30, 48,  13, 33, 50,  11, 15, 21, 30,
            103, 147, 37, 69, 111, 37, 66, 105, 18, 18, 36, 76 } },
        { { 74,  128, 42,  99,  128, 32,  57,  128, 9,  28, 76,  128,
            115, 187, 70,  118, 120, 52,  109, 128, 19, 60, 93,  100,
            178, 197, 119, 147, 179, 92,  137, 178, 37, 87, 110, 158,
            216, 227, 169, 186, 201, 128, 178, 204, 1,  96, 155, 217 },
          { 59,  128, 26, 34,  128, 11, 20,  128, 7,   8, 24, 128,
            73,  125, 38, 74,  96,  23, 61,  79,  15,  9, 23, 110,
            96,  151, 49, 79,  164, 22, 70,  65,  1,   1, 9,  69,
            156, 196, 73, 105, 181, 17, 126, 155, 128, 1, 90, 111 },
          { 42, 128, 10, 11, 128, 13, 1,  128, 1,   1,   1, 128,
            55, 63,  13, 17, 85,  1,  16, 64,  1,   1,   1, 1,
            62, 58,  32, 21, 53,  1,  37, 91,  128, 128, 1, 1,
            81, 133, 51, 48, 79,  1,  25, 81,  128, 128, 1, 54 } } },
      { { { 103, 128, 52,  163, 128, 46,  155, 128, 12, 45,  97,  128,
            162, 196, 69,  140, 170, 60,  130, 158, 21, 58,  109, 150,
            205, 214, 93,  149, 178, 79,  143, 179, 38, 71,  120, 159,
            231, 240, 150, 192, 218, 140, 188, 220, 84, 112, 159, 196 },
          { 93,  128, 42, 143, 128, 41, 132, 128, 6,  15, 40, 128,
            113, 172, 39, 99,  113, 33, 91,  94,  5,  15, 42, 83,
            148, 172, 37, 91,  130, 28, 81,  121, 9,  20, 47, 87,
            201, 223, 75, 139, 183, 77, 132, 176, 23, 41, 82, 147 },
          { 92,  128, 45, 123, 128, 28, 88, 128, 1,  8,  20, 128,
            85,  94,  39, 95,  83,  33, 81, 61,  4,  5,  17, 25,
            84,  109, 17, 59,  76,  11, 46, 62,  1,  4,  13, 35,
            139, 184, 25, 86,  129, 25, 71, 123, 26, 13, 31, 84 } },
        { { 123, 128, 82,  169, 128, 62,  139, 128, 1,   28,  77,  128,
            139, 167, 92,  170, 146, 76,  149, 255, 19,  68,  160, 73,
            190, 209, 171, 165, 218, 57,  152, 209, 128, 61,  122, 164,
            237, 240, 146, 210, 227, 128, 224, 220, 128, 128, 196, 199 },
          { 130, 128, 52,  141, 128, 32,  101, 128, 128, 1,  85,  128,
            94,  155, 71,  121, 255, 30,  116, 85,  1,   8,  58,  255,
            105, 169, 110, 101, 132, 1,   77,  142, 128, 1,  54,  96,
            166, 214, 224, 154, 198, 255, 153, 230, 128, 85, 100, 146 },
          { 103, 128, 26, 83, 128, 20,  47,  128, 128, 128, 1,  128,
            91,  90,  19, 76, 128, 1,   42,  1,   128, 255, 64, 128,
            74,  77,  1,  72, 68,  128, 13,  77,  128, 128, 64, 1,
            71,  147, 37, 99, 171, 1,   104, 151, 128, 1,   1,  96 } } },
      { { { 113, 128, 79,  165, 128, 69,  149, 128, 14, 55,  116, 128,
            163, 202, 104, 169, 205, 82,  159, 180, 22, 64,  121, 165,
            207, 216, 113, 177, 215, 95,  166, 195, 35, 77,  132, 179,
            241, 244, 173, 207, 233, 128, 202, 227, 92, 121, 169, 209 },
          { 114, 128, 67, 136, 128, 54, 132, 128, 6,  26, 62,  128,
            85,  129, 85, 146, 173, 64, 129, 140, 7,  19, 65,  92,
            139, 169, 42, 147, 186, 40, 129, 170, 18, 18, 65,  117,
            213, 230, 74, 172, 213, 69, 165, 196, 1,  40, 103, 170 },
          { 101, 128, 61, 134, 128, 52, 97,  128, 1,   14, 26, 128,
            79,  72,  71, 135, 152, 56, 114, 117, 1,   10, 24, 58,
            64,  66,  60, 133, 148, 16, 126, 123, 1,   32, 26, 56,
            143, 197, 51, 141, 176, 59, 132, 162, 128, 17, 47, 106 } },
        { { 115, 128, 112, 135, 128, 89,  130, 128, 15,  49,  89,  128,
            143, 238, 154, 203, 255, 138, 172, 255, 1,   98,  196, 255,
            185, 203, 255, 211, 255, 192, 217, 235, 128, 128, 171, 255,
            233, 233, 255, 247, 255, 1,   239, 245, 1,   128, 255, 255 },
          { 75,  128, 76,  118, 128, 35,  74,  128, 1,   13,  23,  128,
            63,  138, 114, 164, 140, 91,  128, 128, 128, 1,   138, 64,
            96,  128, 255, 175, 236, 85,  166, 209, 128, 1,   128, 146,
            196, 217, 1,   204, 206, 128, 212, 221, 128, 128, 128, 219 },
          { 49,  128, 36,  62,  128, 37,  56, 128, 128, 1,   1,   128,
            45,  37,  68,  102, 128, 90,  56, 1,   128, 128, 37,  1,
            26,  27,  128, 126, 128, 255, 63, 142, 128, 128, 1,   1,
            125, 159, 128, 173, 212, 128, 85, 189, 128, 128, 255, 171 } } }
    };
#if CONFIG_CTX1D
static const aom_prob default_eob_mode[TX_SIZES][PLANE_TYPES][TX_CLASSES] = {
  { { 128, 176, 157 }, { 128, 222, 198 } },
  { { 128, 35, 56 }, { 128, 203, 225 } },
  { { 128, 55, 136 }, { 128, 230, 253 } },
  { { 128, 101, 188 }, { 128, 128, 128 } }
};
static const aom_prob default_empty_line[TX_SIZES][PLANE_TYPES][TX_CLASSES]
                                        [EMPTY_LINE_CONTEXTS] = {
                                          { { { 128, 128, 128, 128, 128 },
                                              { 142, 153, 211, 205, 128 },
                                              { 162, 142, 203, 197, 128 } },
                                            { { 128, 128, 128, 128, 128 },
                                              { 133, 116, 178, 123, 128 },
                                              { 139, 109, 159, 115, 128 } } },
                                          { { { 128, 128, 128, 128, 128 },
                                              { 185, 130, 183, 204, 227 },
                                              { 171, 81, 177, 200, 221 } },
                                            { { 128, 128, 128, 128, 128 },
                                              { 180, 127, 175, 189, 213 },
                                              { 120, 74, 129, 134, 156 } } },
                                          { { { 128, 128, 128, 128, 128 },
                                              { 202, 82, 183, 214, 248 },
                                              { 144, 41, 163, 185, 203 } },
                                            { { 128, 128, 128, 128, 128 },
                                              { 151, 93, 171, 224, 160 },
                                              { 128, 51, 171, 128, 1 } } },
                                          { { { 128, 128, 128, 128, 128 },
                                              { 154, 48, 174, 210, 233 },
                                              { 123, 16, 148, 189, 197 } },
                                            { { 128, 128, 128, 128, 128 },
                                              { 128, 128, 128, 128, 128 },
                                              { 128, 128, 128, 128, 128 } } }
                                        };
static const aom_prob
    default_hv_eob[TX_SIZES][PLANE_TYPES][TX_CLASSES][HV_EOB_CONTEXTS] = {
      { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 151, 173, 114, 128, 128, 128, 128, 128, 128, 162, 198, 128,
            128, 128, 128, 128, 182, 198, 109, 128, 128, 128, 128, 128 },
          { 152, 173, 119, 128, 128, 128, 128, 128, 128, 164, 193, 128,
            128, 128, 128, 128, 198, 209, 121, 128, 128, 128, 128, 128 } },
        { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 123, 143, 70,  128, 128, 128, 128, 128, 128, 127, 154, 128,
            128, 128, 128, 128, 176, 148, 36,  128, 128, 128, 128, 128 },
          { 132, 152, 73,  128, 128, 128, 128, 128, 128, 127, 159, 128,
            128, 128, 128, 128, 186, 181, 48,  128, 128, 128, 128, 128 } } },
      { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 109, 105, 78,  44,  128, 128, 128, 128, 128, 146, 185, 221,
            128, 128, 128, 128, 199, 188, 134, 69,  128, 128, 128, 128 },
          { 124, 127, 115, 82,  128, 128, 128, 128, 128, 162, 198, 224,
            128, 128, 128, 128, 206, 214, 177, 135, 128, 128, 128, 128 } },
        { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 95,  102, 65,  14,  128, 128, 128, 128, 128, 132, 164, 199,
            128, 128, 128, 128, 162, 163, 66,  27,  128, 128, 128, 128 },
          { 83,  141, 97,  38,  128, 128, 128, 128, 128, 154, 132, 184,
            128, 128, 128, 128, 194, 218, 112, 63,  128, 128, 128, 128 } } },
      { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 117, 107, 86,  61,  51,  104, 128, 128, 128, 160, 198, 238,
            252, 251, 128, 128, 221, 223, 209, 186, 99,  81,  128, 128 },
          { 118, 122, 121, 100, 91,  97,  128, 128, 128, 168, 190, 214,
            233, 235, 128, 128, 197, 216, 177, 165, 147, 126, 128, 128 } },
        { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 109, 102, 63,  51,  255, 85,  128, 128, 128, 163, 131, 175,
            128, 128, 128, 128, 183, 102, 40,  1,   128, 128, 128, 128 },
          { 255, 255, 1,   1,   128, 1, 128, 128, 128, 1,   128, 128,
            128, 128, 128, 128, 255, 1, 128, 128, 128, 128, 128, 128 } } },
      { { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 114, 108, 83,  61,  53,  28,  77,  177, 128, 161, 187, 218,
            240, 237, 228, 234, 200, 207, 167, 136, 98,  78,  183, 128 },
          { 117, 138, 116, 77,  75,  85,  26,  1,   128, 197, 162, 200,
            184, 212, 225, 236, 189, 225, 168, 124, 144, 171, 128, 128 } },
        { { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
          { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128,
            128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 } } }
    };
#endif  // CONFIG_CTX1D
#endif  // CONFIG_LV_MAP

#if CONFIG_EXT_PARTITION_TYPES
static const aom_prob
    default_partition_probs[PARTITION_CONTEXTS][EXT_PARTITION_TYPES - 1] = {
      // 8x8 -> 4x4
      { 199, 122, 141, 128, 128, 128, 255, 128, 255 },  // a/l both not split
      { 147, 63, 159, 128, 128, 128, 255, 128, 255 },   // a split, l not split
      { 148, 133, 118, 128, 128, 128, 255, 128, 255 },  // l split, a not split
      { 121, 104, 114, 128, 128, 128, 255, 128, 255 },  // a/l both split
      // 16x16 -> 8x8
      { 174, 73, 87, 128, 128, 128, 255, 128, 255 },  // a/l both not split
      { 92, 41, 83, 128, 128, 128, 255, 128, 255 },   // a split, l not split
      { 82, 99, 50, 128, 128, 128, 255, 128, 255 },   // l split, a not split
      { 53, 39, 39, 128, 128, 128, 255, 128, 255 },   // a/l both split
      // 32x32 -> 16x16
      { 177, 58, 59, 128, 128, 85, 128, 85, 128 },  // a/l both not split
      { 68, 26, 63, 128, 128, 85, 128, 85, 128 },   // a split, l not split
      { 52, 79, 25, 128, 128, 85, 128, 85, 128 },   // l split, a not split
      { 17, 14, 12, 128, 128, 85, 128, 85, 128 },   // a/l both split
      // 64x64 -> 32x32
      { 222, 34, 30, 128, 128, 85, 128, 85, 128 },  // a/l both not split
      { 72, 16, 44, 128, 128, 85, 128, 85, 128 },   // a split, l not split
      { 58, 32, 12, 128, 128, 85, 128, 85, 128 },   // l split, a not split
      { 10, 7, 6, 128, 128, 85, 128, 85, 128 },     // a/l both split
#if CONFIG_EXT_PARTITION
      // 128x128 -> 64x64
      { 222, 34, 30, 128, 128, 128, 255, 128, 255 },  // a/l both not split
      { 72, 16, 44, 128, 128, 128, 255, 128, 255 },   // a split, l not split
      { 58, 32, 12, 128, 128, 128, 255, 128, 255 },   // l split, a not split
      { 10, 7, 6, 128, 128, 128, 255, 128, 255 },     // a/l both split
#endif                                                // CONFIG_EXT_PARTITION
#if CONFIG_UNPOISON_PARTITION_CTX
      { 0, 0, 141, 0, 0, 0, 0, 0, 0 },  // 8x8 -> 4x4
      { 0, 0, 87, 0, 0, 0, 0, 0, 0 },   // 16x16 -> 8x8
      { 0, 0, 59, 0, 0, 0, 0, 0, 0 },   // 32x32 -> 16x16
      { 0, 0, 30, 0, 0, 0, 0, 0, 0 },   // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 0, 30, 0, 0, 0, 0, 0, 0 },   // 128x128 -> 64x64
#endif                                  // CONFIG_EXT_PARTITION
      { 0, 122, 0, 0, 0, 0, 0, 0, 0 },  // 8x8 -> 4x4
      { 0, 73, 0, 0, 0, 0, 0, 0, 0 },   // 16x16 -> 8x8
      { 0, 58, 0, 0, 0, 0, 0, 0, 0 },   // 32x32 -> 16x16
      { 0, 34, 0, 0, 0, 0, 0, 0, 0 },   // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 34, 0, 0, 0, 0, 0, 0, 0 },  // 128x128 -> 64x64
#endif                                 // CONFIG_EXT_PARTITION
#endif                                 // CONFIG_UNPOISON_PARTITION_CTX
    };
#else
static const aom_prob
    default_partition_probs[PARTITION_CONTEXTS][PARTITION_TYPES - 1] = {
      // 8x8 -> 4x4
      { 199, 122, 141 },  // a/l both not split
      { 147, 63, 159 },   // a split, l not split
      { 148, 133, 118 },  // l split, a not split
      { 121, 104, 114 },  // a/l both split
      // 16x16 -> 8x8
      { 174, 73, 87 },  // a/l both not split
      { 92, 41, 83 },   // a split, l not split
      { 82, 99, 50 },   // l split, a not split
      { 53, 39, 39 },   // a/l both split
      // 32x32 -> 16x16
      { 177, 58, 59 },  // a/l both not split
      { 68, 26, 63 },   // a split, l not split
      { 52, 79, 25 },   // l split, a not split
      { 17, 14, 12 },   // a/l both split
      // 64x64 -> 32x32
      { 222, 34, 30 },  // a/l both not split
      { 72, 16, 44 },   // a split, l not split
      { 58, 32, 12 },   // l split, a not split
      { 10, 7, 6 },     // a/l both split
#if CONFIG_EXT_PARTITION
      // 128x128 -> 64x64
      { 222, 34, 30 },  // a/l both not split
      { 72, 16, 44 },   // a split, l not split
      { 58, 32, 12 },   // l split, a not split
      { 10, 7, 6 },     // a/l both split
#endif  // CONFIG_EXT_PARTITION
#if CONFIG_UNPOISON_PARTITION_CTX
      { 0, 0, 141 },    // 8x8 -> 4x4
      { 0, 0, 87 },     // 16x16 -> 8x8
      { 0, 0, 59 },     // 32x32 -> 16x16
      { 0, 0, 30 },     // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 0, 30 },     // 128x128 -> 64x64
#endif  // CONFIG_EXT_PARTITION
      { 0, 122, 0 },    // 8x8 -> 4x4
      { 0, 73, 0 },     // 16x16 -> 8x8
      { 0, 58, 0 },     // 32x32 -> 16x16
      { 0, 34, 0 },     // 64x64 -> 32x32
#if CONFIG_EXT_PARTITION
      { 0, 34, 0 },     // 128x128 -> 64x64
#endif  // CONFIG_EXT_PARTITION
#endif  // CONFIG_UNPOISON_PARTITION_CTX
    };
#endif  // CONFIG_EXT_PARTITION_TYPES

static const aom_prob default_newmv_prob[NEWMV_MODE_CONTEXTS] = {
  155, 116, 94, 32, 96, 56, 30,
};

static const aom_prob default_zeromv_prob[GLOBALMV_MODE_CONTEXTS] = {
  45, 13,
};

static const aom_prob default_refmv_prob[REFMV_MODE_CONTEXTS] = {
  178, 212, 135, 244, 203, 122, 128, 128, 128,
};

static const aom_prob default_drl_prob[DRL_MODE_CONTEXTS] = {
  119, 128, 189, 134, 128,
};
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_newmv_cdf[NEWMV_MODE_CONTEXTS][CDF_SIZE(2)] =
    { { AOM_CDF2(128 * 155) }, { AOM_CDF2(128 * 116) }, { AOM_CDF2(128 * 94) },
      { AOM_CDF2(128 * 32) },  { AOM_CDF2(128 * 96) },  { AOM_CDF2(128 * 56) },
      { AOM_CDF2(128 * 30) } };
static const aom_cdf_prob default_zeromv_cdf[GLOBALMV_MODE_CONTEXTS][CDF_SIZE(
    2)] = { { AOM_CDF2(128 * 45) }, { AOM_CDF2(128 * 13) } };
static const aom_cdf_prob default_refmv_cdf[REFMV_MODE_CONTEXTS][CDF_SIZE(2)] =
    {
      { AOM_CDF2(128 * 178) }, { AOM_CDF2(128 * 212) }, { AOM_CDF2(128 * 135) },
      { AOM_CDF2(128 * 244) }, { AOM_CDF2(128 * 203) }, { AOM_CDF2(128 * 122) },
      { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }
    };
static const aom_cdf_prob default_drl_cdf[DRL_MODE_CONTEXTS][CDF_SIZE(2)] = {
  { AOM_CDF2(128 * 119) },
  { AOM_CDF2(128 * 128) },
  { AOM_CDF2(128 * 189) },
  { AOM_CDF2(128 * 134) },
  { AOM_CDF2(128 * 128) }
};
#endif

static const aom_prob default_inter_compound_mode_probs
    [INTER_MODE_CONTEXTS][INTER_COMPOUND_MODES - 1] = {
      { 154, 167, 233, 165, 143, 170, 167 },  // 0 = both zero mv
      { 75, 168, 237, 155, 135, 176, 172 },   // 1 = 1 zero + 1 predicted
      { 7, 173, 227, 128, 153, 188, 189 },    // 2 = two predicted mvs
      { 8, 120, 214, 113, 154, 178, 174 },    // 3 = 1 pred/zero, 1 new
      { 4, 85, 194, 94, 155, 173, 167 },      // 4 = two new mvs
      { 23, 89, 180, 73, 157, 151, 155 },     // 5 = one intra neighbour
      { 27, 49, 152, 91, 134, 153, 142 },     // 6 = two intra neighbours
    };

static const aom_cdf_prob
    default_inter_compound_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
        INTER_COMPOUND_MODES)] = {
      { AOM_CDF8(19712, 28229, 30892, 31437, 31712, 32135, 32360) },
      { AOM_CDF8(9600, 24804, 29268, 30323, 30802, 31726, 32177) },
      { AOM_CDF8(896, 22434, 27015, 29026, 29753, 31114, 31597) },
      { AOM_CDF8(1024, 15904, 22127, 25421, 26864, 28996, 30001) },
      { AOM_CDF8(512, 11222, 17217, 21445, 23473, 26133, 27550) },
      { AOM_CDF8(2944, 13313, 17214, 20751, 23211, 25500, 26992) },
      { AOM_CDF8(3456, 9067, 14069, 16907, 18817, 21214, 23139) }
    };

#if CONFIG_COMPOUND_SINGLEREF
// TODO(zoeliu): Default values to be further adjusted based on the collected
//               stats.
/*
static const aom_prob default_inter_singleref_comp_mode_probs
    [INTER_MODE_CONTEXTS][INTER_SINGLEREF_COMP_MODES - 1] = {
      { 2, 173, 68, 180 },   // 0 = both zero mv
      { 7, 145, 160, 180 },  // 1 = 1 zero + 1 predicted
      { 7, 166, 126, 180 },  // 2 = two predicted mvs
      { 7, 94, 132, 180 },   // 3 = 1 pred/zero, 1 new
      { 8, 64, 64, 180 },    // 4 = two new mvs
      { 17, 81, 52, 180 },   // 5 = one intra neighbour
      { 25, 29, 50, 180 },   // 6 = two intra neighbours
    };*/
static const aom_prob default_inter_singleref_comp_mode_probs
    [INTER_MODE_CONTEXTS][INTER_SINGLEREF_COMP_MODES - 1] = {
      { 2, 173, 68 },   // 0 = both zero mv
      { 7, 145, 160 },  // 1 = 1 zero + 1 predicted
      { 7, 166, 126 },  // 2 = two predicted mvs
      { 7, 94, 132 },   // 3 = 1 pred/zero, 1 new
      { 8, 64, 64 },    // 4 = two new mvs
      { 17, 81, 52 },   // 5 = one intra neighbour
      { 25, 29, 50 },   // 6 = two intra neighbours
    };

static const aom_cdf_prob
    default_inter_singleref_comp_mode_cdf[INTER_MODE_CONTEXTS][CDF_SIZE(
        INTER_SINGLEREF_COMP_MODES)] = {
      { AOM_CDF4(21971, 24771, 25027) }, { AOM_CDF4(18053, 26690, 27586) },
      { AOM_CDF4(20667, 26182, 27078) }, { AOM_CDF4(11703, 22103, 22999) },
      { AOM_CDF4(7936, 13888, 14912) },  { AOM_CDF4(9679, 13927, 16103) },
      { AOM_CDF4(3349, 8470, 11670) }
    };
#endif  // CONFIG_COMPOUND_SINGLEREF

static const aom_prob
    default_compound_type_probs[BLOCK_SIZES_ALL][COMPOUND_TYPES - 1] = {
      { 128, 128 }, { 128, 128 }, { 128, 128 }, { 128, 128 },
      { 255, 128 }, { 255, 128 }, { 66, 51 },   { 72, 35 },
      { 79, 29 },   { 71, 18 },   { 81, 29 },   { 81, 26 },
      { 69, 19 },   { 104, 1 },   { 99, 1 },    { 75, 1 },
#if CONFIG_EXT_PARTITION
      { 255, 1 },   { 255, 1 },   { 255, 1 },
#endif  // CONFIG_EXT_PARTITION
      { 208, 128 }, { 208, 128 }, { 208, 128 }, { 208, 128 },
      { 208, 1 },   { 208, 1 },
#if CONFIG_EXT_PARTITION
      { 208, 1 },   { 208, 1 }
#endif  // CONFIG_EXT_PARTITION
    };

static const aom_cdf_prob
    default_compound_type_cdf[BLOCK_SIZES_ALL][CDF_SIZE(COMPOUND_TYPES)] = {
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(32640, 32704) }, { AOM_CDF3(32640, 32704) },
      { AOM_CDF3(8448, 13293) },  { AOM_CDF3(9216, 12436) },
      { AOM_CDF3(10112, 12679) }, { AOM_CDF3(9088, 10753) },
      { AOM_CDF3(10368, 12906) }, { AOM_CDF3(10368, 12643) },
      { AOM_CDF3(8832, 10609) },  { AOM_CDF3(13312, 13388) },
      { AOM_CDF3(12672, 12751) }, { AOM_CDF3(9600, 9691) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF3(32640, 32641) },  // 255, 1
      { AOM_CDF3(32640, 32641) }, { AOM_CDF3(32640, 32641) },
#endif  // CONFIG_EXT_PARTITION
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(26624, 26648) },  // 208, 1
      { AOM_CDF3(26624, 26648) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF3(26624, 26648) }, { AOM_CDF3(26624, 26648) },
#endif
    };

static const aom_prob default_interintra_prob[BLOCK_SIZE_GROUPS] = {
  128, 226, 244, 254,
};
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_interintra_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(
    2)] = { { AOM_CDF2(128 * 128) },
            { AOM_CDF2(226 * 128) },
            { AOM_CDF2(244 * 128) },
            { AOM_CDF2(254 * 128) } };
#endif

static const aom_prob
    default_interintra_mode_prob[BLOCK_SIZE_GROUPS][INTERINTRA_MODES - 1] = {
      { 128, 128, 128 },  // block_size < 8x8
      { 24, 34, 119 },    // block_size < 16x16
      { 38, 33, 95 },     // block_size < 32x32
      { 51, 21, 110 },    // block_size >= 32x32
    };
static const aom_cdf_prob
    default_interintra_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTERINTRA_MODES)] =
        { { AOM_CDF4(16384, 24576, 28672) },
          { AOM_CDF4(3072, 7016, 18987) },
          { AOM_CDF4(4864, 8461, 17481) },
          { AOM_CDF4(6528, 8681, 19031) } };

static const aom_prob default_wedge_interintra_prob[BLOCK_SIZES_ALL] = {
  128, 128, 128, 128, 128, 128, 194, 213,
  217, 222, 224, 226, 220, 128, 128, 128,
#if CONFIG_EXT_PARTITION
  255, 255, 255,
#endif  // CONFIG_EXT_PARTITION
  208, 208, 208, 208, 255, 255,
#if CONFIG_EXT_PARTITION
  255, 255
#endif  // CONFIG_EXT_PARTITION
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob
    default_wedge_interintra_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
      { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
      { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
      { AOM_CDF2(194 * 128) }, { AOM_CDF2(213 * 128) }, { AOM_CDF2(217 * 128) },
      { AOM_CDF2(222 * 128) }, { AOM_CDF2(224 * 128) }, { AOM_CDF2(226 * 128) },
      { AOM_CDF2(220 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
      { AOM_CDF2(128 * 128) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
#endif  // CONFIG_EXT_PARTITION
      { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
      { AOM_CDF2(208 * 128) }, { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF2(255 * 128) }, { AOM_CDF2(255 * 128) },
#endif  // CONFIG_EXT_PARTITION
    };
#endif  // CONFIG_NEW_MULTISYMBOL

const aom_tree_index av1_motion_mode_tree[TREE_SIZE(MOTION_MODES)] = {
  -SIMPLE_TRANSLATION, 2, -OBMC_CAUSAL, -WARPED_CAUSAL,
};

static const aom_prob
    default_motion_mode_prob[BLOCK_SIZES_ALL][MOTION_MODES - 1] = {
      { 128, 128 }, { 128, 128 }, { 128, 128 }, { 128, 128 },
      { 128, 128 }, { 128, 128 }, { 62, 115 },  { 39, 131 },
      { 39, 132 },  { 118, 94 },  { 77, 125 },  { 100, 121 },
      { 190, 66 },  { 207, 102 }, { 197, 100 }, { 239, 76 },
#if CONFIG_EXT_PARTITION
      { 252, 200 }, { 252, 200 }, { 252, 200 },
#endif  // CONFIG_EXT_PARTITION
      { 208, 200 }, { 208, 200 }, { 208, 200 }, { 208, 200 },
      { 208, 200 }, { 208, 200 },
#if CONFIG_EXT_PARTITION
      { 252, 200 }, { 252, 200 }
#endif  // CONFIG_EXT_PARTITION
    };
static const aom_cdf_prob
    default_motion_mode_cdf[BLOCK_SIZES_ALL][CDF_SIZE(MOTION_MODES)] = {
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(16384, 24576) }, { AOM_CDF3(16384, 24576) },
      { AOM_CDF3(7936, 19091) },  { AOM_CDF3(4991, 19205) },
      { AOM_CDF3(4992, 19314) },  { AOM_CDF3(15104, 21590) },
      { AOM_CDF3(9855, 21043) },  { AOM_CDF3(12800, 22238) },
      { AOM_CDF3(24320, 26498) }, { AOM_CDF3(26496, 28995) },
      { AOM_CDF3(25216, 28166) }, { AOM_CDF3(30592, 31238) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
      { AOM_CDF3(32256, 32656) },
#endif
      { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
      { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
      { AOM_CDF3(32640, 32740) }, { AOM_CDF3(32640, 32740) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF3(32256, 32656) }, { AOM_CDF3(32256, 32656) },
#endif
    };

// Probability for the case that only 1 additional motion mode is allowed
static const aom_prob default_obmc_prob[BLOCK_SIZES_ALL] = {
  128, 128, 128, 128, 128, 128, 45, 79, 75, 130, 141, 144, 208, 201, 186, 231,
#if CONFIG_EXT_PARTITION
  252, 252, 252,
#endif  // CONFIG_EXT_PARTITION
  208, 208, 208, 208, 208, 208,
#if CONFIG_EXT_PARTITION
  252, 252
#endif  // CONFIG_EXT_PARTITION
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_obmc_cdf[BLOCK_SIZES_ALL][CDF_SIZE(2)] = {
  { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
  { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) }, { AOM_CDF2(128 * 128) },
  { AOM_CDF2(45 * 128) },  { AOM_CDF2(79 * 128) },  { AOM_CDF2(75 * 128) },
  { AOM_CDF2(130 * 128) }, { AOM_CDF2(141 * 128) }, { AOM_CDF2(144 * 128) },
  { AOM_CDF2(208 * 128) }, { AOM_CDF2(201 * 128) }, { AOM_CDF2(186 * 128) },
  { AOM_CDF2(231 * 128) },
#if CONFIG_EXT_PARTITION
  { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
#endif  // CONFIG_EXT_PARTITION
  { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
  { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) }, { AOM_CDF2(208 * 128) },
#if CONFIG_EXT_PARTITION
  { AOM_CDF2(252 * 128) }, { AOM_CDF2(252 * 128) },
#endif  // CONFIG_EXT_PARTITION
};
#endif  // CONFIG_NEW_MULTISYMBOL

static const aom_prob default_delta_q_probs[DELTA_Q_PROBS] = { 220, 220, 220 };
static const aom_cdf_prob default_delta_q_cdf[CDF_SIZE(DELTA_Q_PROBS + 1)] = {
  AOM_CDF4(28160, 32120, 32677)
};
#if CONFIG_EXT_DELTA_Q
#if CONFIG_LOOPFILTER_LEVEL
static const aom_prob
    default_delta_lf_multi_probs[FRAME_LF_COUNT][DELTA_LF_PROBS] = {
      { 220, 220, 220 }, { 220, 220, 220 }, { 220, 220, 220 }, { 220, 220, 220 }
    };
static const aom_cdf_prob default_delta_lf_multi_cdf[FRAME_LF_COUNT][CDF_SIZE(
    DELTA_LF_PROBS + 1)] = { { AOM_CDF4(28160, 32120, 32677) },
                             { AOM_CDF4(28160, 32120, 32677) },
                             { AOM_CDF4(28160, 32120, 32677) },
                             { AOM_CDF4(28160, 32120, 32677) } };
#endif  // CONFIG_LOOPFILTER_LEVEL
static const aom_prob default_delta_lf_probs[DELTA_LF_PROBS] = { 220, 220,
                                                                 220 };
static const aom_cdf_prob default_delta_lf_cdf[CDF_SIZE(DELTA_LF_PROBS + 1)] = {
  AOM_CDF4(28160, 32120, 32677)
};
#endif

/* clang-format off */
const aom_tree_index av1_interintra_mode_tree[TREE_SIZE(INTERINTRA_MODES)] = {
  -II_DC_PRED, 2,        /* 0 = II_DC_NODE     */
  -II_SMOOTH_PRED, 4,    /* 1 = II_SMOOTH_PRED */
  -II_V_PRED, -II_H_PRED /* 2 = II_V_NODE      */
};

const aom_tree_index av1_inter_compound_mode_tree
    [TREE_SIZE(INTER_COMPOUND_MODES)] = {
  -INTER_COMPOUND_OFFSET(GLOBAL_GLOBALMV), 2,
  -INTER_COMPOUND_OFFSET(NEAREST_NEARESTMV), 4,
  6, -INTER_COMPOUND_OFFSET(NEW_NEWMV),
  -INTER_COMPOUND_OFFSET(NEAR_NEARMV), 8,
  10, 12,
  -INTER_COMPOUND_OFFSET(NEAREST_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARESTMV),
  -INTER_COMPOUND_OFFSET(NEAR_NEWMV), -INTER_COMPOUND_OFFSET(NEW_NEARMV)
};

#if CONFIG_COMPOUND_SINGLEREF
// TODO(zoeliu): To redesign the tree structure once the number of mode changes.
/*
const aom_tree_index av1_inter_singleref_comp_mode_tree
    [TREE_SIZE(INTER_SINGLEREF_COMP_MODES)] = {
  -INTER_SINGLEREF_COMP_OFFSET(SR_ZERO_NEWMV), 2,
  -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEARMV), 4,
  6, -INTER_SINGLEREF_COMP_OFFSET(SR_NEW_NEWMV),
  -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEWMV),
  -INTER_SINGLEREF_COMP_OFFSET(SR_NEAR_NEWMV)
};*/

const aom_tree_index av1_inter_singleref_comp_mode_tree
    [TREE_SIZE(INTER_SINGLEREF_COMP_MODES)] = {
  -INTER_SINGLEREF_COMP_OFFSET(SR_ZERO_NEWMV), 2,
  -INTER_SINGLEREF_COMP_OFFSET(SR_NEAREST_NEARMV), 4,
  -INTER_SINGLEREF_COMP_OFFSET(SR_NEAR_NEWMV),
      -INTER_SINGLEREF_COMP_OFFSET(SR_NEW_NEWMV)
};
#endif  // CONFIG_COMPOUND_SINGLEREF

const aom_tree_index av1_compound_type_tree[TREE_SIZE(COMPOUND_TYPES)] = {
  -COMPOUND_AVERAGE, 2, -COMPOUND_WEDGE, -COMPOUND_SEG
};
/* clang-format on */

const aom_tree_index av1_partition_tree[TREE_SIZE(PARTITION_TYPES)] = {
  -PARTITION_NONE, 2, -PARTITION_HORZ, 4, -PARTITION_VERT, -PARTITION_SPLIT
};

#if CONFIG_EXT_PARTITION_TYPES
/* clang-format off */
const aom_tree_index av1_ext_partition_tree[TREE_SIZE(EXT_PARTITION_TYPES)] = {
  -PARTITION_NONE, 2,
  6, 4,
  8, -PARTITION_SPLIT,
  -PARTITION_HORZ, 10,
  -PARTITION_VERT, 14,

  -PARTITION_HORZ_A, 12,
  -PARTITION_HORZ_B, -PARTITION_HORZ_4,

  -PARTITION_VERT_A, 16,
  -PARTITION_VERT_B, -PARTITION_VERT_4
};
/* clang-format on */
#endif  // CONFIG_EXT_PARTITION_TYPES

static const aom_prob default_intra_inter_p[INTRA_INTER_CONTEXTS] = {
  6, 97, 151, 205,
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_intra_inter_cdf[INTRA_INTER_CONTEXTS]
                                                 [CDF_SIZE(2)] = {
                                                   { AOM_CDF2(768) },
                                                   { AOM_CDF2(12416) },
                                                   { AOM_CDF2(19328) },
                                                   { AOM_CDF2(26240) }
                                                 };
#endif

static const aom_prob default_comp_inter_p[COMP_INTER_CONTEXTS] = {
  190, 156, 91, 77, 22
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_comp_inter_cdf[COMP_INTER_CONTEXTS][CDF_SIZE(
    2)] = { { AOM_CDF2(24290) },
            { AOM_CDF2(19956) },
            { AOM_CDF2(11641) },
            { AOM_CDF2(9804) },
            { AOM_CDF2(2842) } };
#endif  // CONFIG_NEW_MULTISYMBOL

#if CONFIG_EXT_COMP_REFS
static const aom_prob default_comp_ref_type_p[COMP_REF_TYPE_CONTEXTS] = {
  8, 20, 78, 91, 194
};
static const aom_prob
    default_uni_comp_ref_p[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1] = {
      { 88, 30, 28 }, { 218, 97, 105 }, { 254, 180, 196 }
    };

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_comp_ref_type_cdf[COMP_REF_TYPE_CONTEXTS]
                                                   [CDF_SIZE(2)] = {
                                                     { AOM_CDF2(8 * 128) },
                                                     { AOM_CDF2(20 * 128) },
                                                     { AOM_CDF2(78 * 128) },
                                                     { AOM_CDF2(91 * 128) },
                                                     { AOM_CDF2(194 * 128) }
                                                   };
static const aom_cdf_prob
    default_uni_comp_ref_cdf[UNI_COMP_REF_CONTEXTS][UNIDIR_COMP_REFS - 1]
                            [CDF_SIZE(2)] = { { { AOM_CDF2(88 * 128) },
                                                { AOM_CDF2(30 * 128) },
                                                { AOM_CDF2(28 * 128) } },
                                              { { AOM_CDF2(218 * 128) },
                                                { AOM_CDF2(97 * 128) },
                                                { AOM_CDF2(105 * 128) } },
                                              { { AOM_CDF2(254 * 128) },
                                                { AOM_CDF2(180 * 128) },
                                                { AOM_CDF2(196 * 128) } } };
#endif  // CONFIG_NEW_MULTISYMBOL
#endif  // CONFIG_EXT_COMP_REFS

static const aom_prob default_comp_ref_p[REF_CONTEXTS][FWD_REFS - 1] = {
  { 28, 10, 8 },
  { 77, 27, 26 },
  { 127, 62, 56 },
  { 186, 126, 160 },
  { 236, 143, 172 }
};

static const aom_prob default_comp_bwdref_p[REF_CONTEXTS][BWD_REFS - 1] = {
  { 22, 13 }, { 140, 124 }, { 241, 239 }, { 128, 128 }, { 128, 128 }
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob
    default_comp_ref_cdf[REF_CONTEXTS][FWD_REFS - 1][CDF_SIZE(2)] = {
      { { AOM_CDF2(3556) }, { AOM_CDF2(1217) }, { AOM_CDF2(988) } },
      { { AOM_CDF2(9857) }, { AOM_CDF2(3394) }, { AOM_CDF2(3303) } },
      { { AOM_CDF2(16237) }, { AOM_CDF2(7946) }, { AOM_CDF2(7195) } },
      { { AOM_CDF2(23826) }, { AOM_CDF2(16124) }, { AOM_CDF2(20536) } },
      { { AOM_CDF2(30195) }, { AOM_CDF2(18344) }, { AOM_CDF2(21980) } }
    };

static const aom_cdf_prob
    default_comp_bwdref_cdf[REF_CONTEXTS][BWD_REFS - 1][CDF_SIZE(2)] = {
      { { AOM_CDF2(2762) }, { AOM_CDF2(1614) } },
      { { AOM_CDF2(17976) }, { AOM_CDF2(15912) } },
      { { AOM_CDF2(30894) }, { AOM_CDF2(30639) } },
      { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } },
      { { AOM_CDF2(32768) }, { AOM_CDF2(32768) } }
    };
#endif  // CONFIG_NEW_MULTISYMBOL

static const aom_prob default_single_ref_p[REF_CONTEXTS][SINGLE_REFS - 1] = {
  { 36, 16, 32, 57, 11, 14 },
  { 68, 128, 73, 128, 49, 124 },
  { 136, 236, 127, 170, 81, 238 },
  { 128, 128, 191, 211, 115, 128 },
  { 224, 128, 230, 242, 208, 128 }
};

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_single_ref_cdf[REF_CONTEXTS][SINGLE_REFS - 1]
                                                [CDF_SIZE(2)] = {
                                                  { { AOM_CDF2(4623) },
                                                    { AOM_CDF2(2110) },
                                                    { AOM_CDF2(4132) },
                                                    { AOM_CDF2(7309) },
                                                    { AOM_CDF2(1392) },
                                                    { AOM_CDF2(1781) } },
                                                  { { AOM_CDF2(8659) },
                                                    { AOM_CDF2(16372) },
                                                    { AOM_CDF2(9371) },
                                                    { AOM_CDF2(16322) },
                                                    { AOM_CDF2(6216) },
                                                    { AOM_CDF2(15834) } },
                                                  { { AOM_CDF2(17353) },
                                                    { AOM_CDF2(30182) },
                                                    { AOM_CDF2(16300) },
                                                    { AOM_CDF2(21702) },
                                                    { AOM_CDF2(10365) },
                                                    { AOM_CDF2(30486) } },
                                                  { { AOM_CDF2(32768) },
                                                    { AOM_CDF2(32768) },
                                                    { AOM_CDF2(24426) },
                                                    { AOM_CDF2(26972) },
                                                    { AOM_CDF2(14760) },
                                                    { AOM_CDF2(32768) } },
                                                  { { AOM_CDF2(28634) },
                                                    { AOM_CDF2(32768) },
                                                    { AOM_CDF2(29425) },
                                                    { AOM_CDF2(30969) },
                                                    { AOM_CDF2(26676) },
                                                    { AOM_CDF2(32768) } }
                                                };
#endif  // CONFIG_NEW_MULTISYMBOL

#if CONFIG_COMPOUND_SINGLEREF
// TODO(zoeliu): Default values to be further adjusted based on the collected
//               stats.
static const aom_prob default_comp_inter_mode_p[COMP_INTER_MODE_CONTEXTS] = {
  40, 110, 160, 220
};
#endif  // CONFIG_COMPOUND_SINGLEREF

// TODO(huisu): tune these cdfs
const aom_cdf_prob
    default_palette_y_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(PALETTE_SIZES)] = {
      { AOM_CDF7(12288, 19408, 24627, 26662, 28499, 30667) },
      { AOM_CDF7(2815, 4570, 9416, 10875, 13782, 19863) },
      { AOM_CDF7(3839, 5986, 11949, 13413, 16286, 21823) },
      { AOM_CDF7(12032, 14948, 22187, 23138, 24756, 27635) },
      { AOM_CDF7(14847, 20167, 25433, 26751, 28278, 30119) },
      { AOM_CDF7(14336, 20240, 24840, 26079, 27908, 30034) },
      { AOM_CDF7(18816, 25574, 29030, 29877, 30656, 31506) },
      { AOM_CDF7(23039, 27333, 30220, 30708, 31070, 31826) },
      { AOM_CDF7(13696, 18911, 23620, 25371, 29821, 31617) },
      { AOM_CDF7(12543, 20838, 27455, 28762, 29763, 31546) },
    };

const aom_cdf_prob default_palette_uv_size_cdf[PALETTE_BLOCK_SIZES][CDF_SIZE(
    PALETTE_SIZES)] = {
  { AOM_CDF7(20480, 29888, 32453, 32715, 32751, 32766) },
  { AOM_CDF7(11135, 23641, 31056, 31998, 32496, 32668) },
  { AOM_CDF7(9216, 23108, 30806, 31871, 32414, 32637) },
  { AOM_CDF7(9984, 21999, 29192, 30645, 31640, 32402) },
  { AOM_CDF7(7552, 16614, 24880, 27283, 29254, 31203) },
  { AOM_CDF7(9600, 20279, 27548, 29261, 30494, 31631) },
  { AOM_CDF7(11391, 18656, 23727, 26058, 27788, 30278) },
  { AOM_CDF7(8576, 13585, 17632, 20884, 23948, 27152) },
  { AOM_CDF7(15360, 24200, 26978, 30846, 31409, 32545) },
  { AOM_CDF7(9216, 14276, 19043, 22689, 25799, 28712) },
};

// When palette mode is enabled, following probability tables indicate the
// probabilities to code the "is_palette" bit (i.e. the bit that indicates
// if this block uses palette mode or DC_PRED mode).
const aom_prob av1_default_palette_y_mode_prob[PALETTE_BLOCK_SIZES]
                                              [PALETTE_Y_MODE_CONTEXTS] = {
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                                { 240, 180, 100 },
                                              };

const aom_prob av1_default_palette_uv_mode_prob[PALETTE_UV_MODE_CONTEXTS] = {
  253, 229
};

#if CONFIG_NEW_MULTISYMBOL
const aom_cdf_prob default_palette_y_mode_cdf[PALETTE_BLOCK_SIZES]
                                             [PALETTE_Y_MODE_CONTEXTS]
                                             [CDF_SIZE(2)] = {
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                               { { AOM_CDF2(128 * 240) },
                                                 { AOM_CDF2(128 * 180) },
                                                 { AOM_CDF2(128 * 100) } },
                                             };

const aom_cdf_prob
    default_palette_uv_mode_cdf[PALETTE_UV_MODE_CONTEXTS][CDF_SIZE(2)] = {
      { AOM_CDF2(128 * 253) }, { AOM_CDF2(128 * 229) }
    };
#endif

const aom_cdf_prob default_palette_y_color_index_cdf
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
      {
          { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
          { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
          { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
          { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
          { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
          { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
          { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
          { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
          { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
      },
      {
          { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
          { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
          { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
          { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
          { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
      },
      {
          { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
          { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
          { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
          { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
          { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
      },
      {
          { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
          { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
          { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
          { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
          { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
      },
      {
          { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
          { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
          { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
          { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
          { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
      },
    };

const aom_cdf_prob default_palette_uv_color_index_cdf
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
      {
          { AOM_CDF2(29824), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(30720), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(31744), 0, 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF3(27648, 30208), 0, 0, 0, 0, 0 },
          { AOM_CDF3(14080, 26563), 0, 0, 0, 0, 0 },
          { AOM_CDF3(5120, 30932), 0, 0, 0, 0, 0 },
          { AOM_CDF3(24448, 27828), 0, 0, 0, 0, 0 },
          { AOM_CDF3(31616, 32219), 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF4(25856, 28259, 30584), 0, 0, 0, 0 },
          { AOM_CDF4(11520, 22476, 27944), 0, 0, 0, 0 },
          { AOM_CDF4(8064, 26882, 30308), 0, 0, 0, 0 },
          { AOM_CDF4(19455, 23823, 29134), 0, 0, 0, 0 },
          { AOM_CDF4(30848, 31501, 32174), 0, 0, 0, 0 },
      },
      {
          { AOM_CDF5(26751, 28020, 29541, 31230), 0, 0, 0 },
          { AOM_CDF5(12032, 26045, 30772, 31497), 0, 0, 0 },
          { AOM_CDF5(1280, 32153, 32458, 32560), 0, 0, 0 },
          { AOM_CDF5(23424, 24154, 29201, 29856), 0, 0, 0 },
          { AOM_CDF5(32256, 32402, 32561, 32682), 0, 0, 0 },
      },
      {
          { AOM_CDF6(24576, 26720, 28114, 28950, 31694), 0, 0 },
          { AOM_CDF6(7551, 16613, 20462, 25269, 29077), 0, 0 },
          { AOM_CDF6(6272, 23039, 25623, 28163, 30861), 0, 0 },
          { AOM_CDF6(17024, 18808, 20771, 27941, 29845), 0, 0 },
          { AOM_CDF6(31616, 31936, 32079, 32321, 32546), 0, 0 },
      },
      {
          { AOM_CDF7(23296, 25590, 27833, 29337, 29954, 31229), 0 },
          { AOM_CDF7(7552, 13659, 16570, 21695, 24506, 27701), 0 },
          { AOM_CDF7(6911, 24788, 26284, 27753, 29575, 30872), 0 },
          { AOM_CDF7(17535, 22236, 24457, 26242, 27363, 30191), 0 },
          { AOM_CDF7(30592, 31289, 31745, 31921, 32149, 32321), 0 },
      },
      {
          { AOM_CDF8(22016, 24242, 25141, 27137, 27797, 29331, 30848) },
          { AOM_CDF8(8063, 13564, 16940, 21948, 24568, 25689, 26989) },
          { AOM_CDF8(6528, 27028, 27835, 28741, 30031, 31795, 32285) },
          { AOM_CDF8(18047, 23797, 25444, 26274, 27111, 27929, 30367) },
          { AOM_CDF8(30208, 30628, 31046, 31658, 31762, 32367, 32469) },
      }
    };
#if CONFIG_MRC_TX
// TODO(sarahparker) Tune these cdfs
const aom_cdf_prob default_mrc_mask_intra_cdf
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
      {
          { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
          { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
          { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
          { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
          { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
          { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
          { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
          { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
          { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
      },
      {
          { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
          { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
          { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
          { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
          { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
      },
      {
          { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
          { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
          { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
          { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
          { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
      },
      {
          { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
          { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
          { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
          { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
          { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
      },
      {
          { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
          { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
          { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
          { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
          { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
      },
    };

const aom_cdf_prob default_mrc_mask_inter_cdf
    [PALETTE_SIZES][PALETTE_COLOR_INDEX_CONTEXTS][CDF_SIZE(PALETTE_COLORS)] = {
      {
          { AOM_CDF2(29568), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(16384), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(8832), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(28672), 0, 0, 0, 0, 0, 0 },
          { AOM_CDF2(31872), 0, 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF3(28032, 30326), 0, 0, 0, 0, 0 },
          { AOM_CDF3(11647, 27405), 0, 0, 0, 0, 0 },
          { AOM_CDF3(4352, 30659), 0, 0, 0, 0, 0 },
          { AOM_CDF3(23552, 27800), 0, 0, 0, 0, 0 },
          { AOM_CDF3(32256, 32504), 0, 0, 0, 0, 0 },
      },
      {
          { AOM_CDF4(26112, 28374, 30039), 0, 0, 0, 0 },
          { AOM_CDF4(9472, 22576, 27712), 0, 0, 0, 0 },
          { AOM_CDF4(6656, 26138, 29608), 0, 0, 0, 0 },
          { AOM_CDF4(19328, 23791, 28946), 0, 0, 0, 0 },
          { AOM_CDF4(31744, 31984, 32336), 0, 0, 0, 0 },
      },
      {
          { AOM_CDF5(27904, 29215, 30075, 31190), 0, 0, 0 },
          { AOM_CDF5(9728, 22598, 26134, 29425), 0, 0, 0 },
          { AOM_CDF5(2688, 30066, 31058, 31933), 0, 0, 0 },
          { AOM_CDF5(22015, 25039, 27726, 29932), 0, 0, 0 },
          { AOM_CDF5(32383, 32482, 32554, 32660), 0, 0, 0 },
      },
      {
          { AOM_CDF6(24319, 26299, 27486, 28600, 29804), 0, 0 },
          { AOM_CDF6(7935, 18217, 21116, 25440, 28589), 0, 0 },
          { AOM_CDF6(6656, 25016, 27105, 28698, 30399), 0, 0 },
          { AOM_CDF6(19967, 24117, 26550, 28566, 30224), 0, 0 },
          { AOM_CDF6(31359, 31607, 31775, 31977, 32258), 0, 0 },
      },
      {
          { AOM_CDF7(26368, 27768, 28588, 29274, 29997, 30917), 0 },
          { AOM_CDF7(8960, 18260, 20810, 23986, 26627, 28882), 0 },
          { AOM_CDF7(7295, 24111, 25836, 27515, 29033, 30769), 0 },
          { AOM_CDF7(22016, 25208, 27305, 28159, 29221, 30274), 0 },
          { AOM_CDF7(31744, 31932, 32050, 32199, 32335, 32521), 0 },
      },
      {
          { AOM_CDF8(26624, 27872, 28599, 29153, 29633, 30172, 30841) },
          { AOM_CDF8(6655, 17569, 19587, 23345, 25884, 28088, 29678) },
          { AOM_CDF8(3584, 27296, 28429, 29158, 30032, 30780, 31572) },
          { AOM_CDF8(23551, 25855, 27070, 27893, 28597, 29721, 30970) },
          { AOM_CDF8(32128, 32173, 32245, 32337, 32416, 32500, 32609) },
      },
    };
#endif  // CONFIG_MRC_TX

#if CONFIG_INTRABC
static const aom_cdf_prob default_intrabc_cdf[CDF_SIZE(2)] = { AOM_CDF2(192 *
                                                                        128) };
#endif  // CONFIG_INTRABC

#define MAX_COLOR_CONTEXT_HASH 8
// Negative values are invalid
static const int palette_color_index_context_lookup[MAX_COLOR_CONTEXT_HASH +
                                                    1] = { -1, -1, 0, -1, -1,
                                                           4,  3,  2, 1 };

#if CONFIG_RECT_TX_EXT
static const aom_prob default_quarter_tx_size_prob = 192;
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_quarter_tx_size_cdf[CDF_SIZE(2)] = { AOM_CDF2(
    192 * 128) };
#endif
#endif

#if CONFIG_LOOP_RESTORATION
static const aom_cdf_prob default_switchable_restore_cdf[CDF_SIZE(
    RESTORE_SWITCHABLE_TYPES)] = { AOM_CDF3(32 * 128, 144 * 128) };

#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob default_wiener_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
    64 * 128) };

static const aom_cdf_prob default_sgrproj_restore_cdf[CDF_SIZE(2)] = { AOM_CDF2(
    64 * 128) };
#endif  // CONFIG_NEW_MULTISYMBOL
#endif  // CONFIG_LOOP_RESTORATION

#define NUM_PALETTE_NEIGHBORS 3  // left, top-left and top.
int av1_get_palette_color_index_context(const uint8_t *color_map, int stride,
                                        int r, int c, int palette_size,
                                        uint8_t *color_order, int *color_idx) {
  int i;
  // The +10 below should not be needed. But we get a warning "array subscript
  // is above array bounds [-Werror=array-bounds]" without it, possibly due to
  // this (or similar) bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59124
  int scores[PALETTE_MAX_SIZE + 10];
  const int weights[NUM_PALETTE_NEIGHBORS] = { 2, 1, 2 };
  const int hash_multipliers[NUM_PALETTE_NEIGHBORS] = { 1, 2, 2 };
  int color_index_ctx_hash;
  int color_index_ctx;
  int color_neighbors[NUM_PALETTE_NEIGHBORS];
  int inverse_color_order[PALETTE_MAX_SIZE];
  assert(palette_size <= PALETTE_MAX_SIZE);
  assert(r > 0 || c > 0);

  // Get color indices of neighbors.
  color_neighbors[0] = (c - 1 >= 0) ? color_map[r * stride + c - 1] : -1;
  color_neighbors[1] =
      (c - 1 >= 0 && r - 1 >= 0) ? color_map[(r - 1) * stride + c - 1] : -1;
  color_neighbors[2] = (r - 1 >= 0) ? color_map[(r - 1) * stride + c] : -1;

  for (i = 0; i < PALETTE_MAX_SIZE; ++i) {
    color_order[i] = i;
    inverse_color_order[i] = i;
  }
  memset(scores, 0, PALETTE_MAX_SIZE * sizeof(scores[0]));
  for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
    if (color_neighbors[i] >= 0) {
      scores[color_neighbors[i]] += weights[i];
    }
  }

  // Get the top NUM_PALETTE_NEIGHBORS scores (sorted from large to small).
  for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
    int max = scores[i];
    int max_idx = i;
    int j;
    for (j = i + 1; j < palette_size; ++j) {
      if (scores[j] > max) {
        max = scores[j];
        max_idx = j;
      }
    }
    if (max_idx != i) {
      // Move the score at index 'max_idx' to index 'i', and shift the scores
      // from 'i' to 'max_idx - 1' by 1.
      const int max_score = scores[max_idx];
      const uint8_t max_color_order = color_order[max_idx];
      int k;
      for (k = max_idx; k > i; --k) {
        scores[k] = scores[k - 1];
        color_order[k] = color_order[k - 1];
        inverse_color_order[color_order[k]] = k;
      }
      scores[i] = max_score;
      color_order[i] = max_color_order;
      inverse_color_order[color_order[i]] = i;
    }
  }

  // Get hash value of context.
  color_index_ctx_hash = 0;
  for (i = 0; i < NUM_PALETTE_NEIGHBORS; ++i) {
    color_index_ctx_hash += scores[i] * hash_multipliers[i];
  }
  assert(color_index_ctx_hash > 0);
  assert(color_index_ctx_hash <= MAX_COLOR_CONTEXT_HASH);

  // Lookup context from hash.
  color_index_ctx = palette_color_index_context_lookup[color_index_ctx_hash];
  assert(color_index_ctx >= 0);
  assert(color_index_ctx < PALETTE_COLOR_INDEX_CONTEXTS);

  if (color_idx != NULL) {
    *color_idx = inverse_color_order[color_map[r * stride + c]];
  }
  return color_index_ctx;
}
#undef NUM_PALETTE_NEIGHBORS
#undef MAX_COLOR_CONTEXT_HASH

static const aom_prob default_txfm_partition_probs[TXFM_PARTITION_CONTEXTS] = {
#if CONFIG_TX64X64
  249, 240, 223, 249, 229, 177, 250, 243, 208, 226, 187,
  145, 236, 204, 150, 183, 149, 125, 181, 146, 113, 128
#else
  250, 231, 212, 241, 166, 66, 241, 230, 135, 243, 154, 64, 248, 161, 63, 128
#endif  // CONFIG_TX64X64
};
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob
    default_txfm_partition_cdf[TXFM_PARTITION_CONTEXTS][CDF_SIZE(2)] = {
#if CONFIG_TX64X64
      { AOM_CDF2(249 * 128) }, { AOM_CDF2(240 * 128) }, { AOM_CDF2(223 * 128) },
      { AOM_CDF2(249 * 128) }, { AOM_CDF2(229 * 128) }, { AOM_CDF2(177 * 128) },
      { AOM_CDF2(250 * 128) }, { AOM_CDF2(243 * 128) }, { AOM_CDF2(208 * 128) },
      { AOM_CDF2(226 * 128) }, { AOM_CDF2(187 * 128) }, { AOM_CDF2(145 * 128) },
      { AOM_CDF2(236 * 128) }, { AOM_CDF2(204 * 128) }, { AOM_CDF2(150 * 128) },
      { AOM_CDF2(183 * 128) }, { AOM_CDF2(149 * 128) }, { AOM_CDF2(125 * 128) },
      { AOM_CDF2(181 * 128) }, { AOM_CDF2(146 * 128) }, { AOM_CDF2(113 * 128) },
      { AOM_CDF2(128 * 128) }
#else
      { AOM_CDF2(250 * 128) }, { AOM_CDF2(231 * 128) }, { AOM_CDF2(212 * 128) },
      { AOM_CDF2(241 * 128) }, { AOM_CDF2(166 * 128) }, { AOM_CDF2(66 * 128) },
      { AOM_CDF2(241 * 128) }, { AOM_CDF2(230 * 128) }, { AOM_CDF2(135 * 128) },
      { AOM_CDF2(243 * 128) }, { AOM_CDF2(154 * 128) }, { AOM_CDF2(64 * 128) },
      { AOM_CDF2(248 * 128) }, { AOM_CDF2(161 * 128) }, { AOM_CDF2(63 * 128) },
      { AOM_CDF2(128 * 128) },
#endif  // CONFIG_TX64X64
    };
#endif  // CONFIG_NEW_MULTISYMBOL

#if CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_SKIP
static const aom_cdf_prob default_skip_mode_cdfs[SKIP_MODE_CONTEXTS][CDF_SIZE(
    2)] = { { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) } };
#endif  // CONFIG_EXT_SKIP
static const aom_cdf_prob default_skip_cdfs[SKIP_CONTEXTS][CDF_SIZE(2)] = {
  { AOM_CDF2(24576) }, { AOM_CDF2(16384) }, { AOM_CDF2(8192) }
};
#else  // !CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_SKIP
static const aom_prob default_skip_mode_probs[SKIP_MODE_CONTEXTS] = { 192, 128,
                                                                      64 };
#endif  // CONFIG_EXT_SKIP
static const aom_prob default_skip_probs[SKIP_CONTEXTS] = { 192, 128, 64 };
#endif  // CONFIG_NEW_MULTISYMBOL

#if CONFIG_JNT_COMP
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob
    default_compound_idx_cdfs[COMP_INDEX_CONTEXTS][CDF_SIZE(2)] = {
      { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
      { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
      { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
      { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
      { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
      { AOM_ICDF(8192), AOM_ICDF(32768), 0 },
      { AOM_ICDF(24576), AOM_ICDF(32768), 0 },
      { AOM_ICDF(16384), AOM_ICDF(32768), 0 },
      { AOM_ICDF(8192), AOM_ICDF(32768), 0 }
    };
#endif  // CONFIG_NEW_MULTISYMBOL
static const aom_prob default_compound_idx_probs[COMP_INDEX_CONTEXTS] = {
  192, 128, 64, 192, 128, 64, 192, 128, 64,
};
#endif  // CONFIG_JNT_COMP

#if CONFIG_FILTER_INTRA
static const aom_prob default_filter_intra_probs[2] = { 103, 231 };

static const aom_cdf_prob default_filter_intra_mode_cdf[2][CDF_SIZE(
    FILTER_INTRA_MODES)] = { { AOM_CDF6(24348, 27690, 30315, 30864, 31701) },
                             { AOM_CDF6(31977, 32117, 32300, 32484, 32719) } };
#endif  // CONFIG_FILTER_INTRA

// FIXME(someone) need real defaults here
static const aom_prob default_segment_tree_probs[SEG_TREE_PROBS] = {
  128, 128, 128, 128, 128, 128, 128
};
// clang-format off
static const aom_prob default_segment_pred_probs[PREDICTION_PROBS] = {
  128, 128, 128
};
#if CONFIG_NEW_MULTISYMBOL
static const aom_cdf_prob
    default_segment_pred_cdf[PREDICTION_PROBS][CDF_SIZE(2)] = {
  { AOM_CDF2(128 * 128) },
  { AOM_CDF2(128 * 128) },
  { AOM_CDF2(128 * 128) }
};
#endif
// clang-format on
#if CONFIG_DUAL_FILTER
#if USE_EXTRA_FILTER
static const aom_cdf_prob
    default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
        SWITCHABLE_FILTERS)] = {
      { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
      { AOM_CDF4(4352, 5240, 31880) },   { AOM_CDF4(4352, 5240, 31880) },
      { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
      { AOM_CDF4(4608, 9620, 11050) },   { AOM_CDF4(4352, 5240, 31880) },
      { AOM_CDF4(4352, 5240, 31880) },   { AOM_CDF4(19072, 23352, 28488) },
      { AOM_CDF4(30080, 31088, 31760) }, { AOM_CDF4(4608, 9620, 11050) },
      { AOM_CDF4(4352, 5240, 31880) },   { AOM_CDF4(4352, 5240, 31880) },
      { AOM_CDF4(19072, 23352, 28488) }, { AOM_CDF4(30080, 31088, 31760) },
      { AOM_CDF4(4608, 9620, 11050) },   { AOM_CDF4(4352, 5240, 31880) },
      { AOM_CDF4(4352, 5240, 31880) },   { AOM_CDF4(19072, 23352, 28488) },
    };
#else   // USE_EXTRA_FILTER
static const aom_cdf_prob
    default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS][CDF_SIZE(
        SWITCHABLE_FILTERS)] = {
      { AOM_CDF3(32256, 32654) }, { AOM_CDF3(2816, 32651) },
      { AOM_CDF3(512, 764) },     { AOM_CDF3(30464, 31778) },
      { AOM_CDF3(32384, 32483) }, { AOM_CDF3(3072, 32652) },
      { AOM_CDF3(256, 383) },     { AOM_CDF3(25344, 26533) },
      { AOM_CDF3(32000, 32531) }, { AOM_CDF3(2048, 32648) },
      { AOM_CDF3(384, 890) },     { AOM_CDF3(28928, 31358) },
      { AOM_CDF3(31616, 31787) }, { AOM_CDF3(4224, 32433) },
      { AOM_CDF3(128, 256) },     { AOM_CDF3(17408, 18248) }
    };
#endif  // USE_EXTRA_FILTER
#else   // CONFIG_DUAL_FILTER
static const aom_cdf_prob
    default_switchable_interp_cdf[SWITCHABLE_FILTER_CONTEXTS]
                                 [CDF_SIZE(SWITCHABLE_FILTERS)] = {
                                   { AOM_CDF3(30080, 31781) },
                                   { AOM_CDF3(4608, 32658) },
                                   { AOM_CDF3(4352, 4685) },
                                   { AOM_CDF3(19072, 26776) },
                                 };
#endif  // CONFIG_DUAL_FILTER

static const aom_cdf_prob default_seg_tree_cdf[CDF_SIZE(MAX_SEGMENTS)] = {
  AOM_CDF8(4096, 8192, 12288, 16384, 20480, 24576, 28672)
};

#if CONFIG_Q_SEGMENTATION
static const aom_cdf_prob
    default_q_seg_tree_cdf[Q_SEGMENT_CDF_COUNT][CDF_SIZE(MAX_SEGMENTS)] = {
      {
          AOM_CDF8(5622, 7893, 16093, 18233, 27809, 28373, 32533),
      },
      {
          AOM_CDF8(14274, 18230, 22557, 24935, 29980, 30851, 32344),
      },
      {
          AOM_CDF8(27527, 28487, 28723, 28890, 32397, 32647, 32679),
      },
    };
#endif

static const aom_cdf_prob
    default_tx_size_cdf[MAX_TX_DEPTH][TX_SIZE_CONTEXTS][CDF_SIZE(MAX_TX_DEPTH +
                                                                 1)] = {
      { { AOM_CDF2(12800) }, { AOM_CDF2(8448) } },
      { { AOM_CDF3(2560, 20496) }, { AOM_CDF3(1920, 14091) } },
      { { AOM_CDF4(384, 17588, 19782) }, { AOM_CDF4(640, 7166, 8466) } },
#if CONFIG_TX64X64
      { { AOM_CDF5(128, 8288, 21293, 26986) },
        { AOM_CDF5(128, 4208, 10009, 15965) } },
#endif
    };

#if CONFIG_SMOOTH_HV
static const aom_cdf_prob
    default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
      { AOM_CDF13(7168, 10680, 13913, 16928, 20294, 22790, 24706, 26275, 28139,
                  29751, 30563, 31468) },
      { AOM_CDF13(11776, 13823, 15307, 15725, 16638, 17406, 17994, 18814, 19634,
                  21513, 22198, 22928) },
      { AOM_CDF13(14720, 16459, 18091, 18299, 18757, 19125, 19423, 19924, 20504,
                  22922, 24063, 25577) },
      { AOM_CDF13(18944, 19925, 20908, 20998, 21017, 21072, 21084, 21121, 21159,
                  22064, 22820, 24290) },
    };

#if CONFIG_CFL
static const aom_cdf_prob
    default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
      { AOM_CDF14(18377, 18815, 19743, 20178, 20560, 20889, 21359, 22098, 22481,
                  24563, 25781, 26662, 28396) },
      { AOM_CDF14(5350, 16837, 17066, 17360, 17692, 18778, 18969, 19206, 20291,
                  22367, 23212, 24670, 27912) },
      { AOM_CDF14(6671, 6759, 17812, 17998, 18260, 18384, 19408, 20667, 20806,
                  22760, 24142, 24875, 28072) },
      { AOM_CDF14(7461, 8082, 8515, 15013, 15583, 16098, 16522, 18519, 20348,
                  22954, 24130, 25342, 26548) },
      { AOM_CDF14(3694, 4403, 5370, 5854, 17841, 19639, 21625, 22224, 22651,
                  24613, 25399, 26143, 26599) },
      { AOM_CDF14(3700, 5651, 6112, 6541, 8929, 20623, 21213, 21640, 22214,
                  24306, 25412, 26406, 27249) },
      { AOM_CDF14(4649, 4947, 7128, 7432, 9439, 9903, 21163, 21774, 22056,
                  24426, 25403, 26324, 27128) },
      { AOM_CDF14(7208, 7375, 8779, 9683, 10072, 10284, 10796, 19786, 20152,
                  22955, 24246, 25165, 26589) },
      { AOM_CDF14(5897, 7283, 7555, 8910, 9391, 9937, 10276, 11044, 19841,
                  22620, 23784, 25060, 26418) },
      { AOM_CDF14(12171, 12718, 13885, 14348, 14925, 15394, 16108, 17075, 17583,
                  21996, 23614, 25048, 27011) },
      { AOM_CDF14(10192, 11222, 12318, 12877, 13533, 14184, 14866, 15879, 16650,
                  20419, 23265, 24295, 26596) },
      { AOM_CDF14(10776, 11387, 12899, 13471, 14088, 14575, 15366, 16456, 17040,
                  20815, 22009, 24448, 26492) },
      { AOM_CDF14(4015, 6473, 9853, 10285, 10655, 11032, 11431, 12199, 12738,
                  14760, 16121, 17263, 28612) },
    };
#else
#if CONFIG_FILTER_INTRA
static const aom_cdf_prob
    default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
      { AOM_CDF13(17902, 18828, 21117, 21487, 21924, 22484, 23588, 24669, 25177,
                  28731, 29903, 31509) },
      { AOM_CDF13(9654, 23559, 23873, 24050, 24203, 24929, 25057, 25286, 26027,
                  28172, 28716, 30913) },
      { AOM_CDF13(10012, 10124, 25394, 25540, 25665, 25752, 26567, 27761, 27876,
                  29497, 30581, 31179) },
      { AOM_CDF13(15143, 15859, 16581, 21567, 21968, 22430, 22867, 24953, 26969,
                  30310, 31125, 32329) },
      { AOM_CDF13(14063, 14416, 14921, 15022, 25164, 26720, 28661, 29083, 29277,
                  31337, 31882, 32565) },
      { AOM_CDF13(12942, 14713, 15178, 15325, 16964, 27421, 27834, 28306, 28645,
                  30804, 31322, 32387) },
      { AOM_CDF13(13687, 13993, 16776, 16912, 18338, 18648, 27557, 28140, 28359,
                  30820, 31669, 32443) },
      { AOM_CDF13(14180, 14439, 16582, 17373, 17675, 17931, 18453, 26308, 26761,
                  30058, 31293, 32156) },
      { AOM_CDF13(12480, 14300, 14838, 16085, 16434, 17023, 17426, 18313, 26041,
                  29653, 30347, 32067) },
      { AOM_CDF13(17202, 18093, 19414, 19910, 20311, 20837, 21554, 22830, 23572,
                  28770, 30259, 32145) },
      { AOM_CDF13(16336, 18149, 19485, 19927, 20365, 20924, 21524, 22561, 23421,
                  28141, 30701, 32020) },
      { AOM_CDF13(16485, 17366, 19874, 20364, 20713, 21057, 21773, 23100, 23685,
                  28079, 29091, 32028) },
      { AOM_CDF13(13638, 16789, 19763, 19903, 19995, 20201, 20405, 20861, 21174,
                  22802, 23566, 24754) }
    };
#else
static const aom_cdf_prob
    default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
      { AOM_CDF13(23552, 25936, 28623, 29033, 29395, 29892, 30252, 30905, 31370,
                  31980, 32293, 32660) },
      { AOM_CDF13(2944, 26431, 27553, 27746, 28022, 29080, 29204, 29377, 30264,
                  31206, 31613, 32418) },
      { AOM_CDF13(4352, 5120, 27952, 28117, 28473, 28759, 29563, 30864, 31051,
                  31694, 32073, 32435) },
      { AOM_CDF13(17664, 20288, 21839, 26072, 26420, 26972, 27240, 28565, 30914,
                  31694, 32083, 32591) },
      { AOM_CDF13(16640, 18390, 20233, 20557, 25162, 27789, 29397, 29895, 30369,
                  31497, 32025, 32642) },
      { AOM_CDF13(13952, 17947, 18918, 19206, 21131, 30668, 31061, 31317, 31838,
                  32137, 32342, 32547) },
      { AOM_CDF13(15872, 16990, 21479, 21732, 24134, 24854, 30296, 30887, 31163,
                  31902, 32218, 32702) },
      { AOM_CDF13(16256, 17280, 23081, 24039, 24457, 24838, 25346, 30329, 30908,
                  31746, 32206, 32639) },
      { AOM_CDF13(14720, 19249, 20501, 22079, 22439, 23218, 23463, 24107, 30308,
                  31379, 31866, 32556) },
      { AOM_CDF13(16768, 19967, 22374, 22976, 23836, 24050, 24642, 25760, 26653,
                  29585, 30937, 32518) },
      { AOM_CDF13(16768, 20751, 23026, 23591, 24299, 24516, 24981, 25876, 26806,
                  29520, 31286, 32455) },
      { AOM_CDF13(17536, 20055, 22965, 23507, 24210, 24398, 25098, 26366, 27033,
                  29674, 30689, 32530) },
      { AOM_CDF13(17536, 22753, 27126, 27353, 27571, 28139, 28505, 29198, 29886,
                  30801, 31335, 32054) },
    };
#endif
#endif  // CONFIG_CFL
#else   // !CONFIG_SMOOTH_HV
static const aom_cdf_prob
    default_if_y_mode_cdf[BLOCK_SIZE_GROUPS][CDF_SIZE(INTRA_MODES)] = {
      { AOM_CDF11(11264, 14965, 19742, 21904, 24115, 25678, 27210, 28705, 29782,
                  31424) },
      { AOM_CDF11(9600, 13747, 18569, 20091, 21925, 23082, 24404, 26285, 27574,
                  30415) },
      { AOM_CDF11(9344, 14319, 19567, 20476, 21791, 22529, 23393, 24881, 26012,
                  30572) },
      { AOM_CDF11(12288, 15866, 21186, 21722, 22209, 22564, 22966, 24025, 24716,
                  30608) },
    };

static const aom_cdf_prob
    default_uv_mode_cdf[INTRA_MODES][CDF_SIZE(UV_INTRA_MODES)] = {
      { AOM_CDF11(25472, 27697, 30693, 30916, 31125, 31406, 31679, 32085, 32334,
                  32682) },
      { AOM_CDF11(2176, 28142, 29335, 29504, 29762, 30642, 30741, 30902, 31683,
                  32529) },
      { AOM_CDF11(3328, 3901, 30984, 31068, 31241, 31389, 31697, 32379, 32483,
                  32653) },
      { AOM_CDF11(23424, 25805, 27721, 29432, 29659, 30032, 30282, 31192, 32259,
                  32658) },
      { AOM_CDF11(22784, 24177, 26209, 26476, 28679, 29698, 30786, 31257, 31596,
                  32690) },
      { AOM_CDF11(19712, 22988, 24275, 24520, 25823, 31469, 31880, 32189, 32614,
                  32615) },
      { AOM_CDF11(21376, 22085, 27643, 27799, 28596, 28890, 31767, 32255, 32405,
                  32723) },
      { AOM_CDF11(19712, 20623, 28408, 28766, 29070, 29355, 29759, 32034, 32306,
                  32666) },
      { AOM_CDF11(19584, 23437, 25295, 26200, 26612, 27372, 27704, 28319, 31664,
                  32562) },
      { AOM_CDF11(20864, 23989, 26168, 26591, 27345, 27348, 27809, 28575, 29132,
                  32628) },
      { AOM_CDF11(23680, 27582, 30197, 30312, 30464, 30995, 31208, 31574, 31985,
                  32519) },
    };
#endif  // CONFIG_SMOOTH_HV

#if CONFIG_EXT_PARTITION_TYPES
static const aom_cdf_prob default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(
    EXT_PARTITION_TYPES)] = {
  // 8x8 -> 4x4 only supports the four legacy partition types
  { AOM_CDF4(25472, 28949, 31052), 0, 0, 0, 0, 0, 0 },
  { AOM_CDF4(18816, 22250, 28783), 0, 0, 0, 0, 0, 0 },
  { AOM_CDF4(18944, 26126, 29188), 0, 0, 0, 0, 0, 0 },
  { AOM_CDF4(15488, 22508, 27077), 0, 0, 0, 0, 0, 0 },
  // 16x16 -> 8x8
  { AOM_CDF10(22272, 23768, 25043, 29996, 30495, 30994, 31419, 31844, 32343) },
  { AOM_CDF10(11776, 13457, 16315, 28229, 28789, 29349, 30302, 31255, 31816) },
  { AOM_CDF10(10496, 14802, 16136, 27127, 28563, 29999, 30444, 30889, 32324) },
  { AOM_CDF10(6784, 8763, 10440, 29110, 29770, 30430, 30989, 31548, 32208) },
  // 32x32 -> 16x16
  { AOM_CDF10(22656, 23801, 24702, 30721, 31103, 31485, 31785, 32085, 32467) },
  { AOM_CDF10(8704, 9926, 12586, 28885, 29292, 29699, 30586, 31473, 31881) },
  { AOM_CDF10(6656, 10685, 11566, 27857, 29200, 30543, 30837, 31131, 32474) },
  { AOM_CDF10(2176, 3012, 3690, 31253, 31532, 31811, 32037, 32263, 32542) },
  // 64x64 -> 32x32
  { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
  { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
  { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
  { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
#if CONFIG_EXT_PARTITION
  // 128x128 -> 64x64
  { AOM_CDF10(28416, 28705, 28926, 32258, 32354, 32450, 32523, 32596, 32693) },
  { AOM_CDF10(9216, 9952, 11849, 30134, 30379, 30624, 31256, 31888, 32134) },
  { AOM_CDF10(7424, 9008, 9528, 30664, 31192, 31720, 31893, 32066, 32594) },
  { AOM_CDF10(1280, 1710, 2069, 31978, 32121, 32264, 32383, 32502, 32647) },
#endif
};
#else
static const aom_cdf_prob
    default_partition_cdf[PARTITION_CONTEXTS][CDF_SIZE(PARTITION_TYPES)] = {
      { AOM_CDF4(25472, 28949, 31052) }, { AOM_CDF4(18816, 22250, 28783) },
      { AOM_CDF4(18944, 26126, 29188) }, { AOM_CDF4(15488, 22508, 27077) },
      { AOM_CDF4(22272, 25265, 27815) }, { AOM_CDF4(11776, 15138, 20854) },
      { AOM_CDF4(10496, 19109, 21777) }, { AOM_CDF4(6784, 10743, 14098) },
      { AOM_CDF4(22656, 24947, 26749) }, { AOM_CDF4(8704, 11148, 16469) },
      { AOM_CDF4(6656, 14714, 16477) },  { AOM_CDF4(2176, 3849, 5205) },
      { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
      { AOM_CDF4(7424, 10592, 11632) },  { AOM_CDF4(1280, 2141, 2859) },
#if CONFIG_EXT_PARTITION
      { AOM_CDF4(28416, 28994, 29436) }, { AOM_CDF4(9216, 10688, 14483) },
      { AOM_CDF4(7424, 10592, 11632) },  { AOM_CDF4(1280, 2141, 2859) },
#endif
    };
#endif

static const aom_cdf_prob default_intra_ext_tx_cdf
    [EXT_TX_SETS_INTRA][EXT_TX_SIZES][INTRA_MODES][CDF_SIZE(TX_TYPES)] = {
      {
          // FIXME: unused zero positions, from uncoded trivial transform set
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
#if CONFIG_SMOOTH_HV
              { 0 },
              { 0 },
#endif  // CONFIG_SMOOTH_HV
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
#if CONFIG_SMOOTH_HV
              { 0 },
              { 0 },
#endif  // CONFIG_SMOOTH_HV
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
#if CONFIG_SMOOTH_HV
              { 0 },
              { 0 },
#endif  // CONFIG_SMOOTH_HV
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
#if CONFIG_SMOOTH_HV
              { 0 },
              { 0 },
#endif  // CONFIG_SMOOTH_HV
              { 0 },
          },
      },
      {
          {
              { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
              { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
          },
          {
              { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
              { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
          },
          {
              { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
              { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
          },
          {
              { AOM_CDF7(1024, 28800, 29048, 29296, 30164, 31466) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1152, 25852, 26284, 26717, 28230, 30499) },
              { AOM_CDF7(1024, 2016, 3938, 5860, 29404, 31086) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 27118) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 4109, 5900, 7691, 15528, 27380) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
          },
      },
      {
          {
              { AOM_CDF5(1024, 28800, 29792, 31280) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1152, 25852, 27581, 30174) },
              { AOM_CDF5(1024, 2016, 28924, 30846) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
          },
          {
              { AOM_CDF5(1024, 28800, 29792, 31280) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1152, 25852, 27581, 30174) },
              { AOM_CDF5(1024, 2016, 28924, 30846) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
          },
          {
              { AOM_CDF5(1024, 28800, 29792, 31280) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1152, 25852, 27581, 30174) },
              { AOM_CDF5(1024, 2016, 28924, 30846) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
          },
          {
              { AOM_CDF5(1024, 28800, 29792, 31280) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1152, 25852, 27581, 30174) },
              { AOM_CDF5(1024, 2016, 28924, 30846) },
              { AOM_CDF5(1280, 5216, 6938, 26310) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 4109, 13065, 26611) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF5(1280, 5216, 6938, 13396) },
          },
      },
#if CONFIG_MRC_TX
      {
          {
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1152) },
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
          },
          {
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1152) },
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
          },
          {
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1152) },
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
          },
          {
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1152) },
              { AOM_CDF2(1024) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#if CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
#endif  // CONFIG_SMOOTH_HV
              { AOM_CDF2(1280) },
          },
      }
#endif  // CONFIG_MRC_TX
    };
static const aom_cdf_prob
    default_inter_ext_tx_cdf[EXT_TX_SETS_INTER][EXT_TX_SIZES][CDF_SIZE(
        TX_TYPES)] = {
      { { 0 }, { 0 }, { 0 }, { 0 } },
      { { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
                    21733, 24241, 26749, 28253, 29758, 31263) },
        { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
                    21733, 24241, 26749, 28253, 29758, 31263) },
        { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
                    21733, 24241, 26749, 28253, 29758, 31263) },
        { AOM_CDF16(1280, 1453, 1626, 2277, 2929, 3580, 4232, 16717, 19225,
                    21733, 24241, 26749, 28253, 29758, 31263) } },
      { { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
                    29836, 31302) },
        { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
                    29836, 31302) },
        { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
                    29836, 31302) },
        { AOM_CDF12(1280, 3125, 4970, 17132, 19575, 22018, 24461, 26904, 28370,
                    29836, 31302) } },
      { { AOM_CDF2(1536) },
        { AOM_CDF2(1536) },
        { AOM_CDF2(1536) },
        { AOM_CDF2(1536) } },
#if CONFIG_MRC_TX
      { { AOM_CDF3(30080, 31781) },
        { AOM_CDF3(4608, 32658) },
        { AOM_CDF3(4352, 4685) },
        { AOM_CDF3(19072, 26776) } },
#endif  // CONFIG_MRC_TX
    };

#if CONFIG_CFL
static const aom_cdf_prob default_cfl_sign_cdf[CDF_SIZE(CFL_JOINT_SIGNS)] = {
  AOM_CDF8(1892, 2229, 11464, 14116, 25661, 26409, 32508)
};

static const aom_cdf_prob
    default_cfl_alpha_cdf[CFL_ALPHA_CONTEXTS][CDF_SIZE(CFL_ALPHABET_SIZE)] = {
      { AOM_CDF16(16215, 27740, 31726, 32606, 32736, 32751, 32757, 32759, 32761,
                  32762, 32763, 32764, 32765, 32766, 32767) },
      { AOM_CDF16(15213, 24615, 29704, 31974, 32545, 32673, 32713, 32746, 32753,
                  32756, 32758, 32761, 32763, 32764, 32766) },
      { AOM_CDF16(13250, 24677, 29113, 31666, 32408, 32578, 32628, 32711, 32730,
                  32738, 32744, 32749, 32752, 32756, 32759) },
      { AOM_CDF16(24593, 30787, 32062, 32495, 32656, 32707, 32735, 32747, 32752,
                  32757, 32760, 32763, 32764, 32765, 32767) },
      { AOM_CDF16(19883, 27419, 30100, 31392, 31896, 32184, 32299, 32511, 32568,
                  32602, 32628, 32664, 32680, 32691, 32708) },
      { AOM_CDF16(15939, 24151, 27754, 29680, 30651, 31267, 31527, 31868, 32001,
                  32090, 32181, 32284, 32314, 32366, 32486) }
    };
#endif

#if CONFIG_KF_CTX
// TODO(jingning): This initial models are copied directly from the entries
// from the original table. The copied indexes are (0, 0), (0, 1), .. (4, 4).
// It is possible to re-train this model and bring back the 0.14% loss in CIF
// set key frame coding. This reduction in context model does not change the
// key frame coding stats for mid and high resolution sets.
const aom_cdf_prob
    default_kf_y_mode_cdf[KF_MODE_CONTEXTS][KF_MODE_CONTEXTS][CDF_SIZE(
        INTRA_MODES)] = {
      {
          { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
                      25828, 28398, 29394, 30738) },
          { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
                      24996, 27652, 29060, 30071) },
          { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
                      24281, 26958, 27680, 29636) },
          { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
                      25779, 28716, 29772, 31267) },
          { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
                      25674, 29031, 30244, 31684) },
      },
      {
          { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
                      23959, 26970, 29013, 29843) },
          { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
                      24770, 27032, 29016, 29636) },
          { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
                      20311, 24863, 26825, 28756) },
          { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
                      23936, 27555, 29704, 30849) },
          { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
                      24137, 27732, 29814, 30904) },
      },
      {
          { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
                      25777, 28256, 29102, 30513) },
          { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
                      23980, 26772, 28070, 29197) },
          { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
                      25728, 27919, 28484, 30215) },
          { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
                      24892, 27709, 28771, 30274) },
          { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
                      25285, 28407, 29431, 30953) },
      },
      {
          { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
                      25448, 28730, 29936, 31536) },
          { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
                      25509, 28683, 30153, 31192) },
          { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
                      23927, 27538, 28397, 30725) },
          { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
                      27347, 29800, 30761, 31833) },
          { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
                      25344, 28797, 30405, 31940) },
      },
      {
          { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
                      25549, 29074, 30392, 31773) },
          { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
                      24633, 28339, 30193, 31268) },
          { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
                      23270, 27280, 28305, 30602) },
          { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
                      24391, 28351, 29843, 31481) },
          { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
                      29653, 30954, 32215) },
      },
    };
#else
const aom_cdf_prob
    default_kf_y_mode_cdf[INTRA_MODES][INTRA_MODES][CDF_SIZE(INTRA_MODES)] = {
#if CONFIG_SMOOTH_HV
#if CONFIG_FILTER_INTRA
      { { AOM_CDF13(14683, 16164, 18655, 19530, 20058, 20712, 21844, 23569,
                    24762, 29323, 30502, 32305) },
        { AOM_CDF13(12656, 20348, 21294, 21804, 22202, 23095, 23587, 24461,
                    25907, 29190, 30652, 31811) },
        { AOM_CDF13(9503, 9951, 23007, 23314, 23541, 23705, 24951, 26524, 26849,
                    29605, 30141, 31999) },
        { AOM_CDF13(13260, 14061, 15139, 17906, 18255, 18765, 19485, 22590,
                    24686, 29535, 30788, 32556) },
        { AOM_CDF13(9636, 10707, 11584, 12180, 19805, 22417, 24821, 25934,
                    26829, 30447, 31325, 32571) },
        { AOM_CDF13(11503, 14182, 15005, 15716, 17312, 22822, 23813, 24939,
                    26485, 30176, 31386, 32491) },
        { AOM_CDF13(10780, 11415, 14363, 14834, 16619, 17205, 23514, 24954,
                    25580, 29808, 30651, 32535) },
        { AOM_CDF13(10987, 11732, 14421, 15496, 15957, 16409, 17580, 23241,
                    24331, 29195, 30353, 32508) },
        { AOM_CDF13(12508, 14242, 15162, 16631, 17071, 17984, 18776, 20784,
                    24151, 29108, 30867, 32444) },
        { AOM_CDF13(12829, 14161, 16064, 16898, 17478, 18230, 19432, 21587,
                    22866, 28544, 30194, 32428) },
        { AOM_CDF13(12573, 14467, 16431, 17241, 17858, 18791, 19760, 21697,
                    22982, 28322, 30394, 32214) },
        { AOM_CDF13(12584, 13813, 16632, 17412, 17891, 18453, 19775, 21906,
                    22973, 28492, 29852, 32414) },
        { AOM_CDF13(10371, 13033, 17420, 17894, 18176, 18567, 19210, 20319,
                    21090, 24048, 25125, 26632) } },
      { { AOM_CDF13(9051, 21642, 22328, 22666, 22990, 24191, 24466, 25094,
                    26458, 29094, 30542, 31304) },
        { AOM_CDF13(5783, 26271, 26458, 26655, 26792, 27507, 27595, 27910,
                    29012, 30270, 31322, 31740) },
        { AOM_CDF13(9084, 14570, 20536, 20922, 21174, 21685, 22190, 23274,
                    24293, 26854, 27998, 29451) },
        { AOM_CDF13(9162, 15547, 16132, 18428, 19036, 19961, 20253, 22111,
                    25468, 28977, 31151, 32108) },
        { AOM_CDF13(6626, 15650, 16281, 16696, 20419, 23826, 24669, 25188,
                    26709, 29561, 31203, 31811) },
        { AOM_CDF13(5946, 17790, 18063, 18339, 19049, 25701, 25942, 26289,
                    28224, 30501, 31732, 32192) },
        { AOM_CDF13(8247, 15710, 16700, 17083, 18600, 19891, 23303, 24149,
                    25418, 28745, 30205, 31229) },
        { AOM_CDF13(7414, 14790, 16103, 17056, 17437, 18332, 18797, 23279,
                    25024, 28630, 30385, 31627) },
        { AOM_CDF13(7886, 17142, 17377, 18228, 18517, 19566, 19789, 20477,
                    26467, 29451, 31424, 32074) },
        { AOM_CDF13(8251, 19430, 19998, 20426, 20782, 22155, 22488, 23281,
                    25037, 28791, 30593, 31614) },
        { AOM_CDF13(8042, 19117, 19777, 20139, 20462, 21878, 22212, 23083,
                    24811, 28090, 30592, 31308) },
        { AOM_CDF13(8268, 19518, 20406, 20756, 21064, 22108, 22552, 23405,
                    25111, 28731, 30343, 31534) },
        { AOM_CDF13(6521, 21472, 22603, 22915, 23041, 23480, 23618, 24110,
                    25099, 26516, 27883, 28449) } },
      { { AOM_CDF13(12527, 13076, 21835, 22214, 22492, 22728, 23978, 25665,
                    26165, 29466, 30247, 32239) },
        { AOM_CDF13(12377, 16820, 21011, 21631, 21960, 22438, 23031, 24350,
                    25400, 28539, 29714, 31154) },
        { AOM_CDF13(6712, 6862, 26853, 26972, 27060, 27103, 27826, 29143, 29267,
                    30799, 31064, 32294) },
        { AOM_CDF13(11320, 11776, 15386, 17447, 17768, 18066, 18973, 23664,
                    25022, 29029, 30158, 32267) },
        { AOM_CDF13(10773, 11905, 15020, 15656, 20247, 21640, 24465, 25777,
                    26419, 29685, 30762, 32481) },
        { AOM_CDF13(12323, 14046, 17449, 18101, 19214, 22210, 23345, 24975,
                    26412, 29729, 30931, 32336) },
        { AOM_CDF13(9944, 10198, 17726, 18052, 18893, 19155, 25498, 26898,
                    27176, 30160, 30652, 32510) },
        { AOM_CDF13(8721, 8970, 16785, 17446, 17649, 17826, 18746, 25927, 26396,
                    29702, 30461, 32528) },
        { AOM_CDF13(11404, 12417, 15834, 17066, 17441, 18014, 18966, 21819,
                    24083, 29077, 30376, 32213) },
        { AOM_CDF13(11450, 11958, 18297, 18820, 19165, 19479, 20809, 23280,
                    23916, 28662, 29933, 32364) },
        { AOM_CDF13(10920, 11607, 17980, 18561, 18921, 19301, 20390, 22706,
                    23413, 28156, 30004, 31872) },
        { AOM_CDF13(11462, 11962, 19642, 20131, 20369, 20530, 21898, 24152,
                    24686, 28899, 29656, 32424) },
        { AOM_CDF13(8171, 9219, 21810, 22146, 22350, 22480, 22930, 24054, 24405,
                    26437, 27109, 28397) } },
      { { AOM_CDF13(12474, 13429, 14740, 17535, 18021, 18752, 19551, 22163,
                    24563, 29410, 30687, 32505) },
        { AOM_CDF13(9862, 15025, 15766, 18942, 19321, 20031, 20492, 21747,
                    25671, 29272, 30926, 32270) },
        { AOM_CDF13(8764, 9426, 17676, 19605, 19945, 20174, 21106, 24312, 25470,
                    29242, 30066, 31831) },
        { AOM_CDF13(8566, 9030, 9692, 18683, 18787, 18968, 19155, 23451, 26278,
                    30299, 31208, 32537) },
        { AOM_CDF13(7535, 8616, 9353, 13056, 18938, 21199, 22627, 23971, 26022,
                    30131, 31243, 32618) },
        { AOM_CDF13(9138, 11001, 11570, 14638, 16000, 20926, 21803, 23237,
                    26287, 30063, 31128, 32599) },
        { AOM_CDF13(9729, 10184, 11919, 13759, 15439, 16099, 20564, 22949,
                    24424, 29313, 30373, 32518) },
        { AOM_CDF13(8615, 9090, 10462, 14832, 15157, 15466, 16143, 22773, 24815,
                    29574, 30593, 32635) },
        { AOM_CDF13(9258, 10308, 10884, 15905, 16092, 16466, 16802, 19277,
                    25235, 29804, 31328, 32508) },
        { AOM_CDF13(10403, 11313, 12386, 15442, 15884, 16549, 17269, 20362,
                    22913, 28783, 30284, 32578) },
        { AOM_CDF13(9620, 10894, 11874, 14923, 15398, 16326, 17076, 20069,
                    23137, 28656, 30608, 32331) },
        { AOM_CDF13(10095, 10981, 12537, 15703, 16165, 16741, 17550, 20754,
                    22975, 29162, 30500, 32582) },
        { AOM_CDF13(8858, 11204, 14847, 18228, 18741, 19060, 19629, 21234,
                    24400, 27622, 29011, 30627) } },
      { { AOM_CDF13(9911, 10689, 11787, 12138, 19892, 22168, 24984, 26365,
                    27052, 30676, 31618, 32577) },
        { AOM_CDF13(10405, 14007, 14667, 15051, 20542, 23567, 25261, 26243,
                    27418, 30244, 31480, 32398) },
        { AOM_CDF13(7972, 8563, 16778, 17053, 20474, 21431, 24348, 26064, 26466,
                    29456, 30241, 31822) },
        { AOM_CDF13(10502, 10858, 11637, 13369, 16831, 18528, 20122, 23814,
                    25350, 29741, 31151, 32539) },
        { AOM_CDF13(4993, 5184, 5393, 5580, 25670, 27769, 29927, 30768, 31020,
                    32139, 32371, 32721) },
        { AOM_CDF13(6994, 8042, 8425, 8775, 18573, 26670, 27998, 29060, 29741,
                    31512, 32140, 32705) },
        { AOM_CDF13(6608, 6893, 7917, 8137, 18180, 19484, 27302, 28268, 28648,
                    31184, 31688, 32604) },
        { AOM_CDF13(7758, 8381, 9673, 10202, 15951, 17361, 19451, 26253, 26891,
                    30394, 31343, 32571) },
        { AOM_CDF13(9961, 11581, 12003, 12812, 17402, 19995, 21609, 23735,
                    25957, 29973, 31339, 32560) },
        { AOM_CDF13(10245, 10965, 11887, 12326, 18409, 20778, 23127, 24779,
                    25560, 30046, 31167, 32588) },
        { AOM_CDF13(9047, 10157, 11136, 11600, 17607, 20541, 22746, 24278,
                    25239, 29844, 31296, 32466) },
        { AOM_CDF13(10318, 11227, 12470, 12792, 17742, 19600, 22120, 24346,
                    25079, 29588, 30917, 32593) },
        { AOM_CDF13(8281, 10602, 15452, 15940, 19120, 20702, 22521, 23526,
                    24236, 27829, 28776, 29973) } },
      { { AOM_CDF13(9850, 12693, 13536, 13937, 16080, 23341, 24177, 25258,
                    26372, 30167, 31506, 32425) },
        { AOM_CDF13(8537, 15828, 16155, 16425, 17738, 25313, 25706, 26423,
                    27642, 30290, 31795, 32372) },
        { AOM_CDF13(8805, 10168, 16679, 17136, 18480, 21724, 22707, 24501,
                    25226, 28734, 29582, 31015) },
        { AOM_CDF13(11887, 13456, 14000, 16402, 17550, 20969, 21942, 24081,
                    26141, 29735, 31365, 32610) },
        { AOM_CDF13(5462, 6783, 7085, 7427, 16960, 26746, 27970, 28609, 29343,
                    31379, 32138, 32593) },
        { AOM_CDF13(4786, 7121, 7242, 7469, 9622, 28427, 28700, 29374, 30121,
                    31764, 32356, 32637) },
        { AOM_CDF13(9172, 10388, 11156, 11527, 15483, 20332, 24727, 25954,
                    26870, 30198, 31246, 32352) },
        { AOM_CDF13(8102, 9847, 11124, 11911, 13567, 18203, 19081, 24364, 25695,
                    29586, 31057, 32380) },
        { AOM_CDF13(10488, 13506, 14020, 14824, 16307, 20899, 21549, 22906,
                    25886, 29488, 31408, 32369) },
        { AOM_CDF13(9407, 11928, 12529, 12941, 14674, 20905, 21782, 23113,
                    24351, 29073, 31009, 32410) },
        { AOM_CDF13(8764, 11728, 12298, 12713, 14609, 21424, 22115, 23419,
                    24779, 29206, 31355, 32390) },
        { AOM_CDF13(9517, 11912, 12950, 13401, 15075, 20426, 21436, 23153,
                    24539, 29531, 31132, 32469) },
        { AOM_CDF13(8253, 12956, 16212, 16664, 17756, 22714, 23216, 24249,
                    25321, 28440, 29620, 30259) } },
      { { AOM_CDF13(11792, 12317, 15563, 16032, 17398, 17977, 23384, 25171,
                    25807, 29850, 30737, 32541) },
        { AOM_CDF13(10922, 14049, 15834, 16386, 17629, 18873, 22496, 24451,
                    25744, 29328, 30878, 32141) },
        { AOM_CDF13(8243, 8431, 19690, 19885, 20402, 20560, 25644, 27470, 27737,
                    30291, 30701, 32380) },
        { AOM_CDF13(11266, 11746, 13215, 15105, 15916, 16497, 19044, 22912,
                    24422, 29451, 30565, 32543) },
        { AOM_CDF13(7970, 8353, 8989, 9324, 18715, 20136, 27478, 28360, 28854,
                    31356, 31910, 32687) },
        { AOM_CDF13(9835, 10905, 11896, 12507, 15383, 20329, 25102, 26520,
                    27487, 30879, 31709, 32540) },
        { AOM_CDF13(6779, 6957, 9270, 9436, 11553, 11824, 27958, 28747, 29030,
                    31268, 31664, 32666) },
        { AOM_CDF13(9125, 9475, 12773, 13383, 14285, 14691, 18620, 24633, 25338,
                    29728, 30582, 32548) },
        { AOM_CDF13(11721, 12709, 14065, 15136, 16224, 17044, 20019, 22634,
                    24974, 29533, 30976, 32540) },
        { AOM_CDF13(11134, 11581, 13908, 14421, 15715, 16407, 20884, 23365,
                    24142, 29151, 30333, 32546) },
        { AOM_CDF13(10621, 11354, 13725, 14331, 15697, 16435, 20811, 23061,
                    23916, 29068, 30630, 32382) },
        { AOM_CDF13(11037, 11497, 14490, 14987, 16009, 16447, 21140, 23683,
                    24312, 28995, 30105, 32639) },
        { AOM_CDF13(9605, 11018, 17444, 17875, 18709, 19288, 22633, 24723,
                    25518, 28726, 29835, 31394) } },
      { { AOM_CDF13(12284, 12942, 15497, 16898, 17400, 17937, 19136, 23012,
                    24306, 29247, 30360, 32526) },
        { AOM_CDF13(11749, 15601, 16892, 18207, 18593, 19416, 20162, 22890,
                    24773, 28978, 30525, 32157) },
        { AOM_CDF13(8357, 8590, 18591, 19354, 19529, 19661, 20764, 25434, 25938,
                    29380, 29919, 32290) },
        { AOM_CDF13(9307, 9623, 10609, 15340, 15587, 15878, 16422, 22905, 25106,
                    29604, 30579, 32561) },
        { AOM_CDF13(9511, 10303, 11146, 12396, 19000, 20742, 22883, 25043,
                    26322, 30216, 31156, 32668) },
        { AOM_CDF13(11525, 12965, 13992, 15314, 16559, 21108, 22323, 24844,
                    26765, 30376, 31351, 32576) },
        { AOM_CDF13(9919, 10382, 13106, 14128, 15212, 15741, 20216, 23213,
                    24169, 29046, 29869, 32570) },
        { AOM_CDF13(8056, 8456, 10218, 11714, 12070, 12383, 12849, 26222, 27079,
                    30222, 30828, 32606) },
        { AOM_CDF13(10700, 11453, 12659, 15291, 15677, 16240, 16902, 20777,
                    24142, 29325, 30729, 32560) },
        { AOM_CDF13(10863, 11450, 13506, 14976, 15428, 15869, 17051, 21294,
                    22705, 28406, 29836, 32553) },
        { AOM_CDF13(10357, 11196, 13312, 14910, 15380, 15977, 16957, 20978,
                    22542, 28263, 30186, 32369) },
        { AOM_CDF13(10325, 10858, 13637, 15045, 15455, 15809, 17144, 21700,
                    22936, 28610, 29747, 32558) },
        { AOM_CDF13(10032, 11356, 16324, 17851, 18191, 18525, 19241, 22933,
                    24078, 27949, 29094, 31080) } },
      { { AOM_CDF13(11187, 13518, 14554, 16266, 16753, 17679, 18282, 19923,
                    24195, 29274, 30823, 32442) },
        { AOM_CDF13(7948, 15152, 15579, 16934, 17200, 18121, 18405, 19130,
                    26141, 29589, 31275, 32270) },
        { AOM_CDF13(8418, 9721, 16634, 18137, 18405, 18791, 19607, 22197, 24804,
                    28838, 29667, 31725) },
        { AOM_CDF13(9661, 10767, 11231, 16796, 16918, 17285, 17685, 20433,
                    25515, 29910, 31128, 32611) },
        { AOM_CDF13(7447, 9631, 10071, 11463, 16405, 18681, 19977, 21135, 25724,
                    30089, 31371, 32429) },
        { AOM_CDF13(7732, 11142, 11643, 13157, 14285, 19050, 19568, 20445,
                    26278, 30197, 31552, 32543) },
        { AOM_CDF13(8655, 9972, 11341, 12647, 14152, 15009, 18424, 20317, 23903,
                    29129, 30367, 32348) },
        { AOM_CDF13(8905, 10161, 11295, 14376, 14751, 15334, 15861, 20676,
                    24144, 29140, 30559, 32518) },
        { AOM_CDF13(7230, 9455, 9769, 12237, 12385, 12718, 12941, 14070, 26774,
                    30020, 31689, 32544) },
        { AOM_CDF13(9676, 11840, 12666, 14444, 14854, 15790, 16395, 18289,
                    23074, 28546, 30570, 32500) },
        { AOM_CDF13(8954, 11507, 12411, 14262, 14736, 15800, 16324, 17931,
                    23370, 28692, 30899, 32304) },
        { AOM_CDF13(9604, 11709, 12728, 14391, 14817, 15784, 16426, 18627,
                    22984, 28781, 30290, 32507) },
        { AOM_CDF13(8037, 12362, 14711, 16445, 16662, 17238, 17667, 18883,
                    24405, 27873, 29300, 30676) } },
      { { AOM_CDF13(12742, 13944, 16005, 16901, 17483, 18249, 19462, 21457,
                    22908, 28575, 30017, 32411) },
        { AOM_CDF13(11299, 16882, 17822, 18576, 19025, 20145, 20676, 21738,
                    23779, 28608, 30479, 32163) },
        { AOM_CDF13(9373, 9807, 20454, 20912, 21134, 21315, 22536, 24523, 25027,
                    28824, 29546, 31958) },
        { AOM_CDF13(10839, 11634, 12609, 15747, 16076, 16521, 17368, 20813,
                    23179, 28736, 30250, 32547) },
        { AOM_CDF13(10018, 11043, 11846, 12631, 18703, 21106, 23223, 24327,
                    25655, 29908, 31108, 32633) },
        { AOM_CDF13(10447, 12670, 13370, 14274, 15751, 20138, 21082, 22289,
                    24356, 29308, 30721, 32473) },
        { AOM_CDF13(10304, 10858, 13242, 13826, 15409, 16080, 21225, 22983,
                    23924, 29128, 30162, 32556) },
        { AOM_CDF13(9909, 10554, 12924, 14243, 14636, 15075, 16202, 21806,
                    23067, 28721, 29942, 32552) },
        { AOM_CDF13(10896, 12565, 13376, 14948, 15378, 16154, 16898, 19033,
                    22710, 28465, 30461, 32462) },
        { AOM_CDF13(11659, 12724, 14290, 15241, 15795, 16545, 17729, 20065,
                    21669, 28045, 29829, 32507) },
        { AOM_CDF13(11351, 12806, 14382, 15343, 15955, 16885, 17916, 20033,
                    21718, 28093, 30166, 32319) },
        { AOM_CDF13(11522, 12494, 14590, 15496, 15977, 16665, 17908, 20267,
                    21743, 28115, 29581, 32452) },
        { AOM_CDF13(9913, 12241, 17367, 18136, 18433, 18985, 19700, 21136,
                    22405, 26910, 28302, 30379) } },
      { { AOM_CDF13(12772, 14653, 16651, 17429, 17957, 18854, 19886, 21672,
                    23234, 28792, 30500, 32399) },
        { AOM_CDF13(10718, 18074, 18913, 19509, 19880, 20951, 21443, 22467,
                    24411, 28546, 30812, 32079) },
        { AOM_CDF13(8668, 9307, 20783, 21169, 21531, 21743, 22862, 24771, 25364,
                    29059, 29920, 31878) },
        { AOM_CDF13(11352, 12585, 13504, 16428, 16801, 17365, 17969, 21427,
                    23868, 29321, 30836, 32622) },
        { AOM_CDF13(9076, 10636, 11637, 12524, 18204, 20593, 22842, 23921,
                    25465, 29951, 31401, 32575) },
        { AOM_CDF13(9924, 12861, 13519, 14327, 15700, 20596, 21434, 22592,
                    24521, 29177, 30937, 32569) },
        { AOM_CDF13(9975, 10926, 13127, 13658, 15283, 16041, 21277, 23058,
                    24139, 29093, 30305, 32527) },
        { AOM_CDF13(9782, 10733, 12976, 14251, 14721, 15295, 16279, 22181,
                    23520, 29134, 30459, 32591) },
        { AOM_CDF13(10910, 13136, 13939, 15246, 15760, 16621, 17278, 19097,
                    23321, 28756, 31030, 32520) },
        { AOM_CDF13(11508, 13079, 14662, 15543, 16088, 16964, 18013, 20126,
                    21886, 28317, 30284, 32446) },
        { AOM_CDF13(11588, 13894, 15463, 16360, 16934, 17975, 18878, 20699,
                    22408, 28392, 30519, 32360) },
        { AOM_CDF13(11198, 12680, 14726, 15620, 16098, 16861, 18056, 20172,
                    21896, 28252, 29839, 32437) },
        { AOM_CDF13(9832, 13268, 17993, 18757, 19173, 19664, 20264, 21689,
                    23011, 27552, 29216, 30566) } },
      { { AOM_CDF13(12350, 13494, 16423, 17219, 17721, 18280, 19569, 21557,
                    22752, 28182, 29360, 32304) },
        { AOM_CDF13(10022, 16315, 17409, 18094, 18533, 19487, 20138, 21179,
                    22977, 27630, 29129, 31612) },
        { AOM_CDF13(9089, 9522, 20772, 21117, 21321, 21492, 22623, 24717, 25118,
                    28517, 28979, 31962) },
        { AOM_CDF13(9995, 10496, 11749, 15264, 15578, 15986, 16825, 20949,
                    23073, 28353, 29869, 32482) },
        { AOM_CDF13(9679, 10801, 11768, 12705, 18527, 20477, 22915, 24165,
                    25268, 29848, 30931, 32576) },
        { AOM_CDF13(9567, 11899, 12955, 13828, 15192, 19318, 20367, 21537,
                    23628, 28952, 30125, 32358) },
        { AOM_CDF13(9977, 10470, 13391, 14019, 15325, 15830, 21218, 23133,
                    23836, 28927, 29755, 32513) },
        { AOM_CDF13(9850, 10345, 13290, 14602, 14927, 15251, 16355, 22136,
                    23237, 28655, 29584, 32430) },
        { AOM_CDF13(10404, 11783, 12735, 14400, 14849, 15513, 16394, 18648,
                    22370, 28254, 30174, 32416) },
        { AOM_CDF13(11468, 12380, 14466, 15450, 15969, 16598, 17836, 20272,
                    21618, 27769, 29346, 32367) },
        { AOM_CDF13(10553, 11978, 13832, 14829, 15388, 16214, 17380, 19633,
                    21295, 27909, 29723, 32101) },
        { AOM_CDF13(11458, 12316, 15258, 16119, 16504, 16926, 18261, 20678,
                    21757, 27964, 29206, 32426) },
        { AOM_CDF13(9827, 12420, 17601, 18357, 18643, 19019, 19747, 21072,
                    22058, 25919, 27042, 29550) } },
      { { AOM_CDF13(9582, 13804, 16310, 16612, 16855, 17317, 17804, 18740,
                    19414, 21959, 22938, 24178) },
        { AOM_CDF13(7931, 20318, 21429, 21817, 21997, 22345, 22526, 23105,
                    23829, 25586, 26598, 27385) },
        { AOM_CDF13(6461, 7883, 22735, 22941, 23061, 23170, 23671, 24830, 25109,
                    26711, 27168, 28668) },
        { AOM_CDF13(9870, 12532, 14896, 17822, 18219, 18649, 19079, 23162,
                    24634, 28800, 30057, 31098) },
        { AOM_CDF13(8170, 13942, 15674, 16236, 20928, 22526, 24154, 25027,
                    26567, 29246, 29882, 31110) },
        { AOM_CDF13(9833, 16669, 17894, 18429, 19535, 23506, 24053, 25052,
                    26466, 29379, 30616, 31424) },
        { AOM_CDF13(9558, 13127, 16722, 16945, 18404, 18965, 23157, 24785,
                    25444, 28879, 29715, 31451) },
        { AOM_CDF13(8656, 11218, 15859, 16851, 17205, 17565, 18231, 24622,
                    25273, 28496, 29332, 31266) },
        { AOM_CDF13(9768, 14291, 15838, 16981, 17225, 18107, 18654, 20335,
                    24118, 28540, 30170, 31448) },
        { AOM_CDF13(10347, 15055, 17791, 18218, 18600, 19290, 19932, 21554,
                    22592, 26896, 28359, 30358) },
        { AOM_CDF13(9093, 14028, 17143, 17521, 17893, 18675, 19203, 20715,
                    21674, 25422, 28036, 29528) },
        { AOM_CDF13(10719, 15009, 18593, 19033, 19256, 19708, 20387, 22033,
                    22877, 26524, 27841, 30214) },
        { AOM_CDF13(6775, 10524, 14225, 14551, 14761, 14914, 15132, 16033,
                    16477, 17963, 18795, 19673) } }
#else
      {
          { AOM_CDF13(14208, 17049, 20482, 21400, 22520, 23261, 23963, 25010,
                      25828, 28398, 29394, 30738) },
          { AOM_CDF13(10496, 18295, 19872, 20945, 21933, 22818, 23334, 24033,
                      24996, 27652, 29060, 30071) },
          { AOM_CDF13(5120, 6461, 19840, 20310, 21151, 21506, 22535, 23900,
                      24281, 26958, 27680, 29636) },
          { AOM_CDF13(12544, 15177, 17666, 19855, 21147, 22017, 22797, 24514,
                      25779, 28716, 29772, 31267) },
          { AOM_CDF13(7552, 9909, 11908, 13141, 18765, 22029, 23872, 24920,
                      25674, 29031, 30244, 31684) },
          { AOM_CDF13(11008, 15004, 16534, 18158, 21515, 26668, 27834, 28735,
                      30471, 30839, 30969, 31068) },
          { AOM_CDF13(6272, 7963, 11944, 12780, 17944, 19198, 24071, 25295,
                      25834, 29014, 29949, 31733) },
          { AOM_CDF13(8192, 10189, 14596, 15680, 17143, 17909, 19201, 23711,
                      24503, 28207, 29338, 31424) },
          { AOM_CDF13(10752, 13199, 15048, 17151, 18445, 19604, 20363, 21782,
                      24311, 28026, 29517, 30962) },
          { AOM_CDF13(7424, 10301, 13245, 14307, 16021, 16257, 17265, 18739,
                      20080, 26066, 28325, 31184) },
          { AOM_CDF13(6528, 10893, 13773, 14824, 16540, 16926, 17748, 18876,
                      20396, 25974, 28795, 30820) },
          { AOM_CDF13(8704, 11005, 14320, 15349, 16746, 16884, 17887, 19304,
                      20265, 26115, 27672, 31358) },
          { AOM_CDF13(6272, 9504, 15437, 16399, 17355, 17948, 18814, 20270,
                      21134, 23690, 24759, 26454) },
      },
      {
          { AOM_CDF13(3968, 17613, 19125, 19550, 20305, 21908, 22274, 22719,
                      23959, 26970, 29013, 29843) },
          { AOM_CDF13(3072, 21231, 21863, 22306, 22674, 23414, 23517, 23798,
                      24770, 27032, 29016, 29636) },
          { AOM_CDF13(2560, 9825, 15681, 16370, 17054, 17687, 18236, 19273,
                      20311, 24863, 26825, 28756) },
          { AOM_CDF13(6912, 15140, 16485, 18364, 19181, 20394, 20663, 22098,
                      23936, 27555, 29704, 30849) },
          { AOM_CDF13(2944, 13101, 14006, 14974, 17818, 21093, 21930, 22566,
                      24137, 27732, 29814, 30904) },
          { AOM_CDF13(4352, 17824, 18715, 19632, 21519, 26341, 26922, 27575,
                      29863, 30432, 30769, 30881) },
          { AOM_CDF13(2944, 11971, 13509, 14295, 17202, 19005, 21605, 22458,
                      23839, 27774, 29492, 30787) },
          { AOM_CDF13(4224, 13072, 15288, 16406, 17285, 18362, 19003, 21378,
                      22942, 27093, 29381, 30872) },
          { AOM_CDF13(5120, 15375, 16188, 17415, 18183, 19756, 20030, 20883,
                      23935, 27428, 29627, 30608) },
          { AOM_CDF13(2816, 14999, 16352, 16969, 17836, 18125, 18514, 19181,
                      20650, 25773, 29172, 30662) },
          { AOM_CDF13(2560, 16158, 17320, 17839, 18545, 18848, 19130, 19599,
                      20863, 25449, 29304, 30408) },
          { AOM_CDF13(3328, 15146, 16880, 17523, 18340, 18563, 18896, 19582,
                      20944, 25914, 28759, 30583) },
          { AOM_CDF13(2560, 16618, 18460, 19207, 19654, 20276, 20529, 21179,
                      22355, 25423, 27696, 28638) },
      },
      {
          { AOM_CDF13(11392, 12961, 20901, 21544, 22490, 22928, 23888, 25214,
                      25777, 28256, 29102, 30513) },
          { AOM_CDF13(8064, 13595, 18888, 19616, 20765, 21454, 21990, 23103,
                      23980, 26772, 28070, 29197) },
          { AOM_CDF13(4352, 5059, 21705, 22099, 22703, 22846, 23679, 25469,
                      25728, 27919, 28484, 30215) },
          { AOM_CDF13(10752, 12277, 16471, 18276, 19443, 19917, 21158, 23881,
                      24892, 27709, 28771, 30274) },
          { AOM_CDF13(8320, 10000, 14147, 15330, 19197, 20923, 22954, 24541,
                      25285, 28407, 29431, 30953) },
          { AOM_CDF13(11264, 14751, 18517, 20285, 23172, 25970, 27312, 28684,
                      29803, 30242, 30412, 30668) },
          { AOM_CDF13(6528, 7509, 14190, 14953, 17905, 18452, 23074, 24910,
                      25374, 28605, 29542, 31640) },
          { AOM_CDF13(6784, 7644, 15953, 17055, 17945, 18242, 19351, 24705,
                      25365, 28466, 29334, 31245) },
          { AOM_CDF13(8192, 9802, 14519, 15740, 17351, 18084, 18962, 20908,
                      22937, 26847, 28284, 29888) },
          { AOM_CDF13(5888, 7534, 14635, 15436, 16710, 16830, 18000, 19760,
                      20571, 25777, 27649, 30668) },
          { AOM_CDF13(5248, 7364, 14858, 15545, 16861, 17016, 17859, 19384,
                      20237, 25239, 27715, 29865) },
          { AOM_CDF13(6656, 7989, 15472, 16265, 17271, 17334, 18563, 20327,
                      20916, 26173, 27350, 31034) },
          { AOM_CDF13(4480, 6411, 17828, 18611, 19399, 19684, 20504, 21782,
                      22335, 25286, 26352, 28016) },
      },
      {
          { AOM_CDF13(10240, 12819, 15545, 18248, 19779, 20932, 21899, 23377,
                      25448, 28730, 29936, 31536) },
          { AOM_CDF13(7552, 15309, 16645, 19760, 20653, 21650, 22221, 23273,
                      25509, 28683, 30153, 31192) },
          { AOM_CDF13(5248, 6840, 16129, 17940, 19069, 19660, 20588, 22760,
                      23927, 27538, 28397, 30725) },
          { AOM_CDF13(11008, 11903, 13794, 21320, 21931, 22310, 22546, 25375,
                      27347, 29800, 30761, 31833) },
          { AOM_CDF13(6272, 8678, 10313, 13073, 16823, 19980, 21520, 23242,
                      25344, 28797, 30405, 31940) },
          { AOM_CDF13(7424, 10835, 12653, 16345, 19574, 24868, 25937, 27299,
                      31104, 31448, 31580, 31679) },
          { AOM_CDF13(4992, 6458, 9945, 11961, 16136, 17677, 20946, 23042,
                      24475, 28304, 29748, 31791) },
          { AOM_CDF13(9600, 11879, 14703, 17653, 19176, 20185, 20880, 25194,
                      26584, 29655, 30430, 32044) },
          { AOM_CDF13(9856, 11385, 13457, 18705, 19577, 20266, 20746, 22207,
                      26724, 29431, 30645, 31604) },
          { AOM_CDF13(6272, 9318, 11569, 14812, 16351, 16619, 17537, 19596,
                      22025, 27384, 29277, 31422) },
          { AOM_CDF13(5888, 9348, 11416, 14690, 16254, 16633, 17457, 19031,
                      21875, 27080, 29442, 31193) },
          { AOM_CDF13(6912, 9329, 12218, 15177, 16806, 16998, 17991, 20005,
                      21952, 27108, 28867, 31657) },
          { AOM_CDF13(5120, 9098, 13132, 17701, 18739, 19534, 20415, 22136,
                      24213, 27199, 28504, 29960) },
      },
      {
          { AOM_CDF13(7296, 9304, 11772, 12529, 18014, 20418, 23076, 24662,
                      25549, 29074, 30392, 31773) },
          { AOM_CDF13(7168, 11687, 13541, 14431, 18214, 20761, 22269, 23320,
                      24633, 28339, 30193, 31268) },
          { AOM_CDF13(3584, 4428, 13496, 14189, 17372, 18617, 20609, 22615,
                      23270, 27280, 28305, 30602) },
          { AOM_CDF13(7424, 8834, 10499, 14357, 17671, 19150, 20460, 23235,
                      24391, 28351, 29843, 31481) },
          { AOM_CDF13(4480, 5888, 7093, 7902, 18290, 22123, 24511, 25532, 26360,
                      29653, 30954, 32215) },
          { AOM_CDF13(7296, 10176, 11780, 12824, 19608, 25882, 28520, 29445,
                      31106, 31573, 31775, 31872) },
          { AOM_CDF13(3840, 4833, 7551, 8449, 16668, 18614, 23952, 25668, 26721,
                      29888, 30697, 32090) },
          { AOM_CDF13(6528, 8011, 11083, 12427, 16188, 17548, 19625, 23787,
                      24792, 28649, 29872, 31845) },
          { AOM_CDF13(7168, 9170, 10655, 12439, 15550, 18128, 19565, 21412,
                      23355, 28007, 30080, 31568) },
          { AOM_CDF13(5504, 7636, 10174, 11056, 15562, 16252, 17931, 19598,
                      20967, 26845, 29149, 31490) },
          { AOM_CDF13(5248, 7810, 10004, 11015, 15359, 16310, 17834, 19185,
                      20903, 26728, 29585, 31478) },
          { AOM_CDF13(5376, 7322, 10592, 11694, 15586, 16103, 17999, 19740,
                      20950, 26894, 28912, 31591) },
          { AOM_CDF13(4608, 7276, 12153, 13388, 16091, 17970, 19548, 21175,
                      22481, 26543, 28212, 29908) },
      },
      {
          { AOM_CDF13(6656, 12225, 14441, 15158, 19600, 27127, 28221, 29186,
                      30439, 30913, 31135, 31238) },
          { AOM_CDF13(6400, 14608, 15920, 16643, 20149, 27328, 27896, 28672,
                      30227, 30778, 31053, 31120) },
          { AOM_CDF13(3840, 6925, 14671, 15709, 19830, 24216, 25507, 27459,
                      28552, 29569, 29808, 30169) },
          { AOM_CDF13(9600, 13604, 15202, 17530, 20878, 24279, 25278, 28255,
                      30651, 31170, 31343, 31410) },
          { AOM_CDF13(4608, 8535, 9588, 10740, 18673, 27664, 28826, 29828,
                      31081, 31503, 31680, 31778) },
          { AOM_CDF13(4864, 10543, 11313, 12197, 16785, 27858, 28556, 29480,
                      30892, 31486, 31722, 31787) },
          { AOM_CDF13(3968, 7492, 10283, 11318, 18486, 24061, 26761, 28456,
                      30126, 30872, 31088, 31305) },
          { AOM_CDF13(6016, 10246, 12999, 15083, 18769, 22398, 23584, 27098,
                      29574, 30609, 30898, 31200) },
          { AOM_CDF13(7808, 13404, 14723, 16413, 20186, 24739, 25407, 27106,
                      29929, 30507, 30827, 30915) },
          { AOM_CDF13(2816, 6530, 8123, 9240, 12536, 17593, 18754, 20319, 22070,
                      27037, 29332, 30779) },
          { AOM_CDF13(2432, 6577, 8010, 9215, 12657, 18898, 19588, 20953, 22766,
                      27231, 29927, 31109) },
          { AOM_CDF13(3200, 6974, 9162, 10450, 13818, 17757, 19119, 20842,
                      22269, 27170, 29271, 30804) },
          { AOM_CDF13(4480, 10689, 15307, 16589, 19738, 24416, 25332, 26541,
                      28634, 29711, 29913, 30116) },
      },
      {
          { AOM_CDF13(9600, 11066, 15832, 16515, 18844, 19883, 24302, 25759,
                      26358, 29290, 30262, 31682) },
          { AOM_CDF13(8832, 12814, 16171, 17041, 19066, 20145, 22933, 24074,
                      25006, 28115, 29722, 30991) },
          { AOM_CDF13(3840, 4486, 15821, 16330, 18461, 18879, 22436, 25051,
                      25443, 28637, 29396, 31412) },
          { AOM_CDF13(9856, 10863, 14050, 15920, 18783, 19531, 22502, 24577,
                      25361, 28559, 29600, 31336) },
          { AOM_CDF13(6528, 7620, 10182, 11199, 17281, 19946, 23885, 25333,
                      26130, 29425, 30332, 31948) },
          { AOM_CDF13(9728, 11821, 13954, 15233, 19855, 24478, 28675, 29878,
                      31238, 31741, 31874, 32048) },
          { AOM_CDF13(5120, 5753, 9673, 10149, 14343, 15190, 24967, 26378,
                      26841, 29749, 30527, 32120) },
          { AOM_CDF13(5888, 6606, 11498, 12538, 14737, 15425, 19549, 24047,
                      24765, 28711, 29822, 32138) },
          { AOM_CDF13(10368, 11757, 14126, 15474, 18311, 19358, 21539, 23451,
                      25034, 28791, 30035, 31280) },
          { AOM_CDF13(6016, 7623, 11378, 12248, 15171, 15459, 18958, 20875,
                      21955, 27411, 29196, 31723) },
          { AOM_CDF13(5760, 7469, 11399, 12323, 15165, 15528, 18804, 20769,
                      21767, 27129, 29435, 31502) },
          { AOM_CDF13(7040, 8295, 12298, 13035, 15194, 15357, 18976, 21100,
                      21805, 26978, 28342, 31763) },
          { AOM_CDF13(5632, 7465, 14220, 15035, 17014, 18105, 21111, 23027,
                      23934, 27207, 28293, 30330) },
      },
      {
          { AOM_CDF13(11008, 13089, 17144, 18425, 19954, 20624, 21658, 24229,
                      25290, 28803, 29938, 31493) },
          { AOM_CDF13(9088, 14218, 16378, 17699, 18935, 19928, 20524, 22781,
                      24155, 27523, 29068, 30270) },
          { AOM_CDF13(6144, 7194, 17912, 18991, 19879, 20151, 21170, 23938,
                      24712, 27763, 28556, 30584) },
          { AOM_CDF13(10496, 11614, 13652, 16928, 18425, 18967, 19724, 23817,
                      25594, 28685, 29734, 30941) },
          { AOM_CDF13(7296, 8915, 11163, 13821, 16951, 18507, 20180, 22423,
                      24017, 28294, 29614, 31673) },
          { AOM_CDF13(9728, 13441, 15858, 18860, 21713, 24478, 25995, 28233,
                      30347, 30853, 31081, 31328) },
          { AOM_CDF13(6400, 7480, 11482, 13206, 16199, 16908, 20436, 23507,
                      24650, 28360, 29438, 31532) },
          { AOM_CDF13(9856, 10979, 13430, 15195, 15957, 16350, 16871, 26198,
                      26991, 29612, 30438, 31962) },
          { AOM_CDF13(8960, 10529, 12640, 15350, 16987, 17859, 18590, 21400,
                      23812, 28188, 29589, 31280) },
          { AOM_CDF13(7168, 8877, 12393, 14015, 15655, 15794, 16814, 19923,
                      21086, 26723, 28669, 31468) },
          { AOM_CDF13(6400, 8900, 12241, 13828, 15513, 15671, 16500, 19257,
                      20456, 25984, 28658, 31017) },
          { AOM_CDF13(7296, 8820, 12885, 14441, 15813, 15911, 16954, 20026,
                      20950, 26563, 28140, 31673) },
          { AOM_CDF13(6272, 8455, 13328, 15907, 17026, 17464, 18267, 21436,
                      22712, 26403, 27660, 29559) },
      },
      {
          { AOM_CDF13(6784, 11216, 13269, 15677, 16931, 18445, 19097, 20082,
                      24298, 28236, 30118, 31448) },
          { AOM_CDF13(5760, 13240, 14110, 16966, 17743, 18916, 19281, 19848,
                      25552, 28646, 30444, 31291) },
          { AOM_CDF13(4352, 6870, 14660, 16597, 17361, 18126, 18852, 20765,
                      23526, 27670, 29096, 31214) },
          { AOM_CDF13(9472, 11736, 13172, 18192, 19070, 19651, 19991, 21793,
                      26005, 29291, 30500, 31767) },
          { AOM_CDF13(4480, 7252, 8651, 12379, 14936, 17493, 18326, 19527,
                      23655, 28031, 29960, 31773) },
          { AOM_CDF13(6016, 11561, 12864, 15793, 18765, 23040, 23640, 24415,
                      31040, 31473, 31740, 31827) },
          { AOM_CDF13(4480, 6825, 8810, 11269, 14257, 15716, 18397, 20006,
                      24020, 28230, 29780, 31773) },
          { AOM_CDF13(6912, 9466, 11717, 15159, 16237, 17145, 17814, 21258,
                      24754, 28864, 30313, 32061) },
          { AOM_CDF13(7680, 10517, 11381, 16202, 16809, 17425, 17774, 18764,
                      26842, 29600, 31073, 31886) },
          { AOM_CDF13(4992, 8626, 10531, 13103, 14495, 14784, 15365, 16657,
                      21051, 27011, 29685, 31574) },
          { AOM_CDF13(4736, 9433, 10981, 13494, 14644, 15043, 15396, 16378,
                      21506, 26869, 29824, 31454) },
          { AOM_CDF13(5760, 9526, 11905, 14476, 15722, 16103, 16768, 18070,
                      21630, 27401, 29592, 31818) },
          { AOM_CDF13(4480, 9947, 12386, 15909, 16496, 17397, 17866, 18927,
                      24408, 27750, 29614, 30889) },
      },
      {
          { AOM_CDF13(7424, 10538, 14098, 14891, 16486, 16756, 17607, 18952,
                      20168, 26275, 28617, 31580) },
          { AOM_CDF13(5376, 13070, 14969, 15848, 17197, 17447, 17954, 18747,
                      20137, 25628, 28753, 30628) },
          { AOM_CDF13(3584, 5287, 16141, 16840, 17670, 17760, 18532, 20387,
                      21102, 26118, 27535, 30830) },
          { AOM_CDF13(7424, 9594, 11770, 14505, 16234, 16365, 17201, 20286,
                      22128, 27371, 29426, 31580) },
          { AOM_CDF13(5632, 8393, 10566, 11917, 16025, 16697, 18123, 19541,
                      21135, 27059, 29325, 31814) },
          { AOM_CDF13(3840, 7916, 9526, 11010, 14114, 18169, 19510, 21031,
                      23083, 27769, 29782, 31299) },
          { AOM_CDF13(5376, 7338, 10657, 11699, 14780, 15070, 18291, 20170,
                      21347, 26985, 28811, 31805) },
          { AOM_CDF13(5632, 7669, 11558, 12653, 13962, 14116, 15074, 19886,
                      21123, 26953, 28755, 31708) },
          { AOM_CDF13(6528, 9739, 11612, 13211, 14992, 15237, 16016, 17677,
                      20588, 26647, 29116, 31435) },
          { AOM_CDF13(5376, 8346, 11022, 11976, 13541, 13749, 14520, 16173,
                      17567, 25182, 28111, 31591) },
          { AOM_CDF13(4736, 8894, 11294, 12220, 13753, 14029, 14645, 16065,
                      17621, 24911, 28655, 31344) },
          { AOM_CDF13(5760, 8193, 11667, 12461, 13880, 14040, 14946, 16537,
                      17642, 25117, 27333, 31713) },
          { AOM_CDF13(4096, 8479, 13751, 14813, 15994, 16157, 16905, 18314,
                      19575, 25132, 27445, 30192) },
      },
      {
          { AOM_CDF13(7936, 12263, 15558, 16331, 17779, 18148, 18810, 19794,
                      21046, 26644, 29417, 31507) },
          { AOM_CDF13(5376, 15025, 16457, 17074, 18079, 18299, 18648, 19240,
                      20612, 25687, 29392, 30842) },
          { AOM_CDF13(3840, 6037, 17465, 18089, 18869, 18953, 19688, 21223,
                      21816, 26562, 28195, 30621) },
          { AOM_CDF13(8448, 11255, 13307, 15676, 17392, 17603, 18268, 20783,
                      22646, 27628, 29737, 31628) },
          { AOM_CDF13(5760, 9119, 11015, 12269, 16280, 17023, 18282, 19418,
                      21325, 27309, 30004, 31818) },
          { AOM_CDF13(3968, 9094, 10606, 12007, 14218, 18911, 20089, 20924,
                      23587, 27808, 30253, 31305) },
          { AOM_CDF13(6016, 8627, 11201, 12200, 15305, 15671, 18639, 20185,
                      21627, 26990, 29449, 31723) },
          { AOM_CDF13(6272, 8768, 12320, 13296, 14643, 14970, 15760, 20545,
                      21863, 27473, 29535, 31836) },
          { AOM_CDF13(6912, 10905, 12656, 14084, 15705, 16069, 16674, 17779,
                      21041, 26586, 29539, 31253) },
          { AOM_CDF13(5248, 9672, 12113, 12871, 14423, 14710, 15376, 16708,
                      18092, 25260, 28991, 31585) },
          { AOM_CDF13(4736, 10789, 13029, 13750, 15040, 15385, 15840, 16887,
                      18393, 25230, 29558, 31454) },
          { AOM_CDF13(6016, 9916, 12938, 13741, 15030, 15297, 16116, 17333,
                      18672, 25954, 28498, 31618) },
          { AOM_CDF13(4608, 10266, 15450, 16299, 17114, 17288, 17775, 18835,
                      20227, 25199, 28098, 30018) },
      },
      {
          { AOM_CDF13(7296, 9951, 14124, 14806, 16181, 16377, 17485, 19069,
                      20078, 26051, 27777, 31574) },
          { AOM_CDF13(5376, 13823, 15889, 16620, 17709, 17881, 18327, 19140,
                      20374, 25685, 28160, 30521) },
          { AOM_CDF13(3200, 4602, 16404, 17042, 17780, 17829, 18706, 20608,
                      21115, 25884, 26960, 30804) },
          { AOM_CDF13(7040, 9444, 11770, 14321, 15951, 16074, 17033, 20352,
                      22301, 27567, 29151, 31662) },
          { AOM_CDF13(6016, 8316, 10849, 12136, 15860, 16430, 17935, 19659,
                      21083, 26968, 28839, 31618) },
          { AOM_CDF13(3840, 7472, 9436, 11038, 13625, 17596, 18959, 20543,
                      22879, 27487, 29351, 31186) },
          { AOM_CDF13(5376, 7117, 11424, 12381, 14823, 15053, 18656, 20818,
                      21722, 27042, 28233, 31591) },
          { AOM_CDF13(5760, 7281, 11910, 12912, 14229, 14391, 15474, 20113,
                      21128, 26627, 28077, 31713) },
          { AOM_CDF13(6656, 9452, 11526, 13288, 14861, 15062, 15909, 17695,
                      20429, 26225, 28603, 31340) },
          { AOM_CDF13(5376, 7722, 10921, 11813, 13222, 13348, 14211, 15976,
                      17110, 24634, 27176, 31484) },
          { AOM_CDF13(4736, 8226, 11137, 11988, 13518, 13706, 14332, 16016,
                      17301, 24641, 27704, 31016) },
          { AOM_CDF13(5760, 7592, 11880, 12612, 13738, 13813, 14681, 16392,
                      17306, 24619, 26334, 31818) },
          { AOM_CDF13(4096, 8524, 14316, 15392, 16295, 16433, 17197, 18718,
                      19924, 25123, 26953, 29856) },
      },
      {
          { AOM_CDF13(6528, 13383, 17642, 18342, 19224, 20209, 20899, 21944,
                      23137, 25966, 27429, 28463) },
          { AOM_CDF13(4480, 16901, 18876, 19560, 20257, 20912, 21169, 21959,
                      23036, 25781, 27676, 28569) },
          { AOM_CDF13(2688, 5337, 18178, 18829, 19344, 19628, 20267, 22135,
                      22671, 25817, 26914, 28773) },
          { AOM_CDF13(8192, 11378, 14742, 17269, 18230, 19001, 19655, 22949,
                      24337, 28025, 29503, 30848) },
          { AOM_CDF13(5120, 10133, 13144, 14374, 17020, 18920, 20235, 21677,
                      23142, 27131, 28671, 30284) },
          { AOM_CDF13(7424, 15588, 18431, 19723, 21455, 24705, 25461, 26753,
                      28923, 29475, 29729, 29897) },
          { AOM_CDF13(4224, 8689, 13024, 13658, 16637, 17307, 20836, 22665,
                      23673, 27015, 28310, 30203) },
          { AOM_CDF13(5120, 7896, 13618, 14900, 15708, 16153, 16997, 23625,
                      24466, 27719, 28892, 30500) },
          { AOM_CDF13(5760, 11305, 13669, 15462, 16564, 17683, 18252, 20073,
                      22917, 27005, 28923, 30236) },
          { AOM_CDF13(4224, 9510, 13787, 14587, 15753, 15925, 16513, 18193,
                      19490, 24944, 27482, 29757) },
          { AOM_CDF13(3840, 10052, 14106, 14887, 15827, 15996, 16522, 17939,
                      19204, 24508, 27661, 29491) },
          { AOM_CDF13(4736, 9676, 14492, 15163, 16179, 16390, 17133, 18905,
                      19864, 25185, 27191, 30030) },
          { AOM_CDF13(3584, 9370, 14746, 15820, 16708, 17224, 17718, 19329,
                      20405, 23541, 25258, 26726) },
      },
#endif
#else
      {
          { AOM_CDF11(15488, 18706, 22561, 23619, 24954, 25782, 26710, 27861,
                      28656, 30743) },
          { AOM_CDF11(11648, 18744, 20846, 22100, 23332, 24337, 25093, 26104,
                      27097, 29633) },
          { AOM_CDF11(8448, 10732, 22507, 23254, 24382, 24876, 25827, 27488,
                      28040, 30108) },
          { AOM_CDF11(13568, 16981, 19885, 22014, 23543, 24658, 25641, 27378,
                      28625, 31043) },
          { AOM_CDF11(9600, 12225, 14408, 16033, 19544, 22318, 23960, 25617,
                      26522, 30596) },
          { AOM_CDF11(12160, 15078, 16990, 18964, 22725, 25793, 27133, 28447,
                      30831, 30836) },
          { AOM_CDF11(9088, 11274, 15818, 16940, 21178, 22338, 26171, 27754,
                      28503, 31473) },
          { AOM_CDF11(10880, 13846, 18649, 20252, 22157, 22992, 24396, 27581,
                      28501, 31400) },
          { AOM_CDF11(11008, 13462, 15747, 18378, 20085, 21663, 22766, 24635,
                      27476, 30643) },
          { AOM_CDF11(10112, 13147, 16135, 17577, 19681, 19689, 20856, 22374,
                      24454, 30555) },
          { AOM_CDF11(8704, 12176, 17582, 18905, 19994, 20669, 21635, 23564,
                      24741, 27222) },
      },
      {
          { AOM_CDF11(8448, 18738, 21694, 22413, 23358, 24675, 25193, 26119,
                      27310, 30773) },
          { AOM_CDF11(6656, 22027, 23242, 23986, 24529, 25363, 25646, 26087,
                      27130, 30218) },
          { AOM_CDF11(7168, 13862, 21137, 22124, 23036, 23803, 24458, 26390,
                      27342, 30968) },
          { AOM_CDF11(9600, 17409, 19830, 21521, 22580, 23726, 24377, 25679,
                      27269, 30867) },
          { AOM_CDF11(6912, 15832, 17559, 18777, 20425, 22719, 23447, 24952,
                      26527, 30950) },
          { AOM_CDF11(7808, 18730, 20143, 21445, 23347, 26267, 27229, 28315,
                      30911, 30915) },
          { AOM_CDF11(6784, 14299, 17264, 18505, 20765, 22440, 24331, 26038,
                      27481, 31448) },
          { AOM_CDF11(8832, 15726, 19455, 20668, 21607, 22655, 23384, 26356,
                      27697, 31459) },
          { AOM_CDF11(8192, 17385, 18866, 20120, 21273, 22853, 23470, 24881,
                      27216, 31040) },
          { AOM_CDF11(6656, 16341, 18497, 19439, 20706, 20711, 21234, 22307,
                      23950, 30728) },
          { AOM_CDF11(6400, 17625, 20326, 21821, 22568, 23415, 23854, 24896,
                      26171, 29575) },
      },
      {
          { AOM_CDF11(12032, 14259, 22597, 23443, 24581, 25079, 26399, 27862,
                      28509, 30419) },
          { AOM_CDF11(9216, 14883, 20941, 21958, 23597, 24328, 25208, 26590,
                      27377, 29364) },
          { AOM_CDF11(6784, 8088, 24407, 25006, 25777, 25950, 26882, 28811,
                      29159, 30636) },
          { AOM_CDF11(11904, 14425, 18729, 20730, 21998, 22686, 23856, 26580,
                      27613, 29834) },
          { AOM_CDF11(10752, 12784, 16305, 17624, 20320, 22450, 24380, 26773,
                      27837, 30016) },
          { AOM_CDF11(10496, 14090, 18314, 20621, 23539, 25261, 26953, 28692,
                      30064, 30071) },
          { AOM_CDF11(8448, 10229, 16542, 17725, 21504, 22332, 26006, 27895,
                      28487, 31248) },
          { AOM_CDF11(9728, 11162, 19379, 20981, 22356, 22926, 24318, 28364,
                      29020, 31328) },
          { AOM_CDF11(9216, 10861, 14850, 16471, 18611, 19674, 21009, 23454,
                      26078, 29272) },
          { AOM_CDF11(7808, 10132, 17327, 18472, 20126, 20132, 21599, 23338,
                      24514, 29843) },
          { AOM_CDF11(6784, 9210, 19309, 20715, 21833, 22262, 23353, 24942,
                      25800, 28200) },
      },
      {
          { AOM_CDF11(12288, 15040, 18401, 21071, 22800, 23945, 25274, 26939,
                      28554, 31328) },
          { AOM_CDF11(9344, 17170, 19325, 22119, 23284, 24378, 24911, 26095,
                      27781, 31121) },
          { AOM_CDF11(9344, 11650, 19788, 21928, 22916, 23571, 24362, 26633,
                      27946, 31212) },
          { AOM_CDF11(12928, 14428, 17080, 20882, 22104, 23149, 23715, 27167,
                      28932, 31218) },
          { AOM_CDF11(9088, 11962, 13849, 16880, 19818, 21895, 23000, 25923,
                      27961, 31380) },
          { AOM_CDF11(10240, 13336, 15505, 18844, 21646, 24723, 25832, 27802,
                      31088, 31096) },
          { AOM_CDF11(8704, 10683, 14446, 17035, 20211, 21577, 24370, 26477,
                      28223, 31734) },
          { AOM_CDF11(12928, 17358, 19982, 22123, 23335, 23948, 24890, 28884,
                      30197, 32148) },
          { AOM_CDF11(10496, 12429, 16401, 20493, 21471, 22433, 23162, 24686,
                      29027, 31115) },
          { AOM_CDF11(8448, 12157, 14796, 17676, 19754, 19762, 20641, 23274,
                      25569, 31058) },
          { AOM_CDF11(7296, 11083, 15313, 20550, 21783, 22727, 23461, 25072,
                      27195, 30380) },
      },
      {
          { AOM_CDF11(10880, 13214, 15829, 16866, 20613, 22316, 24539, 27077,
                      28116, 31485) },
          { AOM_CDF11(9984, 13868, 16397, 17486, 20011, 22071, 23357, 24990,
                      26336, 30276) },
          { AOM_CDF11(7168, 8637, 17963, 18813, 21065, 22052, 23502, 25702,
                      26745, 30668) },
          { AOM_CDF11(8960, 10682, 12496, 18240, 20500, 21585, 23387, 25795,
                      27119, 31001) },
          { AOM_CDF11(9856, 12056, 13722, 15196, 19276, 21891, 23643, 25538,
                      26854, 31515) },
          { AOM_CDF11(9984, 12963, 14960, 16734, 21279, 25616, 27638, 28950,
                      31161, 31166) },
          { AOM_CDF11(7168, 8604, 12044, 13632, 18931, 20553, 23452, 25800,
                      27754, 31668) },
          { AOM_CDF11(11520, 13372, 16642, 18137, 20232, 21510, 23052, 26792,
                      27974, 31274) },
          { AOM_CDF11(10240, 12483, 14364, 16168, 18668, 20707, 22158, 24410,
                      26370, 30744) },
          { AOM_CDF11(8064, 10798, 13829, 15128, 19136, 19152, 21057, 22583,
                      24513, 30645) },
          { AOM_CDF11(8448, 11025, 16073, 17603, 20094, 21468, 22971, 24628,
                      26015, 29728) },
      },
      {
          { AOM_CDF11(10368, 15372, 18442, 19576, 22674, 27128, 28232, 29624,
                      31363, 31368) },
          { AOM_CDF11(9472, 16687, 18957, 20272, 22852, 27082, 27839, 28995,
                      30943, 30948) },
          { AOM_CDF11(8064, 12334, 19197, 20956, 24804, 26553, 27556, 29877,
                      31311, 31320) },
          { AOM_CDF11(8960, 14083, 16058, 19129, 21136, 23635, 24870, 27577,
                      31176, 31187) },
          { AOM_CDF11(9984, 14208, 15589, 17640, 22080, 26660, 27947, 29400,
                      31605, 31611) },
          { AOM_CDF11(9216, 15167, 16263, 17767, 21531, 26689, 27607, 28880,
                      31291, 31296) },
          { AOM_CDF11(8448, 12756, 15781, 17279, 21198, 24057, 26171, 29200,
                      31901, 31913) },
          { AOM_CDF11(9984, 15074, 18244, 19878, 22246, 24436, 25560, 28991,
                      31687, 31700) },
          { AOM_CDF11(10496, 15128, 17012, 18989, 21294, 25011, 25999, 27784,
                      30934, 30941) },
          { AOM_CDF11(2944, 5875, 8846, 11817, 14806, 17795, 20769, 23761,
                      26747, 29739) },
          { AOM_CDF11(7424, 12915, 17544, 19392, 23074, 25635, 26431, 28241,
                      30088, 30095) },
      },
      {
          { AOM_CDF11(11648, 13565, 18996, 19908, 21897, 22852, 26656, 28172,
                      28995, 31283) },
          { AOM_CDF11(10240, 14255, 18109, 19716, 21521, 22859, 24613, 26161,
                      27279, 30392) },
          { AOM_CDF11(6784, 7848, 18820, 19447, 22335, 22733, 25112, 28427,
                      29013, 31550) },
          { AOM_CDF11(11904, 13581, 17695, 19311, 21698, 22562, 24391, 26559,
                      27779, 30567) },
          { AOM_CDF11(10624, 12334, 14643, 16255, 20783, 22767, 24929, 26876,
                      27998, 31470) },
          { AOM_CDF11(12032, 14415, 16715, 18712, 21557, 25332, 27840, 29663,
                      31708, 31715) },
          { AOM_CDF11(9728, 10683, 13955, 14786, 18481, 19492, 26749, 28483,
                      29116, 31958) },
          { AOM_CDF11(8960, 10032, 15755, 16949, 19144, 19744, 22082, 27608,
                      28411, 31838) },
          { AOM_CDF11(14592, 15937, 18518, 19566, 21817, 23102, 24436, 26651,
                      28100, 30993) },
          { AOM_CDF11(8960, 10791, 14718, 16094, 18560, 18570, 22120, 24188,
                      25677, 31280) },
          { AOM_CDF11(11136, 13058, 19006, 20135, 21463, 22159, 24042, 26348,
                      27367, 30064) },
      },
      {
          { AOM_CDF11(12544, 15384, 20327, 21555, 23456, 24144, 25421, 27884,
                      28875, 31188) },
          { AOM_CDF11(10368, 15009, 17631, 18970, 20691, 21850, 22749, 25280,
                      26570, 29530) },
          { AOM_CDF11(9088, 10956, 21554, 22698, 23666, 24052, 25122, 27792,
                      28612, 30825) },
          { AOM_CDF11(11520, 12888, 16374, 19132, 21186, 21843, 22902, 26440,
                      27928, 29946) },
          { AOM_CDF11(9984, 12199, 14625, 17321, 20195, 21574, 23010, 25688,
                      27600, 30988) },
          { AOM_CDF11(10112, 13705, 16847, 19242, 22011, 24064, 26481, 29125,
                      30545, 30555) },
          { AOM_CDF11(9344, 10994, 15018, 16915, 20471, 21334, 24577, 27472,
                      28592, 31578) },
          { AOM_CDF11(12928, 14540, 18022, 19481, 21028, 21825, 22728, 28191,
                      29154, 31683) },
          { AOM_CDF11(10368, 12160, 14900, 17161, 19379, 20521, 21747, 24534,
                      26677, 30318) },
          { AOM_CDF11(8960, 11488, 16197, 18030, 20010, 20018, 21347, 23948,
                      25016, 30536) },
          { AOM_CDF11(7808, 10310, 15420, 18961, 20114, 20772, 21721, 24599,
                      26237, 29160) },
      },
      {
          { AOM_CDF11(9856, 13764, 16995, 19540, 20802, 22302, 23113, 24519,
                      27717, 31604) },
          { AOM_CDF11(8704, 15725, 17309, 20296, 21257, 22573, 23165, 23893,
                      27755, 31170) },
          { AOM_CDF11(7936, 11343, 19355, 21223, 22121, 22978, 23703, 26079,
                      27978, 31507) },
          { AOM_CDF11(11264, 14823, 17314, 20715, 21999, 22982, 23728, 25229,
                      28593, 31508) },
          { AOM_CDF11(8704, 11788, 13666, 16523, 18630, 20579, 21574, 23335,
                      26298, 31264) },
          { AOM_CDF11(9088, 14031, 15766, 18533, 21457, 24078, 24973, 26102,
                      31284, 31288) },
          { AOM_CDF11(7040, 9648, 12140, 14601, 16742, 18070, 21154, 23582,
                      27647, 31763) },
          { AOM_CDF11(10240, 13466, 16837, 19351, 20636, 21620, 22474, 25815,
                      28364, 31976) },
          { AOM_CDF11(11008, 13682, 15127, 18779, 19841, 20792, 21954, 23365,
                      29100, 31748) },
          { AOM_CDF11(7168, 12260, 15037, 17152, 18730, 18736, 19436, 20484,
                      24465, 30868) },
          { AOM_CDF11(6784, 12469, 15422, 19291, 20301, 21344, 21894, 23415,
                      27696, 31042) },
      },
      {
          { AOM_CDF11(10112, 13929, 17880, 18857, 20955, 20963, 21974, 23273,
                      24734, 31352) },
          { AOM_CDF11(8064, 15826, 17929, 19017, 21016, 21024, 21687, 22701,
                      24242, 30645) },
          { AOM_CDF11(6528, 9196, 20118, 21101, 22227, 22231, 22997, 25070,
                      25919, 30923) },
          { AOM_CDF11(9600, 13218, 15898, 17780, 19991, 20000, 21196, 23912,
                      26044, 31139) },
          { AOM_CDF11(8960, 12037, 14178, 15681, 20126, 20143, 21435, 23083,
                      24675, 31466) },
          { AOM_CDF11(2944, 5875, 8846, 11817, 14806, 17795, 20769, 23761,
                      26747, 29739) },
          { AOM_CDF11(9472, 12334, 15469, 16848, 19972, 19984, 22292, 24384,
                      25891, 31676) },
          { AOM_CDF11(8448, 11176, 15497, 16676, 18528, 18535, 19595, 24334,
                      25725, 31723) },
          { AOM_CDF11(8704, 12141, 14313, 15828, 18358, 18368, 19469, 21089,
                      24027, 30700) },
          { AOM_CDF11(7680, 11689, 14556, 15548, 17878, 17887, 18873, 20512,
                      22152, 31004) },
          { AOM_CDF11(6656, 11476, 16600, 18052, 19683, 19689, 20509, 22077,
                      23496, 29504) },
      },
      {
          { AOM_CDF11(9728, 14651, 19394, 20550, 21680, 22479, 23516, 24952,
                      26183, 28538) },
          { AOM_CDF11(8832, 18693, 20913, 21933, 22956, 23831, 24341, 25317,
                      26434, 29028) },
          { AOM_CDF11(5888, 8413, 20542, 21609, 22437, 22864, 23663, 26329,
                      26900, 29828) },
          { AOM_CDF11(9984, 13134, 16328, 18267, 19814, 21461, 22393, 24944,
                      26320, 29653) },
          { AOM_CDF11(8448, 12425, 15474, 17031, 19216, 20889, 23077, 25108,
                      26548, 30108) },
          { AOM_CDF11(9856, 15675, 19169, 20837, 22638, 24556, 25438, 27114,
                      29449, 29456) },
          { AOM_CDF11(6784, 10294, 14542, 15724, 19109, 19972, 24084, 26329,
                      27637, 30433) },
          { AOM_CDF11(8320, 10873, 17095, 18466, 19674, 20129, 21230, 27562,
                      28568, 30858) },
          { AOM_CDF11(9088, 13196, 15898, 17566, 19210, 20354, 21186, 23647,
                      26235, 30548) },
          { AOM_CDF11(6912, 11512, 16390, 17479, 19065, 19071, 19740, 21715,
                      23208, 29132) },
          { AOM_CDF11(6656, 11485, 16060, 17734, 19099, 19814, 21018, 23053,
                      24333, 27260) },
      },
#endif  // CONFIG_SMOOTH_HV
    };
#endif  // CONFIG_KF_CTX

#if CONFIG_LPF_SB
static const aom_cdf_prob default_lpf_reuse_cdf[LPF_REUSE_CONTEXT][CDF_SIZE(
    2)] = { { AOM_CDF2(4259) }, { AOM_CDF2(728) } };

static const aom_cdf_prob default_lpf_delta_cdf[LPF_DELTA_CONTEXT][CDF_SIZE(
    DELTA_RANGE)] = { { AOM_CDF8(100, 688, 2128, 4642, 7895, 11851, 17050) },
                      { AOM_CDF8(100, 1291, 4358, 7425, 10654, 13559, 18563) },
                      { AOM_CDF8(100, 1086, 4982, 9134, 13031, 16991, 23123) },
                      { AOM_CDF8(100, 1068, 3395, 7973, 12512, 17967, 22812) },
                      { AOM_CDF8(100, 442, 2809, 7178, 12535, 17450, 22417) },
                      { AOM_CDF8(100, 561, 2246, 6050, 11103, 16592, 21353) },
                      { AOM_CDF8(100, 345, 2399, 5559, 9682, 13992, 20126) },
                      { AOM_CDF8(100, 337, 1540, 3573, 6438, 10196, 16320) } };

static const aom_cdf_prob
    default_lpf_sign_cdf[LPF_REUSE_CONTEXT][LPF_SIGN_CONTEXT][CDF_SIZE(2)] = {
      { { AOM_CDF2(100) }, { AOM_CDF2(11932) } },
      { { AOM_CDF2(14785) }, { AOM_CDF2(8145) } }
    };
#endif  // CONFIG_LPF_SB

#if CONFIG_EXT_INTRA_MOD
static const aom_cdf_prob default_angle_delta_cdf[DIRECTIONAL_MODES][CDF_SIZE(
    2 * MAX_ANGLE_DELTA + 1)] = {
  { AOM_CDF7(2340, 5327, 7611, 23102, 27196, 30546) },
  { AOM_CDF7(3267, 8071, 11970, 21822, 25619, 30034) },
  { AOM_CDF7(3417, 9937, 12286, 16420, 19941, 30669) },
  { AOM_CDF7(5167, 11735, 15254, 16662, 20697, 28276) },
  { AOM_CDF7(1728, 10973, 14103, 18547, 22684, 27007) },
  { AOM_CDF7(2764, 10700, 12517, 16957, 20590, 30390) },
  { AOM_CDF7(2407, 12749, 16527, 20823, 22781, 29642) },
  { AOM_CDF7(3068, 10132, 12079, 16542, 19943, 30448) }
};
#endif  // CONFIG_EXT_INTRA_MOD

static void init_mode_probs(FRAME_CONTEXT *fc) {
  av1_copy(fc->partition_prob, default_partition_probs);
  av1_copy(fc->intra_inter_prob, default_intra_inter_p);
  av1_copy(fc->comp_inter_prob, default_comp_inter_p);
  av1_copy(fc->palette_y_size_cdf, default_palette_y_size_cdf);
  av1_copy(fc->palette_uv_size_cdf, default_palette_uv_size_cdf);
  av1_copy(fc->palette_y_color_index_cdf, default_palette_y_color_index_cdf);
  av1_copy(fc->palette_uv_color_index_cdf, default_palette_uv_color_index_cdf);
  av1_copy(fc->kf_y_cdf, default_kf_y_mode_cdf);
#if CONFIG_EXT_INTRA_MOD
  av1_copy(fc->angle_delta_cdf, default_angle_delta_cdf);
#endif  // CONFIG_EXT_INTRA_MOD
#if CONFIG_MRC_TX
  av1_copy(fc->mrc_mask_inter_cdf, default_mrc_mask_inter_cdf);
  av1_copy(fc->mrc_mask_intra_cdf, default_mrc_mask_intra_cdf);
#endif  // CONFIG_MRC_TX
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->comp_inter_cdf, default_comp_inter_cdf);
#endif  // CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_COMP_REFS
  av1_copy(fc->comp_ref_type_prob, default_comp_ref_type_p);
  av1_copy(fc->uni_comp_ref_prob, default_uni_comp_ref_p);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->comp_ref_type_cdf, default_comp_ref_type_cdf);
  av1_copy(fc->uni_comp_ref_cdf, default_uni_comp_ref_cdf);
#endif  // CONFIG_NEW_MULTISYMBOL
#endif  // CONFIG_EXT_COMP_REFS
  av1_copy(fc->comp_ref_prob, default_comp_ref_p);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->palette_y_mode_cdf, default_palette_y_mode_cdf);
  av1_copy(fc->palette_uv_mode_cdf, default_palette_uv_mode_cdf);
  av1_copy(fc->comp_ref_cdf, default_comp_ref_cdf);
#endif
#if CONFIG_LV_MAP
  av1_copy(fc->txb_skip, default_txb_skip);
  av1_copy(fc->nz_map, default_nz_map);
  av1_copy(fc->eob_flag, default_eob_flag);
#if !CONFIG_CTX1D
  av1_copy(fc->eob_extra, default_eob_extra);
#endif
  av1_copy(fc->dc_sign, default_dc_sign);
  av1_copy(fc->coeff_base, default_coeff_base);
  av1_copy(fc->coeff_lps, default_coeff_lps);
  av1_copy(fc->coeff_br, default_coeff_br);
#if CONFIG_CTX1D
  av1_copy(fc->eob_mode, default_eob_mode);
  av1_copy(fc->empty_line, default_empty_line);
  av1_copy(fc->hv_eob, default_hv_eob);
#endif  // CONFIG_CTX1D

  av1_init_txb_probs(fc);
#endif
  av1_copy(fc->comp_bwdref_prob, default_comp_bwdref_p);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->comp_bwdref_cdf, default_comp_bwdref_cdf);
#endif
  av1_copy(fc->single_ref_prob, default_single_ref_p);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->single_ref_cdf, default_single_ref_cdf);
#endif
#if CONFIG_COMPOUND_SINGLEREF
  av1_copy(fc->comp_inter_mode_prob, default_comp_inter_mode_p);
#endif  // CONFIG_COMPOUND_SINGLEREF
#if CONFIG_RECT_TX_EXT
  fc->quarter_tx_size_prob = default_quarter_tx_size_prob;
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->quarter_tx_size_cdf, default_quarter_tx_size_cdf);
#endif  // CONFIG_NEW_MULTISYMBOL
#endif
  av1_copy(fc->txfm_partition_prob, default_txfm_partition_probs);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->txfm_partition_cdf, default_txfm_partition_cdf);
#endif
#if CONFIG_JNT_COMP
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->compound_index_cdf, default_compound_idx_cdfs);
#endif  // CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->compound_index_probs, default_compound_idx_probs);
#endif  // CONFIG_JNT_COMP
  av1_copy(fc->newmv_prob, default_newmv_prob);
  av1_copy(fc->zeromv_prob, default_zeromv_prob);
  av1_copy(fc->refmv_prob, default_refmv_prob);
  av1_copy(fc->drl_prob, default_drl_prob);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->newmv_cdf, default_newmv_cdf);
  av1_copy(fc->zeromv_cdf, default_zeromv_cdf);
  av1_copy(fc->refmv_cdf, default_refmv_cdf);
  av1_copy(fc->drl_cdf, default_drl_cdf);
#endif
  av1_copy(fc->motion_mode_prob, default_motion_mode_prob);
  av1_copy(fc->motion_mode_cdf, default_motion_mode_cdf);
  av1_copy(fc->obmc_prob, default_obmc_prob);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->obmc_cdf, default_obmc_cdf);
#endif
  av1_copy(fc->inter_compound_mode_probs, default_inter_compound_mode_probs);
  av1_copy(fc->inter_compound_mode_cdf, default_inter_compound_mode_cdf);
#if CONFIG_COMPOUND_SINGLEREF
  av1_copy(fc->inter_singleref_comp_mode_probs,
           default_inter_singleref_comp_mode_probs);
  av1_copy(fc->inter_singleref_comp_mode_cdf,
           default_inter_singleref_comp_mode_cdf);
#endif  // CONFIG_COMPOUND_SINGLEREF
  av1_copy(fc->compound_type_prob, default_compound_type_probs);
  av1_copy(fc->compound_type_cdf, default_compound_type_cdf);
  av1_copy(fc->interintra_prob, default_interintra_prob);
  av1_copy(fc->wedge_interintra_prob, default_wedge_interintra_prob);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->interintra_cdf, default_interintra_cdf);
  av1_copy(fc->wedge_interintra_cdf, default_wedge_interintra_cdf);
#endif  // CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->interintra_mode_prob, default_interintra_mode_prob);
  av1_copy(fc->interintra_mode_cdf, default_interintra_mode_cdf);
  av1_copy(fc->seg.tree_probs, default_segment_tree_probs);
  av1_copy(fc->seg.pred_probs, default_segment_pred_probs);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->seg.pred_cdf, default_segment_pred_cdf);
#endif
#if CONFIG_FILTER_INTRA
  av1_copy(fc->filter_intra_probs, default_filter_intra_probs);
  av1_copy(fc->filter_intra_mode_cdf, default_filter_intra_mode_cdf);
#endif  // CONFIG_FILTER_INTRA
#if CONFIG_LOOP_RESTORATION
  av1_copy(fc->switchable_restore_cdf, default_switchable_restore_cdf);
#if CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->wiener_restore_cdf, default_wiener_restore_cdf);
  av1_copy(fc->sgrproj_restore_cdf, default_sgrproj_restore_cdf);
#endif  // CONFIG_NEW_MULTISYMBOL
#endif  // CONFIG_LOOP_RESTORATION
  av1_copy(fc->y_mode_cdf, default_if_y_mode_cdf);
  av1_copy(fc->uv_mode_cdf, default_uv_mode_cdf);
  av1_copy(fc->switchable_interp_cdf, default_switchable_interp_cdf);
  av1_copy(fc->partition_cdf, default_partition_cdf);
  av1_copy(fc->intra_ext_tx_cdf, default_intra_ext_tx_cdf);
  av1_copy(fc->inter_ext_tx_cdf, default_inter_ext_tx_cdf);
#if CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_SKIP
  av1_copy(fc->skip_mode_cdfs, default_skip_mode_cdfs);
#endif  // CONFIG_EXT_SKIP
  av1_copy(fc->skip_cdfs, default_skip_cdfs);
  av1_copy(fc->intra_inter_cdf, default_intra_inter_cdf);
#else  // !CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_SKIP
  av1_copy(fc->skip_mode_probs, default_skip_mode_probs);
#endif  // CONFIG_EXT_SKIP
  av1_copy(fc->skip_probs, default_skip_probs);
#endif  // CONFIG_NEW_MULTISYMBOL
  av1_copy(fc->seg.tree_cdf, default_seg_tree_cdf);
#if CONFIG_Q_SEGMENTATION
  for (int i = 0; i < Q_SEGMENT_CDF_COUNT; i++)
    av1_copy(fc->seg.q_seg_cdf[i], default_q_seg_tree_cdf[i]);
#endif
  av1_copy(fc->tx_size_cdf, default_tx_size_cdf);
  av1_copy(fc->delta_q_prob, default_delta_q_probs);
  av1_copy(fc->delta_q_cdf, default_delta_q_cdf);
#if CONFIG_EXT_DELTA_Q
  av1_copy(fc->delta_lf_prob, default_delta_lf_probs);
  av1_copy(fc->delta_lf_cdf, default_delta_lf_cdf);
#if CONFIG_LOOPFILTER_LEVEL
  av1_copy(fc->delta_lf_multi_prob, default_delta_lf_multi_probs);
  av1_copy(fc->delta_lf_multi_cdf, default_delta_lf_multi_cdf);
#endif  // CONFIG_LOOPFILTER_LEVEL
#endif
#if CONFIG_CFL
  av1_copy(fc->cfl_sign_cdf, default_cfl_sign_cdf);
  av1_copy(fc->cfl_alpha_cdf, default_cfl_alpha_cdf);
#endif
#if CONFIG_INTRABC
  av1_copy(fc->intrabc_cdf, default_intrabc_cdf);
#endif
#if CONFIG_LPF_SB
  av1_copy(fc->lpf_reuse_cdf, default_lpf_reuse_cdf);
  av1_copy(fc->lpf_delta_cdf, default_lpf_delta_cdf);
  av1_copy(fc->lpf_sign_cdf, default_lpf_sign_cdf);
#endif  // CONFIG_LPF_SB
}

void av1_adapt_inter_frame_probs(AV1_COMMON *cm) {
  int i, j;
  FRAME_CONTEXT *fc = cm->fc;
  const FRAME_CONTEXT *pre_fc = cm->pre_fc;
  const FRAME_COUNTS *counts = &cm->counts;

  for (i = 0; i < INTRA_INTER_CONTEXTS; i++)
    fc->intra_inter_prob[i] = av1_mode_mv_merge_probs(
        pre_fc->intra_inter_prob[i], counts->intra_inter[i]);

  for (i = 0; i < COMP_INTER_CONTEXTS; i++)
    fc->comp_inter_prob[i] = av1_mode_mv_merge_probs(pre_fc->comp_inter_prob[i],
                                                     counts->comp_inter[i]);

#if CONFIG_EXT_COMP_REFS
  for (i = 0; i < COMP_REF_TYPE_CONTEXTS; i++)
    fc->comp_ref_type_prob[i] = av1_mode_mv_merge_probs(
        pre_fc->comp_ref_type_prob[i], counts->comp_ref_type[i]);

  for (i = 0; i < UNI_COMP_REF_CONTEXTS; i++)
    for (j = 0; j < (UNIDIR_COMP_REFS - 1); j++)
      fc->uni_comp_ref_prob[i][j] = av1_mode_mv_merge_probs(
          pre_fc->uni_comp_ref_prob[i][j], counts->uni_comp_ref[i][j]);
#endif  // CONFIG_EXT_COMP_REFS

  for (i = 0; i < REF_CONTEXTS; i++)
    for (j = 0; j < (FWD_REFS - 1); j++)
      fc->comp_ref_prob[i][j] = mode_mv_merge_probs(pre_fc->comp_ref_prob[i][j],
                                                    counts->comp_ref[i][j]);
  for (i = 0; i < REF_CONTEXTS; i++)
    for (j = 0; j < (BWD_REFS - 1); j++)
      fc->comp_bwdref_prob[i][j] = mode_mv_merge_probs(
          pre_fc->comp_bwdref_prob[i][j], counts->comp_bwdref[i][j]);

  for (i = 0; i < REF_CONTEXTS; i++)
    for (j = 0; j < (SINGLE_REFS - 1); j++)
      fc->single_ref_prob[i][j] = av1_mode_mv_merge_probs(
          pre_fc->single_ref_prob[i][j], counts->single_ref[i][j]);

#if CONFIG_COMPOUND_SINGLEREF
  for (i = 0; i < COMP_INTER_MODE_CONTEXTS; i++)
    fc->comp_inter_mode_prob[i] = av1_mode_mv_merge_probs(
        pre_fc->comp_inter_mode_prob[i], counts->comp_inter_mode[i]);

#endif  // CONFIG_COMPOUND_SINGLEREF

  for (i = 0; i < NEWMV_MODE_CONTEXTS; ++i)
    fc->newmv_prob[i] =
        av1_mode_mv_merge_probs(pre_fc->newmv_prob[i], counts->newmv_mode[i]);
  for (i = 0; i < GLOBALMV_MODE_CONTEXTS; ++i)
    fc->zeromv_prob[i] =
        av1_mode_mv_merge_probs(pre_fc->zeromv_prob[i], counts->zeromv_mode[i]);
  for (i = 0; i < REFMV_MODE_CONTEXTS; ++i)
    fc->refmv_prob[i] =
        av1_mode_mv_merge_probs(pre_fc->refmv_prob[i], counts->refmv_mode[i]);

  for (i = 0; i < DRL_MODE_CONTEXTS; ++i)
    fc->drl_prob[i] =
        av1_mode_mv_merge_probs(pre_fc->drl_prob[i], counts->drl_mode[i]);

  for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
    aom_tree_merge_probs(av1_motion_mode_tree, pre_fc->motion_mode_prob[i],
                         counts->motion_mode[i], fc->motion_mode_prob[i]);
  for (i = BLOCK_8X8; i < BLOCK_SIZES_ALL; ++i)
    fc->obmc_prob[i] =
        av1_mode_mv_merge_probs(pre_fc->obmc_prob[i], counts->obmc[i]);

  for (i = 0; i < INTER_MODE_CONTEXTS; i++)
    aom_tree_merge_probs(
        av1_inter_compound_mode_tree, pre_fc->inter_compound_mode_probs[i],
        counts->inter_compound_mode[i], fc->inter_compound_mode_probs[i]);
#if CONFIG_COMPOUND_SINGLEREF
  for (i = 0; i < INTER_MODE_CONTEXTS; i++)
    aom_tree_merge_probs(av1_inter_singleref_comp_mode_tree,
                         pre_fc->inter_singleref_comp_mode_probs[i],
                         counts->inter_singleref_comp_mode[i],
                         fc->inter_singleref_comp_mode_probs[i]);
#endif  // CONFIG_COMPOUND_SINGLEREF
  if (cm->allow_interintra_compound) {
    for (i = 0; i < BLOCK_SIZE_GROUPS; ++i) {
      if (is_interintra_allowed_bsize_group(i))
        fc->interintra_prob[i] = av1_mode_mv_merge_probs(
            pre_fc->interintra_prob[i], counts->interintra[i]);
    }
    for (i = 0; i < BLOCK_SIZE_GROUPS; i++) {
      aom_tree_merge_probs(
          av1_interintra_mode_tree, pre_fc->interintra_mode_prob[i],
          counts->interintra_mode[i], fc->interintra_mode_prob[i]);
    }
    for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
      if (is_interintra_allowed_bsize(i) && is_interintra_wedge_used(i))
        fc->wedge_interintra_prob[i] = av1_mode_mv_merge_probs(
            pre_fc->wedge_interintra_prob[i], counts->wedge_interintra[i]);
    }
  }

  if (cm->allow_masked_compound) {
    for (i = 0; i < BLOCK_SIZES_ALL; ++i) {
      aom_tree_merge_probs(
          av1_compound_type_tree, pre_fc->compound_type_prob[i],
          counts->compound_interinter[i], fc->compound_type_prob[i]);
    }
  }

#if CONFIG_JNT_COMP
  for (i = 0; i < COMP_INDEX_CONTEXTS; ++i)
    fc->compound_index_probs[i] = av1_mode_mv_merge_probs(
        pre_fc->compound_index_probs[i], counts->compound_index[i]);
#endif  // CONFIG_JNT_COMP
}

void av1_adapt_intra_frame_probs(AV1_COMMON *cm) {
  int i;
  FRAME_CONTEXT *fc = cm->fc;
  const FRAME_CONTEXT *pre_fc = cm->pre_fc;
  const FRAME_COUNTS *counts = &cm->counts;

  if (cm->tx_mode == TX_MODE_SELECT) {
#if CONFIG_RECT_TX_EXT
    fc->quarter_tx_size_prob = av1_mode_mv_merge_probs(
        pre_fc->quarter_tx_size_prob, counts->quarter_tx_size);
#endif
  }

  if (cm->tx_mode == TX_MODE_SELECT) {
    for (i = 0; i < TXFM_PARTITION_CONTEXTS; ++i)
      fc->txfm_partition_prob[i] = av1_mode_mv_merge_probs(
          pre_fc->txfm_partition_prob[i], counts->txfm_partition[i]);
  }

#if !CONFIG_NEW_MULTISYMBOL
#if CONFIG_EXT_SKIP
  for (i = 0; i < SKIP_MODE_CONTEXTS; ++i)
    fc->skip_mode_probs[i] = av1_mode_mv_merge_probs(pre_fc->skip_mode_probs[i],
                                                     counts->skip_mode[i]);
#endif  // CONFIG_EXT_SKIP
  for (i = 0; i < SKIP_CONTEXTS; ++i)
    fc->skip_probs[i] =
        av1_mode_mv_merge_probs(pre_fc->skip_probs[i], counts->skip[i]);
#endif  // !CONFIG_NEW_MULTISYMBOL

  if (cm->seg.temporal_update) {
    for (i = 0; i < PREDICTION_PROBS; i++)
      fc->seg.pred_probs[i] = av1_mode_mv_merge_probs(pre_fc->seg.pred_probs[i],
                                                      counts->seg.pred[i]);

    aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
                         counts->seg.tree_mispred, fc->seg.tree_probs);
  } else {
    aom_tree_merge_probs(av1_segment_tree, pre_fc->seg.tree_probs,
                         counts->seg.tree_total, fc->seg.tree_probs);
  }

#if CONFIG_EXT_PARTITION_TYPES
  for (i = 0; i < PARTITION_PLOFFSET; ++i)
    aom_tree_merge_probs(av1_partition_tree, pre_fc->partition_prob[i],
                         counts->partition[i], fc->partition_prob[i]);
  for (; i < PARTITION_CONTEXTS_PRIMARY; ++i)
    aom_tree_merge_probs(av1_ext_partition_tree, pre_fc->partition_prob[i],
                         counts->partition[i], fc->partition_prob[i]);
#else
  for (i = 0; i < PARTITION_CONTEXTS_PRIMARY; ++i) {
    aom_tree_merge_probs(av1_partition_tree, pre_fc->partition_prob[i],
                         counts->partition[i], fc->partition_prob[i]);
  }
#endif  // CONFIG_EXT_PARTITION_TYPES
#if CONFIG_UNPOISON_PARTITION_CTX
  for (i = PARTITION_CONTEXTS_PRIMARY;
       i < PARTITION_CONTEXTS_PRIMARY + PARTITION_BLOCK_SIZES; ++i) {
    unsigned int ct[2] = { counts->partition[i][PARTITION_VERT],
                           counts->partition[i][PARTITION_SPLIT] };
    assert(counts->partition[i][PARTITION_NONE] == 0);
    assert(counts->partition[i][PARTITION_HORZ] == 0);
    assert(fc->partition_prob[i][PARTITION_NONE] == 0);
    assert(fc->partition_prob[i][PARTITION_HORZ] == 0);
    fc->partition_prob[i][PARTITION_VERT] =
        av1_mode_mv_merge_probs(pre_fc->partition_prob[i][PARTITION_VERT], ct);
  }
  for (i = PARTITION_CONTEXTS_PRIMARY + PARTITION_BLOCK_SIZES;
       i < PARTITION_CONTEXTS_PRIMARY + 2 * PARTITION_BLOCK_SIZES; ++i) {
    unsigned int ct[2] = { counts->partition[i][PARTITION_HORZ],
                           counts->partition[i][PARTITION_SPLIT] };
    assert(counts->partition[i][PARTITION_NONE] == 0);
    assert(counts->partition[i][PARTITION_VERT] == 0);
    assert(fc->partition_prob[i][PARTITION_NONE] == 0);
    assert(fc->partition_prob[i][PARTITION_VERT] == 0);
    fc->partition_prob[i][PARTITION_HORZ] =
        av1_mode_mv_merge_probs(pre_fc->partition_prob[i][PARTITION_HORZ], ct);
  }
#endif
  for (i = 0; i < DELTA_Q_PROBS; ++i)
    fc->delta_q_prob[i] =
        mode_mv_merge_probs(pre_fc->delta_q_prob[i], counts->delta_q[i]);
#if CONFIG_EXT_DELTA_Q
#if CONFIG_LOOPFILTER_LEVEL
  for (i = 0; i < FRAME_LF_COUNT; ++i)
    for (int k = 0; k < DELTA_LF_PROBS; ++k)
      fc->delta_lf_multi_prob[i][k] = mode_mv_merge_probs(
          pre_fc->delta_lf_multi_prob[i][k], counts->delta_lf_multi[i][k]);
#endif  // CONFIG_LOOPFILTER_LEVEL
  for (i = 0; i < DELTA_LF_PROBS; ++i)
    fc->delta_lf_prob[i] =
        mode_mv_merge_probs(pre_fc->delta_lf_prob[i], counts->delta_lf[i]);
#endif  // CONFIG_EXT_DELTA_Q
#if CONFIG_FILTER_INTRA
  for (i = 0; i < PLANE_TYPES; ++i) {
    fc->filter_intra_probs[i] = av1_mode_mv_merge_probs(
        pre_fc->filter_intra_probs[i], counts->filter_intra[i]);
  }
#endif  // CONFIG_FILTER_INTRA
}

static void set_default_lf_deltas(struct loopfilter *lf) {
  lf->mode_ref_delta_enabled = 1;
  lf->mode_ref_delta_update = 1;

  lf->ref_deltas[INTRA_FRAME] = 1;
  lf->ref_deltas[LAST_FRAME] = 0;
  lf->ref_deltas[LAST2_FRAME] = lf->ref_deltas[LAST_FRAME];
  lf->ref_deltas[LAST3_FRAME] = lf->ref_deltas[LAST_FRAME];
  lf->ref_deltas[BWDREF_FRAME] = lf->ref_deltas[LAST_FRAME];
  lf->ref_deltas[GOLDEN_FRAME] = -1;
  lf->ref_deltas[ALTREF2_FRAME] = -1;
  lf->ref_deltas[ALTREF_FRAME] = -1;

  lf->mode_deltas[0] = 0;
  lf->mode_deltas[1] = 0;

  av1_copy(lf->last_ref_deltas, lf->ref_deltas);
  av1_copy(lf->last_mode_deltas, lf->mode_deltas);
}

void av1_setup_past_independence(AV1_COMMON *cm) {
  // Reset the segment feature data to the default stats:
  // Features disabled, 0, with delta coding (Default state).
  struct loopfilter *const lf = &cm->lf;

  int i;
  av1_clearall_segfeatures(&cm->seg);

  if (cm->last_frame_seg_map && !cm->frame_parallel_decode)
    memset(cm->last_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));

  if (cm->current_frame_seg_map)
    memset(cm->current_frame_seg_map, 0, (cm->mi_rows * cm->mi_cols));

  // Reset the mode ref deltas for loop filter
  av1_zero(lf->last_ref_deltas);
  av1_zero(lf->last_mode_deltas);
  set_default_lf_deltas(lf);

  // To force update of the sharpness
  lf->last_sharpness_level = -1;

  av1_default_coef_probs(cm);
  init_mode_probs(cm->fc);
  av1_init_mv_probs(cm);
#if CONFIG_LV_MAP
  av1_init_lv_map(cm);
#endif
#if CONFIG_ADAPT_SCAN
  av1_init_scan_order(cm);
#endif
  av1_convolve_init(cm);
  cm->fc->initialized = 1;

#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
  if (cm->frame_type == KEY_FRAME) {
    // Reset all frame contexts, as all reference frames will be lost.
    for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
  }
#else
  if (cm->frame_type == KEY_FRAME || cm->error_resilient_mode ||
      cm->reset_frame_context == RESET_FRAME_CONTEXT_ALL) {
    // Reset all frame contexts.
    for (i = 0; i < FRAME_CONTEXTS; ++i) cm->frame_contexts[i] = *cm->fc;
  } else if (cm->reset_frame_context == RESET_FRAME_CONTEXT_CURRENT) {
#if CONFIG_NO_FRAME_CONTEXT_SIGNALING
    // Reset the frame context of the first specified ref frame.
    if (cm->frame_refs[0].idx >= 0) {
      cm->frame_contexts[cm->frame_refs[0].idx] = *cm->fc;
    }
#else
    // Reset only the frame context specified in the frame header.
    cm->frame_contexts[cm->frame_context_idx] = *cm->fc;
#endif  // CONFIG_NO_FRAME_CONTEXT_SIGNALING
  }
#endif  // CONFIG_NO_FRAME_CONTEXT_SIGNALING

  // prev_mip will only be allocated in encoder.
  if (frame_is_intra_only(cm) && cm->prev_mip && !cm->frame_parallel_decode)
    memset(cm->prev_mip, 0,
           cm->mi_stride * (cm->mi_rows + 1) * sizeof(*cm->prev_mip));
#if !CONFIG_NO_FRAME_CONTEXT_SIGNALING
  cm->frame_context_idx = 0;
#endif  // !CONFIG_NO_FRAME_CONTEXT_SIGNALING
}
