Statistics
| Branch: | Revision:

ffmpeg / libavcodec / msmpeg4data.h @ bb54f6ab

History | View | Annotate | Download (81.8 KB)

1 04d7f601 Diego Biurrun
/*
2
 * MSMPEG4 backend for ffmpeg encoder and decoder
3
 * copyright (c) 2001 Fabrice Bellard
4
 * copyright (c) 2002-2004 Michael Niedermayer <michaelni@gmx.at>
5
 *
6 b78e7197 Diego Biurrun
 * This file is part of FFmpeg.
7
 *
8
 * FFmpeg is free software; you can redistribute it and/or
9 04d7f601 Diego Biurrun
 * modify it under the terms of the GNU Lesser General Public
10
 * License as published by the Free Software Foundation; either
11 b78e7197 Diego Biurrun
 * version 2.1 of the License, or (at your option) any later version.
12 04d7f601 Diego Biurrun
 *
13 b78e7197 Diego Biurrun
 * FFmpeg is distributed in the hope that it will be useful,
14 04d7f601 Diego Biurrun
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16
 * Lesser General Public License for more details.
17
 *
18
 * You should have received a copy of the GNU Lesser General Public
19 b78e7197 Diego Biurrun
 * License along with FFmpeg; if not, write to the Free Software
20 04d7f601 Diego Biurrun
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
21
 *
22
 * msmpeg4v1 & v2 stuff by Michael Niedermayer <michaelni@gmx.at>
23
 */
24
25 983e3246 Michael Niedermayer
/**
26
 * @file msmpeg4data.h
27 115329f1 Diego Biurrun
 * MSMPEG4 data tables.
28 de6d9b64 Fabrice Bellard
 */
