Statistics
| Branch: | Revision:

ffmpeg / libavcodec / msmpeg4data.h @ 0151a6f5

History | View | Annotate | Download (73.7 KB)

1
/*
2
 * MSMPEG4 data tables. 
3
 */
4

    
5
/* intra picture macro block coded block pattern */
6
static const UINT16 table_mb_intra[64][2] = {
7
{ 0x1, 1 },{ 0x17, 6 },{ 0x9, 5 },{ 0x5, 5 },
8
{ 0x6, 5 },{ 0x47, 9 },{ 0x20, 7 },{ 0x10, 7 },
9
{ 0x2, 5 },{ 0x7c, 9 },{ 0x3a, 7 },{ 0x1d, 7 },
10
{ 0x2, 6 },{ 0xec, 9 },{ 0x77, 8 },{ 0x0, 8 },
11
{ 0x3, 5 },{ 0xb7, 9 },{ 0x2c, 7 },{ 0x13, 7 },
12
{ 0x1, 6 },{ 0x168, 10 },{ 0x46, 8 },{ 0x3f, 8 },
13
{ 0x1e, 6 },{ 0x712, 13 },{ 0xb5, 9 },{ 0x42, 8 },
14
{ 0x22, 7 },{ 0x1c5, 11 },{ 0x11e, 10 },{ 0x87, 9 },
15
{ 0x6, 4 },{ 0x3, 9 },{ 0x1e, 7 },{ 0x1c, 6 },
16
{ 0x12, 7 },{ 0x388, 12 },{ 0x44, 9 },{ 0x70, 9 },
17
{ 0x1f, 6 },{ 0x23e, 11 },{ 0x39, 8 },{ 0x8e, 9 },
18
{ 0x1, 7 },{ 0x1c6, 11 },{ 0xb6, 9 },{ 0x45, 9 },
19
{ 0x14, 6 },{ 0x23f, 11 },{ 0x7d, 9 },{ 0x18, 9 },
20
{ 0x7, 7 },{ 0x1c7, 11 },{ 0x86, 9 },{ 0x19, 9 },
21
{ 0x15, 6 },{ 0x1db, 10 },{ 0x2, 9 },{ 0x46, 9 },
22
{ 0xd, 8 },{ 0x713, 13 },{ 0x1da, 10 },{ 0x169, 10 },
23
};
24

    
25
/* non intra picture macro block coded block pattern + mb type */
26
static const UINT32 table_mb_non_intra[128][2] = {
27
{ 0x40, 7 },{ 0x13c9, 13 },{ 0x9fd, 12 },{ 0x1fc, 15 },
28
{ 0x9fc, 12 },{ 0xa83, 18 },{ 0x12d34, 17 },{ 0x83bc, 16 },
29
{ 0x83a, 12 },{ 0x7f8, 17 },{ 0x3fd, 16 },{ 0x3ff, 16 },
30
{ 0x79, 13 },{ 0xa82, 18 },{ 0x969d, 16 },{ 0x2a4, 16 },
31
{ 0x978, 12 },{ 0x543, 17 },{ 0x41df, 15 },{ 0x7f9, 17 },
32
{ 0x12f3, 13 },{ 0x25a6b, 18 },{ 0x25ef9, 18 },{ 0x3fa, 16 },
33
{ 0x20ee, 14 },{ 0x969ab, 20 },{ 0x969c, 16 },{ 0x25ef8, 18 },
34
{ 0x12d2, 13 },{ 0xa85, 18 },{ 0x969e, 16 },{ 0x4bc8, 15 },
35
{ 0x3d, 12 },{ 0x12f7f, 17 },{ 0x2a2, 16 },{ 0x969f, 16 },
36
{ 0x25ee, 14 },{ 0x12d355, 21 },{ 0x12f7d, 17 },{ 0x12f7e, 17 },
37
{ 0x9e5, 12 },{ 0xa81, 18 },{ 0x4b4d4, 19 },{ 0x83bd, 16 },
38
{ 0x78, 13 },{ 0x969b, 16 },{ 0x3fe, 16 },{ 0x2a5, 16 },
39
{ 0x7e, 13 },{ 0xa80, 18 },{ 0x2a3, 16 },{ 0x3fb, 16 },
40
{ 0x1076, 13 },{ 0xa84, 18 },{ 0x153, 15 },{ 0x4bc9, 15 },
41
{ 0x55, 13 },{ 0x12d354, 21 },{ 0x4bde, 15 },{ 0x25e5, 14 },
42
{ 0x25b, 10 },{ 0x4b4c, 15 },{ 0x96b, 12 },{ 0x96a, 12 },
43
{ 0x1, 2 },{ 0x0, 7 },{ 0x26, 6 },{ 0x12b, 9 },
44
{ 0x7, 3 },{ 0x20f, 10 },{ 0x4, 9 },{ 0x28, 12 },
45
{ 0x6, 3 },{ 0x20a, 10 },{ 0x128, 9 },{ 0x2b, 12 },
46
{ 0x11, 5 },{ 0x1b, 11 },{ 0x13a, 9 },{ 0x4ff, 11 },
47
{ 0x3, 4 },{ 0x277, 10 },{ 0x106, 9 },{ 0x839, 12 },
48
{ 0xb, 4 },{ 0x27b, 10 },{ 0x12c, 9 },{ 0x4bf, 11 },
49
{ 0x9, 6 },{ 0x35, 12 },{ 0x27e, 10 },{ 0x13c8, 13 },
50
{ 0x1, 6 },{ 0x4aa, 11 },{ 0x208, 10 },{ 0x29, 12 },
51
{ 0x1, 4 },{ 0x254, 10 },{ 0x12e, 9 },{ 0x838, 12 },
52
{ 0x24, 6 },{ 0x4f3, 11 },{ 0x276, 10 },{ 0x12f6, 13 },
53
{ 0x1, 5 },{ 0x27a, 10 },{ 0x13e, 9 },{ 0x3e, 12 },
54
{ 0x8, 6 },{ 0x413, 11 },{ 0xc, 10 },{ 0x4be, 11 },
55
{ 0x14, 5 },{ 0x412, 11 },{ 0x253, 10 },{ 0x97a, 12 },
56
{ 0x21, 6 },{ 0x4ab, 11 },{ 0x20b, 10 },{ 0x34, 12 },
57
{ 0x15, 5 },{ 0x278, 10 },{ 0x252, 10 },{ 0x968, 12 },
58
{ 0x5, 5 },{ 0xb, 10 },{ 0x9c, 8 },{ 0xe, 10 },
59
};
60

    
61
/* dc table 0 */
62

    
63
static const UINT32 table0_dc_lum[120][2] = {
64
{ 0x1, 1 },{ 0x1, 2 },{ 0x1, 4 },{ 0x1, 5 },
65
{ 0x5, 5 },{ 0x7, 5 },{ 0x8, 6 },{ 0xc, 6 },
66
{ 0x0, 7 },{ 0x2, 7 },{ 0x12, 7 },{ 0x1a, 7 },
67
{ 0x3, 8 },{ 0x7, 8 },{ 0x27, 8 },{ 0x37, 8 },
68
{ 0x5, 9 },{ 0x4c, 9 },{ 0x6c, 9 },{ 0x6d, 9 },
69
{ 0x8, 10 },{ 0x19, 10 },{ 0x9b, 10 },{ 0x1b, 10 },
70
{ 0x9a, 10 },{ 0x13, 11 },{ 0x34, 11 },{ 0x35, 11 },
71
{ 0x61, 12 },{ 0x48, 13 },{ 0xc4, 13 },{ 0x4a, 13 },
72
{ 0xc6, 13 },{ 0xc7, 13 },{ 0x92, 14 },{ 0x18b, 14 },
73
{ 0x93, 14 },{ 0x183, 14 },{ 0x182, 14 },{ 0x96, 14 },
74
{ 0x97, 14 },{ 0x180, 14 },{ 0x314, 15 },{ 0x315, 15 },
75
{ 0x605, 16 },{ 0x604, 16 },{ 0x606, 16 },{ 0xc0e, 17 },
76
{ 0x303cd, 23 },{ 0x303c9, 23 },{ 0x303c8, 23 },{ 0x303ca, 23 },
77
{ 0x303cb, 23 },{ 0x303cc, 23 },{ 0x303ce, 23 },{ 0x303cf, 23 },
78
{ 0x303d0, 23 },{ 0x303d1, 23 },{ 0x303d2, 23 },{ 0x303d3, 23 },
79
{ 0x303d4, 23 },{ 0x303d5, 23 },{ 0x303d6, 23 },{ 0x303d7, 23 },
80
{ 0x303d8, 23 },{ 0x303d9, 23 },{ 0x303da, 23 },{ 0x303db, 23 },
81
{ 0x303dc, 23 },{ 0x303dd, 23 },{ 0x303de, 23 },{ 0x303df, 23 },
82
{ 0x303e0, 23 },{ 0x303e1, 23 },{ 0x303e2, 23 },{ 0x303e3, 23 },
83
{ 0x303e4, 23 },{ 0x303e5, 23 },{ 0x303e6, 23 },{ 0x303e7, 23 },
84
{ 0x303e8, 23 },{ 0x303e9, 23 },{ 0x303ea, 23 },{ 0x303eb, 23 },
85
{ 0x303ec, 23 },{ 0x303ed, 23 },{ 0x303ee, 23 },{ 0x303ef, 23 },
86
{ 0x303f0, 23 },{ 0x303f1, 23 },{ 0x303f2, 23 },{ 0x303f3, 23 },
87
{ 0x303f4, 23 },{ 0x303f5, 23 },{ 0x303f6, 23 },{ 0x303f7, 23 },
88
{ 0x303f8, 23 },{ 0x303f9, 23 },{ 0x303fa, 23 },{ 0x303fb, 23 },
89
{ 0x303fc, 23 },{ 0x303fd, 23 },{ 0x303fe, 23 },{ 0x303ff, 23 },
90
{ 0x60780, 24 },{ 0x60781, 24 },{ 0x60782, 24 },{ 0x60783, 24 },
91
{ 0x60784, 24 },{ 0x60785, 24 },{ 0x60786, 24 },{ 0x60787, 24 },
92
{ 0x60788, 24 },{ 0x60789, 24 },{ 0x6078a, 24 },{ 0x6078b, 24 },
93
{ 0x6078c, 24 },{ 0x6078d, 24 },{ 0x6078e, 24 },{ 0x6078f, 24 },
94
};
95

    
96
static const UINT32 table0_dc_chroma[120][2] = {
97
{ 0x0, 2 },{ 0x1, 2 },{ 0x5, 3 },{ 0x9, 4 },
98
{ 0xd, 4 },{ 0x11, 5 },{ 0x1d, 5 },{ 0x1f, 5 },
99
{ 0x21, 6 },{ 0x31, 6 },{ 0x38, 6 },{ 0x33, 6 },
100
{ 0x39, 6 },{ 0x3d, 6 },{ 0x61, 7 },{ 0x79, 7 },
101
{ 0x80, 8 },{ 0xc8, 8 },{ 0xca, 8 },{ 0xf0, 8 },
102
{ 0x81, 8 },{ 0xc0, 8 },{ 0xc9, 8 },{ 0x107, 9 },
103
{ 0x106, 9 },{ 0x196, 9 },{ 0x183, 9 },{ 0x1e3, 9 },
104
{ 0x1e2, 9 },{ 0x20a, 10 },{ 0x20b, 10 },{ 0x609, 11 },
105
{ 0x412, 11 },{ 0x413, 11 },{ 0x60b, 11 },{ 0x411, 11 },
106
{ 0x60a, 11 },{ 0x65f, 11 },{ 0x410, 11 },{ 0x65d, 11 },
107
{ 0x65e, 11 },{ 0xcb8, 12 },{ 0xc10, 12 },{ 0xcb9, 12 },
108
{ 0x1823, 13 },{ 0x3045, 14 },{ 0x6089, 15 },{ 0xc110, 16 },
109
{ 0x304448, 22 },{ 0x304449, 22 },{ 0x30444a, 22 },{ 0x30444b, 22 },
110
{ 0x30444c, 22 },{ 0x30444d, 22 },{ 0x30444e, 22 },{ 0x30444f, 22 },
111
{ 0x304450, 22 },{ 0x304451, 22 },{ 0x304452, 22 },{ 0x304453, 22 },
112
{ 0x304454, 22 },{ 0x304455, 22 },{ 0x304456, 22 },{ 0x304457, 22 },
113
{ 0x304458, 22 },{ 0x304459, 22 },{ 0x30445a, 22 },{ 0x30445b, 22 },
114
{ 0x30445c, 22 },{ 0x30445d, 22 },{ 0x30445e, 22 },{ 0x30445f, 22 },
115
{ 0x304460, 22 },{ 0x304461, 22 },{ 0x304462, 22 },{ 0x304463, 22 },
116
{ 0x304464, 22 },{ 0x304465, 22 },{ 0x304466, 22 },{ 0x304467, 22 },
117
{ 0x304468, 22 },{ 0x304469, 22 },{ 0x30446a, 22 },{ 0x30446b, 22 },
118
{ 0x30446c, 22 },{ 0x30446d, 22 },{ 0x30446e, 22 },{ 0x30446f, 22 },
119
{ 0x304470, 22 },{ 0x304471, 22 },{ 0x304472, 22 },{ 0x304473, 22 },
120
{ 0x304474, 22 },{ 0x304475, 22 },{ 0x304476, 22 },{ 0x304477, 22 },
121
{ 0x304478, 22 },{ 0x304479, 22 },{ 0x30447a, 22 },{ 0x30447b, 22 },
122
{ 0x30447c, 22 },{ 0x30447d, 22 },{ 0x30447e, 22 },{ 0x30447f, 22 },
123
{ 0x608880, 23 },{ 0x608881, 23 },{ 0x608882, 23 },{ 0x608883, 23 },
124
{ 0x608884, 23 },{ 0x608885, 23 },{ 0x608886, 23 },{ 0x608887, 23 },
125
{ 0x608888, 23 },{ 0x608889, 23 },{ 0x60888a, 23 },{ 0x60888b, 23 },
126
{ 0x60888c, 23 },{ 0x60888d, 23 },{ 0x60888e, 23 },{ 0x60888f, 23 },
127
};
128

    
129
/* dc table 1 */
130

    
131
static const UINT32 table1_dc_lum[120][2] = {
132
{ 0x2, 2 },{ 0x3, 2 },{ 0x3, 3 },{ 0x2, 4 },
133
{ 0x5, 4 },{ 0x1, 5 },{ 0x3, 5 },{ 0x8, 5 },
134
{ 0x0, 6 },{ 0x5, 6 },{ 0xd, 6 },{ 0xf, 6 },
135
{ 0x13, 6 },{ 0x8, 7 },{ 0x18, 7 },{ 0x1c, 7 },
136
{ 0x24, 7 },{ 0x4, 8 },{ 0x6, 8 },{ 0x12, 8 },
137
{ 0x32, 8 },{ 0x3b, 8 },{ 0x4a, 8 },{ 0x4b, 8 },
138
{ 0xb, 9 },{ 0x26, 9 },{ 0x27, 9 },{ 0x66, 9 },
139
{ 0x74, 9 },{ 0x75, 9 },{ 0x14, 10 },{ 0x1c, 10 },
140
{ 0x1f, 10 },{ 0x1d, 10 },{ 0x2b, 11 },{ 0x3d, 11 },
141
{ 0x19d, 11 },{ 0x19f, 11 },{ 0x54, 12 },{ 0x339, 12 },
142
{ 0x338, 12 },{ 0x33d, 12 },{ 0xab, 13 },{ 0xf1, 13 },
143
{ 0x678, 13 },{ 0xf2, 13 },{ 0x1e0, 14 },{ 0x1e1, 14 },
144
{ 0x154, 14 },{ 0xcf2, 14 },{ 0x3cc, 15 },{ 0x2ab, 15 },
145
{ 0x19e7, 15 },{ 0x3ce, 15 },{ 0x19e6, 15 },{ 0x554, 16 },
146
{ 0x79f, 16 },{ 0x555, 16 },{ 0xf3d, 17 },{ 0xf37, 17 },
147
{ 0xf3c, 17 },{ 0xf35, 17 },{ 0x1e6d, 18 },{ 0x1e68, 18 },
148
{ 0x3cd8, 19 },{ 0x3cd3, 19 },{ 0x3cd9, 19 },{ 0x79a4, 20 },
149
{ 0xf34ba, 25 },{ 0xf34b4, 25 },{ 0xf34b5, 25 },{ 0xf34b6, 25 },
150
{ 0xf34b7, 25 },{ 0xf34b8, 25 },{ 0xf34b9, 25 },{ 0xf34bb, 25 },
151
{ 0xf34bc, 25 },{ 0xf34bd, 25 },{ 0xf34be, 25 },{ 0xf34bf, 25 },
152
{ 0x1e6940, 26 },{ 0x1e6941, 26 },{ 0x1e6942, 26 },{ 0x1e6943, 26 },
153
{ 0x1e6944, 26 },{ 0x1e6945, 26 },{ 0x1e6946, 26 },{ 0x1e6947, 26 },
154
{ 0x1e6948, 26 },{ 0x1e6949, 26 },{ 0x1e694a, 26 },{ 0x1e694b, 26 },
155
{ 0x1e694c, 26 },{ 0x1e694d, 26 },{ 0x1e694e, 26 },{ 0x1e694f, 26 },
156
{ 0x1e6950, 26 },{ 0x1e6951, 26 },{ 0x1e6952, 26 },{ 0x1e6953, 26 },
157
{ 0x1e6954, 26 },{ 0x1e6955, 26 },{ 0x1e6956, 26 },{ 0x1e6957, 26 },
158
{ 0x1e6958, 26 },{ 0x1e6959, 26 },{ 0x1e695a, 26 },{ 0x1e695b, 26 },
159
{ 0x1e695c, 26 },{ 0x1e695d, 26 },{ 0x1e695e, 26 },{ 0x1e695f, 26 },
160
{ 0x1e6960, 26 },{ 0x1e6961, 26 },{ 0x1e6962, 26 },{ 0x1e6963, 26 },
161
{ 0x1e6964, 26 },{ 0x1e6965, 26 },{ 0x1e6966, 26 },{ 0x1e6967, 26 },
162
};
163

    
164
static const UINT32 table1_dc_chroma[120][2] = {
165
{ 0x0, 2 },{ 0x1, 2 },{ 0x4, 3 },{ 0x7, 3 },
166
{ 0xb, 4 },{ 0xd, 4 },{ 0x15, 5 },{ 0x28, 6 },
167
{ 0x30, 6 },{ 0x32, 6 },{ 0x52, 7 },{ 0x62, 7 },
168
{ 0x66, 7 },{ 0xa6, 8 },{ 0xc6, 8 },{ 0xcf, 8 },
169
{ 0x14f, 9 },{ 0x18e, 9 },{ 0x19c, 9 },{ 0x29d, 10 },
170
{ 0x33a, 10 },{ 0x538, 11 },{ 0x63c, 11 },{ 0x63e, 11 },
171
{ 0x63f, 11 },{ 0x676, 11 },{ 0xa73, 12 },{ 0xc7a, 12 },
172
{ 0xcef, 12 },{ 0x14e5, 13 },{ 0x19dd, 13 },{ 0x29c8, 14 },
173
{ 0x29c9, 14 },{ 0x63dd, 15 },{ 0x33b8, 14 },{ 0x33b9, 14 },
174
{ 0xc7b6, 16 },{ 0x63d8, 15 },{ 0x63df, 15 },{ 0xc7b3, 16 },
175
{ 0xc7b4, 16 },{ 0xc7b5, 16 },{ 0x63de, 15 },{ 0xc7b7, 16 },
176
{ 0xc7b8, 16 },{ 0xc7b9, 16 },{ 0x18f65, 17 },{ 0x31ec8, 18 },
177
{ 0xc7b248, 24 },{ 0xc7b249, 24 },{ 0xc7b24a, 24 },{ 0xc7b24b, 24 },
178
{ 0xc7b24c, 24 },{ 0xc7b24d, 24 },{ 0xc7b24e, 24 },{ 0xc7b24f, 24 },
179
{ 0xc7b250, 24 },{ 0xc7b251, 24 },{ 0xc7b252, 24 },{ 0xc7b253, 24 },
180
{ 0xc7b254, 24 },{ 0xc7b255, 24 },{ 0xc7b256, 24 },{ 0xc7b257, 24 },
181
{ 0xc7b258, 24 },{ 0xc7b259, 24 },{ 0xc7b25a, 24 },{ 0xc7b25b, 24 },
182
{ 0xc7b25c, 24 },{ 0xc7b25d, 24 },{ 0xc7b25e, 24 },{ 0xc7b25f, 24 },
183
{ 0xc7b260, 24 },{ 0xc7b261, 24 },{ 0xc7b262, 24 },{ 0xc7b263, 24 },
184
{ 0xc7b264, 24 },{ 0xc7b265, 24 },{ 0xc7b266, 24 },{ 0xc7b267, 24 },
185
{ 0xc7b268, 24 },{ 0xc7b269, 24 },{ 0xc7b26a, 24 },{ 0xc7b26b, 24 },
186
{ 0xc7b26c, 24 },{ 0xc7b26d, 24 },{ 0xc7b26e, 24 },{ 0xc7b26f, 24 },
187
{ 0xc7b270, 24 },{ 0xc7b271, 24 },{ 0xc7b272, 24 },{ 0xc7b273, 24 },
188
{ 0xc7b274, 24 },{ 0xc7b275, 24 },{ 0xc7b276, 24 },{ 0xc7b277, 24 },
189
{ 0xc7b278, 24 },{ 0xc7b279, 24 },{ 0xc7b27a, 24 },{ 0xc7b27b, 24 },
190
{ 0xc7b27c, 24 },{ 0xc7b27d, 24 },{ 0xc7b27e, 24 },{ 0xc7b27f, 24 },
191
{ 0x18f6480, 25 },{ 0x18f6481, 25 },{ 0x18f6482, 25 },{ 0x18f6483, 25 },
192
{ 0x18f6484, 25 },{ 0x18f6485, 25 },{ 0x18f6486, 25 },{ 0x18f6487, 25 },
193
{ 0x18f6488, 25 },{ 0x18f6489, 25 },{ 0x18f648a, 25 },{ 0x18f648b, 25 },
194
{ 0x18f648c, 25 },{ 0x18f648d, 25 },{ 0x18f648e, 25 },{ 0x18f648f, 25 },
195
};
196

    
197
/* vlc table 0, for intra luma */
198

    
199
static const UINT16 table0_vlc[133][2] = {
200
{ 0x1, 2 },{ 0x6, 3 },{ 0xf, 4 },{ 0x16, 5 },
201
{ 0x20, 6 },{ 0x18, 7 },{ 0x8, 8 },{ 0x9a, 8 },
202
{ 0x56, 9 },{ 0x13e, 9 },{ 0xf0, 10 },{ 0x3a5, 10 },
203
{ 0x77, 11 },{ 0x1ef, 11 },{ 0x9a, 12 },{ 0x5d, 13 },
204
{ 0x1, 4 },{ 0x11, 5 },{ 0x2, 7 },{ 0xb, 8 },
205
{ 0x12, 9 },{ 0x1d6, 9 },{ 0x27e, 10 },{ 0x191, 11 },
206
{ 0xea, 12 },{ 0x3dc, 12 },{ 0x13b, 13 },{ 0x4, 5 },
207
{ 0x14, 7 },{ 0x9e, 8 },{ 0x9, 10 },{ 0x1ac, 11 },
208
{ 0x1e2, 11 },{ 0x3ca, 12 },{ 0x5f, 13 },{ 0x17, 5 },
209
{ 0x4e, 7 },{ 0x5e, 9 },{ 0xf3, 10 },{ 0x1ad, 11 },
210
{ 0xec, 12 },{ 0x5f0, 13 },{ 0xe, 6 },{ 0xe1, 8 },
211
{ 0x3a4, 10 },{ 0x9c, 12 },{ 0x13d, 13 },{ 0x3b, 6 },
212
{ 0x1c, 9 },{ 0x14, 11 },{ 0x9be, 12 },{ 0x6, 7 },
213
{ 0x7a, 9 },{ 0x190, 11 },{ 0x137, 13 },{ 0x1b, 7 },
214
{ 0x8, 10 },{ 0x75c, 11 },{ 0x71, 7 },{ 0xd7, 10 },
215
{ 0x9bf, 12 },{ 0x7, 8 },{ 0xaf, 10 },{ 0x4cc, 11 },
216
{ 0x34, 8 },{ 0x265, 10 },{ 0x9f, 12 },{ 0xe0, 8 },
217
{ 0x16, 11 },{ 0x327, 12 },{ 0x15, 9 },{ 0x17d, 11 },
218
{ 0xebb, 12 },{ 0x14, 9 },{ 0xf6, 10 },{ 0x1e4, 11 },
219
{ 0xcb, 10 },{ 0x99d, 12 },{ 0xca, 10 },{ 0x2fc, 12 },
220
{ 0x17f, 11 },{ 0x4cd, 11 },{ 0x2fd, 12 },{ 0x4fe, 11 },
221
{ 0x13a, 13 },{ 0xa, 4 },{ 0x42, 7 },{ 0x1d3, 9 },
222
{ 0x4dd, 11 },{ 0x12, 5 },{ 0xe8, 8 },{ 0x4c, 11 },
223
{ 0x136, 13 },{ 0x39, 6 },{ 0x264, 10 },{ 0xeba, 12 },
224
{ 0x0, 7 },{ 0xae, 10 },{ 0x99c, 12 },{ 0x1f, 7 },
225
{ 0x4de, 11 },{ 0x43, 7 },{ 0x4dc, 11 },{ 0x3, 8 },
226
{ 0x3cb, 12 },{ 0x6, 8 },{ 0x99e, 12 },{ 0x2a, 8 },
227
{ 0x5f1, 13 },{ 0xf, 8 },{ 0x9fe, 12 },{ 0x33, 8 },
228
{ 0x9ff, 12 },{ 0x98, 8 },{ 0x99f, 12 },{ 0xea, 8 },
229
{ 0x13c, 13 },{ 0x2e, 8 },{ 0x192, 11 },{ 0x136, 9 },
230
{ 0x6a, 9 },{ 0x15, 11 },{ 0x3af, 10 },{ 0x1e3, 11 },
231
{ 0x74, 11 },{ 0xeb, 12 },{ 0x2f9, 12 },{ 0x5c, 13 },
232
{ 0xed, 12 },{ 0x3dd, 12 },{ 0x326, 12 },{ 0x5e, 13 },
233
{ 0x16, 7 },
234
};
235

    
236
static const INT8 table0_level[132] = {
237
  1,  2,  3,  4,  5,  6,  7,  8,
238
  9, 10, 11, 12, 13, 14, 15, 16,
239
  1,  2,  3,  4,  5,  6,  7,  8,
240
  9, 10, 11,  1,  2,  3,  4,  5,
241
  6,  7,  8,  1,  2,  3,  4,  5,
242
  6,  7,  1,  2,  3,  4,  5,  1,
243
  2,  3,  4,  1,  2,  3,  4,  1,
244
  2,  3,  1,  2,  3,  1,  2,  3,
245
  1,  2,  3,  1,  2,  3,  1,  2,
246
  3,  1,  2,  3,  1,  2,  1,  2,
247
  1,  1,  1,  1,  1,  1,  2,  3,
248
  4,  1,  2,  3,  4,  1,  2,  3,
249
  1,  2,  3,  1,  2,  1,  2,  1,
250
  2,  1,  2,  1,  2,  1,  2,  1,
251
  2,  1,  2,  1,  2,  1,  2,  1,
252
  1,  1,  1,  1,  1,  1,  1,  1,
253
  1,  1,  1,  1,
254
};
255

    
256
static const INT8 table0_run[132] = {
257
  0,  0,  0,  0,  0,  0,  0,  0,
258
  0,  0,  0,  0,  0,  0,  0,  0,
259
  1,  1,  1,  1,  1,  1,  1,  1,
260
  1,  1,  1,  2,  2,  2,  2,  2,
261
  2,  2,  2,  3,  3,  3,  3,  3,
262
  3,  3,  4,  4,  4,  4,  4,  5,
263
  5,  5,  5,  6,  6,  6,  6,  7,
264
  7,  7,  8,  8,  8,  9,  9,  9,
265
 10, 10, 10, 11, 11, 11, 12, 12,
266
 12, 13, 13, 13, 14, 14, 15, 15,
267
 16, 17, 18, 19, 20,  0,  0,  0,
268
  0,  1,  1,  1,  1,  2,  2,  2,
269
  3,  3,  3,  4,  4,  5,  5,  6,
270
  6,  7,  7,  8,  8,  9,  9, 10,
271
 10, 11, 11, 12, 12, 13, 13, 14,
272
 15, 16, 17, 18, 19, 20, 21, 22,
273
 23, 24, 25, 26,
274
};
275

    
276
/* vlc table 1, for intra chroma and P macro blocks */
277

    
278
static const UINT16 table1_vlc[149][2] = {
279
{ 0x4, 3 },{ 0x14, 5 },{ 0x17, 7 },{ 0x7f, 8 },
280
{ 0x154, 9 },{ 0x1f2, 10 },{ 0xbf, 11 },{ 0x65, 12 },
281
{ 0xaaa, 12 },{ 0x630, 13 },{ 0x1597, 13 },{ 0x3b7, 14 },
282
{ 0x2b22, 14 },{ 0xbe6, 15 },{ 0xb, 4 },{ 0x37, 7 },
283
{ 0x62, 9 },{ 0x7, 11 },{ 0x166, 12 },{ 0xce, 13 },
284
{ 0x1590, 13 },{ 0x5f6, 14 },{ 0xbe7, 15 },{ 0x7, 5 },
285
{ 0x6d, 8 },{ 0x3, 11 },{ 0x31f, 12 },{ 0x5f2, 14 },
286
{ 0x2, 6 },{ 0x61, 9 },{ 0x55, 12 },{ 0x1df, 14 },
287
{ 0x1a, 6 },{ 0x1e, 10 },{ 0xac9, 12 },{ 0x2b23, 14 },
288
{ 0x1e, 6 },{ 0x1f, 10 },{ 0xac3, 12 },{ 0x2b2b, 14 },
289
{ 0x6, 7 },{ 0x4, 11 },{ 0x2f8, 13 },{ 0x19, 7 },
290
{ 0x6, 11 },{ 0x63d, 13 },{ 0x57, 7 },{ 0x182, 11 },
291
{ 0x2aa2, 14 },{ 0x4, 8 },{ 0x180, 11 },{ 0x59c, 14 },
292
{ 0x7d, 8 },{ 0x164, 12 },{ 0x76d, 15 },{ 0x2, 9 },
293
{ 0x18d, 11 },{ 0x1581, 13 },{ 0xad, 8 },{ 0x60, 12 },
294
{ 0xc67, 14 },{ 0x1c, 9 },{ 0xee, 13 },{ 0x3, 9 },
295
{ 0x2cf, 13 },{ 0xd9, 9 },{ 0x1580, 13 },{ 0x2, 11 },
296
{ 0x183, 11 },{ 0x57, 12 },{ 0x61, 12 },{ 0x31, 11 },
297
{ 0x66, 12 },{ 0x631, 13 },{ 0x632, 13 },{ 0xac, 13 },
298
{ 0x31d, 12 },{ 0x76, 12 },{ 0x3a, 11 },{ 0x165, 12 },
299
{ 0xc66, 14 },{ 0x3, 2 },{ 0x54, 7 },{ 0x2ab, 10 },
300
{ 0x16, 13 },{ 0x5f7, 14 },{ 0x5, 4 },{ 0xf8, 9 },
301
{ 0xaa9, 12 },{ 0x5f, 15 },{ 0x4, 4 },{ 0x1c, 10 },
302
{ 0x1550, 13 },{ 0x4, 5 },{ 0x77, 11 },{ 0x76c, 15 },
303
{ 0xe, 5 },{ 0xa, 12 },{ 0xc, 5 },{ 0x562, 11 },
304
{ 0x4, 6 },{ 0x31c, 12 },{ 0x6, 6 },{ 0xc8, 13 },
305
{ 0xd, 6 },{ 0x1da, 13 },{ 0x7, 6 },{ 0xc9, 13 },
306
{ 0x1, 7 },{ 0x2e, 14 },{ 0x14, 7 },{ 0x1596, 13 },
307
{ 0xa, 7 },{ 0xac2, 12 },{ 0x16, 7 },{ 0x15b, 14 },
308
{ 0x15, 7 },{ 0x15a, 14 },{ 0xf, 8 },{ 0x5e, 15 },
309
{ 0x7e, 8 },{ 0xab, 8 },{ 0x2d, 9 },{ 0xd8, 9 },
310
{ 0xb, 9 },{ 0x14, 10 },{ 0x2b3, 10 },{ 0x1f3, 10 },
311
{ 0x3a, 10 },{ 0x0, 10 },{ 0x58, 10 },{ 0x2e, 9 },
312
{ 0x5e, 10 },{ 0x563, 11 },{ 0xec, 12 },{ 0x54, 12 },
313
{ 0xac1, 12 },{ 0x1556, 13 },{ 0x2fa, 13 },{ 0x181, 11 },
314
{ 0x1557, 13 },{ 0x59d, 14 },{ 0x2aa3, 14 },{ 0x2b2a, 14 },
315
{ 0x1de, 14 },{ 0x63c, 13 },{ 0xcf, 13 },{ 0x1594, 13 },
316
{ 0xd, 9 },
317
};
318

    
319
static const INT8 table1_level[148] = {
320
  1,  2,  3,  4,  5,  6,  7,  8,
321
  9, 10, 11, 12, 13, 14,  1,  2,
322
  3,  4,  5,  6,  7,  8,  9,  1,
323
  2,  3,  4,  5,  1,  2,  3,  4,
324
  1,  2,  3,  4,  1,  2,  3,  4,
325
  1,  2,  3,  1,  2,  3,  1,  2,
326
  3,  1,  2,  3,  1,  2,  3,  1,
327
  2,  3,  1,  2,  3,  1,  2,  1,
328
  2,  1,  2,  1,  1,  1,  1,  1,
329
  1,  1,  1,  1,  1,  1,  1,  1,
330
  1,  1,  2,  3,  4,  5,  1,  2,
331
  3,  4,  1,  2,  3,  1,  2,  3,
332
  1,  2,  1,  2,  1,  2,  1,  2,
333
  1,  2,  1,  2,  1,  2,  1,  2,
334
  1,  2,  1,  2,  1,  2,  1,  2,
335
  1,  1,  1,  1,  1,  1,  1,  1,
336
  1,  1,  1,  1,  1,  1,  1,  1,
337
  1,  1,  1,  1,  1,  1,  1,  1,
338
  1,  1,  1,  1,
339
};
340

    
341
static const INT8 table1_run[148] = {
342
  0,  0,  0,  0,  0,  0,  0,  0,
343
  0,  0,  0,  0,  0,  0,  1,  1,
344
  1,  1,  1,  1,  1,  1,  1,  2,
345
  2,  2,  2,  2,  3,  3,  3,  3,
346
  4,  4,  4,  4,  5,  5,  5,  5,
347
  6,  6,  6,  7,  7,  7,  8,  8,
348
  8,  9,  9,  9, 10, 10, 10, 11,
349
 11, 11, 12, 12, 12, 13, 13, 14,
350
 14, 15, 15, 16, 17, 18, 19, 20,
351
 21, 22, 23, 24, 25, 26, 27, 28,
352
 29,  0,  0,  0,  0,  0,  1,  1,
353
  1,  1,  2,  2,  2,  3,  3,  3,
354
  4,  4,  5,  5,  6,  6,  7,  7,
355
  8,  8,  9,  9, 10, 10, 11, 11,
356
 12, 12, 13, 13, 14, 14, 15, 15,
357
 16, 17, 18, 19, 20, 21, 22, 23,
358
 24, 25, 26, 27, 28, 29, 30, 31,
359
 32, 33, 34, 35, 36, 37, 38, 39,
360
 40, 41, 42, 43,
361
};
362

    
363
/* third vlc table */
364

    
365
static const UINT16 table2_vlc[186][2] = {
366
{ 0x1, 2 },{ 0x5, 3 },{ 0xd, 4 },{ 0x12, 5 },
367
{ 0xe, 6 },{ 0x15, 7 },{ 0x13, 8 },{ 0x3f, 8 },
368
{ 0x4b, 9 },{ 0x11f, 9 },{ 0xb8, 10 },{ 0x3e3, 10 },
369
{ 0x172, 11 },{ 0x24d, 12 },{ 0x3da, 12 },{ 0x2dd, 13 },
370
{ 0x1f55, 13 },{ 0x5b9, 14 },{ 0x3eae, 14 },{ 0x0, 4 },
371
{ 0x10, 5 },{ 0x8, 7 },{ 0x20, 8 },{ 0x29, 9 },
372
{ 0x1f4, 9 },{ 0x233, 10 },{ 0x1e0, 11 },{ 0x12a, 12 },
373
{ 0x3dd, 12 },{ 0x50a, 13 },{ 0x1f29, 13 },{ 0xa42, 14 },
374
{ 0x1272, 15 },{ 0x1737, 15 },{ 0x3, 5 },{ 0x11, 7 },
375
{ 0xc4, 8 },{ 0x4b, 10 },{ 0xb4, 11 },{ 0x7d4, 11 },
376
{ 0x345, 12 },{ 0x2d7, 13 },{ 0x7bf, 13 },{ 0x938, 14 },
377
{ 0xbbb, 14 },{ 0x95e, 15 },{ 0x13, 5 },{ 0x78, 7 },
378
{ 0x69, 9 },{ 0x232, 10 },{ 0x461, 11 },{ 0x3ec, 12 },
379
{ 0x520, 13 },{ 0x1f2a, 13 },{ 0x3e50, 14 },{ 0x3e51, 14 },
380
{ 0x1486, 15 },{ 0xc, 6 },{ 0x24, 9 },{ 0x94, 11 },
381
{ 0x8c0, 12 },{ 0xf09, 14 },{ 0x1ef0, 15 },{ 0x3d, 6 },
382
{ 0x53, 9 },{ 0x1a0, 11 },{ 0x2d6, 13 },{ 0xf08, 14 },
383
{ 0x13, 7 },{ 0x7c, 9 },{ 0x7c1, 11 },{ 0x4ac, 14 },
384
{ 0x1b, 7 },{ 0xa0, 10 },{ 0x344, 12 },{ 0xf79, 14 },
385
{ 0x79, 7 },{ 0x3e1, 10 },{ 0x2d4, 13 },{ 0x2306, 14 },
386
{ 0x21, 8 },{ 0x23c, 10 },{ 0xfae, 12 },{ 0x23de, 14 },
387
{ 0x35, 8 },{ 0x175, 11 },{ 0x7b3, 13 },{ 0xc5, 8 },
388
{ 0x174, 11 },{ 0x785, 13 },{ 0x48, 9 },{ 0x1a3, 11 },
389
{ 0x49e, 13 },{ 0x2c, 9 },{ 0xfa, 10 },{ 0x7d6, 11 },
390
{ 0x92, 10 },{ 0x5cc, 13 },{ 0x1ef1, 15 },{ 0xa3, 10 },
391
{ 0x3ed, 12 },{ 0x93e, 14 },{ 0x1e2, 11 },{ 0x1273, 15 },
392
{ 0x7c4, 11 },{ 0x1487, 15 },{ 0x291, 12 },{ 0x293, 12 },
393
{ 0xf8a, 12 },{ 0x509, 13 },{ 0x508, 13 },{ 0x78d, 13 },
394
{ 0x7be, 13 },{ 0x78c, 13 },{ 0x4ae, 14 },{ 0xbba, 14 },
395
{ 0x2307, 14 },{ 0xb9a, 14 },{ 0x1736, 15 },{ 0xe, 4 },
396
{ 0x45, 7 },{ 0x1f3, 9 },{ 0x47a, 11 },{ 0x5dc, 13 },
397
{ 0x23df, 14 },{ 0x19, 5 },{ 0x28, 9 },{ 0x176, 11 },
398
{ 0x49d, 13 },{ 0x23dd, 14 },{ 0x30, 6 },{ 0xa2, 10 },
399
{ 0x2ef, 12 },{ 0x5b8, 14 },{ 0x3f, 6 },{ 0xa5, 10 },
400
{ 0x3db, 12 },{ 0x93f, 14 },{ 0x44, 7 },{ 0x7cb, 11 },
401
{ 0x95f, 15 },{ 0x63, 7 },{ 0x3c3, 12 },{ 0x15, 8 },
402
{ 0x8f6, 12 },{ 0x17, 8 },{ 0x498, 13 },{ 0x2c, 8 },
403
{ 0x7b2, 13 },{ 0x2f, 8 },{ 0x1f54, 13 },{ 0x8d, 8 },
404
{ 0x7bd, 13 },{ 0x8e, 8 },{ 0x1182, 13 },{ 0xfb, 8 },
405
{ 0x50b, 13 },{ 0x2d, 8 },{ 0x7c0, 11 },{ 0x79, 9 },
406
{ 0x1f5f, 13 },{ 0x7a, 9 },{ 0x1f56, 13 },{ 0x231, 10 },
407
{ 0x3e4, 10 },{ 0x1a1, 11 },{ 0x143, 11 },{ 0x1f7, 11 },
408
{ 0x16f, 12 },{ 0x292, 12 },{ 0x2e7, 12 },{ 0x16c, 12 },
409
{ 0x16d, 12 },{ 0x3dc, 12 },{ 0xf8b, 12 },{ 0x499, 13 },
410
{ 0x3d8, 12 },{ 0x78e, 13 },{ 0x2d5, 13 },{ 0x1f5e, 13 },
411
{ 0x1f2b, 13 },{ 0x78f, 13 },{ 0x4ad, 14 },{ 0x3eaf, 14 },
412
{ 0x23dc, 14 },{ 0x4a, 9 },
413
};
414

    
415
static const INT8 table2_level[185] = {
416
  1,  2,  3,  4,  5,  6,  7,  8,
417
  9, 10, 11, 12, 13, 14, 15, 16,
418
 17, 18, 19,  1,  2,  3,  4,  5,
419
  6,  7,  8,  9, 10, 11, 12, 13,
420
 14, 15,  1,  2,  3,  4,  5,  6,
421
  7,  8,  9, 10, 11, 12,  1,  2,
422
  3,  4,  5,  6,  7,  8,  9, 10,
423
 11,  1,  2,  3,  4,  5,  6,  1,
424
  2,  3,  4,  5,  1,  2,  3,  4,
425
  1,  2,  3,  4,  1,  2,  3,  4,
426
  1,  2,  3,  4,  1,  2,  3,  1,
427
  2,  3,  1,  2,  3,  1,  2,  3,
428
  1,  2,  3,  1,  2,  3,  1,  2,
429
  1,  2,  1,  1,  1,  1,  1,  1,
430
  1,  1,  1,  1,  1,  1,  1,  1,
431
  2,  3,  4,  5,  6,  1,  2,  3,
432
  4,  5,  1,  2,  3,  4,  1,  2,
433
  3,  4,  1,  2,  3,  1,  2,  1,
434
  2,  1,  2,  1,  2,  1,  2,  1,
435
  2,  1,  2,  1,  2,  1,  2,  1,
436
  2,  1,  2,  1,  1,  1,  1,  1,
437
  1,  1,  1,  1,  1,  1,  1,  1,
438
  1,  1,  1,  1,  1,  1,  1,  1,
439
  1,
440
};
441

    
442
static const INT8 table2_run[185] = {
443
  0,  0,  0,  0,  0,  0,  0,  0,
444
  0,  0,  0,  0,  0,  0,  0,  0,
445
  0,  0,  0,  1,  1,  1,  1,  1,
446
  1,  1,  1,  1,  1,  1,  1,  1,
447
  1,  1,  2,  2,  2,  2,  2,  2,
448
  2,  2,  2,  2,  2,  2,  3,  3,
449
  3,  3,  3,  3,  3,  3,  3,  3,
450
  3,  4,  4,  4,  4,  4,  4,  5,
451
  5,  5,  5,  5,  6,  6,  6,  6,
452
  7,  7,  7,  7,  8,  8,  8,  8,
453
  9,  9,  9,  9, 10, 10, 10, 11,
454
 11, 11, 12, 12, 12, 13, 13, 13,
455
 14, 14, 14, 15, 15, 15, 16, 16,
456
 17, 17, 18, 19, 20, 21, 22, 23,
457
 24, 25, 26, 27, 28, 29, 30,  0,
458
  0,  0,  0,  0,  0,  1,  1,  1,
459
  1,  1,  2,  2,  2,  2,  3,  3,
460
  3,  3,  4,  4,  4,  5,  5,  6,
461
  6,  7,  7,  8,  8,  9,  9, 10,
462
 10, 11, 11, 12, 12, 13, 13, 14,
463
 14, 15, 15, 16, 17, 18, 19, 20,
464
 21, 22, 23, 24, 25, 26, 27, 28,
465
 29, 30, 31, 32, 33, 34, 35, 36,
466
 37,
467
};
468

    
469
/* second non intra vlc table */
470
static const UINT16 table4_vlc[169][2] = {
471
{ 0x0, 3 },{ 0x3, 4 },{ 0xb, 5 },{ 0x14, 6 },
472
{ 0x3f, 6 },{ 0x5d, 7 },{ 0xa2, 8 },{ 0xac, 9 },
473
{ 0x16e, 9 },{ 0x20a, 10 },{ 0x2e2, 10 },{ 0x432, 11 },
474
{ 0x5c9, 11 },{ 0x827, 12 },{ 0xb54, 12 },{ 0x4e6, 13 },
475
{ 0x105f, 13 },{ 0x172a, 13 },{ 0x20b2, 14 },{ 0x2d4e, 14 },
476
{ 0x39f0, 14 },{ 0x4175, 15 },{ 0x5a9e, 15 },{ 0x4, 4 },
477
{ 0x1e, 5 },{ 0x42, 7 },{ 0xb6, 8 },{ 0x173, 9 },
478
{ 0x395, 10 },{ 0x72e, 11 },{ 0xb94, 12 },{ 0x16a4, 13 },
479
{ 0x20b3, 14 },{ 0x2e45, 14 },{ 0x5, 5 },{ 0x40, 7 },
480
{ 0x49, 9 },{ 0x28f, 10 },{ 0x5cb, 11 },{ 0x48a, 13 },
481
{ 0x9dd, 14 },{ 0x73e2, 15 },{ 0x18, 5 },{ 0x25, 8 },
482
{ 0x8a, 10 },{ 0x51b, 11 },{ 0xe5f, 12 },{ 0x9c9, 14 },
483
{ 0x139c, 15 },{ 0x29, 6 },{ 0x4f, 9 },{ 0x412, 11 },
484
{ 0x48d, 13 },{ 0x2e41, 14 },{ 0x38, 6 },{ 0x10e, 9 },
485
{ 0x5a8, 11 },{ 0x105c, 13 },{ 0x39f2, 14 },{ 0x58, 7 },
486
{ 0x21f, 10 },{ 0xe7e, 12 },{ 0x39ff, 14 },{ 0x23, 8 },
487
{ 0x2e3, 10 },{ 0x4e5, 13 },{ 0x2e40, 14 },{ 0xa1, 8 },
488
{ 0x5be, 11 },{ 0x9c8, 14 },{ 0x83, 8 },{ 0x13a, 11 },
489
{ 0x1721, 13 },{ 0x44, 9 },{ 0x276, 12 },{ 0x39f6, 14 },
490
{ 0x8b, 10 },{ 0x4ef, 13 },{ 0x5a9b, 15 },{ 0x208, 10 },
491
{ 0x1cfe, 13 },{ 0x399, 10 },{ 0x1cb4, 13 },{ 0x39e, 10 },
492
{ 0x39f3, 14 },{ 0x5ab, 11 },{ 0x73e3, 15 },{ 0x737, 11 },
493
{ 0x5a9f, 15 },{ 0x82d, 12 },{ 0xe69, 12 },{ 0xe68, 12 },
494
{ 0x433, 11 },{ 0xb7b, 12 },{ 0x2df8, 14 },{ 0x2e56, 14 },
495
{ 0x2e57, 14 },{ 0x39f7, 14 },{ 0x51a5, 15 },{ 0x3, 3 },
496
{ 0x2a, 6 },{ 0xe4, 8 },{ 0x28e, 10 },{ 0x735, 11 },
497
{ 0x1058, 13 },{ 0x1cfa, 13 },{ 0x2df9, 14 },{ 0x4174, 15 },
498
{ 0x9, 4 },{ 0x54, 8 },{ 0x398, 10 },{ 0x48b, 13 },
499
{ 0x139d, 15 },{ 0xd, 4 },{ 0xad, 9 },{ 0x826, 12 },
500
{ 0x2d4c, 14 },{ 0x11, 5 },{ 0x16b, 9 },{ 0xb7f, 12 },
501
{ 0x51a4, 15 },{ 0x19, 5 },{ 0x21b, 10 },{ 0x16fd, 13 },
502
{ 0x1d, 5 },{ 0x394, 10 },{ 0x28d3, 14 },{ 0x2b, 6 },
503
{ 0x5bc, 11 },{ 0x5a9a, 15 },{ 0x2f, 6 },{ 0x247, 12 },
504
{ 0x10, 7 },{ 0xa35, 12 },{ 0x3e, 6 },{ 0xb7a, 12 },
505
{ 0x59, 7 },{ 0x105e, 13 },{ 0x26, 8 },{ 0x9cf, 14 },
506
{ 0x55, 8 },{ 0x1cb5, 13 },{ 0x57, 8 },{ 0xe5b, 12 },
507
{ 0xa0, 8 },{ 0x1468, 13 },{ 0x170, 9 },{ 0x90, 10 },
508
{ 0x1ce, 9 },{ 0x21a, 10 },{ 0x218, 10 },{ 0x168, 9 },
509
{ 0x21e, 10 },{ 0x244, 12 },{ 0x736, 11 },{ 0x138, 11 },
510
{ 0x519, 11 },{ 0xe5e, 12 },{ 0x72c, 11 },{ 0xb55, 12 },
511
{ 0x9dc, 14 },{ 0x20bb, 14 },{ 0x48c, 13 },{ 0x1723, 13 },
512
{ 0x2e44, 14 },{ 0x16a5, 13 },{ 0x518, 11 },{ 0x39fe, 14 },
513
{ 0x169, 9 },
514
};
515

    
516
static const INT8 table4_level[168] = {
517
  1,  2,  3,  4,  5,  6,  7,  8,
518
  9, 10, 11, 12, 13, 14, 15, 16,
519
 17, 18, 19, 20, 21, 22, 23,  1,
520
  2,  3,  4,  5,  6,  7,  8,  9,
521
 10, 11,  1,  2,  3,  4,  5,  6,
522
  7,  8,  1,  2,  3,  4,  5,  6,
523
  7,  1,  2,  3,  4,  5,  1,  2,
524
  3,  4,  5,  1,  2,  3,  4,  1,
525
  2,  3,  4,  1,  2,  3,  1,  2,
526
  3,  1,  2,  3,  1,  2,  3,  1,
527
  2,  1,  2,  1,  2,  1,  2,  1,
528
  2,  1,  1,  1,  1,  1,  1,  1,
529
  1,  1,  1,  1,  2,  3,  4,  5,
530
  6,  7,  8,  9,  1,  2,  3,  4,
531
  5,  1,  2,  3,  4,  1,  2,  3,
532
  4,  1,  2,  3,  1,  2,  3,  1,
533
  2,  3,  1,  2,  1,  2,  1,  2,
534
  1,  2,  1,  2,  1,  2,  1,  2,
535
  1,  2,  1,  1,  1,  1,  1,  1,
536
  1,  1,  1,  1,  1,  1,  1,  1,
537
  1,  1,  1,  1,  1,  1,  1,  1,
538
};
539

    
540
static const INT8 table4_run[168] = {
541
  0,  0,  0,  0,  0,  0,  0,  0,
542
  0,  0,  0,  0,  0,  0,  0,  0,
543
  0,  0,  0,  0,  0,  0,  0,  1,
544
  1,  1,  1,  1,  1,  1,  1,  1,
545
  1,  1,  2,  2,  2,  2,  2,  2,
546
  2,  2,  3,  3,  3,  3,  3,  3,
547
  3,  4,  4,  4,  4,  4,  5,  5,
548
  5,  5,  5,  6,  6,  6,  6,  7,
549
  7,  7,  7,  8,  8,  8,  9,  9,
550
  9, 10, 10, 10, 11, 11, 11, 12,
551
 12, 13, 13, 14, 14, 15, 15, 16,
552
 16, 17, 18, 19, 20, 21, 22, 23,
553
 24, 25, 26,  0,  0,  0,  0,  0,
554
  0,  0,  0,  0,  1,  1,  1,  1,
555
  1,  2,  2,  2,  2,  3,  3,  3,
556
  3,  4,  4,  4,  5,  5,  5,  6,
557
  6,  6,  7,  7,  8,  8,  9,  9,
558
 10, 10, 11, 11, 12, 12, 13, 13,
559
 14, 14, 15, 16, 17, 18, 19, 20,
560
 21, 22, 23, 24, 25, 26, 27, 28,
561
 29, 30, 31, 32, 33, 34, 35, 36,
562
};
563

    
564
extern const UINT16 inter_vlc[103][2];
565
extern const INT8 inter_level[102];
566
extern const INT8 inter_run[102];
567

    
568
extern const UINT16 intra_vlc[103][2];
569
extern const INT8 intra_level[102];
570
extern const INT8 intra_run[102];
571

    
572
extern const UINT8 DCtab_lum[13][2];
573
extern const UINT8 DCtab_chrom[13][2];
574

    
575
extern const UINT8 cbpy_tab[16][2];
576
extern const UINT8 mvtab[33][2];
577

    
578
extern const UINT8 intra_MCBPC_code[8];
579
extern const UINT8 intra_MCBPC_bits[8];
580

    
581
extern const UINT8 inter_MCBPC_code[25];
582
extern const UINT8 inter_MCBPC_bits[25];
583

    
584
#define NB_RL_TABLES  6
585

    
586
static RLTable rl_table[NB_RL_TABLES] = {
587
    /* intra luminance tables */
588
    {
589
        132,
590
        85,
591
        table0_vlc,
592
        table0_run,
593
        table0_level,
594
    },
595
    {
596
        185,
597
        119,
598
        table2_vlc,
599
        table2_run,
600
        table2_level,
601
    },
602
    {
603
        102,
604
        67,
605
        intra_vlc,
606
        intra_run,
607
        intra_level,
608
    },
609
    /* intra chrominance / non intra tables */
610
    {
611
        148,
612
        81,
613
        table1_vlc,
614
        table1_run,
615
        table1_level,
616
    },
617
    {
618
        168,
619
        99,
620
        table4_vlc,
621
        table4_run,
622
        table4_level,
623
    },
624
    {
625
        102,
626
        58,
627
        inter_vlc,
628
        inter_run,
629
        inter_level,
630
    },
631
};
632

    
633
/* motion vector table 0 */
634

    
635
static const UINT16 table0_mv_code[1100] = {
636
 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001,
637
 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f,
638
 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b,
639
 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048,
640
 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c,
641
 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2,
642
 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5,
643
 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090,
644
 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133,
645
 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b,
646
 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359,
647
 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d,
648
 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e,
649
 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3,
650
 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8,
651
 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688,
652
 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0,
653
 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079,
654
 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b,
655
 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e,
656
 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d,
657
 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942,
658
 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983,
659
 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17,
660
 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d,
661
 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
662
 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421,
663
 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572,
664
 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996,
665
 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33,
666
 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7,
667
 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff,
668
 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273,
669
 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0,
670
 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2,
671
 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca,
672
 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a,
673
 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8,
674
 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2,
675
 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
676
 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c,
677
 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4,
678
 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2,
679
 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba,
680
 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459,
681
 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461,
682
 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469,
683
 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3,
684
 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb,
685
 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545,
686
 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d,
687
 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
688
 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
689
 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774,
690
 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
691
 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561,
692
 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569,
693
 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571,
694
 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f,
695
 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
696
 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
697
 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
698
 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
699
 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb,
700
 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3,
701
 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb,
702
 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343,
703
 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
704
 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
705
 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a,
706
 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92,
707
 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a,
708
 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2,
709
 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa,
710
 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2,
711
 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba,
712
 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c,
713
 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34,
714
 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c,
715
 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84,
716
 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c,
717
 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94,
718
 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c,
719
 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4,
720
 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac,
721
 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4,
722
 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc,
723
 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4,
724
 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04,
725
 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8,
726
 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0,
727
 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8,
728
 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000,
729
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
730
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010,
731
 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018,
732
 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020,
733
 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028,
734
 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030,
735
 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038,
736
 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040,
737
 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048,
738
 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050,
739
 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058,
740
 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060,
741
 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068,
742
 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070,
743
 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
744
 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c,
745
 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4,
746
 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc,
747
 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44,
748
 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c,
749
 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54,
750
 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c,
751
 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64,
752
 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c,
753
 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74,
754
 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c,
755
 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84,
756
 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c,
757
 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94,
758
 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c,
759
 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
760
 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac,
761
 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4,
762
 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc,
763
 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4,
764
 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc,
765
 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4,
766
 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc,
767
 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
768
 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec,
769
 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4,
770
 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc,
771
 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04,
772
 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c,
773
 0x5f0d, 0x5f0e, 0x5f0f, 0x0000,
774
};
775

    
776
static const UINT8 table0_mv_bits[1100] = {
777
  1,  4,  4,  4,  5,  5,  5,  6,
778
  6,  6,  7,  7,  7,  8,  8,  8,
779
  8,  8,  8,  8,  8,  8,  8,  8,
780
  8,  9,  9,  9,  9,  9,  9,  9,
781
  9,  9,  9,  9,  9, 10, 10, 10,
782
 10, 10, 10, 10, 10, 10, 10, 10,
783
 10, 10, 10, 10, 10, 10, 10, 10,
784
 10, 10, 10, 10, 11, 11, 11, 11,
785
 11, 11, 11, 11, 11, 11, 11, 11,
786
 11, 11, 11, 11, 11, 11, 11, 11,
787
 11, 11, 11, 11, 11, 11, 11, 11,
788
 12, 12, 12, 12, 12, 12, 12, 12,
789
 12, 12, 12, 12, 12, 12, 12, 12,
790
 12, 12, 12, 12, 12, 12, 12, 12,
791
 12, 12, 12, 12, 12, 12, 12, 12,
792
 12, 12, 12, 12, 12, 12, 12, 12,
793
 12, 12, 12, 12, 12, 12, 12, 12,
794
 12, 12, 12, 13, 13, 13, 13, 13,
795
 13, 13, 13, 13, 13, 13, 13, 13,
796
 13, 13, 13, 13, 13, 13, 13, 13,
797
 13, 13, 13, 13, 13, 13, 13, 13,
798
 13, 13, 13, 13, 13, 13, 13, 13,
799
 13, 13, 13, 13, 13, 13, 13, 13,
800
 13, 13, 13, 13, 13, 13, 13, 13,
801
 13, 13, 13, 13, 13, 13, 13, 13,
802
 13, 13, 14, 14, 14, 14, 14, 14,
803
 14, 14, 14, 14, 14, 14, 14, 14,
804
 14, 14, 14, 14, 14, 14, 14, 14,
805
 14, 14, 14, 14, 14, 14, 14, 14,
806
 14, 14, 14, 14, 14, 14, 14, 14,
807
 14, 14, 14, 14, 14, 14, 14, 14,
808
 14, 14, 14, 14, 14, 14, 14, 14,
809
 14, 14, 14, 14, 14, 14, 14, 14,
810
 14, 14, 14, 14, 14, 14, 14, 14,
811
 14, 14, 14, 14, 14, 14, 14, 14,
812
 14, 14, 14, 14, 14, 14, 14, 14,
813
 14, 14, 14, 14, 14, 14, 14, 14,
814
 14, 14, 14, 14, 14, 14, 14, 14,
815
 14, 15, 15, 15, 15, 15, 15, 15,
816
 15, 15, 15, 15, 15, 15, 15, 15,
817
 15, 15, 15, 15, 15, 15, 15, 15,
818
 15, 15, 15, 15, 15, 15, 15, 15,
819
 15, 15, 15, 15, 15, 15, 15, 15,
820
 15, 15, 15, 15, 15, 15, 15, 15,
821
 15, 15, 15, 15, 15, 15, 15, 15,
822
 15, 15, 15, 15, 15, 15, 15, 15,
823
 15, 15, 15, 15, 15, 15, 15, 15,
824
 15, 15, 15, 15, 15, 15, 15, 15,
825
 15, 15, 15, 15, 15, 15, 15, 15,
826
 15, 15, 15, 15, 15, 15, 15, 15,
827
 15, 15, 15, 15, 15, 15, 15, 15,
828
 15, 15, 15, 15, 15, 15, 15, 15,
829
 15, 15, 15, 15, 15, 15, 15, 15,
830
 15, 15, 15, 15, 15, 15, 15, 15,
831
 15, 15, 15, 15, 15, 15, 15, 15,
832
 15, 15, 15, 15, 15, 15, 15, 15,
833
 15, 15, 15, 15, 15, 15, 15, 15,
834
 15, 15, 15, 15, 15, 15, 15, 15,
835
 15, 15, 15, 15, 16, 16, 16, 16,
836
 16, 16, 16, 16, 16, 16, 16, 16,
837
 16, 16, 16, 16, 16, 16, 16, 16,
838
 16, 16, 16, 16, 16, 16, 16, 16,
839
 16, 16, 16, 16, 16, 16, 16, 16,
840
 16, 16, 16, 16, 16, 16, 16, 16,
841
 16, 16, 16, 16, 16, 16, 16, 16,
842
 16, 16, 16, 16, 16, 16, 16, 16,
843
 16, 16, 16, 16, 16, 16, 16, 16,
844
 16, 16, 16, 16, 16, 16, 16, 16,
845
 16, 16, 16, 16, 16, 16, 16, 16,
846
 16, 16, 16, 16, 16, 16, 16, 16,
847
 16, 16, 16, 16, 16, 16, 16, 16,
848
 16, 16, 16, 16, 16, 16, 16, 16,
849
 16, 16, 16, 16, 16, 16, 16, 16,
850
 16, 16, 16, 16, 16, 16, 16, 16,
851
 16, 16, 16, 16, 16, 16, 16, 16,
852
 16, 16, 16, 16, 16, 16, 16, 16,
853
 16, 16, 16, 16, 16, 16, 16, 16,
854
 16, 16, 16, 16, 16, 16, 16, 16,
855
 16, 16, 16, 16, 16, 16, 16, 16,
856
 16, 16, 16, 16, 16, 16, 16, 16,
857
 16, 16, 16, 16, 16, 16, 16, 16,
858
 16, 16, 16, 16, 16, 16, 16, 16,
859
 16, 16, 16, 16, 16, 16, 16, 16,
860
 16, 16, 16, 16, 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, 17, 17, 17, 17, 17, 17, 17,
867
 17, 17, 17, 17, 17, 17, 17, 17,
868
 17, 17, 17, 17, 17, 17, 17, 17,
869
 17, 17, 17, 17, 17, 17, 17, 17,
870
 17, 17, 17, 17, 17, 17, 17, 17,
871
 17, 17, 17, 17, 17, 17, 17, 17,
872
 17, 17, 17, 17, 17, 17, 17, 17,
873
 17, 17, 17, 17, 17, 17, 17, 17,
874
 17, 17, 17, 17, 17, 17, 17, 17,
875
 17, 17, 17, 17, 17, 17, 17, 17,
876
 17, 17, 17, 17, 17, 17, 17, 17,
877
 17, 17, 17, 17, 17, 17, 17, 17,
878
 17, 17, 17, 17, 17, 17, 17, 17,
879
 17, 17, 17, 17, 17, 17, 17, 17,
880
 17, 17, 17, 17, 17, 17, 17, 17,
881
 17, 17, 17, 17, 17, 17, 17, 17,
882
 17, 17, 17, 17, 17, 17, 17, 17,
883
 17, 17, 17, 17, 17, 17, 17, 17,
884
 17, 17, 17, 17, 17, 17, 17, 17,
885
 17, 17, 17, 17, 17, 17, 17, 17,
886
 17, 17, 17, 17, 17, 17, 17, 17,
887
 17, 17, 17, 17, 17, 17, 17, 17,
888
 17, 17, 17, 17, 17, 17, 17, 17,
889
 17, 17, 17, 17, 17, 17, 17, 17,
890
 17, 17, 17, 17, 17, 17, 17, 17,
891
 17, 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,  8,
915
};
916

    
917
static const UINT8 table0_mvx[1099] = {
918
 32, 32, 31, 32, 33, 31, 33, 31,
919
 33, 32, 34, 32, 30, 32, 31, 34,
920
 35, 32, 34, 33, 29, 33, 30, 30,
921
 31, 31, 35, 29, 33, 35, 33, 34,
922
 31, 29, 30, 34, 30, 36, 28, 32,
923
 34, 37, 30, 27, 32, 25, 39, 32,
924
 34, 32, 35, 35, 35, 31, 35, 29,
925
 32, 29, 30, 29, 37, 27, 36, 38,
926
 37, 33, 32, 31, 29, 31, 28, 36,
927
 33, 30, 34, 33, 33, 28, 27, 25,
928
 31, 26, 39, 32, 32, 31, 33, 39,
929
 31, 38, 28, 36, 21, 23, 43, 36,
930
 34, 41, 30, 25, 28, 31, 30, 34,
931
 38, 35, 61, 34, 28, 30, 37, 37,
932
 35, 27, 36,  3, 59, 38, 37, 32,
933
 31, 29, 26, 33, 37, 33, 27, 27,
934
 35, 34, 34, 40, 42, 33, 32, 29,
935
  4,  5, 28, 24, 25, 35, 39, 38,
936
 32, 23, 27, 32, 30, 35, 26, 34,
937
 60, 36, 29, 22, 26, 41,  7, 30,
938
 38, 30, 36, 29, 30, 41, 26, 25,
939
 32, 34, 24, 39,  1, 25, 39, 32,
940
 28, 29, 32, 38, 26, 36, 28, 63,
941
 28, 39, 23, 21, 26, 35, 31, 35,
942
 57, 31, 29, 29, 28, 30, 27, 35,
943
  2, 38, 40, 34, 37, 29, 38, 43,
944
 26, 32, 33, 42, 24, 40, 28, 32,
945
 32, 32, 36, 32, 43, 25, 21, 31,
946
 30, 31, 41, 29, 33, 37, 26, 37,
947
 27, 59, 23, 33, 35, 31, 31, 37,
948
 38, 39, 32, 23, 32, 27, 37, 36,
949
 31, 40, 25, 27, 38, 31, 36, 28,
950
 31, 36, 25, 45,  3, 34, 38, 39,
951
 40, 38, 30, 32, 19, 24, 25, 26,
952
 45, 20, 24, 33, 33, 31, 41, 34,
953
 39, 47, 40, 58, 59, 41, 33,  3,
954
 17, 61, 42, 30, 26, 29, 36, 61,
955
 33, 37, 62, 28, 25, 38, 25, 38,
956
 17, 23, 34, 33, 21, 33, 49, 27,
957
 32, 23, 27, 22, 24, 22, 39, 43,
958
 27, 37,  6, 42, 47, 26, 30, 31,
959
 41, 39, 33, 22, 45, 36, 32, 45,
960
 19, 22, 30,  5,  5, 17, 29, 22,
961
 31, 31, 43, 37, 27, 32, 32, 32,
962
 33, 34, 43, 35, 29, 26, 22, 32,
963
 19, 32, 25, 31, 41, 49, 28, 34,
964
 28, 39, 34, 19, 37, 38, 29, 21,
965
 36, 42, 24, 48, 16, 28, 49, 22,
966
 34, 31, 38, 39, 44, 11, 35, 30,
967
 33, 33, 23, 28, 33, 46, 15, 13,
968
 24, 41, 24, 34, 34, 30, 26, 24,
969
 14, 60, 21, 29, 39, 23, 35, 37,
970
 63, 45, 33, 34, 47, 41, 22, 42,
971
 35, 35, 23, 32, 35, 43, 32,  7,
972
 31, 41, 20, 31, 16, 13, 63, 25,
973
 30, 32, 35, 30, 30, 31, 42, 47,
974
 39, 38, 40, 40, 51, 55, 56, 18,
975
 21, 39, 39, 33, 17, 41, 23, 24,
976
 43, 25, 31, 20, 19, 45,  1, 34,
977
 31, 22, 35, 15, 46, 46, 35, 31,
978
 28, 29, 29, 23, 41, 27, 14, 53,
979
 53, 27, 24, 32, 57, 32, 17, 42,
980
 37, 29, 33,  1, 25, 32, 32, 63,
981
 26, 40, 44, 36, 31, 39, 20, 20,
982
 44, 23, 33, 34, 35, 33, 33, 28,
983
 41, 23, 41, 41, 29, 25, 26, 49,
984
 29, 24, 37, 49, 50, 51, 51, 26,
985
 39, 25, 26, 15, 39, 18, 42, 17,
986
  4, 31, 32, 32, 60,  1, 42, 32,
987
  0, 12, 19, 35, 21, 41, 17, 26,
988
 20, 45, 46, 32, 37, 22, 47, 29,
989
 31, 27, 29, 30, 21, 33, 35, 18,
990
 25, 33, 50, 51, 42,  2, 15, 51,
991
 53, 33, 25, 29, 55, 37, 38, 33,
992
 38, 59, 38, 33, 39, 13, 32, 40,
993
 61, 61, 32,  9, 44,  3, 31, 29,
994
 25, 31, 27, 23,  9, 25,  9, 29,
995
 20, 30, 30, 42, 18, 28, 25, 28,
996
 28, 21, 29, 43, 29, 43, 26, 44,
997
 44, 21, 38, 21, 24, 45, 45, 35,
998
 39, 22, 35, 36, 34, 34, 45, 34,
999
 29, 31, 46, 25, 46, 16, 17, 31,
1000
 20, 32, 47, 47, 47, 32, 49, 49,
1001
 49, 31,  1, 27, 28, 39, 39, 21,
1002
 36, 23, 51,  2, 40, 51, 32, 53,
1003
 24, 30, 24, 30, 21, 40, 57, 57,
1004
 31, 41, 58, 32, 12,  4, 32, 34,
1005
 59, 31, 32, 13,  9, 35, 26, 35,
1006
 37, 61, 37, 63, 26, 29, 41, 38,
1007
 23, 20, 41, 26, 41, 42, 42, 42,
1008
 26, 26, 26, 26,  1, 26, 37, 37,
1009
 37, 23, 34, 42, 27, 43, 34, 27,
1010
 31, 24, 33, 16,  3, 31, 24, 33,
1011
 24,  4, 44, 44, 11, 44, 31, 13,
1012
 13, 44, 45, 13, 25, 22, 38, 26,
1013
 38, 38, 39, 32, 30, 39, 30, 22,
1014
 32, 26, 30, 47, 47, 47, 19, 47,
1015
 30, 31, 35,  8, 23, 47, 47, 27,
1016
 35, 47, 31, 48, 35, 19, 36, 49,
1017
 49, 33, 31, 39, 27, 39, 49, 49,
1018
 50, 50, 50, 39, 31, 51, 51, 39,
1019
 28, 33, 33, 21, 40, 31, 52, 53,
1020
 40, 53,  9, 33, 31, 53, 54, 54,
1021
 54, 55, 55, 34, 15, 56, 25, 56,
1022
 21, 21, 40, 40, 25, 40, 58, 36,
1023
  5, 41, 41, 12, 60, 41, 41, 37,
1024
 22, 61, 18, 29, 29, 30, 61, 30,
1025
 61, 62, 62, 30, 30, 63, 18, 13,
1026
 30, 23, 19, 20, 20, 41, 13,  2,
1027
  5,  5,  1,  5, 32,  6, 32, 35,
1028
 20, 35, 27, 35, 35, 36, 36, 13,
1029
 36, 41, 41, 41,  3, 30, 42, 27,
1030
 20, 30, 27, 28, 30, 21, 33, 33,
1031
 14, 24, 30, 42, 24, 33, 25, 42,
1032
 43, 14, 43, 43, 14, 43,  7, 36,
1033
 37, 37, 37, 37,  7, 14, 25, 43,
1034
 43, 44, 15, 37,  7,  7,  3,  1,
1035
  8, 15, 15,  8, 44, 44, 44, 45,
1036
 45, 45, 45,  8,  8, 45, 21, 45,
1037
 28, 28, 28, 21, 28, 28, 22, 37,
1038
 46, 46, 37,  8, 29, 37, 29, 22,
1039
 46, 37, 22, 29, 47, 47, 38, 38,
1040
 16, 38, 38, 33, 38, 22, 47, 47,
1041
 29, 25, 16,  0, 48,  1, 34, 48,
1042
 48, 34, 25, 26, 26, 49, 49, 26,
1043
  1, 49,  4, 26,  4, 49,  1,  9,
1044
 49, 49, 49, 10, 49, 17, 38, 17,
1045
 17, 50, 38, 50, 50, 22, 38, 51,
1046
 38, 38, 51, 39, 39, 18, 22, 39,
1047
 51, 22, 52, 52, 52, 39, 53, 53,
1048
 10, 23, 18, 29, 10, 53, 29, 54,
1049
 11, 54, 11, 11, 55,  1, 18, 55,
1050
 55, 55, 55, 55, 55, 29, 34, 18,
1051
 29, 56, 56, 34, 57, 34, 34, 29,
1052
 29, 57, 57, 35, 35, 35, 35, 35,
1053
 39, 35, 59, 59, 18, 59, 39, 30,
1054
 18, 40, 60, 60, 61, 30, 18, 61,
1055
 61, 19, 19,
1056
};
1057

    
1058
static const UINT8 table0_mvy[1099] = {
1059
 32, 31, 32, 33, 32, 31, 31, 33,
1060
 33, 34, 32, 30, 32, 35, 34, 31,
1061
 32, 29, 33, 30, 32, 34, 33, 31,
1062
 30, 35, 31, 31, 29, 33, 35, 30,
1063
 29, 33, 34, 34, 30, 32, 32, 36,
1064
 29, 32, 35, 32, 28, 32, 32, 27,
1065
 35, 37, 34, 29, 30, 36, 35, 34,
1066
 25, 30, 29, 35, 33, 31, 31, 32,
1067
 31, 28, 39, 28, 29, 37, 31, 33,
1068
 27, 36, 28, 36, 37, 33, 33, 31,
1069
 27, 32, 31, 38, 26, 25, 25, 33,
1070
 39, 31, 34, 30, 32, 32, 32, 34,
1071
 36, 32, 28, 33, 30, 38, 37, 27,
1072
 33, 28, 32, 37, 35, 38, 29, 34,
1073
 27, 29, 29, 32, 32, 34, 35,  3,
1074
 26, 36, 31, 38, 30, 26, 35, 34,
1075
 37, 26, 25, 32, 32, 39, 23, 37,
1076
 32, 32, 29, 32, 29, 36, 29, 30,
1077
 41, 31, 30, 21, 39, 25, 34, 38,
1078
 32, 35, 39, 32, 33, 33, 32, 27,
1079
 29, 25, 28, 27, 26, 31, 30, 35,
1080
 24, 24, 31, 34, 32, 30, 35, 40,
1081
 28, 38,  5, 35, 29, 36, 36, 32,
1082
 38, 30, 33, 31, 35, 26, 23, 38,
1083
 32, 41, 28, 25, 37, 40, 37, 39,
1084
 32, 36, 33, 39, 25, 26, 28, 31,
1085
 28, 42, 23, 31, 33, 31, 39,  1,
1086
 59, 22, 27,  4, 33, 34, 33, 24,
1087
 41,  3, 35, 41, 41, 28, 36, 36,
1088
 28, 33, 35, 21, 23, 21, 22, 37,
1089
 27, 27, 43, 29, 60, 39, 27, 25,
1090
 59, 34, 27, 27, 26, 40, 37, 27,
1091
 61, 26, 39, 33, 31, 22, 37, 25,
1092
 30, 25, 24, 61, 31, 34, 25, 38,
1093
 32, 32, 30,  3, 61, 43, 29, 23,
1094
 28, 32, 28, 32, 31, 34,  5, 33,
1095
 32, 33, 33, 42, 37, 23, 38, 31,
1096
 40, 26, 32, 26, 37, 38, 36, 24,
1097
 29, 30, 20, 22, 29, 24, 32, 41,
1098
  2, 34, 25, 33, 29, 31, 39, 35,
1099
 36, 24, 32, 30, 33, 27, 44, 60,
1100
 30, 36, 19, 34, 31, 24, 16, 35,
1101
 32, 38, 21, 33, 31, 31, 21, 35,
1102
  5, 17, 29, 38, 38, 18, 58, 19,
1103
 43, 41, 30, 41, 43, 39, 29,  7,
1104
 29, 17, 28, 19, 28, 31, 25, 19,
1105
 40, 26, 21, 33, 39, 23, 40, 30,
1106
 39, 34, 35, 32, 32, 24, 33, 30,
1107
 40, 47, 39, 37, 32, 33, 24, 23,
1108
 45, 47, 27, 23, 42, 32, 32, 33,
1109
 36, 37, 37, 17, 18, 22, 40, 38,
1110
 32, 31, 35, 24, 17, 25, 17, 23,
1111
 33, 34, 51, 42, 31, 36, 36, 29,
1112
 21, 22, 37, 44, 43, 25, 47, 33,
1113
 45, 27, 31, 58, 31, 32, 31, 38,
1114
 43, 20, 47, 45, 54,  1, 26, 34,
1115
 38, 14, 22, 24, 33, 34, 32, 32,
1116
 37, 21, 23, 49, 35, 23, 28, 39,
1117
 39, 23, 55, 33, 30, 30, 63, 16,
1118
 42, 28, 13, 33, 33, 35, 19, 46,
1119
 43, 17, 19, 36, 39, 24, 31, 32,
1120
 33, 26, 28, 62, 33, 63, 33, 39,
1121
 19, 49, 17, 31, 43, 13, 15, 29,
1122
 25, 35, 33, 23, 49, 41, 28, 29,
1123
 34, 38,  7, 61, 11, 50, 13, 41,
1124
 19, 47, 25, 26, 15, 42, 41, 29,
1125
 45, 27, 17, 35, 32, 29, 32, 24,
1126
 13, 26, 26, 31, 24, 33, 28, 30,
1127
 31, 11, 45, 46, 33, 33, 35, 57,
1128
 32, 32, 35, 45, 34, 11, 37, 42,
1129
 39, 37, 31, 49, 21, 27, 29, 47,
1130
 53, 40, 51, 16, 26,  1, 40, 30,
1131
 41, 44, 34, 25, 27, 31, 35, 35,
1132
 31, 15, 49,  1, 35, 40,  5, 58,
1133
 21, 29, 22, 59, 45, 31,  9, 26,
1134
  9, 29, 11, 32, 30,  3, 13, 20,
1135
 18, 20, 11,  3, 29, 40, 31, 53,
1136
 30, 17, 20, 37, 31, 42, 47, 47,
1137
 54, 38,  9, 34, 13, 37, 21, 25,
1138
 27, 43, 42, 45, 40, 25, 27, 46,
1139
 22, 25, 53, 20,  2, 14, 39, 15,
1140
 22, 44, 34, 21, 38, 33, 27, 48,
1141
 34, 52, 35, 47, 49, 54,  2, 13,
1142
 23, 52, 29, 45, 22, 49, 54, 21,
1143
 40, 42, 31, 30, 29, 34,  0, 25,
1144
 23, 51, 24, 59, 28, 38, 29, 31,
1145
  2, 13, 31,  8, 31, 33, 12, 45,
1146
 41,  7, 14, 30, 25, 18, 43, 20,
1147
 43, 35, 44,  1, 49, 42, 42, 18,
1148
 41, 38, 41, 44, 53, 11, 20, 25,
1149
 45, 46, 47, 48, 39, 52, 46, 49,
1150
 63, 55, 44, 38, 13, 13, 57, 22,
1151
 51, 16, 12, 28, 35, 57, 25, 20,
1152
 26, 28, 28, 29, 32, 31, 62, 34,
1153
 35, 35, 19, 49, 48, 39, 40, 18,
1154
 43, 46, 11,  6, 48, 19, 49, 41,
1155
 10, 23, 58, 17, 21, 23, 34, 30,
1156
 60,  0, 44, 34, 26, 37, 46, 43,
1157
 49, 59,  4, 34, 59, 37, 22, 25,
1158
 28, 46,  6, 40, 59, 42, 36, 61,
1159
 28, 30, 31, 43, 10, 22, 23, 47,
1160
 20, 52, 55, 36, 25, 16,  1, 11,
1161
 27, 29,  5, 63, 18, 41, 31, 34,
1162
 38,  1,  5, 13, 28, 31, 17, 38,
1163
 39, 41, 36, 37, 22, 39, 33, 43,
1164
 43, 15, 17, 49, 30, 21, 22, 20,
1165
 10, 17, 25, 54, 57,  3, 34,  8,
1166
 36, 25, 31, 14, 15, 19, 29, 25,
1167
 18, 39, 53, 22, 27, 20, 29, 33,
1168
 41, 42, 35, 62, 50, 29, 53, 50,
1169
 35, 55, 42, 61, 63,  4,  7, 42,
1170
 21, 46, 47, 49, 27, 46, 17, 55,
1171
 41, 50, 63,  4, 56, 18,  8, 10,
1172
 18, 51, 63, 36, 55, 18,  5, 55,
1173
  9, 29, 17, 21, 30, 27,  1, 59,
1174
  7, 11, 12, 15,  5, 42, 24, 41,
1175
 43,  7, 27, 22, 25, 31, 30, 37,
1176
 22, 39, 53, 29, 36, 37, 48,  0,
1177
  5, 13, 17, 31, 32, 26, 46, 28,
1178
 44, 45, 46, 53, 49, 51,  3, 41,
1179
  3, 22, 42, 33,  5, 45,  7, 22,
1180
 40, 53, 24, 14, 25, 27, 10, 12,
1181
 34, 16, 17, 53, 20, 26, 39, 45,
1182
 18, 45, 35, 33, 31, 49,  4, 39,
1183
 42, 11, 51,  5, 13, 26, 27, 17,
1184
 52, 30,  0, 22, 12, 34, 62, 36,
1185
 38, 41, 47, 30, 63, 38, 41, 43,
1186
 59, 33, 45, 37, 38, 40, 47, 24,
1187
 48, 49, 30,  1, 10, 22, 49, 15,
1188
 39, 59, 31, 32, 33, 18, 13, 15,
1189
 31, 21, 27, 44, 42, 39, 46, 17,
1190
 26, 32, 30, 31,  0, 30, 34,  9,
1191
 12, 13, 25, 31, 32, 55, 43, 35,
1192
 61, 33, 35, 46, 25, 47, 48, 62,
1193
 63, 38, 61,  1,  2,  5,  7,  9,
1194
 46, 10, 34, 35, 36, 55, 51,  7,
1195
 40, 23, 34, 37,  5, 13, 42, 18,
1196
 25, 27, 28,
1197
};
1198

    
1199
/* motion vector table 1 */
1200
static const UINT16 table1_mv_code[1100] = {
1201
 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c,
1202
 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041,
1203
 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069,
1204
 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8,
1205
 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8,
1206
 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a,
1207
 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b,
1208
 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d,
1209
 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f,
1210
 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202,
1211
 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f,
1212
 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8,
1213
 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326,
1214
 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372,
1215
 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a,
1216
 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325,
1217
 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428,
1218
 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c,
1219
 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557,
1220
 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a,
1221
 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616,
1222
 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b,
1223
 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8,
1224
 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b,
1225
 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a,
1226
 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581,
1227
 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e,
1228
 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2,
1229
 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802,
1230
 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f,
1231
 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a,
1232
 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37,
1233
 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f,
1234
 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99,
1235
 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8,
1236
 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26,
1237
 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0,
1238
 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93,
1239
 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0,
1240
 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93,
1241
 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9,
1242
 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844,
1243
 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e,
1244
 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5,
1245
 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf,
1246
 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9,
1247
 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30,
1248
 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e,
1249
 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41,
1250
 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98,
1251
 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf,
1252
 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded,
1253
 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032,
1254
 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077,
1255
 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9,
1256
 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404,
1257
 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414,
1258
 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468,
1259
 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488,
1260
 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba,
1261
 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa,
1262
 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c,
1263
 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e,
1264
 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b,
1265
 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4,
1266
 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843,
1267
 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862,
1268
 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a,
1269
 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e,
1270
 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958,
1271
 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3,
1272
 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63,
1273
 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b,
1274
 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa,
1275
 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2,
1276
 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86,
1277
 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007,
1278
 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
1279
 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086,
1280
 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f,
1281
 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358,
1282
 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360,
1283
 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620,
1284
 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628,
1285
 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770,
1286
 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876,
1287
 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e,
1288
 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972,
1289
 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a,
1290
 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6,
1291
 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c,
1292
 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54,
1293
 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034,
1294
 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c,
1295
 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba,
1296
 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2,
1297
 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0,
1298
 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8,
1299
 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0,
1300
 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898,
1301
 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0,
1302
 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8,
1303
 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934,
1304
 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
1305
 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964,
1306
 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40,
1307
 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48,
1308
 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50,
1309
 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26,
1310
 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e,
1311
 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014,
1312
 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024,
1313
 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c,
1314
 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034,
1315
 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de,
1316
 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e,
1317
 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226,
1318
 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e,
1319
 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378,
1320
 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0,
1321
 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8,
1322
 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0,
1323
 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8,
1324
 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
1325
 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
1326
 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
1327
 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
1328
 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8,
1329
 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0,
1330
 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8,
1331
 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000,
1332
 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
1333
 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182,
1334
 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba,
1335
 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462,
1336
 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
1337
 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
1338
 0x2473, 0x26a2, 0x26a3, 0x000b,
1339
};
1340

    
1341
static const UINT8 table1_mv_bits[1100] = {
1342
  2,  4,  4,  4,  5,  5,  5,  5,
1343
  6,  6,  7,  7,  7,  7,  7,  8,
1344
  8,  8,  8,  8,  8,  8,  8,  8,
1345
  8,  8,  8,  8,  8,  8,  8,  8,
1346
  8,  9,  9,  9,  9,  9,  9,  9,
1347
  9,  9,  9,  9,  9,  9,  9,  9,
1348
  9,  9,  9,  9,  9, 10, 10, 10,
1349
 10, 10, 10, 10, 10, 10, 10, 10,
1350
 10, 10, 10, 10, 10, 10, 10, 10,
1351
 10, 10, 10, 10, 10, 10, 10, 10,
1352
 10, 10, 10, 10, 10, 10, 10, 10,
1353
 10, 10, 10, 10, 10, 10, 10, 10,
1354
 10, 10, 10, 10, 10, 10, 10, 10,
1355
 10, 10, 10, 10, 10, 10, 10, 10,
1356
 10, 10, 10, 11, 11, 11, 11, 11,
1357
 11, 11, 11, 11, 11, 11, 11, 11,
1358
 11, 11, 11, 11, 11, 11, 11, 11,
1359
 11, 11, 11, 11, 11, 11, 11, 11,
1360
 11, 11, 11, 11, 11, 11, 11, 11,
1361
 11, 11, 11, 11, 11, 11, 11, 11,
1362
 11, 11, 11, 11, 11, 11, 11, 11,
1363
 11, 11, 11, 11, 11, 11, 11, 11,
1364
 11, 11, 11, 11, 11, 11, 11, 11,
1365
 11, 11, 11, 11, 11, 11, 11, 11,
1366
 11, 11, 11, 12, 12, 12, 12, 12,
1367
 12, 12, 12, 12, 12, 12, 12, 12,
1368
 12, 12, 12, 12, 12, 12, 12, 12,
1369
 12, 12, 12, 12, 12, 12, 12, 12,
1370
 12, 12, 12, 12, 12, 12, 12, 12,
1371
 12, 12, 12, 12, 12, 12, 12, 12,
1372
 12, 12, 12, 12, 12, 12, 12, 12,
1373
 12, 12, 12, 12, 12, 12, 12, 12,
1374
 12, 12, 12, 12, 12, 12, 12, 12,
1375
 12, 12, 12, 12, 12, 12, 12, 12,
1376
 12, 12, 12, 12, 12, 12, 12, 12,
1377
 12, 12, 12, 12, 12, 12, 12, 12,
1378
 12, 12, 12, 12, 12, 12, 12, 12,
1379
 12, 12, 12, 12, 12, 12, 12, 12,
1380
 12, 12, 12, 12, 12, 12, 12, 12,
1381
 12, 12, 12, 12, 12, 12, 12, 12,
1382
 12, 12, 12, 12, 12, 12, 12, 12,
1383
 12, 12, 13, 13, 13, 13, 13, 13,
1384
 13, 13, 13, 13, 13, 13, 13, 13,
1385
 13, 13, 13, 13, 13, 13, 13, 13,
1386
 13, 13, 13, 13, 13, 13, 13, 13,
1387
 13, 13, 13, 13, 13, 13, 13, 13,
1388
 13, 13, 13, 13, 13, 13, 13, 13,
1389
 13, 13, 13, 13, 13, 13, 13, 13,
1390
 13, 13, 13, 13, 13, 13, 13, 13,
1391
 13, 13, 13, 13, 13, 13, 13, 13,
1392
 13, 13, 13, 13, 13, 13, 13, 13,
1393
 13, 13, 13, 13, 13, 13, 13, 13,
1394
 13, 13, 13, 13, 13, 13, 13, 13,
1395
 13, 13, 13, 13, 13, 13, 13, 13,
1396
 13, 13, 13, 13, 13, 13, 13, 13,
1397
 13, 13, 13, 13, 13, 13, 13, 13,
1398
 13, 13, 13, 13, 13, 13, 13, 13,
1399
 13, 13, 13, 13, 13, 13, 13, 13,
1400
 13, 13, 13, 13, 13, 13, 13, 13,
1401
 13, 13, 13, 13, 13, 13, 13, 13,
1402
 13, 13, 13, 13, 13, 13, 13, 13,
1403
 13, 13, 13, 13, 13, 13, 13, 13,
1404
 13, 13, 13, 13, 13, 13, 13, 13,
1405
 13, 13, 13, 13, 13, 13, 13, 13,
1406
 13, 13, 13, 13, 13, 13, 13, 13,
1407
 13, 13, 13, 13, 13, 13, 13, 13,
1408
 13, 13, 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, 14,
1419
 14, 14, 14, 14, 14, 14, 14, 14,
1420
 14, 14, 14, 14, 14, 14, 14, 14,
1421
 14, 14, 14, 14, 14, 14, 14, 14,
1422
 14, 14, 14, 14, 14, 14, 14, 14,
1423
 14, 14, 14, 14, 14, 14, 14, 14,
1424
 14, 14, 14, 14, 14, 14, 14, 14,
1425
 14, 14, 14, 14, 14, 14, 14, 14,
1426
 14, 14, 14, 14, 14, 14, 14, 14,
1427
 14, 14, 14, 14, 14, 14, 14, 14,
1428
 14, 14, 14, 14, 14, 14, 14, 14,
1429
 14, 14, 14, 14, 14, 14, 14, 14,
1430
 14, 14, 14, 14, 14, 14, 14, 14,
1431
 14, 14, 14, 14, 14, 14, 14, 14,
1432
 14, 14, 14, 14, 14, 14, 14, 14,
1433
 14, 14, 14, 14, 14, 14, 14, 14,
1434
 14, 14, 14, 14, 14, 14, 14, 14,
1435
 14, 14, 14, 14, 14, 14, 14, 14,
1436
 14, 14, 14, 14, 14, 14, 14, 14,
1437
 14, 14, 14, 14, 14, 14, 14, 14,
1438
 14, 14, 14, 14, 14, 14, 14, 14,
1439
 14, 14, 14, 14, 14, 14, 14, 14,
1440
 14, 14, 14, 14, 14, 14, 14, 14,
1441
 14, 14, 14, 14, 14, 14, 14, 14,
1442
 14, 14, 14, 14, 14, 14, 14, 14,
1443
 14, 14, 14, 14, 14, 14, 14, 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, 15,
1473
 15, 15, 15, 15, 15, 15, 15, 15,
1474
 15, 15, 15, 15, 15, 15, 15, 15,
1475
 15, 15, 15, 15, 15, 15, 15, 15,
1476
 15, 15, 15, 15, 15, 15, 15, 15,
1477
 15, 15, 15, 15, 15, 15, 15, 15,
1478
 15, 15, 15, 15, 15, 15, 15, 15,
1479
 15, 15, 15,  4,
1480
};
1481

    
1482
static const UINT8 table1_mvx[1099] = {
1483
 32, 31, 32, 31, 33, 32, 33, 33,
1484
 31, 34, 30, 32, 32, 34, 35, 32,
1485
 34, 33, 29, 30, 30, 32, 31, 31,
1486
 33, 35, 35, 33, 31, 29, 29, 33,
1487
 34, 30, 31, 28, 36, 30, 34, 32,
1488
 32, 37, 32, 32, 25, 27, 39, 32,
1489
 32, 32, 38, 35, 36, 32, 37, 61,
1490
 26, 32, 34, 35,  3, 35, 27, 28,
1491
 29, 34, 28, 37, 31, 36, 32, 27,
1492
 31, 30, 29, 39, 33, 29, 33, 35,
1493
 25, 25, 29, 33, 31, 31, 31, 33,
1494
 32, 30, 32, 32, 41, 39, 33, 36,
1495
 32, 28, 34, 36, 38, 24, 60, 31,
1496
 23, 28, 32, 33, 59, 32, 40, 30,
1497
  5, 34, 32, 38, 32, 30, 43,  4,
1498
 32, 32, 42, 31, 31, 32, 26, 38,
1499
 26, 22, 21, 37, 61, 63, 37, 31,
1500
 32, 33,  2,  1, 23, 33, 41, 27,
1501
 35, 30, 38, 23, 33,  3, 28, 34,
1502
 34, 27, 41, 29, 39, 35, 36, 29,
1503
 32, 27, 30, 32, 24, 61, 37, 26,
1504
 59, 25, 35, 27, 36, 37, 30, 31,
1505
 34, 40,  3, 28, 34, 39, 32, 31,
1506
 32, 30, 24, 28, 35, 36, 26, 32,
1507
 31, 33, 29, 33, 39, 25, 30, 24,
1508
 35, 59, 29, 34, 25, 30, 21, 35,
1509
 43, 40, 32, 29,  5, 28, 31, 62,
1510
 33, 33, 25, 31, 21, 31, 43, 31,
1511
 34, 33, 20, 40, 39, 31, 31, 57,
1512
 38, 32, 42, 33, 32, 31, 32, 29,
1513
 30, 44,  5, 31, 22, 34, 36, 17,
1514
 38, 58, 38, 35, 32, 60, 35, 24,
1515
 32, 38, 16, 45, 42, 32, 31, 29,
1516
  4, 30, 17, 40, 46, 48, 63, 32,
1517
 42, 19, 41, 22, 28, 36, 45, 33,
1518
 33, 32, 29,  7, 41, 42, 18, 33,
1519
 33, 32, 22, 37,  1, 26, 22, 23,
1520
 49, 28, 26, 27, 32, 33, 27, 23,
1521
 28, 36, 15,  6, 34, 27, 31, 26,
1522
 23,  2, 33, 32, 34, 41, 28, 32,
1523
 41,  0, 36, 38, 34, 31, 47, 32,
1524
 17, 31, 39, 33, 37, 51, 30, 47,
1525
 32, 50, 32, 19, 63, 30, 25, 27,
1526
 33, 62, 24, 31, 27, 30, 37, 31,
1527
 45, 32, 39, 20, 46, 47, 35, 19,
1528
 34,  1, 49, 21, 21, 14, 51, 26,
1529
 23, 31, 36, 35, 58, 29, 29, 21,
1530
 20, 42, 13, 28, 12, 40, 31, 33,
1531
 39, 60, 32, 44, 33, 31, 28, 37,
1532
 29, 32, 30, 49, 43, 28, 39, 25,
1533
 32, 48,  2, 15, 20, 25, 31, 28,
1534
 21, 24, 25, 15, 31, 17, 37, 43,
1535
 18, 32, 33, 24, 33, 36, 13, 33,
1536
 31, 39, 11, 31, 33, 32, 39, 37,
1537
 32, 32, 29, 17, 44, 46, 36, 35,
1538
 26, 37, 58, 32, 34, 38,  8, 38,
1539
 38, 22, 29, 25, 16, 35, 32, 35,
1540
 33, 43, 18, 46, 38, 50, 33, 18,
1541
 53, 60, 13, 32, 36, 33, 51, 36,
1542
 43, 45, 27, 42, 29, 24, 30, 25,
1543
 31, 52, 31, 35, 38,  9, 22, 34,
1544
  4, 17, 28, 55, 42, 25, 17, 20,
1545
 47, 34, 33, 16, 40, 25, 16, 30,
1546
 53, 29, 10, 11, 14, 26, 33,  4,
1547
 35, 44, 26, 16, 31, 26, 34, 38,
1548
 29, 31, 30, 24, 22, 61, 32,  9,
1549
 45, 34, 31, 19,  9, 31, 46, 31,
1550
 35, 54, 29, 57, 30, 50,  3, 31,
1551
 63, 34, 47, 41, 51, 18, 31, 14,
1552
 37, 38, 31, 24, 32, 31, 50, 33,
1553
 31, 54, 27,  9, 33, 23, 19, 32,
1554
 29, 29, 33, 28, 47, 49, 30, 47,
1555
 33, 27, 25, 54, 44, 45, 50, 58,
1556
 51, 48, 33, 59, 33, 34, 57, 13,
1557
 26, 33, 13, 48, 30, 11,  7, 56,
1558
 34, 55, 26,  0, 26, 35,  1, 51,
1559
 33, 53, 31, 45, 12, 29, 29, 51,
1560
 31, 48,  2,  6, 34, 30, 28, 33,
1561
 60, 40, 27, 46, 31,  9, 35, 29,
1562
 31, 39, 55, 46, 19, 37, 62, 34,
1563
 30, 16, 19, 49, 41, 41, 39, 37,
1564
 14,  5, 13, 35, 55, 30, 40, 40,
1565
 42,  8, 20, 25, 45, 35, 33, 36,
1566
 54, 38, 27, 37, 62, 40, 15, 59,
1567
 49, 31, 29, 34, 34, 39, 24, 29,
1568
 25, 29, 21, 29, 10, 61, 33, 49,
1569
 35, 34,  3, 38, 39, 29,  7, 41,
1570
  1, 35,  4, 23, 15, 23, 11, 37,
1571
 28, 35, 30, 30, 24,  1, 43, 56,
1572
  8, 34, 42, 24, 45, 30, 20, 23,
1573
  8, 38, 22, 33, 17, 52, 34, 22,
1574
 53, 43, 44,  1, 27, 31, 41, 43,
1575
 41, 30, 31, 36, 30,  5, 55, 31,
1576
 33, 30, 40, 23, 15, 29, 34, 34,
1577
 59, 34, 30, 11, 13, 38,  5,  0,
1578
 30, 42,  5, 30, 29, 34, 10, 44,
1579
 30, 63, 35, 12,  3, 26, 15, 17,
1580
 25, 34, 43, 39, 34, 56, 29, 23,
1581
 30, 12, 30, 10, 35,  9, 24, 58,
1582
 10, 12, 54, 33, 37, 20, 41, 35,
1583
 29, 18, 61, 30, 40, 24, 39, 53,
1584
 62, 26, 29, 33, 34, 53, 49, 21,
1585
 27, 11, 63, 20, 26, 23,  7, 13,
1586
  6, 47, 29, 30,  9, 51, 22, 34,
1587
 21, 25, 33, 56, 57, 30, 38, 51,
1588
 51, 38, 63, 28, 40, 35, 33, 18,
1589
 33, 33, 24, 58, 58, 34, 49, 29,
1590
 43,  4,  1,  4, 42, 35, 35, 30,
1591
 17,  5, 56, 61, 25, 37, 36, 55,
1592
 28, 35, 29, 50, 48, 52,  2, 42,
1593
 34, 40, 46, 46, 43, 35, 29, 48,
1594
 20, 29, 31, 41,  7, 30, 35, 19,
1595
 14, 21,  8, 39, 39, 40, 46, 55,
1596
 34,  6, 30, 34, 37, 25, 37, 33,
1597
 22, 44, 52, 17, 35, 29, 36, 35,
1598
 40, 37, 28, 30, 50, 14, 28, 55,
1599
  6, 23, 19, 14, 30,  3, 30, 28,
1600
 28, 61, 61, 47, 45, 48, 40, 40,
1601
 34, 34, 25, 30, 29, 35,  4, 26,
1602
 53, 50, 26, 41, 27, 59, 27, 38,
1603
 39,  3, 50, 43, 47, 23, 33, 55,
1604
 35, 21, 23, 35, 61, 33, 46, 52,
1605
 35, 34, 24, 30, 43, 16, 37, 21,
1606
  2, 24, 45, 34, 30, 55, 55,  1,
1607
 29, 29, 26, 28, 25, 31, 36, 22,
1608
 17, 30, 52,  2, 44, 44, 57, 26,
1609
 62, 41, 39, 57, 26, 46, 49, 11,
1610
 16, 19,  5, 59, 38, 39, 58, 38,
1611
 25, 49, 50, 22, 28, 59,  9, 59,
1612
  7, 28, 55, 17,  4, 35, 50, 21,
1613
 29, 44, 47, 18, 24, 19, 25, 42,
1614
 35,  3, 51, 35, 16, 35, 30, 63,
1615
 57, 39, 39, 25, 35, 38,  9, 16,
1616
 36, 45, 31, 60, 14, 34, 42, 24,
1617
  0, 37, 18, 61, 57, 37, 28, 53,
1618
 20, 46, 14, 47, 38, 38, 38,  9,
1619
 34, 39, 43, 17, 39, 59,  5, 27,
1620
  0, 12, 27,
1621
};
1622

    
1623
static const UINT8 table1_mvy[1099] = {
1624
 32, 32, 31, 31, 32, 33, 31, 33,
1625
 33, 32, 32, 30, 34, 31, 32, 29,
1626
 33, 30, 32, 33, 31, 35, 34, 30,
1627
 34, 31, 33, 29, 29, 31, 33, 35,
1628
 30, 30, 35, 32, 32, 34, 34, 28,
1629
 25, 32, 36, 27, 32, 32, 32, 37,
1630
 39,  3, 32, 30, 31, 26, 31, 32,
1631
 32, 38, 29, 29, 32, 34, 31, 31,
1632
 34, 35, 33, 33, 28, 33,  1, 33,
1633
 27, 29, 30, 31, 28, 29, 37, 35,
1634
 31, 33, 35, 27, 36, 37, 25, 25,
1635
 61, 35,  4,  5, 32, 33, 36, 30,
1636
 23, 30, 28, 34, 31, 32, 32, 39,
1637
 32, 34, 21, 39, 32, 59, 32, 28,
1638
 32, 36, 60, 33, 24, 36, 32, 32,
1639
 41,  2, 32, 38, 26, 22, 33, 30,
1640
 31, 32, 32, 30, 31, 32, 29,  3,
1641
 40, 38, 32, 32, 33, 26, 31, 34,
1642
 28, 38, 34, 31,  3, 31, 35, 38,
1643
 27, 35, 33, 28, 29, 27, 29, 27,
1644
 43, 29, 37, 63, 31, 33, 34, 30,
1645
 31, 30, 37, 30, 35, 35, 26, 41,
1646
 37, 31, 33, 28, 26, 30, 42, 24,
1647
  7, 27, 33, 29, 36, 28, 34, 57,
1648
 23, 41, 36, 23, 35, 34, 25, 30,
1649
 25, 33, 25, 25, 29, 24, 33, 39,
1650
 33, 33,  0, 37, 31, 36, 21, 32,
1651
 61, 24, 35, 61, 31,  5, 31, 59,
1652
 39, 21, 32, 30, 34, 22, 40, 32,
1653
 29, 16, 31,  5, 62,  2, 20, 39,
1654
 39, 32, 33,  1, 31, 24, 36, 32,
1655
 36, 32, 28, 26,  6, 31, 38, 34,
1656
 58, 35, 32, 33, 33, 17, 43, 26,
1657
 31, 40, 31, 34, 32, 32, 31, 19,
1658
 30, 32, 29, 33, 38, 38, 32, 59,
1659
 40, 18, 38, 32, 35, 34, 32, 17,
1660
  1, 15, 30, 28, 31, 28, 34, 29,
1661
 32, 27, 35, 27, 49, 22, 37, 34,
1662
 37, 26, 32, 32, 22, 28, 45, 29,
1663
 30, 31, 43, 46, 41, 30, 26, 13,
1664
 34, 32, 27, 38, 42, 42, 33, 47,
1665
 33, 60, 27, 42, 25, 32, 22, 32,
1666
 48, 32, 45, 33, 33, 41, 27, 25,
1667
 19, 31, 35, 19, 36, 42, 27, 17,
1668
 31, 44, 28, 33, 33, 31, 23, 31,
1669
 40, 33, 31, 34, 30, 32, 33, 36,
1670
 35, 47, 37, 41, 31, 23, 41, 29,
1671
 30, 35, 32, 25, 32, 28, 58,  2,
1672
 37, 33, 14, 33, 49, 20, 39, 36,
1673
 21,  9, 23, 33, 35, 24, 39, 37,
1674
 11, 33, 30, 31, 31, 28, 51, 40,
1675
 35, 29, 25, 33, 46, 35, 37, 30,
1676
 30,  8, 63, 28, 15, 40, 33, 45,
1677
 49, 25, 32,  4, 47, 51, 36, 39,
1678
 53, 10, 24, 29, 30, 31, 25, 40,
1679
 38, 38, 33, 56, 23, 27, 32, 37,
1680
 26, 29, 43, 36, 33, 24, 55, 43,
1681
  9, 29, 34, 34, 24, 33, 18, 33,
1682
 33, 30, 31, 50, 24, 60, 30, 39,
1683
 34, 30, 39, 28, 22, 38,  2, 26,
1684
 63, 32, 57, 21, 39, 33, 28, 18,
1685
 30, 34, 22, 33, 29, 41, 30, 34,
1686
 35, 21, 13, 34, 35, 39, 30, 46,
1687
 32, 42, 32, 31, 33, 26, 11, 33,
1688
 22, 31, 25, 31, 53, 27, 43, 25,
1689
 40, 50, 21, 36, 38, 30, 12, 31,
1690
 34, 20, 15, 29, 32, 62, 30, 13,
1691
 17, 32, 19, 31, 20, 31, 30,  7,
1692
  1, 17, 34, 37, 31, 31, 44, 34,
1693
 26, 40, 16, 37, 52, 48, 30, 20,
1694
 18, 33, 38, 29,  7, 25, 30, 54,
1695
 45, 47, 46, 41, 29, 29, 16, 30,
1696
 14, 26, 38, 34, 34, 29, 34, 30,
1697
 29, 30, 57, 30,  4, 46, 33, 29,
1698
 39, 44, 30, 31, 50, 33, 31, 32,
1699
 19, 32, 40, 31, 37, 47,  1, 35,
1700
 16, 31,  0, 35, 33,  1, 17, 34,
1701
  9, 34, 33, 31, 49, 43, 42, 51,
1702
 34, 29, 23, 29, 14, 30, 45, 49,
1703
 11, 24, 31, 28, 35, 41, 30, 44,
1704
 18, 29, 34, 35, 36, 25, 26, 21,
1705
 31, 30, 34, 19, 34, 44, 36, 38,
1706
 25, 31, 28, 23, 37,  3, 55, 41,
1707
 30, 22, 41, 24, 33, 26, 35, 35,
1708
 30, 55, 51, 47, 48, 38, 24, 15,
1709
 21, 50, 25, 46, 30, 29, 10, 34,
1710
 42, 45, 29, 42, 22,  3, 33, 27,
1711
 34,  1, 34, 28, 34, 36, 35, 23,
1712
 23, 13, 58,  3, 26, 63, 25, 31,
1713
 34, 61, 38, 39, 25, 61, 29, 37,
1714
 30, 41, 26, 48, 28, 33, 50, 35,
1715
 30, 37, 29, 29, 40,  6, 39, 28,
1716
 28, 19,  8, 22, 45, 34, 35, 10,
1717
 58, 17, 37, 39, 30, 18, 54, 14,
1718
 29, 16, 59, 30, 35, 23, 35, 30,
1719
 47, 36, 29, 55, 20, 12, 31, 35,
1720
 14, 29, 18, 34, 34, 24, 29, 26,
1721
 22,  2, 27, 23,  8, 30, 55, 38,
1722
 60, 31,  4, 34, 49, 34, 27, 34,
1723
 33, 30, 31, 54, 42, 35, 38, 46,
1724
 44, 26, 27,  9, 39, 25, 21, 29,
1725
 28, 42, 13,  0,  5, 34, 37, 28,
1726
 24, 29, 63, 26, 22, 27, 29, 25,
1727
 33, 25, 61,  0, 35, 25, 36, 15,
1728
 27, 40, 53, 33,  3, 10, 16, 37,
1729
 38, 18, 30, 46, 27,  9,  6, 29,
1730
 62,  8, 42, 28, 29,  3, 25, 16,
1731
 26, 29, 35, 28, 27, 51, 61, 48,
1732
 37,  9, 34,  7, 49, 45, 20, 29,
1733
 21,  5,  5, 29, 28, 34, 29, 24,
1734
 10, 24, 35, 36, 38, 55, 11, 36,
1735
 38, 53, 54, 26, 30, 49, 20, 27,
1736
 30, 39, 33, 41, 49, 22, 38, 38,
1737
  4, 30,  8,  9,  3, 24, 22, 50,
1738
 37, 36, 31, 27,  2,  9, 42, 63,
1739
 25, 19, 44,  1, 28, 28, 48, 30,
1740
 34, 41, 41, 38, 12, 27, 15,  0,
1741
 16, 34, 35, 38, 28, 29, 40, 42,
1742
 51, 52, 45, 54, 59, 59, 42, 44,
1743
 37, 26, 46, 24, 15, 39, 22, 46,
1744
 19, 35, 38, 17, 37, 23, 52, 55,
1745
 50, 37, 26, 11, 37, 12, 24, 30,
1746
 16, 13, 22, 13, 36, 35, 40, 41,
1747
 34, 41, 26, 53, 51,  5, 21, 30,
1748
  2, 63, 41, 20,  1, 56, 21, 24,
1749
 25,  5, 28, 35, 26, 28, 30, 18,
1750
 29, 23, 40, 34, 20, 42, 39, 34,
1751
 28, 61, 38, 27, 62,  9, 36, 17,
1752
  9, 49, 24, 25, 54, 34, 39, 37,
1753
  3,  1, 25, 38, 38, 44, 35, 36,
1754
 12, 60, 36, 38, 40, 25, 43, 39,
1755
 53, 28, 39, 57, 46, 10, 52, 27,
1756
 35, 42, 45, 59, 15, 60, 38, 24,
1757
 23, 39, 12, 29, 24,  0, 20, 16,
1758
 28, 43, 35, 28,  1, 49,  4, 21,
1759
 42, 39, 29,  3, 44, 21, 53, 55,
1760
 11,  5,  3, 39, 53, 28, 25, 19,
1761
 34, 28, 21,
1762
};
1763

    
1764
/* motion vector table */
1765
typedef struct MVTable {
1766
    int n;
1767
    const UINT16 *table_mv_code;
1768
    const UINT8 *table_mv_bits;
1769
    const UINT8 *table_mvx;
1770
    const UINT8 *table_mvy;
1771
    UINT16 *table_mv_index; /* encoding: convert mv to index in table_mv */
1772
    VLC vlc;                /* decoding: vlc */
1773
} MVTable;
1774

    
1775
static MVTable mv_tables[2] = {
1776
    {
1777
        1099,
1778
        table0_mv_code,
1779
        table0_mv_bits,
1780
        table0_mvx,
1781
        table0_mvy,
1782
    },
1783
    {
1784
        1099,
1785
        table1_mv_code,
1786
        table1_mv_bits,
1787
        table1_mvx,
1788
        table1_mvy,
1789
    }
1790
};
1791

    
1792
static const UINT8 v2_mb_type[8][2] = {
1793
 {1, 1}, {0   , 2}, {3   , 3}, {9   , 5},
1794
 {5, 4}, {0x21, 7}, {0x20, 7}, {0x11, 6},
1795
};
1796

    
1797
static const UINT8 v2_intra_cbpc[4][2] = {
1798
 {1, 1}, {0, 3}, {1, 3}, {1, 2},
1799
};
1800

    
1801
static UINT8 wmv1_y_dc_scale_table[32]={
1802
//  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
1803
    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
1804
};
1805
static UINT8 wmv1_c_dc_scale_table[32]={
1806
//  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
1807
    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
1808
};
1809

    
1810
static UINT8 old_ff_y_dc_scale_table[32]={
1811
//  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
1812
    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
1813
};
1814
static UINT8 old_ff_c_dc_scale_table[32]={
1815
//  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
1816
    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
1817
};
1818

    
1819

    
1820
#define WMV1_SCANTABLE_COUNT 4
1821

    
1822
static UINT8 wmv1_scantable00[64]= {
1823
0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11, 
1824
0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28, 
1825
0x30, 0x38, 0x29, 0x21, 0x1A, 0x13, 0x0C, 0x05, 
1826
0x06, 0x0D, 0x14, 0x1B, 0x22, 0x31, 0x39, 0x3A, 
1827
0x32, 0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, 
1828
0x16, 0x1D, 0x24, 0x2B, 0x33, 0x3B, 0x3C, 0x34, 
1829
0x2C, 0x25, 0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x35, 
1830
0x3D, 0x3E, 0x36, 0x2E, 0x27, 0x2F, 0x37, 0x3F, 
1831
};
1832
static UINT8 wmv1_scantable01[64]= {
1833
0x00, 0x08, 0x01, 0x02, 0x09, 0x10, 0x18, 0x11, 
1834
0x0A, 0x03, 0x04, 0x0B, 0x12, 0x19, 0x20, 0x28, 
1835
0x21, 0x30, 0x1A, 0x13, 0x0C, 0x05, 0x06, 0x0D, 
1836
0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, 0x2A, 
1837
0x23, 0x1C, 0x15, 0x0E, 0x07, 0x0F, 0x16, 0x1D, 
1838
0x24, 0x2B, 0x32, 0x3A, 0x33, 0x3B, 0x2C, 0x25, 
1839
0x1E, 0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3C, 0x35, 
1840
0x3D, 0x2E, 0x27, 0x2F, 0x36, 0x3E, 0x37, 0x3F, 
1841
};
1842
static UINT8 wmv1_scantable02[64]= {
1843
0x00, 0x01, 0x08, 0x02, 0x03, 0x09, 0x10, 0x18, 
1844
0x11, 0x0A, 0x04, 0x05, 0x0B, 0x12, 0x19, 0x20, 
1845
0x28, 0x30, 0x21, 0x1A, 0x13, 0x0C, 0x06, 0x07, 
1846
0x0D, 0x14, 0x1B, 0x22, 0x29, 0x38, 0x31, 0x39, 
1847
0x2A, 0x23, 0x1C, 0x15, 0x0E, 0x0F, 0x16, 0x1D, 
1848
0x24, 0x2B, 0x32, 0x3A, 0x33, 0x2C, 0x25, 0x1E, 
1849
0x17, 0x1F, 0x26, 0x2D, 0x34, 0x3B, 0x3C, 0x35, 
1850
0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F, 
1851
};
1852
static UINT8 wmv1_scantable03[64]= {
1853
0x00, 0x08, 0x10, 0x01, 0x18, 0x20, 0x28, 0x09, 
1854
0x02, 0x03, 0x0A, 0x11, 0x19, 0x30, 0x38, 0x29, 
1855
0x21, 0x1A, 0x12, 0x0B, 0x04, 0x05, 0x0C, 0x13, 
1856
0x1B, 0x22, 0x31, 0x39, 0x32, 0x2A, 0x23, 0x1C, 
1857
0x14, 0x0D, 0x06, 0x07, 0x0E, 0x15, 0x1D, 0x24, 
1858
0x2B, 0x33, 0x3A, 0x3B, 0x34, 0x2C, 0x25, 0x1E, 
1859
0x16, 0x0F, 0x17, 0x1F, 0x26, 0x2D, 0x3C, 0x35, 
1860
0x2E, 0x27, 0x2F, 0x36, 0x3D, 0x3E, 0x37, 0x3F, 
1861
};
1862

    
1863
static UINT8 *wmv1_scantable[WMV1_SCANTABLE_COUNT+1]={
1864
    wmv1_scantable00,
1865
    wmv1_scantable01,
1866
    wmv1_scantable02,
1867
    wmv1_scantable03,
1868
};
1869