Commit | Line | Data |
---|---|---|
0da71265 MN |
1 | /* |
2 | * H26L/H264/AVC/JVT/14496-10/... encoder/decoder | |
3 | * Copyright (c) 2003 Michael Niedermayer <michaelni@gmx.at> | |
4 | * | |
5 | * This library is free software; you can redistribute it and/or | |
6 | * modify it under the terms of the GNU Lesser General Public | |
7 | * License as published by the Free Software Foundation; either | |
8 | * version 2 of the License, or (at your option) any later version. | |
9 | * | |
10 | * This library is distributed in the hope that it will be useful, | |
11 | * but WITHOUT ANY WARRANTY; without even the implied warranty of | |
12 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
13 | * Lesser General Public License for more details. | |
14 | * | |
15 | * You should have received a copy of the GNU Lesser General Public | |
16 | * License along with this library; if not, write to the Free Software | |
17 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA | |
18 | * | |
19 | */ | |
20 | ||
21 | /** | |
22 | * @file h264data.h | |
23 | * @brief | |
24 | * H264 / AVC / MPEG4 part10 codec data table | |
25 | * @author Michael Niedermayer <michaelni@gmx.at> | |
26 | */ | |
27 | ||
28 | #define VERT_PRED 0 | |
29 | #define HOR_PRED 1 | |
30 | #define DC_PRED 2 | |
31 | #define DIAG_DOWN_LEFT_PRED 3 | |
32 | #define DIAG_DOWN_RIGHT_PRED 4 | |
33 | #define VERT_RIGHT_PRED 5 | |
34 | #define HOR_DOWN_PRED 6 | |
35 | #define VERT_LEFT_PRED 7 | |
36 | #define HOR_UP_PRED 8 | |
37 | ||
38 | #define LEFT_DC_PRED 9 | |
39 | #define TOP_DC_PRED 10 | |
40 | #define DC_128_PRED 11 | |
41 | ||
42 | ||
43 | #define DC_PRED8x8 0 | |
44 | #define HOR_PRED8x8 1 | |
45 | #define VERT_PRED8x8 2 | |
46 | #define PLANE_PRED8x8 3 | |
47 | ||
48 | #define LEFT_DC_PRED8x8 4 | |
49 | #define TOP_DC_PRED8x8 5 | |
50 | #define DC_128_PRED8x8 6 | |
51 | ||
52 | #define EXTENDED_SAR 255 | |
53 | ||
5ff85f1d MN |
54 | static const AVRational pixel_aspect[14]={ |
55 | {0, 1}, | |
0da71265 MN |
56 | {1, 1}, |
57 | {12, 11}, | |
58 | {10, 11}, | |
59 | {16, 11}, | |
60 | {40, 33}, | |
61 | {24, 11}, | |
62 | {20, 11}, | |
63 | {32, 11}, | |
64 | {80, 33}, | |
65 | {18, 11}, | |
66 | {15, 11}, | |
67 | {64, 33}, | |
68 | {160,99}, | |
69 | }; | |
70 | ||
71 | static const uint8_t golomb_to_pict_type[5]= | |
72 | {P_TYPE, B_TYPE, I_TYPE, SP_TYPE, SI_TYPE}; | |
73 | ||
74 | static const uint8_t pict_type_to_golomb[7]= | |
75 | {-1, 2, 0, 1, -1, 4, 3}; | |
76 | ||
77 | static const uint8_t chroma_qp[52]={ | |
78 | 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11, | |
79 | 12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27, | |
80 | 28,29,29,30,31,32,32,33,34,34,35,35,36,36,37,37, | |
81 | 37,38,38,38,39,39,39,39 | |
82 | ||
83 | }; | |
84 | ||
85 | static const uint8_t golomb_to_intra4x4_cbp[48]={ | |
86 | 47, 31, 15, 0, 23, 27, 29, 30, 7, 11, 13, 14, 39, 43, 45, 46, | |
87 | 16, 3, 5, 10, 12, 19, 21, 26, 28, 35, 37, 42, 44, 1, 2, 4, | |
88 | 8, 17, 18, 20, 24, 6, 9, 22, 25, 32, 33, 34, 36, 40, 38, 41 | |
89 | }; | |
90 | ||
91 | static const uint8_t golomb_to_inter_cbp[48]={ | |
92 | 0, 16, 1, 2, 4, 8, 32, 3, 5, 10, 12, 15, 47, 7, 11, 13, | |
93 | 14, 6, 9, 31, 35, 37, 42, 44, 33, 34, 36, 40, 39, 43, 45, 46, | |
94 | 17, 18, 20, 24, 19, 21, 26, 28, 23, 27, 29, 30, 22, 25, 38, 41 | |
95 | }; | |
96 | ||
97 | static const uint8_t intra4x4_cbp_to_golomb[48]={ | |
98 | 3, 29, 30, 17, 31, 18, 37, 8, 32, 38, 19, 9, 20, 10, 11, 2, | |
99 | 16, 33, 34, 21, 35, 22, 39, 4, 36, 40, 23, 5, 24, 6, 7, 1, | |
100 | 41, 42, 43, 25, 44, 26, 46, 12, 45, 47, 27, 13, 28, 14, 15, 0 | |
101 | }; | |
102 | ||
103 | static const uint8_t inter_cbp_to_golomb[48]={ | |
104 | 0, 2, 3, 7, 4, 8, 17, 13, 5, 18, 9, 14, 10, 15, 16, 11, | |
105 | 1, 32, 33, 36, 34, 37, 44, 40, 35, 45, 38, 41, 39, 42, 43, 19, | |
106 | 6, 24, 25, 20, 26, 21, 46, 28, 27, 47, 22, 29, 23, 30, 31, 12 | |
107 | }; | |
108 | ||
109 | static const uint8_t chroma_dc_coeff_token_len[4*5]={ | |
110 | 2, 0, 0, 0, | |
111 | 6, 1, 0, 0, | |
112 | 6, 6, 3, 0, | |
113 | 6, 7, 7, 6, | |
114 | 6, 8, 8, 7, | |
115 | }; | |
116 | ||
117 | static const uint8_t chroma_dc_coeff_token_bits[4*5]={ | |
118 | 1, 0, 0, 0, | |
119 | 7, 1, 0, 0, | |
120 | 4, 6, 1, 0, | |
121 | 3, 3, 2, 5, | |
122 | 2, 3, 2, 0, | |
123 | }; | |
124 | ||
125 | static const uint8_t coeff_token_len[4][4*17]={ | |
126 | { | |
127 | 1, 0, 0, 0, | |
128 | 6, 2, 0, 0, 8, 6, 3, 0, 9, 8, 7, 5, 10, 9, 8, 6, | |
129 | 11,10, 9, 7, 13,11,10, 8, 13,13,11, 9, 13,13,13,10, | |
130 | 14,14,13,11, 14,14,14,13, 15,15,14,14, 15,15,15,14, | |
131 | 16,15,15,15, 16,16,16,15, 16,16,16,16, 16,16,16,16, | |
132 | }, | |
133 | { | |
134 | 2, 0, 0, 0, | |
135 | 6, 2, 0, 0, 6, 5, 3, 0, 7, 6, 6, 4, 8, 6, 6, 4, | |
136 | 8, 7, 7, 5, 9, 8, 8, 6, 11, 9, 9, 6, 11,11,11, 7, | |
137 | 12,11,11, 9, 12,12,12,11, 12,12,12,11, 13,13,13,12, | |
138 | 13,13,13,13, 13,14,13,13, 14,14,14,13, 14,14,14,14, | |
139 | }, | |
140 | { | |
141 | 4, 0, 0, 0, | |
142 | 6, 4, 0, 0, 6, 5, 4, 0, 6, 5, 5, 4, 7, 5, 5, 4, | |
143 | 7, 5, 5, 4, 7, 6, 6, 4, 7, 6, 6, 4, 8, 7, 7, 5, | |
144 | 8, 8, 7, 6, 9, 8, 8, 7, 9, 9, 8, 8, 9, 9, 9, 8, | |
145 | 10, 9, 9, 9, 10,10,10,10, 10,10,10,10, 10,10,10,10, | |
146 | }, | |
147 | { | |
148 | 6, 0, 0, 0, | |
149 | 6, 6, 0, 0, 6, 6, 6, 0, 6, 6, 6, 6, 6, 6, 6, 6, | |
150 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
151 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
152 | 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, 6, | |
153 | } | |
154 | }; | |
155 | ||
156 | static const uint8_t coeff_token_bits[4][4*17]={ | |
157 | { | |
158 | 1, 0, 0, 0, | |
159 | 5, 1, 0, 0, 7, 4, 1, 0, 7, 6, 5, 3, 7, 6, 5, 3, | |
160 | 7, 6, 5, 4, 15, 6, 5, 4, 11,14, 5, 4, 8,10,13, 4, | |
161 | 15,14, 9, 4, 11,10,13,12, 15,14, 9,12, 11,10,13, 8, | |
162 | 15, 1, 9,12, 11,14,13, 8, 7,10, 9,12, 4, 6, 5, 8, | |
163 | }, | |
164 | { | |
165 | 3, 0, 0, 0, | |
166 | 11, 2, 0, 0, 7, 7, 3, 0, 7,10, 9, 5, 7, 6, 5, 4, | |
167 | 4, 6, 5, 6, 7, 6, 5, 8, 15, 6, 5, 4, 11,14,13, 4, | |
168 | 15,10, 9, 4, 11,14,13,12, 8,10, 9, 8, 15,14,13,12, | |
169 | 11,10, 9,12, 7,11, 6, 8, 9, 8,10, 1, 7, 6, 5, 4, | |
170 | }, | |
171 | { | |
172 | 15, 0, 0, 0, | |
173 | 15,14, 0, 0, 11,15,13, 0, 8,12,14,12, 15,10,11,11, | |
174 | 11, 8, 9,10, 9,14,13, 9, 8,10, 9, 8, 15,14,13,13, | |
175 | 11,14,10,12, 15,10,13,12, 11,14, 9,12, 8,10,13, 8, | |
176 | 13, 7, 9,12, 9,12,11,10, 5, 8, 7, 6, 1, 4, 3, 2, | |
177 | }, | |
178 | { | |
179 | 3, 0, 0, 0, | |
180 | 0, 1, 0, 0, 4, 5, 6, 0, 8, 9,10,11, 12,13,14,15, | |
181 | 16,17,18,19, 20,21,22,23, 24,25,26,27, 28,29,30,31, | |
182 | 32,33,34,35, 36,37,38,39, 40,41,42,43, 44,45,46,47, | |
183 | 48,49,50,51, 52,53,54,55, 56,57,58,59, 60,61,62,63, | |
184 | } | |
185 | }; | |
186 | ||
187 | static const uint8_t total_zeros_len[16][16]= { | |
188 | {1,3,3,4,4,5,5,6,6,7,7,8,8,9,9,9}, | |
189 | {3,3,3,3,3,4,4,4,4,5,5,6,6,6,6}, | |
190 | {4,3,3,3,4,4,3,3,4,5,5,6,5,6}, | |
191 | {5,3,4,4,3,3,3,4,3,4,5,5,5}, | |
192 | {4,4,4,3,3,3,3,3,4,5,4,5}, | |
193 | {6,5,3,3,3,3,3,3,4,3,6}, | |
194 | {6,5,3,3,3,2,3,4,3,6}, | |
195 | {6,4,5,3,2,2,3,3,6}, | |
196 | {6,6,4,2,2,3,2,5}, | |
197 | {5,5,3,2,2,2,4}, | |
198 | {4,4,3,3,1,3}, | |
199 | {4,4,2,1,3}, | |
200 | {3,3,1,2}, | |
201 | {2,2,1}, | |
202 | {1,1}, | |
203 | }; | |
204 | ||
205 | static const uint8_t total_zeros_bits[16][16]= { | |
206 | {1,3,2,3,2,3,2,3,2,3,2,3,2,3,2,1}, | |
207 | {7,6,5,4,3,5,4,3,2,3,2,3,2,1,0}, | |
208 | {5,7,6,5,4,3,4,3,2,3,2,1,1,0}, | |
209 | {3,7,5,4,6,5,4,3,3,2,2,1,0}, | |
210 | {5,4,3,7,6,5,4,3,2,1,1,0}, | |
211 | {1,1,7,6,5,4,3,2,1,1,0}, | |
212 | {1,1,5,4,3,3,2,1,1,0}, | |
213 | {1,1,1,3,3,2,2,1,0}, | |
214 | {1,0,1,3,2,1,1,1}, | |
215 | {1,0,1,3,2,1,1}, | |
216 | {0,1,1,2,1,3}, | |
217 | {0,1,1,1,1}, | |
218 | {0,1,1,1}, | |
219 | {0,1,1}, | |
220 | {0,1}, | |
221 | }; | |
222 | ||
223 | static const uint8_t chroma_dc_total_zeros_len[3][4]= { | |
224 | { 1, 2, 3, 3,}, | |
225 | { 1, 2, 2, 0,}, | |
226 | { 1, 1, 0, 0,}, | |
227 | }; | |
228 | ||
229 | static const uint8_t chroma_dc_total_zeros_bits[3][4]= { | |
230 | { 1, 1, 1, 0,}, | |
231 | { 1, 1, 0, 0,}, | |
232 | { 1, 0, 0, 0,}, | |
233 | }; | |
234 | ||
235 | static const uint8_t run_len[7][16]={ | |
236 | {1,1}, | |
237 | {1,2,2}, | |
238 | {2,2,2,2}, | |
239 | {2,2,2,3,3}, | |
240 | {2,2,3,3,3,3}, | |
241 | {2,3,3,3,3,3,3}, | |
242 | {3,3,3,3,3,3,3,4,5,6,7,8,9,10,11}, | |
243 | }; | |
244 | ||
245 | static const uint8_t run_bits[7][16]={ | |
246 | {1,0}, | |
247 | {1,1,0}, | |
248 | {3,2,1,0}, | |
249 | {3,2,1,1,0}, | |
250 | {3,2,3,2,1,0}, | |
251 | {3,0,1,3,2,5,4}, | |
252 | {7,6,5,4,3,2,1,1,1,1,1,1,1,1,1}, | |
253 | }; | |
254 | ||
255 | /* | |
256 | o-o o-o | |
257 | / / / | |
258 | o-o o-o | |
259 | ,---' | |
260 | o-o o-o | |
261 | / / / | |
262 | o-o o-o | |
263 | */ | |
264 | ||
265 | static const uint8_t scan8[16 + 2*4]={ | |
266 | 4+1*8, 5+1*8, 4+2*8, 5+2*8, | |
267 | 6+1*8, 7+1*8, 6+2*8, 7+2*8, | |
268 | 4+3*8, 5+3*8, 4+4*8, 5+4*8, | |
269 | 6+3*8, 7+3*8, 6+4*8, 7+4*8, | |
270 | 1+1*8, 2+1*8, | |
271 | 1+2*8, 2+2*8, | |
272 | 1+4*8, 2+4*8, | |
273 | 1+5*8, 2+5*8, | |
274 | }; | |
275 | ||
276 | static const uint8_t zigzag_scan[16]={ | |
277 | 0+0*4, 1+0*4, 0+1*4, 0+2*4, | |
278 | 1+1*4, 2+0*4, 3+0*4, 2+1*4, | |
279 | 1+2*4, 0+3*4, 1+3*4, 2+2*4, | |
280 | 3+1*4, 3+2*4, 2+3*4, 3+3*4, | |
281 | }; | |
282 | ||
283 | static const uint8_t field_scan[16]={ | |
284 | 0+0*4, 0+1*4, 1+0*4, 0+2*4, | |
285 | 0+3*4, 1+1*4, 1+2*4, 1+3*4, | |
286 | 2+0*4, 2+1*4, 2+2*4, 2+3*4, | |
287 | 3+0*4, 3+1*4, 3+2*4, 3+3*4, | |
288 | }; | |
289 | ||
290 | static const uint8_t luma_dc_zigzag_scan[16]={ | |
291 | 0*16 + 0*64, 1*16 + 0*64, 2*16 + 0*64, 0*16 + 2*64, | |
292 | 3*16 + 0*64, 0*16 + 1*64, 1*16 + 1*64, 2*16 + 1*64, | |
293 | 1*16 + 2*64, 2*16 + 2*64, 3*16 + 2*64, 0*16 + 3*64, | |
294 | 3*16 + 1*64, 1*16 + 3*64, 2*16 + 3*64, 3*16 + 3*64, | |
295 | }; | |
296 | ||
297 | static const uint8_t luma_dc_field_scan[16]={ | |
298 | 0*16 + 0*64, 2*16 + 0*64, 1*16 + 0*64, 0*16 + 2*64, | |
299 | 2*16 + 2*64, 3*16 + 0*64, 1*16 + 2*64, 3*16 + 2*64, | |
300 | 0*16 + 1*64, 2*16 + 1*64, 0*16 + 3*64, 2*16 + 3*64, | |
301 | 1*16 + 1*64, 3*16 + 1*64, 1*16 + 3*64, 3*16 + 3*64, | |
302 | }; | |
303 | ||
304 | static const uint8_t chroma_dc_scan[4]={ | |
305 | (0+0*2)*16, (1+0*2)*16, | |
306 | (0+1*2)*16, (1+1*2)*16, //FIXME | |
307 | }; | |
308 | ||
43efd19a LM |
309 | static const uint8_t zigzag_scan8x8[64]={ |
310 | 0+0*8, 1+0*8, 0+1*8, 0+2*8, | |
311 | 1+1*8, 2+0*8, 3+0*8, 2+1*8, | |
312 | 1+2*8, 0+3*8, 0+4*8, 1+3*8, | |
313 | 2+2*8, 3+1*8, 4+0*8, 5+0*8, | |
314 | 4+1*8, 3+2*8, 2+3*8, 1+4*8, | |
315 | 0+5*8, 0+6*8, 1+5*8, 2+4*8, | |
316 | 3+3*8, 4+2*8, 5+1*8, 6+0*8, | |
317 | 7+0*8, 6+1*8, 5+2*8, 4+3*8, | |
318 | 3+4*8, 2+5*8, 1+6*8, 0+7*8, | |
319 | 1+7*8, 2+6*8, 3+5*8, 4+4*8, | |
320 | 5+3*8, 6+2*8, 7+1*8, 7+2*8, | |
321 | 6+3*8, 5+4*8, 4+5*8, 3+6*8, | |
322 | 2+7*8, 3+7*8, 4+6*8, 5+5*8, | |
323 | 6+4*8, 7+3*8, 7+4*8, 6+5*8, | |
324 | 5+6*8, 4+7*8, 5+7*8, 6+6*8, | |
325 | 7+5*8, 7+6*8, 6+7*8, 7+7*8, | |
326 | }; | |
327 | ||
328 | // zigzag_scan8x8_cavlc[i] = zigzag_scan8x8[(i/4) + 16*(i%4)] | |
329 | static const uint8_t zigzag_scan8x8_cavlc[64]={ | |
330 | 0+0*8, 1+1*8, 1+2*8, 2+2*8, | |
331 | 4+1*8, 0+5*8, 3+3*8, 7+0*8, | |
332 | 3+4*8, 1+7*8, 5+3*8, 6+3*8, | |
333 | 2+7*8, 6+4*8, 5+6*8, 7+5*8, | |
334 | 1+0*8, 2+0*8, 0+3*8, 3+1*8, | |
335 | 3+2*8, 0+6*8, 4+2*8, 6+1*8, | |
336 | 2+5*8, 2+6*8, 6+2*8, 5+4*8, | |
337 | 3+7*8, 7+3*8, 4+7*8, 7+6*8, | |
338 | 0+1*8, 3+0*8, 0+4*8, 4+0*8, | |
339 | 2+3*8, 1+5*8, 5+1*8, 5+2*8, | |
340 | 1+6*8, 3+5*8, 7+1*8, 4+5*8, | |
341 | 4+6*8, 7+4*8, 5+7*8, 6+7*8, | |
342 | 0+2*8, 2+1*8, 1+3*8, 5+0*8, | |
343 | 1+4*8, 2+4*8, 6+0*8, 4+3*8, | |
344 | 0+7*8, 4+4*8, 7+2*8, 3+6*8, | |
345 | 5+5*8, 6+5*8, 6+6*8, 7+7*8, | |
346 | }; | |
347 | ||
8a3b6f92 | 348 | #define MB_TYPE_REF0 MB_TYPE_ACPRED //dirty but it fits in 16bit |
43efd19a | 349 | #define MB_TYPE_8x8DCT 0x01000000 |
7bc9090a | 350 | #define IS_REF0(a) ((a)&MB_TYPE_REF0) |
43efd19a LM |
351 | #define IS_8x8DCT(a) ((a)&MB_TYPE_8x8DCT) |
352 | ||
7bc9090a | 353 | |
0da71265 MN |
354 | typedef struct IMbInfo{ |
355 | uint16_t type; | |
356 | uint8_t pred_mode; | |
357 | uint8_t cbp; | |
358 | } IMbInfo; | |
359 | ||
360 | static const IMbInfo i_mb_type_info[26]={ | |
361 | {MB_TYPE_INTRA4x4 , -1, -1}, | |
362 | {MB_TYPE_INTRA16x16, 2, 0}, | |
363 | {MB_TYPE_INTRA16x16, 1, 0}, | |
364 | {MB_TYPE_INTRA16x16, 0, 0}, | |
365 | {MB_TYPE_INTRA16x16, 3, 0}, | |
366 | {MB_TYPE_INTRA16x16, 2, 16}, | |
367 | {MB_TYPE_INTRA16x16, 1, 16}, | |
368 | {MB_TYPE_INTRA16x16, 0, 16}, | |
369 | {MB_TYPE_INTRA16x16, 3, 16}, | |
370 | {MB_TYPE_INTRA16x16, 2, 32}, | |
371 | {MB_TYPE_INTRA16x16, 1, 32}, | |
372 | {MB_TYPE_INTRA16x16, 0, 32}, | |
373 | {MB_TYPE_INTRA16x16, 3, 32}, | |
374 | {MB_TYPE_INTRA16x16, 2, 15+0}, | |
375 | {MB_TYPE_INTRA16x16, 1, 15+0}, | |
376 | {MB_TYPE_INTRA16x16, 0, 15+0}, | |
377 | {MB_TYPE_INTRA16x16, 3, 15+0}, | |
378 | {MB_TYPE_INTRA16x16, 2, 15+16}, | |
379 | {MB_TYPE_INTRA16x16, 1, 15+16}, | |
380 | {MB_TYPE_INTRA16x16, 0, 15+16}, | |
381 | {MB_TYPE_INTRA16x16, 3, 15+16}, | |
382 | {MB_TYPE_INTRA16x16, 2, 15+32}, | |
383 | {MB_TYPE_INTRA16x16, 1, 15+32}, | |
384 | {MB_TYPE_INTRA16x16, 0, 15+32}, | |
385 | {MB_TYPE_INTRA16x16, 3, 15+32}, | |
386 | {MB_TYPE_INTRA_PCM , -1, -1}, | |
387 | }; | |
388 | ||
389 | typedef struct PMbInfo{ | |
390 | uint16_t type; | |
391 | uint8_t partition_count; | |
392 | } PMbInfo; | |
393 | ||
394 | static const PMbInfo p_mb_type_info[5]={ | |
395 | {MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, | |
396 | {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, | |
397 | {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P1L0, 2}, | |
b75e10d5 LM |
398 | {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0, 4}, |
399 | {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P1L0|MB_TYPE_REF0, 4}, | |
0da71265 MN |
400 | }; |
401 | ||
402 | static const PMbInfo p_sub_mb_type_info[4]={ | |
403 | {MB_TYPE_16x16|MB_TYPE_P0L0 , 1}, | |
404 | {MB_TYPE_16x8 |MB_TYPE_P0L0 , 2}, | |
405 | {MB_TYPE_8x16 |MB_TYPE_P0L0 , 2}, | |
406 | {MB_TYPE_8x8 |MB_TYPE_P0L0 , 4}, | |
407 | }; | |
408 | ||
409 | static const PMbInfo b_mb_type_info[23]={ | |
7bc9090a | 410 | {MB_TYPE_DIRECT2 , 1, }, |
0da71265 MN |
411 | {MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, |
412 | {MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, | |
413 | {MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, | |
414 | {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
415 | {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
416 | {MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
417 | {MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
418 | {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, | |
419 | {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L1, 2, }, | |
420 | {MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
421 | {MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
422 | {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
423 | {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
424 | {MB_TYPE_16x8 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
425 | {MB_TYPE_8x16 |MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
426 | {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
427 | {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0 , 2, }, | |
428 | {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
429 | {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
430 | {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
431 | {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
b75e10d5 | 432 | {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, |
0da71265 MN |
433 | }; |
434 | ||
435 | static const PMbInfo b_sub_mb_type_info[13]={ | |
7bc9090a | 436 | {MB_TYPE_DIRECT2 , 1, }, |
0da71265 MN |
437 | {MB_TYPE_16x16|MB_TYPE_P0L0 , 1, }, |
438 | {MB_TYPE_16x16 |MB_TYPE_P0L1 , 1, }, | |
439 | {MB_TYPE_16x16|MB_TYPE_P0L0|MB_TYPE_P0L1 , 1, }, | |
440 | {MB_TYPE_16x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
441 | {MB_TYPE_8x16 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 2, }, | |
442 | {MB_TYPE_16x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
443 | {MB_TYPE_8x16 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 2, }, | |
444 | {MB_TYPE_16x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
445 | {MB_TYPE_8x16 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 2, }, | |
446 | {MB_TYPE_8x8 |MB_TYPE_P0L0 |MB_TYPE_P1L0 , 4, }, | |
447 | {MB_TYPE_8x8 |MB_TYPE_P0L1 |MB_TYPE_P1L1, 4, }, | |
448 | {MB_TYPE_8x8 |MB_TYPE_P0L0|MB_TYPE_P0L1|MB_TYPE_P1L0|MB_TYPE_P1L1, 4, }, | |
449 | }; | |
450 | ||
451 | ||
452 | static const uint8_t rem6[52]={ | |
453 | 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, 4, 5, 0, 1, 2, 3, | |
454 | }; | |
455 | ||
456 | static const uint8_t div6[52]={ | |
457 | 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 5, 5, 5, 5, 5, 5, 6, 6, 6, 6, 6, 6, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, | |
458 | }; | |
459 | ||
460 | static const uint16_t dequant_coeff[52][16]={ | |
461 | { 10, 13, 10, 13, 13, 16, 13, 16, 10, 13, 10, 13, 13, 16, 13, 16, }, | |
462 | { 11, 14, 11, 14, 14, 18, 14, 18, 11, 14, 11, 14, 14, 18, 14, 18, }, | |
463 | { 13, 16, 13, 16, 16, 20, 16, 20, 13, 16, 13, 16, 16, 20, 16, 20, }, | |
464 | { 14, 18, 14, 18, 18, 23, 18, 23, 14, 18, 14, 18, 18, 23, 18, 23, }, | |
465 | { 16, 20, 16, 20, 20, 25, 20, 25, 16, 20, 16, 20, 20, 25, 20, 25, }, | |
466 | { 18, 23, 18, 23, 23, 29, 23, 29, 18, 23, 18, 23, 23, 29, 23, 29, }, | |
467 | { 20, 26, 20, 26, 26, 32, 26, 32, 20, 26, 20, 26, 26, 32, 26, 32, }, | |
468 | { 22, 28, 22, 28, 28, 36, 28, 36, 22, 28, 22, 28, 28, 36, 28, 36, }, | |
469 | { 26, 32, 26, 32, 32, 40, 32, 40, 26, 32, 26, 32, 32, 40, 32, 40, }, | |
470 | { 28, 36, 28, 36, 36, 46, 36, 46, 28, 36, 28, 36, 36, 46, 36, 46, }, | |
471 | { 32, 40, 32, 40, 40, 50, 40, 50, 32, 40, 32, 40, 40, 50, 40, 50, }, | |
472 | { 36, 46, 36, 46, 46, 58, 46, 58, 36, 46, 36, 46, 46, 58, 46, 58, }, | |
473 | { 40, 52, 40, 52, 52, 64, 52, 64, 40, 52, 40, 52, 52, 64, 52, 64, }, | |
474 | { 44, 56, 44, 56, 56, 72, 56, 72, 44, 56, 44, 56, 56, 72, 56, 72, }, | |
475 | { 52, 64, 52, 64, 64, 80, 64, 80, 52, 64, 52, 64, 64, 80, 64, 80, }, | |
476 | { 56, 72, 56, 72, 72, 92, 72, 92, 56, 72, 56, 72, 72, 92, 72, 92, }, | |
477 | { 64, 80, 64, 80, 80, 100, 80, 100, 64, 80, 64, 80, 80, 100, 80, 100, }, | |
478 | { 72, 92, 72, 92, 92, 116, 92, 116, 72, 92, 72, 92, 92, 116, 92, 116, }, | |
479 | { 80, 104, 80, 104, 104, 128, 104, 128, 80, 104, 80, 104, 104, 128, 104, 128, }, | |
480 | { 88, 112, 88, 112, 112, 144, 112, 144, 88, 112, 88, 112, 112, 144, 112, 144, }, | |
481 | { 104, 128, 104, 128, 128, 160, 128, 160, 104, 128, 104, 128, 128, 160, 128, 160, }, | |
482 | { 112, 144, 112, 144, 144, 184, 144, 184, 112, 144, 112, 144, 144, 184, 144, 184, }, | |
483 | { 128, 160, 128, 160, 160, 200, 160, 200, 128, 160, 128, 160, 160, 200, 160, 200, }, | |
484 | { 144, 184, 144, 184, 184, 232, 184, 232, 144, 184, 144, 184, 184, 232, 184, 232, }, | |
485 | { 160, 208, 160, 208, 208, 256, 208, 256, 160, 208, 160, 208, 208, 256, 208, 256, }, | |
486 | { 176, 224, 176, 224, 224, 288, 224, 288, 176, 224, 176, 224, 224, 288, 224, 288, }, | |
487 | { 208, 256, 208, 256, 256, 320, 256, 320, 208, 256, 208, 256, 256, 320, 256, 320, }, | |
488 | { 224, 288, 224, 288, 288, 368, 288, 368, 224, 288, 224, 288, 288, 368, 288, 368, }, | |
489 | { 256, 320, 256, 320, 320, 400, 320, 400, 256, 320, 256, 320, 320, 400, 320, 400, }, | |
490 | { 288, 368, 288, 368, 368, 464, 368, 464, 288, 368, 288, 368, 368, 464, 368, 464, }, | |
491 | { 320, 416, 320, 416, 416, 512, 416, 512, 320, 416, 320, 416, 416, 512, 416, 512, }, | |
492 | { 352, 448, 352, 448, 448, 576, 448, 576, 352, 448, 352, 448, 448, 576, 448, 576, }, | |
493 | { 416, 512, 416, 512, 512, 640, 512, 640, 416, 512, 416, 512, 512, 640, 512, 640, }, | |
494 | { 448, 576, 448, 576, 576, 736, 576, 736, 448, 576, 448, 576, 576, 736, 576, 736, }, | |
495 | { 512, 640, 512, 640, 640, 800, 640, 800, 512, 640, 512, 640, 640, 800, 640, 800, }, | |
496 | { 576, 736, 576, 736, 736, 928, 736, 928, 576, 736, 576, 736, 736, 928, 736, 928, }, | |
497 | { 640, 832, 640, 832, 832,1024, 832,1024, 640, 832, 640, 832, 832,1024, 832,1024, }, | |
498 | { 704, 896, 704, 896, 896,1152, 896,1152, 704, 896, 704, 896, 896,1152, 896,1152, }, | |
499 | { 832,1024, 832,1024, 1024,1280,1024,1280, 832,1024, 832,1024, 1024,1280,1024,1280, }, | |
500 | { 896,1152, 896,1152, 1152,1472,1152,1472, 896,1152, 896,1152, 1152,1472,1152,1472, }, | |
501 | {1024,1280,1024,1280, 1280,1600,1280,1600, 1024,1280,1024,1280, 1280,1600,1280,1600, }, | |
502 | {1152,1472,1152,1472, 1472,1856,1472,1856, 1152,1472,1152,1472, 1472,1856,1472,1856, }, | |
503 | {1280,1664,1280,1664, 1664,2048,1664,2048, 1280,1664,1280,1664, 1664,2048,1664,2048, }, | |
504 | {1408,1792,1408,1792, 1792,2304,1792,2304, 1408,1792,1408,1792, 1792,2304,1792,2304, }, | |
505 | {1664,2048,1664,2048, 2048,2560,2048,2560, 1664,2048,1664,2048, 2048,2560,2048,2560, }, | |
506 | {1792,2304,1792,2304, 2304,2944,2304,2944, 1792,2304,1792,2304, 2304,2944,2304,2944, }, | |
507 | {2048,2560,2048,2560, 2560,3200,2560,3200, 2048,2560,2048,2560, 2560,3200,2560,3200, }, | |
508 | {2304,2944,2304,2944, 2944,3712,2944,3712, 2304,2944,2304,2944, 2944,3712,2944,3712, }, | |
509 | {2560,3328,2560,3328, 3328,4096,3328,4096, 2560,3328,2560,3328, 3328,4096,3328,4096, }, | |
510 | {2816,3584,2816,3584, 3584,4608,3584,4608, 2816,3584,2816,3584, 3584,4608,3584,4608, }, | |
511 | {3328,4096,3328,4096, 4096,5120,4096,5120, 3328,4096,3328,4096, 4096,5120,4096,5120, }, | |
512 | {3584,4608,3584,4608, 4608,5888,4608,5888, 3584,4608,3584,4608, 4608,5888,4608,5888, }, | |
513 | //{4096,5120,4096,5120, 5120,6400,5120,6400, 4096,5120,4096,5120, 5120,6400,5120,6400, }, | |
514 | //{4608,5888,4608,5888, 5888,7424,5888,7424, 4608,5888,4608,5888, 5888,7424,5888,7424, }, | |
515 | }; | |
516 | ||
43efd19a LM |
517 | static const int dequant8_coeff_init_scan[16] = { |
518 | 0,3,4,3, 3,1,5,1, 4,5,2,5, 3,1,5,1 | |
519 | }; | |
520 | static const int dequant8_coeff_init[6][6]={ | |
521 | {20,18,32,19,25,24}, | |
522 | {22,19,35,21,28,26}, | |
523 | {26,23,42,24,33,31}, | |
524 | {28,25,45,26,35,33}, | |
525 | {32,28,51,30,40,38}, | |
526 | {36,32,58,34,46,43}, | |
527 | }; | |
528 | ||
0da71265 MN |
529 | #define QUANT_SHIFT 22 |
530 | ||
531 | static const int quant_coeff[52][16]={ | |
532 | { 419430,258111,419430,258111,258111,167772,258111,167772,419430,258111,419430,258111,258111,167772,258111,167772,}, | |
533 | { 381300,239675,381300,239675,239675,149131,239675,149131,381300,239675,381300,239675,239675,149131,239675,149131,}, | |
534 | { 322639,209715,322639,209715,209715,134218,209715,134218,322639,209715,322639,209715,209715,134218,209715,134218,}, | |
535 | { 299593,186414,299593,186414,186414,116711,186414,116711,299593,186414,299593,186414,186414,116711,186414,116711,}, | |
536 | { 262144,167772,262144,167772,167772,107374,167772,107374,262144,167772,262144,167772,167772,107374,167772,107374,}, | |
537 | { 233017,145889,233017,145889,145889, 92564,145889, 92564,233017,145889,233017,145889,145889, 92564,145889, 92564,}, | |
538 | { 209715,129056,209715,129056,129056, 83886,129056, 83886,209715,129056,209715,129056,129056, 83886,129056, 83886,}, | |
539 | { 190650,119837,190650,119837,119837, 74565,119837, 74565,190650,119837,190650,119837,119837, 74565,119837, 74565,}, | |
540 | { 161319,104858,161319,104858,104858, 67109,104858, 67109,161319,104858,161319,104858,104858, 67109,104858, 67109,}, | |
541 | { 149797, 93207,149797, 93207, 93207, 58356, 93207, 58356,149797, 93207,149797, 93207, 93207, 58356, 93207, 58356,}, | |
542 | { 131072, 83886,131072, 83886, 83886, 53687, 83886, 53687,131072, 83886,131072, 83886, 83886, 53687, 83886, 53687,}, | |
543 | { 116508, 72944,116508, 72944, 72944, 46282, 72944, 46282,116508, 72944,116508, 72944, 72944, 46282, 72944, 46282,}, | |
544 | { 104858, 64528,104858, 64528, 64528, 41943, 64528, 41943,104858, 64528,104858, 64528, 64528, 41943, 64528, 41943,}, | |
545 | { 95325, 59919, 95325, 59919, 59919, 37283, 59919, 37283, 95325, 59919, 95325, 59919, 59919, 37283, 59919, 37283,}, | |
546 | { 80660, 52429, 80660, 52429, 52429, 33554, 52429, 33554, 80660, 52429, 80660, 52429, 52429, 33554, 52429, 33554,}, | |
547 | { 74898, 46603, 74898, 46603, 46603, 29178, 46603, 29178, 74898, 46603, 74898, 46603, 46603, 29178, 46603, 29178,}, | |
548 | { 65536, 41943, 65536, 41943, 41943, 26844, 41943, 26844, 65536, 41943, 65536, 41943, 41943, 26844, 41943, 26844,}, | |
549 | { 58254, 36472, 58254, 36472, 36472, 23141, 36472, 23141, 58254, 36472, 58254, 36472, 36472, 23141, 36472, 23141,}, | |
550 | { 52429, 32264, 52429, 32264, 32264, 20972, 32264, 20972, 52429, 32264, 52429, 32264, 32264, 20972, 32264, 20972,}, | |
551 | { 47663, 29959, 47663, 29959, 29959, 18641, 29959, 18641, 47663, 29959, 47663, 29959, 29959, 18641, 29959, 18641,}, | |
552 | { 40330, 26214, 40330, 26214, 26214, 16777, 26214, 16777, 40330, 26214, 40330, 26214, 26214, 16777, 26214, 16777,}, | |
553 | { 37449, 23302, 37449, 23302, 23302, 14589, 23302, 14589, 37449, 23302, 37449, 23302, 23302, 14589, 23302, 14589,}, | |
554 | { 32768, 20972, 32768, 20972, 20972, 13422, 20972, 13422, 32768, 20972, 32768, 20972, 20972, 13422, 20972, 13422,}, | |
555 | { 29127, 18236, 29127, 18236, 18236, 11570, 18236, 11570, 29127, 18236, 29127, 18236, 18236, 11570, 18236, 11570,}, | |
556 | { 26214, 16132, 26214, 16132, 16132, 10486, 16132, 10486, 26214, 16132, 26214, 16132, 16132, 10486, 16132, 10486,}, | |
557 | { 23831, 14980, 23831, 14980, 14980, 9321, 14980, 9321, 23831, 14980, 23831, 14980, 14980, 9321, 14980, 9321,}, | |
558 | { 20165, 13107, 20165, 13107, 13107, 8389, 13107, 8389, 20165, 13107, 20165, 13107, 13107, 8389, 13107, 8389,}, | |
559 | { 18725, 11651, 18725, 11651, 11651, 7294, 11651, 7294, 18725, 11651, 18725, 11651, 11651, 7294, 11651, 7294,}, | |
560 | { 16384, 10486, 16384, 10486, 10486, 6711, 10486, 6711, 16384, 10486, 16384, 10486, 10486, 6711, 10486, 6711,}, | |
561 | { 14564, 9118, 14564, 9118, 9118, 5785, 9118, 5785, 14564, 9118, 14564, 9118, 9118, 5785, 9118, 5785,}, | |
562 | { 13107, 8066, 13107, 8066, 8066, 5243, 8066, 5243, 13107, 8066, 13107, 8066, 8066, 5243, 8066, 5243,}, | |
563 | { 11916, 7490, 11916, 7490, 7490, 4660, 7490, 4660, 11916, 7490, 11916, 7490, 7490, 4660, 7490, 4660,}, | |
564 | { 10082, 6554, 10082, 6554, 6554, 4194, 6554, 4194, 10082, 6554, 10082, 6554, 6554, 4194, 6554, 4194,}, | |
565 | { 9362, 5825, 9362, 5825, 5825, 3647, 5825, 3647, 9362, 5825, 9362, 5825, 5825, 3647, 5825, 3647,}, | |
566 | { 8192, 5243, 8192, 5243, 5243, 3355, 5243, 3355, 8192, 5243, 8192, 5243, 5243, 3355, 5243, 3355,}, | |
567 | { 7282, 4559, 7282, 4559, 4559, 2893, 4559, 2893, 7282, 4559, 7282, 4559, 4559, 2893, 4559, 2893,}, | |
568 | { 6554, 4033, 6554, 4033, 4033, 2621, 4033, 2621, 6554, 4033, 6554, 4033, 4033, 2621, 4033, 2621,}, | |
569 | { 5958, 3745, 5958, 3745, 3745, 2330, 3745, 2330, 5958, 3745, 5958, 3745, 3745, 2330, 3745, 2330,}, | |
570 | { 5041, 3277, 5041, 3277, 3277, 2097, 3277, 2097, 5041, 3277, 5041, 3277, 3277, 2097, 3277, 2097,}, | |
571 | { 4681, 2913, 4681, 2913, 2913, 1824, 2913, 1824, 4681, 2913, 4681, 2913, 2913, 1824, 2913, 1824,}, | |
572 | { 4096, 2621, 4096, 2621, 2621, 1678, 2621, 1678, 4096, 2621, 4096, 2621, 2621, 1678, 2621, 1678,}, | |
573 | { 3641, 2280, 3641, 2280, 2280, 1446, 2280, 1446, 3641, 2280, 3641, 2280, 2280, 1446, 2280, 1446,}, | |
574 | { 3277, 2016, 3277, 2016, 2016, 1311, 2016, 1311, 3277, 2016, 3277, 2016, 2016, 1311, 2016, 1311,}, | |
575 | { 2979, 1872, 2979, 1872, 1872, 1165, 1872, 1165, 2979, 1872, 2979, 1872, 1872, 1165, 1872, 1165,}, | |
576 | { 2521, 1638, 2521, 1638, 1638, 1049, 1638, 1049, 2521, 1638, 2521, 1638, 1638, 1049, 1638, 1049,}, | |
577 | { 2341, 1456, 2341, 1456, 1456, 912, 1456, 912, 2341, 1456, 2341, 1456, 1456, 912, 1456, 912,}, | |
578 | { 2048, 1311, 2048, 1311, 1311, 839, 1311, 839, 2048, 1311, 2048, 1311, 1311, 839, 1311, 839,}, | |
579 | { 1820, 1140, 1820, 1140, 1140, 723, 1140, 723, 1820, 1140, 1820, 1140, 1140, 723, 1140, 723,}, | |
580 | { 1638, 1008, 1638, 1008, 1008, 655, 1008, 655, 1638, 1008, 1638, 1008, 1008, 655, 1008, 655,}, | |
581 | { 1489, 936, 1489, 936, 936, 583, 936, 583, 1489, 936, 1489, 936, 936, 583, 936, 583,}, | |
582 | { 1260, 819, 1260, 819, 819, 524, 819, 524, 1260, 819, 1260, 819, 819, 524, 819, 524,}, | |
583 | { 1170, 728, 1170, 728, 728, 456, 728, 456, 1170, 728, 1170, 728, 728, 456, 728, 456,}, | |
584 | }; | |
980a82b7 MN |
585 | |
586 | ||
587 | /* Deblocking filter (p153) */ | |
588 | static const int alpha_table[52] = { | |
589 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
590 | 0, 0, 0, 0, 0, 0, 4, 4, 5, 6, | |
591 | 7, 8, 9, 10, 12, 13, 15, 17, 20, 22, | |
592 | 25, 28, 32, 36, 40, 45, 50, 56, 63, 71, | |
593 | 80, 90,101,113,127,144,162,182,203,226, | |
594 | 255, 255 | |
595 | }; | |
596 | static const int beta_table[52] = { | |
597 | 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, | |
598 | 0, 0, 0, 0, 0, 0, 2, 2, 2, 3, | |
599 | 3, 3, 3, 4, 4, 4, 6, 6, 7, 7, | |
600 | 8, 8, 9, 9, 10, 10, 11, 11, 12, 12, | |
601 | 13, 13, 14, 14, 15, 15, 16, 16, 17, 17, | |
602 | 18, 18 | |
603 | }; | |
604 | static const int tc0_table[52][3] = { | |
605 | { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, | |
606 | { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, | |
607 | { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 0 }, { 0, 0, 1 }, | |
608 | { 0, 0, 1 }, { 0, 0, 1 }, { 0, 0, 1 }, { 0, 1, 1 }, { 0, 1, 1 }, { 1, 1, 1 }, | |
609 | { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 1 }, { 1, 1, 2 }, { 1, 1, 2 }, { 1, 1, 2 }, | |
610 | { 1, 1, 2 }, { 1, 2, 3 }, { 1, 2, 3 }, { 2, 2, 3 }, { 2, 2, 4 }, { 2, 3, 4 }, | |
611 | { 2, 3, 4 }, { 3, 3, 5 }, { 3, 4, 6 }, { 3, 4, 6 }, { 4, 5, 7 }, { 4, 5, 8 }, | |
612 | { 4, 6, 9 }, { 5, 7,10 }, { 6, 8,11 }, { 6, 8,13 }, { 7,10,14 }, { 8,11,16 }, | |
613 | { 9,12,18 }, {10,13,20 }, {11,15,23 }, {13,17,25 } | |
614 | }; | |
e5017ab8 LA |
615 | |
616 | /* Cabac pre state table */ | |
617 | ||
43efd19a | 618 | static const int cabac_context_init_I[460][2] = |
e5017ab8 LA |
619 | { |
620 | /* 0 - 10 */ | |
621 | { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
622 | { 2, 54 }, { 3, 74 }, { -28,127 }, { -23, 104 }, | |
623 | { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
624 | ||
625 | /* 11 - 23 unsused for I */ | |
626 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
627 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
628 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
629 | { 0, 0 }, | |
630 | ||
631 | /* 24- 39 */ | |
632 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
633 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
634 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
635 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
636 | ||
637 | /* 40 - 53 */ | |
638 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
639 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
640 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
641 | { 0, 0 }, { 0, 0 }, | |
642 | ||
643 | /* 54 - 59 */ | |
644 | { 0, 0 }, { 0, 0 }, { 0, 0 }, { 0, 0 }, | |
645 | { 0, 0 }, { 0, 0 }, | |
646 | ||
647 | /* 60 - 69 */ | |
648 | { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
649 | { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
650 | { 13, 41 }, { 3, 62 }, | |
651 | ||
652 | /* 70 -> 87 */ | |
653 | { 0, 11 }, { 1, 55 }, { 0, 69 }, { -17, 127 }, | |
654 | { -13, 102 },{ 0, 82 }, { -7, 74 }, { -21, 107 }, | |
655 | { -27, 127 },{ -31, 127 },{ -24, 127 }, { -18, 95 }, | |
656 | { -27, 127 },{ -21, 114 },{ -30, 127 }, { -17, 123 }, | |
657 | { -12, 115 },{ -16, 122 }, | |
658 | ||
659 | /* 88 -> 104 */ | |
660 | { -11, 115 },{ -12, 63 }, { -2, 68 }, { -15, 84 }, | |
661 | { -13, 104 },{ -3, 70 }, { -8, 93 }, { -10, 90 }, | |
662 | { -30, 127 },{ -1, 74 }, { -6, 97 }, { -7, 91 }, | |
663 | { -20, 127 },{ -4, 56 }, { -5, 82 }, { -7, 76 }, | |
664 | { -22, 125 }, | |
665 | ||
666 | /* 105 -> 135 */ | |
667 | { -7, 93 }, { -11, 87 }, { -3, 77 }, { -5, 71 }, | |
668 | { -4, 63 }, { -4, 68 }, { -12, 84 }, { -7, 62 }, | |
669 | { -7, 65 }, { 8, 61 }, { 5, 56 }, { -2, 66 }, | |
670 | { 1, 64 }, { 0, 61 }, { -2, 78 }, { 1, 50 }, | |
671 | { 7, 52 }, { 10, 35 }, { 0, 44 }, { 11, 38 }, | |
672 | { 1, 45 }, { 0, 46 }, { 5, 44 }, { 31, 17 }, | |
673 | { 1, 51 }, { 7, 50 }, { 28, 19 }, { 16, 33 }, | |
674 | { 14, 62 }, { -13, 108 },{ -15, 100 }, | |
675 | ||
676 | /* 136 -> 165 */ | |
677 | { -13, 101 },{ -13, 91 }, { -12, 94 }, { -10, 88 }, | |
678 | { -16, 84 }, { -10, 86 }, { -7, 83 }, { -13, 87 }, | |
679 | { -19, 94 }, { 1, 70 }, { 0, 72 }, { -5, 74 }, | |
680 | { 18, 59 }, { -8, 102 }, { -15, 100 }, { 0, 95 }, | |
681 | { -4, 75 }, { 2, 72 }, { -11, 75 }, { -3, 71 }, | |
682 | { 15, 46 }, { -13, 69 }, { 0, 62 }, { 0, 65 }, | |
683 | { 21, 37 }, { -15, 72 }, { 9, 57 }, { 16, 54 }, | |
684 | { 0, 62 }, { 12, 72 }, | |
685 | ||
686 | /* 166 -> 196 */ | |
687 | { 24, 0 }, { 15, 9 }, { 8, 25 }, { 13, 18 }, | |
688 | { 15, 9 }, { 13, 19 }, { 10, 37 }, { 12, 18 }, | |
689 | { 6, 29 }, { 20, 33 }, { 15, 30 }, { 4, 45 }, | |
690 | { 1, 58 }, { 0, 62 }, { 7, 61 }, { 12, 38 }, | |
691 | { 11, 45 }, { 15, 39 }, { 11, 42 }, { 13, 44 }, | |
692 | { 16, 45 }, { 12, 41 }, { 10, 49 }, { 30, 34 }, | |
693 | { 18, 42 }, { 10, 55 }, { 17, 51 }, { 17, 46 }, | |
694 | { 0, 89 }, { 26, -19 }, { 22, -17 }, | |
695 | ||
696 | /* 197 -> 226 */ | |
697 | { 26, -17 }, { 30, -25 }, { 28, -20 }, { 33, -23 }, | |
698 | { 37, -27 }, { 33, -23 }, { 40, -28 }, { 38, -17 }, | |
699 | { 33, -11 }, { 40, -15 }, { 41, -6 }, { 38, 1 }, | |
700 | { 41, 17 }, { 30, -6 }, { 27, 3 }, { 26, 22 }, | |
701 | { 37, -16 }, { 35, -4 }, { 38, -8 }, { 38, -3 }, | |
702 | { 37, 3 }, { 38, 5 }, { 42, 0 }, { 35, 16 }, | |
703 | { 39, 22 }, { 14, 48 }, { 27, 37 }, { 21, 60 }, | |
704 | { 12, 68 }, { 2, 97 }, | |
705 | ||
706 | /* 227 -> 251 */ | |
707 | { -3, 71 }, { -6, 42 }, { -5, 50 }, { -3, 54 }, | |
708 | { -2, 62 }, { 0, 58 }, { 1, 63 }, { -2, 72 }, | |
709 | { -1, 74 }, { -9, 91 }, { -5, 67 }, { -5, 27 }, | |
710 | { -3, 39 }, { -2, 44 }, { 0, 46 }, { -16, 64 }, | |
711 | { -8, 68 }, { -10, 78 }, { -6, 77 }, { -10, 86 }, | |
712 | { -12, 92 }, { -15, 55 }, { -10, 60 }, { -6, 62 }, | |
713 | { -4, 65 }, | |
714 | ||
715 | /* 252 -> 275 */ | |
716 | { -12, 73 }, { -8, 76 }, { -7, 80 }, { -9, 88 }, | |
717 | { -17, 110 },{ -11, 97 }, { -20, 84 }, { -11, 79 }, | |
718 | { -6, 73 }, { -4, 74 }, { -13, 86 }, { -13, 96 }, | |
719 | { -11, 97 }, { -19, 117 },{ -8, 78 }, { -5, 33 }, | |
720 | { -4, 48 }, { -2, 53 }, { -3, 62 }, { -13, 71 }, | |
721 | { -10, 79 }, { -12, 86 }, { -13, 90 }, { -14, 97 }, | |
722 | ||
723 | /* 276 a bit special (not used, bypass is used instead) */ | |
724 | { 0, 0 }, | |
725 | ||
726 | /* 277 -> 307 */ | |
727 | { -6, 93 }, { -6, 84 }, { -8, 79 }, { 0, 66 }, | |
728 | { -1, 71 }, { 0, 62 }, { -2, 60 }, { -2, 59 }, | |
729 | { -5, 75 }, { -3, 62 }, { -4, 58 }, { -9, 66 }, | |
730 | { -1, 79 }, { 0, 71 }, { 3, 68 }, { 10, 44 }, | |
731 | { -7, 62 }, { 15, 36 }, { 14, 40 }, { 16, 27 }, | |
732 | { 12, 29 }, { 1, 44 }, { 20, 36 }, { 18, 32 }, | |
733 | { 5, 42 }, { 1, 48 }, { 10, 62 }, { 17, 46 }, | |
734 | { 9, 64 }, { -12, 104 },{ -11, 97 }, | |
735 | ||
736 | /* 308 -> 337 */ | |
737 | { -16, 96 }, { -7, 88 }, { -8, 85 }, { -7, 85 }, | |
738 | { -9, 85 }, { -13, 88 }, { 4, 66 }, { -3, 77 }, | |
739 | { -3, 76 }, { -6, 76 }, { 10, 58 }, { -1, 76 }, | |
740 | { -1, 83 }, { -7, 99 }, { -14, 95 }, { 2, 95 }, | |
741 | { 0, 76 }, { -5, 74 }, { 0, 70 }, { -11, 75 }, | |
742 | { 1, 68 }, { 0, 65 }, { -14, 73 }, { 3, 62 }, | |
743 | { 4, 62 }, { -1, 68 }, { -13, 75 }, { 11, 55 }, | |
744 | { 5, 64 }, { 12, 70 }, | |
745 | ||
746 | /* 338 -> 368 */ | |
747 | { 15, 6 }, { 6, 19 }, { 7, 16 }, { 12, 14 }, | |
748 | { 18, 13 }, { 13, 11 }, { 13, 15 }, { 15, 16 }, | |
749 | { 12, 23 }, { 13, 23 }, { 15, 20 }, { 14, 26 }, | |
750 | { 14, 44 }, { 17, 40 }, { 17, 47 }, { 24, 17 }, | |
751 | { 21, 21 }, { 25, 22 }, { 31, 27 }, { 22, 29 }, | |
752 | { 19, 35 }, { 14, 50 }, { 10, 57 }, { 7, 63 }, | |
753 | { -2, 77 }, { -4, 82 }, { -3, 94 }, { 9, 69 }, | |
754 | { -12, 109 },{ 36, -35 }, { 36, -34 }, | |
755 | ||
756 | /* 369 -> 398 */ | |
757 | { 32, -26 }, { 37, -30 }, { 44, -32 }, { 34, -18 }, | |
758 | { 34, -15 }, { 40, -15 }, { 33, -7 }, { 35, -5 }, | |
759 | { 33, 0 }, { 38, 2 }, { 33, 13 }, { 23, 35 }, | |
760 | { 13, 58 }, { 29, -3 }, { 26, 0 }, { 22, 30 }, | |
761 | { 31, -7 }, { 35, -15 }, { 34, -3 }, { 34, 3 }, | |
762 | { 36, -1 }, { 34, 5 }, { 32, 11 }, { 35, 5 }, | |
763 | { 34, 12 }, { 39, 11 }, { 30, 29 }, { 34, 26 }, | |
43efd19a LM |
764 | { 29, 39 }, { 19, 66 }, |
765 | ||
766 | /* 399 -> 435 */ | |
767 | { 31, 21 }, { 31, 31 }, { 25, 50 }, | |
768 | { -17, 120 }, { -20, 112 }, { -18, 114 }, { -11, 85 }, | |
769 | { -15, 92 }, { -14, 89 }, { -26, 71 }, { -15, 81 }, | |
770 | { -14, 80 }, { 0, 68 }, { -14, 70 }, { -24, 56 }, | |
771 | { -23, 68 }, { -24, 50 }, { -11, 74 }, { 23, -13 }, | |
772 | { 26, -13 }, { 40, -15 }, { 49, -14 }, { 44, 3 }, | |
773 | { 45, 6 }, { 44, 34 }, { 33, 54 }, { 19, 82 }, | |
774 | { -3, 75 }, { -1, 23 }, { 1, 34 }, { 1, 43 }, | |
775 | { 0, 54 }, { -2, 55 }, { 0, 61 }, { 1, 64 }, | |
776 | { 0, 68 }, { -9, 92 }, | |
777 | ||
778 | /* 436 -> 459 */ | |
779 | { -14, 106 }, { -13, 97 }, { -15, 90 }, { -12, 90 }, | |
780 | { -18, 88 }, { -10, 73 }, { -9, 79 }, { -14, 86 }, | |
781 | { -10, 73 }, { -10, 70 }, { -10, 69 }, { -5, 66 }, | |
782 | { -9, 64 }, { -5, 58 }, { 2, 59 }, { 21, -10 }, | |
783 | { 24, -11 }, { 28, -8 }, { 28, -1 }, { 29, 3 }, | |
784 | { 29, 9 }, { 35, 20 }, { 29, 36 }, { 14, 67 } | |
e5017ab8 LA |
785 | }; |
786 | ||
43efd19a | 787 | static const int cabac_context_init_PB[3][460][2] = |
e5017ab8 LA |
788 | { |
789 | /* i_cabac_init_idc == 0 */ | |
790 | { | |
791 | /* 0 - 10 */ | |
792 | { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
793 | { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
794 | { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
795 | ||
796 | /* 11 - 23 */ | |
797 | { 23, 33 }, { 23, 2 }, { 21, 0 }, { 1, 9 }, | |
798 | { 0, 49 }, { -37, 118 }, { 5, 57 }, { -13, 78 }, | |
799 | { -11, 65 }, { 1, 62 }, { 12, 49 }, { -4, 73 }, | |
800 | { 17, 50 }, | |
801 | ||
802 | /* 24 - 39 */ | |
803 | { 18, 64 }, { 9, 43 }, { 29, 0 }, { 26, 67 }, | |
804 | { 16, 90 }, { 9, 104 }, { -46, 127 }, { -20, 104 }, | |
805 | { 1, 67 }, { -13, 78 }, { -11, 65 }, { 1, 62 }, | |
806 | { -6, 86 }, { -17, 95 }, { -6, 61 }, { 9, 45 }, | |
807 | ||
808 | /* 40 - 53 */ | |
809 | { -3, 69 }, { -6, 81 }, { -11, 96 }, { 6, 55 }, | |
810 | { 7, 67 }, { -5, 86 }, { 2, 88 }, { 0, 58 }, | |
811 | { -3, 76 }, { -10, 94 }, { 5, 54 }, { 4, 69 }, | |
812 | { -3, 81 }, { 0, 88 }, | |
813 | ||
814 | /* 54 - 59 */ | |
815 | { -7, 67 }, { -5, 74 }, { -4, 74 }, { -5, 80 }, | |
816 | { -7, 72 }, { 1, 58 }, | |
817 | ||
818 | /* 60 - 69 */ | |
819 | { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
820 | { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
821 | { 13, 41 }, { 3, 62 }, | |
822 | ||
823 | /* 70 - 87 */ | |
824 | { 0, 45 }, { -4, 78 }, { -3, 96 }, { -27, 126 }, | |
825 | { -28, 98 }, { -25, 101 }, { -23, 67 }, { -28, 82 }, | |
826 | { -20, 94 }, { -16, 83 }, { -22, 110 }, { -21, 91 }, | |
827 | { -18, 102 }, { -13, 93 }, { -29, 127 }, { -7, 92 }, | |
828 | { -5, 89 }, { -7, 96 }, { -13, 108 }, { -3, 46 }, | |
829 | { -1, 65 }, { -1, 57 }, { -9, 93 }, { -3, 74 }, | |
830 | { -9, 92 }, { -8, 87 }, { -23, 126 }, { 5, 54 }, | |
831 | { 6, 60 }, { 6, 59 }, { 6, 69 }, { -1, 48 }, | |
832 | { 0, 68 }, { -4, 69 }, { -8, 88 }, | |
833 | ||
834 | /* 105 -> 165 */ | |
835 | { -2, 85 }, { -6, 78 }, { -1, 75 }, { -7, 77 }, | |
836 | { 2, 54 }, { 5, 50 }, { -3, 68 }, { 1, 50 }, | |
837 | { 6, 42 }, { -4, 81 }, { 1, 63 }, { -4, 70 }, | |
838 | { 0, 67 }, { 2, 57 }, { -2, 76 }, { 11, 35 }, | |
839 | { 4, 64 }, { 1, 61 }, { 11, 35 }, { 18, 25 }, | |
840 | { 12, 24 }, { 13, 29 }, { 13, 36 }, { -10, 93 }, | |
841 | { -7, 73 }, { -2, 73 }, { 13, 46 }, { 9, 49 }, | |
842 | { -7, 100 }, { 9, 53 }, { 2, 53 }, { 5, 53 }, | |
843 | { -2, 61 }, { 0, 56 }, { 0, 56 }, { -13, 63 }, | |
844 | { -5, 60 }, { -1, 62 }, { 4, 57 }, { -6, 69 }, | |
845 | { 4, 57 }, { 14, 39 }, { 4, 51 }, { 13, 68 }, | |
846 | { 3, 64 }, { 1, 61 }, { 9, 63 }, { 7, 50 }, | |
847 | { 16, 39 }, { 5, 44 }, { 4, 52 }, { 11, 48 }, | |
848 | { -5, 60 }, { -1, 59 }, { 0, 59 }, { 22, 33 }, | |
849 | { 5, 44 }, { 14, 43 }, { -1, 78 }, { 0, 60 }, | |
850 | { 9, 69 }, | |
851 | ||
852 | /* 166 - 226 */ | |
853 | { 11, 28 }, { 2, 40 }, { 3, 44 }, { 0, 49 }, | |
854 | { 0, 46 }, { 2, 44 }, { 2, 51 }, { 0, 47 }, | |
855 | { 4, 39 }, { 2, 62 }, { 6, 46 }, { 0, 54 }, | |
856 | { 3, 54 }, { 2, 58 }, { 4, 63 }, { 6, 51 }, | |
857 | { 6, 57 }, { 7, 53 }, { 6, 52 }, { 6, 55 }, | |
858 | { 11, 45 }, { 14, 36 }, { 8, 53 }, { -1, 82 }, | |
859 | { 7, 55 }, { -3, 78 }, { 15, 46 }, { 22, 31 }, | |
860 | { -1, 84 }, { 25, 7 }, { 30, -7 }, { 28, 3 }, | |
861 | { 28, 4 }, { 32, 0 }, { 34, -1 }, { 30, 6 }, | |
862 | { 30, 6 }, { 32, 9 }, { 31, 19 }, { 26, 27 }, | |
863 | { 26, 30 }, { 37, 20 }, { 28, 34 }, { 17, 70 }, | |
864 | { 1, 67 }, { 5, 59 }, { 9, 67 }, { 16, 30 }, | |
865 | { 18, 32 }, { 18, 35 }, { 22, 29 }, { 24, 31 }, | |
866 | { 23, 38 }, { 18, 43 }, { 20, 41 }, { 11, 63 }, | |
867 | { 9, 59 }, { 9, 64 }, { -1, 94 }, { -2, 89 }, | |
868 | { -9, 108 }, | |
869 | ||
870 | /* 227 - 275 */ | |
871 | { -6, 76 }, { -2, 44 }, { 0, 45 }, { 0, 52 }, | |
872 | { -3, 64 }, { -2, 59 }, { -4, 70 }, { -4, 75 }, | |
873 | { -8, 82 }, { -17, 102 }, { -9, 77 }, { 3, 24 }, | |
874 | { 0, 42 }, { 0, 48 }, { 0, 55 }, { -6, 59 }, | |
875 | { -7, 71 }, { -12, 83 }, { -11, 87 }, { -30, 119 }, | |
876 | { 1, 58 }, { -3, 29 }, { -1, 36 }, { 1, 38 }, | |
877 | { 2, 43 }, { -6, 55 }, { 0, 58 }, { 0, 64 }, | |
878 | { -3, 74 }, { -10, 90 }, { 0, 70 }, { -4, 29 }, | |
879 | { 5, 31 }, { 7, 42 }, { 1, 59 }, { -2, 58 }, | |
880 | { -3, 72 }, { -3, 81 }, { -11, 97 }, { 0, 58 }, | |
881 | { 8, 5 }, { 10, 14 }, { 14, 18 }, { 13, 27 }, | |
882 | { 2, 40 }, { 0, 58 }, { -3, 70 }, { -6, 79 }, | |
883 | { -8, 85 }, | |
884 | ||
885 | /* 276 a bit special (not used, bypass is used instead) */ | |
886 | { 0, 0 }, | |
887 | ||
888 | /* 277 - 337 */ | |
889 | { -13, 106 }, { -16, 106 }, { -10, 87 }, { -21, 114 }, | |
890 | { -18, 110 }, { -14, 98 }, { -22, 110 }, { -21, 106 }, | |
891 | { -18, 103 }, { -21, 107 }, { -23, 108 }, { -26, 112 }, | |
892 | { -10, 96 }, { -12, 95 }, { -5, 91 }, { -9, 93 }, | |
893 | { -22, 94 }, { -5, 86 }, { 9, 67 }, { -4, 80 }, | |
894 | { -10, 85 }, { -1, 70 }, { 7, 60 }, { 9, 58 }, | |
895 | { 5, 61 }, { 12, 50 }, { 15, 50 }, { 18, 49 }, | |
896 | { 17, 54 }, { 10, 41 }, { 7, 46 }, { -1, 51 }, | |
897 | { 7, 49 }, { 8, 52 }, { 9, 41 }, { 6, 47 }, | |
898 | { 2, 55 }, { 13, 41 }, { 10, 44 }, { 6, 50 }, | |
899 | { 5, 53 }, { 13, 49 }, { 4, 63 }, { 6, 64 }, | |
900 | { -2, 69 }, { -2, 59 }, { 6, 70 }, { 10, 44 }, | |
901 | { 9, 31 }, { 12, 43 }, { 3, 53 }, { 14, 34 }, | |
902 | { 10, 38 }, { -3, 52 }, { 13, 40 }, { 17, 32 }, | |
903 | { 7, 44 }, { 7, 38 }, { 13, 50 }, { 10, 57 }, | |
904 | { 26, 43 }, | |
905 | ||
906 | /* 338 - 398 */ | |
907 | { 14, 11 }, { 11, 14 }, { 9, 11 }, { 18, 11 }, | |
908 | { 21, 9 }, { 23, -2 }, { 32, -15 }, { 32, -15 }, | |
909 | { 34, -21 }, { 39, -23 }, { 42, -33 }, { 41, -31 }, | |
910 | { 46, -28 }, { 38, -12 }, { 21, 29 }, { 45, -24 }, | |
911 | { 53, -45 }, { 48, -26 }, { 65, -43 }, { 43, -19 }, | |
912 | { 39, -10 }, { 30, 9 }, { 18, 26 }, { 20, 27 }, | |
913 | { 0, 57 }, { -14, 82 }, { -5, 75 }, { -19, 97 }, | |
914 | { -35, 125 }, { 27, 0 }, { 28, 0 }, { 31, -4 }, | |
915 | { 27, 6 }, { 34, 8 }, { 30, 10 }, { 24, 22 }, | |
916 | { 33, 19 }, { 22, 32 }, { 26, 31 }, { 21, 41 }, | |
917 | { 26, 44 }, { 23, 47 }, { 16, 65 }, { 14, 71 }, | |
918 | { 8, 60 }, { 6, 63 }, { 17, 65 }, { 21, 24 }, | |
919 | { 23, 20 }, { 26, 23 }, { 27, 32 }, { 28, 23 }, | |
920 | { 28, 24 }, { 23, 40 }, { 24, 32 }, { 28, 29 }, | |
921 | { 23, 42 }, { 19, 57 }, { 22, 53 }, { 22, 61 }, | |
922 | { 11, 86 }, | |
923 | ||
43efd19a LM |
924 | /* 399 - 435 */ |
925 | { 12, 40 }, { 11, 51 }, { 14, 59 }, | |
926 | { -4, 79 }, { -7, 71 }, { -5, 69 }, { -9, 70 }, | |
927 | { -8, 66 }, { -10, 68 }, { -19, 73 }, { -12, 69 }, | |
928 | { -16, 70 }, { -15, 67 }, { -20, 62 }, { -19, 70 }, | |
929 | { -16, 66 }, { -22, 65 }, { -20, 63 }, { 9, -2 }, | |
930 | { 26, -9 }, { 33, -9 }, { 39, -7 }, { 41, -2 }, | |
931 | { 45, 3 }, { 49, 9 }, { 45, 27 }, { 36, 59 }, | |
932 | { -6, 66 }, { -7, 35 }, { -7, 42 }, { -8, 45 }, | |
933 | { -5, 48 }, { -12, 56 }, { -6, 60 }, { -5, 62 }, | |
934 | { -8, 66 }, { -8, 76 }, | |
935 | ||
936 | /* 436 - 459 */ | |
937 | { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, | |
938 | { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, | |
939 | { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, | |
940 | { -14, 66 }, { 0, 59 }, { 2, 59 }, { 21, -13 }, | |
941 | { 33, -14 }, { 39, -7 }, { 46, -2 }, { 51, 2 }, | |
942 | { 60, 6 }, { 61, 17 }, { 55, 34 }, { 42, 62 }, | |
e5017ab8 LA |
943 | }, |
944 | ||
945 | /* i_cabac_init_idc == 1 */ | |
946 | { | |
947 | /* 0 - 10 */ | |
948 | { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
949 | { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
950 | { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
951 | ||
952 | /* 11 - 23 */ | |
953 | { 22, 25 }, { 34, 0 }, { 16, 0 }, { -2, 9 }, | |
954 | { 4, 41 }, { -29, 118 }, { 2, 65 }, { -6, 71 }, | |
955 | { -13, 79 }, { 5, 52 }, { 9, 50 }, { -3, 70 }, | |
956 | { 10, 54 }, | |
957 | ||
958 | /* 24 - 39 */ | |
959 | { 26, 34 }, { 19, 22 }, { 40, 0 }, { 57, 2 }, | |
960 | { 41, 36 }, { 26, 69 }, { -45, 127 }, { -15, 101 }, | |
961 | { -4, 76 }, { -6, 71 }, { -13, 79 }, { 5, 52 }, | |
962 | { 6, 69 }, { -13, 90 }, { 0, 52 }, { 8, 43 }, | |
963 | ||
964 | /* 40 - 53 */ | |
965 | { -2, 69 },{ -5, 82 },{ -10, 96 },{ 2, 59 }, | |
966 | { 2, 75 },{ -3, 87 },{ -3, 100 },{ 1, 56 }, | |
967 | { -3, 74 },{ -6, 85 },{ 0, 59 },{ -3, 81 }, | |
968 | { -7, 86 },{ -5, 95 }, | |
969 | ||
970 | /* 54 - 59 */ | |
971 | { -1, 66 },{ -1, 77 },{ 1, 70 },{ -2, 86 }, | |
972 | { -5, 72 },{ 0, 61 }, | |
973 | ||
974 | /* 60 - 69 */ | |
975 | { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
976 | { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
977 | { 13, 41 }, { 3, 62 }, | |
978 | ||
979 | /* 70 - 104 */ | |
980 | { 13, 15 }, { 7, 51 }, { 2, 80 }, { -39, 127 }, | |
981 | { -18, 91 }, { -17, 96 }, { -26, 81 }, { -35, 98 }, | |
982 | { -24, 102 }, { -23, 97 }, { -27, 119 }, { -24, 99 }, | |
983 | { -21, 110 }, { -18, 102 }, { -36, 127 }, { 0, 80 }, | |
984 | { -5, 89 }, { -7, 94 }, { -4, 92 }, { 0, 39 }, | |
985 | { 0, 65 }, { -15, 84 }, { -35, 127 }, { -2, 73 }, | |
986 | { -12, 104 }, { -9, 91 }, { -31, 127 }, { 3, 55 }, | |
987 | { 7, 56 }, { 7, 55 }, { 8, 61 }, { -3, 53 }, | |
988 | { 0, 68 }, { -7, 74 }, { -9, 88 }, | |
989 | ||
990 | /* 105 -> 165 */ | |
991 | { -13, 103 }, { -13, 91 }, { -9, 89 }, { -14, 92 }, | |
992 | { -8, 76 }, { -12, 87 }, { -23, 110 }, { -24, 105 }, | |
993 | { -10, 78 }, { -20, 112 }, { -17, 99 }, { -78, 127 }, | |
994 | { -70, 127 }, { -50, 127 }, { -46, 127 }, { -4, 66 }, | |
995 | { -5, 78 }, { -4, 71 }, { -8, 72 }, { 2, 59 }, | |
996 | { -1, 55 }, { -7, 70 }, { -6, 75 }, { -8, 89 }, | |
997 | { -34, 119 }, { -3, 75 }, { 32, 20 }, { 30, 22 }, | |
998 | { -44, 127 }, { 0, 54 }, { -5, 61 }, { 0, 58 }, | |
999 | { -1, 60 }, { -3, 61 }, { -8, 67 }, { -25, 84 }, | |
1000 | { -14, 74 }, { -5, 65 }, { 5, 52 }, { 2, 57 }, | |
1001 | { 0, 61 }, { -9, 69 }, { -11, 70 }, { 18, 55 }, | |
1002 | { -4, 71 }, { 0, 58 }, { 7, 61 }, { 9, 41 }, | |
1003 | { 18, 25 }, { 9, 32 }, { 5, 43 }, { 9, 47 }, | |
1004 | { 0, 44 }, { 0, 51 }, { 2, 46 }, { 19, 38 }, | |
1005 | { -4, 66 }, { 15, 38 }, { 12, 42 }, { 9, 34 }, | |
1006 | { 0, 89 }, | |
1007 | ||
1008 | /* 166 - 226 */ | |
1009 | { 4, 45 }, { 10, 28 }, { 10, 31 }, { 33, -11 }, | |
1010 | { 52, -43 }, { 18, 15 }, { 28, 0 }, { 35, -22 }, | |
1011 | { 38, -25 }, { 34, 0 }, { 39, -18 }, { 32, -12 }, | |
1012 | { 102, -94 }, { 0, 0 }, { 56, -15 }, { 33, -4 }, | |
1013 | { 29, 10 }, { 37, -5 }, { 51, -29 }, { 39, -9 }, | |
1014 | { 52, -34 }, { 69, -58 }, { 67, -63 }, { 44, -5 }, | |
1015 | { 32, 7 }, { 55, -29 }, { 32, 1 }, { 0, 0 }, | |
1016 | { 27, 36 }, { 33, -25 }, { 34, -30 }, { 36, -28 }, | |
1017 | { 38, -28 }, { 38, -27 }, { 34, -18 }, { 35, -16 }, | |
1018 | { 34, -14 }, { 32, -8 }, { 37, -6 }, { 35, 0 }, | |
1019 | { 30, 10 }, { 28, 18 }, { 26, 25 }, { 29, 41 }, | |
1020 | { 0, 75 }, { 2, 72 }, { 8, 77 }, { 14, 35 }, | |
1021 | { 18, 31 }, { 17, 35 }, { 21, 30 }, { 17, 45 }, | |
1022 | { 20, 42 }, { 18, 45 }, { 27, 26 }, { 16, 54 }, | |
1023 | { 7, 66 }, { 16, 56 }, { 11, 73 }, { 10, 67 }, | |
1024 | { -10, 116 }, | |
1025 | ||
1026 | /* 227 - 275 */ | |
1027 | { -23, 112 }, { -15, 71 }, { -7, 61 }, { 0, 53 }, | |
1028 | { -5, 66 }, { -11, 77 }, { -9, 80 }, { -9, 84 }, | |
1029 | { -10, 87 }, { -34, 127 }, { -21, 101 }, { -3, 39 }, | |
1030 | { -5, 53 }, { -7, 61 }, { -11, 75 }, { -15, 77 }, | |
1031 | { -17, 91 }, { -25, 107 }, { -25, 111 }, { -28, 122 }, | |
1032 | { -11, 76 }, { -10, 44 }, { -10, 52 }, { -10, 57 }, | |
1033 | { -9, 58 }, { -16, 72 }, { -7, 69 }, { -4, 69 }, | |
1034 | { -5, 74 }, { -9, 86 }, { 2, 66 }, { -9, 34 }, | |
1035 | { 1, 32 }, { 11, 31 }, { 5, 52 }, { -2, 55 }, | |
1036 | { -2, 67 }, { 0, 73 }, { -8, 89 }, { 3, 52 }, | |
1037 | { 7, 4 }, { 10, 8 }, { 17, 8 }, { 16, 19 }, | |
1038 | { 3, 37 }, { -1, 61 }, { -5, 73 }, { -1, 70 }, | |
1039 | { -4, 78 }, | |
1040 | ||
1041 | /* 276 a bit special (not used, bypass is used instead) */ | |
1042 | { 0, 0 }, | |
1043 | ||
1044 | /* 277 - 337 */ | |
1045 | { -21, 126 }, { -23, 124 }, { -20, 110 }, { -26, 126 }, | |
1046 | { -25, 124 }, { -17, 105 }, { -27, 121 }, { -27, 117 }, | |
1047 | { -17, 102 }, { -26, 117 }, { -27, 116 }, { -33, 122 }, | |
1048 | { -10, 95 }, { -14, 100 }, { -8, 95 }, { -17, 111 }, | |
1049 | { -28, 114 }, { -6, 89 }, { -2, 80 }, { -4, 82 }, | |
1050 | { -9, 85 }, { -8, 81 }, { -1, 72 }, { 5, 64 }, | |
1051 | { 1, 67 }, { 9, 56 }, { 0, 69 }, { 1, 69 }, | |
1052 | { 7, 69 }, { -7, 69 }, { -6, 67 }, { -16, 77 }, | |
1053 | { -2, 64 }, { 2, 61 }, { -6, 67 }, { -3, 64 }, | |
1054 | { 2, 57 }, { -3, 65 }, { -3, 66 }, { 0, 62 }, | |
1055 | { 9, 51 }, { -1, 66 }, { -2, 71 }, { -2, 75 }, | |
1056 | { -1, 70 }, { -9, 72 }, { 14, 60 }, { 16, 37 }, | |
1057 | { 0, 47 }, { 18, 35 }, { 11, 37 }, { 12, 41 }, | |
1058 | { 10, 41 }, { 2, 48 }, { 12, 41 }, { 13, 41 }, | |
1059 | { 0, 59 }, { 3, 50 }, { 19, 40 }, { 3, 66 }, | |
1060 | { 18, 50 }, | |
1061 | ||
1062 | /* 338 - 398 */ | |
1063 | { 19, -6 }, { 18, -6 }, { 14, 0 }, { 26, -12 }, | |
1064 | { 31, -16 }, { 33, -25 }, { 33, -22 }, { 37, -28 }, | |
1065 | { 39, -30 }, { 42, -30 }, { 47, -42 }, { 45, -36 }, | |
1066 | { 49, -34 }, { 41, -17 }, { 32, 9 }, { 69, -71 }, | |
1067 | { 63, -63 }, { 66, -64 }, { 77, -74 }, { 54, -39 }, | |
1068 | { 52, -35 }, { 41, -10 }, { 36, 0 }, { 40, -1 }, | |
1069 | { 30, 14 }, { 28, 26 }, { 23, 37 }, { 12, 55 }, | |
1070 | { 11, 65 }, { 37, -33 }, { 39, -36 }, { 40, -37 }, | |
1071 | { 38, -30 }, { 46, -33 }, { 42, -30 }, { 40, -24 }, | |
1072 | { 49, -29 }, { 38, -12 }, { 40, -10 }, { 38, -3 }, | |
1073 | { 46, -5 }, { 31, 20 }, { 29, 30 }, { 25, 44 }, | |
1074 | { 12, 48 }, { 11, 49 }, { 26, 45 }, { 22, 22 }, | |
1075 | { 23, 22 }, { 27, 21 }, { 33, 20 }, { 26, 28 }, | |
1076 | { 30, 24 }, { 27, 34 }, { 18, 42 }, { 25, 39 }, | |
1077 | { 18, 50 }, { 12, 70 }, { 21, 54 }, { 14, 71 }, | |
1078 | { 11, 83 }, | |
1079 | ||
43efd19a | 1080 | /* 399 - 435 */ |
1b7576e7 | 1081 | { 25, 32 }, { 21, 49 }, { 21, 54 }, |
43efd19a | 1082 | { -5, 85 }, { -6, 81 }, { -10, 77 }, { -7, 81 }, |
1b7576e7 | 1083 | { -17, 80 }, { -18, 73 }, { -4, 74 }, { -10, 83 }, |
43efd19a LM |
1084 | { -9, 71 }, { -9, 67 }, { -1, 61 }, { -8, 66 }, |
1085 | { -14, 66 }, { 0, 59 }, { 2, 59 }, { 17, -10 }, | |
1086 | { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, | |
1087 | { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, | |
1088 | { -5, 71 }, { 0, 24 }, { -1, 36 }, { -2, 42 }, | |
1b7576e7 | 1089 | { -2, 52 }, { -9, 57 }, { -6, 63 }, { -4, 65 }, |
43efd19a LM |
1090 | { -4, 67 }, { -7, 82 }, |
1091 | ||
1092 | /* 436 - 459 */ | |
1093 | { -3, 81 }, { -3, 76 }, { -7, 72 }, { -6, 78 }, | |
1094 | { -12, 72 }, { -14, 68 }, { -3, 70 }, { -6, 76 }, | |
1095 | { -5, 66 }, { -5, 62 }, { 0, 57 }, { -4, 61 }, | |
1096 | { -9, 60 }, { 1, 54 }, { 2, 58 }, { 17, -10 }, | |
1097 | { 32, -13 }, { 42, -9 }, { 49, -5 }, { 53, 0 }, | |
1098 | { 64, 3 }, { 68, 10 }, { 66, 27 }, { 47, 57 }, | |
e5017ab8 LA |
1099 | }, |
1100 | ||
1101 | /* i_cabac_init_idc == 2 */ | |
1102 | { | |
1103 | /* 0 - 10 */ | |
1104 | { 20, -15 }, { 2, 54 }, { 3, 74 }, { 20, -15 }, | |
1105 | { 2, 54 }, { 3, 74 }, { -28, 127 }, { -23, 104 }, | |
1106 | { -6, 53 }, { -1, 54 }, { 7, 51 }, | |
1107 | ||
1108 | /* 11 - 23 */ | |
1109 | { 29, 16 }, { 25, 0 }, { 14, 0 }, { -10, 51 }, | |
1110 | { -3, 62 }, { -27, 99 }, { 26, 16 }, { -4, 85 }, | |
1111 | { -24, 102 }, { 5, 57 }, { 6, 57 }, { -17, 73 }, | |
1112 | { 14, 57 }, | |
1113 | ||
1114 | /* 24 - 39 */ | |
1115 | { 20, 40 }, { 20, 10 }, { 29, 0 }, { 54, 0 }, | |
1116 | { 37, 42 }, { 12, 97 }, { -32, 127 }, { -22, 117 }, | |
1117 | { -2, 74 }, { -4, 85 }, { -24, 102 }, { 5, 57 }, | |
1118 | { -6, 93 }, { -14, 88 }, { -6, 44 }, { 4, 55 }, | |
1119 | ||
1120 | /* 40 - 53 */ | |
1121 | { -11, 89 },{ -15, 103 },{ -21, 116 },{ 19, 57 }, | |
1122 | { 20, 58 },{ 4, 84 },{ 6, 96 },{ 1, 63 }, | |
1123 | { -5, 85 },{ -13, 106 },{ 5, 63 },{ 6, 75 }, | |
1124 | { -3, 90 },{ -1, 101 }, | |
1125 | ||
1126 | /* 54 - 59 */ | |
1127 | { 3, 55 },{ -4, 79 },{ -2, 75 },{ -12, 97 }, | |
1128 | { -7, 50 },{ 1, 60 }, | |
1129 | ||
1130 | /* 60 - 69 */ | |
1131 | { 0, 41 }, { 0, 63 }, { 0, 63 }, { 0, 63 }, | |
1132 | { -9, 83 }, { 4, 86 }, { 0, 97 }, { -7, 72 }, | |
1133 | { 13, 41 }, { 3, 62 }, | |
1134 | ||
1135 | /* 70 - 104 */ | |
1136 | { 7, 34 }, { -9, 88 }, { -20, 127 }, { -36, 127 }, | |
1137 | { -17, 91 }, { -14, 95 }, { -25, 84 }, { -25, 86 }, | |
1138 | { -12, 89 }, { -17, 91 }, { -31, 127 }, { -14, 76 }, | |
1139 | { -18, 103 }, { -13, 90 }, { -37, 127 }, { 11, 80 }, | |
1140 | { 5, 76 }, { 2, 84 }, { 5, 78 }, { -6, 55 }, | |
1141 | { 4, 61 }, { -14, 83 }, { -37, 127 }, { -5, 79 }, | |
1142 | { -11, 104 }, { -11, 91 }, { -30, 127 }, { 0, 65 }, | |
1143 | { -2, 79 }, { 0, 72 }, { -4, 92 }, { -6, 56 }, | |
1144 | { 3, 68 }, { -8, 71 }, { -13, 98 }, | |
1145 | ||
1146 | /* 105 -> 165 */ | |
1147 | { -4, 86 }, { -12, 88 }, { -5, 82 }, { -3, 72 }, | |
1148 | { -4, 67 }, { -8, 72 }, { -16, 89 }, { -9, 69 }, | |
1149 | { -1, 59 }, { 5, 66 }, { 4, 57 }, { -4, 71 }, | |
1150 | { -2, 71 }, { 2, 58 }, { -1, 74 }, { -4, 44 }, | |
1151 | { -1, 69 }, { 0, 62 }, { -7, 51 }, { -4, 47 }, | |
1152 | { -6, 42 }, { -3, 41 }, { -6, 53 }, { 8, 76 }, | |
1153 | { -9, 78 }, { -11, 83 }, { 9, 52 }, { 0, 67 }, | |
1154 | { -5, 90 }, { 1, 67 }, { -15, 72 }, { -5, 75 }, | |
1155 | { -8, 80 }, { -21, 83 }, { -21, 64 }, { -13, 31 }, | |
1156 | { -25, 64 }, { -29, 94 }, { 9, 75 }, { 17, 63 }, | |
1157 | { -8, 74 }, { -5, 35 }, { -2, 27 }, { 13, 91 }, | |
1158 | { 3, 65 }, { -7, 69 }, { 8, 77 }, { -10, 66 }, | |
1159 | { 3, 62 }, { -3, 68 }, { -20, 81 }, { 0, 30 }, | |
1160 | { 1, 7 }, { -3, 23 }, { -21, 74 }, { 16, 66 }, | |
1161 | { -23, 124 }, { 17, 37 }, { 44, -18 }, { 50, -34 }, | |
1162 | { -22, 127 }, | |
1163 | ||
1164 | /* 166 - 226 */ | |
1165 | { 4, 39 }, { 0, 42 }, { 7, 34 }, { 11, 29 }, | |
1166 | { 8, 31 }, { 6, 37 }, { 7, 42 }, { 3, 40 }, | |
1167 | { 8, 33 }, { 13, 43 }, { 13, 36 }, { 4, 47 }, | |
1168 | { 3, 55 }, { 2, 58 }, { 6, 60 }, { 8, 44 }, | |
1169 | { 11, 44 }, { 14, 42 }, { 7, 48 }, { 4, 56 }, | |
1170 | { 4, 52 }, { 13, 37 }, { 9, 49 }, { 19, 58 }, | |
1171 | { 10, 48 }, { 12, 45 }, { 0, 69 }, { 20, 33 }, | |
1172 | { 8, 63 }, { 35, -18 }, { 33, -25 }, { 28, -3 }, | |
1173 | { 24, 10 }, { 27, 0 }, { 34, -14 }, { 52, -44 }, | |
1174 | { 39, -24 }, { 19, 17 }, { 31, 25 }, { 36, 29 }, | |
1175 | { 24, 33 }, { 34, 15 }, { 30, 20 }, { 22, 73 }, | |
1176 | { 20, 34 }, { 19, 31 }, { 27, 44 }, { 19, 16 }, | |
1177 | { 15, 36 }, { 15, 36 }, { 21, 28 }, { 25, 21 }, | |
1178 | { 30, 20 }, { 31, 12 }, { 27, 16 }, { 24, 42 }, | |
1179 | { 0, 93 }, { 14, 56 }, { 15, 57 }, { 26, 38 }, | |
1180 | { -24, 127 }, | |
1181 | ||
1182 | /* 227 - 275 */ | |
1183 | { -24, 115 }, { -22, 82 }, { -9, 62 }, { 0, 53 }, | |
1184 | { 0, 59 }, { -14, 85 }, { -13, 89 }, { -13, 94 }, | |
1185 | { -11, 92 }, { -29, 127 }, { -21, 100 }, { -14, 57 }, | |
1186 | { -12, 67 }, { -11, 71 }, { -10, 77 }, { -21, 85 }, | |
1187 | { -16, 88 }, { -23, 104 }, { -15, 98 }, { -37, 127 }, | |
1188 | { -10, 82 }, { -8, 48 }, { -8, 61 }, { -8, 66 }, | |
1189 | { -7, 70 }, { -14, 75 }, { -10, 79 }, { -9, 83 }, | |
1190 | { -12, 92 }, { -18, 108 }, { -4, 79 }, { -22, 69 }, | |
1191 | { -16, 75 }, { -2, 58 }, { 1, 58 }, { -13, 78 }, | |
1192 | { -9, 83 }, { -4, 81 }, { -13, 99 }, { -13, 81 }, | |
1193 | { -6, 38 }, { -13, 62 }, { -6, 58 }, { -2, 59 }, | |
1194 | { -16, 73 }, { -10, 76 }, { -13, 86 }, { -9, 83 }, | |
1195 | { -10, 87 }, | |
1196 | ||
1197 | /* 276 a bit special (not used, bypass is used instead) */ | |
1198 | { 0, 0 }, | |
1199 | ||
1200 | /* 277 - 337 */ | |
1201 | { -22, 127 }, { -25, 127 }, { -25, 120 }, { -27, 127 }, | |
1202 | { -19, 114 }, { -23, 117 }, { -25, 118 }, { -26, 117 }, | |
1203 | { -24, 113 }, { -28, 118 }, { -31, 120 }, { -37, 124 }, | |
1204 | { -10, 94 }, { -15, 102 }, { -10, 99 }, { -13, 106 }, | |
1205 | { -50, 127 }, { -5, 92 }, { 17, 57 }, { -5, 86 }, | |
1206 | { -13, 94 }, { -12, 91 }, { -2, 77 }, { 0, 71 }, | |
1207 | { -1, 73 }, { 4, 64 }, { -7, 81 }, { 5, 64 }, | |
1208 | { 15, 57 }, { 1, 67 }, { 0, 68 }, { -10, 67 }, | |
1209 | { 1, 68 }, { 0, 77 }, { 2, 64 }, { 0, 68 }, | |
1210 | { -5, 78 }, { 7, 55 }, { 5, 59 }, { 2, 65 }, | |
1211 | { 14, 54 }, { 15, 44 }, { 5, 60 }, { 2, 70 }, | |
1212 | { -2, 76 }, { -18, 86 }, { 12, 70 }, { 5, 64 }, | |
1213 | { -12, 70 }, { 11, 55 }, { 5, 56 }, { 0, 69 }, | |
1214 | { 2, 65 }, { -6, 74 }, { 5, 54 }, { 7, 54 }, | |
1215 | { -6, 76 }, { -11, 82 }, { -2, 77 }, { -2, 77 }, | |
1216 | { 25, 42 }, | |
1217 | ||
1218 | /* 338 - 398 */ | |
1219 | { 17, -13 }, { 16, -9 }, { 17, -12 }, { 27, -21 }, | |
1220 | { 37, -30 }, { 41, -40 }, { 42, -41 }, { 48, -47 }, | |
1221 | { 39, -32 }, { 46, -40 }, { 52, -51 }, { 46, -41 }, | |
1222 | { 52, -39 }, { 43, -19 }, { 32, 11 }, { 61, -55 }, | |
1223 | { 56, -46 }, { 62, -50 }, { 81, -67 }, { 45, -20 }, | |
1224 | { 35, -2 }, { 28, 15 }, { 34, 1 }, { 39, 1 }, | |
1225 | { 30, 17 }, { 20, 38 }, { 18, 45 }, { 15, 54 }, | |
1226 | { 0, 79 }, { 36, -16 }, { 37, -14 }, { 37, -17 }, | |
1227 | { 32, 1 }, { 34, 15 }, { 29, 15 }, { 24, 25 }, | |
1228 | { 34, 22 }, { 31, 16 }, { 35, 18 }, { 31, 28 }, | |
1229 | { 33, 41 }, { 36, 28 }, { 27, 47 }, { 21, 62 }, | |
1230 | { 18, 31 }, { 19, 26 }, { 36, 24 }, { 24, 23 }, | |
1231 | { 27, 16 }, { 24, 30 }, { 31, 29 }, { 22, 41 }, | |
1232 | { 22, 42 }, { 16, 60 }, { 15, 52 }, { 14, 60 }, | |
1233 | { 3, 78 }, { -16, 123 }, { 21, 53 }, { 22, 56 }, | |
1234 | { 25, 61 }, | |
43efd19a LM |
1235 | |
1236 | /* 399 - 435 */ | |
1237 | { 21, 33 }, { 19, 50 }, { 17, 61 }, | |
1238 | { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, | |
1239 | { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, | |
1240 | { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, | |
1241 | { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, | |
1242 | { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, | |
1243 | { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, | |
1244 | { -9, 71 }, { -7, 37 }, { -8, 44 }, { -11, 49 }, | |
1245 | { -10, 56 }, { -12, 59 }, { -8, 63 }, { -9, 67 }, | |
1246 | { -6, 68 }, { -10, 79 }, | |
1247 | ||
1248 | /* 436 - 459 */ | |
1249 | { -3, 78 }, { -8, 74 }, { -9, 72 }, { -10, 72 }, | |
1250 | { -18, 75 }, { -12, 71 }, { -11, 63 }, { -5, 70 }, | |
1251 | { -17, 75 }, { -14, 72 }, { -16, 67 }, { -8, 53 }, | |
1252 | { -14, 59 }, { -9, 52 }, { -11, 68 }, { 9, -2 }, | |
1253 | { 30, -10 }, { 31, -4 }, { 33, -1 }, { 33, 7 }, | |
1254 | { 31, 12 }, { 37, 23 }, { 31, 38 }, { 20, 64 }, | |
e5017ab8 LA |
1255 | } |
1256 | }; |