2 * Copyright (C) 2010 David Conrad
3 * Copyright (C) 2010 Ronald S. Bultje
5 * This file is part of FFmpeg.
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.
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.
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
24 * VP8 compatible video decoder
27 #ifndef AVCODEC_VP8DATA_H
28 #define AVCODEC_VP8DATA_H
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
,
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
,
47 static const int8_t vp8_pred16x16_tree_intra
[4][2] = {
48 { -MODE_I4x4
, 1 }, // '0'
50 { -DC_PRED8x8
, -VERT_PRED8x8
}, // '100', '101'
51 { -HOR_PRED8x8
, -PLANE_PRED8x8
}, // '110', '111'
54 static const int8_t vp8_pred16x16_tree_inter
[4][2] = {
55 { -DC_PRED8x8
, 1 }, // '0'
57 { -VERT_PRED8x8
, -HOR_PRED8x8
}, // '100', '101'
58 { -PLANE_PRED8x8
, -MODE_I4x4
}, // '110', '111'
61 typedef struct VP7MVPred
{
68 #define VP7_MV_PRED_COUNT 12
69 static const VP7MVPred vp7_mv_pred
[VP7_MV_PRED_COUNT
] = {
84 static const int vp7_mode_contexts
[31][4] = {
89 { 14, 123, 106, 238 },
90 { 20, 140, 109, 240 },
91 { 13, 155, 103, 238 },
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 },
118 static const int vp8_mode_contexts
[6][4] = {
123 { 159, 134, 128, 34 },
124 { 234, 188, 128, 28 },
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 }
135 static const uint8_t vp8_mbfirstidx
[4][16] = {
139 { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }
142 static const uint8_t vp8_mbsplit_count
[4] = {
145 static const uint8_t vp8_mbsplit_prob
[3] = {
149 static const uint8_t vp7_submv_prob
[3] = {
153 static const uint8_t vp8_submv_prob
[5][3] = {
161 static const uint8_t vp8_pred16x16_prob_intra
[4] = {
164 static const uint8_t vp8_pred16x16_prob_inter
[4] = {
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'
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'
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'
186 static const uint8_t vp8_pred8x8c_prob_intra
[3] = {
189 static const uint8_t vp8_pred8x8c_prob_inter
[3] = {
192 static const uint8_t vp8_pred4x4_prob_inter
[9] = {
193 120, 90, 79, 133, 87, 85, 80, 111, 151
196 static const uint8_t vp8_pred4x4_prob_intra
[10][10][9] = {
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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
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] = {
332 { 4, 7, 8, 9, 10, 11, 12, 13, 14, -1 },
336 static const uint8_t vp8_dct_cat1_prob
[] = {
339 static const uint8_t vp8_dct_cat2_prob
[] = {
343 extern const uint8_t *const ff_vp8_dct_cat_prob
[];
345 static const uint8_t vp8_token_default_probs
[4][8][3][NUM_DCT_TOKENS
- 1] = {
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
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 },
516 extern const uint8_t ff_vp8_token_update_probs
[4][8][3][11];
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,
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,
540 static const uint8_t vp8_mv_update_prob
[2][19] = {
543 253, 253, 254, 254, 254, 254, 254,
544 254, 254, 254, 254, 254, 250, 250, 252, /* VP8 only: */ 254, 254 },
547 245, 253, 254, 254, 254, 254, 254,
548 254, 254, 254, 254, 254, 251, 251, 254, /* VP8 only: */ 254, 254 }
551 static const uint8_t vp7_mv_default_prob
[2][17] = {
554 225, 146, 172, 147, 214, 39, 156,
555 247, 210, 135, 68, 138, 220, 239, 246 },
558 204, 170, 119, 235, 140, 230, 228,
559 244, 184, 201, 44, 173, 221, 239, 253 }
562 static const uint8_t vp8_mv_default_prob
[2][19] = {
565 225, 146, 172, 147, 214, 39, 156,
566 128, 129, 132, 75, 145, 178, 206, 239, 254, 254 },
569 204, 170, 119, 235, 140, 230, 228,
570 128, 130, 130, 74, 148, 180, 203, 236, 254, 254 }
573 static const uint8_t vp7_feature_value_size
[2][4] = {
578 static const int8_t vp7_feature_index_tree
[4][2] =
581 { -0, -1 }, // '00', '01'
582 { -2, -3 }, // '10', '11'
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,
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,
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,
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,
637 #endif /* AVCODEC_VP8DATA_H */