tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

vp8data.h (25477B)


      1 /*
      2 * Copyright (C) 2010 David Conrad
      3 * Copyright (C) 2010 Ronald S. Bultje
      4 *
      5 * This file is part of FFmpeg.
      6 *
      7 * FFmpeg is free software; you can redistribute it and/or
      8 * modify it under the terms of the GNU Lesser General Public
      9 * License as published by the Free Software Foundation; either
     10 * version 2.1 of the License, or (at your option) any later version.
     11 *
     12 * FFmpeg is distributed in the hope that it will be useful,
     13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
     14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     15 * Lesser General Public License for more details.
     16 *
     17 * You should have received a copy of the GNU Lesser General Public
     18 * License along with FFmpeg; if not, write to the Free Software
     19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
     20 */
     21 
     22 /**
     23 * @file
     24 * VP8 compatible video decoder
     25 */
     26 
     27 #ifndef AVCODEC_VP8DATA_H
     28 #define AVCODEC_VP8DATA_H
     29 
     30 #include "vp8.h"
     31 #include "h264pred.h"
     32 
     33 static const uint8_t vp7_pred4x4_mode[] = {
     34    [DC_PRED8x8]    = DC_PRED,
     35    [VERT_PRED8x8]  = TM_VP8_PRED,
     36    [HOR_PRED8x8]   = TM_VP8_PRED,
     37    [PLANE_PRED8x8] = TM_VP8_PRED,
     38 };
     39 
     40 static const uint8_t vp8_pred4x4_mode[] = {
     41    [DC_PRED8x8]    = DC_PRED,
     42    [VERT_PRED8x8]  = VERT_PRED,
     43    [HOR_PRED8x8]   = HOR_PRED,
     44    [PLANE_PRED8x8] = TM_VP8_PRED,
     45 };
     46 
     47 static const int8_t vp8_pred16x16_tree_intra[4][2] = {
     48    {   -MODE_I4x4,              1 }, // '0'
     49    {            2,              3 },
     50    {  -DC_PRED8x8,  -VERT_PRED8x8 }, // '100', '101'
     51    { -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
     52 };
     53 
     54 static const int8_t vp8_pred16x16_tree_inter[4][2] = {
     55    {    -DC_PRED8x8,            1 }, // '0'
     56    {              2,            3 },
     57    {  -VERT_PRED8x8, -HOR_PRED8x8 }, // '100', '101'
     58    { -PLANE_PRED8x8,   -MODE_I4x4 }, // '110', '111'
     59 };
     60 
     61 typedef struct VP7MVPred {
     62    int8_t yoffset;
     63    int8_t xoffset;
     64    uint8_t subblock;
     65    uint8_t score;
     66 } VP7MVPred;
     67 
     68 #define VP7_MV_PRED_COUNT 12
     69 static const VP7MVPred vp7_mv_pred[VP7_MV_PRED_COUNT] = {
     70    { -1,  0, 12, 8 },
     71    {  0, -1,  3, 8 },
     72    { -1, -1, 15, 2 },
     73    { -1,  1, 12, 2 },
     74    { -2,  0, 12, 2 },
     75    {  0, -2,  3, 2 },
     76    { -1, -2, 15, 1 },
     77    { -2, -1, 15, 1 },
     78    { -2,  1, 12, 1 },
     79    { -1,  2, 12, 1 },
     80    { -2, -2, 15, 1 },
     81    { -2,  2, 12, 1 },
     82 };
     83 
     84 static const int vp7_mode_contexts[31][4] = {
     85    {   3,   3,   1, 246 },
     86    {   7,  89,  66, 239 },
     87    {  10,  90,  78, 238 },
     88    {  14, 118,  95, 241 },
     89    {  14, 123, 106, 238 },
     90    {  20, 140, 109, 240 },
     91    {  13, 155, 103, 238 },
     92    {  21, 158,  99, 240 },
     93    {  27,  82, 108, 232 },
     94    {  19,  99, 123, 217 },
     95    {  45, 139, 148, 236 },
     96    {  50, 117, 144, 235 },
     97    {  57, 128, 164, 238 },
     98    {  69, 139, 171, 239 },
     99    {  74, 154, 179, 238 },
    100    { 112, 165, 186, 242 },
    101    {  98, 143, 185, 245 },
    102    { 105, 153, 190, 250 },
    103    { 124, 167, 192, 245 },
    104    { 131, 186, 203, 246 },
    105    {  59, 184, 222, 224 },
    106    { 148, 215, 214, 213 },
    107    { 137, 211, 210, 219 },
    108    { 190, 227, 128, 228 },
    109    { 183, 228, 128, 228 },
    110    { 194, 234, 128, 228 },
    111    { 202, 236, 128, 228 },
    112    { 205, 240, 128, 228 },
    113    { 205, 244, 128, 228 },
    114    { 225, 246, 128, 228 },
    115    { 233, 251, 128, 228 },
    116 };
    117 
    118 static const int vp8_mode_contexts[6][4] = {
    119    {   7,   1,   1, 143 },
    120    {  14,  18,  14, 107 },
    121    { 135,  64,  57,  68 },
    122    {  60,  56, 128,  65 },
    123    { 159, 134, 128,  34 },
    124    { 234, 188, 128,  28 },
    125 };
    126 
    127 static const uint8_t vp8_mbsplits[5][16] = {
    128    { 0, 0, 0, 0, 0, 0, 0, 0, 1, 1,  1,  1,  1,  1,  1,  1 },
    129    { 0, 0, 1, 1, 0, 0, 1, 1, 0, 0,  1,  1,  0,  0,  1,  1 },
    130    { 0, 0, 1, 1, 0, 0, 1, 1, 2, 2,  3,  3,  2,  2,  3,  3 },
    131    { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 },
    132    { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,  0,  0,  0,  0,  0,  0 }
    133 };
    134 
    135 static const uint8_t vp8_mbfirstidx[4][16] = {
    136    { 0, 8 },
    137    { 0, 2 },
    138    { 0, 2, 8, 10 },
    139    { 0, 1, 2,  3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
    140 };
    141 
    142 static const uint8_t vp8_mbsplit_count[4] = {
    143    2, 2, 4, 16
    144 };
    145 static const uint8_t vp8_mbsplit_prob[3] = {
    146    110, 111, 150
    147 };
    148 
    149 static const uint8_t vp7_submv_prob[3] = {
    150    180, 162, 25
    151 };
    152 
    153 static const uint8_t vp8_submv_prob[5][3] = {
    154    { 147, 136,  18 },
    155    { 106, 145,   1 },
    156    { 179, 121,   1 },
    157    { 223,   1,  34 },
    158    { 208,   1,   1 }
    159 };
    160 
    161 static const uint8_t vp8_pred16x16_prob_intra[4] = {
    162    145, 156, 163, 128
    163 };
    164 static const uint8_t vp8_pred16x16_prob_inter[4] = {
    165    112,  86, 140,  37
    166 };
    167 
    168 static const int8_t vp8_pred4x4_tree[9][2] = {
    169    {              -DC_PRED,                1 }, // '0'
    170    {          -TM_VP8_PRED,                2 }, // '10'
    171    {            -VERT_PRED,                3 }, // '110'
    172    {                     4,                6 },
    173    {             -HOR_PRED,                5 }, // '11100'
    174    { -DIAG_DOWN_RIGHT_PRED, -VERT_RIGHT_PRED }, // '111010', '111011'
    175    {  -DIAG_DOWN_LEFT_PRED,                7 }, // '11110'
    176    {       -VERT_LEFT_PRED,                8 }, // '111110'
    177    {        -HOR_DOWN_PRED,     -HOR_UP_PRED }, // '1111110', '1111111'
    178 };
    179 
    180 static const int8_t vp8_pred8x8c_tree[3][2] = {
    181    {   -DC_PRED8x8,              1 },  // '0'
    182    { -VERT_PRED8x8,              2 },  // '10
    183    {  -HOR_PRED8x8, -PLANE_PRED8x8 },  // '110', '111'
    184 };
    185 
    186 static const uint8_t vp8_pred8x8c_prob_intra[3] = {
    187    142, 114, 183
    188 };
    189 static const uint8_t vp8_pred8x8c_prob_inter[3] = {
    190    162, 101, 204
    191 };
    192 static const uint8_t vp8_pred4x4_prob_inter[9] = {
    193    120, 90, 79, 133, 87, 85, 80, 111, 151
    194 };
    195 
    196 static const uint8_t vp8_pred4x4_prob_intra[10][10][9] = {
    197    {
    198        {  39,  53, 200,  87,  26,  21,  43, 232, 171 },
    199        {  56,  34,  51, 104, 114, 102,  29,  93,  77 },
    200        {  88,  88, 147, 150,  42,  46,  45, 196, 205 },
    201        { 107,  54,  32,  26,  51,   1,  81,  43,  31 },
    202        {  39,  28,  85, 171,  58, 165,  90,  98,  64 },
    203        {  34,  22, 116, 206,  23,  34,  43, 166,  73 },
    204        {  34,  19,  21, 102, 132, 188,  16,  76, 124 },
    205        {  68,  25, 106,  22,  64, 171,  36, 225, 114 },
    206        {  62,  18,  78,  95,  85,  57,  50,  48,  51 },
    207        {  43,  97, 183, 117,  85,  38,  35, 179,  61 },
    208    },
    209    {
    210        { 112, 113,  77,  85, 179, 255,  38, 120, 114 },
    211        {  40,  42,   1, 196, 245, 209,  10,  25, 109 },
    212        { 193, 101,  35, 159, 215, 111,  89,  46, 111 },
    213        { 100,  80,   8,  43, 154,   1,  51,  26,  71 },
    214        {  88,  43,  29, 140, 166, 213,  37,  43, 154 },
    215        {  61,  63,  30, 155,  67,  45,  68,   1, 209 },
    216        {  41,  40,   5, 102, 211, 183,   4,   1, 221 },
    217        { 142,  78,  78,  16, 255, 128,  34, 197, 171 },
    218        {  51,  50,  17, 168, 209, 192,  23,  25,  82 },
    219        {  60, 148,  31, 172, 219, 228,  21,  18, 111 },
    220    },
    221    {
    222        { 175,  69, 143,  80,  85,  82,  72, 155, 103 },
    223        {  56,  58,  10, 171, 218, 189,  17,  13, 152 },
    224        { 231, 120,  48,  89, 115, 113, 120, 152, 112 },
    225        { 144,  71,  10,  38, 171, 213, 144,  34,  26 },
    226        { 114,  26,  17, 163,  44, 195,  21,  10, 173 },
    227        { 121,  24,  80, 195,  26,  62,  44,  64,  85 },
    228        {  63,  20,   8, 114, 114, 208,  12,   9, 226 },
    229        { 170,  46,  55,  19, 136, 160,  33, 206,  71 },
    230        {  81,  40,  11,  96, 182,  84,  29,  16,  36 },
    231        { 152, 179,  64, 126, 170, 118,  46,  70,  95 },
    232    },
    233    {
    234        {  75,  79, 123,  47,  51, 128,  81, 171,   1 },
    235        {  57,  17,   5,  71, 102,  57,  53,  41,  49 },
    236        { 125,  98,  42,  88, 104,  85, 117, 175,  82 },
    237        { 115,  21,   2,  10, 102, 255, 166,  23,   6 },
    238        {  38,  33,  13, 121,  57,  73,  26,   1,  85 },
    239        {  41,  10,  67, 138,  77, 110,  90,  47, 114 },
    240        {  57,  18,  10, 102, 102, 213,  34,  20,  43 },
    241        { 101,  29,  16,  10,  85, 128, 101, 196,  26 },
    242        { 117,  20,  15,  36, 163, 128,  68,   1,  26 },
    243        {  95,  84,  53,  89, 128, 100, 113, 101,  45 },
    244    },
    245    {
    246        {  63,  59,  90, 180,  59, 166,  93,  73, 154 },
    247        {  40,  40,  21, 116, 143, 209,  34,  39, 175 },
    248        { 138,  31,  36, 171,  27, 166,  38,  44, 229 },
    249        {  57,  46,  22,  24, 128,   1,  54,  17,  37 },
    250        {  47,  15,  16, 183,  34, 223,  49,  45, 183 },
    251        {  46,  17,  33, 183,   6,  98,  15,  32, 183 },
    252        {  40,   3,   9, 115,  51, 192,  18,   6, 223 },
    253        {  65,  32,  73, 115,  28, 128,  23, 128, 205 },
    254        {  87,  37,   9, 115,  59,  77,  64,  21,  47 },
    255        {  67,  87,  58, 169,  82, 115,  26,  59, 179 },
    256    },
    257    {
    258        {  54,  57, 112, 184,   5,  41,  38, 166, 213 },
    259        {  30,  34,  26, 133, 152, 116,  10,  32, 134 },
    260        { 104,  55,  44, 218,   9,  54,  53, 130, 226 },
    261        {  75,  32,  12,  51, 192, 255, 160,  43,  51 },
    262        {  39,  19,  53, 221,  26, 114,  32,  73, 255 },
    263        {  31,   9,  65, 234,   2,  15,   1, 118,  73 },
    264        {  56,  21,  23, 111,  59, 205,  45,  37, 192 },
    265        {  88,  31,  35,  67, 102,  85,  55, 186,  85 },
    266        {  55,  38,  70, 124,  73, 102,   1,  34,  98 },
    267        {  64,  90,  70, 205,  40,  41,  23,  26,  57 },
    268    },
    269    {
    270        {  86,  40,  64, 135, 148, 224,  45, 183, 128 },
    271        {  22,  26,  17, 131, 240, 154,  14,   1, 209 },
    272        { 164,  50,  31, 137, 154, 133,  25,  35, 218 },
    273        {  83,  12,  13,  54, 192, 255,  68,  47,  28 },
    274        {  45,  16,  21,  91,  64, 222,   7,   1, 197 },
    275        {  56,  21,  39, 155,  60, 138,  23, 102, 213 },
    276        {  18,  11,   7,  63, 144, 171,   4,   4, 246 },
    277        {  85,  26,  85,  85, 128, 128,  32, 146, 171 },
    278        {  35,  27,  10, 146, 174, 171,  12,  26, 128 },
    279        {  51, 103,  44, 131, 131, 123,  31,   6, 158 },
    280    },
    281    {
    282        {  68,  45, 128,  34,   1,  47,  11, 245, 171 },
    283        {  62,  17,  19,  70, 146,  85,  55,  62,  70 },
    284        { 102,  61,  71,  37,  34,  53,  31, 243, 192 },
    285        {  75,  15,   9,   9,  64, 255, 184, 119,  16 },
    286        {  37,  43,  37, 154, 100, 163,  85, 160,   1 },
    287        {  63,   9,  92, 136,  28,  64,  32, 201,  85 },
    288        {  56,   8,  17, 132, 137, 255,  55, 116, 128 },
    289        {  86,   6,  28,   5,  64, 255,  25, 248,   1 },
    290        {  58,  15,  20,  82, 135,  57,  26, 121,  40 },
    291        {  69,  60,  71,  38,  73, 119,  28, 222,  37 },
    292    },
    293    {
    294        { 101,  75, 128, 139, 118, 146, 116, 128,  85 },
    295        {  56,  41,  15, 176, 236,  85,  37,   9,  62 },
    296        { 190,  80,  35,  99, 180,  80, 126,  54,  45 },
    297        { 146,  36,  19,  30, 171, 255,  97,  27,  20 },
    298        {  71,  30,  17, 119, 118, 255,  17,  18, 138 },
    299        { 101,  38,  60, 138,  55,  70,  43,  26, 142 },
    300        {  32,  41,  20, 117, 151, 142,  20,  21, 163 },
    301        { 138,  45,  61,  62, 219,   1,  81, 188,  64 },
    302        { 112,  19,  12,  61, 195, 128,  48,   4,  24 },
    303        {  85, 126,  47,  87, 176,  51,  41,  20,  32 },
    304    },
    305    {
    306        {  66, 102, 167,  99,  74,  62,  40, 234, 128 },
    307        {  41,  53,   9, 178, 241, 141,  26,   8, 107 },
    308        { 134, 183,  89, 137,  98, 101, 106, 165, 148 },
    309        { 104,  79,  12,  27, 217, 255,  87,  17,   7 },
    310        {  74,  43,  26, 146,  73, 166,  49,  23, 157 },
    311        {  65,  38, 105, 160,  51,  52,  31, 115, 128 },
    312        {  47,  41,  14, 110, 182, 183,  21,  17, 194 },
    313        {  87,  68,  71,  44, 114,  51,  15, 186,  23 },
    314        {  66,  45,  25, 102, 197, 189,  23,  18,  22 },
    315        {  72, 187, 100, 130, 157, 111,  32,  75,  80 },
    316    },
    317 };
    318 
    319 static const uint8_t vp8_coeff_band[16] = {
    320    0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7
    321 };
    322 
    323 /* Inverse of vp8_coeff_band: mappings of bands to coefficient indexes.
    324 * Each list is -1-terminated. */
    325 static const int8_t vp8_coeff_band_indexes[8][10] = {
    326    {  0, -1 },
    327    {  1, -1 },
    328    {  2, -1 },
    329    {  3, -1 },
    330    {  5, -1 },
    331    {  6, -1 },
    332    {  4,  7, 8, 9, 10, 11, 12, 13, 14, -1 },
    333    { 15, -1 }
    334 };
    335 
    336 static const uint8_t vp8_dct_cat1_prob[] = {
    337    159, 0
    338 };
    339 static const uint8_t vp8_dct_cat2_prob[] = {
    340    165, 145, 0
    341 };
    342 
    343 extern const uint8_t *const ff_vp8_dct_cat_prob[];
    344 
    345 static const uint8_t vp8_token_default_probs[4][8][3][NUM_DCT_TOKENS - 1] = {
    346    {
    347        {
    348            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    349            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    350            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    351        },
    352        {
    353            { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
    354            { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
    355            { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
    356        },
    357        {
    358            {   1,  98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
    359            { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
    360            {  78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
    361        },
    362        {
    363            {   1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
    364            { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
    365            {  77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
    366        },
    367        {
    368            {   1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
    369            { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
    370            {  37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
    371        },
    372        {
    373            {   1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
    374            { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
    375            { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
    376        },
    377        {
    378            {   1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
    379            { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
    380            {  80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
    381        },
    382        {
    383            {   1,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    384            { 246,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    385            { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    386        },
    387    },
    388    {
    389        {
    390            { 198,  35, 237, 223, 193, 187, 162, 160, 145, 155,  62 },
    391            { 131,  45, 198, 221, 172, 176, 220, 157, 252, 221,   1 },
    392            {  68,  47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
    393        },
    394        {
    395            {   1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
    396            { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
    397            {  81,  99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
    398        },
    399        {
    400            {   1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
    401            {  99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
    402            {  23,  91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
    403        },
    404        {
    405            {   1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
    406            { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
    407            {  44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
    408        },
    409        {
    410            {   1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
    411            {  94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
    412            {  22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
    413        },
    414        {
    415            {   1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
    416            { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
    417            {  35,  77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
    418        },
    419        {
    420            {   1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
    421            { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
    422            {  45,  99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
    423        },
    424        {
    425            {   1,   1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
    426            { 203,   1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
    427            { 137,   1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
    428        },
    429    },
    430    {
    431        {
    432            { 253,   9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
    433            { 175,  13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
    434            {  73,  17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
    435        },
    436        {
    437            {   1,  95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
    438            { 239,  90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
    439            { 155,  77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
    440        },
    441        {
    442            {   1,  24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
    443            { 201,  51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
    444            {  69,  46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
    445        },
    446        {
    447            {   1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
    448            { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
    449            { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
    450        },
    451        {
    452            {   1,  16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
    453            { 190,  36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
    454            { 149,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    455        },
    456        {
    457            {   1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    458            { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    459            { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    460        },
    461        {
    462            {   1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
    463            { 213,  62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
    464            {  55,  93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    465        },
    466        {
    467            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    468            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    469            { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
    470        },
    471    },
    472    {
    473        {
    474            { 202,  24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
    475            { 126,  38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
    476            {  61,  46, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
    477        },
    478        {
    479            {   1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
    480            { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
    481            {  39,  77, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
    482        },
    483        {
    484            {   1,  52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
    485            { 124,  74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
    486            {  24,  71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
    487        },
    488        {
    489            {   1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
    490            { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
    491            {  28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
    492        },
    493        {
    494            {   1,  81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
    495            { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
    496            {  20,  95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
    497        },
    498        {
    499            {   1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
    500            { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
    501            {  47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
    502        },
    503        {
    504            {   1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
    505            { 141,  84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
    506            {  42,  80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
    507        },
    508        {
    509            {   1,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    510            { 244,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    511            { 238,   1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
    512        },
    513    },
    514 };
    515 
    516 extern const uint8_t ff_vp8_token_update_probs[4][8][3][11];
    517 
    518 static const uint8_t vp8_dc_qlookup[VP8_MAX_QUANT + 1] = {
    519      4,   5,   6,   7,   8,   9,  10,  10,  11,  12,  13,  14,  15,  16,  17,  17,
    520     18,  19,  20,  20,  21,  21,  22,  22,  23,  23,  24,  25,  25,  26,  27,  28,
    521     29,  30,  31,  32,  33,  34,  35,  36,  37,  37,  38,  39,  40,  41,  42,  43,
    522     44,  45,  46,  46,  47,  48,  49,  50,  51,  52,  53,  54,  55,  56,  57,  58,
    523     59,  60,  61,  62,  63,  64,  65,  66,  67,  68,  69,  70,  71,  72,  73,  74,
    524     75,  76,  76,  77,  78,  79,  80,  81,  82,  83,  84,  85,  86,  87,  88,  89,
    525     91,  93,  95,  96,  98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118,
    526    122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157,
    527 };
    528 
    529 static const uint16_t vp8_ac_qlookup[VP8_MAX_QUANT + 1] = {
    530      4,   5,   6,   7,   8,   9,  10,  11,  12,  13,  14,  15,  16,  17,  18,  19,
    531     20,  21,  22,  23,  24,  25,  26,  27,  28,  29,  30,  31,  32,  33,  34,  35,
    532     36,  37,  38,  39,  40,  41,  42,  43,  44,  45,  46,  47,  48,  49,  50,  51,
    533     52,  53,  54,  55,  56,  57,  58,  60,  62,  64,  66,  68,  70,  72,  74,  76,
    534     78,  80,  82,  84,  86,  88,  90,  92,  94,  96,  98, 100, 102, 104, 106, 108,
    535    110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152,
    536    155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209,
    537    213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284,
    538 };
    539 
    540 static const uint8_t vp8_mv_update_prob[2][19] = {
    541    { 237,
    542      246,
    543      253, 253, 254, 254, 254, 254, 254,
    544      254, 254, 254, 254, 254, 250, 250, 252, /* VP8 only: */ 254, 254 },
    545    { 231,
    546      243,
    547      245, 253, 254, 254, 254, 254, 254,
    548      254, 254, 254, 254, 254, 251, 251, 254, /* VP8 only: */ 254, 254 }
    549 };
    550 
    551 static const uint8_t vp7_mv_default_prob[2][17] = {
    552    { 162,
    553      128,
    554      225, 146, 172, 147, 214,  39, 156,
    555      247, 210, 135,  68, 138, 220, 239, 246 },
    556    { 164,
    557      128,
    558      204, 170, 119, 235, 140, 230, 228,
    559      244, 184, 201,  44, 173, 221, 239, 253 }
    560 };
    561 
    562 static const uint8_t vp8_mv_default_prob[2][19] = {
    563    { 162,
    564      128,
    565      225, 146, 172, 147, 214, 39, 156,
    566      128, 129, 132,  75, 145, 178, 206, 239, 254, 254 },
    567    { 164,
    568      128,
    569      204, 170, 119, 235, 140, 230, 228,
    570      128, 130, 130,  74, 148, 180, 203, 236, 254, 254 }
    571 };
    572 
    573 static const uint8_t vp7_feature_value_size[2][4] = {
    574    { 7, 6, 0, 8 },
    575    { 7, 6, 0, 5 },
    576 };
    577 
    578 static const int8_t vp7_feature_index_tree[4][2] =
    579 {
    580    {  1,  2 },
    581    { -0, -1 }, // '00', '01'
    582    { -2, -3 }, // '10', '11'
    583 };
    584 
    585 static const uint16_t vp7_ydc_qlookup[] = {
    586      4,   4,   5,   6,   6,   7,   8,   8,   9,  10,  11,  12,  13,  14,  15,
    587     16,  17,  18,  19,  20,  21,  22,  23,  23,  24,  25,  26,  27,  28,  29,
    588     30,  31,  32,  33,  33,  34,  35,  36,  36,  37,  38,  39,  39,  40,  41,
    589     41,  42,  43,  43,  44,  45,  45,  46,  47,  48,  48,  49,  50,  51,  52,
    590     53,  53,  54,  56,  57,  58,  59,  60,  62,  63,  65,  66,  68,  70,  72,
    591     74,  76,  79,  81,  84,  87,  90,  93,  96, 100, 104, 108, 112, 116, 121,
    592    126, 131, 136, 142, 148, 154, 160, 167, 174, 182, 189, 198, 206, 215, 224,
    593    234, 244, 254, 265, 277, 288, 301, 313, 327, 340, 355, 370, 385, 401, 417,
    594    434, 452, 470, 489, 509, 529, 550, 572,
    595 };
    596 
    597 static const uint16_t vp7_yac_qlookup[] = {
    598       4,    4,   5,   5,   6,   6,   7,   8,   9,  10,  11,  12,   13,   15,
    599      16,   17,  19,  20,  22,  23,  25,  26,  28,  29,  31,  32,   34,   35,
    600      37,   38,  40,  41,  42,  44,  45,  46,  48,  49,  50,  51,   53,   54,
    601      55,   56,  57,  58,  59,  61,  62,  63,  64,  65,  67,  68,   69,   70,
    602      72,   73,  75,  76,  78,  80,  82,  84,  86,  88,  91,  93,   96,   99,
    603     102,  105, 109, 112, 116, 121, 125, 130, 135, 140, 146, 152,  158,  165,
    604     172,  180, 188, 196, 205, 214, 224, 234, 245, 256, 268, 281,  294,  308,
    605     322,  337, 353, 369, 386, 404, 423, 443, 463, 484, 506, 529,  553,  578,
    606     604,  631, 659, 688, 718, 749, 781, 814, 849, 885, 922, 960, 1000, 1041,
    607    1083, 1127,
    608 };
    609 
    610 static const uint16_t vp7_y2dc_qlookup[] = {
    611       7,    9,  11,  13,  15,  17,  19,  21,  23,  26,  28,  30,   33,   35,
    612      37,   39,  42,  44,  46,  48,  51,  53,  55,  57,  59,  61,   63,   65,
    613      67,   69,  70,  72,  74,  75,  77,  78,  80,  81,  83,  84,   85,   87,
    614      88,   89,  90,  92,  93,  94,  95,  96,  97,  99, 100, 101,  102,  104,
    615     105,  106, 108, 109, 111, 113, 114, 116, 118, 120, 123, 125,  128,  131,
    616     134,  137, 140, 144, 148, 152, 156, 161, 166, 171, 176, 182,  188,  195,
    617     202,  209, 217, 225, 234, 243, 253, 263, 274, 285, 297, 309,  322,  336,
    618     350,  365, 381, 397, 414, 432, 450, 470, 490, 511, 533, 556,  579,  604,
    619     630,  656, 684, 713, 742, 773, 805, 838, 873, 908, 945, 983, 1022, 1063,
    620    1105, 1148,
    621 };
    622 
    623 static const uint16_t vp7_y2ac_qlookup[] = {
    624       7,    9,   11,   13,   16,   18,   21,   24,   26,   29,   32,   35,
    625      38,   41,   43,   46,   49,   52,   55,   58,   61,   64,   66,   69,
    626      72,   74,   77,   79,   82,   84,   86,   88,   91,   93,   95,   97,
    627      98,  100,  102,  104,  105,  107,  109,  110,  112,  113,  115,  116,
    628     117,  119,  120,  122,  123,  125,  127,  128,  130,  132,  134,  136,
    629     138,  141,  143,  146,  149,  152,  155,  158,  162,  166,  171,  175,
    630     180,  185,  191,  197,  204,  210,  218,  226,  234,  243,  252,  262,
    631     273,  284,  295,  308,  321,  335,  350,  365,  381,  398,  416,  435,
    632     455,  476,  497,  520,  544,  569,  595,  622,  650,  680,  711,  743,
    633     776,  811,  848,  885,  925,  965, 1008, 1052, 1097, 1144, 1193, 1244,
    634    1297, 1351, 1407, 1466, 1526, 1588, 1652, 1719,
    635 };
    636 
    637 #endif /* AVCODEC_VP8DATA_H */