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 },
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 },
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 },
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 },
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 },
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 },
197 /* vlc table 0, for intra luma */
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 },
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,
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,
276 /* vlc table 1, for intra chroma and P macro blocks */
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 },
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,
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,
363 /* third vlc table */
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 },
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,
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,
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 },
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,
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,
564 extern const UINT16 inter_vlc[103][2];
565 extern const INT8 inter_level[102];
566 extern const INT8 inter_run[102];
568 extern const UINT16 intra_vlc[103][2];
569 extern const INT8 intra_level[102];
570 extern const INT8 intra_run[102];
572 extern const UINT8 DCtab_lum[13][2];
573 extern const UINT8 DCtab_chrom[13][2];
575 extern const UINT8 cbpy_tab[16][2];
576 extern const UINT8 mvtab[33][2];
579 #define NB_RL_TABLES 6
581 static RLTable rl_table[NB_RL_TABLES] = {
582 /* intra luminance tables */
604 /* intra chrominance / non intra tables */
628 /* motion vector table 0 */
630 const UINT16 table0_mv_code[1100] = {
631 0x0001, 0x0003, 0x0005, 0x0007, 0x0003, 0x0008, 0x000c, 0x0001,
632 0x0002, 0x001b, 0x0006, 0x000b, 0x0015, 0x0002, 0x000e, 0x000f,
633 0x0014, 0x0020, 0x0022, 0x0025, 0x0027, 0x0029, 0x002d, 0x004b,
634 0x004d, 0x0003, 0x0022, 0x0023, 0x0025, 0x0027, 0x0042, 0x0048,
635 0x0049, 0x0050, 0x005c, 0x0091, 0x009f, 0x000e, 0x0043, 0x004c,
636 0x0054, 0x0056, 0x008c, 0x0098, 0x009a, 0x009b, 0x00b1, 0x00b2,
637 0x0120, 0x0121, 0x0126, 0x0133, 0x0139, 0x01a1, 0x01a4, 0x01a5,
638 0x01a6, 0x01a7, 0x01ae, 0x01af, 0x000b, 0x0019, 0x0085, 0x0090,
639 0x009b, 0x00aa, 0x00af, 0x010c, 0x010e, 0x011c, 0x011e, 0x0133,
640 0x0144, 0x0160, 0x0174, 0x0175, 0x0177, 0x0178, 0x0249, 0x024b,
641 0x0252, 0x0261, 0x0265, 0x0270, 0x0352, 0x0353, 0x0355, 0x0359,
642 0x0010, 0x0011, 0x0013, 0x0034, 0x0035, 0x0036, 0x0037, 0x003d,
643 0x003e, 0x0109, 0x0126, 0x0156, 0x021a, 0x021e, 0x023a, 0x023e,
644 0x028e, 0x028f, 0x02cf, 0x0491, 0x0494, 0x049f, 0x04a0, 0x04a3,
645 0x04a6, 0x04a7, 0x04ad, 0x04ae, 0x04c0, 0x04c4, 0x04c6, 0x04c8,
646 0x04c9, 0x04f5, 0x04f6, 0x04f7, 0x0680, 0x0682, 0x0683, 0x0688,
647 0x0689, 0x068d, 0x068e, 0x068f, 0x06a2, 0x06a3, 0x06a9, 0x06b0,
648 0x06b1, 0x06b4, 0x06b5, 0x0024, 0x0060, 0x0063, 0x0078, 0x0079,
649 0x0211, 0x0244, 0x0245, 0x0247, 0x0248, 0x0249, 0x024a, 0x024b,
650 0x026b, 0x02af, 0x02b8, 0x02bb, 0x0436, 0x0476, 0x0477, 0x047e,
651 0x04c8, 0x04c9, 0x04ca, 0x0514, 0x0586, 0x0587, 0x0598, 0x059d,
652 0x05d9, 0x05da, 0x0920, 0x0921, 0x093b, 0x093c, 0x093d, 0x0942,
653 0x0943, 0x0944, 0x0945, 0x0959, 0x095e, 0x095f, 0x0982, 0x0983,
654 0x098e, 0x098f, 0x09c4, 0x09e7, 0x09e8, 0x09e9, 0x0d02, 0x0d17,
655 0x0d18, 0x0d19, 0x0d41, 0x0d42, 0x0d43, 0x0d50, 0x0d5f, 0x0d6d,
656 0x0d6e, 0x0d6f, 0x0052, 0x0053, 0x0054, 0x0055, 0x0056, 0x0057,
657 0x00c2, 0x00c3, 0x00c4, 0x00c5, 0x041e, 0x041f, 0x0420, 0x0421,
658 0x048c, 0x048d, 0x04d3, 0x04d4, 0x04d5, 0x055c, 0x055d, 0x0572,
659 0x0573, 0x0574, 0x0575, 0x08de, 0x08df, 0x08fe, 0x08ff, 0x0996,
660 0x0a36, 0x0a37, 0x0b08, 0x0b09, 0x0b0a, 0x0b0b, 0x0b32, 0x0b33,
661 0x0b34, 0x0b35, 0x0b36, 0x0b37, 0x0b38, 0x0b39, 0x0bb0, 0x0bf7,
662 0x0bf8, 0x0bf9, 0x0bfa, 0x0bfb, 0x0bfc, 0x0bfd, 0x0bfe, 0x0bff,
663 0x1254, 0x1255, 0x1256, 0x1257, 0x1270, 0x1271, 0x1272, 0x1273,
664 0x1274, 0x1275, 0x12ab, 0x12ac, 0x12ad, 0x12ae, 0x12af, 0x12b0,
665 0x12b1, 0x1315, 0x1316, 0x1317, 0x13bf, 0x13c0, 0x13c1, 0x13c2,
666 0x13c3, 0x13c4, 0x13c5, 0x13c6, 0x13c7, 0x13c8, 0x13c9, 0x13ca,
667 0x13cb, 0x13cc, 0x13cd, 0x1a06, 0x1a07, 0x1a28, 0x1a29, 0x1a2a,
668 0x1a2b, 0x1a2c, 0x1a2d, 0x1a80, 0x1abb, 0x1abc, 0x1abd, 0x1ad8,
669 0x1ad9, 0x0094, 0x0095, 0x0096, 0x0097, 0x00a0, 0x00a1, 0x00a2,
670 0x00a3, 0x0831, 0x0832, 0x0833, 0x0834, 0x0835, 0x0836, 0x0837,
671 0x0838, 0x0839, 0x083a, 0x083b, 0x0939, 0x093a, 0x093b, 0x093c,
672 0x093d, 0x093e, 0x093f, 0x09a0, 0x09a1, 0x09a2, 0x09a3, 0x09a4,
673 0x09a5, 0x11ac, 0x11ad, 0x11ae, 0x11af, 0x11b0, 0x11b1, 0x11b2,
674 0x11b3, 0x11b4, 0x11b5, 0x11b6, 0x11b7, 0x11b8, 0x11b9, 0x11ba,
675 0x11bb, 0x132f, 0x1454, 0x1455, 0x1456, 0x1457, 0x1458, 0x1459,
676 0x145a, 0x145b, 0x145c, 0x145d, 0x145e, 0x145f, 0x1460, 0x1461,
677 0x1462, 0x1463, 0x1464, 0x1465, 0x1466, 0x1467, 0x1468, 0x1469,
678 0x146a, 0x146b, 0x17de, 0x17df, 0x17e0, 0x17e1, 0x17e2, 0x17e3,
679 0x17e4, 0x17e5, 0x17e6, 0x17e7, 0x17e8, 0x17e9, 0x17ea, 0x17eb,
680 0x17ec, 0x17ed, 0x2540, 0x2541, 0x2542, 0x2543, 0x2544, 0x2545,
681 0x2546, 0x2547, 0x2548, 0x2549, 0x254a, 0x254b, 0x254c, 0x254d,
682 0x254e, 0x254f, 0x2550, 0x2551, 0x2552, 0x2553, 0x2554, 0x2555,
683 0x2628, 0x2766, 0x2767, 0x2768, 0x2769, 0x276a, 0x276b, 0x276c,
684 0x276d, 0x276e, 0x276f, 0x2770, 0x2771, 0x2772, 0x2773, 0x2774,
685 0x2775, 0x2776, 0x2777, 0x2778, 0x2779, 0x277a, 0x277b, 0x277c,
686 0x277d, 0x3503, 0x3544, 0x3545, 0x3546, 0x3547, 0x3560, 0x3561,
687 0x3562, 0x3563, 0x3564, 0x3565, 0x3566, 0x3567, 0x3568, 0x3569,
688 0x356a, 0x356b, 0x356c, 0x356d, 0x356e, 0x356f, 0x3570, 0x3571,
689 0x3572, 0x3573, 0x3574, 0x3575, 0x03f0, 0x103d, 0x103e, 0x103f,
690 0x1040, 0x1041, 0x1042, 0x1043, 0x1044, 0x1045, 0x1046, 0x1047,
691 0x1048, 0x1049, 0x104a, 0x104b, 0x104c, 0x104d, 0x104e, 0x104f,
692 0x1050, 0x1051, 0x1052, 0x1053, 0x1054, 0x1055, 0x1056, 0x1057,
693 0x1058, 0x1059, 0x105a, 0x105b, 0x105c, 0x105d, 0x105e, 0x105f,
694 0x1060, 0x1061, 0x1270, 0x1271, 0x21b8, 0x21b9, 0x21ba, 0x21bb,
695 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x21f0, 0x21f1, 0x21f2, 0x21f3,
696 0x21f4, 0x21f5, 0x21f6, 0x21f7, 0x21f8, 0x21f9, 0x21fa, 0x21fb,
697 0x21fc, 0x21fd, 0x21fe, 0x21ff, 0x2340, 0x2341, 0x2342, 0x2343,
698 0x2344, 0x2345, 0x2346, 0x2347, 0x2348, 0x2349, 0x234a, 0x234b,
699 0x234c, 0x234d, 0x234e, 0x234f, 0x2350, 0x2351, 0x2352, 0x2353,
700 0x2354, 0x2355, 0x2356, 0x2357, 0x265c, 0x2f88, 0x2f89, 0x2f8a,
701 0x2f8b, 0x2f8c, 0x2f8d, 0x2f8e, 0x2f8f, 0x2f90, 0x2f91, 0x2f92,
702 0x2f93, 0x2f94, 0x2f95, 0x2f96, 0x2f97, 0x2f98, 0x2f99, 0x2f9a,
703 0x2f9b, 0x2f9c, 0x2f9d, 0x2f9e, 0x2f9f, 0x2fa0, 0x2fa1, 0x2fa2,
704 0x2fa3, 0x2fa4, 0x2fa5, 0x2fa6, 0x2fa7, 0x2fa8, 0x2fa9, 0x2faa,
705 0x2fab, 0x2fac, 0x2fad, 0x2fae, 0x2faf, 0x2fb0, 0x2fb1, 0x2fb2,
706 0x2fb3, 0x2fb4, 0x2fb5, 0x2fb6, 0x2fb7, 0x2fb8, 0x2fb9, 0x2fba,
707 0x2fbb, 0x4c52, 0x4c53, 0x4e28, 0x4e29, 0x4e2a, 0x4e2b, 0x4e2c,
708 0x4e2d, 0x4e2e, 0x4e2f, 0x4e30, 0x4e31, 0x4e32, 0x4e33, 0x4e34,
709 0x4e35, 0x4e36, 0x4e37, 0x4e38, 0x4e39, 0x4e3a, 0x4e3b, 0x4e3c,
710 0x4e3d, 0x4e3e, 0x4e3f, 0x4e80, 0x4e81, 0x4e82, 0x4e83, 0x4e84,
711 0x4e85, 0x4e86, 0x4e87, 0x4e88, 0x4e89, 0x4e8a, 0x4e8b, 0x4e8c,
712 0x4e8d, 0x4e8e, 0x4e8f, 0x4e90, 0x4e91, 0x4e92, 0x4e93, 0x4e94,
713 0x4e95, 0x4e96, 0x4e97, 0x4e98, 0x4e99, 0x4e9a, 0x4e9b, 0x4e9c,
714 0x4e9d, 0x4e9e, 0x4e9f, 0x4ea0, 0x4ea1, 0x4ea2, 0x4ea3, 0x4ea4,
715 0x4ea5, 0x4ea6, 0x4ea7, 0x4ea8, 0x4ea9, 0x4eaa, 0x4eab, 0x4eac,
716 0x4ead, 0x4eae, 0x4eaf, 0x4eb0, 0x4eb1, 0x4eb2, 0x4eb3, 0x4eb4,
717 0x4eb5, 0x4eb6, 0x4eb7, 0x4eb8, 0x4eb9, 0x4eba, 0x4ebb, 0x4ebc,
718 0x4ebd, 0x4ebe, 0x4ebf, 0x4ec0, 0x4ec1, 0x4ec2, 0x4ec3, 0x4ec4,
719 0x4ec5, 0x4ec6, 0x4ec7, 0x4ec8, 0x4ec9, 0x4eca, 0x4ecb, 0x6a04,
720 0x6a05, 0x07e2, 0x07e3, 0x07e4, 0x07e5, 0x07e6, 0x07e7, 0x07e8,
721 0x07e9, 0x07ea, 0x07eb, 0x07ec, 0x07ed, 0x07ee, 0x07ef, 0x07f0,
722 0x07f1, 0x07f2, 0x07f3, 0x07f4, 0x07f5, 0x07f6, 0x07f7, 0x07f8,
723 0x07f9, 0x07fa, 0x07fb, 0x07fc, 0x07fd, 0x07fe, 0x07ff, 0x2000,
724 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
725 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x200e, 0x200f, 0x2010,
726 0x2011, 0x2012, 0x2013, 0x2014, 0x2015, 0x2016, 0x2017, 0x2018,
727 0x2019, 0x201a, 0x201b, 0x201c, 0x201d, 0x201e, 0x201f, 0x2020,
728 0x2021, 0x2022, 0x2023, 0x2024, 0x2025, 0x2026, 0x2027, 0x2028,
729 0x2029, 0x202a, 0x202b, 0x202c, 0x202d, 0x202e, 0x202f, 0x2030,
730 0x2031, 0x2032, 0x2033, 0x2034, 0x2035, 0x2036, 0x2037, 0x2038,
731 0x2039, 0x203a, 0x203b, 0x203c, 0x203d, 0x203e, 0x203f, 0x2040,
732 0x2041, 0x2042, 0x2043, 0x2044, 0x2045, 0x2046, 0x2047, 0x2048,
733 0x2049, 0x204a, 0x204b, 0x204c, 0x204d, 0x204e, 0x204f, 0x2050,
734 0x2051, 0x2052, 0x2053, 0x2054, 0x2055, 0x2056, 0x2057, 0x2058,
735 0x2059, 0x205a, 0x205b, 0x205c, 0x205d, 0x205e, 0x205f, 0x2060,
736 0x2061, 0x2062, 0x2063, 0x2064, 0x2065, 0x2066, 0x2067, 0x2068,
737 0x2069, 0x206a, 0x206b, 0x206c, 0x206d, 0x206e, 0x206f, 0x2070,
738 0x2071, 0x2072, 0x2073, 0x2074, 0x2075, 0x2076, 0x2077, 0x2078,
739 0x2079, 0x4cba, 0x4cbb, 0x5d88, 0x5d89, 0x5d8a, 0x5d8b, 0x5d8c,
740 0x5d8d, 0x5d8e, 0x5d8f, 0x5db0, 0x5db1, 0x5db2, 0x5db3, 0x5db4,
741 0x5db5, 0x5db6, 0x5db7, 0x5db8, 0x5db9, 0x5dba, 0x5dbb, 0x5dbc,
742 0x5dbd, 0x5dbe, 0x5dbf, 0x5e40, 0x5e41, 0x5e42, 0x5e43, 0x5e44,
743 0x5e45, 0x5e46, 0x5e47, 0x5e48, 0x5e49, 0x5e4a, 0x5e4b, 0x5e4c,
744 0x5e4d, 0x5e4e, 0x5e4f, 0x5e50, 0x5e51, 0x5e52, 0x5e53, 0x5e54,
745 0x5e55, 0x5e56, 0x5e57, 0x5e58, 0x5e59, 0x5e5a, 0x5e5b, 0x5e5c,
746 0x5e5d, 0x5e5e, 0x5e5f, 0x5e60, 0x5e61, 0x5e62, 0x5e63, 0x5e64,
747 0x5e65, 0x5e66, 0x5e67, 0x5e68, 0x5e69, 0x5e6a, 0x5e6b, 0x5e6c,
748 0x5e6d, 0x5e6e, 0x5e6f, 0x5e70, 0x5e71, 0x5e72, 0x5e73, 0x5e74,
749 0x5e75, 0x5e76, 0x5e77, 0x5e78, 0x5e79, 0x5e7a, 0x5e7b, 0x5e7c,
750 0x5e7d, 0x5e7e, 0x5e7f, 0x5e80, 0x5e81, 0x5e82, 0x5e83, 0x5e84,
751 0x5e85, 0x5e86, 0x5e87, 0x5e88, 0x5e89, 0x5e8a, 0x5e8b, 0x5e8c,
752 0x5e8d, 0x5e8e, 0x5e8f, 0x5e90, 0x5e91, 0x5e92, 0x5e93, 0x5e94,
753 0x5e95, 0x5e96, 0x5e97, 0x5e98, 0x5e99, 0x5e9a, 0x5e9b, 0x5e9c,
754 0x5e9d, 0x5e9e, 0x5e9f, 0x5ea0, 0x5ea1, 0x5ea2, 0x5ea3, 0x5ea4,
755 0x5ea5, 0x5ea6, 0x5ea7, 0x5ea8, 0x5ea9, 0x5eaa, 0x5eab, 0x5eac,
756 0x5ead, 0x5eae, 0x5eaf, 0x5eb0, 0x5eb1, 0x5eb2, 0x5eb3, 0x5eb4,
757 0x5eb5, 0x5eb6, 0x5eb7, 0x5eb8, 0x5eb9, 0x5eba, 0x5ebb, 0x5ebc,
758 0x5ebd, 0x5ebe, 0x5ebf, 0x5ec0, 0x5ec1, 0x5ec2, 0x5ec3, 0x5ec4,
759 0x5ec5, 0x5ec6, 0x5ec7, 0x5ec8, 0x5ec9, 0x5eca, 0x5ecb, 0x5ecc,
760 0x5ecd, 0x5ece, 0x5ecf, 0x5ed0, 0x5ed1, 0x5ed2, 0x5ed3, 0x5ed4,
761 0x5ed5, 0x5ed6, 0x5ed7, 0x5ed8, 0x5ed9, 0x5eda, 0x5edb, 0x5edc,
762 0x5edd, 0x5ede, 0x5edf, 0x5ee0, 0x5ee1, 0x5ee2, 0x5ee3, 0x5ee4,
763 0x5ee5, 0x5ee6, 0x5ee7, 0x5ee8, 0x5ee9, 0x5eea, 0x5eeb, 0x5eec,
764 0x5eed, 0x5eee, 0x5eef, 0x5ef0, 0x5ef1, 0x5ef2, 0x5ef3, 0x5ef4,
765 0x5ef5, 0x5ef6, 0x5ef7, 0x5ef8, 0x5ef9, 0x5efa, 0x5efb, 0x5efc,
766 0x5efd, 0x5efe, 0x5eff, 0x5f00, 0x5f01, 0x5f02, 0x5f03, 0x5f04,
767 0x5f05, 0x5f06, 0x5f07, 0x5f08, 0x5f09, 0x5f0a, 0x5f0b, 0x5f0c,
768 0x5f0d, 0x5f0e, 0x5f0f, 0x0000,
771 const UINT8 table0_mv_bits[1100] = {
772 1, 4, 4, 4, 5, 5, 5, 6,
773 6, 6, 7, 7, 7, 8, 8, 8,
774 8, 8, 8, 8, 8, 8, 8, 8,
775 8, 9, 9, 9, 9, 9, 9, 9,
776 9, 9, 9, 9, 9, 10, 10, 10,
777 10, 10, 10, 10, 10, 10, 10, 10,
778 10, 10, 10, 10, 10, 10, 10, 10,
779 10, 10, 10, 10, 11, 11, 11, 11,
780 11, 11, 11, 11, 11, 11, 11, 11,
781 11, 11, 11, 11, 11, 11, 11, 11,
782 11, 11, 11, 11, 11, 11, 11, 11,
783 12, 12, 12, 12, 12, 12, 12, 12,
784 12, 12, 12, 12, 12, 12, 12, 12,
785 12, 12, 12, 12, 12, 12, 12, 12,
786 12, 12, 12, 12, 12, 12, 12, 12,
787 12, 12, 12, 12, 12, 12, 12, 12,
788 12, 12, 12, 12, 12, 12, 12, 12,
789 12, 12, 12, 13, 13, 13, 13, 13,
790 13, 13, 13, 13, 13, 13, 13, 13,
791 13, 13, 13, 13, 13, 13, 13, 13,
792 13, 13, 13, 13, 13, 13, 13, 13,
793 13, 13, 13, 13, 13, 13, 13, 13,
794 13, 13, 13, 13, 13, 13, 13, 13,
795 13, 13, 13, 13, 13, 13, 13, 13,
796 13, 13, 13, 13, 13, 13, 13, 13,
797 13, 13, 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, 14, 14, 14, 14, 14, 14, 14,
804 14, 14, 14, 14, 14, 14, 14, 14,
805 14, 14, 14, 14, 14, 14, 14, 14,
806 14, 14, 14, 14, 14, 14, 14, 14,
807 14, 14, 14, 14, 14, 14, 14, 14,
808 14, 14, 14, 14, 14, 14, 14, 14,
809 14, 14, 14, 14, 14, 14, 14, 14,
810 14, 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, 15, 15, 15, 15,
824 15, 15, 15, 15, 15, 15, 15, 15,
825 15, 15, 15, 15, 15, 15, 15, 15,
826 15, 15, 15, 15, 15, 15, 15, 15,
827 15, 15, 15, 15, 15, 15, 15, 15,
828 15, 15, 15, 15, 15, 15, 15, 15,
829 15, 15, 15, 15, 15, 15, 15, 15,
830 15, 15, 15, 15, 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, 16, 16, 16, 16, 16, 16, 16,
855 16, 16, 16, 16, 16, 16, 16, 16,
856 16, 16, 16, 16, 16, 16, 16, 16,
857 16, 16, 16, 16, 16, 16, 16, 16,
858 16, 16, 16, 16, 16, 16, 16, 16,
859 16, 16, 16, 16, 16, 16, 16, 16,
860 16, 16, 16, 16, 16, 16, 16, 16,
861 16, 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, 17, 17, 17, 17, 17,
903 17, 17, 17, 17, 17, 17, 17, 17,
904 17, 17, 17, 17, 17, 17, 17, 17,
905 17, 17, 17, 17, 17, 17, 17, 17,
906 17, 17, 17, 17, 17, 17, 17, 17,
907 17, 17, 17, 17, 17, 17, 17, 17,
908 17, 17, 17, 17, 17, 17, 17, 17,
912 const UINT8 table0_mvx[1099] = {
913 32, 32, 31, 32, 33, 31, 33, 31,
914 33, 32, 34, 32, 30, 32, 31, 34,
915 35, 32, 34, 33, 29, 33, 30, 30,
916 31, 31, 35, 29, 33, 35, 33, 34,
917 31, 29, 30, 34, 30, 36, 28, 32,
918 34, 37, 30, 27, 32, 25, 39, 32,
919 34, 32, 35, 35, 35, 31, 35, 29,
920 32, 29, 30, 29, 37, 27, 36, 38,
921 37, 33, 32, 31, 29, 31, 28, 36,
922 33, 30, 34, 33, 33, 28, 27, 25,
923 31, 26, 39, 32, 32, 31, 33, 39,
924 31, 38, 28, 36, 21, 23, 43, 36,
925 34, 41, 30, 25, 28, 31, 30, 34,
926 38, 35, 61, 34, 28, 30, 37, 37,
927 35, 27, 36, 3, 59, 38, 37, 32,
928 31, 29, 26, 33, 37, 33, 27, 27,
929 35, 34, 34, 40, 42, 33, 32, 29,
930 4, 5, 28, 24, 25, 35, 39, 38,
931 32, 23, 27, 32, 30, 35, 26, 34,
932 60, 36, 29, 22, 26, 41, 7, 30,
933 38, 30, 36, 29, 30, 41, 26, 25,
934 32, 34, 24, 39, 1, 25, 39, 32,
935 28, 29, 32, 38, 26, 36, 28, 63,
936 28, 39, 23, 21, 26, 35, 31, 35,
937 57, 31, 29, 29, 28, 30, 27, 35,
938 2, 38, 40, 34, 37, 29, 38, 43,
939 26, 32, 33, 42, 24, 40, 28, 32,
940 32, 32, 36, 32, 43, 25, 21, 31,
941 30, 31, 41, 29, 33, 37, 26, 37,
942 27, 59, 23, 33, 35, 31, 31, 37,
943 38, 39, 32, 23, 32, 27, 37, 36,
944 31, 40, 25, 27, 38, 31, 36, 28,
945 31, 36, 25, 45, 3, 34, 38, 39,
946 40, 38, 30, 32, 19, 24, 25, 26,
947 45, 20, 24, 33, 33, 31, 41, 34,
948 39, 47, 40, 58, 59, 41, 33, 3,
949 17, 61, 42, 30, 26, 29, 36, 61,
950 33, 37, 62, 28, 25, 38, 25, 38,
951 17, 23, 34, 33, 21, 33, 49, 27,
952 32, 23, 27, 22, 24, 22, 39, 43,
953 27, 37, 6, 42, 47, 26, 30, 31,
954 41, 39, 33, 22, 45, 36, 32, 45,
955 19, 22, 30, 5, 5, 17, 29, 22,
956 31, 31, 43, 37, 27, 32, 32, 32,
957 33, 34, 43, 35, 29, 26, 22, 32,
958 19, 32, 25, 31, 41, 49, 28, 34,
959 28, 39, 34, 19, 37, 38, 29, 21,
960 36, 42, 24, 48, 16, 28, 49, 22,
961 34, 31, 38, 39, 44, 11, 35, 30,
962 33, 33, 23, 28, 33, 46, 15, 13,
963 24, 41, 24, 34, 34, 30, 26, 24,
964 14, 60, 21, 29, 39, 23, 35, 37,
965 63, 45, 33, 34, 47, 41, 22, 42,
966 35, 35, 23, 32, 35, 43, 32, 7,
967 31, 41, 20, 31, 16, 13, 63, 25,
968 30, 32, 35, 30, 30, 31, 42, 47,
969 39, 38, 40, 40, 51, 55, 56, 18,
970 21, 39, 39, 33, 17, 41, 23, 24,
971 43, 25, 31, 20, 19, 45, 1, 34,
972 31, 22, 35, 15, 46, 46, 35, 31,
973 28, 29, 29, 23, 41, 27, 14, 53,
974 53, 27, 24, 32, 57, 32, 17, 42,
975 37, 29, 33, 1, 25, 32, 32, 63,
976 26, 40, 44, 36, 31, 39, 20, 20,
977 44, 23, 33, 34, 35, 33, 33, 28,
978 41, 23, 41, 41, 29, 25, 26, 49,
979 29, 24, 37, 49, 50, 51, 51, 26,
980 39, 25, 26, 15, 39, 18, 42, 17,
981 4, 31, 32, 32, 60, 1, 42, 32,
982 0, 12, 19, 35, 21, 41, 17, 26,
983 20, 45, 46, 32, 37, 22, 47, 29,
984 31, 27, 29, 30, 21, 33, 35, 18,
985 25, 33, 50, 51, 42, 2, 15, 51,
986 53, 33, 25, 29, 55, 37, 38, 33,
987 38, 59, 38, 33, 39, 13, 32, 40,
988 61, 61, 32, 9, 44, 3, 31, 29,
989 25, 31, 27, 23, 9, 25, 9, 29,
990 20, 30, 30, 42, 18, 28, 25, 28,
991 28, 21, 29, 43, 29, 43, 26, 44,
992 44, 21, 38, 21, 24, 45, 45, 35,
993 39, 22, 35, 36, 34, 34, 45, 34,
994 29, 31, 46, 25, 46, 16, 17, 31,
995 20, 32, 47, 47, 47, 32, 49, 49,
996 49, 31, 1, 27, 28, 39, 39, 21,
997 36, 23, 51, 2, 40, 51, 32, 53,
998 24, 30, 24, 30, 21, 40, 57, 57,
999 31, 41, 58, 32, 12, 4, 32, 34,
1000 59, 31, 32, 13, 9, 35, 26, 35,
1001 37, 61, 37, 63, 26, 29, 41, 38,
1002 23, 20, 41, 26, 41, 42, 42, 42,
1003 26, 26, 26, 26, 1, 26, 37, 37,
1004 37, 23, 34, 42, 27, 43, 34, 27,
1005 31, 24, 33, 16, 3, 31, 24, 33,
1006 24, 4, 44, 44, 11, 44, 31, 13,
1007 13, 44, 45, 13, 25, 22, 38, 26,
1008 38, 38, 39, 32, 30, 39, 30, 22,
1009 32, 26, 30, 47, 47, 47, 19, 47,
1010 30, 31, 35, 8, 23, 47, 47, 27,
1011 35, 47, 31, 48, 35, 19, 36, 49,
1012 49, 33, 31, 39, 27, 39, 49, 49,
1013 50, 50, 50, 39, 31, 51, 51, 39,
1014 28, 33, 33, 21, 40, 31, 52, 53,
1015 40, 53, 9, 33, 31, 53, 54, 54,
1016 54, 55, 55, 34, 15, 56, 25, 56,
1017 21, 21, 40, 40, 25, 40, 58, 36,
1018 5, 41, 41, 12, 60, 41, 41, 37,
1019 22, 61, 18, 29, 29, 30, 61, 30,
1020 61, 62, 62, 30, 30, 63, 18, 13,
1021 30, 23, 19, 20, 20, 41, 13, 2,
1022 5, 5, 1, 5, 32, 6, 32, 35,
1023 20, 35, 27, 35, 35, 36, 36, 13,
1024 36, 41, 41, 41, 3, 30, 42, 27,
1025 20, 30, 27, 28, 30, 21, 33, 33,
1026 14, 24, 30, 42, 24, 33, 25, 42,
1027 43, 14, 43, 43, 14, 43, 7, 36,
1028 37, 37, 37, 37, 7, 14, 25, 43,
1029 43, 44, 15, 37, 7, 7, 3, 1,
1030 8, 15, 15, 8, 44, 44, 44, 45,
1031 45, 45, 45, 8, 8, 45, 21, 45,
1032 28, 28, 28, 21, 28, 28, 22, 37,
1033 46, 46, 37, 8, 29, 37, 29, 22,
1034 46, 37, 22, 29, 47, 47, 38, 38,
1035 16, 38, 38, 33, 38, 22, 47, 47,
1036 29, 25, 16, 0, 48, 1, 34, 48,
1037 48, 34, 25, 26, 26, 49, 49, 26,
1038 1, 49, 4, 26, 4, 49, 1, 9,
1039 49, 49, 49, 10, 49, 17, 38, 17,
1040 17, 50, 38, 50, 50, 22, 38, 51,
1041 38, 38, 51, 39, 39, 18, 22, 39,
1042 51, 22, 52, 52, 52, 39, 53, 53,
1043 10, 23, 18, 29, 10, 53, 29, 54,
1044 11, 54, 11, 11, 55, 1, 18, 55,
1045 55, 55, 55, 55, 55, 29, 34, 18,
1046 29, 56, 56, 34, 57, 34, 34, 29,
1047 29, 57, 57, 35, 35, 35, 35, 35,
1048 39, 35, 59, 59, 18, 59, 39, 30,
1049 18, 40, 60, 60, 61, 30, 18, 61,
1053 const UINT8 table0_mvy[1099] = {
1054 32, 31, 32, 33, 32, 31, 31, 33,
1055 33, 34, 32, 30, 32, 35, 34, 31,
1056 32, 29, 33, 30, 32, 34, 33, 31,
1057 30, 35, 31, 31, 29, 33, 35, 30,
1058 29, 33, 34, 34, 30, 32, 32, 36,
1059 29, 32, 35, 32, 28, 32, 32, 27,
1060 35, 37, 34, 29, 30, 36, 35, 34,
1061 25, 30, 29, 35, 33, 31, 31, 32,
1062 31, 28, 39, 28, 29, 37, 31, 33,
1063 27, 36, 28, 36, 37, 33, 33, 31,
1064 27, 32, 31, 38, 26, 25, 25, 33,
1065 39, 31, 34, 30, 32, 32, 32, 34,
1066 36, 32, 28, 33, 30, 38, 37, 27,
1067 33, 28, 32, 37, 35, 38, 29, 34,
1068 27, 29, 29, 32, 32, 34, 35, 3,
1069 26, 36, 31, 38, 30, 26, 35, 34,
1070 37, 26, 25, 32, 32, 39, 23, 37,
1071 32, 32, 29, 32, 29, 36, 29, 30,
1072 41, 31, 30, 21, 39, 25, 34, 38,
1073 32, 35, 39, 32, 33, 33, 32, 27,
1074 29, 25, 28, 27, 26, 31, 30, 35,
1075 24, 24, 31, 34, 32, 30, 35, 40,
1076 28, 38, 5, 35, 29, 36, 36, 32,
1077 38, 30, 33, 31, 35, 26, 23, 38,
1078 32, 41, 28, 25, 37, 40, 37, 39,
1079 32, 36, 33, 39, 25, 26, 28, 31,
1080 28, 42, 23, 31, 33, 31, 39, 1,
1081 59, 22, 27, 4, 33, 34, 33, 24,
1082 41, 3, 35, 41, 41, 28, 36, 36,
1083 28, 33, 35, 21, 23, 21, 22, 37,
1084 27, 27, 43, 29, 60, 39, 27, 25,
1085 59, 34, 27, 27, 26, 40, 37, 27,
1086 61, 26, 39, 33, 31, 22, 37, 25,
1087 30, 25, 24, 61, 31, 34, 25, 38,
1088 32, 32, 30, 3, 61, 43, 29, 23,
1089 28, 32, 28, 32, 31, 34, 5, 33,
1090 32, 33, 33, 42, 37, 23, 38, 31,
1091 40, 26, 32, 26, 37, 38, 36, 24,
1092 29, 30, 20, 22, 29, 24, 32, 41,
1093 2, 34, 25, 33, 29, 31, 39, 35,
1094 36, 24, 32, 30, 33, 27, 44, 60,
1095 30, 36, 19, 34, 31, 24, 16, 35,
1096 32, 38, 21, 33, 31, 31, 21, 35,
1097 5, 17, 29, 38, 38, 18, 58, 19,
1098 43, 41, 30, 41, 43, 39, 29, 7,
1099 29, 17, 28, 19, 28, 31, 25, 19,
1100 40, 26, 21, 33, 39, 23, 40, 30,
1101 39, 34, 35, 32, 32, 24, 33, 30,
1102 40, 47, 39, 37, 32, 33, 24, 23,
1103 45, 47, 27, 23, 42, 32, 32, 33,
1104 36, 37, 37, 17, 18, 22, 40, 38,
1105 32, 31, 35, 24, 17, 25, 17, 23,
1106 33, 34, 51, 42, 31, 36, 36, 29,
1107 21, 22, 37, 44, 43, 25, 47, 33,
1108 45, 27, 31, 58, 31, 32, 31, 38,
1109 43, 20, 47, 45, 54, 1, 26, 34,
1110 38, 14, 22, 24, 33, 34, 32, 32,
1111 37, 21, 23, 49, 35, 23, 28, 39,
1112 39, 23, 55, 33, 30, 30, 63, 16,
1113 42, 28, 13, 33, 33, 35, 19, 46,
1114 43, 17, 19, 36, 39, 24, 31, 32,
1115 33, 26, 28, 62, 33, 63, 33, 39,
1116 19, 49, 17, 31, 43, 13, 15, 29,
1117 25, 35, 33, 23, 49, 41, 28, 29,
1118 34, 38, 7, 61, 11, 50, 13, 41,
1119 19, 47, 25, 26, 15, 42, 41, 29,
1120 45, 27, 17, 35, 32, 29, 32, 24,
1121 13, 26, 26, 31, 24, 33, 28, 30,
1122 31, 11, 45, 46, 33, 33, 35, 57,
1123 32, 32, 35, 45, 34, 11, 37, 42,
1124 39, 37, 31, 49, 21, 27, 29, 47,
1125 53, 40, 51, 16, 26, 1, 40, 30,
1126 41, 44, 34, 25, 27, 31, 35, 35,
1127 31, 15, 49, 1, 35, 40, 5, 58,
1128 21, 29, 22, 59, 45, 31, 9, 26,
1129 9, 29, 11, 32, 30, 3, 13, 20,
1130 18, 20, 11, 3, 29, 40, 31, 53,
1131 30, 17, 20, 37, 31, 42, 47, 47,
1132 54, 38, 9, 34, 13, 37, 21, 25,
1133 27, 43, 42, 45, 40, 25, 27, 46,
1134 22, 25, 53, 20, 2, 14, 39, 15,
1135 22, 44, 34, 21, 38, 33, 27, 48,
1136 34, 52, 35, 47, 49, 54, 2, 13,
1137 23, 52, 29, 45, 22, 49, 54, 21,
1138 40, 42, 31, 30, 29, 34, 0, 25,
1139 23, 51, 24, 59, 28, 38, 29, 31,
1140 2, 13, 31, 8, 31, 33, 12, 45,
1141 41, 7, 14, 30, 25, 18, 43, 20,
1142 43, 35, 44, 1, 49, 42, 42, 18,
1143 41, 38, 41, 44, 53, 11, 20, 25,
1144 45, 46, 47, 48, 39, 52, 46, 49,
1145 63, 55, 44, 38, 13, 13, 57, 22,
1146 51, 16, 12, 28, 35, 57, 25, 20,
1147 26, 28, 28, 29, 32, 31, 62, 34,
1148 35, 35, 19, 49, 48, 39, 40, 18,
1149 43, 46, 11, 6, 48, 19, 49, 41,
1150 10, 23, 58, 17, 21, 23, 34, 30,
1151 60, 0, 44, 34, 26, 37, 46, 43,
1152 49, 59, 4, 34, 59, 37, 22, 25,
1153 28, 46, 6, 40, 59, 42, 36, 61,
1154 28, 30, 31, 43, 10, 22, 23, 47,
1155 20, 52, 55, 36, 25, 16, 1, 11,
1156 27, 29, 5, 63, 18, 41, 31, 34,
1157 38, 1, 5, 13, 28, 31, 17, 38,
1158 39, 41, 36, 37, 22, 39, 33, 43,
1159 43, 15, 17, 49, 30, 21, 22, 20,
1160 10, 17, 25, 54, 57, 3, 34, 8,
1161 36, 25, 31, 14, 15, 19, 29, 25,
1162 18, 39, 53, 22, 27, 20, 29, 33,
1163 41, 42, 35, 62, 50, 29, 53, 50,
1164 35, 55, 42, 61, 63, 4, 7, 42,
1165 21, 46, 47, 49, 27, 46, 17, 55,
1166 41, 50, 63, 4, 56, 18, 8, 10,
1167 18, 51, 63, 36, 55, 18, 5, 55,
1168 9, 29, 17, 21, 30, 27, 1, 59,
1169 7, 11, 12, 15, 5, 42, 24, 41,
1170 43, 7, 27, 22, 25, 31, 30, 37,
1171 22, 39, 53, 29, 36, 37, 48, 0,
1172 5, 13, 17, 31, 32, 26, 46, 28,
1173 44, 45, 46, 53, 49, 51, 3, 41,
1174 3, 22, 42, 33, 5, 45, 7, 22,
1175 40, 53, 24, 14, 25, 27, 10, 12,
1176 34, 16, 17, 53, 20, 26, 39, 45,
1177 18, 45, 35, 33, 31, 49, 4, 39,
1178 42, 11, 51, 5, 13, 26, 27, 17,
1179 52, 30, 0, 22, 12, 34, 62, 36,
1180 38, 41, 47, 30, 63, 38, 41, 43,
1181 59, 33, 45, 37, 38, 40, 47, 24,
1182 48, 49, 30, 1, 10, 22, 49, 15,
1183 39, 59, 31, 32, 33, 18, 13, 15,
1184 31, 21, 27, 44, 42, 39, 46, 17,
1185 26, 32, 30, 31, 0, 30, 34, 9,
1186 12, 13, 25, 31, 32, 55, 43, 35,
1187 61, 33, 35, 46, 25, 47, 48, 62,
1188 63, 38, 61, 1, 2, 5, 7, 9,
1189 46, 10, 34, 35, 36, 55, 51, 7,
1190 40, 23, 34, 37, 5, 13, 42, 18,
1194 /* motion vector table 1 */
1195 const UINT16 table1_mv_code[1100] = {
1196 0x0000, 0x0007, 0x0009, 0x000f, 0x000a, 0x0011, 0x001a, 0x001c,
1197 0x0011, 0x0031, 0x0025, 0x002d, 0x002f, 0x006f, 0x0075, 0x0041,
1198 0x004c, 0x004e, 0x005c, 0x0060, 0x0062, 0x0066, 0x0068, 0x0069,
1199 0x006b, 0x00a6, 0x00c1, 0x00cb, 0x00cc, 0x00ce, 0x00da, 0x00e8,
1200 0x00ee, 0x0087, 0x0090, 0x009e, 0x009f, 0x00ba, 0x00ca, 0x00d8,
1201 0x00db, 0x00df, 0x0104, 0x0109, 0x010c, 0x0143, 0x0145, 0x014a,
1202 0x0156, 0x015c, 0x01b3, 0x01d3, 0x01da, 0x0103, 0x0109, 0x010b,
1203 0x0122, 0x0127, 0x0134, 0x0161, 0x0164, 0x0176, 0x0184, 0x018d,
1204 0x018e, 0x018f, 0x0190, 0x0193, 0x0196, 0x019d, 0x019e, 0x019f,
1205 0x01a9, 0x01b2, 0x01b4, 0x01ba, 0x01bb, 0x01bc, 0x0201, 0x0202,
1206 0x0205, 0x0207, 0x020d, 0x0210, 0x0211, 0x0215, 0x021b, 0x021f,
1207 0x0281, 0x0285, 0x0290, 0x029c, 0x029d, 0x02a2, 0x02a7, 0x02a8,
1208 0x02aa, 0x02b0, 0x02b1, 0x02b4, 0x02bc, 0x02bf, 0x0320, 0x0326,
1209 0x0327, 0x0329, 0x032a, 0x0336, 0x0360, 0x0362, 0x0363, 0x0372,
1210 0x03b2, 0x03bc, 0x03bd, 0x0203, 0x0205, 0x021a, 0x0249, 0x024a,
1211 0x024c, 0x02c7, 0x02ca, 0x02ce, 0x02ef, 0x030d, 0x0322, 0x0325,
1212 0x0338, 0x0373, 0x037a, 0x0409, 0x0415, 0x0416, 0x0418, 0x0428,
1213 0x042d, 0x042f, 0x0434, 0x0508, 0x0509, 0x0510, 0x0511, 0x051c,
1214 0x051e, 0x0524, 0x0541, 0x0543, 0x0546, 0x0547, 0x054d, 0x0557,
1215 0x055f, 0x056a, 0x056c, 0x056d, 0x056f, 0x0576, 0x0577, 0x057a,
1216 0x057b, 0x057c, 0x057d, 0x0600, 0x0601, 0x0603, 0x0614, 0x0616,
1217 0x0617, 0x061c, 0x061f, 0x0642, 0x0648, 0x0649, 0x064a, 0x064b,
1218 0x0657, 0x0668, 0x0669, 0x066b, 0x066e, 0x067f, 0x06c2, 0x06c8,
1219 0x06cb, 0x06de, 0x06df, 0x06e2, 0x06e3, 0x06ef, 0x0748, 0x074b,
1220 0x076e, 0x076f, 0x077c, 0x0409, 0x0423, 0x0428, 0x0429, 0x042a,
1221 0x042b, 0x0432, 0x0433, 0x0496, 0x049a, 0x04d5, 0x04db, 0x0581,
1222 0x0582, 0x058b, 0x058c, 0x058d, 0x0598, 0x0599, 0x059a, 0x059e,
1223 0x05dd, 0x0619, 0x0632, 0x0633, 0x0648, 0x0672, 0x06a1, 0x06a2,
1224 0x06a3, 0x06af, 0x06e2, 0x06e3, 0x06e4, 0x0800, 0x0801, 0x0802,
1225 0x0803, 0x081a, 0x081b, 0x0829, 0x082f, 0x0832, 0x083e, 0x083f,
1226 0x0852, 0x0853, 0x0858, 0x086b, 0x0877, 0x0878, 0x0879, 0x087a,
1227 0x087b, 0x0a00, 0x0a01, 0x0a0d, 0x0a0e, 0x0a0f, 0x0a24, 0x0a37,
1228 0x0a3a, 0x0a3b, 0x0a3e, 0x0a46, 0x0a47, 0x0a4a, 0x0a4b, 0x0a5f,
1229 0x0a79, 0x0a7a, 0x0a7b, 0x0a80, 0x0a81, 0x0a84, 0x0a85, 0x0a99,
1230 0x0aa5, 0x0aa6, 0x0ab8, 0x0aba, 0x0abb, 0x0abc, 0x0abd, 0x0ac8,
1231 0x0ace, 0x0acf, 0x0ad7, 0x0adc, 0x0aeb, 0x0c04, 0x0c25, 0x0c26,
1232 0x0c27, 0x0c2a, 0x0c2b, 0x0c3a, 0x0c3b, 0x0c3c, 0x0c3d, 0x0ca0,
1233 0x0cad, 0x0cd4, 0x0cd5, 0x0cfc, 0x0cfd, 0x0d86, 0x0d92, 0x0d93,
1234 0x0d94, 0x0d95, 0x0db0, 0x0db8, 0x0db9, 0x0dba, 0x0dbb, 0x0dc0,
1235 0x0dc2, 0x0dc3, 0x0dda, 0x0ddb, 0x0ddc, 0x0ddd, 0x0e92, 0x0e93,
1236 0x0e94, 0x0e95, 0x0ec7, 0x0ecc, 0x0ece, 0x0ecf, 0x0ed8, 0x0ed9,
1237 0x0eda, 0x0edb, 0x0808, 0x0809, 0x080a, 0x0810, 0x0811, 0x0844,
1238 0x0845, 0x0861, 0x0862, 0x0863, 0x086c, 0x0922, 0x0923, 0x092e,
1239 0x092f, 0x0936, 0x0937, 0x09b1, 0x09b2, 0x09b3, 0x09b4, 0x09b5,
1240 0x09b8, 0x09b9, 0x09ba, 0x09bb, 0x09bc, 0x09bd, 0x09be, 0x09bf,
1241 0x0b00, 0x0b15, 0x0b2c, 0x0b2d, 0x0b2e, 0x0b2f, 0x0b36, 0x0bb9,
1242 0x0c28, 0x0c2a, 0x0c2b, 0x0c2c, 0x0c2d, 0x0c2e, 0x0c2f, 0x0c30,
1243 0x0c31, 0x0c38, 0x0c60, 0x0c61, 0x0c62, 0x0c63, 0x0c8d, 0x0c8e,
1244 0x0c8f, 0x0c92, 0x0cbe, 0x0cbf, 0x0ce6, 0x0ce7, 0x0d40, 0x0d41,
1245 0x0d57, 0x0d58, 0x0d59, 0x0d5a, 0x0d5b, 0x0d5c, 0x0d5d, 0x0d98,
1246 0x0d99, 0x0d9a, 0x0d9b, 0x0d9c, 0x0d9d, 0x0dad, 0x0dae, 0x0daf,
1247 0x0dc0, 0x0dc1, 0x0dc2, 0x0dc3, 0x0dca, 0x0dcb, 0x0dec, 0x0ded,
1248 0x0dee, 0x0def, 0x1018, 0x1022, 0x1023, 0x1030, 0x1031, 0x1032,
1249 0x1033, 0x1050, 0x1051, 0x105c, 0x1074, 0x1075, 0x1076, 0x1077,
1250 0x1078, 0x1079, 0x107a, 0x107b, 0x10b2, 0x10b3, 0x10b8, 0x10b9,
1251 0x10ba, 0x10bb, 0x10d4, 0x10ea, 0x10eb, 0x10ec, 0x10ed, 0x1404,
1252 0x1405, 0x1406, 0x1407, 0x1410, 0x1411, 0x1412, 0x1413, 0x1414,
1253 0x1415, 0x1416, 0x1417, 0x1418, 0x1419, 0x1466, 0x1467, 0x1468,
1254 0x1469, 0x146a, 0x146b, 0x146c, 0x146d, 0x147e, 0x147f, 0x1488,
1255 0x1489, 0x148a, 0x148b, 0x14b6, 0x14b7, 0x14b8, 0x14b9, 0x14ba,
1256 0x14bb, 0x14bc, 0x14bd, 0x14f0, 0x14f1, 0x14f8, 0x14f9, 0x14fa,
1257 0x14fb, 0x14fc, 0x14fd, 0x14fe, 0x14ff, 0x152a, 0x152b, 0x152c,
1258 0x152d, 0x152e, 0x152f, 0x1530, 0x1531, 0x1548, 0x1549, 0x154e,
1259 0x154f, 0x1558, 0x1559, 0x155a, 0x155b, 0x1572, 0x159a, 0x159b,
1260 0x15ac, 0x15ba, 0x15bb, 0x15d0, 0x15d1, 0x15d2, 0x15d3, 0x15d4,
1261 0x15d5, 0x181d, 0x181e, 0x181f, 0x1840, 0x1841, 0x1842, 0x1843,
1262 0x1844, 0x1845, 0x1846, 0x1847, 0x1848, 0x1849, 0x1861, 0x1862,
1263 0x1863, 0x1864, 0x1865, 0x1866, 0x1867, 0x1868, 0x1869, 0x186a,
1264 0x186b, 0x186c, 0x186d, 0x186e, 0x191b, 0x191c, 0x191d, 0x191e,
1265 0x191f, 0x1942, 0x1943, 0x1944, 0x1945, 0x1946, 0x1947, 0x1958,
1266 0x1959, 0x19ed, 0x19ee, 0x19ef, 0x19f0, 0x19f1, 0x19f2, 0x19f3,
1267 0x19f4, 0x19f5, 0x19f6, 0x19f7, 0x1b0e, 0x1b0f, 0x1b62, 0x1b63,
1268 0x1b64, 0x1b65, 0x1b66, 0x1b67, 0x1b68, 0x1b69, 0x1b6a, 0x1b6b,
1269 0x1b6c, 0x1b6d, 0x1b6e, 0x1b6f, 0x1b82, 0x1ba8, 0x1ba9, 0x1baa,
1270 0x1bab, 0x1bac, 0x1bad, 0x1bae, 0x1baf, 0x1bb0, 0x1bb1, 0x1bb2,
1271 0x1bb3, 0x1d80, 0x1d81, 0x1d82, 0x1d83, 0x1d84, 0x1d85, 0x1d86,
1272 0x1d87, 0x1d88, 0x1d89, 0x1d8a, 0x1d8b, 0x1d8c, 0x1d8d, 0x1007,
1273 0x1008, 0x1009, 0x100a, 0x100b, 0x100c, 0x100d, 0x100e, 0x100f,
1274 0x1016, 0x1080, 0x1081, 0x1082, 0x1083, 0x1084, 0x1085, 0x1086,
1275 0x1087, 0x10c0, 0x123a, 0x123b, 0x123c, 0x123d, 0x123e, 0x123f,
1276 0x1240, 0x1241, 0x1242, 0x1243, 0x1350, 0x1352, 0x1353, 0x1358,
1277 0x1359, 0x135a, 0x135b, 0x135c, 0x135d, 0x135e, 0x135f, 0x1360,
1278 0x1361, 0x1602, 0x1603, 0x160c, 0x160d, 0x160e, 0x160f, 0x1620,
1279 0x1621, 0x1622, 0x1623, 0x1624, 0x1625, 0x1626, 0x1627, 0x1628,
1280 0x1629, 0x166e, 0x166f, 0x167c, 0x167d, 0x167e, 0x167f, 0x1770,
1281 0x1771, 0x1852, 0x1853, 0x1872, 0x1873, 0x1874, 0x1875, 0x1876,
1282 0x1877, 0x1878, 0x1879, 0x187a, 0x187b, 0x187c, 0x187d, 0x187e,
1283 0x187f, 0x1918, 0x1919, 0x1926, 0x1927, 0x1970, 0x1971, 0x1972,
1284 0x1973, 0x1974, 0x1975, 0x1976, 0x1977, 0x1978, 0x1979, 0x197a,
1285 0x197b, 0x1aa0, 0x1aa1, 0x1aa2, 0x1aa3, 0x1aa4, 0x1aa5, 0x1aa6,
1286 0x1aa7, 0x1aa8, 0x1aa9, 0x1aaa, 0x1aab, 0x1aac, 0x1aad, 0x1b3c,
1287 0x1b3d, 0x1b3e, 0x1b3f, 0x1b50, 0x1b51, 0x1b52, 0x1b53, 0x1b54,
1288 0x1b55, 0x1b56, 0x1b57, 0x1b58, 0x1b59, 0x2032, 0x2033, 0x2034,
1289 0x2035, 0x2036, 0x2037, 0x2038, 0x2039, 0x203a, 0x203b, 0x203c,
1290 0x203d, 0x203e, 0x203f, 0x2040, 0x2041, 0x2042, 0x2043, 0x20ba,
1291 0x20bb, 0x20cc, 0x20cd, 0x20ce, 0x20cf, 0x20e0, 0x20e1, 0x20e2,
1292 0x20e3, 0x20e4, 0x20e5, 0x20e6, 0x20e7, 0x21aa, 0x21ab, 0x21c0,
1293 0x21c1, 0x21c2, 0x21c3, 0x21c4, 0x21c5, 0x21c6, 0x21c7, 0x21c8,
1294 0x21c9, 0x21ca, 0x21cb, 0x21cc, 0x21cd, 0x21ce, 0x21cf, 0x21d0,
1295 0x21d1, 0x21d2, 0x21d3, 0x2894, 0x2895, 0x2896, 0x2897, 0x2898,
1296 0x2899, 0x289a, 0x289b, 0x289c, 0x289d, 0x289e, 0x289f, 0x28c0,
1297 0x28c1, 0x28c2, 0x28c3, 0x28c4, 0x28c5, 0x28c6, 0x28c7, 0x28c8,
1298 0x28c9, 0x28ca, 0x28cb, 0x2930, 0x2931, 0x2932, 0x2933, 0x2934,
1299 0x2935, 0x2936, 0x2937, 0x2938, 0x2939, 0x293a, 0x293b, 0x293c,
1300 0x293d, 0x293e, 0x293f, 0x2960, 0x2961, 0x2962, 0x2963, 0x2964,
1301 0x2965, 0x2966, 0x2967, 0x2968, 0x2969, 0x296a, 0x296b, 0x2a40,
1302 0x2a41, 0x2a42, 0x2a43, 0x2a44, 0x2a45, 0x2a46, 0x2a47, 0x2a48,
1303 0x2a49, 0x2a4a, 0x2a4b, 0x2a4c, 0x2a4d, 0x2a4e, 0x2a4f, 0x2a50,
1304 0x2a51, 0x2a52, 0x2a53, 0x2ae6, 0x2ae7, 0x2b24, 0x2b25, 0x2b26,
1305 0x2b27, 0x2b28, 0x2b29, 0x2b2a, 0x2b2b, 0x2b2c, 0x2b2d, 0x2b2e,
1306 0x2b2f, 0x2b30, 0x2b31, 0x2b32, 0x2b33, 0x2b5a, 0x2b5b, 0x3014,
1307 0x3015, 0x3016, 0x3017, 0x3020, 0x3021, 0x3022, 0x3023, 0x3024,
1308 0x3025, 0x3026, 0x3027, 0x3028, 0x3029, 0x302a, 0x302b, 0x302c,
1309 0x302d, 0x302e, 0x302f, 0x3030, 0x3031, 0x3032, 0x3033, 0x3034,
1310 0x3035, 0x3036, 0x3037, 0x3038, 0x3039, 0x30c0, 0x30c1, 0x30de,
1311 0x30df, 0x3218, 0x3219, 0x321a, 0x321b, 0x321c, 0x321d, 0x321e,
1312 0x321f, 0x3220, 0x3221, 0x3222, 0x3223, 0x3224, 0x3225, 0x3226,
1313 0x3227, 0x3228, 0x3229, 0x322a, 0x322b, 0x322c, 0x322d, 0x322e,
1314 0x322f, 0x3230, 0x3231, 0x3232, 0x3233, 0x3234, 0x3235, 0x3378,
1315 0x3379, 0x337a, 0x337b, 0x337c, 0x337d, 0x337e, 0x337f, 0x33c0,
1316 0x33c1, 0x33c2, 0x33c3, 0x33c4, 0x33c5, 0x33c6, 0x33c7, 0x33c8,
1317 0x33c9, 0x33ca, 0x33cb, 0x33cc, 0x33cd, 0x33ce, 0x33cf, 0x33d0,
1318 0x33d1, 0x33d2, 0x33d3, 0x33d4, 0x33d5, 0x33d6, 0x33d7, 0x33d8,
1319 0x33d9, 0x3706, 0x3707, 0x3730, 0x3731, 0x3732, 0x3733, 0x3734,
1320 0x3735, 0x3736, 0x3737, 0x3738, 0x3739, 0x373a, 0x373b, 0x373c,
1321 0x373d, 0x373e, 0x373f, 0x3740, 0x3741, 0x3742, 0x3743, 0x3744,
1322 0x3745, 0x3746, 0x3747, 0x3748, 0x3749, 0x374a, 0x374b, 0x374c,
1323 0x374d, 0x374e, 0x374f, 0x3b34, 0x3b35, 0x3b36, 0x3b37, 0x3be8,
1324 0x3be9, 0x3bea, 0x3beb, 0x3bec, 0x3bed, 0x3bee, 0x3bef, 0x3bf0,
1325 0x3bf1, 0x3bf2, 0x3bf3, 0x3bf4, 0x3bf5, 0x3bf6, 0x3bf7, 0x3bf8,
1326 0x3bf9, 0x3bfa, 0x3bfb, 0x3bfc, 0x3bfd, 0x3bfe, 0x3bff, 0x2000,
1327 0x2001, 0x2002, 0x2003, 0x2004, 0x2005, 0x2006, 0x2007, 0x2008,
1328 0x2009, 0x200a, 0x200b, 0x200c, 0x200d, 0x202e, 0x202f, 0x2182,
1329 0x2183, 0x21b4, 0x21b5, 0x21b6, 0x21b7, 0x21b8, 0x21b9, 0x21ba,
1330 0x21bb, 0x21bc, 0x21bd, 0x21be, 0x21bf, 0x2460, 0x2461, 0x2462,
1331 0x2463, 0x2464, 0x2465, 0x2466, 0x2467, 0x2468, 0x2469, 0x246a,
1332 0x246b, 0x246c, 0x246d, 0x246e, 0x246f, 0x2470, 0x2471, 0x2472,
1333 0x2473, 0x26a2, 0x26a3, 0x000b,
1336 const UINT8 table1_mv_bits[1100] = {
1337 2, 4, 4, 4, 5, 5, 5, 5,
1338 6, 6, 7, 7, 7, 7, 7, 8,
1339 8, 8, 8, 8, 8, 8, 8, 8,
1340 8, 8, 8, 8, 8, 8, 8, 8,
1341 8, 9, 9, 9, 9, 9, 9, 9,
1342 9, 9, 9, 9, 9, 9, 9, 9,
1343 9, 9, 9, 9, 9, 10, 10, 10,
1344 10, 10, 10, 10, 10, 10, 10, 10,
1345 10, 10, 10, 10, 10, 10, 10, 10,
1346 10, 10, 10, 10, 10, 10, 10, 10,
1347 10, 10, 10, 10, 10, 10, 10, 10,
1348 10, 10, 10, 10, 10, 10, 10, 10,
1349 10, 10, 10, 10, 10, 10, 10, 10,
1350 10, 10, 10, 10, 10, 10, 10, 10,
1351 10, 10, 10, 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, 11, 11, 11, 11, 11,
1355 11, 11, 11, 11, 11, 11, 11, 11,
1356 11, 11, 11, 11, 11, 11, 11, 11,
1357 11, 11, 11, 11, 11, 11, 11, 11,
1358 11, 11, 11, 11, 11, 11, 11, 11,
1359 11, 11, 11, 11, 11, 11, 11, 11,
1360 11, 11, 11, 11, 11, 11, 11, 11,
1361 11, 11, 11, 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, 12, 12, 12, 12, 12, 12,
1372 12, 12, 12, 12, 12, 12, 12, 12,
1373 12, 12, 12, 12, 12, 12, 12, 12,
1374 12, 12, 12, 12, 12, 12, 12, 12,
1375 12, 12, 12, 12, 12, 12, 12, 12,
1376 12, 12, 12, 12, 12, 12, 12, 12,
1377 12, 12, 12, 12, 12, 12, 12, 12,
1378 12, 12, 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, 13,
1407 13, 13, 13, 13, 13, 13, 13, 13,
1408 13, 13, 13, 13, 13, 13, 13, 13,
1409 13, 13, 13, 13, 13, 13, 13, 13,
1410 13, 13, 13, 13, 13, 13, 13, 13,
1411 13, 13, 13, 13, 13, 13, 13, 13,
1412 13, 13, 13, 13, 13, 13, 13, 13,
1413 13, 13, 13, 13, 13, 13, 13, 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, 14,
1461 14, 14, 14, 14, 14, 14, 14, 14,
1462 14, 14, 14, 14, 14, 14, 14, 14,
1463 14, 14, 14, 14, 14, 14, 14, 14,
1464 14, 14, 14, 14, 14, 14, 14, 14,
1465 14, 14, 14, 14, 14, 14, 14, 14,
1466 14, 14, 14, 14, 14, 14, 14, 14,
1467 14, 14, 14, 14, 14, 14, 14, 15,
1468 15, 15, 15, 15, 15, 15, 15, 15,
1469 15, 15, 15, 15, 15, 15, 15, 15,
1470 15, 15, 15, 15, 15, 15, 15, 15,
1471 15, 15, 15, 15, 15, 15, 15, 15,
1472 15, 15, 15, 15, 15, 15, 15, 15,
1473 15, 15, 15, 15, 15, 15, 15, 15,
1477 const UINT8 table1_mvx[1099] = {
1478 32, 31, 32, 31, 33, 32, 33, 33,
1479 31, 34, 30, 32, 32, 34, 35, 32,
1480 34, 33, 29, 30, 30, 32, 31, 31,
1481 33, 35, 35, 33, 31, 29, 29, 33,
1482 34, 30, 31, 28, 36, 30, 34, 32,
1483 32, 37, 32, 32, 25, 27, 39, 32,
1484 32, 32, 38, 35, 36, 32, 37, 61,
1485 26, 32, 34, 35, 3, 35, 27, 28,
1486 29, 34, 28, 37, 31, 36, 32, 27,
1487 31, 30, 29, 39, 33, 29, 33, 35,
1488 25, 25, 29, 33, 31, 31, 31, 33,
1489 32, 30, 32, 32, 41, 39, 33, 36,
1490 32, 28, 34, 36, 38, 24, 60, 31,
1491 23, 28, 32, 33, 59, 32, 40, 30,
1492 5, 34, 32, 38, 32, 30, 43, 4,
1493 32, 32, 42, 31, 31, 32, 26, 38,
1494 26, 22, 21, 37, 61, 63, 37, 31,
1495 32, 33, 2, 1, 23, 33, 41, 27,
1496 35, 30, 38, 23, 33, 3, 28, 34,
1497 34, 27, 41, 29, 39, 35, 36, 29,
1498 32, 27, 30, 32, 24, 61, 37, 26,
1499 59, 25, 35, 27, 36, 37, 30, 31,
1500 34, 40, 3, 28, 34, 39, 32, 31,
1501 32, 30, 24, 28, 35, 36, 26, 32,
1502 31, 33, 29, 33, 39, 25, 30, 24,
1503 35, 59, 29, 34, 25, 30, 21, 35,
1504 43, 40, 32, 29, 5, 28, 31, 62,
1505 33, 33, 25, 31, 21, 31, 43, 31,
1506 34, 33, 20, 40, 39, 31, 31, 57,
1507 38, 32, 42, 33, 32, 31, 32, 29,
1508 30, 44, 5, 31, 22, 34, 36, 17,
1509 38, 58, 38, 35, 32, 60, 35, 24,
1510 32, 38, 16, 45, 42, 32, 31, 29,
1511 4, 30, 17, 40, 46, 48, 63, 32,
1512 42, 19, 41, 22, 28, 36, 45, 33,
1513 33, 32, 29, 7, 41, 42, 18, 33,
1514 33, 32, 22, 37, 1, 26, 22, 23,
1515 49, 28, 26, 27, 32, 33, 27, 23,
1516 28, 36, 15, 6, 34, 27, 31, 26,
1517 23, 2, 33, 32, 34, 41, 28, 32,
1518 41, 0, 36, 38, 34, 31, 47, 32,
1519 17, 31, 39, 33, 37, 51, 30, 47,
1520 32, 50, 32, 19, 63, 30, 25, 27,
1521 33, 62, 24, 31, 27, 30, 37, 31,
1522 45, 32, 39, 20, 46, 47, 35, 19,
1523 34, 1, 49, 21, 21, 14, 51, 26,
1524 23, 31, 36, 35, 58, 29, 29, 21,
1525 20, 42, 13, 28, 12, 40, 31, 33,
1526 39, 60, 32, 44, 33, 31, 28, 37,
1527 29, 32, 30, 49, 43, 28, 39, 25,
1528 32, 48, 2, 15, 20, 25, 31, 28,
1529 21, 24, 25, 15, 31, 17, 37, 43,
1530 18, 32, 33, 24, 33, 36, 13, 33,
1531 31, 39, 11, 31, 33, 32, 39, 37,
1532 32, 32, 29, 17, 44, 46, 36, 35,
1533 26, 37, 58, 32, 34, 38, 8, 38,
1534 38, 22, 29, 25, 16, 35, 32, 35,
1535 33, 43, 18, 46, 38, 50, 33, 18,
1536 53, 60, 13, 32, 36, 33, 51, 36,
1537 43, 45, 27, 42, 29, 24, 30, 25,
1538 31, 52, 31, 35, 38, 9, 22, 34,
1539 4, 17, 28, 55, 42, 25, 17, 20,
1540 47, 34, 33, 16, 40, 25, 16, 30,
1541 53, 29, 10, 11, 14, 26, 33, 4,
1542 35, 44, 26, 16, 31, 26, 34, 38,
1543 29, 31, 30, 24, 22, 61, 32, 9,
1544 45, 34, 31, 19, 9, 31, 46, 31,
1545 35, 54, 29, 57, 30, 50, 3, 31,
1546 63, 34, 47, 41, 51, 18, 31, 14,
1547 37, 38, 31, 24, 32, 31, 50, 33,
1548 31, 54, 27, 9, 33, 23, 19, 32,
1549 29, 29, 33, 28, 47, 49, 30, 47,
1550 33, 27, 25, 54, 44, 45, 50, 58,
1551 51, 48, 33, 59, 33, 34, 57, 13,
1552 26, 33, 13, 48, 30, 11, 7, 56,
1553 34, 55, 26, 0, 26, 35, 1, 51,
1554 33, 53, 31, 45, 12, 29, 29, 51,
1555 31, 48, 2, 6, 34, 30, 28, 33,
1556 60, 40, 27, 46, 31, 9, 35, 29,
1557 31, 39, 55, 46, 19, 37, 62, 34,
1558 30, 16, 19, 49, 41, 41, 39, 37,
1559 14, 5, 13, 35, 55, 30, 40, 40,
1560 42, 8, 20, 25, 45, 35, 33, 36,
1561 54, 38, 27, 37, 62, 40, 15, 59,
1562 49, 31, 29, 34, 34, 39, 24, 29,
1563 25, 29, 21, 29, 10, 61, 33, 49,
1564 35, 34, 3, 38, 39, 29, 7, 41,
1565 1, 35, 4, 23, 15, 23, 11, 37,
1566 28, 35, 30, 30, 24, 1, 43, 56,
1567 8, 34, 42, 24, 45, 30, 20, 23,
1568 8, 38, 22, 33, 17, 52, 34, 22,
1569 53, 43, 44, 1, 27, 31, 41, 43,
1570 41, 30, 31, 36, 30, 5, 55, 31,
1571 33, 30, 40, 23, 15, 29, 34, 34,
1572 59, 34, 30, 11, 13, 38, 5, 0,
1573 30, 42, 5, 30, 29, 34, 10, 44,
1574 30, 63, 35, 12, 3, 26, 15, 17,
1575 25, 34, 43, 39, 34, 56, 29, 23,
1576 30, 12, 30, 10, 35, 9, 24, 58,
1577 10, 12, 54, 33, 37, 20, 41, 35,
1578 29, 18, 61, 30, 40, 24, 39, 53,
1579 62, 26, 29, 33, 34, 53, 49, 21,
1580 27, 11, 63, 20, 26, 23, 7, 13,
1581 6, 47, 29, 30, 9, 51, 22, 34,
1582 21, 25, 33, 56, 57, 30, 38, 51,
1583 51, 38, 63, 28, 40, 35, 33, 18,
1584 33, 33, 24, 58, 58, 34, 49, 29,
1585 43, 4, 1, 4, 42, 35, 35, 30,
1586 17, 5, 56, 61, 25, 37, 36, 55,
1587 28, 35, 29, 50, 48, 52, 2, 42,
1588 34, 40, 46, 46, 43, 35, 29, 48,
1589 20, 29, 31, 41, 7, 30, 35, 19,
1590 14, 21, 8, 39, 39, 40, 46, 55,
1591 34, 6, 30, 34, 37, 25, 37, 33,
1592 22, 44, 52, 17, 35, 29, 36, 35,
1593 40, 37, 28, 30, 50, 14, 28, 55,
1594 6, 23, 19, 14, 30, 3, 30, 28,
1595 28, 61, 61, 47, 45, 48, 40, 40,
1596 34, 34, 25, 30, 29, 35, 4, 26,
1597 53, 50, 26, 41, 27, 59, 27, 38,
1598 39, 3, 50, 43, 47, 23, 33, 55,
1599 35, 21, 23, 35, 61, 33, 46, 52,
1600 35, 34, 24, 30, 43, 16, 37, 21,
1601 2, 24, 45, 34, 30, 55, 55, 1,
1602 29, 29, 26, 28, 25, 31, 36, 22,
1603 17, 30, 52, 2, 44, 44, 57, 26,
1604 62, 41, 39, 57, 26, 46, 49, 11,
1605 16, 19, 5, 59, 38, 39, 58, 38,
1606 25, 49, 50, 22, 28, 59, 9, 59,
1607 7, 28, 55, 17, 4, 35, 50, 21,
1608 29, 44, 47, 18, 24, 19, 25, 42,
1609 35, 3, 51, 35, 16, 35, 30, 63,
1610 57, 39, 39, 25, 35, 38, 9, 16,
1611 36, 45, 31, 60, 14, 34, 42, 24,
1612 0, 37, 18, 61, 57, 37, 28, 53,
1613 20, 46, 14, 47, 38, 38, 38, 9,
1614 34, 39, 43, 17, 39, 59, 5, 27,
1618 const UINT8 table1_mvy[1099] = {
1619 32, 32, 31, 31, 32, 33, 31, 33,
1620 33, 32, 32, 30, 34, 31, 32, 29,
1621 33, 30, 32, 33, 31, 35, 34, 30,
1622 34, 31, 33, 29, 29, 31, 33, 35,
1623 30, 30, 35, 32, 32, 34, 34, 28,
1624 25, 32, 36, 27, 32, 32, 32, 37,
1625 39, 3, 32, 30, 31, 26, 31, 32,
1626 32, 38, 29, 29, 32, 34, 31, 31,
1627 34, 35, 33, 33, 28, 33, 1, 33,
1628 27, 29, 30, 31, 28, 29, 37, 35,
1629 31, 33, 35, 27, 36, 37, 25, 25,
1630 61, 35, 4, 5, 32, 33, 36, 30,
1631 23, 30, 28, 34, 31, 32, 32, 39,
1632 32, 34, 21, 39, 32, 59, 32, 28,
1633 32, 36, 60, 33, 24, 36, 32, 32,
1634 41, 2, 32, 38, 26, 22, 33, 30,
1635 31, 32, 32, 30, 31, 32, 29, 3,
1636 40, 38, 32, 32, 33, 26, 31, 34,
1637 28, 38, 34, 31, 3, 31, 35, 38,
1638 27, 35, 33, 28, 29, 27, 29, 27,
1639 43, 29, 37, 63, 31, 33, 34, 30,
1640 31, 30, 37, 30, 35, 35, 26, 41,
1641 37, 31, 33, 28, 26, 30, 42, 24,
1642 7, 27, 33, 29, 36, 28, 34, 57,
1643 23, 41, 36, 23, 35, 34, 25, 30,
1644 25, 33, 25, 25, 29, 24, 33, 39,
1645 33, 33, 0, 37, 31, 36, 21, 32,
1646 61, 24, 35, 61, 31, 5, 31, 59,
1647 39, 21, 32, 30, 34, 22, 40, 32,
1648 29, 16, 31, 5, 62, 2, 20, 39,
1649 39, 32, 33, 1, 31, 24, 36, 32,
1650 36, 32, 28, 26, 6, 31, 38, 34,
1651 58, 35, 32, 33, 33, 17, 43, 26,
1652 31, 40, 31, 34, 32, 32, 31, 19,
1653 30, 32, 29, 33, 38, 38, 32, 59,
1654 40, 18, 38, 32, 35, 34, 32, 17,
1655 1, 15, 30, 28, 31, 28, 34, 29,
1656 32, 27, 35, 27, 49, 22, 37, 34,
1657 37, 26, 32, 32, 22, 28, 45, 29,
1658 30, 31, 43, 46, 41, 30, 26, 13,
1659 34, 32, 27, 38, 42, 42, 33, 47,
1660 33, 60, 27, 42, 25, 32, 22, 32,
1661 48, 32, 45, 33, 33, 41, 27, 25,
1662 19, 31, 35, 19, 36, 42, 27, 17,
1663 31, 44, 28, 33, 33, 31, 23, 31,
1664 40, 33, 31, 34, 30, 32, 33, 36,
1665 35, 47, 37, 41, 31, 23, 41, 29,
1666 30, 35, 32, 25, 32, 28, 58, 2,
1667 37, 33, 14, 33, 49, 20, 39, 36,
1668 21, 9, 23, 33, 35, 24, 39, 37,
1669 11, 33, 30, 31, 31, 28, 51, 40,
1670 35, 29, 25, 33, 46, 35, 37, 30,
1671 30, 8, 63, 28, 15, 40, 33, 45,
1672 49, 25, 32, 4, 47, 51, 36, 39,
1673 53, 10, 24, 29, 30, 31, 25, 40,
1674 38, 38, 33, 56, 23, 27, 32, 37,
1675 26, 29, 43, 36, 33, 24, 55, 43,
1676 9, 29, 34, 34, 24, 33, 18, 33,
1677 33, 30, 31, 50, 24, 60, 30, 39,
1678 34, 30, 39, 28, 22, 38, 2, 26,
1679 63, 32, 57, 21, 39, 33, 28, 18,
1680 30, 34, 22, 33, 29, 41, 30, 34,
1681 35, 21, 13, 34, 35, 39, 30, 46,
1682 32, 42, 32, 31, 33, 26, 11, 33,
1683 22, 31, 25, 31, 53, 27, 43, 25,
1684 40, 50, 21, 36, 38, 30, 12, 31,
1685 34, 20, 15, 29, 32, 62, 30, 13,
1686 17, 32, 19, 31, 20, 31, 30, 7,
1687 1, 17, 34, 37, 31, 31, 44, 34,
1688 26, 40, 16, 37, 52, 48, 30, 20,
1689 18, 33, 38, 29, 7, 25, 30, 54,
1690 45, 47, 46, 41, 29, 29, 16, 30,
1691 14, 26, 38, 34, 34, 29, 34, 30,
1692 29, 30, 57, 30, 4, 46, 33, 29,
1693 39, 44, 30, 31, 50, 33, 31, 32,
1694 19, 32, 40, 31, 37, 47, 1, 35,
1695 16, 31, 0, 35, 33, 1, 17, 34,
1696 9, 34, 33, 31, 49, 43, 42, 51,
1697 34, 29, 23, 29, 14, 30, 45, 49,
1698 11, 24, 31, 28, 35, 41, 30, 44,
1699 18, 29, 34, 35, 36, 25, 26, 21,
1700 31, 30, 34, 19, 34, 44, 36, 38,
1701 25, 31, 28, 23, 37, 3, 55, 41,
1702 30, 22, 41, 24, 33, 26, 35, 35,
1703 30, 55, 51, 47, 48, 38, 24, 15,
1704 21, 50, 25, 46, 30, 29, 10, 34,
1705 42, 45, 29, 42, 22, 3, 33, 27,
1706 34, 1, 34, 28, 34, 36, 35, 23,
1707 23, 13, 58, 3, 26, 63, 25, 31,
1708 34, 61, 38, 39, 25, 61, 29, 37,
1709 30, 41, 26, 48, 28, 33, 50, 35,
1710 30, 37, 29, 29, 40, 6, 39, 28,
1711 28, 19, 8, 22, 45, 34, 35, 10,
1712 58, 17, 37, 39, 30, 18, 54, 14,
1713 29, 16, 59, 30, 35, 23, 35, 30,
1714 47, 36, 29, 55, 20, 12, 31, 35,
1715 14, 29, 18, 34, 34, 24, 29, 26,
1716 22, 2, 27, 23, 8, 30, 55, 38,
1717 60, 31, 4, 34, 49, 34, 27, 34,
1718 33, 30, 31, 54, 42, 35, 38, 46,
1719 44, 26, 27, 9, 39, 25, 21, 29,
1720 28, 42, 13, 0, 5, 34, 37, 28,
1721 24, 29, 63, 26, 22, 27, 29, 25,
1722 33, 25, 61, 0, 35, 25, 36, 15,
1723 27, 40, 53, 33, 3, 10, 16, 37,
1724 38, 18, 30, 46, 27, 9, 6, 29,
1725 62, 8, 42, 28, 29, 3, 25, 16,
1726 26, 29, 35, 28, 27, 51, 61, 48,
1727 37, 9, 34, 7, 49, 45, 20, 29,
1728 21, 5, 5, 29, 28, 34, 29, 24,
1729 10, 24, 35, 36, 38, 55, 11, 36,
1730 38, 53, 54, 26, 30, 49, 20, 27,
1731 30, 39, 33, 41, 49, 22, 38, 38,
1732 4, 30, 8, 9, 3, 24, 22, 50,
1733 37, 36, 31, 27, 2, 9, 42, 63,
1734 25, 19, 44, 1, 28, 28, 48, 30,
1735 34, 41, 41, 38, 12, 27, 15, 0,
1736 16, 34, 35, 38, 28, 29, 40, 42,
1737 51, 52, 45, 54, 59, 59, 42, 44,
1738 37, 26, 46, 24, 15, 39, 22, 46,
1739 19, 35, 38, 17, 37, 23, 52, 55,
1740 50, 37, 26, 11, 37, 12, 24, 30,
1741 16, 13, 22, 13, 36, 35, 40, 41,
1742 34, 41, 26, 53, 51, 5, 21, 30,
1743 2, 63, 41, 20, 1, 56, 21, 24,
1744 25, 5, 28, 35, 26, 28, 30, 18,
1745 29, 23, 40, 34, 20, 42, 39, 34,
1746 28, 61, 38, 27, 62, 9, 36, 17,
1747 9, 49, 24, 25, 54, 34, 39, 37,
1748 3, 1, 25, 38, 38, 44, 35, 36,
1749 12, 60, 36, 38, 40, 25, 43, 39,
1750 53, 28, 39, 57, 46, 10, 52, 27,
1751 35, 42, 45, 59, 15, 60, 38, 24,
1752 23, 39, 12, 29, 24, 0, 20, 16,
1753 28, 43, 35, 28, 1, 49, 4, 21,
1754 42, 39, 29, 3, 44, 21, 53, 55,
1755 11, 5, 3, 39, 53, 28, 25, 19,
1759 static MVTable mv_tables[2] = {
1776 static const UINT8 v2_mb_type[8][2] = {
1777 {1, 1}, {0 , 2}, {3 , 3}, {9 , 5},
1778 {5, 4}, {0x21, 7}, {0x20, 7}, {0x11, 6},
1781 static const UINT8 v2_intra_cbpc[4][2] = {
1782 {1, 1}, {0, 3}, {1, 3}, {1, 2},