Statistics
| Branch: | Revision:

ffmpeg / libavcodec / msmpeg4data.h @ d771bcae

History | View | Annotate | Download (69.9 KB)

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

    
5
/* intra picture macro block coded block pattern */
6
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
#define NB_RL_TABLES  6
573

    
574
static RLTable rl_table[NB_RL_TABLES] = {
575
    /* intra luminance tables */
576
    {
577
        132,
578
        85,
579
        table0_vlc,
580
        table0_run,
581
        table0_level,
582
    },
583
    {
584
        185,
585
        119,
586
        table2_vlc,
587
        table2_run,
588
        table2_level,
589
    },
590
    {
591
        102,
592
        67,
593
        intra_vlc,
594
        intra_run,
595
        intra_level,
596
    },
597
    /* intra chrominance / non intra tables */
598
    {
599
        148,
600
        81,
601
        table1_vlc,
602
        table1_run,
603
        table1_level,
604
    },
605
    {
606
        168,
607
        99,
608
        table4_vlc,
609
        table4_run,
610
        table4_level,
611
    },
612
    {
613
        102,
614
        58,
615
        inter_vlc,
616
        inter_run,
617
        inter_level,
618
    },
619
};
620

    
621
/* motion vector table 0 */
622

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

    
764
const UINT8 table0_mv_bits[1100] = {
765
  1,  4,  4,  4,  5,  5,  5,  6,
766
  6,  6,  7,  7,  7,  8,  8,  8,
767
  8,  8,  8,  8,  8,  8,  8,  8,
768
  8,  9,  9,  9,  9,  9,  9,  9,
769
  9,  9,  9,  9,  9, 10, 10, 10,
770
 10, 10, 10, 10, 10, 10, 10, 10,
771
 10, 10, 10, 10, 10, 10, 10, 10,
772
 10, 10, 10, 10, 11, 11, 11, 11,
773
 11, 11, 11, 11, 11, 11, 11, 11,
774
 11, 11, 11, 11, 11, 11, 11, 11,
775
 11, 11, 11, 11, 11, 11, 11, 11,
776
 12, 12, 12, 12, 12, 12, 12, 12,
777
 12, 12, 12, 12, 12, 12, 12, 12,
778
 12, 12, 12, 12, 12, 12, 12, 12,
779
 12, 12, 12, 12, 12, 12, 12, 12,
780
 12, 12, 12, 12, 12, 12, 12, 12,
781
 12, 12, 12, 12, 12, 12, 12, 12,
782
 12, 12, 12, 13, 13, 13, 13, 13,
783
 13, 13, 13, 13, 13, 13, 13, 13,
784
 13, 13, 13, 13, 13, 13, 13, 13,
785
 13, 13, 13, 13, 13, 13, 13, 13,
786
 13, 13, 13, 13, 13, 13, 13, 13,
787
 13, 13, 13, 13, 13, 13, 13, 13,
788
 13, 13, 13, 13, 13, 13, 13, 13,
789
 13, 13, 13, 13, 13, 13, 13, 13,
790
 13, 13, 14, 14, 14, 14, 14, 14,
791
 14, 14, 14, 14, 14, 14, 14, 14,
792
 14, 14, 14, 14, 14, 14, 14, 14,
793
 14, 14, 14, 14, 14, 14, 14, 14,
794
 14, 14, 14, 14, 14, 14, 14, 14,
795
 14, 14, 14, 14, 14, 14, 14, 14,
796
 14, 14, 14, 14, 14, 14, 14, 14,
797
 14, 14, 14, 14, 14, 14, 14, 14,
798
 14, 14, 14, 14, 14, 14, 14, 14,
799
 14, 14, 14, 14, 14, 14, 14, 14,
800
 14, 14, 14, 14, 14, 14, 14, 14,
801
 14, 14, 14, 14, 14, 14, 14, 14,
802
 14, 14, 14, 14, 14, 14, 14, 14,
803
 14, 15, 15, 15, 15, 15, 15, 15,
804
 15, 15, 15, 15, 15, 15, 15, 15,
805
 15, 15, 15, 15, 15, 15, 15, 15,
806
 15, 15, 15, 15, 15, 15, 15, 15,
807
 15, 15, 15, 15, 15, 15, 15, 15,
808
 15, 15, 15, 15, 15, 15, 15, 15,
809
 15, 15, 15, 15, 15, 15, 15, 15,
810
 15, 15, 15, 15, 15, 15, 15, 15,
811
 15, 15, 15, 15, 15, 15, 15, 15,
812
 15, 15, 15, 15, 15, 15, 15, 15,
813
 15, 15, 15, 15, 15, 15, 15, 15,
814
 15, 15, 15, 15, 15, 15, 15, 15,
815
 15, 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, 16, 16, 16, 16,
824
 16, 16, 16, 16, 16, 16, 16, 16,
825
 16, 16, 16, 16, 16, 16, 16, 16,
826
 16, 16, 16, 16, 16, 16, 16, 16,
827
 16, 16, 16, 16, 16, 16, 16, 16,
828
 16, 16, 16, 16, 16, 16, 16, 16,
829
 16, 16, 16, 16, 16, 16, 16, 16,
830
 16, 16, 16, 16, 16, 16, 16, 16,
831
 16, 16, 16, 16, 16, 16, 16, 16,
832
 16, 16, 16, 16, 16, 16, 16, 16,
833
 16, 16, 16, 16, 16, 16, 16, 16,
834
 16, 16, 16, 16, 16, 16, 16, 16,
835
 16, 16, 16, 16, 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, 17, 17, 17, 17, 17, 17, 17,
855
 17, 17, 17, 17, 17, 17, 17, 17,
856
 17, 17, 17, 17, 17, 17, 17, 17,
857
 17, 17, 17, 17, 17, 17, 17, 17,
858
 17, 17, 17, 17, 17, 17, 17, 17,
859
 17, 17, 17, 17, 17, 17, 17, 17,
860
 17, 17, 17, 17, 17, 17, 17, 17,
861
 17, 17, 17, 17, 17, 17, 17, 17,
862
 17, 17, 17, 17, 17, 17, 17, 17,
863
 17, 17, 17, 17, 17, 17, 17, 17,
864
 17, 17, 17, 17, 17, 17, 17, 17,
865
 17, 17, 17, 17, 17, 17, 17, 17,
866
 17, 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,  8,
903
};
904

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

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

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

    
1329
const UINT8 table1_mv_bits[1100] = {
1330
  2,  4,  4,  4,  5,  5,  5,  5,
1331
  6,  6,  7,  7,  7,  7,  7,  8,
1332
  8,  8,  8,  8,  8,  8,  8,  8,
1333
  8,  8,  8,  8,  8,  8,  8,  8,
1334
  8,  9,  9,  9,  9,  9,  9,  9,
1335
  9,  9,  9,  9,  9,  9,  9,  9,
1336
  9,  9,  9,  9,  9, 10, 10, 10,
1337
 10, 10, 10, 10, 10, 10, 10, 10,
1338
 10, 10, 10, 10, 10, 10, 10, 10,
1339
 10, 10, 10, 10, 10, 10, 10, 10,
1340
 10, 10, 10, 10, 10, 10, 10, 10,
1341
 10, 10, 10, 10, 10, 10, 10, 10,
1342
 10, 10, 10, 10, 10, 10, 10, 10,
1343
 10, 10, 10, 10, 10, 10, 10, 10,
1344
 10, 10, 10, 11, 11, 11, 11, 11,
1345
 11, 11, 11, 11, 11, 11, 11, 11,
1346
 11, 11, 11, 11, 11, 11, 11, 11,
1347
 11, 11, 11, 11, 11, 11, 11, 11,
1348
 11, 11, 11, 11, 11, 11, 11, 11,
1349
 11, 11, 11, 11, 11, 11, 11, 11,
1350
 11, 11, 11, 11, 11, 11, 11, 11,
1351
 11, 11, 11, 11, 11, 11, 11, 11,
1352
 11, 11, 11, 11, 11, 11, 11, 11,
1353
 11, 11, 11, 11, 11, 11, 11, 11,
1354
 11, 11, 11, 12, 12, 12, 12, 12,
1355
 12, 12, 12, 12, 12, 12, 12, 12,
1356
 12, 12, 12, 12, 12, 12, 12, 12,
1357
 12, 12, 12, 12, 12, 12, 12, 12,
1358
 12, 12, 12, 12, 12, 12, 12, 12,
1359
 12, 12, 12, 12, 12, 12, 12, 12,
1360
 12, 12, 12, 12, 12, 12, 12, 12,
1361
 12, 12, 12, 12, 12, 12, 12, 12,
1362
 12, 12, 12, 12, 12, 12, 12, 12,
1363
 12, 12, 12, 12, 12, 12, 12, 12,
1364
 12, 12, 12, 12, 12, 12, 12, 12,
1365
 12, 12, 12, 12, 12, 12, 12, 12,
1366
 12, 12, 12, 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, 13, 13, 13, 13, 13, 13,
1372
 13, 13, 13, 13, 13, 13, 13, 13,
1373
 13, 13, 13, 13, 13, 13, 13, 13,
1374
 13, 13, 13, 13, 13, 13, 13, 13,
1375
 13, 13, 13, 13, 13, 13, 13, 13,
1376
 13, 13, 13, 13, 13, 13, 13, 13,
1377
 13, 13, 13, 13, 13, 13, 13, 13,
1378
 13, 13, 13, 13, 13, 13, 13, 13,
1379
 13, 13, 13, 13, 13, 13, 13, 13,
1380
 13, 13, 13, 13, 13, 13, 13, 13,
1381
 13, 13, 13, 13, 13, 13, 13, 13,
1382
 13, 13, 13, 13, 13, 13, 13, 13,
1383
 13, 13, 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, 14,
1407
 14, 14, 14, 14, 14, 14, 14, 14,
1408
 14, 14, 14, 14, 14, 14, 14, 14,
1409
 14, 14, 14, 14, 14, 14, 14, 14,
1410
 14, 14, 14, 14, 14, 14, 14, 14,
1411
 14, 14, 14, 14, 14, 14, 14, 14,
1412
 14, 14, 14, 14, 14, 14, 14, 14,
1413
 14, 14, 14, 14, 14, 14, 14, 14,
1414
 14, 14, 14, 14, 14, 14, 14, 14,
1415
 14, 14, 14, 14, 14, 14, 14, 14,
1416
 14, 14, 14, 14, 14, 14, 14, 14,
1417
 14, 14, 14, 14, 14, 14, 14, 14,
1418
 14, 14, 14, 14, 14, 14, 14, 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, 15,
1461
 15, 15, 15, 15, 15, 15, 15, 15,
1462
 15, 15, 15, 15, 15, 15, 15, 15,
1463
 15, 15, 15, 15, 15, 15, 15, 15,
1464
 15, 15, 15, 15, 15, 15, 15, 15,
1465
 15, 15, 15, 15, 15, 15, 15, 15,
1466
 15, 15, 15, 15, 15, 15, 15, 15,
1467
 15, 15, 15,  4,
1468
};
1469

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

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

    
1752
static MVTable mv_tables[2] = {
1753
    {
1754
        1099,
1755
        table0_mv_code,
1756
        table0_mv_bits,
1757
        table0_mvx,
1758
        table0_mvy,
1759
    },
1760
    {
1761
        1099,
1762
        table1_mv_code,
1763
        table1_mv_bits,
1764
        table1_mvx,
1765
        table1_mvy,
1766
    }
1767
};