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