29
30
/* intra picture macro block coded block pattern */
31 0d33db8a anonymous
const uint16_t ff_msmp4_mb_i_table[64][2] = {
32 de6d9b64 Fabrice Bellard
{ 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 },
33
{ 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 },
34
{ 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 },
35
{ 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 },
36
{ 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 },
37
{ 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 },
38
{ 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 },
39
{ 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 },
40
{ 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 },
41
{ 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 },
42
{ 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 },
43
{ 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 },
44
{ 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 },
45
{ 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 },
46
{ 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 },
47
{ 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 },
48
};
49
50
/* non intra picture macro block coded block pattern + mb type */
51 1457ab52 Michael Niedermayer
static const uint32_t table_mb_non_intra[128][2] = {
52 de6d9b64 Fabrice Bellard
{ 0x40, 7 },{ 0x13c9, 13 },{ 0x9fd, 12 },{ 0x1fc, 15 },
53
{ 0x9fc, 12 },{ 0xa83, 18 },{ 0x12d34, 17 },{ 0x83bc, 16 },
54
{ 0x83a, 12 },{ 0x7f8, 17 },{ 0x3fd, 16 },{ 0x3ff, 16 },
55
{ 0x79, 13 },{ 0xa82, 18 },{ 0x969d, 16 },{ 0x2a4, 16 },
56
{ 0x978, 12 },{ 0x543, 17 },{ 0x41df, 15 },{ 0x7f9, 17 },
57
{ 0x12f3, 13 },{ 0x25a6b, 18 },{ 0x25ef9, 18 },{ 0x3fa, 16 },
58
{ 0x20ee, 14 },{ 0x969ab, 20 },{ 0x969c, 16 },{ 0x25ef8, 18 },
59
{ 0x12d2, 13 },{ 0xa85, 18 },{ 0x969e, 16 },{ 0x4bc8, 15 },
60
{ 0x3d, 12 },{ 0x12f7f, 17 },{ 0x2a2, 16 },{ 0x969f, 16 },
61
{ 0x25ee, 14 },{ 0x12d355, 21 },{ 0x12f7d, 17 },{ 0x12f7e, 17 },
62
{ 0x9e5, 12 },{ 0xa81, 18 },{ 0x4b4d4, 19 },{ 0x83bd, 16 },
63
{ 0x78, 13 },{ 0x969b, 16 },{ 0x3fe, 16 },{ 0x2a5, 16 },
64
{ 0x7e, 13 },{ 0xa80, 18 },{ 0x2a3, 16 },{ 0x3fb, 16 },
65
{ 0x1076, 13 },{ 0xa84, 18 },{ 0x153, 15 },{ 0x4bc9, 15 },
66
{ 0x55, 13 },{ 0x12d354, 21 },{ 0x4bde, 15 },{ 0x25e5, 14 },
67
{ 0x25b, 10 },{ 0x4b4c, 15 },{ 0x96b, 12 },{ 0x96a, 12 },
68
{ 0x1, 2 },{ 0x0, 7 },{ 0x26, 6 },{ 0x12b, 9 },
69
{ 0x7, 3 },{ 0x20f, 10 },{ 0x4, 9 },{ 0x28, 12 },
70
{ 0x6, 3 },{ 0x20a, 10 },{ 0x128, 9 },{ 0x2b, 12 },
71
{ 0x11, 5 },{ 0x1b, 11 },{ 0x13a, 9 },{ 0x4ff, 11 },
72
{ 0x3, 4 },{ 0x277, 10 },{ 0x106, 9 },{ 0x839, 12 },
73
{ 0xb, 4 },{ 0x27b, 10 },{ 0x12c, 9 },{ 0x4bf, 11 },
74
{ 0x9, 6 },{ 0x35, 12 },{ 0x27e, 10 },{ 0x13c8, 13 },
75
{ 0x1, 6 },{ 0x4aa, 11 },{ 0x208, 10 },{ 0x29, 12 },
76
{ 0x1, 4 },{ 0x254, 10 },{ 0x12e, 9 },{ 0x838, 12 },
77
{ 0x24, 6 },{ 0x4f3, 11 },{ 0x276, 10 },{ 0x12f6, 13 },
78
{ 0x1, 5 },{ 0x27a, 10 },{ 0x13e, 9 },{ 0x3e, 12 },
79
{ 0x8, 6 },{ 0x413, 11 },{ 0xc, 10 },{ 0x4be, 11 },
80
{ 0x14, 5 },{ 0x412, 11 },{ 0x253, 10 },{ 0x97a, 12 },
81
{ 0x21, 6 },{ 0x4ab, 11 },{ 0x20b, 10 },{ 0x34, 12 },
82
{ 0x15, 5 },{ 0x278, 10 },{ 0x252, 10 },{ 0x968, 12 },
83
{ 0x5, 5 },{ 0xb, 10 },{ 0x9c, 8 },{ 0xe, 10 },
84
};
85
86
/* dc table 0 */
87
88 0c040aac anonymous
const uint32_t ff_table0_dc_lum[120][2] = {
89 de6d9b64 Fabrice Bellard
{ 0x1, 1 },{ 0x1, 2 },{ 0x1, 4 },{ 0x1, 5 },
90
{ 0x5, 5 },{ 0x7, 5 },{ 0x8, 6 },{ 0xc, 6 },
91
{ 0x0, 7 },{ 0x2, 7 },{ 0x12, 7 },{ 0x1a, 7 },
92
{ 0x3, 8 },{ 0x7, 8 },{ 0x27, 8 },{ 0x37, 8 },
93
{ 0x5, 9 },{ 0x4c, 9 },{ 0x6c, 9 },{ 0x6d, 9 },
94
{ 0x8, 10 },{ 0x19, 10 },{ 0x9b, 10 },{ 0x1b, 10 },
95
{ 0x9a, 10 },{ 0x13, 11 },{ 0x34, 11 },{ 0x35, 11 },
96
{ 0x61, 12 },{ 0x48, 13 },{ 0xc4, 13 },{ 0x4a, 13 },
97
{ 0xc6, 13 },{ 0xc7, 13 },{ 0x92, 14 },{ 0x18b, 14 },
98
{ 0x93, 14 },{ 0x183, 14 },{ 0x182, 14 },{ 0x96, 14 },
99
{ 0x97, 14 },{ 0x180, 14 },{ 0x314, 15 },{ 0x315, 15 },
100
{ 0x605, 16 },{ 0x604, 16 },{ 0x606, 16 },{ 0xc0e, 17 },
101
{ 0x303cd, 23 },{ 0x303c9, 23 },{ 0x303c8, 23 },{ 0x303ca, 23 },
102
{ 0x303cb, 23 },{ 0x303cc, 23 },{ 0x303ce, 23 },{ 0x303cf, 23 },
103
{ 0x303d0, 23 },{ 0x303d1, 23 },{ 0x303d2, 23 },{ 0x303d3, 23 },
104
{ 0x303d4, 23 },{ 0x303d5, 23 },{ 0x303d6, 23 },{ 0x303d7, 23 },
105
{ 0x303d8, 23 },{ 0x303d9, 23 },{ 0x303da, 23 },{ 0x303db, 23 },
106
{ 0x303dc, 23 },{ 0x303dd, 23 },{ 0x303de, 23 },{ 0x303df, 23 },
107
{ 0x303e0, 23 },{ 0x303e1, 23 },{ 0x303e2, 23 },{ 0x303e3, 23 },
108
{ 0x303e4, 23 },{ 0x303e5, 23 },{ 0x303e6, 23 },{ 0x303e7, 23 },
109
{ 0x303e8, 23 },{ 0x303e9, 23 },{ 0x303ea, 23 },{ 0x303eb, 23 },
110
{ 0x303ec, 23 },{ 0x303ed, 23 },{ 0x303ee, 23 },{ 0x303ef, 23 },
111
{ 0x303f0, 23 },{ 0x303f1, 23 },{ 0x303f2, 23 },{ 0x303f3, 23 },
112
{ 0x303f4, 23 },{ 0x303f5, 23 },{ 0x303f6, 23 },{ 0x303f7, 23 },
113
{ 0x303f8, 23 },{ 0x303f9, 23 },{ 0x303fa, 23 },{ 0x303fb, 23 },
114
{ 0x303fc, 23 },{ 0x303fd, 23 },{ 0x303fe, 23 },{ 0x303ff, 23 },
115
{ 0x60780, 24 },{ 0x60781, 24 },{ 0x60782, 24 },{ 0x60783, 24 },
116
{ 0x60784, 24 },{ 0x60785, 24 },{ 0x60786, 24 },{ 0x60787, 24 },
117
{ 0x60788, 24 },{ 0x60789, 24 },{ 0x6078a, 24 },{ 0x6078b, 24 },
118
{ 0x6078c, 24 },{ 0x6078d, 24 },{ 0x6078e, 24 },{ 0x6078f, 24 },
119
};
120
121 0c040aac anonymous
const uint32_t ff_table0_dc_chroma[120][2] = {
122 de6d9b64 Fabrice Bellard
{ 0x0, 2 },{ 0x1, 2 },{ 0x5, 3 },{ 0x9, 4 },
123
{ 0xd, 4 },{ 0x11, 5 },{ 0x1d, 5 },{ 0x1f, 5 },
124
{ 0x21, 6 },{ 0x31, 6 },{ 0x38, 6 },{ 0x33, 6 },
125
{ 0x39, 6 },{ 0x3d, 6 },{ 0x61, 7 },{ 0x79, 7 },
126
{ 0x80, 8 },{ 0xc8, 8 },{ 0xca, 8 },{ 0xf0, 8 },
127
{ 0x81, 8 },{ 0xc0, 8 },{ 0xc9, 8 },{ 0x107, 9 },
128
{ 0x106, 9 },{ 0x196, 9 },{ 0x183, 9 },{ 0x1e3, 9 },
129
{ 0x1e2, 9 },{ 0x20a, 10 },{ 0x20b, 10 },{ 0x609, 11 },
130
{ 0x412, 11 },{ 0x413, 11 },{ 0x60b, 11 },{ 0x411, 11 },
131
{ 0x60a, 11 },{ 0x65f, 11 },{ 0x410, 11 },{ 0x65d, 11 },
132
{ 0x65e, 11 },{ 0xcb8, 12 },{ 0xc10, 12 },{ 0xcb9, 12 },
133
{ 0x1823, 13 },{ 0x3045, 14 },{ 0x6089, 15 },{ 0xc110, 16 },
134
{ 0x304448, 22 },{ 0x304449, 22 },{ 0x30444a, 22 },{ 0x30444b, 22 },
135
{ 0x30444c, 22 },{ 0x30444d, 22 },{ 0x30444e, 22 },{ 0x30444f, 22 },
136
{ 0x304450, 22 },{ 0x304451, 22 },{ 0x304452, 22 },{ 0x304453, 22 },
137
{ 0x304454, 22 },{ 0x304455, 22 },{ 0x304456, 22 },{ 0x304457, 22 },
138
{ 0x304458, 22 },{ 0x304459, 22 },{ 0x30445a, 22 },{ 0x30445b, 22 },
139
{ 0x30445c, 22 },{ 0x30445d, 22 },{ 0x30445e, 22 },{ 0x30445f, 22 },
140
{ 0x304460, 22 },{ 0x304461, 22 },{ 0x304462, 22 },{ 0x304463, 22 },
141
{ 0x304464, 22 },{ 0x304465, 22 },{ 0x304466, 22 },{ 0x304467, 22 },
142
{ 0x304468, 22 },{ 0x304469, 22 },{ 0x30446a, 22 },{ 0x30446b, 22 },
143
{ 0x30446c, 22 },{ 0x30446d, 22 },{ 0x30446e, 22 },{ 0x30446f, 22 },
144
{ 0x304470, 22 },{ 0x304471, 22 },{ 0x304472, 22 },{ 0x304473, 22 },
145
{ 0x304474, 22 },{ 0x304475, 22 },{ 0x304476, 22 },{ 0x304477, 22 },
146
{ 0x304478, 22 },{ 0x304479, 22 },{ 0x30447a, 22 },{ 0x30447b, 22 },
147
{ 0x30447c, 22 },{ 0x30447d, 22 },{ 0x30447e, 22 },{ 0x30447f, 22 },
148
{ 0x608880, 23 },{ 0x608881, 23 },{ 0x608882, 23 },{ 0x608883, 23 },
149
{ 0x608884, 23 },{ 0x608885, 23 },{ 0x608886, 23 },{ 0x608887, 23 },
150
{ 0x608888, 23 },{ 0x608889, 23 },{ 0x60888a, 23 },{ 0x60888b, 23 },
151
{ 0x60888c, 23 },{ 0x60888d, 23 },{ 0x60888e, 23 },{ 0x60888f, 23 },
152
};
153
154
/* dc table 1 */
155
156 0c040aac anonymous
const uint32_t ff_table1_dc_lum[120][2] = {
157 de6d9b64 Fabrice Bellard
{ 0x2, 2 },{ 0x3, 2 },{ 0x3, 3 },{ 0x2, 4 },
158
{ 0x5, 4 },{ 0x1, 5 },{ 0x3, 5 },{ 0x8, 5 },
159
{ 0x0, 6 },{ 0x5, 6 },{ 0xd, 6 },{ 0xf, 6 },
160
{ 0x13, 6 },{ 0x8, 7 },{ 0x18, 7 },{ 0x1c, 7 },
161
{ 0x24, 7 },{ 0x4, 8 },{ 0x6, 8 },{ 0x12, 8 },
162
{ 0x32, 8 },{ 0x3b, 8 },{ 0x4a, 8 },{ 0x4b, 8 },
163
{ 0xb, 9 },{ 0x26, 9 },{ 0x27, 9 },{ 0x66, 9 },
164
{ 0x74, 9 },{ 0x75, 9 },{ 0x14, 10 },{ 0x1c, 10 },
165
{ 0x1f, 10 },{ 0x1d, 10 },{ 0x2b, 11 },{ 0x3d, 11 },
166
{ 0x19d, 11 },{ 0x19f, 11 },{ 0x54, 12 },{ 0x339, 12 },
167
{ 0x338, 12 },{ 0x33d, 12 },{ 0xab, 13 },{ 0xf1, 13 },
168
{ 0x678, 13 },{ 0xf2, 13 },{ 0x1e0, 14 },{ 0x1e1, 14 },
169
{ 0x154, 14 },{ 0xcf2, 14 },{ 0x3cc, 15 },{ 0x2ab, 15 },
170
{ 0x19e7, 15 },{ 0x3ce, 15 },{ 0x19e6, 15 },{ 0x554, 16 },
171
{ 0x79f, 16 },{ 0x555, 16 },{ 0xf3d, 17 },{ 0xf37, 17 },
172
{ 0xf3c, 17 },{ 0xf35, 17 },{ 0x1e6d, 18 },{ 0x1e68, 18 },
173
{ 0x3cd8, 19 },{ 0x3cd3, 19 },{ 0x3cd9, 19 },{ 0x79a4, 20 },
174
{ 0xf34ba, 25 },{ 0xf34b4, 25 },{ 0xf34b5, 25 },{ 0xf34b6, 25 },
175
{ 0xf34b7, 25 },{ 0xf34b8, 25 },{ 0xf34b9, 25 },{ 0xf34bb, 25 },
176
{ 0xf34bc, 25 },{ 0xf34bd, 25 },{ 0xf34be, 25 },{ 0xf34bf, 25 },
177
{ 0x1e6940, 26 },{ 0x1e6941, 26 },{ 0x1e6942, 26 },{ 0x1e6943, 26 },
178
{ 0x1e6944, 26 },{ 0x1e6945, 26 },{ 0x1e6946, 26 },{ 0x1e6947, 26 },
179
{ 0x1e6948, 26 },{ 0x1e6949, 26 },{ 0x1e694a, 26 },{ 0x1e694b, 26 },
180
{ 0x1e694c, 26 },{ 0x1e694d, 26 },{ 0x1e694e, 26 },{ 0x1e694f, 26 },
181
{ 0x1e6950, 26 },{ 0x1e6951, 26 },{ 0x1e6952, 26 },{ 0x1e6953, 26 },
182
{ 0x1e6954, 26 },{ 0x1e6955, 26 },{ 0x1e6956, 26 },{ 0x1e6957, 26 },
183
{ 0x1e6958, 26 },{ 0x1e6959, 26 },{ 0x1e695a, 26 },{ 0x1e695b, 26 },
184
{ 0x1e695c, 26 },{ 0x1e695d, 26 },{ 0x1e695e, 26 },{ 0x1e695f, 26 },
185
{ 0x1e6960, 26 },{ 0x1e6961, 26 },{ 0x1e6962, 26 },{ 0x1e6963, 26 },
186
{ 0x1e6964, 26 },{ 0x1e6965, 26 },{ 0x1e6966, 26 },{ 0x1e6967, 26 },
187
};
188
189 0c040aac anonymous
const uint32_t ff_table1_dc_chroma[120][2] = {
190 de6d9b64 Fabrice Bellard
{ 0x0, 2 },{ 0x1, 2 },{ 0x4, 3 },{ 0x7, 3 },
191
{ 0xb, 4 },{ 0xd, 4 },{ 0x15, 5 },{ 0x28, 6 },
192
{ 0x30, 6 },{ 0x32, 6 },{ 0x52, 7 },{ 0x62, 7 },
193
{ 0x66, 7 },{ 0xa6, 8 },{ 0xc6, 8 },{ 0xcf, 8 },
194
{ 0x14f, 9 },{ 0x18e, 9 },{ 0x19c, 9 },{ 0x29d, 10 },
195
{ 0x33a, 10 },{ 0x538, 11 },{ 0x63c, 11 },{ 0x63e, 11 },
196
{ 0x63f, 11 },{ 0x676, 11 },{ 0xa73, 12 },{ 0xc7a, 12 },
197
{ 0xcef, 12 },{ 0x14e5, 13 },{ 0x19dd, 13 },{ 0x29c8, 14 },
198
{ 0x29c9, 14 },{ 0x63dd, 15 },{ 0x33b8, 14 },{ 0x33b9, 14 },
199
{ 0xc7b6, 16 },{ 0x63d8, 15 },{ 0x63df, 15 },{ 0xc7b3, 16 },
200
{ 0xc7b4, 16 },{ 0xc7b5, 16 },{ 0x63de, 15 },{ 0xc7b7, 16 },
201
{ 0xc7b8, 16 },{ 0xc7b9, 16 },{ 0x18f65, 17 },{ 0x31ec8, 18 },
202
{ 0xc7b248, 24 },{ 0xc7b249, 24 },{ 0xc7b24a, 24 },{ 0xc7b24b, 24 },
203
{ 0xc7b24c, 24 },{ 0xc7b24d, 24 },{ 0xc7b24e, 24 },{ 0xc7b24f, 24 },
204
{ 0xc7b250, 24 },{ 0xc7b251, 24 },{ 0xc7b252, 24 },{ 0xc7b253, 24 },
205
{ 0xc7b254, 24 },{ 0xc7b255, 24 },{ 0xc7b256, 24 },{ 0xc7b257, 24 },
206
{ 0xc7b258, 24 },{ 0xc7b259, 24 },{ 0xc7b25a, 24 },{ 0xc7b25b, 24 },
207
{ 0xc7b25c, 24 },{ 0xc7b25d, 24 },{ 0xc7b25e, 24 },{ 0xc7b25f, 24 },
208
{ 0xc7b260, 24 },{ 0xc7b261, 24 },{ 0xc7b262, 24 },{ 0xc7b263, 24 },
209
{ 0xc7b264, 24 },{ 0xc7b265, 24 },{ 0xc7b266, 24 },{ 0xc7b267, 24 },
210
{ 0xc7b268, 24 },{ 0xc7b269, 24 },{ 0xc7b26a, 24 },{ 0xc7b26b, 24 },
211
{ 0xc7b26c, 24 },{ 0xc7b26d, 24 },{ 0xc7b26e, 24 },{ 0xc7b26f, 24 },
212
{ 0xc7b270, 24 },{ 0xc7b271, 24 },{ 0xc7b272, 24 },{ 0xc7b273, 24 },
213
{ 0xc7b274, 24 },{ 0xc7b275, 24 },{ 0xc7b276, 24 },{ 0xc7b277, 24 },
214
{ 0xc7b278, 24 },{ 0xc7b279, 24 },{ 0xc7b27a, 24 },{ 0xc7b27b, 24 },
215
{ 0xc7b27c, 24 },{ 0xc7b27d, 24 },{ 0xc7b27e, 24 },{ 0xc7b27f, 24 },
216
{ 0x18f6480, 25 },{ 0x18f6481, 25 },{ 0x18f6482, 25 },{ 0x18f6483, 25 },
217
{ 0x18f6484, 25 },{ 0x18f6485, 25 },{ 0x18f6486, 25 },{ 0x18f6487, 25 },
218
{ 0x18f6488, 25 },{ 0x18f6489, 25 },{ 0x18f648a, 25 },{ 0x18f648b, 25 },
219
{ 0x18f648c, 25 },{ 0x18f648d, 25 },{ 0x18f648e, 25 },{ 0x18f648f, 25 },
220
};
221
222
/* vlc table 0, for intra luma */
223
224 1457ab52 Michael Niedermayer
static const uint16_t table0_vlc[133][2] = {
225 de6d9b64 Fabrice Bellard
{ 0x1, 2 },{ 0x6, 3 },{ 0xf, 4 },{ 0x16, 5 },
226
{ 0x20, 6 },{ 0x18, 7 },{ 0x8, 8 },{ 0x9a, 8 },
227
{ 0x56, 9 },{ 0x13e, 9 },{ 0xf0, 10 },{ 0x3a5, 10 },
228
{ 0x77, 11 },{ 0x1ef, 11 },{ 0x9a, 12 },{ 0x5d, 13 },
229
{ 0x1, 4 },{ 0x11, 5 },{ 0x2, 7 },{ 0xb, 8 },
230
{ 0x12, 9 },{ 0x1d6, 9 },{ 0x27e, 10 },{ 0x191, 11 },
231
{ 0xea, 12 },{ 0x3dc, 12 },{ 0x13b, 13 },{ 0x4, 5 },
232
{ 0x14, 7 },{ 0x9e, 8 },{ 0x9, 10 },{ 0x1ac, 11 },
233
{ 0x1e2, 11 },{ 0x3ca, 12 },{ 0x5f, 13 },{ 0x17, 5 },
234
{ 0x4e, 7 },{ 0x5e, 9 },{ 0xf3, 10 },{ 0x1ad, 11 },
235
{ 0xec, 12 },{ 0x5f0, 13 },{ 0xe, 6 },{ 0xe1, 8 },
236
{ 0x3a4, 10 },{ 0x9c, 12 },{ 0x13d, 13 },{ 0x3b, 6 },
237
{ 0x1c, 9 },{ 0x14, 11 },{ 0x9be, 12 },{ 0x6, 7 },
238
{ 0x7a, 9 },{ 0x190, 11 },{ 0x137, 13 },{ 0x1b, 7 },
239
{ 0x8, 10 },{ 0x75c, 11 },{ 0x71, 7 },{ 0xd7, 10 },
240
{ 0x9bf, 12 },{ 0x7, 8 },{ 0xaf, 10 },{ 0x4cc, 11 },
241
{ 0x34, 8 },{ 0x265, 10 },{ 0x9f, 12 },{ 0xe0, 8 },
242
{ 0x16, 11 },{ 0x327, 12 },{ 0x15, 9 },{ 0x17d, 11 },
243
{ 0xebb, 12 },{ 0x14, 9 },{ 0xf6, 10 },{ 0x1e4, 11 },
244
{ 0xcb, 10 },{ 0x99d, 12 },{ 0xca, 10 },{ 0x2fc, 12 },
245
{ 0x17f, 11 },{ 0x4cd, 11 },{ 0x2fd, 12 },{ 0x4fe, 11 },
246
{ 0x13a, 13 },{ 0xa, 4 },{ 0x42, 7 },{ 0x1d3, 9 },
247
{ 0x4dd, 11 },{ 0x12, 5 },{ 0xe8, 8 },{ 0x4c, 11 },
248
{ 0x136, 13 },{ 0x39, 6 },{ 0x264, 10 },{ 0xeba, 12 },
249
{ 0x0, 7 },{ 0xae, 10 },{ 0x99c, 12 },{ 0x1f, 7 },
250
{ 0x4de, 11 },{ 0x43, 7 },{ 0x4dc, 11 },{ 0x3, 8 },
251
{ 0x3cb, 12 },{ 0x6, 8 },{ 0x99e, 12 },{ 0x2a, 8 },
252
{ 0x5f1, 13 },{ 0xf, 8 },{ 0x9fe, 12 },{ 0x33, 8 },
253
{ 0x9ff, 12 },{ 0x98, 8 },{ 0x99f, 12 },{ 0xea, 8 },
254
{ 0x13c, 13 },{ 0x2e, 8 },{ 0x192, 11 },{ 0x136, 9 },
255
{ 0x6a, 9 },{ 0x15, 11 },{ 0x3af, 10 },{ 0x1e3, 11 },
256
{ 0x74, 11 },{ 0xeb, 12 },{ 0x2f9, 12 },{ 0x5c, 13 },
257
{ 0xed, 12 },{ 0x3dd, 12 },{ 0x326, 12 },{ 0x5e, 13 },
258
{ 0x16, 7 },
259
};
260
261 1457ab52 Michael Niedermayer
static const int8_t table0_level[132] = {
262 de6d9b64 Fabrice Bellard
  1,  2,  3,  4,  5,  6,  7,  8,
263
  9, 10, 11, 12, 13, 14, 15, 16,
264
  1,  2,  3,  4,  5,  6,  7,  8,
265
  9, 10, 11,  1,  2,  3,  4,  5,
266
  6,  7,  8,  1,  2,  3,  4,  5,
267
  6,  7,  1,  2,  3,  4,  5,  1,
268
  2,  3,  4,  1,  2,  3,  4,  1,
269
  2,  3,  1,  2,  3,  1,  2,  3,
270
  1,  2,  3,  1,  2,  3,  1,  2,
271
  3,  1,  2,  3,  1,  2,  1,  2,
272
  1,  1,  1,  1,  1,  1,  2,  3,
273
  4,  1,  2,  3,  4,  1,  2,  3,
274
  1,  2,  3,  1,  2,  1,  2,  1,
275
  2,  1,  2,  1,  2,  1,  2,  1,
276
  2,  1,  2,  1,  2,  1,  2,  1,
277
  1,  1,  1,  1,  1,  1,  1,  1,
278
  1,  1,  1,  1,
279
};
280
281 1457ab52 Michael Niedermayer
static const int8_t table0_run[132] = {
282 de6d9b64 Fabrice Bellard
  0,  0,  0,  0,  0,  0,  0,  0,
283
  0,  0,  0,  0,  0,  0,  0,  0,
284
  1,  1,  1,  1,  1,  1,  1,  1,
285
  1,  1,  1,  2,  2,  2,  2,  2,
286
  2,  2,  2,  3,  3,  3,  3,  3,
287
  3,  3,  4,  4,  4,  4,  4,  5,
288
  5,  5,  5,  6,  6,  6,  6,  7,
289
  7,  7,  8,  8,  8,  9,  9,  9,
290
 10, 10, 10, 11, 11, 11, 12, 12,
291
 12, 13, 13, 13, 14, 14, 15, 15,
292
 16, 17, 18, 19, 20,  0,  0,  0,
293
  0,  1,  1,  1,  1,  2,  2,  2,
294
  3,  3,  3,  4,  4,  5,  5,  6,
295
  6,  7,  7,  8,  8,  9,  9, 10,
296
 10, 11, 11, 12, 12, 13, 13, 14,
297
 15, 16, 17, 18, 19, 20, 21, 22,
298
 23, 24, 25, 26,
299
};
300
301
/* vlc table 1, for intra chroma and P macro blocks */
302
303 1457ab52 Michael Niedermayer
static const uint16_t table1_vlc[149][2] = {
304 de6d9b64 Fabrice Bellard
{ 0x4, 3 },{ 0x14, 5 },{ 0x17, 7 },{ 0x7f, 8 },
305
{ 0x154, 9 },{ 0x1f2, 10 },{ 0xbf, 11 },{ 0x65, 12 },
306
{ 0xaaa, 12 },{ 0x630, 13 },{ 0x1597, 13 },{ 0x3b7, 14 },
307
{ 0x2b22, 14 },{ 0xbe6, 15 },{ 0xb, 4 },{ 0x37, 7 },
308
{ 0x62, 9 },{ 0x7, 11 },{ 0x166, 12 },{ 0xce, 13 },
309
{ 0x1590, 13 },{ 0x5f6, 14 },{ 0xbe7, 15 },{ 0x7, 5 },
310
{ 0x6d, 8 },{ 0x3, 11 },{ 0x31f, 12 },{ 0x5f2, 14 },
311
{ 0x2, 6 },{ 0x61, 9 },{ 0x55, 12 },{ 0x1df, 14 },
312
{ 0x1a, 6 },{ 0x1e, 10 },{ 0xac9, 12 },{ 0x2b23, 14 },
313
{ 0x1e, 6 },{ 0x1f, 10 },{ 0xac3, 12 },{ 0x2b2b, 14 },
314
{ 0x6, 7 },{ 0x4, 11 },{ 0x2f8, 13 },{ 0x19, 7 },
315
{ 0x6, 11 },{ 0x63d, 13 },{ 0x57, 7 },{ 0x182, 11 },
316
{ 0x2aa2, 14 },{ 0x4, 8 },{ 0x180, 11 },{ 0x59c, 14 },
317
{ 0x7d, 8 },{ 0x164, 12 },{ 0x76d, 15 },{ 0x2, 9 },
318
{ 0x18d, 11 },{ 0x1581, 13 },{ 0xad, 8 },{ 0x60, 12 },
319
{ 0xc67, 14 },{ 0x1c, 9 },{ 0xee, 13 },{ 0x3, 9 },
320
{ 0x2cf, 13 },{ 0xd9, 9 },{ 0x1580, 13 },{ 0x2, 11 },
321
{ 0x183, 11 },{ 0x57, 12 },{ 0x61, 12 },{ 0x31, 11 },
322
{ 0x66, 12 },{ 0x631, 13 },{ 0x632, 13 },{ 0xac, 13 },
323
{ 0x31d, 12 },{ 0x76, 12 },{ 0x3a, 11 },{ 0x165, 12 },
324
{ 0xc66, 14 },{ 0x3, 2 },{ 0x54, 7 },{ 0x2ab, 10 },
325
{ 0x16, 13 },{ 0x5f7, 14 },{ 0x5, 4 },{ 0xf8, 9 },
326
{ 0xaa9, 12 },{ 0x5f, 15 },{ 0x4, 4 },{ 0x1c, 10 },
327
{ 0x1550, 13 },{ 0x4, 5 },{ 0x77, 11 },{ 0x76c, 15 },
328
{ 0xe, 5 },{ 0xa, 12 },{ 0xc, 5 },{ 0x562, 11 },
329
{ 0x4, 6 },{ 0x31c, 12 },{ 0x6, 6 },{ 0xc8, 13 },
330
{ 0xd, 6 },{ 0x1da, 13 },{ 0x7, 6 },{ 0xc9, 13 },
331
{ 0x1, 7 },{ 0x2e, 14 },{ 0x14, 7 },{ 0x1596, 13 },
332
{ 0xa, 7 },{ 0xac2, 12 },{ 0x16, 7 },{ 0x15b, 14 },
333
{ 0x15, 7 },{ 0x15a, 14 },{ 0xf, 8 },{ 0x5e, 15 },
334
{ 0x7e, 8 },{ 0xab, 8 },{ 0x2d, 9 },{ 0xd8, 9 },
335
{ 0xb, 9 },{ 0x14, 10 },{ 0x2b3, 10 },{ 0x1f3, 10 },
336
{ 0x3a, 10 },{ 0x0, 10 },{ 0x58, 10 },{ 0x2e, 9 },
337
{ 0x5e, 10 },{ 0x563, 11 },{ 0xec, 12 },{ 0x54, 12 },
338
{ 0xac1, 12 },{ 0x1556, 13 },{ 0x2fa, 13 },{ 0x181, 11 },
339
{ 0x1557, 13 },{ 0x59d, 14 },{ 0x2aa3, 14 },{ 0x2b2a, 14 },
340
{ 0x1de, 14 },{ 0x63c, 13 },{ 0xcf, 13 },{ 0x1594, 13 },
341
{ 0xd, 9 },
342
};
343
344 1457ab52 Michael Niedermayer
static const int8_t table1_level[148] = {
345 de6d9b64 Fabrice Bellard
  1,  2,  3,  4,  5,  6,  7,  8,
346
  9, 10, 11, 12, 13, 14,  1,  2,
347
  3,  4,  5,  6,  7,  8,  9,  1,
348
  2,  3,  4,  5,  1,  2,  3,  4,
349
  1,  2,  3,  4,  1,  2,  3,  4,
350
  1,  2,  3,  1,  2,  3,  1,  2,
351
  3,  1,  2,  3,  1,  2,  3,  1,
352
  2,  3,  1,  2,  3,  1,  2,  1,
353
  2,  1,  2,  1,  1,  1,  1,  1,
354
  1,  1,  1,  1,  1,  1,  1,  1,
355
  1,  1,  2,  3,  4,  5,  1,  2,
356
  3,  4,  1,  2,  3,  1,  2,  3,
357
  1,  2,  1,  2,  1,  2,  1,  2,
358
  1,  2,  1,  2,  1,  2,  1,  2,
359
  1,  2,  1,  2,  1,  2,  1,  2,
360
  1,  1,  1,  1,  1,  1,  1,  1,
361
  1,  1,  1,  1,  1,  1,  1,  1,
362
  1,  1,  1,  1,  1,  1,  1,  1,
363
  1,  1,  1,  1,
364
};
365
366 1457ab52 Michael Niedermayer
static const int8_t table1_run[148] = {
367 de6d9b64 Fabrice Bellard
  0,  0,  0,  0,  0,  0,  0,  0,
368
  0,  0,  0,  0,  0,  0,  1,  1,
369
  1,  1,  1,  1,  1,  1,  1,  2,
370
  2,  2,  2,  2,  3,  3,  3,  3,
371
  4,  4,  4,  4,  5,  5,  5,  5,
372
  6,  6,  6,  7,  7,  7,  8,  8,
373
  8,  9,  9,  9, 10, 10, 10, 11,
374
 11, 11, 12, 12, 12, 13, 13, 14,
375
 14, 15, 15, 16, 17, 18, 19, 20,
376
 21, 22, 23, 24, 25, 26, 27, 28,
377
 29,  0,  0,  0,  0,  0,  1,  1,
378
  1,  1,  2,  2,  2,  3,  3,  3,
379
  4,  4,  5,  5,  6,  6,  7,  7,
380
  8,  8,  9,  9, 10, 10, 11, 11,
381
 12, 12, 13, 13, 14, 14, 15, 15,
382
 16, 17, 18, 19, 20, 21, 22, 23,
383
 24, 25, 26, 27, 28, 29, 30, 31,
384
 32, 33, 34, 35, 36, 37, 38, 39,
385
 40, 41, 42, 43,
386
};
387
388
/* third vlc table */
389
390 1457ab52 Michael Niedermayer
static const uint16_t table2_vlc[186][2] = {
391 de6d9b64 Fabrice Bellard
{ 0x1, 2 },{ 0x5, 3 },{ 0xd, 4 },{ 0x12, 5 },
392
{ 0xe, 6 },{ 0x15, 7 },{ 0x13, 8 },{ 0x3f, 8 },
393
{ 0x4b, 9 },{ 0x11f, 9 },{ 0xb8, 10 },{ 0x3e3, 10 },
394
{ 0x172, 11 },{ 0x24d, 12 },{ 0x3da, 12 },{ 0x2dd, 13 },
395
{ 0x1f55, 13 },{ 0x5b9, 14 },{ 0x3eae, 14 },{ 0x0, 4 },
396
{ 0x10, 5 },{ 0x8, 7 },{ 0x20, 8 },{ 0x29, 9 },
397
{ 0x1f4, 9 },{ 0x233, 10 },{ 0x1e0, 11 },{ 0x12a, 12 },
398
{ 0x3dd, 12 },{ 0x50a, 13 },{ 0x1f29, 13 },{ 0xa42, 14 },
399
{ 0x1272, 15 },{ 0x1737, 15 },{ 0x3, 5 },{ 0x11, 7 },
400
{ 0xc4, 8 },{ 0x4b, 10 },{ 0xb4, 11 },{ 0x7d4, 11 },
401
{ 0x345, 12 },{ 0x2d7, 13 },{ 0x7bf, 13 },{ 0x938, 14 },
402
{ 0xbbb, 14 },{ 0x95e, 15 },{ 0x13, 5 },{ 0x78, 7 },
403
{ 0x69, 9 },{ 0x232, 10 },{ 0x461, 11 },{ 0x3ec, 12 },
404
{ 0x520, 13 },{ 0x1f2a, 13 },{ 0x3e50, 14 },{ 0x3e51, 14 },
405
{ 0x1486, 15 },{ 0xc, 6 },{ 0x24, 9 },{ 0x94, 11 },
406
{ 0x8c0, 12 },{ 0xf09, 14 },{ 0x1ef0, 15 },{ 0x3d, 6 },
407
{ 0x53, 9 },{ 0x1a0, 11 },{ 0x2d6, 13 },{ 0xf08, 14 },
408
{ 0x13, 7 },{ 0x7c, 9 },{ 0x7c1, 11 },{ 0x4ac, 14 },
409
{ 0x1b, 7 },{ 0xa0, 10 },{ 0x344, 12 },{ 0xf79, 14 },
410
{ 0x79, 7 },{ 0x3e1, 10 },{ 0x2d4, 13 },{ 0x2306, 14 },
411
{ 0x21, 8 },{ 0x23c, 10 },{ 0xfae, 12 },{ 0x23de, 14 },
412
{ 0x35, 8 },{ 0x175, 11 },{ 0x7b3, 13 },{ 0xc5, 8 },
413
{ 0x174, 11 },{ 0x785, 13 },{ 0x48, 9 },{ 0x1a3, 11 },
414
{ 0x49e, 13 },{ 0x2c, 9 },{ 0xfa, 10 },{ 0x7d6, 11 },
415
{ 0x92, 10 },{ 0x5cc, 13 },{ 0x1ef1, 15 },{ 0xa3, 10 },
416
{ 0x3ed, 12 },{ 0x93e, 14 },{ 0x1e2, 11 },{ 0x1273, 15 },
417
{ 0x7c4, 11 },{ 0x1487, 15 },{ 0x291, 12 },{ 0x293, 12 },
418
{ 0xf8a, 12 },{ 0x509, 13 },{ 0x508, 13 },{ 0x78d, 13 },
419
{ 0x7be, 13 },{ 0x78c, 13 },{ 0x4ae, 14 },{ 0xbba, 14 },
420
{ 0x2307, 14 },{ 0xb9a, 14 },{ 0x1736, 15 },{ 0xe, 4 },
421
{ 0x45, 7 },{ 0x1f3, 9 },{ 0x47a, 11 },{ 0x5dc, 13 },
422
{ 0x23df, 14 },{ 0x19, 5 },{ 0x28, 9 },{ 0x176, 11 },
423
{ 0x49d, 13 },{ 0x23dd, 14 },{ 0x30, 6 },{ 0xa2, 10 },
424
{ 0x2ef, 12 },{ 0x5b8, 14 },{ 0x3f, 6 },{ 0xa5, 10 },
425
{ 0x3db, 12 },{ 0x93f, 14 },{ 0x44, 7 },{ 0x7cb, 11 },
426
{ 0x95f, 15 },{ 0x63, 7 },{ 0x3c3, 12 },{ 0x15, 8 },
427
{ 0x8f6, 12 },{ 0x17, 8 },{ 0x498, 13 },{ 0x2c, 8 },
428
{ 0x7b2, 13 },{ 0x2f, 8 },{ 0x1f54, 13 },{ 0x8d, 8 },
429
{ 0x7bd, 13 },{ 0x8e, 8 },{ 0x1182, 13 },{ 0xfb, 8 },
430
{ 0x50b, 13 },{ 0x2d, 8 },{ 0x7c0, 11 },{ 0x79, 9 },
431
{ 0x1f5f, 13 },{ 0x7a, 9 },{ 0x1f56, 13 },{ 0x231, 10 },
432
{ 0x3e4, 10 },{ 0x1a1, 11 },{ 0x143, 11 },{ 0x1f7, 11 },
433
{ 0x16f, 12 },{ 0x292, 12 },{ 0x2e7, 12 },{ 0x16c, 12 },
434
{ 0x16d, 12 },{ 0x3dc, 12 },{ 0xf8b, 12 },{ 0x499, 13 },
435
{ 0x3d8, 12 },{ 0x78e, 13 },{ 0x2d5, 13 },{ 0x1f5e, 13 },
436
{ 0x1f2b, 13 },{ 0x78f, 13 },{ 0x4ad, 14 },{ 0x3eaf, 14 },
437
{ 0x23dc, 14 },{ 0x4a, 9 },
438
};
439
440 1457ab52 Michael Niedermayer
static const int8_t table2_level[185] = {
441 de6d9b64 Fabrice Bellard
  1,  2,  3,  4,  5,  6,  7,  8,
442
  9, 10, 11, 12, 13, 14, 15, 16,
443
 17, 18, 19,  1,  2,  3,  4,  5,
444
  6,  7,  8,  9, 10, 11, 12, 13,
445
 14, 15,  1,  2,  3,  4,  5,  6,
446
  7,  8,  9, 10, 11, 12,  1,  2,
447
  3,  4,  5,  6,  7,  8,  9, 10,
448
 11,  1,  2,  3,  4,  5,  6,  1,
449
  2,  3,  4,  5,  1,  2,  3,  4,
450
  1,  2,  3,  4,  1,  2,  3,  4,
451
  1,  2,  3,  4,  1,  2,  3,  1,
452
  2,  3,  1,  2,  3,  1,  2,  3,
453
  1,  2,  3,  1,  2,  3,  1,  2,
454
  1,  2,  1,  1,  1,  1,  1,  1,
455
  1,  1,  1,  1,  1,  1,  1,  1,
456
  2,  3,  4,  5,  6,  1,  2,  3,
457
  4,  5,  1,  2,  3,  4,  1,  2,
458
  3,  4,  1,  2,  3,  1,  2,  1,
459
  2,  1,  2,  1,  2,  1,  2,  1,
460
  2,  1,  2,  1,  2,  1,  2,  1,
461
  2,  1,  2,  1,  1,  1,  1,  1,
462
  1,  1,  1,  1,  1,  1,  1,  1,
463
  1,  1,  1,  1,  1,  1,  1,  1,
464
  1,
465
};
466
467 1457ab52 Michael Niedermayer
static const int8_t table2_run[185] = {
468 de6d9b64 Fabrice Bellard
  0,  0,  0,  0,  0,  0,  0,  0,
469
  0,  0,  0,  0,  0,  0,  0,  0,
470
  0,  0,  0,  1,  1,  1,  1,  1,
471
  1,  1,  1,  1,  1,  1,  1,  1,
472
  1,  1,  2,  2,  2,  2,  2,  2,
473
  2,  2,  2,  2,  2,  2,  3,  3,
474
  3,  3,  3,  3,  3,  3,  3,  3,
475
  3,  4,  4,  4,  4,  4,  4,  5,
476
  5,  5,  5,  5,  6,  6,  6,  6,
477
  7,  7,  7,  7,  8,  8,  8,  8,
478
  9,  9,  9,  9, 10, 10, 10, 11,
479
 11, 11, 12, 12, 12, 13, 13, 13,
480
 14, 14, 14, 15, 15, 15, 16, 16,
481
 17, 17, 18, 19, 20, 21, 22, 23,
482
 24, 25, 26, 27, 28, 29, 30,  0,
483
  0,  0,  0,  0,  0,  1,  1,  1,
484
  1,  1,  2,  2,  2,  2,  3,  3,
485
  3,  3,  4,  4,  4,  5,  5,  6,
486
  6,  7,  7,  8,  8,  9,  9, 10,
487
 10, 11, 11, 12, 12, 13, 13, 14,
488
 14, 15, 15, 16, 17, 18, 19, 20,
489
 21, 22, 23, 24, 25, 26, 27, 28,
490
 29, 30, 31, 32, 33, 34, 35, 36,
491
 37,
492
};
493
494
/* second non intra vlc table */
495 1457ab52 Michael Niedermayer
static const uint16_t table4_vlc[169][2] = {
496 de6d9b64 Fabrice Bellard
{ 0x0, 3 },{ 0x3, 4 },{ 0xb, 5 },{ 0x14, 6 },
497
{ 0x3f, 6 },{ 0x5d, 7 },{ 0xa2, 8 },{ 0xac, 9 },
498
{ 0x16e, 9 },{ 0x20a, 10 },{ 0x2e2, 10 },{ 0x432, 11 },
499
{ 0x5c9, 11 },{ 0x827, 12 },{ 0xb54, 12 },{ 0x4e6, 13 },
500
{ 0x105f, 13 },{ 0x172a, 13 },{ 0x20b2, 14 },{ 0x2d4e, 14 },
501
{ 0x39f0, 14 },{ 0x4175, 15 },{ 0x5a9e, 15 },{ 0x4, 4 },
502
{ 0x1e, 5 },{ 0x42, 7 },{ 0xb6, 8 },{ 0x173, 9 },
503
{ 0x395, 10 },{ 0x72e, 11 },{ 0xb94, 12 },{ 0x16a4, 13 },
504
{ 0x20b3, 14 },{ 0x2e45, 14 },{ 0x5, 5 },{ 0x40, 7 },
505
{ 0x49, 9 },{ 0x28f, 10 },{ 0x5cb, 11 },{ 0x48a, 13 },
506
{ 0x9dd, 14 },{ 0x73e2, 15 },{ 0x18, 5 },{ 0x25, 8 },
507
{ 0x8a, 10 },{ 0x51b, 11 },{ 0xe5f, 12 },{ 0x9c9, 14 },
508
{ 0x139c, 15 },{ 0x29, 6 },{ 0x4f, 9 },{ 0x412, 11 },
509
{ 0x48d, 13 },{ 0x2e41, 14 },{ 0x38, 6 },{ 0x10e, 9 },
510
{ 0x5a8, 11 },{ 0x105c, 13 },{ 0x39f2, 14 },{ 0x58, 7 },
511
{ 0x21f, 10 },{ 0xe7e, 12 },{ 0x39ff, 14 },{ 0x23, 8 },
512
{ 0x2e3, 10 },{ 0x4e5, 13 },{ 0x2e40, 14 },{ 0xa1, 8 },
513
{ 0x5be, 11 },{ 0x9c8, 14 },{ 0x83, 8 },{ 0x13a, 11 },
514
{ 0x1721, 13 },{ 0x44, 9 },{ 0x276, 12 },{ 0x39f6, 14 },
515
{ 0x8b, 10 },{ 0x4ef, 13 },{ 0x5a9b, 15 },{ 0x208, 10 },
516
{ 0x1cfe, 13 },{ 0x399, 10 },{ 0x1cb4, 13 },{ 0x39e, 10 },
517
{ 0x39f3, 14 },{ 0x5ab, 11 },{ 0x73e3, 15 },{ 0x737, 11 },
518
{ 0x5a9f, 15 },{ 0x82d, 12 },{ 0xe69, 12 },{ 0xe68, 12 },
519
{ 0x433, 11 },{ 0xb7b, 12 },{ 0x2df8, 14 },{ 0x2e56, 14 },
520
{ 0x2e57, 14 },{ 0x39f7, 14 },{ 0x51a5, 15 },{ 0x3, 3 },
521
{ 0x2a, 6 },{ 0xe4, 8 },{ 0x28e, 10 },{ 0x735, 11 },
522
{ 0x1058, 13 },{ 0x1cfa, 13 },{ 0x2df9, 14 },{ 0x4174, 15 },
523
{ 0x9, 4 },{ 0x54, 8 },{ 0x398, 10 },{ 0x48b, 13 },
524
{ 0x139d, 15 },{ 0xd, 4 },{ 0xad, 9 },{ 0x826, 12 },
525
{ 0x2d4c, 14 },{ 0x11, 5 },{ 0x16b, 9 },{ 0xb7f, 12 },
526
{ 0x51a4, 15 },{ 0x19, 5 },{ 0x21b, 10 },{ 0x16fd, 13 },
527
{ 0x1d, 5 },{ 0x394, 10 },{ 0x28d3, 14 },{ 0x2b, 6 },
528
{ 0x5bc, 11 },{ 0x5a9a, 15 },{ 0x2f, 6 },{ 0x247, 12 },
529
{ 0x10, 7 },{ 0xa35, 12 },{ 0x3e, 6 },{ 0xb7a, 12 },
530
{ 0x59, 7 },{ 0x105e, 13 },{ 0x26, 8 },{ 0x9cf, 14 },
531
{ 0x55, 8 },{ 0x1cb5, 13 },{ 0x57, 8 },{ 0xe5b, 12 },
532
{ 0xa0, 8 },{ 0x1468, 13 },{ 0x170, 9 },{ 0x90, 10 },
533
{ 0x1ce, 9 },{ 0x21a, 10 },{ 0x218, 10 },{ 0x168, 9 },
534
{ 0x21e, 10 },{ 0x244, 12 },{ 0x736, 11 },{ 0x138, 11 },
535
{ 0x519, 11 },{ 0xe5e, 12 },{ 0x72c, 11 },{ 0xb55, 12 },
536
{ 0x9dc, 14 },{ 0x20bb, 14 },{ 0x48c, 13 },{ 0x1723, 13 },
537
{ 0x2e44, 14 },{ 0x16a5, 13 },{ 0x518, 11 },{ 0x39fe, 14 },
538
{ 0x169, 9 },
539
};
540
541 1457ab52 Michael Niedermayer
static const int8_t table4_level[168] = {
542 de6d9b64 Fabrice Bellard
  1,  2,  3,  4,  5,  6,  7,  8,
543
  9, 10, 11, 12, 13, 14, 15, 16,
544
 17, 18, 19, 20, 21, 22, 23,  1,
545
  2,  3,  4,  5,  6,  7,  8,  9,
546
 10, 11,  1,  2,  3,  4,  5,  6,
547
  7,  8,  1,  2,  3,  4,  5,  6,
548
  7,  1,  2,  3,  4,  5,  1,  2,
549
  3,  4,  5,  1,  2,  3,  4,  1,
550
  2,  3,  4,  1,  2,  3,  1,  2,
551
  3,  1,  2,  3,  1,  2,  3,  1,
552
  2,  1,  2,  1,  2,  1,  2,  1,
553
  2,  1,  1,  1,  1,  1,  1,  1,
554
  1,  1,  1,  1,  2,  3,  4,  5,
555
  6,  7,  8,  9,  1,  2,  3,  4,
556
  5,  1,  2,  3,  4,  1,  2,  3,
557
  4,  1,  2,  3,  1,  2,  3,  1,
558
  2,  3,  1,  2,  1,  2,  1,  2,
559
  1,  2,  1,  2,  1,  2,  1,  2,
560
  1,  2,  1,  1,  1,  1,  1,  1,
561
  1,  1,  1,  1,  1,  1,  1,  1,
562
  1,  1,  1,  1,  1,  1,  1,  1,
563
};
564
565 1457ab52 Michael Niedermayer
static const int8_t table4_run[168] = {
566 de6d9b64 Fabrice Bellard
  0,  0,  0,  0,  0,  0,  0,  0,
567
  0,  0,  0,  0,  0,  0,  0,  0,
568
  0,  0,  0,  0,  0,  0,  0,  1,
569
  1,  1,  1,  1,  1,  1,  1,  1,
570
  1,  1,  2,  2,  2,  2,  2,  2,
571
  2,  2,  3,  3,  3,  3,  3,  3,
572
  3,  4,  4,  4,  4,  4,  5,  5,
573
  5,  5,  5,  6,  6,  6,  6,  7,
574
  7,  7,  7,  8,  8,  8,  9,  9,
575
  9, 10, 10, 10, 11, 11, 11, 12,
576
 12, 13, 13, 14, 14, 15, 15, 16,
577
 16, 17, 18, 19, 20, 21, 22, 23,
578
 24, 25, 26,  0,  0,  0,  0,  0,
579
  0,  0,  0,  0,  1,  1,  1,  1,
580
  1,  2,  2,  2,  2,  3,  3,  3,
581
  3,  4,  4,  4,  5,  5,  5,  6,
582
  6,  6,  7,  7,  8,  8,  9,  9,
583
 10, 10, 11, 11, 12, 12, 13, 13,
584
 14, 14, 15, 16, 17, 18, 19, 20,
585
 21, 22, 23, 24, 25, 26, 27, 28,
586
 29, 30, 31, 32, 33, 34, 35, 36,
587
};
588
589 1457ab52 Michael Niedermayer
extern const uint16_t inter_vlc[103][2];
590
extern const int8_t inter_level[102];
591
extern const int8_t inter_run[102];
592 de6d9b64 Fabrice Bellard
593 1457ab52 Michael Niedermayer
extern const uint16_t intra_vlc[103][2];
594
extern const int8_t intra_level[102];
595
extern const int8_t intra_run[102];
596 de6d9b64 Fabrice Bellard
597 1457ab52 Michael Niedermayer
extern const uint8_t DCtab_lum[13][2];
598
extern const uint8_t DCtab_chrom[13][2];
599 84afee34 Michael Niedermayer
600 1457ab52 Michael Niedermayer
extern const uint8_t cbpy_tab[16][2];
601
extern const uint8_t mvtab[33][2];
602 84afee34 Michael Niedermayer
603 725e3877 Michael Niedermayer
extern const uint8_t intra_MCBPC_code[9];
604
extern const uint8_t intra_MCBPC_bits[9];
605 287229e5 Michael Niedermayer
606 725e3877 Michael Niedermayer
extern const uint8_t inter_MCBPC_code[28];
607
extern const uint8_t inter_MCBPC_bits[28];
608 84afee34 Michael Niedermayer
609 de6d9b64 Fabrice Bellard
#define NB_RL_TABLES  6
610
611
static RLTable rl_table[NB_RL_TABLES] = {
612
    /* intra luminance tables */
613
    {
614
        132,
615
        85,
616
        table0_vlc,
617
        table0_run,
618
        table0_level,
619
    },
620
    {
621
        185,
622
        119,
623
        table2_vlc,
624
        table2_run,
625
        table2_level,
626
    },
627
    {
628
        102,
629
        67,
630
        intra_vlc,
631
        intra_run,
632
        intra_level,
633
    },
634
    /* intra chrominance / non intra tables */
635
    {
636
        148,
637
        81,
638
        table1_vlc,
639
        table1_run,
640
        table1_level,
641
    },
642
    {
643
        168,
644
        99,
645
        table4_vlc,
646
        table4_run,
647
        table4_level,
648
    },
649
    {
650
        102,
651
        58,
652
        inter_vlc,
653
        inter_run,
654
        inter_level,
655
    },
656
};
657
658
/* motion vector table 0 */
659
660 1457ab52 Michael Niedermayer
static const uint16_t table0_mv_code[1100] = {
661 de6d9b64 Fabrice Bellard
 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001,
662
 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f,
663
 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b,
664
 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048,
665
 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c,
666
 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2,
667
 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5,
668
 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090,
669
 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133,
670
 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b,
671
 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359,
672
 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d,
673
 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e,
674
 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3,
675
 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8,
676
 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688,
677
 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0,
678
 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079,
679
 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b,
680
 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e,
681
 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d,
682
 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942,
683
 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983,
684
 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17,
685
 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d,
686
 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
687
 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421,
688
 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572,
689
 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996,
690
 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33,
691
 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7,
692
 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff,
693
 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273,
694
 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0,
695
 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2,
696
 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca,
697
 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a,
698
 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8,
699
 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2,
700
 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
701
 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c,
702
 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4,
703
 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2,
704
 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba,
705
 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459,
706
 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461,
707
 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469,
708
 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3,
709
 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb,
710
 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545,
711
 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d,
712
 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
713
 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
714
 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774,
715
 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
716
 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561,
717
 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569,
718
 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571,
719
 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f,
720
 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
721
 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
722
 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
723
 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
724
 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb,
725
 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3,
726
 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb,
727
 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343,
728
 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
729
 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
730
 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a,
731
 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92,
732
 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a,
733
 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2,
734
 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa,
735
 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2,
736
 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba,
737
 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c,
738
 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34,
739
 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c,
740
 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84,
741
 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c,
742
 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94,
743
 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c,
744
 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4,
745
 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac,
746
 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4,
747
 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc,
748
 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4,
749
 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04,
750
 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8,
751
 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0,
752
 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8,
753
 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000,
754
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
755
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010,
756
 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018,
757
 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020,
758
 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028,
759
 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030,
760
 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038,
761
 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040,
762
 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048,
763
 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050,
764
 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058,
765
 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060,
766
 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068,
767
 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070,
768
 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
769
 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c,
770
 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4,
771
 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc,
772
 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44,
773
 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c,
774
 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54,
775
 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c,
776
 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64,
777
 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c,
778
 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74,
779
 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c,
780
 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84,
781
 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c,
782
 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94,
783
 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c,
784
 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
785
 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac,
786
 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4,
787
 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc,
788
 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4,
789
 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc,
790
 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4,
791
 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc,
792
 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
793
 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec,
794
 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4,
795
 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc,
796
 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04,
797
 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c,
798
 0x5f0d, 0x5f0e, 0x5f0f, 0x0000,
799
};
800
801 1457ab52 Michael Niedermayer
static const uint8_t table0_mv_bits[1100] = {
802 de6d9b64 Fabrice Bellard
  1,  4,  4,  4,  5,  5,  5,  6,
803
  6,  6,  7,  7,  7,  8,  8,  8,
804
  8,  8,  8,  8,  8,  8,  8,  8,
805
  8,  9,  9,  9,  9,  9,  9,  9,
806
  9,  9,  9,  9,  9, 10, 10, 10,
807
 10, 10, 10, 10, 10, 10, 10, 10,
808
 10, 10, 10, 10, 10, 10, 10, 10,
809
 10, 10, 10, 10, 11, 11, 11, 11,
810
 11, 11, 11, 11, 11, 11, 11, 11,
811
 11, 11, 11, 11, 11, 11, 11, 11,
812
 11, 11, 11, 11, 11, 11, 11, 11,
813
 12, 12, 12, 12, 12, 12, 12, 12,
814
 12, 12, 12, 12, 12, 12, 12, 12,
815
 12, 12, 12, 12, 12, 12, 12, 12,
816
 12, 12, 12, 12, 12, 12, 12, 12,
817
 12, 12, 12, 12, 12, 12, 12, 12,
818
 12, 12, 12, 12, 12, 12, 12, 12,
819
 12, 12, 12, 13, 13, 13, 13, 13,
820
 13, 13, 13, 13, 13, 13, 13, 13,
821
 13, 13, 13, 13, 13, 13, 13, 13,
822
 13, 13, 13, 13, 13, 13, 13, 13,
823
 13, 13, 13, 13, 13, 13, 13, 13,
824
 13, 13, 13, 13, 13, 13, 13, 13,
825
 13, 13, 13, 13, 13, 13, 13, 13,
826
 13, 13, 13, 13, 13, 13, 13, 13,
827
 13, 13, 14, 14, 14, 14, 14, 14,
828
 14, 14, 14, 14, 14, 14, 14, 14,
829
 14, 14, 14, 14, 14, 14, 14, 14,
830
 14, 14, 14, 14, 14, 14, 14, 14,
831
 14, 14, 14, 14, 14, 14, 14, 14,
832
 14, 14, 14, 14, 14, 14, 14, 14,
833
 14, 14, 14, 14, 14, 14, 14, 14,
834
 14, 14, 14, 14, 14, 14, 14, 14,
835
 14, 14, 14, 14, 14, 14, 14, 14,
836
 14, 14, 14, 14, 14, 14, 14, 14,
837
 14, 14, 14, 14, 14, 14, 14, 14,
838
 14, 14, 14, 14, 14, 14, 14, 14,
839
 14, 14, 14, 14, 14, 14, 14, 14,
840
 14, 15, 15, 15, 15, 15, 15, 15,
841
 15, 15, 15, 15, 15, 15, 15, 15,
842
 15, 15, 15, 15, 15, 15, 15, 15,
843
 15, 15, 15, 15, 15, 15, 15, 15,
844
 15, 15, 15, 15, 15, 15, 15, 15,
845
 15, 15, 15, 15, 15, 15, 15, 15,
846
 15, 15, 15, 15, 15, 15, 15, 15,
847
 15, 15, 15, 15, 15, 15, 15, 15,
848
 15, 15, 15, 15, 15, 15, 15, 15,
849
 15, 15, 15, 15, 15, 15, 15, 15,
850
 15, 15, 15, 15, 15, 15, 15, 15,
851
 15, 15, 15, 15, 15, 15, 15, 15,
852
 15, 15, 15, 15, 15, 15, 15, 15,
853
 15, 15, 15, 15, 15, 15, 15, 15,
854
 15, 15, 15, 15, 15, 15, 15, 15,
855
 15, 15, 15, 15, 15, 15, 15, 15,
856
 15, 15, 15, 15, 15, 15, 15, 15,
857
 15, 15, 15, 15, 15, 15, 15, 15,
858
 15, 15, 15, 15, 15, 15, 15, 15,
859
 15, 15, 15, 15, 15, 15, 15, 15,
860
 15, 15, 15, 15, 16, 16, 16, 16,
861
 16, 16, 16, 16, 16, 16, 16, 16,
862
 16, 16, 16, 16, 16, 16, 16, 16,
863
 16, 16, 16, 16, 16, 16, 16, 16,
864
 16, 16, 16, 16, 16, 16, 16, 16,
865
 16, 16, 16, 16, 16, 16, 16, 16,
866
 16, 16, 16, 16, 16, 16, 16, 16,
867
 16, 16, 16, 16, 16, 16, 16, 16,
868
 16, 16, 16, 16, 16, 16, 16, 16,
869
 16, 16, 16, 16, 16, 16, 16, 16,
870
 16, 16, 16, 16, 16, 16, 16, 16,
871
 16, 16, 16, 16, 16, 16, 16, 16,
872
 16, 16, 16, 16, 16, 16, 16, 16,
873
 16, 16, 16, 16, 16, 16, 16, 16,
874
 16, 16, 16, 16, 16, 16, 16, 16,
875
 16, 16, 16, 16, 16, 16, 16, 16,
876
 16, 16, 16, 16, 16, 16, 16, 16,
877
 16, 16, 16, 16, 16, 16, 16, 16,
878
 16, 16, 16, 16, 16, 16, 16, 16,
879
 16, 16, 16, 16, 16, 16, 16, 16,
880
 16, 16, 16, 16, 16, 16, 16, 16,
881
 16, 16, 16, 16, 16, 16, 16, 16,
882
 16, 16, 16, 16, 16, 16, 16, 16,
883
 16, 16, 16, 16, 16, 16, 16, 16,
884
 16, 16, 16, 16, 16, 16, 16, 16,
885
 16, 16, 16, 16, 16, 16, 16, 16,
886
 16, 16, 16, 16, 16, 16, 16, 16,
887
 16, 16, 16, 16, 16, 16, 16, 16,
888
 16, 16, 16, 16, 16, 16, 16, 16,
889
 16, 16, 16, 16, 16, 16, 16, 16,
890
 16, 16, 16, 16, 16, 16, 16, 16,
891
 16, 17, 17, 17, 17, 17, 17, 17,
892
 17, 17, 17, 17, 17, 17, 17, 17,
893
 17, 17, 17, 17, 17, 17, 17, 17,
894
 17, 17, 17, 17, 17, 17, 17, 17,
895
 17, 17, 17, 17, 17, 17, 17, 17,
896
 17, 17, 17, 17, 17, 17, 17, 17,
897
 17, 17, 17, 17, 17, 17, 17, 17,
898
 17, 17, 17, 17, 17, 17, 17, 17,
899
 17, 17, 17, 17, 17, 17, 17, 17,
900
 17, 17, 17, 17, 17, 17, 17, 17,
901
 17, 17, 17, 17, 17, 17, 17, 17,
902
 17, 17, 17, 17, 17, 17, 17, 17,
903
 17, 17, 17, 17, 17, 17, 17, 17,
904
 17, 17, 17, 17, 17, 17, 17, 17,
905
 17, 17, 17, 17, 17, 17, 17, 17,
906
 17, 17, 17, 17, 17, 17, 17, 17,
907
 17, 17, 17, 17, 17, 17, 17, 17,
908
 17, 17, 17, 17, 17, 17, 17, 17,
909
 17, 17, 17, 17, 17, 17, 17, 17,
910
 17, 17, 17, 17, 17, 17, 17, 17,
911
 17, 17, 17, 17, 17, 17, 17, 17,
912
 17, 17, 17, 17, 17, 17, 17, 17,
913
 17, 17, 17, 17, 17, 17, 17, 17,
914
 17, 17, 17, 17, 17, 17, 17, 17,
915
 17, 17, 17, 17, 17, 17, 17, 17,
916
 17, 17, 17, 17, 17, 17, 17, 17,
917
 17, 17, 17, 17, 17, 17, 17, 17,
918
 17, 17, 17, 17, 17, 17, 17, 17,
919
 17, 17, 17, 17, 17, 17, 17, 17,
920
 17, 17, 17, 17, 17, 17, 17, 17,
921
 17, 17, 17, 17, 17, 17, 17, 17,
922
 17, 17, 17, 17, 17, 17, 17, 17,
923
 17, 17, 17, 17, 17, 17, 17, 17,
924
 17, 17, 17, 17, 17, 17, 17, 17,
925
 17, 17, 17, 17, 17, 17, 17, 17,
926
 17, 17, 17, 17, 17, 17, 17, 17,
927
 17, 17, 17, 17, 17, 17, 17, 17,
928
 17, 17, 17, 17, 17, 17, 17, 17,
929
 17, 17, 17, 17, 17, 17, 17, 17,
930
 17, 17, 17, 17, 17, 17, 17, 17,
931
 17, 17, 17, 17, 17, 17, 17, 17,
932
 17, 17, 17, 17, 17, 17, 17, 17,
933
 17, 17, 17, 17, 17, 17, 17, 17,
934
 17, 17, 17, 17, 17, 17, 17, 17,
935
 17, 17, 17, 17, 17, 17, 17, 17,
936
 17, 17, 17, 17, 17, 17, 17, 17,
937
 17, 17, 17, 17, 17, 17, 17, 17,
938
 17, 17, 17, 17, 17, 17, 17, 17,
939
 17, 17, 17,  8,
940
};
941
942 1457ab52 Michael Niedermayer
static const uint8_t table0_mvx[1099] = {
943 de6d9b64 Fabrice Bellard
 32, 32, 31, 32, 33, 31, 33, 31,
944
 33, 32, 34, 32, 30, 32, 31, 34,
945
 35, 32, 34, 33, 29, 33, 30, 30,
946
 31, 31, 35, 29, 33, 35, 33, 34,
947
 31, 29, 30, 34, 30, 36, 28, 32,
948
 34, 37, 30, 27, 32, 25, 39, 32,
949
 34, 32, 35, 35, 35, 31, 35, 29,
950
 32, 29, 30, 29, 37, 27, 36, 38,
951
 37, 33, 32, 31, 29, 31, 28, 36,
952
 33, 30, 34, 33, 33, 28, 27, 25,
953
 31, 26, 39, 32, 32, 31, 33, 39,
954
 31, 38, 28, 36, 21, 23, 43, 36,
955
 34, 41, 30, 25, 28, 31, 30, 34,
956
 38, 35, 61, 34, 28, 30, 37, 37,
957
 35, 27, 36,  3, 59, 38, 37, 32,
958
 31, 29, 26, 33, 37, 33, 27, 27,
959
 35, 34, 34, 40, 42, 33, 32, 29,
960
  4,  5, 28, 24, 25, 35, 39, 38,
961
 32, 23, 27, 32, 30, 35, 26, 34,
962
 60, 36, 29, 22, 26, 41,  7, 30,
963
 38, 30, 36, 29, 30, 41, 26, 25,
964
 32, 34, 24, 39,  1, 25, 39, 32,
965
 28, 29, 32, 38, 26, 36, 28, 63,
966
 28, 39, 23, 21, 26, 35, 31, 35,
967
 57, 31, 29, 29, 28, 30, 27, 35,
968
  2, 38, 40, 34, 37, 29, 38, 43,
969
 26, 32, 33, 42, 24, 40, 28, 32,
970
 32, 32, 36, 32, 43, 25, 21, 31,
971
 30, 31, 41, 29, 33, 37, 26, 37,
972
 27, 59, 23, 33, 35, 31, 31, 37,
973
 38, 39, 32, 23, 32, 27, 37, 36,
974
 31, 40, 25, 27, 38, 31, 36, 28,
975
 31, 36, 25, 45,  3, 34, 38, 39,
976
 40, 38, 30, 32, 19, 24, 25, 26,
977
 45, 20, 24, 33, 33, 31, 41, 34,
978
 39, 47, 40, 58, 59, 41, 33,  3,
979
 17, 61, 42, 30, 26, 29, 36, 61,
980
 33, 37, 62, 28, 25, 38, 25, 38,
981
 17, 23, 34, 33, 21, 33, 49, 27,
982
 32, 23, 27, 22, 24, 22, 39, 43,
983
 27, 37,  6, 42, 47, 26, 30, 31,
984
 41, 39, 33, 22, 45, 36, 32, 45,
985
 19, 22, 30,  5,  5, 17, 29, 22,
986
 31, 31, 43, 37, 27, 32, 32, 32,
987
 33, 34, 43, 35, 29, 26, 22, 32,
988
 19, 32, 25, 31, 41, 49, 28, 34,
989
 28, 39, 34, 19, 37, 38, 29, 21,
990
 36, 42, 24, 48, 16, 28, 49, 22,
991
 34, 31, 38, 39, 44, 11, 35, 30,
992
 33, 33, 23, 28, 33, 46, 15, 13,
993
 24, 41, 24, 34, 34, 30, 26, 24,
994
 14, 60, 21, 29, 39, 23, 35, 37,
995
 63, 45, 33, 34, 47, 41, 22, 42,
996
 35, 35, 23, 32, 35, 43, 32,  7,
997
 31, 41, 20, 31, 16, 13, 63, 25,
998
 30, 32, 35, 30, 30, 31, 42, 47,
999
 39, 38, 40, 40, 51, 55, 56, 18,
1000
 21, 39, 39, 33, 17, 41, 23, 24,
1001
 43, 25, 31, 20, 19, 45,  1, 34,
1002
 31, 22, 35, 15, 46, 46, 35, 31,
1003
 28, 29, 29, 23, 41, 27, 14, 53,
1004
 53, 27, 24, 32, 57, 32, 17, 42,
1005
 37, 29, 33,  1, 25, 32, 32, 63,
1006
 26, 40, 44, 36, 31, 39, 20, 20,
1007
 44, 23, 33, 34, 35, 33, 33, 28,
1008
 41, 23, 41, 41, 29, 25, 26, 49,
1009
 29, 24, 37, 49, 50, 51, 51, 26,
1010
 39, 25, 26, 15, 39, 18, 42, 17,
1011
  4, 31, 32, 32, 60,  1, 42, 32,
1012
  0, 12, 19, 35, 21, 41, 17, 26,
1013
 20, 45, 46, 32, 37, 22, 47, 29,
1014
 31, 27, 29, 30, 21, 33, 35, 18,
1015
 25, 33, 50, 51, 42,  2, 15, 51,
1016
 53, 33, 25, 29, 55, 37, 38, 33,
1017
 38, 59, 38, 33, 39, 13, 32, 40,
1018
 61, 61, 32,  9, 44,  3, 31, 29,
1019
 25, 31, 27, 23,  9, 25,  9, 29,
1020
 20, 30, 30, 42, 18, 28, 25, 28,
1021
 28, 21, 29, 43, 29, 43, 26, 44,
1022
 44, 21, 38, 21, 24, 45, 45, 35,
1023
 39, 22, 35, 36, 34, 34, 45, 34,
1024
 29, 31, 46, 25, 46, 16, 17, 31,
1025
 20, 32, 47, 47, 47, 32, 49, 49,
1026
 49, 31,  1, 27, 28, 39, 39, 21,
1027
 36, 23, 51,  2, 40, 51, 32, 53,
1028
 24, 30, 24, 30, 21, 40, 57, 57,
1029
 31, 41, 58, 32, 12,  4, 32, 34,
1030
 59, 31, 32, 13,  9, 35, 26, 35,
1031
 37, 61, 37, 63, 26, 29, 41, 38,
1032
 23, 20, 41, 26, 41, 42, 42, 42,
1033
 26, 26, 26, 26,  1, 26, 37, 37,
1034
 37, 23, 34, 42, 27, 43, 34, 27,
1035
 31, 24, 33, 16,  3, 31, 24, 33,
1036
 24,  4, 44, 44, 11, 44, 31, 13,
1037
 13, 44, 45, 13, 25, 22, 38, 26,
1038
 38, 38, 39, 32, 30, 39, 30, 22,
1039
 32, 26, 30, 47, 47, 47, 19, 47,
1040
 30, 31, 35,  8, 23, 47, 47, 27,
1041
 35, 47, 31, 48, 35, 19, 36, 49,
1042
 49, 33, 31, 39, 27, 39, 49, 49,
1043
 50, 50, 50, 39, 31, 51, 51, 39,
1044
 28, 33, 33, 21, 40, 31, 52, 53,
1045
 40, 53,  9, 33, 31, 53, 54, 54,
1046
 54, 55, 55, 34, 15, 56, 25, 56,
1047
 21, 21, 40, 40, 25, 40, 58, 36,
1048
  5, 41, 41, 12, 60, 41, 41, 37,
1049
 22, 61, 18, 29, 29, 30, 61, 30,
1050
 61, 62, 62, 30, 30, 63, 18, 13,
1051
 30, 23, 19, 20, 20, 41, 13,  2,
1052
  5,  5,  1,  5, 32,  6, 32, 35,
1053
 20, 35, 27, 35, 35, 36, 36, 13,
1054
 36, 41, 41, 41,  3, 30, 42, 27,
1055
 20, 30, 27, 28, 30, 21, 33, 33,
1056
 14, 24, 30, 42, 24, 33, 25, 42,
1057
 43, 14, 43, 43, 14, 43,  7, 36,
1058
 37, 37, 37, 37,  7, 14, 25, 43,
1059
 43, 44, 15, 37,  7,  7,  3,  1,
1060
  8, 15, 15,  8, 44, 44, 44, 45,
1061
 45, 45, 45,  8,  8, 45, 21, 45,
1062
 28, 28, 28, 21, 28, 28, 22, 37,
1063
 46, 46, 37,  8, 29, 37, 29, 22,
1064
 46, 37, 22, 29, 47, 47, 38, 38,
1065
 16, 38, 38, 33, 38, 22, 47, 47,
1066
 29, 25, 16,  0, 48,  1, 34, 48,
1067
 48, 34, 25, 26, 26, 49, 49, 26,
1068
  1, 49,  4, 26,  4, 49,  1,  9,
1069
 49, 49, 49, 10, 49, 17, 38, 17,
1070
 17, 50, 38, 50, 50, 22, 38, 51,
1071
 38, 38, 51, 39, 39, 18, 22, 39,
1072
 51, 22, 52, 52, 52, 39, 53, 53,
1073
 10, 23, 18, 29, 10, 53, 29, 54,
1074
 11, 54, 11, 11, 55,  1, 18, 55,
1075
 55, 55, 55, 55, 55, 29, 34, 18,
1076
 29, 56, 56, 34, 57, 34, 34, 29,
1077
 29, 57, 57, 35, 35, 35, 35, 35,
1078
 39, 35, 59, 59, 18, 59, 39, 30,
1079
 18, 40, 60, 60, 61, 30, 18, 61,
1080
 61, 19, 19,
1081
};
1082
1083 1457ab52 Michael Niedermayer
static const uint8_t table0_mvy[1099] = {
1084 de6d9b64 Fabrice Bellard
 32, 31, 32, 33, 32, 31, 31, 33,
1085
 33, 34, 32, 30, 32, 35, 34, 31,
1086
 32, 29, 33, 30, 32, 34, 33, 31,
1087
 30, 35, 31, 31, 29, 33, 35, 30,
1088
 29, 33, 34, 34, 30, 32, 32, 36,
1089
 29, 32, 35, 32, 28, 32, 32, 27,
1090
 35, 37, 34, 29, 30, 36, 35, 34,
1091
 25, 30, 29, 35, 33, 31, 31, 32,
1092
 31, 28, 39, 28, 29, 37, 31, 33,
1093
 27, 36, 28, 36, 37, 33, 33, 31,
1094
 27, 32, 31, 38, 26, 25, 25, 33,
1095
 39, 31, 34, 30, 32, 32, 32, 34,
1096
 36, 32, 28, 33, 30, 38, 37, 27,
1097
 33, 28, 32, 37, 35, 38, 29, 34,
1098
 27, 29, 29, 32, 32, 34, 35,  3,
1099
 26, 36, 31, 38, 30, 26, 35, 34,
1100
 37, 26, 25, 32, 32, 39, 23, 37,
1101
 32, 32, 29, 32, 29, 36, 29, 30,
1102
 41, 31, 30, 21, 39, 25, 34, 38,
1103
 32, 35, 39, 32, 33, 33, 32, 27,
1104
 29, 25, 28, 27, 26, 31, 30, 35,
1105
 24, 24, 31, 34, 32, 30, 35, 40,
1106
 28, 38,  5, 35, 29, 36, 36, 32,
1107
 38, 30, 33, 31, 35, 26, 23, 38,
1108
 32, 41, 28, 25, 37, 40, 37, 39,
1109
 32, 36, 33, 39, 25, 26, 28, 31,
1110
 28, 42, 23, 31, 33, 31, 39,  1,
1111
 59, 22, 27,  4, 33, 34, 33, 24,
1112
 41,  3, 35, 41, 41, 28, 36, 36,
1113
 28, 33, 35, 21, 23, 21, 22, 37,
1114
 27, 27, 43, 29, 60, 39, 27, 25,
1115
 59, 34, 27, 27, 26, 40, 37, 27,
1116
 61, 26, 39, 33, 31, 22, 37, 25,
1117
 30, 25, 24, 61, 31, 34, 25, 38,
1118
 32, 32, 30,  3, 61, 43, 29, 23,
1119
 28, 32, 28, 32, 31, 34,  5, 33,
1120
 32, 33, 33, 42, 37, 23, 38, 31,
1121
 40, 26, 32, 26, 37, 38, 36, 24,
1122
 29, 30, 20, 22, 29, 24, 32, 41,
1123
  2, 34, 25, 33, 29, 31, 39, 35,
1124
 36, 24, 32, 30, 33, 27, 44, 60,
1125
 30, 36, 19, 34, 31, 24, 16, 35,
1126
 32, 38, 21, 33, 31, 31, 21, 35,
1127
  5, 17, 29, 38, 38, 18, 58, 19,
1128
 43, 41, 30, 41, 43, 39, 29,  7,
1129
 29, 17, 28, 19, 28, 31, 25, 19,
1130
 40, 26, 21, 33, 39, 23, 40, 30,
1131
 39, 34, 35, 32, 32, 24, 33, 30,
1132
 40, 47, 39, 37, 32, 33, 24, 23,
1133
 45, 47, 27, 23, 42, 32, 32, 33,
1134
 36, 37, 37, 17, 18, 22, 40, 38,
1135
 32, 31, 35, 24, 17, 25, 17, 23,
1136
 33, 34, 51, 42, 31, 36, 36, 29,
1137
 21, 22, 37, 44, 43, 25, 47, 33,
1138
 45, 27, 31, 58, 31, 32, 31, 38,
1139
 43, 20, 47, 45, 54,  1, 26, 34,
1140
 38, 14, 22, 24, 33, 34, 32, 32,
1141
 37, 21, 23, 49, 35, 23, 28, 39,
1142
 39, 23, 55, 33, 30, 30, 63, 16,
1143
 42, 28, 13, 33, 33, 35, 19, 46,
1144
 43, 17, 19, 36, 39, 24, 31, 32,
1145
 33, 26, 28, 62, 33, 63, 33, 39,
1146
 19, 49, 17, 31, 43, 13, 15, 29,
1147
 25, 35, 33, 23, 49, 41, 28, 29,
1148
 34, 38,  7, 61, 11, 50, 13, 41,
1149
 19, 47, 25, 26, 15, 42, 41, 29,
1150
 45, 27, 17, 35, 32, 29, 32, 24,
1151
 13, 26, 26, 31, 24, 33, 28, 30,
1152
 31, 11, 45, 46, 33, 33, 35, 57,
1153
 32, 32, 35, 45, 34, 11, 37, 42,
1154
 39, 37, 31, 49, 21, 27, 29, 47,
1155
 53, 40, 51, 16, 26,  1, 40, 30,
1156
 41, 44, 34, 25, 27, 31, 35, 35,
1157
 31, 15, 49,  1, 35, 40,  5, 58,
1158
 21, 29, 22, 59, 45, 31,  9, 26,
1159
  9, 29, 11, 32, 30,  3, 13, 20,
1160
 18, 20, 11,  3, 29, 40, 31, 53,
1161
 30, 17, 20, 37, 31, 42, 47, 47,
1162
 54, 38,  9, 34, 13, 37, 21, 25,
1163
 27, 43, 42, 45, 40, 25, 27, 46,
1164
 22, 25, 53, 20,  2, 14, 39, 15,
1165
 22, 44, 34, 21, 38, 33, 27, 48,
1166
 34, 52, 35, 47, 49, 54,  2, 13,
1167
 23, 52, 29, 45, 22, 49, 54, 21,
1168
 40, 42, 31, 30, 29, 34,  0, 25,
1169
 23, 51, 24, 59, 28, 38, 29, 31,
1170
  2, 13, 31,  8, 31, 33, 12, 45,
1171
 41,  7, 14, 30, 25, 18, 43, 20,
1172
 43, 35, 44,  1, 49, 42, 42, 18,
1173
 41, 38, 41, 44, 53, 11, 20, 25,
1174
 45, 46, 47, 48, 39, 52, 46, 49,
1175
 63, 55, 44, 38, 13, 13, 57, 22,
1176
 51, 16, 12, 28, 35, 57, 25, 20,
1177
 26, 28, 28, 29, 32, 31, 62, 34,
1178
 35, 35, 19, 49, 48, 39, 40, 18,
1179
 43, 46, 11,  6, 48, 19, 49, 41,
1180
 10, 23, 58, 17, 21, 23, 34, 30,
1181
 60,  0, 44, 34, 26, 37, 46, 43,
1182
 49, 59,  4, 34, 59, 37, 22, 25,
1183
 28, 46,  6, 40, 59, 42, 36, 61,
1184
 28, 30, 31, 43, 10, 22, 23, 47,
1185
 20, 52, 55, 36, 25, 16,  1, 11,
1186
 27, 29,  5, 63, 18, 41, 31, 34,
1187
 38,  1,  5, 13, 28, 31, 17, 38,
1188
 39, 41, 36, 37, 22, 39, 33, 43,
1189
 43, 15, 17, 49, 30, 21, 22, 20,
1190
 10, 17, 25, 54, 57,  3, 34,  8,
1191
 36, 25, 31, 14, 15, 19, 29, 25,
1192
 18, 39, 53, 22, 27, 20, 29, 33,
1193
 41, 42, 35, 62, 50, 29, 53, 50,
1194
 35, 55, 42, 61, 63,  4,  7, 42,
1195
 21, 46, 47, 49, 27, 46, 17, 55,
1196
 41, 50, 63,  4, 56, 18,  8, 10,
1197
 18, 51, 63, 36, 55, 18,  5, 55,
1198
  9, 29, 17, 21, 30, 27,  1, 59,
1199
  7, 11, 12, 15,  5, 42, 24, 41,
1200
 43,  7, 27, 22, 25, 31, 30, 37,
1201
 22, 39, 53, 29, 36, 37, 48,  0,
1202
  5, 13, 17, 31, 32, 26, 46, 28,
1203
 44, 45, 46, 53, 49, 51,  3, 41,
1204
  3, 22, 42, 33,  5, 45,  7, 22,
1205
 40, 53, 24, 14, 25, 27, 10, 12,
1206
 34, 16, 17, 53, 20, 26, 39, 45,
1207
 18, 45, 35, 33, 31, 49,  4, 39,
1208
 42, 11, 51,  5, 13, 26, 27, 17,
1209
 52, 30,  0, 22, 12, 34, 62, 36,
1210
 38, 41, 47, 30, 63, 38, 41, 43,
1211
 59, 33, 45, 37, 38, 40, 47, 24,
1212
 48, 49, 30,  1, 10, 22, 49, 15,
1213
 39, 59, 31, 32, 33, 18, 13, 15,
1214
 31, 21, 27, 44, 42, 39, 46, 17,
1215
 26, 32, 30, 31,  0, 30, 34,  9,
1216
 12, 13, 25, 31, 32, 55, 43, 35,
1217
 61, 33, 35, 46, 25, 47, 48, 62,
1218
 63, 38, 61,  1,  2,  5,  7,  9,
1219
 46, 10, 34, 35, 36, 55, 51,  7,
1220
 40, 23, 34, 37,  5, 13, 42, 18,
1221
 25, 27, 28,
1222
};
1223
1224
/* motion vector table 1 */
1225 1457ab52 Michael Niedermayer
static const uint16_t table1_mv_code[1100] = {
1226 de6d9b64 Fabrice Bellard
 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c,
1227
 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041,
1228
 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069,
1229
 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8,
1230
 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8,
1231
 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a,
1232
 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b,
1233
 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d,
1234
 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f,
1235
 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202,
1236
 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f,
1237
 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8,
1238
 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326,
1239
 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372,
1240
 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a,
1241
 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325,
1242
 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428,
1243
 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c,
1244
 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557,
1245
 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a,
1246
 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616,
1247
 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b,
1248
 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8,
1249
 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b,
1250
 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a,
1251
 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581,
1252
 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e,
1253
 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2,
1254
 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802,
1255
 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f,
1256
 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a,
1257
 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37,
1258
 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f,
1259
 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99,
1260
 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8,
1261
 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26,
1262
 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0,
1263
 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93,
1264
 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0,
1265
 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93,
1266
 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9,
1267
 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844,
1268
 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e,
1269
 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5,
1270
 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf,
1271
 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9,
1272
 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30,
1273
 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e,
1274
 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41,
1275
 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98,
1276
 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf,
1277
 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded,
1278
 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032,
1279
 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077,
1280
 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9,
1281
 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404,
1282
 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414,
1283
 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468,
1284
 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488,
1285
 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba,
1286
 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa,
1287
 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c,
1288
 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e,
1289
 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b,
1290
 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4,
1291
 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843,
1292
 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862,
1293
 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a,
1294
 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e,
1295
 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958,
1296
 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3,
1297
 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63,
1298
 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b,
1299
 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa,
1300
 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2,
1301
 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86,
1302
 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007,
1303
 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
1304
 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086,
1305
 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f,
1306
 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358,
1307
 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360,
1308
 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620,
1309
 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628,
1310
 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770,
1311
 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876,
1312
 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e,
1313
 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972,
1314
 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a,
1315
 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6,
1316
 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c,
1317
 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54,
1318
 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034,
1319
 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c,
1320
 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba,
1321
 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2,
1322
 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0,
1323
 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8,
1324
 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0,
1325
 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898,
1326
 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0,
1327
 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8,
1328
 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934,
1329
 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
1330
 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964,
1331
 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40,
1332
 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48,
1333
 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50,
1334
 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26,
1335
 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e,
1336
 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014,
1337
 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024,
1338
 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c,
1339
 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034,
1340
 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de,
1341
 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e,
1342
 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226,
1343
 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e,
1344
 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378,
1345
 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0,
1346
 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8,
1347
 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0,
1348
 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8,
1349
 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
1350
 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
1351
 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
1352
 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
1353
 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8,
1354
 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0,
1355
 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8,
1356
 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000,
1357
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
1358
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182,
1359
 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba,
1360
 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462,
1361
 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
1362
 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
1363
 0x2473, 0x26a2, 0x26a3, 0x000b,
1364
};
1365
1366 1457ab52 Michael Niedermayer
static const uint8_t table1_mv_bits[1100] = {
1367 de6d9b64 Fabrice Bellard
  2,  4,  4,  4,  5,  5,  5,  5,
1368
  6,  6,  7,  7,  7,  7,  7,  8,
1369
  8,  8,  8,  8,  8,  8,  8,  8,
1370
  8,  8,  8,  8,  8,  8,  8,  8,
1371
  8,  9,  9,  9,  9,  9,  9,  9,
1372
  9,  9,  9,  9,  9,  9,  9,  9,
1373
  9,  9,  9,  9,  9, 10, 10, 10,
1374
 10, 10, 10, 10, 10, 10, 10, 10,
1375
 10, 10, 10, 10, 10, 10, 10, 10,
1376
 10, 10, 10, 10, 10, 10, 10, 10,
1377
 10, 10, 10, 10, 10, 10, 10, 10,
1378
 10, 10, 10, 10, 10, 10, 10, 10,
1379
 10, 10, 10, 10, 10, 10, 10, 10,
1380
 10, 10, 10, 10, 10, 10, 10, 10,
1381
 10, 10, 10, 11, 11, 11, 11, 11,
1382
 11, 11, 11, 11, 11, 11, 11, 11,
1383
 11, 11, 11, 11, 11, 11, 11, 11,
1384
 11, 11, 11, 11, 11, 11, 11, 11,
1385
 11, 11, 11, 11, 11, 11, 11, 11,
1386
 11, 11, 11, 11, 11, 11, 11, 11,
1387
 11, 11, 11, 11, 11, 11, 11, 11,
1388
 11, 11, 11, 11, 11, 11, 11, 11,
1389
 11, 11, 11, 11, 11, 11, 11, 11,
1390
 11, 11, 11, 11, 11, 11, 11, 11,
1391
 11, 11, 11, 12, 12, 12, 12, 12,
1392
 12, 12, 12, 12, 12, 12, 12, 12,
1393
 12, 12, 12, 12, 12, 12, 12, 12,
1394
 12, 12, 12, 12, 12, 12, 12, 12,
1395
 12, 12, 12, 12, 12, 12, 12, 12,
1396
 12, 12, 12, 12, 12, 12, 12, 12,
1397
 12, 12, 12, 12, 12, 12, 12, 12,
1398
 12, 12, 12, 12, 12, 12, 12, 12,
1399
 12, 12, 12, 12, 12, 12, 12, 12,
1400
 12, 12, 12, 12, 12, 12, 12, 12,
1401
 12, 12, 12, 12, 12, 12, 12, 12,
1402
 12, 12, 12, 12, 12, 12, 12, 12,
1403
 12, 12, 12, 12, 12, 12, 12, 12,
1404
 12, 12, 12, 12, 12, 12, 12, 12,
1405
 12, 12, 12, 12, 12, 12, 12, 12,
1406
 12, 12, 12, 12, 12, 12, 12, 12,
1407
 12, 12, 12, 12, 12, 12, 12, 12,
1408
 12, 12, 13, 13, 13, 13, 13, 13,
1409
 13, 13, 13, 13, 13, 13, 13, 13,
1410
 13, 13, 13, 13, 13, 13, 13, 13,
1411
 13, 13, 13, 13, 13, 13, 13, 13,
1412
 13, 13, 13, 13, 13, 13, 13, 13,
1413
 13, 13, 13, 13, 13, 13, 13, 13,
1414
 13, 13, 13, 13, 13, 13, 13, 13,
1415
 13, 13, 13, 13, 13, 13, 13, 13,
1416
 13, 13, 13, 13, 13, 13, 13, 13,
1417
 13, 13, 13, 13, 13, 13, 13, 13,
1418
 13, 13, 13, 13, 13, 13, 13, 13,
1419
 13, 13, 13, 13, 13, 13, 13, 13,
1420
 13, 13, 13, 13, 13, 13, 13, 13,
1421
 13, 13, 13, 13, 13, 13, 13, 13,
1422
 13, 13, 13, 13, 13, 13, 13, 13,
1423
 13, 13, 13, 13, 13, 13, 13, 13,
1424
 13, 13, 13, 13, 13, 13, 13, 13,
1425
 13, 13, 13, 13, 13, 13, 13, 13,
1426
 13, 13, 13, 13, 13, 13, 13, 13,
1427
 13, 13, 13, 13, 13, 13, 13, 13,
1428
 13, 13, 13, 13, 13, 13, 13, 13,
1429
 13, 13, 13, 13, 13, 13, 13, 13,
1430
 13, 13, 13, 13, 13, 13, 13, 13,
1431
 13, 13, 13, 13, 13, 13, 13, 13,
1432
 13, 13, 13, 13, 13, 13, 13, 13,
1433
 13, 13, 13, 13, 13, 13, 13, 13,
1434
 13, 13, 13, 13, 13, 13, 13, 13,
1435
 13, 13, 13, 13, 13, 13, 13, 13,
1436
 13, 13, 13, 13, 13, 13, 13, 13,
1437
 13, 13, 13, 13, 13, 13, 13, 13,
1438
 13, 13, 13, 13, 13, 13, 13, 13,
1439
 13, 13, 13, 13, 13, 13, 13, 13,
1440
 13, 13, 13, 13, 13, 13, 13, 13,
1441
 13, 13, 13, 13, 13, 13, 13, 13,
1442
 13, 13, 13, 13, 13, 13, 13, 13,
1443
 13, 13, 13, 13, 13, 13, 13, 14,
1444
 14, 14, 14, 14, 14, 14, 14, 14,
1445
 14, 14, 14, 14, 14, 14, 14, 14,
1446
 14, 14, 14, 14, 14, 14, 14, 14,
1447
 14, 14, 14, 14, 14, 14, 14, 14,
1448
 14, 14, 14, 14, 14, 14, 14, 14,
1449
 14, 14, 14, 14, 14, 14, 14, 14,
1450
 14, 14, 14, 14, 14, 14, 14, 14,
1451
 14, 14, 14, 14, 14, 14, 14, 14,
1452
 14, 14, 14, 14, 14, 14, 14, 14,
1453
 14, 14, 14, 14, 14, 14, 14, 14,
1454
 14, 14, 14, 14, 14, 14, 14, 14,
1455
 14, 14, 14, 14, 14, 14, 14, 14,
1456
 14, 14, 14, 14, 14, 14, 14, 14,
1457
 14, 14, 14, 14, 14, 14, 14, 14,
1458
 14, 14, 14, 14, 14, 14, 14, 14,
1459
 14, 14, 14, 14, 14, 14, 14, 14,
1460
 14, 14, 14, 14, 14, 14, 14, 14,
1461
 14, 14, 14, 14, 14, 14, 14, 14,
1462
 14, 14, 14, 14, 14, 14, 14, 14,
1463
 14, 14, 14, 14, 14, 14, 14, 14,
1464
 14, 14, 14, 14, 14, 14, 14, 14,
1465
 14, 14, 14, 14, 14, 14, 14, 14,
1466
 14, 14, 14, 14, 14, 14, 14, 14,
1467
 14, 14, 14, 14, 14, 14, 14, 14,
1468
 14, 14, 14, 14, 14, 14, 14, 14,
1469
 14, 14, 14, 14, 14, 14, 14, 14,
1470
 14, 14, 14, 14, 14, 14, 14, 14,
1471
 14, 14, 14, 14, 14, 14, 14, 14,
1472
 14, 14, 14, 14, 14, 14, 14, 14,
1473
 14, 14, 14, 14, 14, 14, 14, 14,
1474
 14, 14, 14, 14, 14, 14, 14, 14,
1475
 14, 14, 14, 14, 14, 14, 14, 14,
1476
 14, 14, 14, 14, 14, 14, 14, 14,
1477
 14, 14, 14, 14, 14, 14, 14, 14,
1478
 14, 14, 14, 14, 14, 14, 14, 14,
1479
 14, 14, 14, 14, 14, 14, 14, 14,
1480
 14, 14, 14, 14, 14, 14, 14, 14,
1481
 14, 14, 14, 14, 14, 14, 14, 14,
1482
 14, 14, 14, 14, 14, 14, 14, 14,
1483
 14, 14, 14, 14, 14, 14, 14, 14,
1484
 14, 14, 14, 14, 14, 14, 14, 14,
1485
 14, 14, 14, 14, 14, 14, 14, 14,
1486
 14, 14, 14, 14, 14, 14, 14, 14,
1487
 14, 14, 14, 14, 14, 14, 14, 14,
1488
 14, 14, 14, 14, 14, 14, 14, 14,
1489
 14, 14, 14, 14, 14, 14, 14, 14,
1490
 14, 14, 14, 14, 14, 14, 14, 14,
1491
 14, 14, 14, 14, 14, 14, 14, 14,
1492
 14, 14, 14, 14, 14, 14, 14, 14,
1493
 14, 14, 14, 14, 14, 14, 14, 14,
1494
 14, 14, 14, 14, 14, 14, 14, 14,
1495
 14, 14, 14, 14, 14, 14, 14, 14,
1496
 14, 14, 14, 14, 14, 14, 14, 14,
1497
 14, 14, 14, 14, 14, 14, 14, 15,
1498
 15, 15, 15, 15, 15, 15, 15, 15,
1499
 15, 15, 15, 15, 15, 15, 15, 15,
1500
 15, 15, 15, 15, 15, 15, 15, 15,
1501
 15, 15, 15, 15, 15, 15, 15, 15,
1502
 15, 15, 15, 15, 15, 15, 15, 15,
1503
 15, 15, 15, 15, 15, 15, 15, 15,
1504
 15, 15, 15,  4,
1505
};
1506
1507 1457ab52 Michael Niedermayer
static const uint8_t table1_mvx[1099] = {
1508 de6d9b64 Fabrice Bellard
 32, 31, 32, 31, 33, 32, 33, 33,
1509
 31, 34, 30, 32, 32, 34, 35, 32,
1510
 34, 33, 29, 30, 30, 32, 31, 31,
1511
 33, 35, 35, 33, 31, 29, 29, 33,
1512
 34, 30, 31, 28, 36, 30, 34, 32,
1513
 32, 37, 32, 32, 25, 27, 39, 32,
1514
 32, 32, 38, 35, 36, 32, 37, 61,
1515
 26, 32, 34, 35,  3, 35, 27, 28,
1516
 29, 34, 28, 37, 31, 36, 32, 27,
1517
 31, 30, 29, 39, 33, 29, 33, 35,
1518
 25, 25, 29, 33, 31, 31, 31, 33,
1519
 32, 30, 32, 32, 41, 39, 33, 36,
1520
 32, 28, 34, 36, 38, 24, 60, 31,
1521
 23, 28, 32, 33, 59, 32, 40, 30,
1522
  5, 34, 32, 38, 32, 30, 43,  4,
1523
 32, 32, 42, 31, 31, 32, 26, 38,
1524
 26, 22, 21, 37, 61, 63, 37, 31,
1525
 32, 33,  2,  1, 23, 33, 41, 27,
1526
 35, 30, 38, 23, 33,  3, 28, 34,
1527
 34, 27, 41, 29, 39, 35, 36, 29,
1528
 32, 27, 30, 32, 24, 61, 37, 26,
1529
 59, 25, 35, 27, 36, 37, 30, 31,
1530
 34, 40,  3, 28, 34, 39, 32, 31,
1531
 32, 30, 24, 28, 35, 36, 26, 32,
1532
 31, 33, 29, 33, 39, 25, 30, 24,
1533
 35, 59, 29, 34, 25, 30, 21, 35,
1534
 43, 40, 32, 29,  5, 28, 31, 62,
1535
 33, 33, 25, 31, 21, 31, 43, 31,
1536
 34, 33, 20, 40, 39, 31, 31, 57,
1537
 38, 32, 42, 33, 32, 31, 32, 29,
1538
 30, 44,  5, 31, 22, 34, 36, 17,
1539
 38, 58, 38, 35, 32, 60, 35, 24,
1540
 32, 38, 16, 45, 42, 32, 31, 29,
1541
  4, 30, 17, 40, 46, 48, 63, 32,
1542
 42, 19, 41, 22, 28, 36, 45, 33,
1543
 33, 32, 29,  7, 41, 42, 18, 33,
1544
 33, 32, 22, 37,  1, 26, 22, 23,
1545
 49, 28, 26, 27, 32, 33, 27, 23,
1546
 28, 36, 15,  6, 34, 27, 31, 26,
1547
 23,  2, 33, 32, 34, 41, 28, 32,
1548
 41,  0, 36, 38, 34, 31, 47, 32,
1549
 17, 31, 39, 33, 37, 51, 30, 47,
1550
 32, 50, 32, 19, 63, 30, 25, 27,
1551
 33, 62, 24, 31, 27, 30, 37, 31,
1552
 45, 32, 39, 20, 46, 47, 35, 19,
1553
 34,  1, 49, 21, 21, 14, 51, 26,
1554
 23, 31, 36, 35, 58, 29, 29, 21,
1555
 20, 42, 13, 28, 12, 40, 31, 33,
1556
 39, 60, 32, 44, 33, 31, 28, 37,
1557
 29, 32, 30, 49, 43, 28, 39, 25,
1558
 32, 48,  2, 15, 20, 25, 31, 28,
1559
 21, 24, 25, 15, 31, 17, 37, 43,
1560
 18, 32, 33, 24, 33, 36, 13, 33,
1561
 31, 39, 11, 31, 33, 32, 39, 37,
1562
 32, 32, 29, 17, 44, 46, 36, 35,
1563
 26, 37, 58, 32, 34, 38,  8, 38,
1564
 38, 22, 29, 25, 16, 35, 32, 35,
1565
 33, 43, 18, 46, 38, 50, 33, 18,
1566
 53, 60, 13, 32, 36, 33, 51, 36,
1567
 43, 45, 27, 42, 29, 24, 30, 25,
1568
 31, 52, 31, 35, 38,  9, 22, 34,
1569
  4, 17, 28, 55, 42, 25, 17, 20,
1570
 47, 34, 33, 16, 40, 25, 16, 30,
1571
 53, 29, 10, 11, 14, 26, 33,  4,
1572
 35, 44, 26, 16, 31, 26, 34, 38,
1573
 29, 31, 30, 24, 22, 61, 32,  9,
1574
 45, 34, 31, 19,  9, 31, 46, 31,
1575
 35, 54, 29, 57, 30, 50,  3, 31,
1576
 63, 34, 47, 41, 51, 18, 31, 14,
1577
 37, 38, 31, 24, 32, 31, 50, 33,
1578
 31, 54, 27,  9, 33, 23, 19, 32,
1579
 29, 29, 33, 28, 47, 49, 30, 47,
1580
 33, 27, 25, 54, 44, 45, 50, 58,
1581
 51, 48, 33, 59, 33, 34, 57, 13,
1582
 26, 33, 13, 48, 30, 11,  7, 56,
1583
 34, 55, 26,  0, 26, 35,  1, 51,
1584
 33, 53, 31, 45, 12, 29, 29, 51,
1585
 31, 48,  2,  6, 34, 30, 28, 33,
1586
 60, 40, 27, 46, 31,  9, 35, 29,
1587
 31, 39, 55, 46, 19, 37, 62, 34,
1588
 30, 16, 19, 49, 41, 41, 39, 37,
1589
 14,  5, 13, 35, 55, 30, 40, 40,
1590
 42,  8, 20, 25, 45, 35, 33, 36,
1591
 54, 38, 27, 37, 62, 40, 15, 59,
1592
 49, 31, 29, 34, 34, 39, 24, 29,
1593
 25, 29, 21, 29, 10, 61, 33, 49,
1594
 35, 34,  3, 38, 39, 29,  7, 41,
1595
  1, 35,  4, 23, 15, 23, 11, 37,
1596
 28, 35, 30, 30, 24,  1, 43, 56,
1597
  8, 34, 42, 24, 45, 30, 20, 23,
1598
  8, 38, 22, 33, 17, 52, 34, 22,
1599
 53, 43, 44,  1, 27, 31, 41, 43,
1600
 41, 30, 31, 36, 30,  5, 55, 31,
1601
 33, 30, 40, 23, 15, 29, 34, 34,
1602
 59, 34, 30, 11, 13, 38,  5,  0,
1603
 30, 42,  5, 30, 29, 34, 10, 44,
1604
 30, 63, 35, 12,  3, 26, 15, 17,
1605
 25, 34, 43, 39, 34, 56, 29, 23,
1606
 30, 12, 30, 10, 35,  9, 24, 58,
1607
 10, 12, 54, 33, 37, 20, 41, 35,
1608
 29, 18, 61, 30, 40, 24, 39, 53,
1609
 62, 26, 29, 33, 34, 53, 49, 21,
1610
 27, 11, 63, 20, 26, 23,  7, 13,
1611
  6, 47, 29, 30,  9, 51, 22, 34,
1612
 21, 25, 33, 56, 57, 30, 38, 51,
1613
 51, 38, 63, 28, 40, 35, 33, 18,
1614
 33, 33, 24, 58, 58, 34, 49, 29,
1615
 43,  4,  1,  4, 42, 35, 35, 30,
1616
 17,  5, 56, 61, 25, 37, 36, 55,
1617
 28, 35, 29, 50, 48, 52,  2, 42,
1618
 34, 40, 46, 46, 43, 35, 29, 48,
1619
 20, 29, 31, 41,  7, 30, 35, 19,
1620
 14, 21,  8, 39, 39, 40, 46, 55,
1621
 34,  6, 30, 34, 37, 25, 37, 33,
1622
 22, 44, 52, 17, 35, 29, 36, 35,
1623
 40, 37, 28, 30, 50, 14, 28, 55,
1624
  6, 23, 19, 14, 30,  3, 30, 28,
1625
 28, 61, 61, 47, 45, 48, 40, 40,
1626
 34, 34, 25, 30, 29, 35,  4, 26,
1627
 53, 50, 26, 41, 27, 59, 27, 38,
1628
 39,  3, 50, 43, 47, 23, 33, 55,
1629
 35, 21, 23, 35, 61, 33, 46, 52,
1630
 35, 34, 24, 30, 43, 16, 37, 21,
1631
  2, 24, 45, 34, 30, 55, 55,  1,
1632
 29, 29, 26, 28, 25, 31, 36, 22,
1633
 17, 30, 52,  2, 44, 44, 57, 26,
1634
 62, 41, 39, 57, 26, 46, 49, 11,
1635
 16, 19,  5, 59, 38, 39, 58, 38,
1636
 25, 49, 50, 22, 28, 59,  9, 59,
1637
  7, 28, 55, 17,  4, 35, 50, 21,
1638
 29, 44, 47, 18, 24, 19, 25, 42,
1639
 35,  3, 51, 35, 16, 35, 30, 63,
1640
 57, 39, 39, 25, 35, 38,  9, 16,
1641
 36, 45, 31, 60, 14, 34, 42, 24,
1642
  0, 37, 18, 61, 57, 37, 28, 53,
1643
 20, 46, 14, 47, 38, 38, 38,  9,
1644
 34, 39, 43, 17, 39, 59,  5, 27,
1645
  0, 12, 27,
1646
};
1647
1648 1457ab52 Michael Niedermayer
static const uint8_t table1_mvy[1099] = {
1649 de6d9b64 Fabrice Bellard
 32, 32, 31, 31, 32, 33, 31, 33,
1650
 33, 32, 32, 30, 34, 31, 32, 29,
1651
 33, 30, 32, 33, 31, 35, 34, 30,
1652
 34, 31, 33, 29, 29, 31, 33, 35,
1653
 30, 30, 35, 32, 32, 34, 34, 28,
1654
 25, 32, 36, 27, 32, 32, 32, 37,
1655
 39,  3, 32, 30, 31, 26, 31, 32,
1656
 32, 38, 29, 29, 32, 34, 31, 31,
1657
 34, 35, 33, 33, 28, 33,  1, 33,
1658
 27, 29, 30, 31, 28, 29, 37, 35,
1659
 31, 33, 35, 27, 36, 37, 25, 25,
1660
 61, 35,  4,  5, 32, 33, 36, 30,
1661
 23, 30, 28, 34, 31, 32, 32, 39,
1662
 32, 34, 21, 39, 32, 59, 32, 28,
1663
 32, 36, 60, 33, 24, 36, 32, 32,
1664
 41,  2, 32, 38, 26, 22, 33, 30,
1665
 31, 32, 32, 30, 31, 32, 29,  3,
1666
 40, 38, 32, 32, 33, 26, 31, 34,
1667
 28, 38, 34, 31,  3, 31, 35, 38,
1668
 27, 35, 33, 28, 29, 27, 29, 27,
1669
 43, 29, 37, 63, 31, 33, 34, 30,
1670
 31, 30, 37, 30, 35, 35, 26, 41,
1671
 37, 31, 33, 28, 26, 30, 42, 24,
1672
  7, 27, 33, 29, 36, 28, 34, 57,
1673
 23, 41, 36, 23, 35, 34, 25, 30,
1674
 25, 33, 25, 25, 29, 24, 33, 39,
1675
 33, 33,  0, 37, 31, 36, 21, 32,
1676
 61, 24, 35, 61, 31,  5, 31, 59,
1677
 39, 21, 32, 30, 34, 22, 40, 32,
1678
 29, 16, 31,  5, 62,  2, 20, 39,
1679
 39, 32, 33,  1, 31, 24, 36, 32,
1680
 36, 32, 28, 26,  6, 31, 38, 34,
1681
 58, 35, 32, 33, 33, 17, 43, 26,
1682
 31, 40, 31, 34, 32, 32, 31, 19,
1683
 30, 32, 29, 33, 38, 38, 32, 59,
1684
 40, 18, 38, 32, 35, 34, 32, 17,
1685
  1, 15, 30, 28, 31, 28, 34, 29,
1686
 32, 27, 35, 27, 49, 22, 37, 34,
1687
 37, 26, 32, 32, 22, 28, 45, 29,
1688
 30, 31, 43, 46, 41, 30, 26, 13,
1689
 34, 32, 27, 38, 42, 42, 33, 47,
1690
 33, 60, 27, 42, 25, 32, 22, 32,
1691
 48, 32, 45, 33, 33, 41, 27, 25,
1692
 19, 31, 35, 19, 36, 42, 27, 17,
1693
 31, 44, 28, 33, 33, 31, 23, 31,
1694
 40, 33, 31, 34, 30, 32, 33, 36,
1695
 35, 47, 37, 41, 31, 23, 41, 29,
1696
 30, 35, 32, 25, 32, 28, 58,  2,
1697
 37, 33, 14, 33, 49, 20, 39, 36,
1698
 21,  9, 23, 33, 35, 24, 39, 37,
1699
 11, 33, 30, 31, 31, 28, 51, 40,
1700
 35, 29, 25, 33, 46, 35, 37, 30,
1701
 30,  8, 63, 28, 15, 40, 33, 45,
1702
 49, 25, 32,  4, 47, 51, 36, 39,
1703
 53, 10, 24, 29, 30, 31, 25, 40,
1704
 38, 38, 33, 56, 23, 27, 32, 37,
1705
 26, 29, 43, 36, 33, 24, 55, 43,
1706
  9, 29, 34, 34, 24, 33, 18, 33,
1707
 33, 30, 31, 50, 24, 60, 30, 39,
1708
 34, 30, 39, 28, 22, 38,  2, 26,
1709
 63, 32, 57, 21, 39, 33, 28, 18,
1710
 30, 34, 22, 33, 29, 41, 30, 34,
1711
 35, 21, 13, 34, 35, 39, 30, 46,
1712
 32, 42, 32, 31, 33, 26, 11, 33,
1713
 22, 31, 25, 31, 53, 27, 43, 25,
1714
 40, 50, 21, 36, 38, 30, 12, 31,
1715
 34, 20, 15, 29, 32, 62, 30, 13,
1716
 17, 32, 19, 31, 20, 31, 30,  7,
1717
  1, 17, 34, 37, 31, 31, 44, 34,
1718
 26, 40, 16, 37, 52, 48, 30, 20,
1719
 18, 33, 38, 29,  7, 25, 30, 54,
1720
 45, 47, 46, 41, 29, 29, 16, 30,
1721
 14, 26, 38, 34, 34, 29, 34, 30,
1722
 29, 30, 57, 30,  4, 46, 33, 29,
1723
 39, 44, 30, 31, 50, 33, 31, 32,
1724
 19, 32, 40, 31, 37, 47,  1, 35,
1725
 16, 31,  0, 35, 33,  1, 17, 34,
1726
  9, 34, 33, 31, 49, 43, 42, 51,
1727
 34, 29, 23, 29, 14, 30, 45, 49,
1728
 11, 24, 31, 28, 35, 41, 30, 44,
1729
 18, 29, 34, 35, 36, 25, 26, 21,
1730
 31, 30, 34, 19, 34, 44, 36, 38,
1731
 25, 31, 28, 23, 37,  3, 55, 41,
1732
 30, 22, 41, 24, 33, 26, 35, 35,
1733
 30, 55, 51, 47, 48, 38, 24, 15,
1734
 21, 50, 25, 46, 30, 29, 10, 34,
1735
 42, 45, 29, 42, 22,  3, 33, 27,
1736
 34,  1, 34, 28, 34, 36, 35, 23,
1737
 23, 13, 58,  3, 26, 63, 25, 31,
1738
 34, 61, 38, 39, 25, 61, 29, 37,
1739
 30, 41, 26, 48, 28, 33, 50, 35,
1740
 30, 37, 29, 29, 40,  6, 39, 28,
1741
 28, 19,  8, 22, 45, 34, 35, 10,
1742
 58, 17, 37, 39, 30, 18, 54, 14,
1743
 29, 16, 59, 30, 35, 23, 35, 30,
1744
 47, 36, 29, 55, 20, 12, 31, 35,
1745
 14, 29, 18, 34, 34, 24, 29, 26,
1746
 22,  2, 27, 23,  8, 30, 55, 38,
1747
 60, 31,  4, 34, 49, 34, 27, 34,
1748
 33, 30, 31, 54, 42, 35, 38, 46,
1749
 44, 26, 27,  9, 39, 25, 21, 29,
1750
 28, 42, 13,  0,  5, 34, 37, 28,
1751
 24, 29, 63, 26, 22, 27, 29, 25,
1752
 33, 25, 61,  0, 35, 25, 36, 15,
1753
 27, 40, 53, 33,  3, 10, 16, 37,
1754
 38, 18, 30, 46, 27,  9,  6, 29,
1755
 62,  8, 42, 28, 29,  3, 25, 16,
1756
 26, 29, 35, 28, 27, 51, 61, 48,
1757
 37,  9, 34,  7, 49, 45, 20, 29,
1758
 21,  5,  5, 29, 28, 34, 29, 24,
1759
 10, 24, 35, 36, 38, 55, 11, 36,
1760
 38, 53, 54, 26, 30, 49, 20, 27,
1761
 30, 39, 33, 41, 49, 22, 38, 38,
1762
  4, 30,  8,  9,  3, 24, 22, 50,
1763
 37, 36, 31, 27,  2,  9, 42, 63,
1764
 25, 19, 44,  1, 28, 28, 48, 30,
1765
 34, 41, 41, 38, 12, 27, 15,  0,
1766
 16, 34, 35, 38, 28, 29, 40, 42,
1767
 51, 52, 45, 54, 59, 59, 42, 44,
1768
 37, 26, 46, 24, 15, 39, 22, 46,
1769
 19, 35, 38, 17, 37, 23, 52, 55,
1770
 50, 37, 26, 11, 37, 12, 24, 30,
1771
 16, 13, 22, 13, 36, 35, 40, 41,
1772
 34, 41, 26, 53, 51,  5, 21, 30,
1773
  2, 63, 41, 20,  1, 56, 21, 24,
1774
 25,  5, 28, 35, 26, 28, 30, 18,
1775
 29, 23, 40, 34, 20, 42, 39, 34,
1776
 28, 61, 38, 27, 62,  9, 36, 17,
1777
  9, 49, 24, 25, 54, 34, 39, 37,
1778
  3,  1, 25, 38, 38, 44, 35, 36,
1779
 12, 60, 36, 38, 40, 25, 43, 39,
1780
 53, 28, 39, 57, 46, 10, 52, 27,
1781
 35, 42, 45, 59, 15, 60, 38, 24,
1782
 23, 39, 12, 29, 24,  0, 20, 16,
1783
 28, 43, 35, 28,  1, 49,  4, 21,
1784
 42, 39, 29,  3, 44, 21, 53, 55,
1785
 11,  5,  3, 39, 53, 28, 25, 19,
1786
 34, 28, 21,
1787
};
1788
1789 0151a6f5 Michael Niedermayer
/* motion vector table */
1790
typedef struct MVTable {
1791
    int n;
1792 1457ab52 Michael Niedermayer
    const uint16_t *table_mv_code;
1793
    const uint8_t *table_mv_bits;
1794
    const uint8_t *table_mvx;
1795
    const uint8_t *table_mvy;
1796
    uint16_t *table_mv_index; /* encoding: convert mv to index in table_mv */
1797 0151a6f5 Michael Niedermayer
    VLC vlc;                /* decoding: vlc */
1798
} MVTable;
1799
1800 de6d9b64 Fabrice Bellard
static MVTable mv_tables[2] = {
1801
    {
1802
        1099,
1803
        table0_mv_code,
1804
        table0_mv_bits,
1805
        table0_mvx,
1806
        table0_mvy,
1807
    },
1808
    {
1809
        1099,
1810
        table1_mv_code,
1811
        table1_mv_bits,
1812
        table1_mvx,
1813
        table1_mvy,
1814
    }
1815
};
1816 84afee34 Michael Niedermayer
1817 1457ab52 Michael Niedermayer
static const uint8_t v2_mb_type[8][2] = {
1818 84afee34 Michael Niedermayer
 {1, 1}, {0   , 2}, {3   , 3}, {9   , 5},
1819
 {5, 4}, {0x21, 7}, {0x20, 7}, {0x11, 6},
1820
};
1821
1822 1457ab52 Michael Niedermayer
static const uint8_t v2_intra_cbpc[4][2] = {
1823 84afee34 Michael Niedermayer
 {1, 1}, {0, 3}, {1, 3}, {1, 2},
1824
};
1825 0151a6f5 Michael Niedermayer
1826 c26ae41d Michael Niedermayer
static const uint8_t wmv1_y_dc_scale_table[32]={
1827 0151a6f5 Michael Niedermayer
//  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
1828
    0, 8, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21
1829
};
1830 c26ae41d Michael Niedermayer
static const uint8_t wmv1_c_dc_scale_table[32]={
1831 0151a6f5 Michael Niedermayer
//  0, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31
1832
    0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22
1833
};
1834
1835 c26ae41d Michael Niedermayer
static const uint8_t old_ff_y_dc_scale_table[32]={
1836 0151a6f5 Michael Niedermayer
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1837
    0, 8, 8, 8, 8,10,12,14,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39
1838
};
1839 c26ae41d Michael Niedermayer
static const uint8_t old_ff_c_dc_scale_table[32]={
1840 0151a6f5 Michael Niedermayer
//  0  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
1841
    0, 8, 8, 8, 8, 9, 9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22
1842
};
1843
1844
1845
#define WMV1_SCANTABLE_COUNT 4
1846
1847 1457ab52 Michael Niedermayer
static const uint8_t wmv1_scantable00[64]= {
1848 115329f1 Diego Biurrun
0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11,
1849
0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28,
1850
0x30, 0x38, 0x29, 0x21, 0x1A, 0x13, 0x0C, 0x05,
1851
0x06, 0x0D, 0x14, 0x1B, 0x22, 0x31, 0x39, 0x3A,
1852
0x32, 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F,
1853
0x16, 0x1D, 0x24, 0x2B, 0x33, 0x3B, 0x3C, 0x34,
1854
0x2C, 0x25, 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x35,
1855
0x3D, 0x3E, 0x36, 0x2E, 0x27, 0x2F, 0x37, 0x3F,
1856 0151a6f5 Michael Niedermayer
};
1857 1457ab52 Michael Niedermayer
static const uint8_t wmv1_scantable01[64]= {
1858 115329f1 Diego Biurrun
0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11,
1859
0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28,
1860
0x21, 0x30, 0x1A, 0x13, 0x0C, 0x05, 0x06, 0x0D,
1861
0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, 0x2A,
1862
0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, 0x16, 0x1D,
1863
0x24, 0x2B, 0x32, 0x3A, 0x33, 0x3B, 0x2C, 0x25,
1864
0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3C, 0x35,
1865
0x3D, 0x2E, 0x27, 0x2F, 0x36, 0x3E, 0x37, 0x3F,
1866 0151a6f5 Michael Niedermayer
};
1867 1457ab52 Michael Niedermayer
static const uint8_t wmv1_scantable02[64]= {
1868 115329f1 Diego Biurrun
0x00, 0x01, 0x08, 0x02, 0x03, 0x09, 0x10, 0x18,
1869
0x11, 0x0A, 0x04, 0x05, 0x0B, 0x12, 0x19, 0x20,
1870
0x28, 0x30, 0x21, 0x1A, 0x13, 0x0C, 0x06, 0x07,
1871
0x0D, 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39,
1872
0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x0F, 0x16, 0x1D,
1873
0x24, 0x2B, 0x32, 0x3A, 0x33, 0x2C, 0x25, 0x1E,
1874
0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3B, 0x3C, 0x35,
1875
0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F,
1876 0151a6f5 Michael Niedermayer
};
1877 1457ab52 Michael Niedermayer
static const uint8_t wmv1_scantable03[64]= {
1878 115329f1 Diego Biurrun
0x00, 0x08, 0x10, 0x01, 0x18, 0x20, 0x28, 0x09,
1879
0x02, 0x03, 0x0A, 0x11, 0x19, 0x30, 0x38, 0x29,
1880
0x21, 0x1A, 0x12, 0x0B, 0x04, 0x05, 0x0C, 0x13,
1881
0x1B, 0x22, 0x31, 0x39, 0x32, 0x2A, 0x23, 0x1C,
1882
0x14, 0x0D, 0x06, 0x07, 0x0E, 0x15, 0x1D, 0x24,
1883
0x2B, 0x33, 0x3A, 0x3B, 0x34, 0x2C, 0x25, 0x1E,
1884
0x16, 0x0F, 0x17, 0x1F, 0x26, 0x2D, 0x3C, 0x35,
1885
0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F,
1886 0151a6f5 Michael Niedermayer
};
1887
1888 1457ab52 Michael Niedermayer
static const uint8_t *wmv1_scantable[WMV1_SCANTABLE_COUNT+1]={
1889 0151a6f5 Michael Niedermayer
    wmv1_scantable00,
1890
    wmv1_scantable01,
1891
    wmv1_scantable02,
1892
    wmv1_scantable03,
1893
};
1894
1895 1457ab52 Michael Niedermayer
static const uint8_t table_inter_intra[4][2]={
1896 67725183 Michael Niedermayer
    {0,1} /*Luma-Left Chroma-Left*/,
1897
    {2,2} /*Luma-Top  Chroma-Left*/,
1898
    {6,3} /*luma-Left Chroma-Top */,
1899
    {7,3} /*luma-Top  Chroma-Top */
1900 de0f2f4c Michael Niedermayer
};
1901
1902 1457ab52 Michael Niedermayer
#define WMV2_INTER_CBP_TABLE_COUNT 4
1903
1904
static const uint32_t table_mb_non_intra2[128][2] = {
1905 115329f1 Diego Biurrun
{0x0000A7, 14}, {0x01B2B8, 18}, {0x01B28E, 18}, {0x036575, 19},
1906
{0x006CAC, 16}, {0x000A69, 18}, {0x002934, 20}, {0x00526B, 21},
1907
{0x006CA1, 16}, {0x01B2B9, 18}, {0x0029AD, 20}, {0x029353, 24},
1908
{0x006CA7, 16}, {0x006CAB, 16}, {0x01B2BB, 18}, {0x00029B, 16},
1909
{0x00D944, 17}, {0x000A6A, 18}, {0x0149A8, 23}, {0x03651F, 19},
1910
{0x006CAF, 16}, {0x000A4C, 18}, {0x03651E, 19}, {0x000A48, 18},
1911
{0x00299C, 20}, {0x00299F, 20}, {0x029352, 24}, {0x0029AC, 20},
1912
{0x000296, 16}, {0x00D946, 17}, {0x000A68, 18}, {0x000298, 16},
1913
{0x000527, 17}, {0x00D94D, 17}, {0x0014D7, 19}, {0x036574, 19},
1914
{0x000A5C, 18}, {0x01B299, 18}, {0x00299D, 20}, {0x00299E, 20},
1915
{0x000525, 17}, {0x000A66, 18}, {0x00A4D5, 22}, {0x00149B, 19},
1916
{0x000295, 16}, {0x006CAD, 16}, {0x000A49, 18}, {0x000521, 17},
1917
{0x006CAA, 16}, {0x00D945, 17}, {0x01B298, 18}, {0x00052F, 17},
1918
{0x003654, 15}, {0x006CA0, 16}, {0x000532, 17}, {0x000291, 16},
1919
{0x003652, 15}, {0x000520, 17}, {0x000A5D, 18}, {0x000294, 16},
1920
{0x00009B, 11}, {0x0006E2, 12}, {0x000028, 12}, {0x0001B0, 10},
1921
{0x000001,  3}, {0x000010,  8}, {0x00002F,  6}, {0x00004C, 10},
1922
{0x00000D,  4}, {0x000000, 10}, {0x000006,  9}, {0x000134, 12},
1923
{0x00000C,  4}, {0x000007, 10}, {0x000007,  9}, {0x0006E1, 12},
1924
{0x00000E,  5}, {0x0000DA,  9}, {0x000022,  9}, {0x000364, 11},
1925
{0x00000F,  4}, {0x000006, 10}, {0x00000F,  9}, {0x000135, 12},
1926
{0x000014,  5}, {0x0000DD,  9}, {0x000004,  9}, {0x000015, 11},
1927
{0x00001A,  6}, {0x0001B3, 10}, {0x000005, 10}, {0x0006E3, 12},
1928
{0x00000C,  5}, {0x0000B9,  8}, {0x000004,  8}, {0x0000DB,  9},
1929
{0x00000E,  4}, {0x00000B, 10}, {0x000023,  9}, {0x0006CB, 12},
1930
{0x000005,  6}, {0x0001B1, 10}, {0x000001, 10}, {0x0006E0, 12},
1931
{0x000011,  5}, {0x0000DF,  9}, {0x00000E,  9}, {0x000373, 11},
1932
{0x000003,  5}, {0x0000B8,  8}, {0x000006,  8}, {0x000175,  9},
1933
{0x000015,  5}, {0x000174,  9}, {0x000027,  9}, {0x000372, 11},
1934
{0x000010,  5}, {0x0000BB,  8}, {0x000005,  8}, {0x0000DE,  9},
1935
{0x00000F,  5}, {0x000001,  9}, {0x000012,  8}, {0x000004, 10},
1936
{0x000002,  3}, {0x000016,  5}, {0x000009,  4}, {0x000001,  5},
1937 1457ab52 Michael Niedermayer
};
1938
1939
static const uint32_t table_mb_non_intra3[128][2] = {
1940 115329f1 Diego Biurrun
{0x0002A1, 10}, {0x005740, 15}, {0x01A0BF, 18}, {0x015D19, 17},
1941
{0x001514, 13}, {0x00461E, 15}, {0x015176, 17}, {0x015177, 17},
1942
{0x0011AD, 13}, {0x00682E, 16}, {0x0682F9, 20}, {0x03417D, 19},
1943
{0x001A36, 14}, {0x002A2D, 14}, {0x00D05E, 17}, {0x006824, 16},
1944
{0x001515, 13}, {0x00545C, 15}, {0x0230E9, 18}, {0x011AFA, 17},
1945
{0x0015D7, 13}, {0x005747, 15}, {0x008D79, 16}, {0x006825, 16},
1946
{0x002BA2, 14}, {0x00A8BA, 16}, {0x0235F6, 18}, {0x015D18, 17},
1947
{0x0011AE, 13}, {0x00346F, 15}, {0x008C3B, 16}, {0x00346E, 15},
1948
{0x000D1A, 13}, {0x00461F, 15}, {0x0682F8, 20}, {0x011875, 17},
1949
{0x002BA1, 14}, {0x008D61, 16}, {0x0235F7, 18}, {0x0230E8, 18},
1950
{0x001513, 13}, {0x008D7B, 16}, {0x011AF4, 17}, {0x011AF5, 17},
1951
{0x001185, 13}, {0x0046BF, 15}, {0x008D60, 16}, {0x008D7C, 16},
1952
{0x001512, 13}, {0x00461C, 15}, {0x00AE8D, 16}, {0x008D78, 16},
1953
{0x000D0E, 13}, {0x003413, 15}, {0x0046B1, 15}, {0x003416, 15},
1954
{0x000AEA, 12}, {0x002A2C, 14}, {0x005741, 15}, {0x002A2F, 14},
1955
{0x000158,  9}, {0x0008D2, 12}, {0x00054C, 11}, {0x000686, 12},
1956
{0x000000,  2}, {0x000069,  8}, {0x00006B,  8}, {0x00068C, 12},
1957
{0x000007,  3}, {0x00015E,  9}, {0x0002A3, 10}, {0x000AE9, 12},
1958
{0x000006,  3}, {0x000231, 10}, {0x0002B8, 10}, {0x001A08, 14},
1959
{0x000010,  5}, {0x0001A9, 10}, {0x000342, 11}, {0x000A88, 12},
1960
{0x000004,  4}, {0x0001A2, 10}, {0x0002A4, 10}, {0x001184, 13},
1961
{0x000012,  5}, {0x000232, 10}, {0x0002B2, 10}, {0x000680, 12},
1962
{0x00001B,  6}, {0x00046A, 11}, {0x00068E, 12}, {0x002359, 14},
1963
{0x000016,  5}, {0x00015F,  9}, {0x0002A0, 10}, {0x00054D, 11},
1964
{0x000005,  4}, {0x000233, 10}, {0x0002B9, 10}, {0x0015D6, 13},
1965
{0x000022,  6}, {0x000468, 11}, {0x000683, 12}, {0x001A0A, 14},
1966
{0x000013,  5}, {0x000236, 10}, {0x0002BB, 10}, {0x001186, 13},
1967
{0x000017,  5}, {0x0001AB, 10}, {0x0002A7, 10}, {0x0008D3, 12},
1968
{0x000014,  5}, {0x000237, 10}, {0x000460, 11}, {0x000D0F, 13},
1969
{0x000019,  6}, {0x0001AA, 10}, {0x0002B3, 10}, {0x000681, 12},
1970
{0x000018,  6}, {0x0001A8, 10}, {0x0002A5, 10}, {0x00068F, 12},
1971
{0x000007,  4}, {0x000055,  7}, {0x000047,  7}, {0x0000AD,  8},
1972 1457ab52 Michael Niedermayer
};
1973
1974
static const uint32_t table_mb_non_intra4[128][2] = {
1975 115329f1 Diego Biurrun
{0x0000D4,  8}, {0x0021C5, 14}, {0x00F18A, 16}, {0x00D5BC, 16},
1976
{0x000879, 12}, {0x00354D, 14}, {0x010E3F, 17}, {0x010F54, 17},
1977
{0x000866, 12}, {0x00356E, 14}, {0x010F55, 17}, {0x010E3E, 17},
1978
{0x0010CE, 13}, {0x003C84, 14}, {0x00D5BD, 16}, {0x00F18B, 16},
1979
{0x000868, 12}, {0x00438C, 15}, {0x0087AB, 16}, {0x00790B, 15},
1980
{0x000F10, 12}, {0x00433D, 15}, {0x006AD3, 15}, {0x00790A, 15},
1981
{0x001AA7, 13}, {0x0043D4, 15}, {0x00871E, 16}, {0x006ADF, 15},
1982
{0x000D7C, 12}, {0x003C94, 14}, {0x00438D, 15}, {0x006AD2, 15},
1983
{0x0006BC, 11}, {0x0021E9, 14}, {0x006ADA, 15}, {0x006A99, 15},
1984
{0x0010F7, 13}, {0x004389, 15}, {0x006ADB, 15}, {0x0078C4, 15},
1985
{0x000D56, 12}, {0x0035F7, 14}, {0x00438E, 15}, {0x006A98, 15},
1986
{0x000D52, 12}, {0x003C95, 14}, {0x004388, 15}, {0x00433C, 15},
1987
{0x000D54, 12}, {0x001E4B, 13}, {0x003C63, 14}, {0x003C83, 14},
1988
{0x000861, 12}, {0x0021EB, 14}, {0x00356C, 14}, {0x0035F6, 14},
1989
{0x000863, 12}, {0x00219F, 14}, {0x003568, 14}, {0x003C82, 14},
1990
{0x0001AE,  9}, {0x0010C0, 13}, {0x000F11, 12}, {0x001AFA, 13},
1991
{0x000000,  1}, {0x0000F0,  8}, {0x0001AD,  9}, {0x0010C1, 13},
1992
{0x00000A,  4}, {0x0003C5, 10}, {0x000789, 11}, {0x001AB5, 13},
1993
{0x000009,  4}, {0x000435, 11}, {0x000793, 11}, {0x001E40, 13},
1994
{0x00001D,  5}, {0x0003CB, 10}, {0x000878, 12}, {0x001AAF, 13},
1995
{0x00000B,  4}, {0x0003C7, 10}, {0x000791, 11}, {0x001AAB, 13},
1996
{0x00001F,  5}, {0x000436, 11}, {0x0006BF, 11}, {0x000F19, 12},
1997
{0x00003D,  6}, {0x000D51, 12}, {0x0010C4, 13}, {0x0021E8, 14},
1998
{0x000036,  6}, {0x000437, 11}, {0x0006AF, 11}, {0x0010C5, 13},
1999
{0x00000C,  4}, {0x000432, 11}, {0x000794, 11}, {0x001E30, 13},
2000
{0x000042,  7}, {0x000870, 12}, {0x000F24, 12}, {0x001E43, 13},
2001
{0x000020,  6}, {0x00043E, 11}, {0x000795, 11}, {0x001AAA, 13},
2002
{0x000037,  6}, {0x0006AC, 11}, {0x0006AE, 11}, {0x0010F6, 13},
2003
{0x000034,  6}, {0x00043A, 11}, {0x000D50, 12}, {0x001AAE, 13},
2004
{0x000039,  6}, {0x00043F, 11}, {0x00078D, 11}, {0x0010D2, 13},
2005
{0x000038,  6}, {0x00043B, 11}, {0x0006BD, 11}, {0x0010D3, 13},
2006
{0x000011,  5}, {0x0001AC,  9}, {0x0000F3,  8}, {0x000439, 11},
2007 1457ab52 Michael Niedermayer
};
2008
2009
static const uint32_t (*wmv2_inter_table[WMV2_INTER_CBP_TABLE_COUNT])[2]={
2010
    table_mb_non_intra2,
2011
    table_mb_non_intra3,
2012
    table_mb_non_intra4,
2013
    table_mb_non_intra,
2014
};
2015
2016
static const uint8_t wmv2_scantableA[64]={
2017
0x00, 0x01, 0x02, 0x08, 0x03, 0x09, 0x0A, 0x10,
2018
0x04, 0x0B, 0x11, 0x18, 0x12, 0x0C, 0x05, 0x13,
2019
0x19, 0x0D, 0x14, 0x1A, 0x1B, 0x06, 0x15, 0x1C,
2020
0x0E, 0x16, 0x1D, 0x07, 0x1E, 0x0F, 0x17, 0x1F,
2021
};
2022
2023
static const uint8_t wmv2_scantableB[64]={
2024
0x00, 0x08, 0x01, 0x10, 0x09, 0x18, 0x11, 0x02,
2025 115329f1 Diego Biurrun
0x20, 0x0A, 0x19, 0x28, 0x12, 0x30, 0x21, 0x1A,
2026
0x38, 0x29, 0x22, 0x03, 0x31, 0x39, 0x0B, 0x2A,
2027 1457ab52 Michael Niedermayer
0x13, 0x32, 0x1B, 0x3A, 0x23, 0x2B, 0x33, 0x3B,
2028
};