shithub: libvpx

ref: f93d316e0c7121aca5857f3d6e1530dcd82e9d7f
dir: /vp8/common/context.c/

View raw version
/*
 *  Copyright (c) 2010 The WebM project authors. All Rights Reserved.
 *
 *  Use of this source code is governed by a BSD-style license
 *  that can be found in the LICENSE file in the root of the source
 *  tree. An additional intellectual property rights grant can be found
 *  in the file PATENTS.  All contributing project authors may
 *  be found in the AUTHORS file in the root of the source tree.
 */


#include "entropy.h"

/* *** GENERATED FILE: DO NOT EDIT *** */

#if 0
int Contexts[vp8_coef_counter_dimen];

const int default_contexts[vp8_coef_counter_dimen] = {
  {
    // Block Type ( 0 )
    {
      // Coeff Band ( 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},
    },
    {
      // Coeff Band ( 1 )
      {30190, 26544, 225,  24,   4,   0,   0,   0,   0,   0,   0, 4171593},
      {26846, 25157, 1241, 130,  26,   6,   1,   0,   0,   0,   0, 149987},
      {10484, 9538, 1006, 160,  36,  18,   0,   0,   0,   0,   0, 15104},
    },
    {
      // Coeff Band ( 2 )
      {25842, 40456, 1126,  83,  11,   2,   0,   0,   0,   0,   0,   0},
      {9338, 8010, 512,  73,   7,   3,   2,   0,   0,   0,   0, 43294},
      {1047, 751, 149,  31,  13,   6,   1,   0,   0,   0,   0, 879},
    },
    {
      // Coeff Band ( 3 )
      {26136, 9826, 252,  13,   0,   0,   0,   0,   0,   0,   0,   0},
      {8134, 5574, 191,  14,   2,   0,   0,   0,   0,   0,   0, 35302},
      { 605, 677, 116,   9,   1,   0,   0,   0,   0,   0,   0, 611},
    },
    {
      // Coeff Band ( 4 )
      {10263, 15463, 283,  17,   0,   0,   0,   0,   0,   0,   0,   0},
      {2773, 2191, 128,   9,   2,   2,   0,   0,   0,   0,   0, 10073},
      { 134, 125,  32,   4,   0,   2,   0,   0,   0,   0,   0,  50},
    },
    {
      // Coeff Band ( 5 )
      {10483, 2663,  23,   1,   0,   0,   0,   0,   0,   0,   0,   0},
      {2137, 1251,  27,   1,   1,   0,   0,   0,   0,   0,   0, 14362},
      { 116, 156,  14,   2,   1,   0,   0,   0,   0,   0,   0, 190},
    },
    {
      // Coeff Band ( 6 )
      {40977, 27614, 412,  28,   0,   0,   0,   0,   0,   0,   0,   0},
      {6113, 5213, 261,  22,   3,   0,   0,   0,   0,   0,   0, 26164},
      { 382, 312,  50,  14,   2,   0,   0,   0,   0,   0,   0, 345},
    },
    {
      // Coeff Band ( 7 )
      {   0,  26,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      {   0,  13,   0,   0,   0,   0,   0,   0,   0,   0,   0, 319},
      {   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0,   8},
    },
  },
  {
    // Block Type ( 1 )
    {
      // Coeff Band ( 0 )
      {3268, 19382, 1043, 250,  93,  82,  49,  26,  17,   8,  25, 82289},
      {8758, 32110, 5436, 1832, 827, 668, 420, 153,  24,   0,   3, 52914},
      {9337, 23725, 8487, 3954, 2107, 1836, 1069, 399,  59,   0,   0, 18620},
    },
    {
      // Coeff Band ( 1 )
      {12419, 8420, 452,  62,   9,   1,   0,   0,   0,   0,   0,   0},
      {11715, 8705, 693,  92,  15,   7,   2,   0,   0,   0,   0, 53988},
      {7603, 8585, 2306, 778, 270, 145,  39,   5,   0,   0,   0, 9136},
    },
    {
      // Coeff Band ( 2 )
      {15938, 14335, 1207, 184,  55,  13,   4,   1,   0,   0,   0,   0},
      {7415, 6829, 1138, 244,  71,  26,   7,   0,   0,   0,   0, 9980},
      {1580, 1824, 655, 241,  89,  46,  10,   2,   0,   0,   0, 429},
    },
    {
      // Coeff Band ( 3 )
      {19453, 5260, 201,  19,   0,   0,   0,   0,   0,   0,   0,   0},
      {9173, 3758, 213,  22,   1,   1,   0,   0,   0,   0,   0, 9820},
      {1689, 1277, 276,  51,  17,   4,   0,   0,   0,   0,   0, 679},
    },
    {
      // Coeff Band ( 4 )
      {12076, 10667, 620,  85,  19,   9,   5,   0,   0,   0,   0,   0},
      {4665, 3625, 423,  55,  19,   9,   0,   0,   0,   0,   0, 5127},
      { 415, 440, 143,  34,  20,   7,   2,   0,   0,   0,   0, 101},
    },
    {
      // Coeff Band ( 5 )
      {12183, 4846, 115,  11,   1,   0,   0,   0,   0,   0,   0,   0},
      {4226, 3149, 177,  21,   2,   0,   0,   0,   0,   0,   0, 7157},
      { 375, 621, 189,  51,  11,   4,   1,   0,   0,   0,   0, 198},
    },
    {
      // Coeff Band ( 6 )
      {61658, 37743, 1203,  94,  10,   3,   0,   0,   0,   0,   0,   0},
      {15514, 11563, 903, 111,  14,   5,   0,   0,   0,   0,   0, 25195},
      { 929, 1077, 291,  78,  14,   7,   1,   0,   0,   0,   0, 507},
    },
    {
      // Coeff Band ( 7 )
      {   0, 990,  15,   3,   0,   0,   0,   0,   0,   0,   0,   0},
      {   0, 412,  13,   0,   0,   0,   0,   0,   0,   0,   0, 1641},
      {   0,  18,   7,   1,   0,   0,   0,   0,   0,   0,   0,  30},
    },
  },
  {
    // Block Type ( 2 )
    {
      // Coeff Band ( 0 )
      { 953, 24519, 628, 120,  28,  12,   4,   0,   0,   0,   0, 2248798},
      {1525, 25654, 2647, 617, 239, 143,  42,   5,   0,   0,   0, 66837},
      {1180, 11011, 3001, 1237, 532, 448, 239,  54,   5,   0,   0, 7122},
    },
    {
      // Coeff Band ( 1 )
      {1356, 2220,  67,  10,   4,   1,   0,   0,   0,   0,   0,   0},
      {1450, 2544, 102,  18,   4,   3,   0,   0,   0,   0,   0, 57063},
      {1182, 2110, 470, 130,  41,  21,   0,   0,   0,   0,   0, 6047},
    },
    {
      // Coeff Band ( 2 )
      { 370, 3378, 200,  30,   5,   4,   1,   0,   0,   0,   0,   0},
      { 293, 1006, 131,  29,  11,   0,   0,   0,   0,   0,   0, 5404},
      { 114, 387,  98,  23,   4,   8,   1,   0,   0,   0,   0, 236},
    },
    {
      // Coeff Band ( 3 )
      { 579, 194,   4,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      { 395, 213,   5,   1,   0,   0,   0,   0,   0,   0,   0, 4157},
      { 119, 122,   4,   0,   0,   0,   0,   0,   0,   0,   0, 300},
    },
    {
      // Coeff Band ( 4 )
      {  38, 557,  19,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      {  21, 114,  12,   1,   0,   0,   0,   0,   0,   0,   0, 427},
      {   0,   5,   0,   0,   0,   0,   0,   0,   0,   0,   0,   7},
    },
    {
      // Coeff Band ( 5 )
      {  52,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      {  18,   6,   0,   0,   0,   0,   0,   0,   0,   0,   0, 652},
      {   1,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,  30},
    },
    {
      // Coeff Band ( 6 )
      { 640, 569,  10,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      {  25,  77,   2,   0,   0,   0,   0,   0,   0,   0,   0, 517},
      {   4,   7,   0,   0,   0,   0,   0,   0,   0,   0,   0,   3},
    },
    {
      // Coeff Band ( 7 )
      {   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},
    },
  },
  {
    // Block Type ( 3 )
    {
      // Coeff Band ( 0 )
      {2506, 20161, 2707, 767, 261, 178, 107,  30,  14,   3,   0, 100694},
      {8806, 36478, 8817, 3268, 1280, 850, 401, 114,  42,   0,   0, 58572},
      {11003, 27214, 11798, 5716, 2482, 2072, 1048, 175,  32,   0,   0, 19284},
    },
    {
      // Coeff Band ( 1 )
      {9738, 11313, 959, 205,  70,  18,  11,   1,   0,   0,   0,   0},
      {12628, 15085, 1507, 273,  52,  19,   9,   0,   0,   0,   0, 54280},
      {10701, 15846, 5561, 1926, 813, 570, 249,  36,   0,   0,   0, 6460},
    },
    {
      // Coeff Band ( 2 )
      {6781, 22539, 2784, 634, 182, 123,  20,   4,   0,   0,   0,   0},
      {6263, 11544, 2649, 790, 259, 168,  27,   5,   0,   0,   0, 20539},
      {3109, 4075, 2031, 896, 457, 386, 158,  29,   0,   0,   0, 1138},
    },
    {
      // Coeff Band ( 3 )
      {11515, 4079, 465,  73,   5,  14,   2,   0,   0,   0,   0,   0},
      {9361, 5834, 650,  96,  24,   8,   4,   0,   0,   0,   0, 22181},
      {4343, 3974, 1360, 415, 132,  96,  14,   1,   0,   0,   0, 1267},
    },
    {
      // Coeff Band ( 4 )
      {4787, 9297, 823, 168,  44,  12,   4,   0,   0,   0,   0,   0},
      {3619, 4472, 719, 198,  60,  31,   3,   0,   0,   0,   0, 8401},
      {1157, 1175, 483, 182,  88,  31,   8,   0,   0,   0,   0, 268},
    },
    {
      // Coeff Band ( 5 )
      {8299, 1226,  32,   5,   1,   0,   0,   0,   0,   0,   0,   0},
      {3502, 1568,  57,   4,   1,   1,   0,   0,   0,   0,   0, 9811},
      {1055, 1070, 166,  29,   6,   1,   0,   0,   0,   0,   0, 527},
    },
    {
      // Coeff Band ( 6 )
      {27414, 27927, 1989, 347,  69,  26,   0,   0,   0,   0,   0,   0},
      {5876, 10074, 1574, 341,  91,  24,   4,   0,   0,   0,   0, 21954},
      {1571, 2171, 778, 324, 124,  65,  16,   0,   0,   0,   0, 979},
    },
    {
      // Coeff Band ( 7 )
      {   0,  29,   0,   0,   0,   0,   0,   0,   0,   0,   0,   0},
      {   0,  23,   0,   0,   0,   0,   0,   0,   0,   0,   0, 459},
      {   0,   1,   0,   0,   0,   0,   0,   0,   0,   0,   0,  13},
    },
  },
};

// Update probabilities for the nodes in the token entropy tree.
const vp8_prob tree_update_probs[vp8_coef_tree_dimen] = {
  {
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
      {249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
      {234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255, },
      {250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255, },
      {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
  },
  {
    {
      {217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255, },
      {234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255, },
    },
    {
      {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
  },
  {
    {
      {186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255, },
      {234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255, },
      {251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255, },
    },
    {
      {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
  },
  {
    {
      {248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255, },
      {248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
      {248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
      {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
    {
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
      {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
    },
  },
};
#endif