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