annotate vp8data.h @ 12197:fbf4d5b1b664 libavcodec

Remove FF_MM_SSE2/3 flags for CPUs where this is generally not faster than regular MMX code. Examples of this are the Core1 CPU. Instead, set a new flag, FF_MM_SSE2/3SLOW, which can be checked for particular SSE2/3 functions that have been checked specifically on such CPUs and are actually faster than their MMX counterparts. In addition, use this flag to enable particular VP8 and LPC SSE2 functions that are faster than their MMX counterparts. Based on a patch by Loren Merritt <lorenm AT u washington edu>.
author rbultje
date Mon, 19 Jul 2010 22:38:23 +0000
parents 3c51d7ac41c9
children cf675a4d5195
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
1 /**
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
2 * VP8 compatible video decoder
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
3 *
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
4 * Copyright (C) 2010 David Conrad
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
5 * Copyright (C) 2010 Ronald S. Bultje
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
6 *
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
7 * This file is part of FFmpeg.
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
8 *
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
9 * FFmpeg is free software; you can redistribute it and/or
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
10 * modify it under the terms of the GNU Lesser General Public
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
11 * License as published by the Free Software Foundation; either
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
12 * version 2.1 of the License, or (at your option) any later version.
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
13 *
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
14 * FFmpeg is distributed in the hope that it will be useful,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
15 * but WITHOUT ANY WARRANTY; without even the implied warranty of
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
16 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
17 * Lesser General Public License for more details.
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
18 *
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
19 * You should have received a copy of the GNU Lesser General Public
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
20 * License along with FFmpeg; if not, write to the Free Software
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
21 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
22 */
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
23
11930
1e8556438209 Fix a typo, spotted by Diego.
rbultje
parents: 11921
diff changeset
24 // TODO: move these #define and enum to a better header...
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
25
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
26 #define VP8_MAX_QUANT 127
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
27
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
28 enum dct_token {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
29 DCT_0,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
30 DCT_1,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
31 DCT_2,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
32 DCT_3,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
33 DCT_4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
34 DCT_CAT1,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
35 DCT_CAT2,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
36 DCT_CAT3,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
37 DCT_CAT4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
38 DCT_CAT5,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
39 DCT_CAT6,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
40 DCT_EOB,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
41
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
42 NUM_DCT_TOKENS
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
43 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
44
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
45 #include "h264pred.h"
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
46
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
47 // used to signal 4x4 intra pred in luma MBs
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
48 #define MODE_I4x4 4
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
49
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
50 enum inter_mvmode {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
51 VP8_MVMODE_NEAREST = MODE_I4x4 + 1,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
52 VP8_MVMODE_NEAR,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
53 VP8_MVMODE_ZERO,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
54 VP8_MVMODE_NEW,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
55 VP8_MVMODE_SPLIT
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
56 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
57
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
58 enum inter_submvmode {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
59 VP8_SUBMVMODE_LEFT4X4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
60 VP8_SUBMVMODE_TOP4X4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
61 VP8_SUBMVMODE_ZERO4X4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
62 VP8_SUBMVMODE_NEW4X4
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
63 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
64
11989
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
65 enum inter_splitmvmode {
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
66 VP8_SPLITMVMODE_16x8 = 0, ///< 2 16x8 blocks (vertical)
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
67 VP8_SPLITMVMODE_8x16, ///< 2 8x16 blocks (horizontal)
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
68 VP8_SPLITMVMODE_8x8, ///< 2x2 blocks of 8x8px each
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
69 VP8_SPLITMVMODE_4x4, ///< 4x4 blocks of 4x4px each
11990
3c51d7ac41c9 Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over all
rbultje
parents: 11989
diff changeset
70 VP8_SPLITMVMODE_NONE, ///< (only used in prediction) no split MVs
11989
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
71 };
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
72
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
73 static const uint8_t vp8_pred4x4_mode[] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
74 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
75 [DC_PRED8x8] = DC_PRED,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
76 [VERT_PRED8x8] = VERT_PRED,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
77 [HOR_PRED8x8] = HOR_PRED,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
78 [PLANE_PRED8x8] = TM_VP8_PRED,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
79 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
80
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
81 static const int8_t vp8_pred16x16_tree_intra[4][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
82 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
83 { -MODE_I4x4, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
84 { 2, 3 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
85 { -DC_PRED8x8, -VERT_PRED8x8 }, // '100', '101'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
86 { -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
87 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
88
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
89 static const int8_t vp8_pred16x16_tree_inter[4][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
90 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
91 { -DC_PRED8x8, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
92 { 2, 3 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
93 { -VERT_PRED8x8, -HOR_PRED8x8 }, // '100', '101'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
94 { -PLANE_PRED8x8, -MODE_I4x4 }, // '110', '111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
95 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
96
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
97 static const int vp8_mode_contexts[6][4] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
98 { 7, 1, 1, 143 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
99 { 14, 18, 14, 107 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
100 { 135, 64, 57, 68 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
101 { 60, 56, 128, 65 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
102 { 159, 134, 128, 34 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
103 { 234, 188, 128, 28 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
104 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
105
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
106 static const int8_t vp8_pred16x16_tree_mvinter[4][2] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
107 { -VP8_MVMODE_ZERO, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
108 { -VP8_MVMODE_NEAREST, 2 }, // '10'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
109 { -VP8_MVMODE_NEAR, 3 }, // '110'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
110 { -VP8_MVMODE_NEW, -VP8_MVMODE_SPLIT } // '1110', '1111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
111 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
112
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
113 static const int8_t vp8_small_mvtree[7][2] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
114 { 1, 4 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
115 { 2, 3 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
116 { -0, -1 }, // '000', '001'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
117 { -2, -3 }, // '010', '011'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
118 { 5, 6 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
119 { -4, -5 }, // '100', '101'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
120 { -6, -7 } // '110', '111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
121 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
122
11990
3c51d7ac41c9 Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over all
rbultje
parents: 11989
diff changeset
123 static const uint8_t vp8_mbsplits[5][16] = {
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
124 { 0, 0, 0, 0, 0, 0, 0, 0,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
125 1, 1, 1, 1, 1, 1, 1, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
126 { 0, 0, 1, 1, 0, 0, 1, 1,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
127 0, 0, 1, 1, 0, 0, 1, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
128 { 0, 0, 1, 1, 0, 0, 1, 1,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
129 2, 2, 3, 3, 2, 2, 3, 3 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
130 { 0, 1, 2, 3, 4, 5, 6, 7,
11990
3c51d7ac41c9 Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over all
rbultje
parents: 11989
diff changeset
131 8, 9, 10, 11, 12, 13, 14, 15 },
3c51d7ac41c9 Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over all
rbultje
parents: 11989
diff changeset
132 { 0, 0, 0, 0, 0, 0, 0, 0,
3c51d7ac41c9 Simplify MV parsing, removes laying out 2 or 4 (16x8/8x8/8x16) MVs over all
rbultje
parents: 11989
diff changeset
133 0, 0, 0, 0, 0, 0, 0, 0 }
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
134 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
135
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
136 static const uint8_t vp8_mbfirstidx[4][16] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
137 { 0, 8 }, { 0, 2 }, { 0, 2, 8, 10 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
138 { 0, 1, 2, 3, 4, 5, 6, 7,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
139 8, 9, 10, 11, 12, 13, 14, 15 }
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
140 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
141
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
142 static const int8_t vp8_mbsplit_tree[3][2] = {
11989
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
143 { -VP8_SPLITMVMODE_4x4, 1 }, // '0' - 16 individual MVs
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
144 { -VP8_SPLITMVMODE_8x8, 2 }, // '10' - quarter-based MVs
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
145 { -VP8_SPLITMVMODE_16x8, // '110' - top/bottom MVs
176c5deb6756 Optimize split MC, so we don't always do 4x4 blocks of 4x4pixels each, but
rbultje
parents: 11930
diff changeset
146 -VP8_SPLITMVMODE_8x16 } // '111' - left/right MVs
11921
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
147 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
148 static const uint8_t vp8_mbsplit_count[4] = { 2, 2, 4, 16 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
149 static const uint8_t vp8_mbsplit_prob[3] = { 110, 111, 150 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
150
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
151 static const uint8_t vp8_submv_prob[5][3] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
152 { 147, 136, 18 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
153 { 106, 145, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
154 { 179, 121, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
155 { 223, 1, 34 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
156 { 208, 1, 1 }
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
157 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
158
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
159 static const int8_t vp8_submv_ref_tree[3][2] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
160 { -VP8_SUBMVMODE_LEFT4X4, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
161 { -VP8_SUBMVMODE_TOP4X4, 2 }, // '10'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
162 { -VP8_SUBMVMODE_ZERO4X4, -VP8_SUBMVMODE_NEW4X4 } // '110', '111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
163 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
164
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
165 static const uint8_t vp8_pred16x16_prob_intra[4] = { 145, 156, 163, 128 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
166 static const uint8_t vp8_pred16x16_prob_inter[4] = { 112, 86, 140, 37 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
167
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
168 static const int8_t vp8_pred4x4_tree[9][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
169 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
170 { -DC_PRED, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
171 { -TM_VP8_PRED, 2 }, // '10'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
172 { -VERT_PRED, 3 }, // '110'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
173 { 4, 6 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
174 { -HOR_PRED, 5 }, // '11100'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
175 { -DIAG_DOWN_RIGHT_PRED, -VERT_RIGHT_PRED }, // '111010', '111011'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
176 { -DIAG_DOWN_LEFT_PRED, 7 }, // '11110'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
177 { -VERT_LEFT_PRED, 8 }, // '111110'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
178 { -HOR_DOWN_PRED, -HOR_UP_PRED }, // '1111110', '1111111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
179 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
180
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
181 static const int8_t vp8_pred8x8c_tree[3][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
182 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
183 { -DC_PRED8x8, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
184 { -VERT_PRED8x8, 2 }, // '10
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
185 { -HOR_PRED8x8, -PLANE_PRED8x8 }, // '110', '111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
186 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
187
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
188 static const uint8_t vp8_pred8x8c_prob_intra[3] = { 142, 114, 183 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
189 static const uint8_t vp8_pred8x8c_prob_inter[3] = { 162, 101, 204 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
190
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
191 static const uint8_t vp8_pred4x4_prob_inter[9] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
192 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
193 120, 90, 79, 133, 87, 85, 80, 111, 151
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
194 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
195
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
196 static const uint8_t vp8_pred4x4_prob_intra[10][10][9] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
197 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
198 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
199 { 39, 53, 200, 87, 26, 21, 43, 232, 171 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
200 { 56, 34, 51, 104, 114, 102, 29, 93, 77 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
201 { 88, 88, 147, 150, 42, 46, 45, 196, 205 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
202 { 107, 54, 32, 26, 51, 1, 81, 43, 31 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
203 { 39, 28, 85, 171, 58, 165, 90, 98, 64 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
204 { 34, 22, 116, 206, 23, 34, 43, 166, 73 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
205 { 34, 19, 21, 102, 132, 188, 16, 76, 124 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
206 { 68, 25, 106, 22, 64, 171, 36, 225, 114 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
207 { 62, 18, 78, 95, 85, 57, 50, 48, 51 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
208 { 43, 97, 183, 117, 85, 38, 35, 179, 61 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
209 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
210 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
211 { 112, 113, 77, 85, 179, 255, 38, 120, 114 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
212 { 40, 42, 1, 196, 245, 209, 10, 25, 109 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
213 { 193, 101, 35, 159, 215, 111, 89, 46, 111 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
214 { 100, 80, 8, 43, 154, 1, 51, 26, 71 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
215 { 88, 43, 29, 140, 166, 213, 37, 43, 154 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
216 { 61, 63, 30, 155, 67, 45, 68, 1, 209 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
217 { 41, 40, 5, 102, 211, 183, 4, 1, 221 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
218 { 142, 78, 78, 16, 255, 128, 34, 197, 171 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
219 { 51, 50, 17, 168, 209, 192, 23, 25, 82 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
220 { 60, 148, 31, 172, 219, 228, 21, 18, 111 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
221 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
222 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
223 { 175, 69, 143, 80, 85, 82, 72, 155, 103 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
224 { 56, 58, 10, 171, 218, 189, 17, 13, 152 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
225 { 231, 120, 48, 89, 115, 113, 120, 152, 112 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
226 { 144, 71, 10, 38, 171, 213, 144, 34, 26 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
227 { 114, 26, 17, 163, 44, 195, 21, 10, 173 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
228 { 121, 24, 80, 195, 26, 62, 44, 64, 85 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
229 { 63, 20, 8, 114, 114, 208, 12, 9, 226 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
230 { 170, 46, 55, 19, 136, 160, 33, 206, 71 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
231 { 81, 40, 11, 96, 182, 84, 29, 16, 36 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
232 { 152, 179, 64, 126, 170, 118, 46, 70, 95 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
233 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
234 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
235 { 75, 79, 123, 47, 51, 128, 81, 171, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
236 { 57, 17, 5, 71, 102, 57, 53, 41, 49 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
237 { 125, 98, 42, 88, 104, 85, 117, 175, 82 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
238 { 115, 21, 2, 10, 102, 255, 166, 23, 6 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
239 { 38, 33, 13, 121, 57, 73, 26, 1, 85 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
240 { 41, 10, 67, 138, 77, 110, 90, 47, 114 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
241 { 57, 18, 10, 102, 102, 213, 34, 20, 43 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
242 { 101, 29, 16, 10, 85, 128, 101, 196, 26 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
243 { 117, 20, 15, 36, 163, 128, 68, 1, 26 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
244 { 95, 84, 53, 89, 128, 100, 113, 101, 45 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
245 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
246 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
247 { 63, 59, 90, 180, 59, 166, 93, 73, 154 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
248 { 40, 40, 21, 116, 143, 209, 34, 39, 175 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
249 { 138, 31, 36, 171, 27, 166, 38, 44, 229 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
250 { 57, 46, 22, 24, 128, 1, 54, 17, 37 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
251 { 47, 15, 16, 183, 34, 223, 49, 45, 183 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
252 { 46, 17, 33, 183, 6, 98, 15, 32, 183 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
253 { 40, 3, 9, 115, 51, 192, 18, 6, 223 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
254 { 65, 32, 73, 115, 28, 128, 23, 128, 205 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
255 { 87, 37, 9, 115, 59, 77, 64, 21, 47 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
256 { 67, 87, 58, 169, 82, 115, 26, 59, 179 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
257 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
258 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
259 { 54, 57, 112, 184, 5, 41, 38, 166, 213 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
260 { 30, 34, 26, 133, 152, 116, 10, 32, 134 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
261 { 104, 55, 44, 218, 9, 54, 53, 130, 226 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
262 { 75, 32, 12, 51, 192, 255, 160, 43, 51 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
263 { 39, 19, 53, 221, 26, 114, 32, 73, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
264 { 31, 9, 65, 234, 2, 15, 1, 118, 73 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
265 { 56, 21, 23, 111, 59, 205, 45, 37, 192 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
266 { 88, 31, 35, 67, 102, 85, 55, 186, 85 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
267 { 55, 38, 70, 124, 73, 102, 1, 34, 98 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
268 { 64, 90, 70, 205, 40, 41, 23, 26, 57 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
269 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
270 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
271 { 86, 40, 64, 135, 148, 224, 45, 183, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
272 { 22, 26, 17, 131, 240, 154, 14, 1, 209 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
273 { 164, 50, 31, 137, 154, 133, 25, 35, 218 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
274 { 83, 12, 13, 54, 192, 255, 68, 47, 28 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
275 { 45, 16, 21, 91, 64, 222, 7, 1, 197 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
276 { 56, 21, 39, 155, 60, 138, 23, 102, 213 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
277 { 18, 11, 7, 63, 144, 171, 4, 4, 246 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
278 { 85, 26, 85, 85, 128, 128, 32, 146, 171 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
279 { 35, 27, 10, 146, 174, 171, 12, 26, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
280 { 51, 103, 44, 131, 131, 123, 31, 6, 158 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
281 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
282 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
283 { 68, 45, 128, 34, 1, 47, 11, 245, 171 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
284 { 62, 17, 19, 70, 146, 85, 55, 62, 70 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
285 { 102, 61, 71, 37, 34, 53, 31, 243, 192 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
286 { 75, 15, 9, 9, 64, 255, 184, 119, 16 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
287 { 37, 43, 37, 154, 100, 163, 85, 160, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
288 { 63, 9, 92, 136, 28, 64, 32, 201, 85 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
289 { 56, 8, 17, 132, 137, 255, 55, 116, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
290 { 86, 6, 28, 5, 64, 255, 25, 248, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
291 { 58, 15, 20, 82, 135, 57, 26, 121, 40 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
292 { 69, 60, 71, 38, 73, 119, 28, 222, 37 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
293 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
294 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
295 { 101, 75, 128, 139, 118, 146, 116, 128, 85 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
296 { 56, 41, 15, 176, 236, 85, 37, 9, 62 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
297 { 190, 80, 35, 99, 180, 80, 126, 54, 45 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
298 { 146, 36, 19, 30, 171, 255, 97, 27, 20 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
299 { 71, 30, 17, 119, 118, 255, 17, 18, 138 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
300 { 101, 38, 60, 138, 55, 70, 43, 26, 142 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
301 { 32, 41, 20, 117, 151, 142, 20, 21, 163 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
302 { 138, 45, 61, 62, 219, 1, 81, 188, 64 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
303 { 112, 19, 12, 61, 195, 128, 48, 4, 24 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
304 { 85, 126, 47, 87, 176, 51, 41, 20, 32 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
305 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
306 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
307 { 66, 102, 167, 99, 74, 62, 40, 234, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
308 { 41, 53, 9, 178, 241, 141, 26, 8, 107 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
309 { 134, 183, 89, 137, 98, 101, 106, 165, 148 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
310 { 104, 79, 12, 27, 217, 255, 87, 17, 7 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
311 { 74, 43, 26, 146, 73, 166, 49, 23, 157 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
312 { 65, 38, 105, 160, 51, 52, 31, 115, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
313 { 47, 41, 14, 110, 182, 183, 21, 17, 194 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
314 { 87, 68, 71, 44, 114, 51, 15, 186, 23 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
315 { 66, 45, 25, 102, 197, 189, 23, 18, 22 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
316 { 72, 187, 100, 130, 157, 111, 32, 75, 80 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
317 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
318 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
319
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
320 static const int8_t vp8_segmentid_tree[][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
321 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
322 { 1, 2 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
323 { -0, -1 }, // '00', '01'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
324 { -2, -3 }, // '10', '11'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
325 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
326
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
327 static const uint8_t vp8_coeff_band[16] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
328 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
329 0, 1, 2, 3, 6, 4, 5, 6, 6, 6, 6, 6, 6, 6, 6, 7
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
330 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
331
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
332 static const int8_t vp8_coeff_tree[NUM_DCT_TOKENS-1][2] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
333 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
334 { -DCT_EOB, 1 }, // '0'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
335 { -DCT_0, 2 }, // '10'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
336 { -DCT_1, 3 }, // '110'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
337 { 4, 6 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
338 { -DCT_2, 5 }, // '11100'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
339 { -DCT_3, -DCT_4 }, // '111010', '111011'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
340 { 7, 8 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
341 { -DCT_CAT1, -DCT_CAT2 }, // '111100', '111101'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
342 { 9, 10 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
343 { -DCT_CAT3, -DCT_CAT4 }, // '1111100', '1111101'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
344 { -DCT_CAT5, -DCT_CAT6 }, // '1111110', '1111111'
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
345 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
346
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
347 static const uint8_t vp8_dct_cat1_prob[] = { 159, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
348 static const uint8_t vp8_dct_cat2_prob[] = { 165, 145, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
349 static const uint8_t vp8_dct_cat3_prob[] = { 173, 148, 140, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
350 static const uint8_t vp8_dct_cat4_prob[] = { 176, 155, 140, 135, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
351 static const uint8_t vp8_dct_cat5_prob[] = { 180, 157, 141, 134, 130, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
352 static const uint8_t vp8_dct_cat6_prob[] = { 254, 254, 243, 230, 196, 177, 153, 140, 133, 130, 129, 0 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
353
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
354 static const uint8_t * const vp8_dct_cat_prob[6] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
355 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
356 vp8_dct_cat1_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
357 vp8_dct_cat2_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
358 vp8_dct_cat3_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
359 vp8_dct_cat4_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
360 vp8_dct_cat5_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
361 vp8_dct_cat6_prob,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
362 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
363
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
364 static const uint8_t vp8_dct_cat_offset[6] = { 5, 7, 11, 19, 35, 67 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
365
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
366 static const uint8_t vp8_token_default_probs[4][8][3][NUM_DCT_TOKENS-1] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
367 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
368 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
369 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
370 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
371 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
372 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
373 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
374 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
375 { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
376 { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
377 { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
378 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
379 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
380 { 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
381 { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
382 { 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
383 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
384 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
385 { 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
386 { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
387 { 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
388 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
389 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
390 { 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
391 { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
392 { 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
393 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
394 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
395 { 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
396 { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
397 { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
398 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
399 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
400 { 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
401 { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
402 { 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
403 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
404 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
405 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
406 { 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
407 { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
408 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
409 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
410 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
411 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
412 { 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
413 { 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
414 { 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
415 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
416 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
417 { 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
418 { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
419 { 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
420 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
421 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
422 { 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
423 { 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
424 { 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
425 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
426 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
427 { 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
428 { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
429 { 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
430 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
431 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
432 { 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
433 { 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
434 { 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
435 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
436 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
437 { 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
438 { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
439 { 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
440 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
441 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
442 { 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
443 { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
444 { 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
445 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
446 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
447 { 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
448 { 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
449 { 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
450 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
451 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
452 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
453 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
454 { 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
455 { 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
456 { 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
457 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
458 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
459 { 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
460 { 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
461 { 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
462 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
463 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
464 { 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
465 { 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
466 { 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
467 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
468 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
469 { 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
470 { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
471 { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
472 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
473 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
474 { 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
475 { 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
476 { 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
477 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
478 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
479 { 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
480 { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
481 { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
482 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
483 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
484 { 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
485 { 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
486 { 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
487 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
488 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
489 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
490 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
491 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
492 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
493 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
494 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
495 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
496 { 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
497 { 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
498 { 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
499 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
500 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
501 { 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
502 { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
503 { 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
504 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
505 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
506 { 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
507 { 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
508 { 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
509 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
510 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
511 { 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
512 { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
513 { 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
514 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
515 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
516 { 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
517 { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
518 { 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
519 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
520 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
521 { 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
522 { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
523 { 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
524 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
525 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
526 { 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
527 { 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
528 { 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
529 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
530 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
531 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
532 { 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
533 { 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
534 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
535 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
536 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
537
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
538 static const uint8_t vp8_token_update_probs[4][8][3][NUM_DCT_TOKENS-1] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
539 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
540 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
541 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
542 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
543 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
544 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
545 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
546 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
547 { 176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
548 { 223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
549 { 249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
550 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
551 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
552 { 255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
553 { 234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
554 { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
555 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
556 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
557 { 255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
558 { 239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
559 { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
560 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
561 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
562 { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
563 { 251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
564 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
565 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
566 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
567 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
568 { 251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
569 { 254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
570 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
571 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
572 { 255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
573 { 250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
574 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
575 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
576 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
577 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
578 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
579 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
580 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
581 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
582 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
583 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
584 { 217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
585 { 225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
586 { 234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
587 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
588 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
589 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
590 { 223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
591 { 238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
592 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
593 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
594 { 255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
595 { 249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
596 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
597 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
598 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
599 { 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
600 { 247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
601 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
602 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
603 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
604 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
605 { 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
606 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
607 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
608 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
609 { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
610 { 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
611 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
612 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
613 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
614 { 255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
615 { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
616 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
617 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
618 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
619 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
620 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
621 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
622 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
623 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
624 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
625 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
626 { 186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
627 { 234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
628 { 251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
629 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
630 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
631 { 255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
632 { 236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
633 { 251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
634 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
635 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
636 { 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
637 { 254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
638 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
639 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
640 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
641 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
642 { 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
643 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
644 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
645 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
646 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
647 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
648 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
649 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
650 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
651 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
652 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
653 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
654 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
655 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
656 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
657 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
658 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
659 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
660 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
661 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
662 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
663 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
664 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
665 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
666 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
667 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
668 { 248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
669 { 250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
670 { 248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
671 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
672 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
673 { 255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
674 { 246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
675 { 252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
676 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
677 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
678 { 255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
679 { 248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
680 { 253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
681 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
682 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
683 { 255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
684 { 245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
685 { 253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
686 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
687 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
688 { 255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
689 { 252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
690 { 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
691 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
692 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
693 { 255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
694 { 249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
695 { 255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
696 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
697 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
698 { 255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
699 { 250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
700 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
701 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
702 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
703 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
704 { 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
705 { 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
706 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
707 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
708 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
709
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
710 // fixme: copied from h264data.h
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
711 static const uint8_t zigzag_scan[16]={
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
712 0+0*4, 1+0*4, 0+1*4, 0+2*4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
713 1+1*4, 2+0*4, 3+0*4, 2+1*4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
714 1+2*4, 0+3*4, 1+3*4, 2+2*4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
715 3+1*4, 3+2*4, 2+3*4, 3+3*4,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
716 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
717
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
718 static const uint8_t vp8_dc_qlookup[VP8_MAX_QUANT+1] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
719 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
720 4, 5, 6, 7, 8, 9, 10, 10, 11, 12, 13, 14, 15, 16, 17, 17,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
721 18, 19, 20, 20, 21, 21, 22, 22, 23, 23, 24, 25, 25, 26, 27, 28,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
722 29, 30, 31, 32, 33, 34, 35, 36, 37, 37, 38, 39, 40, 41, 42, 43,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
723 44, 45, 46, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
724 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
725 75, 76, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
726 91, 93, 95, 96, 98, 100, 101, 102, 104, 106, 108, 110, 112, 114, 116, 118,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
727 122, 124, 126, 128, 130, 132, 134, 136, 138, 140, 143, 145, 148, 151, 154, 157,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
728 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
729
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
730 static const uint16_t vp8_ac_qlookup[VP8_MAX_QUANT+1] =
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
731 {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
732 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
733 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
734 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
735 52, 53, 54, 55, 56, 57, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
736 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100, 102, 104, 106, 108,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
737 110, 112, 114, 116, 119, 122, 125, 128, 131, 134, 137, 140, 143, 146, 149, 152,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
738 155, 158, 161, 164, 167, 170, 173, 177, 181, 185, 189, 193, 197, 201, 205, 209,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
739 213, 217, 221, 225, 229, 234, 239, 245, 249, 254, 259, 264, 269, 274, 279, 284,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
740 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
741
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
742 static const uint8_t vp8_mv_update_prob[2][19] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
743 { 237,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
744 246,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
745 253, 253, 254, 254, 254, 254, 254,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
746 254, 254, 254, 254, 254, 250, 250, 252, 254, 254 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
747 { 231,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
748 243,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
749 245, 253, 254, 254, 254, 254, 254,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
750 254, 254, 254, 254, 254, 251, 251, 254, 254, 254 }
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
751 };
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
752
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
753 static const uint8_t vp8_mv_default_prob[2][19] = {
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
754 { 162,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
755 128,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
756 225, 146, 172, 147, 214, 39, 156,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
757 128, 129, 132, 75, 145, 178, 206, 239, 254, 254 },
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
758 { 164,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
759 128,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
760 204, 170, 119, 235, 140, 230, 228,
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
761 128, 130, 130, 74, 148, 180, 203, 236, 254, 254 }
f2007d7c3f1d Native VP8 decoder.
rbultje
parents:
diff changeset
762 };