/*
 * 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
    };

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

#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 },
              { 0 },
              { 0 },
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
          },
          {
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
              { 0 },
          },
      },
      {
          {
              { 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) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { 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) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { 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) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { 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) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { AOM_CDF7(1280, 5216, 6938, 8660, 10167, 15817) },
              { 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) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { 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) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { 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) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { 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) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { AOM_CDF5(1280, 5216, 6938, 13396) },
              { 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) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { 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) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { 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) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { 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) },
              { AOM_CDF2(1280) },
              { AOM_CDF2(1280) },
              { 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_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
    };
#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
}
