1 /*
2 * vp8utils.c - VP8 pregenerated probability tables
3 *
4 * Use of this source code is governed by a BSD-style license
5 * that can be found in the LICENSE file in the root of the source
6 * tree. An additional intellectual property rights grant can be found
7 * in the file PATENTS. All contributing project authors may
8 * be found in the AUTHORS file in the root of the source tree.
9 */
10 #ifdef HAVE_CONFIG_H
11 #include "config.h"
12 #endif
13
14 #include <string.h>
15 #include "vp8utils.h"
16
17 /*---- entropy.c ----*/
18 /* *INDENT-OFF* */
19 const guint8 vp8_norm[256] = {
20 0, 7, 6, 6, 5, 5, 5, 5, 4, 4, 4, 4, 4, 4, 4, 4,
21 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3,
22 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
23 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2,
24 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
25 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
26 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
27 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1,
28 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
29 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
30 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
31 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
32 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
33 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
34 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
35 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
36 };
37 /* *INDENT-ON* */
38
39 /*---- entropymv.c ----*/
40 /* *INDENT-OFF* */
41 static const guint8 vp8_mv_update_probs[2][19] = {
42 {
43 237,
44 246,
45 253, 253, 254, 254, 254, 254, 254,
46 254, 254, 254, 254, 254, 250, 250, 252, 254, 254
47 },
48 {
49 231,
50 243,
51 245, 253, 254, 254, 254, 254, 254,
52 254, 254, 254, 254, 254, 251, 251, 254, 254, 254
53 }
54 };
55 /* *INDENT-ON* */
56
57 /* *INDENT-OFF* */
58 static const guint8 vp8_default_mv_probs[2][19] = {
59 {
60 /* row */
61 162, /* is short */
62 128, /* sign */
63 225, 146, 172, 147, 214, 39, 156, /* short tree */
64 128, 129, 132, 75, 145, 178, 206, 239, 254, 254 /* long bits */
65 },
66 {
67 /* same for column */
68 164, /* is short */
69 128,
70 204, 170, 119, 235, 140, 230, 228,
71 128, 130, 130, 74, 148, 180, 203, 236, 254, 254 /* long bits */
72 }
73 };
74 /* *INDENT-ON* */
75
76 /*---- vp8_entropymodedata.h ----*/
77 static const guint8 vp8_nk_y_mode_probs[4] = {
78 112, 86, 140, 37
79 };
80
81 static const guint8 vp8_kf_y_mode_probs[4] = {
82 145, 156, 163, 128
83 };
84
85 static const guint8 vp8_nk_uv_mode_probs[3] = {
86 162, 101, 204
87 };
88
89 static const guint8 vp8_kf_uv_mode_probs[3] = {
90 142, 114, 183
91 };
92
93 /*--- coefupdateprobs.h ----*/
94 /* *INDENT-OFF* */
95 static const guint8 vp8_token_update_probs[4][8][3][11] = {
96 {
97 {
98 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
99 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
100 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
101 },
102 {
103 {176, 246, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
104 {223, 241, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
105 {249, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
106 },
107 {
108 {255, 244, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
109 {234, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
110 {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
111 },
112 {
113 {255, 246, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
114 {239, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
115 {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
116 },
117 {
118 {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
119 {251, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
120 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
121 },
122 {
123 {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
124 {251, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
125 {254, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
126 },
127 {
128 {255, 254, 253, 255, 254, 255, 255, 255, 255, 255, 255, },
129 {250, 255, 254, 255, 254, 255, 255, 255, 255, 255, 255, },
130 {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
131 },
132 {
133 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
134 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
135 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
136 },
137 },
138 {
139 {
140 {217, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
141 {225, 252, 241, 253, 255, 255, 254, 255, 255, 255, 255, },
142 {234, 250, 241, 250, 253, 255, 253, 254, 255, 255, 255, },
143 },
144 {
145 {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
146 {223, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
147 {238, 253, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
148 },
149 {
150 {255, 248, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
151 {249, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
152 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
153 },
154 {
155 {255, 253, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
156 {247, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
157 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
158 },
159 {
160 {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
161 {252, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
162 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
163 },
164 {
165 {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
166 {253, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
167 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
168 },
169 {
170 {255, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
171 {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
172 {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
173 },
174 {
175 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
176 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
177 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
178 },
179 },
180 {
181 {
182 {186, 251, 250, 255, 255, 255, 255, 255, 255, 255, 255, },
183 {234, 251, 244, 254, 255, 255, 255, 255, 255, 255, 255, },
184 {251, 251, 243, 253, 254, 255, 254, 255, 255, 255, 255, },
185 },
186 {
187 {255, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
188 {236, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
189 {251, 253, 253, 254, 254, 255, 255, 255, 255, 255, 255, },
190 },
191 {
192 {255, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
193 {254, 254, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
194 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
195 },
196 {
197 {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
198 {254, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
199 {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
200 },
201 {
202 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
203 {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
204 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
205 },
206 {
207 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
208 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
209 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
210 },
211 {
212 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
213 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
214 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
215 },
216 {
217 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
218 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
219 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
220 },
221 },
222 {
223 {
224 {248, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
225 {250, 254, 252, 254, 255, 255, 255, 255, 255, 255, 255, },
226 {248, 254, 249, 253, 255, 255, 255, 255, 255, 255, 255, },
227 },
228 {
229 {255, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
230 {246, 253, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
231 {252, 254, 251, 254, 254, 255, 255, 255, 255, 255, 255, },
232 },
233 {
234 {255, 254, 252, 255, 255, 255, 255, 255, 255, 255, 255, },
235 {248, 254, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
236 {253, 255, 254, 254, 255, 255, 255, 255, 255, 255, 255, },
237 },
238 {
239 {255, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
240 {245, 251, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
241 {253, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
242 },
243 {
244 {255, 251, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
245 {252, 253, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
246 {255, 254, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
247 },
248 {
249 {255, 252, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
250 {249, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
251 {255, 255, 254, 255, 255, 255, 255, 255, 255, 255, 255, },
252 },
253 {
254 {255, 255, 253, 255, 255, 255, 255, 255, 255, 255, 255, },
255 {250, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
256 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
257 },
258 {
259 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
260 {254, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
261 {255, 255, 255, 255, 255, 255, 255, 255, 255, 255, 255, },
262 },
263 },
264 };
265 /* *INDENT-ON* */
266
267 /*---- default_coef_probs.h ----*/
268 /* *INDENT-OFF* */
269 static const guint8 vp8_default_token_probs[4][8][3][11] = {
270 { /* Block Type ( 0 ) */
271 { /* Coeff Band ( 0 )*/
272 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
273 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
274 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
275 },
276 { /* Coeff Band ( 1 )*/
277 { 253, 136, 254, 255, 228, 219, 128, 128, 128, 128, 128 },
278 { 189, 129, 242, 255, 227, 213, 255, 219, 128, 128, 128 },
279 { 106, 126, 227, 252, 214, 209, 255, 255, 128, 128, 128 }
280 },
281 { /* Coeff Band ( 2 )*/
282 { 1, 98, 248, 255, 236, 226, 255, 255, 128, 128, 128 },
283 { 181, 133, 238, 254, 221, 234, 255, 154, 128, 128, 128 },
284 { 78, 134, 202, 247, 198, 180, 255, 219, 128, 128, 128 }
285 },
286 { /* Coeff Band ( 3 )*/
287 { 1, 185, 249, 255, 243, 255, 128, 128, 128, 128, 128 },
288 { 184, 150, 247, 255, 236, 224, 128, 128, 128, 128, 128 },
289 { 77, 110, 216, 255, 236, 230, 128, 128, 128, 128, 128 }
290 },
291 { /* Coeff Band ( 4 )*/
292 { 1, 101, 251, 255, 241, 255, 128, 128, 128, 128, 128 },
293 { 170, 139, 241, 252, 236, 209, 255, 255, 128, 128, 128 },
294 { 37, 116, 196, 243, 228, 255, 255, 255, 128, 128, 128 }
295 },
296 { /* Coeff Band ( 5 )*/
297 { 1, 204, 254, 255, 245, 255, 128, 128, 128, 128, 128 },
298 { 207, 160, 250, 255, 238, 128, 128, 128, 128, 128, 128 },
299 { 102, 103, 231, 255, 211, 171, 128, 128, 128, 128, 128 }
300 },
301 { /* Coeff Band ( 6 )*/
302 { 1, 152, 252, 255, 240, 255, 128, 128, 128, 128, 128 },
303 { 177, 135, 243, 255, 234, 225, 128, 128, 128, 128, 128 },
304 { 80, 129, 211, 255, 194, 224, 128, 128, 128, 128, 128 }
305 },
306 { /* Coeff Band ( 7 )*/
307 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
308 { 246, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
309 { 255, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
310 }
311 },
312 { /* Block Type ( 1 ) */
313 { /* Coeff Band ( 0 )*/
314 { 198, 35, 237, 223, 193, 187, 162, 160, 145, 155, 62 },
315 { 131, 45, 198, 221, 172, 176, 220, 157, 252, 221, 1 },
316 { 68, 47, 146, 208, 149, 167, 221, 162, 255, 223, 128 }
317 },
318 { /* Coeff Band ( 1 )*/
319 { 1, 149, 241, 255, 221, 224, 255, 255, 128, 128, 128 },
320 { 184, 141, 234, 253, 222, 220, 255, 199, 128, 128, 128 },
321 { 81, 99, 181, 242, 176, 190, 249, 202, 255, 255, 128 }
322 },
323 { /* Coeff Band ( 2 )*/
324 { 1, 129, 232, 253, 214, 197, 242, 196, 255, 255, 128 },
325 { 99, 121, 210, 250, 201, 198, 255, 202, 128, 128, 128 },
326 { 23, 91, 163, 242, 170, 187, 247, 210, 255, 255, 128 }
327 },
328 { /* Coeff Band ( 3 )*/
329 { 1, 200, 246, 255, 234, 255, 128, 128, 128, 128, 128 },
330 { 109, 178, 241, 255, 231, 245, 255, 255, 128, 128, 128 },
331 { 44, 130, 201, 253, 205, 192, 255, 255, 128, 128, 128 }
332 },
333 { /* Coeff Band ( 4 )*/
334 { 1, 132, 239, 251, 219, 209, 255, 165, 128, 128, 128 },
335 { 94, 136, 225, 251, 218, 190, 255, 255, 128, 128, 128 },
336 { 22, 100, 174, 245, 186, 161, 255, 199, 128, 128, 128 }
337 },
338 { /* Coeff Band ( 5 )*/
339 { 1, 182, 249, 255, 232, 235, 128, 128, 128, 128, 128 },
340 { 124, 143, 241, 255, 227, 234, 128, 128, 128, 128, 128 },
341 { 35, 77, 181, 251, 193, 211, 255, 205, 128, 128, 128 }
342 },
343 { /* Coeff Band ( 6 )*/
344 { 1, 157, 247, 255, 236, 231, 255, 255, 128, 128, 128 },
345 { 121, 141, 235, 255, 225, 227, 255, 255, 128, 128, 128 },
346 { 45, 99, 188, 251, 195, 217, 255, 224, 128, 128, 128 }
347 },
348 { /* Coeff Band ( 7 )*/
349 { 1, 1, 251, 255, 213, 255, 128, 128, 128, 128, 128 },
350 { 203, 1, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
351 { 137, 1, 177, 255, 224, 255, 128, 128, 128, 128, 128 }
352 }
353 },
354 { /* Block Type ( 2 ) */
355 { /* Coeff Band ( 0 )*/
356 { 253, 9, 248, 251, 207, 208, 255, 192, 128, 128, 128 },
357 { 175, 13, 224, 243, 193, 185, 249, 198, 255, 255, 128 },
358 { 73, 17, 171, 221, 161, 179, 236, 167, 255, 234, 128 }
359 },
360 { /* Coeff Band ( 1 )*/
361 { 1, 95, 247, 253, 212, 183, 255, 255, 128, 128, 128 },
362 { 239, 90, 244, 250, 211, 209, 255, 255, 128, 128, 128 },
363 { 155, 77, 195, 248, 188, 195, 255, 255, 128, 128, 128 }
364 },
365 { /* Coeff Band ( 2 )*/
366 { 1, 24, 239, 251, 218, 219, 255, 205, 128, 128, 128 },
367 { 201, 51, 219, 255, 196, 186, 128, 128, 128, 128, 128 },
368 { 69, 46, 190, 239, 201, 218, 255, 228, 128, 128, 128 }
369 },
370 { /* Coeff Band ( 3 )*/
371 { 1, 191, 251, 255, 255, 128, 128, 128, 128, 128, 128 },
372 { 223, 165, 249, 255, 213, 255, 128, 128, 128, 128, 128 },
373 { 141, 124, 248, 255, 255, 128, 128, 128, 128, 128, 128 }
374 },
375 { /* Coeff Band ( 4 )*/
376 { 1, 16, 248, 255, 255, 128, 128, 128, 128, 128, 128 },
377 { 190, 36, 230, 255, 236, 255, 128, 128, 128, 128, 128 },
378 { 149, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
379 },
380 { /* Coeff Band ( 5 )*/
381 { 1, 226, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
382 { 247, 192, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
383 { 240, 128, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
384 },
385 { /* Coeff Band ( 6 )*/
386 { 1, 134, 252, 255, 255, 128, 128, 128, 128, 128, 128 },
387 { 213, 62, 250, 255, 255, 128, 128, 128, 128, 128, 128 },
388 { 55, 93, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
389 },
390 { /* Coeff Band ( 7 )*/
391 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
392 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 },
393 { 128, 128, 128, 128, 128, 128, 128, 128, 128, 128, 128 }
394 }
395 },
396 { /* Block Type ( 3 ) */
397 { /* Coeff Band ( 0 )*/
398 { 202, 24, 213, 235, 186, 191, 220, 160, 240, 175, 255 },
399 { 126, 38, 182, 232, 169, 184, 228, 174, 255, 187, 128 },
400 { 61, 46, 138, 219, 151, 178, 240, 170, 255, 216, 128 }
401 },
402 { /* Coeff Band ( 1 )*/
403 { 1, 112, 230, 250, 199, 191, 247, 159, 255, 255, 128 },
404 { 166, 109, 228, 252, 211, 215, 255, 174, 128, 128, 128 },
405 { 39, 77, 162, 232, 172, 180, 245, 178, 255, 255, 128 }
406 },
407 { /* Coeff Band ( 2 )*/
408 { 1, 52, 220, 246, 198, 199, 249, 220, 255, 255, 128 },
409 { 124, 74, 191, 243, 183, 193, 250, 221, 255, 255, 128 },
410 { 24, 71, 130, 219, 154, 170, 243, 182, 255, 255, 128 }
411 },
412 { /* Coeff Band ( 3 )*/
413 { 1, 182, 225, 249, 219, 240, 255, 224, 128, 128, 128 },
414 { 149, 150, 226, 252, 216, 205, 255, 171, 128, 128, 128 },
415 { 28, 108, 170, 242, 183, 194, 254, 223, 255, 255, 128 }
416 },
417 { /* Coeff Band ( 4 )*/
418 { 1, 81, 230, 252, 204, 203, 255, 192, 128, 128, 128 },
419 { 123, 102, 209, 247, 188, 196, 255, 233, 128, 128, 128 },
420 { 20, 95, 153, 243, 164, 173, 255, 203, 128, 128, 128 }
421 },
422 { /* Coeff Band ( 5 )*/
423 { 1, 222, 248, 255, 216, 213, 128, 128, 128, 128, 128 },
424 { 168, 175, 246, 252, 235, 205, 255, 255, 128, 128, 128 },
425 { 47, 116, 215, 255, 211, 212, 255, 255, 128, 128, 128 }
426 },
427 { /* Coeff Band ( 6 )*/
428 { 1, 121, 236, 253, 212, 214, 255, 255, 128, 128, 128 },
429 { 141, 84, 213, 252, 201, 202, 255, 219, 128, 128, 128 },
430 { 42, 80, 160, 240, 162, 185, 255, 205, 128, 128, 128 }
431 },
432 { /* Coeff Band ( 7 )*/
433 { 1, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
434 { 244, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 },
435 { 238, 1, 255, 128, 128, 128, 128, 128, 128, 128, 128 }
436 }
437 }
438 };
439 /* *INDENT-ON* */
440
441 void
gst_vp8_token_update_probs_init(GstVp8TokenProbs * probs)442 gst_vp8_token_update_probs_init (GstVp8TokenProbs * probs)
443 {
444 memcpy (probs->prob, vp8_token_update_probs, sizeof (vp8_token_update_probs));
445 }
446
447 void
gst_vp8_token_probs_init_defaults(GstVp8TokenProbs * probs)448 gst_vp8_token_probs_init_defaults (GstVp8TokenProbs * probs)
449 {
450 memcpy (probs->prob, vp8_default_token_probs,
451 sizeof (vp8_default_token_probs));
452 }
453
454 void
gst_vp8_mv_update_probs_init(GstVp8MvProbs * probs)455 gst_vp8_mv_update_probs_init (GstVp8MvProbs * probs)
456 {
457 memcpy (probs->prob, vp8_mv_update_probs, sizeof (vp8_mv_update_probs));
458 }
459
460 void
gst_vp8_mv_probs_init_defaults(GstVp8MvProbs * probs)461 gst_vp8_mv_probs_init_defaults (GstVp8MvProbs * probs)
462 {
463 memcpy (probs->prob, vp8_default_mv_probs, sizeof (vp8_default_mv_probs));
464 }
465
466 void
gst_vp8_mode_probs_init_defaults(GstVp8ModeProbs * probs,gboolean key_frame)467 gst_vp8_mode_probs_init_defaults (GstVp8ModeProbs * probs, gboolean key_frame)
468 {
469 if (key_frame) {
470 memcpy (probs->y_prob, vp8_kf_y_mode_probs, sizeof (vp8_kf_y_mode_probs));
471 memcpy (probs->uv_prob, vp8_kf_uv_mode_probs,
472 sizeof (vp8_kf_uv_mode_probs));
473 } else {
474 memcpy (probs->y_prob, vp8_nk_y_mode_probs, sizeof (vp8_nk_y_mode_probs));
475 memcpy (probs->uv_prob, vp8_nk_uv_mode_probs,
476 sizeof (vp8_nk_uv_mode_probs));
477 }
478 }
479