2 * VP8 compatible video decoder
4 * Copyright (C) 2010 David Conrad
5 * Copyright (C) 2010 Ronald S. Bultje
7 * This file is part of FFmpeg.
9 * FFmpeg is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Lesser General Public
11 * License as published by the Free Software Foundation; either
12 * version 2.1 of the License, or (at your option) any later version.
14 * FFmpeg is distributed in the hope that it will be useful,
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17 * Lesser General Public License for more details.
19 * You should have received a copy of the GNU Lesser General Public
20 * License along with FFmpeg; if not, write to the Free Software
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
24 #ifndef AVCODEC_VP8DATA_H
25 #define AVCODEC_VP8DATA_H
30 static const uint8_t vp8_pred4x4_mode[] =
32 [DC_PRED8x8] = DC_PRED,
33 [VERT_PRED8x8] = VERT_PRED,
34 [HOR_PRED8x8] = HOR_PRED,
35 [PLANE_PRED8x8] = TM_VP8_PRED,
38 static const int8_t vp8_pred16x16_tree_intra[4][2] =
40 { -MODE_I4x4, 1 }, // '0'
42 { -DC_PRED8x8, -VERT_PRED8x8 }, // '100', '101'
43 { -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
46 static const int8_t vp8_pred16x16_tree_inter[4][2] =
48 { -DC_PRED8x8, 1 }, // '0'
50 { -VERT_PRED8x8, -HOR_PRED8x8 }, // '100', '101'
51 { -PLANE_PRED8x8, -MODE_I4x4 }, // '110', '111'
54 static const int vp8_mode_contexts[6][4] = {
59 { 159, 134, 128, 34 },
60 { 234, 188, 128, 28 },
63 static const uint8_t vp8_mbsplits[5][16] = {
64 { 0, 0, 0, 0, 0, 0, 0, 0,
65 1, 1, 1, 1, 1, 1, 1, 1 },
66 { 0, 0, 1, 1, 0, 0, 1, 1,
67 0, 0, 1, 1, 0, 0, 1, 1 },
68 { 0, 0, 1, 1, 0, 0, 1, 1,
69 2, 2, 3, 3, 2, 2, 3, 3 },
70 { 0, 1, 2, 3, 4, 5, 6, 7,
71 8, 9, 10, 11, 12, 13, 14, 15 },
72 { 0, 0, 0, 0, 0, 0, 0, 0,
73 0, 0, 0, 0, 0, 0, 0, 0 }
76 static const uint8_t vp8_mbfirstidx[4][16] = {
77 { 0, 8 }, { 0, 2 }, { 0, 2, 8, 10 },
78 { 0, 1, 2, 3, 4, 5, 6, 7,
79 8, 9, 10, 11, 12, 13, 14, 15 }
82 static const uint8_t vp8_mbsplit_count[4] = { 2, 2, 4, 16 };
83 static const uint8_t vp8_mbsplit_prob[3] = { 110, 111, 150 };
85 static const uint8_t vp8_submv_prob[5][3] = {
93 static const uint8_t vp8_pred16x16_prob_intra[4] = { 145, 156, 163, 128 };
94 static const uint8_t vp8_pred16x16_prob_inter[4] = { 112, 86, 140, 37 };
96 static const int8_t vp8_pred4x4_tree[9][2] =
98 { -DC_PRED, 1 }, // '0'
99 { -TM_VP8_PRED, 2 }, // '10'
100 { -VERT_PRED, 3 }, // '110'
102 { -HOR_PRED, 5 }, // '11100'
103 { -DIAG_DOWN_RIGHT_PRED, -VERT_RIGHT_PRED }, // '111010', '111011'
104 { -DIAG_DOWN_LEFT_PRED, 7 }, // '11110'
105 { -VERT_LEFT_PRED, 8 }, // '111110'
106 { -HOR_DOWN_PRED, -HOR_UP_PRED }, // '1111110', '1111111'
109 static const int8_t vp8_pred8x8c_tree[3][2] =
111 { -DC_PRED8x8, 1 }, // '0'
112 { -VERT_PRED8x8, 2 }, // '10
113 { -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
116 static const uint8_t vp8_pred8x8c_prob_intra[3] = { 142, 114, 183 };
117 static const uint8_t vp8_pred8x8c_prob_inter[3] = { 162, 101, 204 };
119 static const uint8_t vp8_pred4x4_prob_inter[9] =
121 120, 90, 79, 133, 87, 85, 80, 111, 151
124 static const uint8_t vp8_pred4x4_prob_intra[10][10][9] =
127 { 39, 53, 200, 87, 26, 21, 43, 232, 171 },
128 { 56, 34, 51, 104, 114, 102, 29, 93, 77 },
129 { 88, 88, 147, 150, 42, 46, 45, 196, 205 },
130 { 107, 54, 32, 26, 51, 1, 81, 43, 31 },
131 { 39, 28, 85, 171, 58, 165, 90, 98, 64 },
132 { 34, 22, 116, 206, 23, 34, 43, 166, 73 },
133 { 34, 19, 21, 102, 132, 188, 16, 76, 124 },
134 { 68, 25, 106, 22, 64, 171, 36, 225, 114 },
135 { 62, 18, 78, 95, 85, 57, 50, 48, 51 },
136 { 43, 97, 183, 117, 85, 38, 35, 179, 61 },
139 { 112, 113, 77, 85, 179, 255, 38, 120, 114 },
140 { 40, 42, 1, 196, 245, 209, 10, 25, 109 },
141 { 193, 101, 35, 159, 215, 111, 89, 46, 111 },
142 { 100, 80, 8, 43, 154, 1, 51, 26, 71 },
143 { 88, 43, 29, 140, 166, 213, 37, 43, 154 },
144 { 61, 63, 30, 155, 67, 45, 68, 1, 209 },
145 { 41, 40, 5, 102, 211, 183, 4, 1, 221 },
146 { 142, 78, 78, 16, 255, 128, 34, 197, 171 },
147 { 51, 50, 17, 168, 209, 192, 23, 25, 82 },
148 { 60, 148, 31, 172, 219, 228, 21, 18, 111 },
151 { 175, 69, 143, 80, 85, 82, 72, 155, 103 },
152 { 56, 58, 10, 171, 218, 189, 17, 13, 152 },
153 { 231, 120, 48, 89, 115, 113, 120, 152, 112 },
154 { 144, 71, 10, 38, 171, 213, 144, 34, 26 },
155 { 114, 26, 17, 163, 44, 195, 21, 10, 173 },
156 { 121, 24, 80, 195, 26, 62, 44, 64, 85 },
157 { 63, 20, 8, 114, 114, 208, 12, 9, 226 },
158 { 170, 46, 55, 19, 136, 160, 33, 206, 71 },
159 { 81, 40, 11, 96, 182, 84, 29, 16, 36 },
160 { 152, 179, 64, 126, 170, 118, 46, 70, 95 },
163 { 75, 79, 123, 47, 51, 128, 81, 171, 1 },
164 { 57, 17, 5, 71, 102, 57, 53, 41, 49 },
165 { 125, 98, 42, 88, 104, 85, 117, 175, 82 },
166 { 115, 21, 2, 10, 102, 255, 166, 23, 6 },
167 { 38, 33, 13, 121, 57, 73, 26, 1, 85 },
168 { 41, 10, 67, 138, 77, 110, 90, 47, 114 },
169 { 57, 18, 10, 102, 102, 213, 34, 20, 43 },
170 { 101, 29, 16, 10, 85, 128, 101, 196, 26 },
171 { 117, 20, 15, 36, 163, 128, 68, 1, 26 },
172 { 95, 84, 53, 89, 128, 100, 113, 101, 45 },
175 { 63, 59, 90, 180, 59, 166, 93, 73, 154 },
176 { 40, 40, 21, 116, 143, 209, 34, 39, 175 },
177 { 138, 31, 36, 171, 27, 166, 38, 44, 229 },
178 { 57, 46, 22, 24, 128, 1, 54, 17, 37 },
179 { 47, 15, 16, 183, 34, 223, 49, 45, 183 },
180 { 46, 17, 33, 183, 6, 98, 15, 32, 183 },
181 { 40, 3, 9, 115, 51, 192, 18, 6, 223 },
182 { 65, 32, 73, 115, 28, 128, 23, 128, 205 },
183 { 87, 37, 9, 115, 59, 77, 64, 21, 47 },
184 { 67, 87, 58, 169, 82, 115, 26, 59, 179 },
187 { 54, 57, 112, 184, 5, 41, 38, 166, 213 },
188 { 30, 34, 26, 133, 152, 116, 10, 32, 134 },
189 { 104, 55, 44, 218, 9, 54, 53, 130, 226 },
190 { 75, 32, 12, 51, 192, 255, 160, 43, 51 },
191 { 39, 19, 53, 221, 26, 114, 32, 73, 255 },
192 { 31, 9, 65, 234, 2, 15, 1, 118, 73 },
193 { 56, 21, 23, 111, 59, 205, 45, 37, 192 },
194 { 88, 31, 35, 67, 102, 85, 55, 186, 85 },
195 { 55, 38, 70, 124, 73, 102, 1, 34, 98 },
196 { 64, 90, 70, 205, 40, 41, 23, 26, 57 },
199 { 86, 40, 64, 135, 148, 224, 45, 183, 128 },
200 { 22, 26, 17, 131, 240, 154, 14, 1, 209 },
201 { 164, 50, 31, 137, 154, 133, 25, 35, 218 },
202 { 83, 12, 13, 54, 192, 255, 68, 47, 28 },
203 { 45, 16, 21, 91, 64, 222, 7, 1, 197 },
204 { 56, 21, 39, 155, 60, 138, 23, 102, 213 },
205 { 18, 11, 7, 63, 144, 171, 4, 4, 246 },
206 { 85, 26, 85, 85, 128, 128, 32, 146, 171 },
207 { 35, 27, 10, 146, 174, 171, 12, 26, 128 },
208 { 51, 103, 44, 131, 131, 123, 31, 6, 158 },
211 { 68, 45, 128, 34, 1, 47, 11, 245, 171 },
212 { 62, 17, 19, 70, 146, 85, 55, 62, 70 },
213 { 102, 61, 71, 37, 34, 53, 31, 243, 192 },
214 { 75, 15, 9, 9, 64, 255, 184, 119, 16 },
215 { 37, 43, 37, 154, 100, 163, 85, 160, 1 },
216 { 63, 9, 92, 136, 28, 64, 32, 201, 85 },
217 { 56, 8, 17, 132, 137, 255, 55, 116, 128 },
218 { 86, 6, 28, 5, 64, 255, 25, 248, 1 },
219 { 58, 15, 20, 82, 135, 57, 26, 121, 40 },
220 { 69, 60, 71, 38, 73, 119, 28, 222, 37 },
223 { 101, 75, 128, 139, 118, 146, 116, 128, 85 },
224 { 56, 41, 15, 176, 236, 85, 37, 9, 62 },
225 { 190, 80, 35, 99, 180, 80, 126, 54, 45 },
226 { 146, 36, 19, 30, 171, 255, 97, 27, 20 },
227 { 71, 30, 17, 119, 118, 255, 17, 18, 138 },
228 { 101, 38, 60, 138, 55, 70, 43, 26, 142 },
229 { 32, 41, 20, 117, 151, 142, 20, 21, 163 },
230 { 138, 45, 61, 62, 219, 1, 81, 188, 64 },
231 { 112, 19, 12, 61, 195, 128, 48, 4, 24 },
232 { 85, 126, 47, 87, 176, 51, 41, 20, 32 },
235 { 66, 102, 167, 99, 74, 62, 40, 234, 128 },
236 { 41, 53, 9, 178, 241, 141, 26, 8, 107 },
237 { 134, 183, 89, 137, 98, 101, 106, 165, 148 },
238 { 104, 79, 12, 27, 217, 255, 87, 17, 7 },
239 { 74, 43, 26, 146, 73, 166, 49, 23, 157 },
240 { 65, 38, 105, 160, 51, 52, 31, 115, 128 },
241 { 47, 41, 14, 110, 182, 183, 21, 17, 194 },
242 { 87, 68, 71, 44, 114, 51, 15, 186, 23 },
243 { 66, 45, 25, 102, 197, 189, 23, 18, 22 },
244 { 72, 187, 100, 130, 157, 111, 32, 75, 80 },
248 static const int8_t vp8_segmentid_tree[][2] =
251 { -0, -1 }, // '00', '01'
252 { -2, -3 }, // '10', '11'
255 static const uint8_t vp8_coeff_band[16] =
257 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7
260 /* Inverse of vp8_coeff_band: mappings of bands to coefficient indexes.
261 * Each list is -1-terminated. */
262 static const int8_t vp8_coeff_band_indexes[8][10] =
270 {4, 7, 8, 9, 10, 11, 12, 13, 14, -1},
274 static const uint8_t vp8_dct_cat1_prob[] = { 159, 0 };
275 static const uint8_t vp8_dct_cat2_prob[] = { 165, 145, 0 };
276 static const uint8_t vp8_dct_cat3_prob[] = { 173, 148, 140, 0 };
277 static const uint8_t vp8_dct_cat4_prob[] = { 176, 155, 140, 135, 0 };
278 static const uint8_t vp8_dct_cat5_prob[] = { 180, 157, 141, 134, 130, 0 };
279 static const uint8_t vp8_dct_cat6_prob[] = { 254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0 };
281 // only used for cat3 and above; cat 1 and 2 are referenced directly
282 const uint8_t * const ff_vp8_dct_cat_prob[] =
290 static const uint8_t vp8_token_default_probs[4][8][3][NUM_DCT_TOKENS-1] =
294 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
295 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
296 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
299 { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
300 { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
301 { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
304 { 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
305 { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
306 { 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
309 { 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
310 { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
311 { 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
314 { 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
315 { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
316 { 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
319 { 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
320 { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
321 { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
324 { 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
325 { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
326 { 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
329 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
330 { 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
331 { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
336 { 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62 },
337 { 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1 },
338 { 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
341 { 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
342 { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
343 { 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
346 { 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
347 { 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
348 { 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
351 { 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
352 { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
353 { 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
356 { 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
357 { 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
358 { 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
361 { 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
362 { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
363 { 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
366 { 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
367 { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
368 { 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
371 { 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
372 { 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
373 { 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
378 { 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
379 { 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
380 { 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
383 { 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
384 { 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
385 { 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
388 { 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
389 { 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
390 { 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
393 { 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
394 { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
395 { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
398 { 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
399 { 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
400 { 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
403 { 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
404 { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
405 { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
408 { 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
409 { 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
410 { 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
413 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
414 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
415 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
420 { 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
421 { 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
422 { 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
425 { 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
426 { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
427 { 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
430 { 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
431 { 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
432 { 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
435 { 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
436 { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
437 { 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
440 { 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
441 { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
442 { 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
445 { 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
446 { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
447 { 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
450 { 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
451 { 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
452 { 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
455 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
456 { 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
457 { 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
462 static const uint8_t vp8_token_update_probs[4][8][3][NUM_DCT_TOKENS-1] =
466 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
467 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
468 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
471 { 176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
472 { 223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
473 { 249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
476 { 255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
477 { 234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
478 { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
481 { 255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
482 { 239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
483 { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
486 { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
487 { 251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
488 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
491 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
492 { 251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
493 { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
496 { 255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255 },
497 { 250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255 },
498 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
501 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
502 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
503 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
508 { 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
509 { 225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255 },
510 { 234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255 },
513 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
514 { 223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
515 { 238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255 },
518 { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
519 { 249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
520 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
523 { 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
524 { 247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
525 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
528 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
529 { 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
530 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
533 { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
534 { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
535 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
538 { 255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
539 { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
540 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
543 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
544 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
545 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
550 { 186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255 },
551 { 234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255 },
552 { 251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255 },
555 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
556 { 236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
557 { 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255 },
560 { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
561 { 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
562 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
565 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
566 { 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
567 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
570 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
571 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
572 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
575 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
576 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
577 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
580 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
581 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
582 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
585 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
586 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
587 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
592 { 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
593 { 250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255 },
594 { 248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255 },
597 { 255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
598 { 246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
599 { 252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255 },
602 { 255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
603 { 248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
604 { 253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255 },
607 { 255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
608 { 245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
609 { 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
612 { 255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
613 { 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
614 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
617 { 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
618 { 249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
619 { 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
622 { 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
623 { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
624 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
627 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
628 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
629 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
634 // fixme: copied from h264data.h
635 static const uint8_t zigzag_scan[16]={
636 0+0*4, 1+0*4, 0+1*4, 0+2*4,
637 1+1*4, 2+0*4, 3+0*4, 2+1*4,
638 1+2*4, 0+3*4, 1+3*4, 2+2*4,
639 3+1*4, 3+2*4, 2+3*4, 3+3*4,
642 static const uint8_t vp8_dc_qlookup[VP8_MAX_QUANT+1] =
644 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17,
645 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28,
646 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43,
647 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
648 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
649 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
650 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118,
651 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157,
654 static const uint16_t vp8_ac_qlookup[VP8_MAX_QUANT+1] =
656 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
657 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
658 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
659 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
660 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
661 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152,
662 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209,
663 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284,
666 static const uint8_t vp8_mv_update_prob[2][19] = {
669 253, 253, 254, 254, 254, 254, 254,
670 254, 254, 254, 254, 254, 250, 250, 252, 254, 254 },
673 245, 253, 254, 254, 254, 254, 254,
674 254, 254, 254, 254, 254, 251, 251, 254, 254, 254 }
677 static const uint8_t vp8_mv_default_prob[2][19] = {
680 225, 146, 172, 147, 214, 39, 156,
681 128, 129, 132, 75, 145, 178, 206, 239, 254, 254 },
684 204, 170, 119, 235, 140, 230, 228,
685 128, 130, 130, 74, 148, 180, 203, 236, 254, 254 }
688 #endif /* AVCODEC_VP8DATA_H */