comparison msmpeg4data.h @ 0:986e461dc072 libavcodec

Initial revision
author glantau
date Sun, 22 Jul 2001 14:18:56 +0000
parents
children 764aeec1320e
comparison
equal deleted inserted replaced
-1:000000000000 0:986e461dc072
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 };