/*
* Copyright (C) 2010 David Conrad
* Copyright (C) 2010 Ronald S. Bultje
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
/**
* @file
* VP8 compatible video decoder
*/
#ifndef AVCODEC_VP8DATA_H
#define AVCODEC_VP8DATA_H
#include "vp8.h"
#include "h264pred.h"
static const uint8_t vp7_pred4x4_mode[] = {
[DC_PRED8x8] = DC_PRED,
[VERT_PRED8x8] = TM_VP8_PRED,
[HOR_PRED8x8] = TM_VP8_PRED,
[PLANE_PRED8x8] = TM_VP8_PRED,
};
static const uint8_t vp8_pred4x4_mode[] = {
[DC_PRED8x8] = DC_PRED,
[VERT_PRED8x8] = VERT_PRED,
[HOR_PRED8x8] = HOR_PRED,
[PLANE_PRED8x8] = TM_VP8_PRED,
};
static const int8_t vp8_pred16x16_tree_intra[4 ][2 ] = {
{ -MODE_I4x4, 1 }, // '0'
{ 2 , 3 },
{ -DC_PRED8x8, -VERT_PRED8x8 }, // '100', '101'
{ -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
};
static const int8_t vp8_pred16x16_tree_inter[4 ][2 ] = {
{ -DC_PRED8x8, 1 }, // '0'
{ 2 , 3 },
{ -VERT_PRED8x8, -HOR_PRED8x8 }, // '100', '101'
{ -PLANE_PRED8x8, -MODE_I4x4 }, // '110', '111'
};
typedef struct VP7MVPred {
int8_t yoffset;
int8_t xoffset;
uint8_t subblock;
uint8_t score;
} VP7MVPred;
#define VP7_MV_PRED_COUNT 12
static const VP7MVPred vp7_mv_pred[VP7_MV_PRED_COUNT] = {
{ -1 , 0 , 12 , 8 },
{ 0 , -1 , 3 , 8 },
{ -1 , -1 , 15 , 2 },
{ -1 , 1 , 12 , 2 },
{ -2 , 0 , 12 , 2 },
{ 0 , -2 , 3 , 2 },
{ -1 , -2 , 15 , 1 },
{ -2 , -1 , 15 , 1 },
{ -2 , 1 , 12 , 1 },
{ -1 , 2 , 12 , 1 },
{ -2 , -2 , 15 , 1 },
{ -2 , 2 , 12 , 1 },
};
static const int vp7_mode_contexts[31 ][4 ] = {
{ 3 , 3 , 1 , 246 },
{ 7 , 89 , 66 , 239 },
{ 10 , 90 , 78 , 238 },
{ 14 , 118 , 95 , 241 },
{ 14 , 123 , 106 , 238 },
{ 20 , 140 , 109 , 240 },
{ 13 , 155 , 103 , 238 },
{ 21 , 158 , 99 , 240 },
{ 27 , 82 , 108 , 232 },
{ 19 , 99 , 123 , 217 },
{ 45 , 139 , 148 , 236 },
{ 50 , 117 , 144 , 235 },
{ 57 , 128 , 164 , 238 },
{ 69 , 139 , 171 , 239 },
{ 74 , 154 , 179 , 238 },
{ 112 , 165 , 186 , 242 },
{ 98 , 143 , 185 , 245 },
{ 105 , 153 , 190 , 250 },
{ 124 , 167 , 192 , 245 },
{ 131 , 186 , 203 , 246 },
{ 59 , 184 , 222 , 224 },
{ 148 , 215 , 214 , 213 },
{ 137 , 211 , 210 , 219 },
{ 190 , 227 , 128 , 228 },
{ 183 , 228 , 128 , 228 },
{ 194 , 234 , 128 , 228 },
{ 202 , 236 , 128 , 228 },
{ 205 , 240 , 128 , 228 },
{ 205 , 244 , 128 , 228 },
{ 225 , 246 , 128 , 228 },
{ 233 , 251 , 128 , 228 },
};
static const int vp8_mode_contexts[6 ][4 ] = {
{ 7 , 1 , 1 , 143 },
{ 14 , 18 , 14 , 107 },
{ 135 , 64 , 57 , 68 },
{ 60 , 56 , 128 , 65 },
{ 159 , 134 , 128 , 34 },
{ 234 , 188 , 128 , 28 },
};
static const uint8_t vp8_mbsplits[5 ][16 ] = {
{ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 1 , 1 , 1 , 1 , 1 , 1 , 1 , 1 },
{ 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 },
{ 0 , 0 , 1 , 1 , 0 , 0 , 1 , 1 , 2 , 2 , 3 , 3 , 2 , 2 , 3 , 3 },
{ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 },
{ 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 }
};
static const uint8_t vp8_mbfirstidx[4 ][16 ] = {
{ 0 , 8 },
{ 0 , 2 },
{ 0 , 2 , 8 , 10 },
{ 0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 }
};
static const uint8_t vp8_mbsplit_count[4 ] = {
2 , 2 , 4 , 16
};
static const uint8_t vp8_mbsplit_prob[3 ] = {
110 , 111 , 150
};
static const uint8_t vp7_submv_prob[3 ] = {
180 , 162 , 25
};
static const uint8_t vp8_submv_prob[5 ][3 ] = {
{ 147 , 136 , 18 },
{ 106 , 145 , 1 },
{ 179 , 121 , 1 },
{ 223 , 1 , 34 },
{ 208 , 1 , 1 }
};
static const uint8_t vp8_pred16x16_prob_intra[4 ] = {
145 , 156 , 163 , 128
};
static const uint8_t vp8_pred16x16_prob_inter[4 ] = {
112 , 86 , 140 , 37
};
static const int8_t vp8_pred4x4_tree[9 ][2 ] = {
{ -DC_PRED, 1 }, // '0'
{ -TM_VP8_PRED, 2 }, // '10'
{ -VERT_PRED, 3 }, // '110'
{ 4 , 6 },
{ -HOR_PRED, 5 }, // '11100'
{ -DIAG_DOWN_RIGHT_PRED, -VERT_RIGHT_PRED }, // '111010', '111011'
{ -DIAG_DOWN_LEFT_PRED, 7 }, // '11110'
{ -VERT_LEFT_PRED, 8 }, // '111110'
{ -HOR_DOWN_PRED, -HOR_UP_PRED }, // '1111110', '1111111'
};
static const int8_t vp8_pred8x8c_tree[3 ][2 ] = {
{ -DC_PRED8x8, 1 }, // '0'
{ -VERT_PRED8x8, 2 }, // '10
{ -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
};
static const uint8_t vp8_pred8x8c_prob_intra[3 ] = {
142 , 114 , 183
};
static const uint8_t vp8_pred8x8c_prob_inter[3 ] = {
162 , 101 , 204
};
static const uint8_t vp8_pred4x4_prob_inter[9 ] = {
120 , 90 , 79 , 133 , 87 , 85 , 80 , 111 , 151
};
static const uint8_t vp8_pred4x4_prob_intra[10 ][10 ][9 ] = {
{
{ 39 , 53 , 200 , 87 , 26 , 21 , 43 , 232 , 171 },
{ 56 , 34 , 51 , 104 , 114 , 102 , 29 , 93 , 77 },
{ 88 , 88 , 147 , 150 , 42 , 46 , 45 , 196 , 205 },
{ 107 , 54 , 32 , 26 , 51 , 1 , 81 , 43 , 31 },
{ 39 , 28 , 85 , 171 , 58 , 165 , 90 , 98 , 64 },
{ 34 , 22 , 116 , 206 , 23 , 34 , 43 , 166 , 73 },
{ 34 , 19 , 21 , 102 , 132 , 188 , 16 , 76 , 124 },
{ 68 , 25 , 106 , 22 , 64 , 171 , 36 , 225 , 114 },
{ 62 , 18 , 78 , 95 , 85 , 57 , 50 , 48 , 51 },
{ 43 , 97 , 183 , 117 , 85 , 38 , 35 , 179 , 61 },
},
{
{ 112 , 113 , 77 , 85 , 179 , 255 , 38 , 120 , 114 },
{ 40 , 42 , 1 , 196 , 245 , 209 , 10 , 25 , 109 },
{ 193 , 101 , 35 , 159 , 215 , 111 , 89 , 46 , 111 },
{ 100 , 80 , 8 , 43 , 154 , 1 , 51 , 26 , 71 },
{ 88 , 43 , 29 , 140 , 166 , 213 , 37 , 43 , 154 },
{ 61 , 63 , 30 , 155 , 67 , 45 , 68 , 1 , 209 },
{ 41 , 40 , 5 , 102 , 211 , 183 , 4 , 1 , 221 },
{ 142 , 78 , 78 , 16 , 255 , 128 , 34 , 197 , 171 },
{ 51 , 50 , 17 , 168 , 209 , 192 , 23 , 25 , 82 },
{ 60 , 148 , 31 , 172 , 219 , 228 , 21 , 18 , 111 },
},
{
{ 175 , 69 , 143 , 80 , 85 , 82 , 72 , 155 , 103 },
{ 56 , 58 , 10 , 171 , 218 , 189 , 17 , 13 , 152 },
{ 231 , 120 , 48 , 89 , 115 , 113 , 120 , 152 , 112 },
{ 144 , 71 , 10 , 38 , 171 , 213 , 144 , 34 , 26 },
{ 114 , 26 , 17 , 163 , 44 , 195 , 21 , 10 , 173 },
{ 121 , 24 , 80 , 195 , 26 , 62 , 44 , 64 , 85 },
{ 63 , 20 , 8 , 114 , 114 , 208 , 12 , 9 , 226 },
{ 170 , 46 , 55 , 19 , 136 , 160 , 33 , 206 , 71 },
{ 81 , 40 , 11 , 96 , 182 , 84 , 29 , 16 , 36 },
{ 152 , 179 , 64 , 126 , 170 , 118 , 46 , 70 , 95 },
},
{
{ 75 , 79 , 123 , 47 , 51 , 128 , 81 , 171 , 1 },
{ 57 , 17 , 5 , 71 , 102 , 57 , 53 , 41 , 49 },
{ 125 , 98 , 42 , 88 , 104 , 85 , 117 , 175 , 82 },
{ 115 , 21 , 2 , 10 , 102 , 255 , 166 , 23 , 6 },
{ 38 , 33 , 13 , 121 , 57 , 73 , 26 , 1 , 85 },
{ 41 , 10 , 67 , 138 , 77 , 110 , 90 , 47 , 114 },
{ 57 , 18 , 10 , 102 , 102 , 213 , 34 , 20 , 43 },
{ 101 , 29 , 16 , 10 , 85 , 128 , 101 , 196 , 26 },
{ 117 , 20 , 15 , 36 , 163 , 128 , 68 , 1 , 26 },
{ 95 , 84 , 53 , 89 , 128 , 100 , 113 , 101 , 45 },
},
{
{ 63 , 59 , 90 , 180 , 59 , 166 , 93 , 73 , 154 },
{ 40 , 40 , 21 , 116 , 143 , 209 , 34 , 39 , 175 },
{ 138 , 31 , 36 , 171 , 27 , 166 , 38 , 44 , 229 },
{ 57 , 46 , 22 , 24 , 128 , 1 , 54 , 17 , 37 },
{ 47 , 15 , 16 , 183 , 34 , 223 , 49 , 45 , 183 },
{ 46 , 17 , 33 , 183 , 6 , 98 , 15 , 32 , 183 },
{ 40 , 3 , 9 , 115 , 51 , 192 , 18 , 6 , 223 },
{ 65 , 32 , 73 , 115 , 28 , 128 , 23 , 128 , 205 },
{ 87 , 37 , 9 , 115 , 59 , 77 , 64 , 21 , 47 },
{ 67 , 87 , 58 , 169 , 82 , 115 , 26 , 59 , 179 },
},
{
{ 54 , 57 , 112 , 184 , 5 , 41 , 38 , 166 , 213 },
{ 30 , 34 , 26 , 133 , 152 , 116 , 10 , 32 , 134 },
{ 104 , 55 , 44 , 218 , 9 , 54 , 53 , 130 , 226 },
{ 75 , 32 , 12 , 51 , 192 , 255 , 160 , 43 , 51 },
{ 39 , 19 , 53 , 221 , 26 , 114 , 32 , 73 , 255 },
{ 31 , 9 , 65 , 234 , 2 , 15 , 1 , 118 , 73 },
{ 56 , 21 , 23 , 111 , 59 , 205 , 45 , 37 , 192 },
{ 88 , 31 , 35 , 67 , 102 , 85 , 55 , 186 , 85 },
{ 55 , 38 , 70 , 124 , 73 , 102 , 1 , 34 , 98 },
{ 64 , 90 , 70 , 205 , 40 , 41 , 23 , 26 , 57 },
},
{
{ 86 , 40 , 64 , 135 , 148 , 224 , 45 , 183 , 128 },
{ 22 , 26 , 17 , 131 , 240 , 154 , 14 , 1 , 209 },
{ 164 , 50 , 31 , 137 , 154 , 133 , 25 , 35 , 218 },
{ 83 , 12 , 13 , 54 , 192 , 255 , 68 , 47 , 28 },
{ 45 , 16 , 21 , 91 , 64 , 222 , 7 , 1 , 197 },
{ 56 , 21 , 39 , 155 , 60 , 138 , 23 , 102 , 213 },
{ 18 , 11 , 7 , 63 , 144 , 171 , 4 , 4 , 246 },
{ 85 , 26 , 85 , 85 , 128 , 128 , 32 , 146 , 171 },
{ 35 , 27 , 10 , 146 , 174 , 171 , 12 , 26 , 128 },
{ 51 , 103 , 44 , 131 , 131 , 123 , 31 , 6 , 158 },
},
{
{ 68 , 45 , 128 , 34 , 1 , 47 , 11 , 245 , 171 },
{ 62 , 17 , 19 , 70 , 146 , 85 , 55 , 62 , 70 },
{ 102 , 61 , 71 , 37 , 34 , 53 , 31 , 243 , 192 },
{ 75 , 15 , 9 , 9 , 64 , 255 , 184 , 119 , 16 },
{ 37 , 43 , 37 , 154 , 100 , 163 , 85 , 160 , 1 },
{ 63 , 9 , 92 , 136 , 28 , 64 , 32 , 201 , 85 },
{ 56 , 8 , 17 , 132 , 137 , 255 , 55 , 116 , 128 },
{ 86 , 6 , 28 , 5 , 64 , 255 , 25 , 248 , 1 },
{ 58 , 15 , 20 , 82 , 135 , 57 , 26 , 121 , 40 },
{ 69 , 60 , 71 , 38 , 73 , 119 , 28 , 222 , 37 },
},
{
{ 101 , 75 , 128 , 139 , 118 , 146 , 116 , 128 , 85 },
{ 56 , 41 , 15 , 176 , 236 , 85 , 37 , 9 , 62 },
{ 190 , 80 , 35 , 99 , 180 , 80 , 126 , 54 , 45 },
{ 146 , 36 , 19 , 30 , 171 , 255 , 97 , 27 , 20 },
{ 71 , 30 , 17 , 119 , 118 , 255 , 17 , 18 , 138 },
{ 101 , 38 , 60 , 138 , 55 , 70 , 43 , 26 , 142 },
{ 32 , 41 , 20 , 117 , 151 , 142 , 20 , 21 , 163 },
{ 138 , 45 , 61 , 62 , 219 , 1 , 81 , 188 , 64 },
{ 112 , 19 , 12 , 61 , 195 , 128 , 48 , 4 , 24 },
{ 85 , 126 , 47 , 87 , 176 , 51 , 41 , 20 , 32 },
},
{
{ 66 , 102 , 167 , 99 , 74 , 62 , 40 , 234 , 128 },
{ 41 , 53 , 9 , 178 , 241 , 141 , 26 , 8 , 107 },
{ 134 , 183 , 89 , 137 , 98 , 101 , 106 , 165 , 148 },
{ 104 , 79 , 12 , 27 , 217 , 255 , 87 , 17 , 7 },
{ 74 , 43 , 26 , 146 , 73 , 166 , 49 , 23 , 157 },
{ 65 , 38 , 105 , 160 , 51 , 52 , 31 , 115 , 128 },
{ 47 , 41 , 14 , 110 , 182 , 183 , 21 , 17 , 194 },
{ 87 , 68 , 71 , 44 , 114 , 51 , 15 , 186 , 23 },
{ 66 , 45 , 25 , 102 , 197 , 189 , 23 , 18 , 22 },
{ 72 , 187 , 100 , 130 , 157 , 111 , 32 , 75 , 80 },
},
};
static const uint8_t vp8_coeff_band[16 ] = {
0 , 1 , 2 , 3 , 6 , 4 , 5 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 6 , 7
};
/* Inverse of vp8_coeff_band: mappings of bands to coefficient indexes.
* Each list is -1-terminated. */
static const int8_t vp8_coeff_band_indexes[8 ][10 ] = {
{ 0 , -1 },
{ 1 , -1 },
{ 2 , -1 },
{ 3 , -1 },
{ 5 , -1 },
{ 6 , -1 },
{ 4 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , -1 },
{ 15 , -1 }
};
static const uint8_t vp8_dct_cat1_prob[] = {
159 , 0
};
static const uint8_t vp8_dct_cat2_prob[] = {
165 , 145 , 0
};
extern const uint8_t *const ff_vp8_dct_cat_prob[];
static const uint8_t vp8_token_default_probs[4 ][8 ][3 ][NUM_DCT_TOKENS - 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 , 128 , 128 , 128 },
},
{
{ 253 , 136 , 254 , 255 , 228 , 219 , 128 , 128 , 128 , 128 , 128 },
{ 189 , 129 , 242 , 255 , 227 , 213 , 255 , 219 , 128 , 128 , 128 },
{ 106 , 126 , 227 , 252 , 214 , 209 , 255 , 255 , 128 , 128 , 128 },
},
{
{ 1 , 98 , 248 , 255 , 236 , 226 , 255 , 255 , 128 , 128 , 128 },
{ 181 , 133 , 238 , 254 , 221 , 234 , 255 , 154 , 128 , 128 , 128 },
{ 78 , 134 , 202 , 247 , 198 , 180 , 255 , 219 , 128 , 128 , 128 },
},
{
{ 1 , 185 , 249 , 255 , 243 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 184 , 150 , 247 , 255 , 236 , 224 , 128 , 128 , 128 , 128 , 128 },
{ 77 , 110 , 216 , 255 , 236 , 230 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 101 , 251 , 255 , 241 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 170 , 139 , 241 , 252 , 236 , 209 , 255 , 255 , 128 , 128 , 128 },
{ 37 , 116 , 196 , 243 , 228 , 255 , 255 , 255 , 128 , 128 , 128 },
},
{
{ 1 , 204 , 254 , 255 , 245 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 207 , 160 , 250 , 255 , 238 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 102 , 103 , 231 , 255 , 211 , 171 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 152 , 252 , 255 , 240 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 177 , 135 , 243 , 255 , 234 , 225 , 128 , 128 , 128 , 128 , 128 },
{ 80 , 129 , 211 , 255 , 194 , 224 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 246 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
},
},
{
{
{ 198 , 35 , 237 , 223 , 193 , 187 , 162 , 160 , 145 , 155 , 62 },
{ 131 , 45 , 198 , 221 , 172 , 176 , 220 , 157 , 252 , 221 , 1 },
{ 68 , 47 , 146 , 208 , 149 , 167 , 221 , 162 , 255 , 223 , 128 },
},
{
{ 1 , 149 , 241 , 255 , 221 , 224 , 255 , 255 , 128 , 128 , 128 },
{ 184 , 141 , 234 , 253 , 222 , 220 , 255 , 199 , 128 , 128 , 128 },
{ 81 , 99 , 181 , 242 , 176 , 190 , 249 , 202 , 255 , 255 , 128 },
},
{
{ 1 , 129 , 232 , 253 , 214 , 197 , 242 , 196 , 255 , 255 , 128 },
{ 99 , 121 , 210 , 250 , 201 , 198 , 255 , 202 , 128 , 128 , 128 },
{ 23 , 91 , 163 , 242 , 170 , 187 , 247 , 210 , 255 , 255 , 128 },
},
{
{ 1 , 200 , 246 , 255 , 234 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 109 , 178 , 241 , 255 , 231 , 245 , 255 , 255 , 128 , 128 , 128 },
{ 44 , 130 , 201 , 253 , 205 , 192 , 255 , 255 , 128 , 128 , 128 },
},
{
{ 1 , 132 , 239 , 251 , 219 , 209 , 255 , 165 , 128 , 128 , 128 },
{ 94 , 136 , 225 , 251 , 218 , 190 , 255 , 255 , 128 , 128 , 128 },
{ 22 , 100 , 174 , 245 , 186 , 161 , 255 , 199 , 128 , 128 , 128 },
},
{
{ 1 , 182 , 249 , 255 , 232 , 235 , 128 , 128 , 128 , 128 , 128 },
{ 124 , 143 , 241 , 255 , 227 , 234 , 128 , 128 , 128 , 128 , 128 },
{ 35 , 77 , 181 , 251 , 193 , 211 , 255 , 205 , 128 , 128 , 128 },
},
{
{ 1 , 157 , 247 , 255 , 236 , 231 , 255 , 255 , 128 , 128 , 128 },
{ 121 , 141 , 235 , 255 , 225 , 227 , 255 , 255 , 128 , 128 , 128 },
{ 45 , 99 , 188 , 251 , 195 , 217 , 255 , 224 , 128 , 128 , 128 },
},
{
{ 1 , 1 , 251 , 255 , 213 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 203 , 1 , 248 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 137 , 1 , 177 , 255 , 224 , 255 , 128 , 128 , 128 , 128 , 128 },
},
},
{
{
{ 253 , 9 , 248 , 251 , 207 , 208 , 255 , 192 , 128 , 128 , 128 },
{ 175 , 13 , 224 , 243 , 193 , 185 , 249 , 198 , 255 , 255 , 128 },
{ 73 , 17 , 171 , 221 , 161 , 179 , 236 , 167 , 255 , 234 , 128 },
},
{
{ 1 , 95 , 247 , 253 , 212 , 183 , 255 , 255 , 128 , 128 , 128 },
{ 239 , 90 , 244 , 250 , 211 , 209 , 255 , 255 , 128 , 128 , 128 },
{ 155 , 77 , 195 , 248 , 188 , 195 , 255 , 255 , 128 , 128 , 128 },
},
{
{ 1 , 24 , 239 , 251 , 218 , 219 , 255 , 205 , 128 , 128 , 128 },
{ 201 , 51 , 219 , 255 , 196 , 186 , 128 , 128 , 128 , 128 , 128 },
{ 69 , 46 , 190 , 239 , 201 , 218 , 255 , 228 , 128 , 128 , 128 },
},
{
{ 1 , 191 , 251 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 223 , 165 , 249 , 255 , 213 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 141 , 124 , 248 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 16 , 248 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 190 , 36 , 230 , 255 , 236 , 255 , 128 , 128 , 128 , 128 , 128 },
{ 149 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 226 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 247 , 192 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 240 , 128 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
},
{
{ 1 , 134 , 252 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 213 , 62 , 250 , 255 , 255 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 55 , 93 , 255 , 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 },
},
},
{
{
{ 202 , 24 , 213 , 235 , 186 , 191 , 220 , 160 , 240 , 175 , 255 },
{ 126 , 38 , 182 , 232 , 169 , 184 , 228 , 174 , 255 , 187 , 128 },
{ 61 , 46 , 138 , 219 , 151 , 178 , 240 , 170 , 255 , 216 , 128 },
},
{
{ 1 , 112 , 230 , 250 , 199 , 191 , 247 , 159 , 255 , 255 , 128 },
{ 166 , 109 , 228 , 252 , 211 , 215 , 255 , 174 , 128 , 128 , 128 },
{ 39 , 77 , 162 , 232 , 172 , 180 , 245 , 178 , 255 , 255 , 128 },
},
{
{ 1 , 52 , 220 , 246 , 198 , 199 , 249 , 220 , 255 , 255 , 128 },
{ 124 , 74 , 191 , 243 , 183 , 193 , 250 , 221 , 255 , 255 , 128 },
{ 24 , 71 , 130 , 219 , 154 , 170 , 243 , 182 , 255 , 255 , 128 },
},
{
{ 1 , 182 , 225 , 249 , 219 , 240 , 255 , 224 , 128 , 128 , 128 },
{ 149 , 150 , 226 , 252 , 216 , 205 , 255 , 171 , 128 , 128 , 128 },
{ 28 , 108 , 170 , 242 , 183 , 194 , 254 , 223 , 255 , 255 , 128 },
},
{
{ 1 , 81 , 230 , 252 , 204 , 203 , 255 , 192 , 128 , 128 , 128 },
{ 123 , 102 , 209 , 247 , 188 , 196 , 255 , 233 , 128 , 128 , 128 },
{ 20 , 95 , 153 , 243 , 164 , 173 , 255 , 203 , 128 , 128 , 128 },
},
{
{ 1 , 222 , 248 , 255 , 216 , 213 , 128 , 128 , 128 , 128 , 128 },
{ 168 , 175 , 246 , 252 , 235 , 205 , 255 , 255 , 128 , 128 , 128 },
{ 47 , 116 , 215 , 255 , 211 , 212 , 255 , 255 , 128 , 128 , 128 },
},
{
{ 1 , 121 , 236 , 253 , 212 , 214 , 255 , 255 , 128 , 128 , 128 },
{ 141 , 84 , 213 , 252 , 201 , 202 , 255 , 219 , 128 , 128 , 128 },
{ 42 , 80 , 160 , 240 , 162 , 185 , 255 , 205 , 128 , 128 , 128 },
},
{
{ 1 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 244 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
{ 238 , 1 , 255 , 128 , 128 , 128 , 128 , 128 , 128 , 128 , 128 },
},
},
};
extern const uint8_t ff_vp8_token_update_probs[4 ][8 ][3 ][11 ];
static const uint8_t vp8_dc_qlookup[VP8_MAX_QUANT + 1 ] = {
4 , 5 , 6 , 7 , 8 , 9 , 10 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 17 ,
18 , 19 , 20 , 20 , 21 , 21 , 22 , 22 , 23 , 23 , 24 , 25 , 25 , 26 , 27 , 28 ,
29 , 30 , 31 , 32 , 33 , 34 , 35 , 36 , 37 , 37 , 38 , 39 , 40 , 41 , 42 , 43 ,
44 , 45 , 46 , 46 , 47 , 48 , 49 , 50 , 51 , 52 , 53 , 54 , 55 , 56 , 57 , 58 ,
59 , 60 , 61 , 62 , 63 , 64 , 65 , 66 , 67 , 68 , 69 , 70 , 71 , 72 , 73 , 74 ,
75 , 76 , 76 , 77 , 78 , 79 , 80 , 81 , 82 , 83 , 84 , 85 , 86 , 87 , 88 , 89 ,
91 , 93 , 95 , 96 , 98 , 100 , 101 , 102 , 104 , 106 , 108 , 110 , 112 , 114 , 116 , 118 ,
122 , 124 , 126 , 128 , 130 , 132 , 134 , 136 , 138 , 140 , 143 , 145 , 148 , 151 , 154 , 157 ,
};
static const uint16_t vp8_ac_qlookup[VP8_MAX_QUANT + 1 ] = {
4 , 5 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 , 16 , 17 , 18 , 19 ,
20 , 21 , 22 , 23 , 24 , 25 , 26 , 27 , 28 , 29 , 30 , 31 , 32 , 33 , 34 , 35 ,
36 , 37 , 38 , 39 , 40 , 41 , 42 , 43 , 44 , 45 , 46 , 47 , 48 , 49 , 50 , 51 ,
52 , 53 , 54 , 55 , 56 , 57 , 58 , 60 , 62 , 64 , 66 , 68 , 70 , 72 , 74 , 76 ,
78 , 80 , 82 , 84 , 86 , 88 , 90 , 92 , 94 , 96 , 98 , 100 , 102 , 104 , 106 , 108 ,
110 , 112 , 114 , 116 , 119 , 122 , 125 , 128 , 131 , 134 , 137 , 140 , 143 , 146 , 149 , 152 ,
155 , 158 , 161 , 164 , 167 , 170 , 173 , 177 , 181 , 185 , 189 , 193 , 197 , 201 , 205 , 209 ,
213 , 217 , 221 , 225 , 229 , 234 , 239 , 245 , 249 , 254 , 259 , 264 , 269 , 274 , 279 , 284 ,
};
static const uint8_t vp8_mv_update_prob[2 ][19 ] = {
{ 237 ,
246 ,
253 , 253 , 254 , 254 , 254 , 254 , 254 ,
254 , 254 , 254 , 254 , 254 , 250 , 250 , 252 , /* VP8 only: */ 254, 254 },
{ 231 ,
243 ,
245 , 253 , 254 , 254 , 254 , 254 , 254 ,
254 , 254 , 254 , 254 , 254 , 251 , 251 , 254 , /* VP8 only: */ 254, 254 }
};
static const uint8_t vp7_mv_default_prob[2 ][17 ] = {
{ 162 ,
128 ,
225 , 146 , 172 , 147 , 214 , 39 , 156 ,
247 , 210 , 135 , 68 , 138 , 220 , 239 , 246 },
{ 164 ,
128 ,
204 , 170 , 119 , 235 , 140 , 230 , 228 ,
244 , 184 , 201 , 44 , 173 , 221 , 239 , 253 }
};
static const uint8_t vp8_mv_default_prob[2 ][19 ] = {
{ 162 ,
128 ,
225 , 146 , 172 , 147 , 214 , 39 , 156 ,
128 , 129 , 132 , 75 , 145 , 178 , 206 , 239 , 254 , 254 },
{ 164 ,
128 ,
204 , 170 , 119 , 235 , 140 , 230 , 228 ,
128 , 130 , 130 , 74 , 148 , 180 , 203 , 236 , 254 , 254 }
};
static const uint8_t vp7_feature_value_size[2 ][4 ] = {
{ 7 , 6 , 0 , 8 },
{ 7 , 6 , 0 , 5 },
};
static const int8_t vp7_feature_index_tree[4 ][2 ] =
{
{ 1 , 2 },
{ -0 , -1 }, // '00', '01'
{ -2 , -3 }, // '10', '11'
};
static const uint16_t vp7_ydc_qlookup[] = {
4 , 4 , 5 , 6 , 6 , 7 , 8 , 8 , 9 , 10 , 11 , 12 , 13 , 14 , 15 ,
16 , 17 , 18 , 19 , 20 , 21 , 22 , 23 , 23 , 24 , 25 , 26 , 27 , 28 , 29 ,
30 , 31 , 32 , 33 , 33 , 34 , 35 , 36 , 36 , 37 , 38 , 39 , 39 , 40 , 41 ,
41 , 42 , 43 , 43 , 44 , 45 , 45 , 46 , 47 , 48 , 48 , 49 , 50 , 51 , 52 ,
53 , 53 , 54 , 56 , 57 , 58 , 59 , 60 , 62 , 63 , 65 , 66 , 68 , 70 , 72 ,
74 , 76 , 79 , 81 , 84 , 87 , 90 , 93 , 96 , 100 , 104 , 108 , 112 , 116 , 121 ,
126 , 131 , 136 , 142 , 148 , 154 , 160 , 167 , 174 , 182 , 189 , 198 , 206 , 215 , 224 ,
234 , 244 , 254 , 265 , 277 , 288 , 301 , 313 , 327 , 340 , 355 , 370 , 385 , 401 , 417 ,
434 , 452 , 470 , 489 , 509 , 529 , 550 , 572 ,
};
static const uint16_t vp7_yac_qlookup[] = {
4 , 4 , 5 , 5 , 6 , 6 , 7 , 8 , 9 , 10 , 11 , 12 , 13 , 15 ,
16 , 17 , 19 , 20 , 22 , 23 , 25 , 26 , 28 , 29 , 31 , 32 , 34 , 35 ,
37 , 38 , 40 , 41 , 42 , 44 , 45 , 46 , 48 , 49 , 50 , 51 , 53 , 54 ,
55 , 56 , 57 , 58 , 59 , 61 , 62 , 63 , 64 , 65 , 67 , 68 , 69 , 70 ,
72 , 73 , 75 , 76 , 78 , 80 , 82 , 84 , 86 , 88 , 91 , 93 , 96 , 99 ,
102 , 105 , 109 , 112 , 116 , 121 , 125 , 130 , 135 , 140 , 146 , 152 , 158 , 165 ,
172 , 180 , 188 , 196 , 205 , 214 , 224 , 234 , 245 , 256 , 268 , 281 , 294 , 308 ,
322 , 337 , 353 , 369 , 386 , 404 , 423 , 443 , 463 , 484 , 506 , 529 , 553 , 578 ,
604 , 631 , 659 , 688 , 718 , 749 , 781 , 814 , 849 , 885 , 922 , 960 , 1000 , 1041 ,
1083 , 1127 ,
};
static const uint16_t vp7_y2dc_qlookup[] = {
7 , 9 , 11 , 13 , 15 , 17 , 19 , 21 , 23 , 26 , 28 , 30 , 33 , 35 ,
37 , 39 , 42 , 44 , 46 , 48 , 51 , 53 , 55 , 57 , 59 , 61 , 63 , 65 ,
67 , 69 , 70 , 72 , 74 , 75 , 77 , 78 , 80 , 81 , 83 , 84 , 85 , 87 ,
88 , 89 , 90 , 92 , 93 , 94 , 95 , 96 , 97 , 99 , 100 , 101 , 102 , 104 ,
105 , 106 , 108 , 109 , 111 , 113 , 114 , 116 , 118 , 120 , 123 , 125 , 128 , 131 ,
134 , 137 , 140 , 144 , 148 , 152 , 156 , 161 , 166 , 171 , 176 , 182 , 188 , 195 ,
202 , 209 , 217 , 225 , 234 , 243 , 253 , 263 , 274 , 285 , 297 , 309 , 322 , 336 ,
350 , 365 , 381 , 397 , 414 , 432 , 450 , 470 , 490 , 511 , 533 , 556 , 579 , 604 ,
630 , 656 , 684 , 713 , 742 , 773 , 805 , 838 , 873 , 908 , 945 , 983 , 1022 , 1063 ,
1105 , 1148 ,
};
static const uint16_t vp7_y2ac_qlookup[] = {
7 , 9 , 11 , 13 , 16 , 18 , 21 , 24 , 26 , 29 , 32 , 35 ,
38 , 41 , 43 , 46 , 49 , 52 , 55 , 58 , 61 , 64 , 66 , 69 ,
72 , 74 , 77 , 79 , 82 , 84 , 86 , 88 , 91 , 93 , 95 , 97 ,
98 , 100 , 102 , 104 , 105 , 107 , 109 , 110 , 112 , 113 , 115 , 116 ,
117 , 119 , 120 , 122 , 123 , 125 , 127 , 128 , 130 , 132 , 134 , 136 ,
138 , 141 , 143 , 146 , 149 , 152 , 155 , 158 , 162 , 166 , 171 , 175 ,
180 , 185 , 191 , 197 , 204 , 210 , 218 , 226 , 234 , 243 , 252 , 262 ,
273 , 284 , 295 , 308 , 321 , 335 , 350 , 365 , 381 , 398 , 416 , 435 ,
455 , 476 , 497 , 520 , 544 , 569 , 595 , 622 , 650 , 680 , 711 , 743 ,
776 , 811 , 848 , 885 , 925 , 965 , 1008 , 1052 , 1097 , 1144 , 1193 , 1244 ,
1297 , 1351 , 1407 , 1466 , 1526 , 1588 , 1652 , 1719 ,
};
#endif /* AVCODEC_VP8DATA_H */
Messung V0.5 in Prozent C=97 H=100 G=98