rename vector_fmul_add() vector_fmul_reverse_c() and make them static.
[paraslash.git] / wmadata.h
1 /*
2 * WMA compatible decoder
3 * copyright (c) 2002 The FFmpeg Project
4 *
5 * This file is part of FFmpeg.
6 *
7 * FFmpeg is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Lesser General Public
9 * License as published by the Free Software Foundation; either
10 * version 2.1 of the License, or (at your option) any later version.
11 *
12 * FFmpeg is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with FFmpeg; if not, write to the Free Software
19 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
20 */
21
22 /**
23 * \file wmadata.h Various WMA tables.
24 */
25
26 struct coef_vlc_table {
27 /** Total number of codes. */
28 int n;
29 /** Number of levels. */
30 int max_level;
31 /** VLC bit values. */
32 const uint32_t *huffcodes;
33 /** VLC bit size. */
34 const uint8_t *huffbits;
35 /* Table to build run/level tables. */
36 const uint16_t *levels;
37 };
38
39 static const uint16_t wma_critical_freqs[25] = {
40 100, 200, 300, 400, 510, 630, 770, 920,
41 1080, 1270, 1480, 1720, 2000, 2320, 2700, 3150,
42 3700, 4400, 5300, 6400, 7700, 9500, 12000, 15500,
43 24500,
44 };
45
46 /* first value is number of bands */
47 static const uint8_t exponent_band_22050[3][25] = {
48 {10, 4, 8, 4, 8, 8, 12, 20, 24, 24, 16,},
49 {14, 4, 8, 8, 4, 12, 12, 16, 24, 16, 20, 24, 32, 40, 36,},
50 {23, 4, 4, 4, 8, 4, 4, 8, 8, 8, 8, 8, 12, 12, 16, 16, 24, 24, 32, 44,
51 48, 60, 84, 72,},
52 };
53
54 static const uint8_t exponent_band_32000[3][25] = {
55 {11, 4, 4, 8, 4, 4, 12, 16, 24, 20, 28, 4,},
56 {15, 4, 8, 4, 4, 8, 8, 16, 20, 12, 20, 20, 28, 40, 56, 8,},
57 {16, 8, 4, 8, 8, 12, 16, 20, 24, 40, 32, 32, 44, 56, 80, 112, 16,},
58 };
59
60 static const uint8_t exponent_band_44100[3][25] = {
61 {12, 4, 4, 4, 4, 4, 8, 8, 8, 12, 16, 20, 36,},
62 {15, 4, 8, 4, 8, 8, 4, 8, 8, 12, 12, 12, 24, 28, 40, 76,},
63 {17, 4, 8, 8, 4, 12, 12, 8, 8, 24, 16, 20, 24, 32, 40, 60, 80, 152,},
64 };
65
66 const uint16_t ff_wma_hgain_huffcodes[37] = {
67 0x00003, 0x002e7, 0x00001, 0x005cd, 0x0005d, 0x005c9, 0x0005e, 0x00003,
68 0x00016, 0x0000b, 0x00001, 0x00006, 0x00001, 0x00006, 0x00004, 0x00005,
69 0x00004, 0x00007, 0x00003, 0x00007, 0x00004, 0x0000a, 0x0000a, 0x00002,
70 0x00003, 0x00000, 0x00005, 0x00002, 0x0005f, 0x00004, 0x00003, 0x00002,
71 0x005c8, 0x000b8, 0x005ca, 0x005cb, 0x005cc,
72 };
73
74 const uint8_t ff_wma_hgain_huffbits[37] = {
75 10, 12, 10, 13, 9, 13, 9, 8,
76 7, 5, 5, 4, 4, 3, 3, 3,
77 4, 3, 4, 4, 5, 5, 6, 8,
78 7, 10, 8, 10, 9, 8, 9, 9,
79 13, 10, 13, 13, 13,
80 };
81
82 #define NB_LSP_COEFS 10
83
84 const float ff_wma_lsp_codebook[NB_LSP_COEFS][16] = {
85 {1.98732877, 1.97944528, 1.97179088, 1.96260549, 1.95038374, 1.93336114,
86 1.90719232, 1.86191415,},
87 {1.97260000, 1.96083160, 1.94982586, 1.93806164, 1.92516608, 1.91010199,
88 1.89232331, 1.87149812,
89 1.84564818, 1.81358067, 1.77620070, 1.73265264, 1.67907855, 1.60959081,
90 1.50829650, 1.33120330,},
91 {1.90109110, 1.86482426, 1.83419671, 1.80168452, 1.76650116, 1.72816320,
92 1.68502700, 1.63738256,
93 1.58501580, 1.51795181, 1.43679906, 1.33950585, 1.24176208, 1.12260729,
94 0.96749668, 0.74048265,},
95 {1.76943864, 1.67822463, 1.59946365, 1.53560582, 1.47470796, 1.41210167,
96 1.34509536, 1.27339507,
97 1.19303814, 1.09765169, 0.98818722, 0.87239446, 0.74369172, 0.59768184,
98 0.43168630, 0.17977021,},
99 {1.43428349, 1.32038354, 1.21074086, 1.10577988, 1.00561746, 0.90335924,
100 0.80437489, 0.70709671,
101 0.60427395, 0.49814048, 0.38509539, 0.27106800, 0.14407416, 0.00219910,
102 -0.16725141, -0.36936085,},
103 {0.99895687, 0.84188166, 0.70753739, 0.57906595, 0.47055563, 0.36966965,
104 0.26826648, 0.17163380,
105 0.07208392, -0.03062936, -1.40037388, -0.25128968, -0.37213937,
106 -0.51075646, -0.64887512, -0.80308031,},
107 {0.26515280, 0.06313551, -0.08872080, -0.21103548, -0.31069678,
108 -0.39680323, -0.47223474, -0.54167135,
109 -0.61444740, -0.68943343, -0.76580211, -0.85170082, -0.95289061,
110 -1.06514703, -1.20510707, -1.37617746,},
111 {-0.53940301, -0.73770929, -0.88424876, -1.01117930, -1.13389091,
112 -1.26830073, -1.42041987, -1.62033919,
113 -1.10158808, -1.16512566, -1.23337128, -1.30414401, -1.37663312,
114 -1.46853845, -1.57625798, -1.66893638,},
115 {-0.38601997, -0.56009350, -0.66978483, -0.76028471, -0.83846064,
116 -0.90868087, -0.97408881, -1.03694962,},
117 {-1.56144989, -1.65944032, -1.72689685, -1.77857740, -1.82203011,
118 -1.86220079, -1.90283983, -1.94820479,},
119 };
120
121 const uint32_t ff_wma_scale_huffcodes[121] = {
122 0x3ffe8, 0x3ffe6, 0x3ffe7, 0x3ffe5, 0x7fff5, 0x7fff1, 0x7ffed, 0x7fff6,
123 0x7ffee, 0x7ffef, 0x7fff0, 0x7fffc, 0x7fffd, 0x7ffff, 0x7fffe, 0x7fff7,
124 0x7fff8, 0x7fffb, 0x7fff9, 0x3ffe4, 0x7fffa, 0x3ffe3, 0x1ffef, 0x1fff0,
125 0x0fff5, 0x1ffee, 0x0fff2, 0x0fff3, 0x0fff4, 0x0fff1, 0x07ff6, 0x07ff7,
126 0x03ff9, 0x03ff5, 0x03ff7, 0x03ff3, 0x03ff6, 0x03ff2, 0x01ff7, 0x01ff5,
127 0x00ff9, 0x00ff7, 0x00ff6, 0x007f9, 0x00ff4, 0x007f8, 0x003f9, 0x003f7,
128 0x003f5, 0x001f8, 0x001f7, 0x000fa, 0x000f8, 0x000f6, 0x00079, 0x0003a,
129 0x00038, 0x0001a, 0x0000b, 0x00004, 0x00000, 0x0000a, 0x0000c, 0x0001b,
130 0x00039, 0x0003b, 0x00078, 0x0007a, 0x000f7, 0x000f9, 0x001f6, 0x001f9,
131 0x003f4, 0x003f6, 0x003f8, 0x007f5, 0x007f4, 0x007f6, 0x007f7, 0x00ff5,
132 0x00ff8, 0x01ff4, 0x01ff6, 0x01ff8, 0x03ff8, 0x03ff4, 0x0fff0, 0x07ff4,
133 0x0fff6, 0x07ff5, 0x3ffe2, 0x7ffd9, 0x7ffda, 0x7ffdb, 0x7ffdc, 0x7ffdd,
134 0x7ffde, 0x7ffd8, 0x7ffd2, 0x7ffd3, 0x7ffd4, 0x7ffd5, 0x7ffd6, 0x7fff2,
135 0x7ffdf, 0x7ffe7, 0x7ffe8, 0x7ffe9, 0x7ffea, 0x7ffeb, 0x7ffe6, 0x7ffe0,
136 0x7ffe1, 0x7ffe2, 0x7ffe3, 0x7ffe4, 0x7ffe5, 0x7ffd7, 0x7ffec, 0x7fff4,
137 0x7fff3,
138 };
139
140 const uint8_t ff_wma_scale_huffbits[121] = {
141 18, 18, 18, 18, 19, 19, 19, 19,
142 19, 19, 19, 19, 19, 19, 19, 19,
143 19, 19, 19, 18, 19, 18, 17, 17,
144 16, 17, 16, 16, 16, 16, 15, 15,
145 14, 14, 14, 14, 14, 14, 13, 13,
146 12, 12, 12, 11, 12, 11, 10, 10,
147 10, 9, 9, 8, 8, 8, 7, 6,
148 6, 5, 4, 3, 1, 4, 4, 5,
149 6, 6, 7, 7, 8, 8, 9, 9,
150 10, 10, 10, 11, 11, 11, 11, 12,
151 12, 13, 13, 13, 14, 14, 16, 15,
152 16, 15, 18, 19, 19, 19, 19, 19,
153 19, 19, 19, 19, 19, 19, 19, 19,
154 19, 19, 19, 19, 19, 19, 19, 19,
155 19, 19, 19, 19, 19, 19, 19, 19,
156 19,
157 };
158
159 static const uint32_t coef0_huffcodes[666] = {
160 0x00258, 0x0003d, 0x00000, 0x00005, 0x00008, 0x00008, 0x0000c, 0x0001b,
161 0x0001f, 0x00015, 0x00024, 0x00032, 0x0003a, 0x00026, 0x0002c, 0x0002f,
162 0x0004a, 0x0004d, 0x00061, 0x00070, 0x00073, 0x00048, 0x00052, 0x0005a,
163 0x0005d, 0x0006e, 0x00099, 0x0009e, 0x000c1, 0x000ce, 0x000e4, 0x000f0,
164 0x00093, 0x0009e, 0x000a2, 0x000a1, 0x000b8, 0x000d2, 0x000d3, 0x0012e,
165 0x00130, 0x000de, 0x0012d, 0x0019b, 0x001e4, 0x00139, 0x0013a, 0x0013f,
166 0x0014f, 0x0016d, 0x001a2, 0x0027c, 0x0027e, 0x00332, 0x0033c, 0x0033f,
167 0x0038b, 0x00396, 0x003c5, 0x00270, 0x0027c, 0x0025a, 0x00395, 0x00248,
168 0x004bd, 0x004fb, 0x00662, 0x00661, 0x0071b, 0x004e6, 0x004ff, 0x00666,
169 0x0071c, 0x0071a, 0x0071f, 0x00794, 0x00536, 0x004e2, 0x0078e, 0x004ee,
170 0x00518, 0x00535, 0x004fb, 0x0078d, 0x00530, 0x00680, 0x0068f, 0x005cb,
171 0x00965, 0x006a6, 0x00967, 0x0097f, 0x00682, 0x006ae, 0x00cd0, 0x00e28,
172 0x00f13, 0x00f1f, 0x009f5, 0x00cd3, 0x00f11, 0x00926, 0x00964, 0x00f32,
173 0x00f12, 0x00f30, 0x00966, 0x00d0b, 0x00a68, 0x00b91, 0x009c7, 0x00b73,
174 0x012fa, 0x0131d, 0x013f9, 0x01ca0, 0x0199c, 0x01c7a, 0x0198c, 0x01248,
175 0x01c74, 0x01c64, 0x0139e, 0x012fd, 0x00a77, 0x012fc, 0x01c7b, 0x012ca,
176 0x014cc, 0x014d2, 0x014e3, 0x014dc, 0x012dc, 0x03344, 0x02598, 0x0263c,
177 0x0333b, 0x025e6, 0x01a1c, 0x01e3c, 0x014e2, 0x033d4, 0x01a11, 0x03349,
178 0x03cce, 0x014e1, 0x01a34, 0x0273e, 0x02627, 0x0273f, 0x038ee, 0x03971,
179 0x03c67, 0x03c61, 0x0333d, 0x038c2, 0x0263f, 0x038cd, 0x02638, 0x02e41,
180 0x0351f, 0x03348, 0x03c66, 0x03562, 0x02989, 0x027d5, 0x0333c, 0x02e4f,
181 0x0343b, 0x02ddf, 0x04bc8, 0x029c0, 0x02e57, 0x04c72, 0x025b7, 0x03547,
182 0x03540, 0x029d3, 0x04c45, 0x025bb, 0x06600, 0x04c73, 0x04bce, 0x0357b,
183 0x029a6, 0x029d2, 0x0263e, 0x0298a, 0x07183, 0x06602, 0x07958, 0x04b66,
184 0x0537d, 0x05375, 0x04fe9, 0x04b67, 0x0799f, 0x04bc9, 0x051fe, 0x06a3b,
185 0x05bb6, 0x04fa8, 0x0728f, 0x05376, 0x0492c, 0x0537e, 0x0795a, 0x06a3c,
186 0x0e515, 0x07887, 0x0683a, 0x051f9, 0x051fd, 0x0cc6a, 0x06a8a, 0x0cc6d,
187 0x05bb3, 0x0683b, 0x051fc, 0x05378, 0x0728e, 0x07886, 0x05bb7, 0x0f2a4,
188 0x0795b, 0x0683c, 0x09fc1, 0x0683d, 0x0b752, 0x09678, 0x0a3e8, 0x06ac7,
189 0x051f0, 0x0b759, 0x06af3, 0x04b6b, 0x0f2a0, 0x0f2ad, 0x096c3, 0x0e518,
190 0x0b75c, 0x0d458, 0x0cc6b, 0x0537c, 0x067aa, 0x04fea, 0x0343a, 0x0cc71,
191 0x0967f, 0x09fc4, 0x096c2, 0x0e516, 0x0f2a1, 0x0d45c, 0x0d45d, 0x0d45e,
192 0x12fb9, 0x0967e, 0x1982f, 0x09883, 0x096c4, 0x0b753, 0x12fb8, 0x0f2a8,
193 0x1ca21, 0x096c5, 0x0e51a, 0x1ca27, 0x12f3c, 0x0d471, 0x0f2aa, 0x0b75b,
194 0x12fbb, 0x0f2a9, 0x0f2ac, 0x0d45a, 0x0b74f, 0x096c8, 0x16e91, 0x096ca,
195 0x12fbf, 0x0d0a7, 0x13103, 0x0d516, 0x16e99, 0x12cbd, 0x0a3ea, 0x19829,
196 0x0b755, 0x29ba7, 0x1ca28, 0x29ba5, 0x16e93, 0x1982c, 0x19828, 0x25994,
197 0x0a3eb, 0x1ca29, 0x16e90, 0x1ca25, 0x1982d, 0x1ca26, 0x16e9b, 0x0b756,
198 0x0967c, 0x25997, 0x0b75f, 0x198d3, 0x0b757, 0x19a2a, 0x0d45b, 0x0e517,
199 0x1ca24, 0x1ca23, 0x1ca22, 0x0b758, 0x16e97, 0x0cd14, 0x13100, 0x00007,
200 0x0003b, 0x0006b, 0x00097, 0x00138, 0x00125, 0x00173, 0x00258, 0x00335,
201 0x0028e, 0x004c6, 0x00715, 0x00729, 0x004ef, 0x00519, 0x004ed, 0x00532,
202 0x0068c, 0x00686, 0x00978, 0x00e5d, 0x00e31, 0x009f4, 0x00b92, 0x012f8,
203 0x00d06, 0x00a67, 0x00d44, 0x00a76, 0x00d59, 0x012cd, 0x01c78, 0x01c75,
204 0x0199f, 0x0198f, 0x01c67, 0x014c6, 0x01c79, 0x01c76, 0x00b94, 0x00d1b,
205 0x01e32, 0x01e31, 0x01ab0, 0x01a05, 0x01aa1, 0x0333a, 0x025e5, 0x02626,
206 0x03541, 0x03544, 0x03421, 0x03546, 0x02e55, 0x02e56, 0x0492d, 0x02dde,
207 0x0299b, 0x02ddc, 0x0357a, 0x0249c, 0x0668b, 0x1c77f, 0x1ca20, 0x0d45f,
208 0x09886, 0x16e9a, 0x0f2a7, 0x0b751, 0x0a3ee, 0x0cf59, 0x0cf57, 0x0b754,
209 0x0d0a6, 0x16e98, 0x0b760, 0x06ac6, 0x0a3f0, 0x12fbe, 0x13104, 0x0f2a5,
210 0x0a3ef, 0x0d472, 0x12cba, 0x1982e, 0x16e9c, 0x1c77e, 0x198d0, 0x13105,
211 0x16e92, 0x0b75d, 0x0d459, 0x0001a, 0x000c0, 0x0016c, 0x003cd, 0x00350,
212 0x0067b, 0x0051e, 0x006a9, 0x009f4, 0x00b72, 0x00d09, 0x01249, 0x01e3d,
213 0x01ca1, 0x01a1f, 0x01721, 0x01a8a, 0x016e8, 0x03347, 0x01a35, 0x0249d,
214 0x0299a, 0x02596, 0x02e4e, 0x0298b, 0x07182, 0x04c46, 0x025ba, 0x02e40,
215 0x027d6, 0x04fe8, 0x06607, 0x05310, 0x09884, 0x072e1, 0x06a3d, 0x04b6a,
216 0x04c7a, 0x06603, 0x04c7b, 0x03428, 0x06605, 0x09664, 0x09fc0, 0x071de,
217 0x06601, 0x05bb2, 0x09885, 0x0a3e2, 0x1c61f, 0x12cbb, 0x0b750, 0x0cf58,
218 0x0967d, 0x25995, 0x668ad, 0x0b75a, 0x09fc2, 0x0537f, 0x0b75e, 0x13fae,
219 0x12fbc, 0x00031, 0x001c4, 0x004c5, 0x005b8, 0x00cf4, 0x0096f, 0x00d46,
220 0x01e57, 0x01a04, 0x02625, 0x03346, 0x028f9, 0x04c47, 0x072e0, 0x04b69,
221 0x03420, 0x07957, 0x06639, 0x0799e, 0x07959, 0x07881, 0x04b68, 0x09fc3,
222 0x09fd6, 0x0cc70, 0x0a3f1, 0x12cbe, 0x0e30e, 0x0e51b, 0x06af2, 0x12cbc,
223 0x1c77d, 0x0f2ab, 0x12fbd, 0x1aa2f, 0x0a3ec, 0x0d473, 0x05377, 0x0a3e9,
224 0x1982b, 0x0e300, 0x12f3f, 0x0cf5f, 0x096c0, 0x38c3c, 0x16e94, 0x16e95,
225 0x12f3d, 0x29ba4, 0x29ba6, 0x1c77c, 0x6a8ba, 0x3545c, 0x33457, 0x668ac,
226 0x6a8bb, 0x16e9d, 0x0e519, 0x25996, 0x12f3e, 0x00036, 0x0033e, 0x006ad,
227 0x00d03, 0x012c8, 0x0124a, 0x03c42, 0x03ccd, 0x06606, 0x07880, 0x06852,
228 0x06a3a, 0x05bb4, 0x0f2a2, 0x09fc7, 0x12cb9, 0x0cc6c, 0x0a6e8, 0x096c1,
229 0x0004a, 0x00355, 0x012f9, 0x014e8, 0x01abe, 0x025b6, 0x0492e, 0x09fc6,
230 0x051ff, 0x0cc6f, 0x096cb, 0x0d071, 0x198d1, 0x12cb8, 0x38c3d, 0x13faf,
231 0x096c9, 0x0009d, 0x00539, 0x012ce, 0x0341f, 0x029c1, 0x04b33, 0x0a3e3,
232 0x0d070, 0x16e96, 0x0b763, 0x000a0, 0x009ce, 0x038cc, 0x0343d, 0x051fa,
233 0x09888, 0x12fba, 0x000df, 0x00a75, 0x029a7, 0x09fc5, 0x0e301, 0x0967b,
234 0x001e7, 0x012c9, 0x051fb, 0x09889, 0x0f2a6, 0x0016f, 0x01cb9, 0x0cf5a,
235 0x12cbf, 0x09679, 0x00272, 0x01a15, 0x0967a, 0x003cb, 0x025f6, 0x0b762,
236 0x0028d, 0x03c60, 0x0cf5e, 0x00352, 0x03ccc, 0x0072f, 0x07186, 0x004ec,
237 0x05379, 0x0068e, 0x09887, 0x006a7, 0x06af1, 0x00e29, 0x0cf5b, 0x00f31,
238 0x0d470, 0x009c6, 0x013fb, 0x13102, 0x019a5, 0x13101, 0x01983, 0x01c65,
239 0x0124f, 0x014c7, 0x01726, 0x01abf, 0x03304, 0x02624, 0x03c41, 0x027d7,
240 0x02ddd, 0x02e54, 0x0343c, 0x06604, 0x07181, 0x0663a, 0x04fa9, 0x0663b,
241 0x05311, 0x0537a, 0x06839, 0x05bb5, 0x0492f, 0x06af0, 0x096c7, 0x0cc6e,
242 0x0537b, 0x0cf5c, 0x0cf56, 0x198d2, 0x0cf5d, 0x0a3ed, 0x0f2a3, 0x1982a,
243 0x0b761, 0x096c6,
244 };
245
246 static const uint8_t coef0_huffbits[666] = {
247 11, 6, 2, 3, 4, 5, 5, 5,
248 5, 6, 6, 6, 6, 7, 7, 7,
249 7, 7, 7, 7, 7, 8, 8, 8,
250 8, 8, 8, 8, 8, 8, 8, 8,
251 9, 9, 9, 9, 9, 9, 9, 9,
252 9, 9, 9, 9, 9, 10, 10, 10,
253 10, 10, 10, 10, 10, 10, 10, 10,
254 10, 10, 10, 11, 11, 11, 10, 11,
255 11, 11, 11, 11, 11, 11, 11, 11,
256 11, 11, 11, 11, 12, 12, 11, 12,
257 12, 12, 12, 11, 12, 12, 12, 12,
258 12, 12, 12, 12, 12, 12, 12, 12,
259 12, 12, 12, 12, 12, 13, 13, 12,
260 12, 12, 13, 13, 13, 13, 13, 13,
261 13, 13, 13, 13, 13, 13, 13, 14,
262 13, 13, 13, 13, 13, 13, 13, 14,
263 14, 14, 14, 14, 14, 14, 14, 14,
264 14, 14, 14, 13, 14, 14, 14, 14,
265 14, 14, 14, 14, 14, 14, 14, 14,
266 14, 14, 14, 14, 14, 14, 14, 15,
267 15, 14, 14, 15, 15, 15, 14, 15,
268 15, 15, 15, 15, 15, 15, 15, 15,
269 15, 15, 15, 15, 15, 15, 15, 15,
270 15, 15, 14, 15, 15, 15, 15, 16,
271 16, 16, 15, 16, 15, 15, 16, 16,
272 16, 16, 15, 16, 16, 16, 15, 16,
273 16, 15, 16, 16, 16, 16, 16, 16,
274 16, 16, 16, 16, 15, 15, 16, 16,
275 15, 16, 16, 16, 17, 17, 17, 16,
276 16, 17, 16, 16, 16, 16, 17, 16,
277 17, 17, 16, 16, 15, 15, 15, 16,
278 17, 16, 17, 16, 16, 17, 17, 17,
279 17, 17, 17, 16, 17, 17, 17, 16,
280 17, 17, 16, 17, 17, 17, 16, 17,
281 17, 16, 16, 17, 17, 17, 18, 17,
282 17, 17, 17, 17, 18, 18, 17, 17,
283 17, 19, 17, 19, 18, 17, 17, 18,
284 17, 17, 18, 17, 17, 17, 18, 17,
285 17, 18, 17, 17, 17, 17, 17, 16,
286 17, 17, 17, 17, 18, 16, 17, 4,
287 6, 8, 9, 9, 10, 10, 10, 10,
288 11, 11, 11, 11, 12, 12, 12, 12,
289 12, 12, 12, 12, 12, 13, 13, 13,
290 13, 13, 13, 13, 13, 13, 13, 13,
291 13, 13, 13, 14, 13, 13, 13, 13,
292 13, 13, 14, 14, 14, 14, 14, 14,
293 15, 15, 15, 15, 15, 15, 16, 15,
294 15, 15, 15, 15, 15, 17, 17, 17,
295 16, 18, 16, 17, 17, 16, 16, 17,
296 17, 18, 17, 16, 17, 17, 17, 16,
297 17, 17, 18, 17, 18, 17, 17, 17,
298 18, 17, 17, 5, 8, 10, 10, 11,
299 11, 12, 12, 12, 13, 13, 14, 13,
300 13, 14, 14, 14, 14, 14, 14, 15,
301 15, 15, 15, 15, 15, 15, 15, 15,
302 15, 15, 15, 16, 16, 15, 16, 16,
303 15, 15, 15, 15, 15, 16, 16, 15,
304 15, 16, 16, 17, 17, 18, 17, 16,
305 17, 18, 19, 17, 16, 16, 17, 17,
306 17, 6, 9, 11, 12, 12, 13, 13,
307 13, 14, 14, 14, 15, 15, 15, 16,
308 15, 15, 15, 15, 15, 15, 16, 16,
309 16, 16, 17, 18, 16, 16, 16, 18,
310 17, 16, 17, 18, 17, 17, 16, 17,
311 17, 16, 17, 16, 17, 18, 18, 18,
312 17, 19, 19, 17, 20, 19, 18, 19,
313 20, 18, 16, 18, 17, 7, 10, 12,
314 13, 13, 14, 14, 14, 15, 15, 16,
315 16, 16, 16, 16, 18, 16, 17, 17,
316 8, 11, 13, 14, 14, 15, 16, 16,
317 16, 16, 17, 17, 17, 18, 18, 17,
318 17, 8, 12, 14, 15, 15, 15, 17,
319 17, 18, 17, 9, 12, 14, 15, 16,
320 16, 17, 9, 13, 15, 16, 16, 17,
321 9, 13, 16, 16, 16, 10, 13, 16,
322 18, 17, 10, 14, 17, 10, 14, 17,
323 11, 14, 16, 11, 14, 11, 15, 12,
324 16, 12, 16, 12, 16, 12, 16, 12,
325 17, 13, 13, 17, 13, 17, 13, 13,
326 14, 14, 14, 14, 14, 14, 14, 15,
327 15, 15, 15, 15, 15, 15, 16, 15,
328 16, 16, 16, 16, 16, 16, 17, 16,
329 16, 16, 16, 17, 16, 17, 16, 17,
330 17, 17,
331 };
332
333 static const uint32_t coef1_huffcodes[555] = {
334 0x00115, 0x00002, 0x00001, 0x00000, 0x0000d, 0x00007, 0x00013, 0x0001d,
335 0x00008, 0x0000c, 0x00023, 0x0002b, 0x0003f, 0x00017, 0x0001b, 0x00043,
336 0x00049, 0x00050, 0x00055, 0x00054, 0x00067, 0x00064, 0x0007b, 0x0002d,
337 0x00028, 0x0002a, 0x00085, 0x00089, 0x0002b, 0x00035, 0x00090, 0x00091,
338 0x00094, 0x00088, 0x000c1, 0x000c6, 0x000f2, 0x000e3, 0x000c5, 0x000e2,
339 0x00036, 0x000f0, 0x000a7, 0x000cd, 0x000fb, 0x00059, 0x00116, 0x00103,
340 0x00108, 0x0012b, 0x0012d, 0x00188, 0x0012e, 0x0014c, 0x001c3, 0x00187,
341 0x001e7, 0x0006f, 0x00094, 0x00069, 0x001e6, 0x001ca, 0x00147, 0x00195,
342 0x000a7, 0x00213, 0x00209, 0x00303, 0x00295, 0x00289, 0x0028c, 0x0028d,
343 0x00312, 0x00330, 0x0029b, 0x00308, 0x00328, 0x0029a, 0x0025e, 0x003c5,
344 0x00384, 0x0039f, 0x00397, 0x00296, 0x0032e, 0x00332, 0x003c6, 0x003e6,
345 0x0012d, 0x000d1, 0x00402, 0x000dd, 0x00161, 0x0012b, 0x00127, 0x0045d,
346 0x00601, 0x004ab, 0x0045f, 0x00410, 0x004bf, 0x00528, 0x0045c, 0x00424,
347 0x00400, 0x00511, 0x00618, 0x0073d, 0x0063a, 0x00614, 0x0073c, 0x007c0,
348 0x007cf, 0x00802, 0x00966, 0x00964, 0x00951, 0x008a0, 0x00346, 0x00803,
349 0x00a52, 0x0024a, 0x007c1, 0x0063f, 0x00126, 0x00406, 0x00789, 0x008a2,
350 0x00960, 0x00967, 0x00c05, 0x00c70, 0x00c79, 0x00a5d, 0x00c26, 0x00c4d,
351 0x00372, 0x008a5, 0x00c08, 0x002c5, 0x00f11, 0x00cc4, 0x00f8e, 0x00e16,
352 0x00496, 0x00e77, 0x00f9c, 0x00c25, 0x00f1e, 0x00c27, 0x00f1f, 0x00e17,
353 0x00ccd, 0x00355, 0x00c09, 0x00c78, 0x00f90, 0x00521, 0x00357, 0x00356,
354 0x0068e, 0x00f9d, 0x00c04, 0x00e58, 0x00a20, 0x00a2c, 0x00c4c, 0x0052f,
355 0x00f8d, 0x01178, 0x01053, 0x01097, 0x0180f, 0x0180d, 0x012fb, 0x012aa,
356 0x0202a, 0x00a40, 0x018ed, 0x01ceb, 0x01455, 0x018e3, 0x012a1, 0x00354,
357 0x00353, 0x00f1c, 0x00c7b, 0x00c37, 0x0101d, 0x012cb, 0x01142, 0x0197d,
358 0x01095, 0x01e3b, 0x0186b, 0x00588, 0x01c2a, 0x014b8, 0x01e3a, 0x018ec,
359 0x01f46, 0x012fa, 0x00a53, 0x01ce8, 0x00a55, 0x01c29, 0x0117b, 0x01052,
360 0x012a0, 0x00589, 0x00950, 0x01c2b, 0x00a50, 0x0208b, 0x0180e, 0x02027,
361 0x02556, 0x01e20, 0x006e7, 0x01c28, 0x0197a, 0x00684, 0x020a2, 0x01f22,
362 0x03018, 0x039cf, 0x03e25, 0x02557, 0x0294c, 0x028a6, 0x00d11, 0x028a9,
363 0x02979, 0x00d46, 0x00a56, 0x039ce, 0x030cc, 0x0329a, 0x0149d, 0x0510f,
364 0x0451c, 0x02028, 0x03299, 0x01ced, 0x014b9, 0x00f85, 0x00c7a, 0x01800,
365 0x00341, 0x012ca, 0x039c8, 0x0329d, 0x00d0d, 0x03e20, 0x05144, 0x00d45,
366 0x030d0, 0x0186d, 0x030d5, 0x00d0f, 0x00d40, 0x04114, 0x020a1, 0x0297f,
367 0x03e24, 0x032f1, 0x04047, 0x030d4, 0x028a8, 0x00d0e, 0x0451d, 0x04044,
368 0x0297e, 0x04042, 0x030d2, 0x030cf, 0x03e21, 0x03e26, 0x028a5, 0x0451a,
369 0x00d48, 0x01a16, 0x00d44, 0x04518, 0x0149b, 0x039ca, 0x01498, 0x0403d,
370 0x0451b, 0x0149c, 0x032f3, 0x030cb, 0x08073, 0x03e22, 0x0529a, 0x020aa,
371 0x039cc, 0x0738a, 0x06530, 0x07389, 0x06193, 0x08071, 0x04043, 0x030ce,
372 0x05147, 0x07388, 0x05145, 0x08072, 0x04521, 0x00d47, 0x0297c, 0x030cd,
373 0x030ca, 0x0000b, 0x0000c, 0x00083, 0x000e4, 0x00048, 0x00102, 0x001cc,
374 0x001f5, 0x00097, 0x0020b, 0x00124, 0x00453, 0x00627, 0x00639, 0x00605,
375 0x00517, 0x001b8, 0x00663, 0x00667, 0x007c3, 0x00823, 0x00961, 0x00963,
376 0x00e5a, 0x00e59, 0x00a2b, 0x00cbf, 0x00292, 0x00a2d, 0x007d0, 0x00953,
377 0x00cc5, 0x00f84, 0x004ab, 0x014a7, 0x0068a, 0x0117a, 0x0052e, 0x01442,
378 0x0052c, 0x00c77, 0x00f8f, 0x004aa, 0x01094, 0x01801, 0x012c4, 0x0297b,
379 0x00952, 0x01f19, 0x006a5, 0x01149, 0x012c5, 0x01803, 0x022f2, 0x0329b,
380 0x04520, 0x0149e, 0x00d13, 0x01f16, 0x01ce9, 0x0101c, 0x006e6, 0x039c9,
381 0x06191, 0x07c8e, 0x06192, 0x0ca63, 0x039cd, 0x06190, 0x06884, 0x06885,
382 0x07382, 0x00d49, 0x00d41, 0x0450c, 0x0149a, 0x030d1, 0x08077, 0x03e23,
383 0x01a15, 0x0e701, 0x0e702, 0x08079, 0x0822a, 0x0a218, 0x07887, 0x0403f,
384 0x0520b, 0x0529b, 0x0e700, 0x04519, 0x00007, 0x000e0, 0x000d0, 0x0039b,
385 0x003e5, 0x00163, 0x0063e, 0x007c9, 0x00806, 0x00954, 0x01044, 0x01f44,
386 0x0197c, 0x01f45, 0x00a51, 0x01f47, 0x00951, 0x0052d, 0x02291, 0x0092f,
387 0x00a54, 0x00d12, 0x0297d, 0x00d0c, 0x01499, 0x0329e, 0x032f0, 0x02025,
388 0x039c6, 0x00a57, 0x03e46, 0x00d42, 0x0738b, 0x05146, 0x04046, 0x08078,
389 0x0510e, 0x07886, 0x02904, 0x04156, 0x04157, 0x06032, 0x030d3, 0x08bce,
390 0x04040, 0x0403e, 0x0a414, 0x10457, 0x08075, 0x06887, 0x07c8f, 0x039c7,
391 0x07387, 0x08070, 0x08bcf, 0x1482a, 0x10456, 0x1482b, 0x01a17, 0x06886,
392 0x0450d, 0x00013, 0x0006b, 0x00615, 0x0080b, 0x0082b, 0x00952, 0x00e5b,
393 0x018e2, 0x0186c, 0x01f18, 0x0329f, 0x00d43, 0x03e29, 0x05140, 0x05141,
394 0x0ca62, 0x06033, 0x03c42, 0x03e28, 0x0450f, 0x0a21a, 0x07384, 0x0a219,
395 0x0e703, 0x0a21b, 0x01a14, 0x07383, 0x045e6, 0x0007a, 0x0012c, 0x00ccc,
396 0x0068f, 0x01802, 0x00a52, 0x00953, 0x04045, 0x01a20, 0x0451f, 0x000a4,
397 0x00735, 0x01cec, 0x02029, 0x020a3, 0x0451e, 0x00069, 0x00c24, 0x02024,
398 0x032f2, 0x05142, 0x00196, 0x00523, 0x000a6, 0x0197b, 0x0030b, 0x0092e,
399 0x003e9, 0x03e27, 0x00160, 0x05143, 0x00652, 0x04041, 0x00734, 0x028a7,
400 0x0080f, 0x01483, 0x0097c, 0x00340, 0x0068b, 0x00522, 0x01054, 0x01096,
401 0x01f17, 0x0202b, 0x01cea, 0x020a0, 0x02978, 0x02026, 0x0297a, 0x039cb,
402 0x03e2b, 0x0149f, 0x0329c, 0x07385, 0x08074, 0x0450e, 0x03e2a, 0x05149,
403 0x08076, 0x07386, 0x05148,
404 };
405
406 static const uint8_t coef1_huffbits[555] = {
407 9, 5, 2, 4, 4, 5, 5, 5,
408 6, 6, 6, 6, 6, 7, 7, 7,
409 7, 7, 7, 7, 7, 7, 7, 8,
410 8, 8, 8, 8, 8, 8, 8, 8,
411 8, 8, 8, 8, 8, 8, 8, 8,
412 9, 8, 8, 8, 8, 9, 9, 9,
413 9, 9, 9, 9, 9, 9, 9, 9,
414 9, 10, 10, 10, 9, 9, 9, 9,
415 10, 10, 10, 10, 10, 10, 10, 10,
416 10, 10, 10, 10, 10, 10, 10, 10,
417 10, 10, 10, 10, 10, 10, 10, 10,
418 11, 11, 11, 11, 11, 11, 11, 11,
419 11, 11, 11, 11, 11, 11, 11, 11,
420 11, 11, 11, 11, 11, 11, 11, 11,
421 11, 12, 12, 12, 12, 12, 12, 12,
422 12, 12, 11, 11, 11, 11, 11, 12,
423 12, 12, 12, 12, 12, 12, 12, 12,
424 13, 12, 12, 12, 12, 12, 12, 12,
425 13, 12, 12, 12, 12, 12, 12, 12,
426 12, 13, 12, 12, 12, 13, 13, 13,
427 13, 12, 12, 12, 12, 12, 12, 13,
428 12, 13, 13, 13, 13, 13, 13, 13,
429 14, 14, 13, 13, 13, 13, 13, 13,
430 13, 12, 12, 12, 13, 13, 13, 13,
431 13, 13, 13, 13, 13, 13, 13, 13,
432 13, 13, 14, 13, 14, 13, 13, 13,
433 13, 13, 14, 13, 14, 14, 13, 14,
434 14, 13, 14, 13, 13, 14, 14, 13,
435 14, 14, 14, 14, 14, 14, 14, 14,
436 14, 15, 14, 14, 14, 14, 15, 15,
437 15, 14, 14, 13, 13, 12, 12, 13,
438 13, 13, 14, 14, 15, 14, 15, 15,
439 14, 13, 14, 15, 15, 15, 14, 14,
440 14, 14, 15, 14, 14, 15, 15, 15,
441 14, 15, 14, 14, 14, 14, 14, 15,
442 15, 16, 15, 15, 15, 14, 15, 15,
443 15, 15, 14, 14, 16, 14, 15, 14,
444 14, 15, 15, 15, 15, 16, 15, 14,
445 15, 15, 15, 16, 15, 15, 14, 14,
446 14, 4, 7, 8, 8, 9, 9, 9,
447 9, 10, 10, 11, 11, 11, 11, 11,
448 11, 12, 11, 11, 11, 12, 12, 12,
449 12, 12, 12, 12, 12, 12, 11, 12,
450 12, 12, 13, 13, 13, 13, 13, 13,
451 13, 12, 12, 13, 13, 13, 13, 14,
452 14, 13, 14, 13, 13, 13, 14, 14,
453 15, 15, 14, 13, 13, 13, 14, 14,
454 15, 15, 15, 16, 14, 15, 17, 17,
455 15, 15, 15, 15, 15, 14, 16, 14,
456 16, 16, 16, 16, 16, 16, 15, 15,
457 17, 15, 16, 15, 6, 8, 10, 10,
458 10, 11, 11, 11, 12, 12, 13, 13,
459 13, 13, 14, 13, 14, 13, 14, 14,
460 14, 14, 14, 15, 15, 14, 14, 14,
461 14, 14, 14, 15, 15, 15, 15, 16,
462 15, 15, 16, 15, 15, 15, 14, 16,
463 15, 15, 18, 17, 16, 17, 15, 14,
464 15, 16, 16, 19, 17, 19, 16, 17,
465 15, 7, 10, 11, 12, 12, 12, 12,
466 13, 13, 13, 14, 15, 14, 15, 15,
467 16, 15, 14, 14, 15, 16, 15, 16,
468 16, 16, 16, 15, 15, 7, 11, 12,
469 13, 13, 14, 14, 15, 15, 15, 8,
470 11, 13, 14, 14, 15, 9, 12, 14,
471 14, 15, 9, 13, 10, 13, 10, 14,
472 10, 14, 11, 15, 11, 15, 11, 14,
473 12, 15, 12, 13, 13, 13, 13, 13,
474 13, 14, 13, 14, 14, 14, 14, 14,
475 14, 15, 14, 15, 16, 15, 14, 15,
476 16, 15, 15,
477 };
478
479 static const uint32_t coef2_huffcodes[1336] = {
480 0x003e6, 0x000f6, 0x00000, 0x00002, 0x00006, 0x0000f, 0x0001b, 0x00028,
481 0x00039, 0x0003f, 0x0006b, 0x00076, 0x000b7, 0x000e8, 0x000ef, 0x00169,
482 0x001a7, 0x001d4, 0x001dc, 0x002c4, 0x00349, 0x00355, 0x00391, 0x003dc,
483 0x00581, 0x005b2, 0x00698, 0x0070c, 0x00755, 0x0073a, 0x00774, 0x007cf,
484 0x00b0a, 0x00b66, 0x00d2e, 0x00d5e, 0x00e1b, 0x00eac, 0x00e5a, 0x00f7e,
485 0x00fa1, 0x0163e, 0x01a37, 0x01a52, 0x01c39, 0x01ab3, 0x01d5f, 0x01cb6,
486 0x01f52, 0x01dd9, 0x02c04, 0x02c2e, 0x02c2d, 0x02c23, 0x03467, 0x034a3,
487 0x0351b, 0x03501, 0x03a5d, 0x0351c, 0x03875, 0x03dea, 0x0397b, 0x039db,
488 0x03df1, 0x039d8, 0x03bb4, 0x0580a, 0x0584d, 0x05842, 0x05b13, 0x058ea,
489 0x0697d, 0x06a06, 0x068cc, 0x06ac7, 0x06a96, 0x072f4, 0x07543, 0x072b4,
490 0x07d20, 0x0b003, 0x073b5, 0x07be6, 0x0d180, 0x07bd1, 0x07cb8, 0x07d06,
491 0x07d25, 0x0d2f2, 0x0d19a, 0x0d334, 0x0e1dc, 0x0d529, 0x0d584, 0x0e1d2,
492 0x0e5e3, 0x0eec4, 0x0e564, 0x0fa49, 0x16001, 0x0eedc, 0x0f7fa, 0x1a32c,
493 0x16131, 0x16003, 0x0f9c8, 0x1ef80, 0x1d2a0, 0x1aa4b, 0x0f7ce, 0x1abfe,
494 0x1aa50, 0x1a458, 0x1a816, 0x1cae4, 0x1d2fe, 0x1d52e, 0x1aa4c, 0x2c245,
495 0x1d2a1, 0x1a35d, 0x1ca1b, 0x1d5d8, 0x1f531, 0x1ca1c, 0x1f389, 0x1f4af,
496 0x3a5e7, 0x351fb, 0x2c24b, 0x34bce, 0x2c24d, 0x2c249, 0x2c24a, 0x72dfc,
497 0x357ef, 0x35002, 0x3a5e6, 0x39431, 0x5843b, 0x34a77, 0x58431, 0x3a5f3,
498 0x3a5dd, 0x3e5e5, 0x356bd, 0x3976e, 0x6a3d2, 0x3500d, 0x694c4, 0x580bd,
499 0x3e5e8, 0x74b95, 0x34a6e, 0x3977c, 0x39432, 0x5b0d2, 0x6a3d8, 0x580b8,
500 0x5b0cb, 0x5b0d7, 0x72dee, 0x72ded, 0x72dec, 0x74b9c, 0x3977f, 0x72dea,
501 0x74b9e, 0x7be7d, 0x580bf, 0x5b0d5, 0x7cba8, 0x74b91, 0x3e5dd, 0xb6171,
502 0xd46b3, 0xd46b9, 0x7cba1, 0x74b9f, 0x72de1, 0xe59f5, 0x3e5eb, 0x00004,
503 0x00015, 0x00038, 0x00075, 0x000e8, 0x001d3, 0x00347, 0x0039c, 0x00690,
504 0x0074a, 0x00b60, 0x00e93, 0x00f74, 0x0163d, 0x01a5a, 0x01d24, 0x01cbe,
505 0x01f4b, 0x03468, 0x03562, 0x03947, 0x03e82, 0x05804, 0x05b12, 0x05803,
506 0x0696d, 0x06a9e, 0x0697c, 0x06978, 0x06afb, 0x074b2, 0x072f5, 0x073c0,
507 0x07541, 0x06944, 0x074b7, 0x070d3, 0x07ba9, 0x0b0b1, 0x0d1af, 0x0e1dd,
508 0x0e5e2, 0x0e1a3, 0x0eec3, 0x1612f, 0x0e961, 0x0eeda, 0x0e78e, 0x0fa48,
509 0x1612c, 0x0e511, 0x0e565, 0x0e953, 0x1aa4a, 0x0e59d, 0x1d52c, 0x1a811,
510 0x1cae7, 0x1abfc, 0x1d52d, 0x1cacf, 0x1cf05, 0x2c254, 0x34a72, 0x1f4ac,
511 0x3976b, 0x34a71, 0x2c6d9, 0x2d873, 0x34a6a, 0x357e7, 0x3464c, 0x3e5f5,
512 0x58433, 0x1f53a, 0x3500a, 0x357ea, 0x34a73, 0x3942f, 0x357e5, 0x39775,
513 0x694cd, 0x39772, 0x7cba5, 0x6a3ef, 0x35483, 0x74b98, 0x5b0c1, 0x39770,
514 0x3a5d7, 0x39433, 0x39434, 0x694ce, 0x580be, 0x3e5ff, 0x6a3ec, 0xb616f,
515 0xd46b1, 0x6a3d1, 0x72de5, 0x74b6e, 0x72de9, 0x3e700, 0xd46b6, 0x6a3e9,
516 0x74b69, 0xe5675, 0xd46b8, 0x7cbaa, 0x3a5d1, 0x0000c, 0x0003c, 0x000eb,
517 0x001f1, 0x003a4, 0x006a8, 0x007d5, 0x00d43, 0x00e77, 0x016c5, 0x01cb1,
518 0x02c5d, 0x03a55, 0x03a56, 0x03e51, 0x03bb5, 0x05b0a, 0x06a9f, 0x074b8,
519 0x07d28, 0x0d187, 0x0d40e, 0x0d52e, 0x0d425, 0x0eae3, 0x0e1d3, 0x1612e,
520 0x0e59e, 0x0eec2, 0x0e578, 0x0e51a, 0x0e579, 0x0e515, 0x0e960, 0x0d183,
521 0x0d220, 0x0d2cb, 0x0e512, 0x16c3e, 0x16002, 0x16c42, 0x1cae9, 0x3461a,
522 0x1d2fa, 0x1a308, 0x1a849, 0x1cf07, 0x1f38f, 0x34b65, 0x2c253, 0x1ef9e,
523 0x1cbc3, 0x1cbc1, 0x2c255, 0x1f384, 0x58435, 0x2c5cd, 0x3a5f7, 0x2c252,
524 0x3959c, 0x2c6d8, 0x3a5d3, 0x6ad78, 0x6a3f2, 0x7cba9, 0xb6176, 0x72deb,
525 0x39764, 0x3e5f6, 0x3a5d8, 0x74a8c, 0x6a3e6, 0x694d1, 0x6ad79, 0x1a4592,
526 0xe59fb, 0x7cbb3, 0x5b0cd, 0x00017, 0x000b5, 0x002c3, 0x005b7, 0x00b1c,
527 0x00e5c, 0x0163f, 0x01ab2, 0x01efa, 0x0348a, 0x0396e, 0x058da, 0x06963,
528 0x06a30, 0x072cd, 0x073cf, 0x07ce7, 0x0d2ca, 0x0d2d8, 0x0e764, 0x0e794,
529 0x16008, 0x16167, 0x1617e, 0x1aa49, 0x1a30b, 0x1a813, 0x2c6da, 0x1a580,
530 0x1cbc2, 0x0f9ca, 0x1617f, 0x1d2fe, 0x0f7fc, 0x16c40, 0x0e513, 0x0eec5,
531 0x0f7c3, 0x1d508, 0x1a81e, 0x1d2fd, 0x39430, 0x35486, 0x3e5fd, 0x2c24c,
532 0x2c75a, 0x34a74, 0x3a5f4, 0x3464d, 0x694ca, 0x3a5f1, 0x1d509, 0x1d5c0,
533 0x34648, 0x3464e, 0x6a3d5, 0x6a3e8, 0x6a3e7, 0x5b0c3, 0x2c248, 0x1f38a,
534 0x3a5f2, 0x6a3e5, 0x00029, 0x00168, 0x0058c, 0x00b67, 0x00f9d, 0x01c3d,
535 0x01cbf, 0x02c20, 0x0351d, 0x03df6, 0x06af9, 0x072b5, 0x0b1d7, 0x0b0b2,
536 0x0d40a, 0x0d52b, 0x0e952, 0x0e797, 0x163c3, 0x1c3a0, 0x1f386, 0x1ca21,
537 0x34655, 0x2c247, 0x1f53b, 0x2c250, 0x2c24f, 0x1f385, 0x1ef5d, 0x1cf15,
538 0x1caea, 0x1ab0a, 0x1cf19, 0x1f53d, 0x1d5c2, 0x1d2fb, 0x1ef58, 0x34a78,
539 0x357ec, 0x1f533, 0x3a5e1, 0x694d2, 0x58482, 0x3a5ee, 0x2c6dc, 0x357eb,
540 0x5b0c4, 0x39778, 0x6a3e1, 0x7cbb4, 0x3a5e1, 0x74b68, 0x3a5ef, 0x3a5d2,
541 0x39424, 0x72de2, 0xe59f6, 0xe59f7, 0x3e702, 0x3e5ec, 0x1f38b, 0x0003b,
542 0x001f0, 0x00777, 0x00fa8, 0x01cb2, 0x02d84, 0x03a57, 0x03dd6, 0x06917,
543 0x06a11, 0x07d07, 0x0eae2, 0x0e796, 0x0f9c9, 0x0f7fb, 0x16166, 0x16160,
544 0x1ab1b, 0x1abfa, 0x2d87b, 0x1d2f7, 0x39768, 0x1f38c, 0x34653, 0x34651,
545 0x6a3d9, 0x35001, 0x3abbd, 0x38742, 0x39426, 0x34a76, 0x3a5ec, 0x34a75,
546 0x35000, 0x35488, 0x1cf10, 0x2c6db, 0x357ed, 0x357e8, 0x357e9, 0x3a5f0,
547 0x694c2, 0xb6178, 0x72df5, 0x39425, 0x3942b, 0x74b6d, 0x74b6f, 0xb6177,
548 0xb6179, 0x74b6a, 0xb6172, 0x58487, 0x3e5ee, 0x3e5ed, 0x72df2, 0x72df4,
549 0x7cbae, 0x6a3ca, 0x70e86, 0x34bcf, 0x6a3c8, 0x00059, 0x00384, 0x00d5b,
550 0x01c38, 0x03560, 0x0395b, 0x0584e, 0x06964, 0x073cd, 0x0b1e7, 0x0e798,
551 0x0e78d, 0x0fa43, 0x1a848, 0x1a32f, 0x1aa4e, 0x3464a, 0x1f4ab, 0x1f38d,
552 0x3a5eb, 0x3a5d4, 0x3548a, 0x6a3c7, 0x5b0d0, 0x6a3c5, 0x7cbb0, 0x694cb,
553 0x3a5e5, 0x3e5e2, 0x3942c, 0x2d872, 0x1f4ae, 0x3a5d5, 0x694d3, 0x58481,
554 0x35009, 0x39774, 0x58432, 0xb616c, 0x5b0db, 0x3548b, 0xb6174, 0x1d5d95,
555 0xb004c, 0x7cbb2, 0x3a5e5, 0x74a8f, 0xe59f9, 0x72df6, 0xe59fd, 0x7cbad,
556 0xd427d, 0x72cff, 0x3977a, 0x5b0d9, 0xb616d, 0xb616b, 0x1a4593, 0x7cbaf,
557 0x5b0da, 0x00071, 0x003eb, 0x01603, 0x02c6c, 0x03961, 0x068c8, 0x06a31,
558 0x072bd, 0x0d2c2, 0x0e51b, 0x0e5e6, 0x1abfb, 0x1d2ff, 0x1cae5, 0x1ef5c,
559 0x1ef5e, 0x1cf13, 0x34a6d, 0x3976d, 0xb616a, 0x3e5f2, 0x6a3c4, 0xb6169,
560 0x3e5dc, 0x580b9, 0x74b99, 0x75764, 0x58434, 0x3a5d9, 0x6945a, 0x69459,
561 0x3548c, 0x3a5e9, 0x69457, 0x72df1, 0x6945e, 0x6a35e, 0x3e701, 0xb6168,
562 0x5b0dd, 0x3a5de, 0x6a3c2, 0xd4278, 0x6a3cc, 0x72dfd, 0xb6165, 0x16009a,
563 0x7cbb1, 0xd427c, 0xb6162, 0xe765e, 0x1cecbe, 0x7cbb6, 0x69454, 0xb6160,
564 0xd427a, 0x1d5d96, 0xb1d6d, 0xe59f4, 0x72de8, 0x3a5db, 0x0007a, 0x006ae,
565 0x01c3c, 0x03aba, 0x058e9, 0x072cc, 0x0d2dd, 0x0d22d, 0x0eec1, 0x0eedb,
566 0x1d2a2, 0x1ef5b, 0x357e2, 0x3abbf, 0x1d2f9, 0x35004, 0x3a5dc, 0x351fc,
567 0x3976c, 0x6a3c6, 0x6a3cb, 0x3e5ea, 0xe59f3, 0x6a3ce, 0x69452, 0xe59f0,
568 0x74b90, 0xd4279, 0xd427b, 0x7cbb5, 0x5b0c5, 0x3a5e3, 0x3a5e2, 0x000d0,
569 0x00775, 0x01efe, 0x03dd5, 0x0728c, 0x07cb9, 0x0e1a2, 0x0ea85, 0x0eed8,
570 0x1a30a, 0x1aa4f, 0x3a5df, 0x35008, 0x3a5e0, 0x3e5f4, 0x3e5f7, 0xb1d6c,
571 0x5843e, 0x34a70, 0x72df8, 0x74b6b, 0xd427f, 0x72df0, 0x5b0bf, 0x5b0c0,
572 0xd46b0, 0x72def, 0xe59f8, 0x162e64, 0xb1d6f, 0x3a5e0, 0x39427, 0x69166,
573 0x6a3e2, 0x6a3e3, 0x74a8d, 0xd427e, 0x1d5d97, 0xd46b4, 0x5b0d8, 0x6a3d3,
574 0x000e0, 0x00b63, 0x034cc, 0x06a33, 0x073c9, 0x0e1a0, 0x0f7fd, 0x0f9cc,
575 0x1617d, 0x1caeb, 0x1f4a9, 0x3abb3, 0x69450, 0x39420, 0x39777, 0x3e5e0,
576 0x6a3d4, 0x6a3ed, 0xb6166, 0xe59f1, 0xb1d6e, 0xe5676, 0x6a3ea, 0xe5674,
577 0xb6163, 0xd46b7, 0x7cba6, 0xd46ba, 0x1d5d94, 0xb6164, 0x6a3f1, 0x7cba2,
578 0x69451, 0x72dfa, 0xd46bb, 0x72df7, 0x74b94, 0x1cecbf, 0xe59fa,
579 0x16009b,
580 0x6a3e4, 0x000e6, 0x00e94, 0x03876, 0x070ef, 0x0d52a, 0x16015, 0x16014,
581 0x1abf9, 0x1cf17, 0x34a79, 0x34650, 0x3e705, 0x6a3d0, 0x58430, 0x74b9d,
582 0x7be7e, 0x5b0be, 0x39773, 0x6a3de, 0x000fb, 0x00f7b, 0x03dd7, 0x07bd0,
583 0x0e59c, 0x0f9cd, 0x1cf18, 0x1d2ff, 0x34a7a, 0x39429, 0x3500c, 0x72de0,
584 0x69456, 0x7be7c, 0xd46b5, 0xd46b2, 0x6a3dd, 0x001a2, 0x0163b, 0x06913,
585 0x0b016, 0x0fa42, 0x1a32d, 0x1cf06, 0x34a7c, 0x34a7d, 0xb6161, 0x35481,
586 0x3e5fa, 0x7cba0, 0x7be7f, 0x7cba3, 0x7cba7, 0x5b0d3, 0x72de6, 0x6a3dc,
587 0x001a9, 0x01ab4, 0x06a34, 0x0d46a, 0x16130, 0x1ef5f, 0x1f532, 0x1f536,
588 0x3942e, 0x58436, 0x6a3db, 0x6945b, 0x001c9, 0x01ca0, 0x0728b, 0x0eed9,
589 0x1f539, 0x1ca1d, 0x39765, 0x39766, 0x58439, 0x6945d, 0x39767, 0x001d3,
590 0x01f2c, 0x07bfc, 0x16161, 0x34652, 0x3a5ed, 0x3548d, 0x58438, 0x6a3da,
591 0x002c1, 0x02c5e, 0x0d335, 0x1ab1a, 0x2d874, 0x35006, 0x35484, 0x5b0cc,
592 0x74b9a, 0x72df3, 0x6a3d6, 0x002da, 0x034b3, 0x0d5ae, 0x1caee, 0x2d871,
593 0x357e3, 0x74b97, 0x72df9, 0x580ba, 0x5b0d4, 0x0034d, 0x0354e, 0x0f750,
594 0x1cbc0, 0x3a5e7, 0x3a5e4, 0x00385, 0x03a58, 0x16c41, 0x2c5cf, 0x3e5e1,
595 0x74b6c, 0xe5677, 0x6a3df, 0x00390, 0x03e50, 0x163c2, 0x2d876, 0x35482,
596 0x5b0d6, 0x5843a, 0x0039f, 0x0585e, 0x1a583, 0x3500f, 0x74b93, 0x39771,
597 0x003e4, 0x06912, 0x16c43, 0x357e1, 0x0058a, 0x0696f, 0x1f538, 0x5b0c9,
598 0x6a3cf, 0x005b6, 0x06af8, 0x1f534, 0x58483, 0x6a3e0, 0x00695, 0x07d02,
599 0x1cae8, 0x58485, 0x006a2, 0x0754a, 0x357ee, 0x3977b, 0x00748, 0x074b2,
600 0x34a7b, 0x00729, 0x0b1e0, 0x34649, 0x3e5e3, 0x0073d, 0x0d2c4, 0x3e5e6,
601 0x007bb, 0x0b099, 0x39762, 0x5b0ce, 0x6945f, 0x007d1, 0x0d5ab, 0x39779,
602 0x007d3, 0x0d52f, 0x39763, 0x6945c, 0x00b1a, 0x0d2c5, 0x35489, 0x00d23,
603 0x0eaed, 0x3e5f8, 0x00d32, 0x16016, 0x3e5fb, 0x00d41, 0x0e768, 0x3a5ed,
604 0x00e1f, 0x16017, 0x58027, 0x00ead, 0x0fa07, 0x69455, 0x00e54, 0x1612b,
605 0x00e55, 0x1a581, 0x00f78, 0x1a32b, 0x580bc, 0x6a3ee, 0x00f79, 0x1abfd,
606 0x00f95, 0x1ab18, 0x6a3f0, 0x01637, 0x1aa4d, 0x0162d, 0x1f53c, 0x6a3f3,
607 0x01a31, 0x1a810, 0x39769, 0x01a50, 0x1caef, 0x01a36, 0x1a32e, 0x01a67,
608 0x1f38e, 0x01a85, 0x1ef59, 0x01aa6, 0x1ef83, 0x01d51, 0x2c012, 0x01d53,
609 0x2d879, 0x01d5e, 0x35005, 0x01cba, 0x1cf04, 0x69453, 0x01d2d, 0x351ff,
610 0x01f2d, 0x2d86f, 0x01f29, 0x35007, 0x02c22, 0x351fa, 0x02c03, 0x3a5ec,
611 0x02c5f, 0x3a5eb, 0x02c58, 0x34a6b, 0x03469, 0x356be, 0x02c59, 0x34a6c,
612 0x0346a, 0x3a5ea, 0x034bd, 0x034bf, 0x356bf, 0x0386a, 0x03ab9, 0x5843f,
613 0x0386b, 0x3a5f5, 0x03a4b, 0x39421, 0x03aa4, 0x3a5e9, 0x03a5a, 0x03960,
614 0x3977e, 0x03de9, 0x03958, 0x03df7, 0x039e1, 0x3e5e4, 0x0395f, 0x69458,
615 0x03e91, 0x03df2, 0x39428, 0x058f2, 0x03e80, 0x6a3c3, 0x03e93, 0x694c0,
616 0x058b8, 0x5b0ca, 0x0584f, 0x694c1, 0x058f1, 0x068d6, 0x06a10, 0x06ac3,
617 0x06a32, 0x070d2, 0x06911, 0x074b1, 0x07494, 0x06ad4, 0x06ad6, 0x072b8,
618 0x06afa, 0x074b3, 0x07540, 0x073ce, 0x0b005, 0x074b3, 0x07495, 0x074b9,
619 0x0d336, 0x07bff, 0x07763, 0x073c8, 0x07d29, 0x0b622, 0x0d221, 0x0d181,
620 0x0b1d1, 0x074b8, 0x0b1d0, 0x0d19b, 0x0d2c3, 0x0b172, 0x0d2dc, 0x0b623,
621 0x0d5aa, 0x0d426, 0x0d182, 0x0e795, 0x0e1d1, 0x0d337, 0x0e96c, 0x0e5e4,
622 0x0e514, 0x0eaee, 0x16000, 0x0e767, 0x0e1a1, 0x0e78f, 0x16004, 0x0f7c2,
623 0x0e799, 0x0e5e7, 0x0e566, 0x0e769, 0x0f751, 0x0eede, 0x0fa06, 0x16005,
624 0x0fa9f, 0x1a5e6, 0x0e766, 0x1636f, 0x0eedd, 0x0eec0, 0x1a309, 0x1ceca,
625 0x163cd, 0x0f9cb, 0x0eedf, 0x1a582, 0x1612d, 0x0e5e5, 0x1abf8, 0x1a30c,
626 0x1ca1f, 0x163cc, 0x1a35c, 0x1ca1e, 0x1aa51, 0x163ac, 0x1a84e, 0x1a53f,
627 0x1cf16, 0x1d2fc, 0x1a5b3, 0x1ab19, 0x1a81f, 0x1d5c3, 0x16c3f, 0x1d5c1,
628 0x1d2fc, 0x1f4aa, 0x1a812, 0x1f535, 0x1cf12, 0x1a817, 0x1617c, 0x1ab0b,
629 0x1d2f8, 0x1ef82, 0x2d87a, 0x1d52f, 0x1f530, 0x1aa48, 0x35487, 0x1d2fd,
630 0x1f4ad, 0x1cf11, 0x3461b, 0x35485, 0x1ca20, 0x1caed, 0x1cae6, 0x1abff,
631 0x3464f, 0x34a6f, 0x1ef81, 0x3464b, 0x39d96, 0x1f383, 0x1f537, 0x1cf14,
632 0x2c5ce, 0x3500e, 0x2c251, 0x1caec, 0x1f387, 0x34654, 0x357e4, 0x2d878,
633 0x3500b, 0x35480, 0x3a5e8, 0x3548e, 0x34b64, 0x1f4a8, 0x35003, 0x3e5df,
634 0x2d870, 0x357e6, 0x3e5f0, 0x1ef5a, 0x3a5ea, 0x1f388, 0x3e703, 0x2c24e,
635 0x3a5e2, 0x351fd, 0x2c6dd, 0x3e704, 0x351fe, 0x2d875, 0x5b0c7, 0x3976a,
636 0x3a5e6, 0x39423, 0x58480, 0x2c246, 0x3a5e3, 0x2d877, 0x3e5f1, 0x3abbe,
637 0x58489, 0x3e5f9, 0x357e0, 0x3abbc, 0x5b0c6, 0x69167, 0x69165, 0x3e5e9,
638 0x39422, 0x3976f, 0x3977d, 0x3e5de, 0x6a3c9, 0x58b98, 0x3a5f6, 0x3a5d0,
639 0x58486, 0x6a3c1, 0x3e5fc, 0x5b0dc, 0x3548f, 0x3942d, 0x694c9, 0x58484,
640 0x3a5e8, 0x74b9b, 0x74b96, 0x694d0, 0x58488, 0x3a5e4, 0x3942a, 0x72ec2,
641 0x39776, 0x5b0d1, 0x5b0cf, 0x3a5d6, 0xe59fc, 0x5b0c8, 0x3e5e7, 0x7cbb7,
642 0x70e87, 0x7cbab, 0x5b0c2, 0x694c3, 0x74a8e, 0x3e5f3, 0x6a3cd, 0x72dfe,
643 0x73b2e, 0x72ec0, 0x694c5, 0x58437, 0x694c8, 0x72dff, 0x39435, 0x5843d,
644 0x6a3d7, 0x72ec1, 0xd22c8, 0x694cf, 0xb6173, 0x3e5fe, 0x580bb, 0xe59f2,
645 0xb616e, 0xb6175, 0x3a5da, 0x5b0bd, 0x694cc, 0x5843c, 0x694c7, 0x74b92,
646 0x72ec3, 0x694c6, 0xb6170, 0x7cbac, 0xb1733, 0x7cba4, 0xb6167, 0x72de7,
647 0x72de4, 0x6a3c0, 0x3e5ef, 0x162e65, 0x72de3, 0x72dfb, 0x6a35f, 0x6a3eb,
648 };
649
650 static const uint8_t coef2_huffbits[1336] = {
651 11, 9, 2, 3, 4, 4, 5, 6,
652 6, 7, 7, 8, 8, 8, 9, 9,
653 9, 9, 10, 10, 10, 10, 11, 11,
654 11, 11, 11, 11, 11, 12, 12, 12,
655 12, 12, 12, 12, 12, 12, 13, 13,
656 13, 13, 13, 13, 13, 13, 13, 14,
657 14, 14, 14, 14, 14, 14, 14, 14,
658 14, 14, 14, 14, 14, 15, 15, 15,
659 15, 15, 15, 15, 15, 15, 15, 15,
660 15, 15, 15, 15, 15, 16, 15, 16,
661 16, 16, 16, 16, 16, 16, 16, 16,
662 16, 16, 16, 16, 16, 16, 16, 16,
663 17, 17, 17, 17, 17, 17, 17, 17,
664 17, 17, 17, 18, 17, 17, 17, 17,
665 17, 17, 17, 18, 18, 17, 17, 18,
666 17, 17, 18, 17, 18, 18, 18, 18,
667 19, 18, 18, 18, 18, 18, 18, 20,
668 18, 18, 18, 19, 19, 18, 19, 18,
669 19, 19, 18, 19, 19, 18, 19, 19,
670 19, 19, 18, 19, 19, 19, 19, 19,
671 19, 19, 20, 20, 20, 19, 19, 20,
672 19, 20, 19, 19, 20, 19, 19, 20,
673 20, 20, 20, 19, 20, 21, 19, 3,
674 5, 7, 8, 9, 9, 10, 11, 11,
675 12, 12, 12, 13, 13, 13, 13, 14,
676 14, 14, 14, 15, 15, 15, 15, 15,
677 15, 15, 15, 15, 15, 15, 16, 16,
678 15, 15, 15, 15, 16, 16, 16, 16,
679 17, 16, 17, 17, 16, 17, 17, 17,
680 17, 17, 17, 16, 17, 17, 17, 17,
681 18, 17, 17, 18, 18, 18, 18, 18,
682 19, 18, 18, 18, 18, 18, 18, 19,
683 19, 18, 18, 18, 18, 19, 18, 19,
684 19, 19, 20, 19, 18, 19, 19, 19,
685 19, 19, 19, 19, 19, 19, 19, 20,
686 20, 19, 20, 19, 20, 19, 20, 19,
687 19, 21, 20, 20, 19, 4, 7, 8,
688 10, 11, 11, 12, 12, 13, 13, 14,
689 14, 14, 14, 15, 15, 15, 15, 15,
690 16, 16, 16, 16, 16, 16, 16, 17,
691 17, 17, 17, 17, 17, 17, 16, 16,
692 16, 16, 17, 17, 17, 17, 18, 18,
693 18, 17, 17, 18, 18, 18, 18, 18,
694 18, 18, 18, 18, 19, 18, 18, 18,
695 19, 18, 19, 19, 19, 20, 20, 20,
696 19, 19, 19, 19, 19, 19, 19, 21,
697 21, 20, 19, 5, 8, 10, 11, 12,
698 13, 13, 13, 14, 14, 15, 15, 15,
699 15, 16, 16, 16, 16, 16, 17, 17,
700 17, 17, 17, 17, 17, 17, 18, 17,
701 18, 17, 17, 17, 17, 17, 17, 17,
702 17, 17, 17, 17, 19, 18, 19, 18,
703 18, 18, 18, 18, 19, 18, 17, 17,
704 18, 18, 19, 19, 19, 19, 18, 18,
705 18, 19, 6, 9, 11, 12, 13, 13,
706 14, 14, 14, 15, 15, 16, 16, 16,
707 16, 16, 16, 17, 17, 17, 18, 18,
708 18, 18, 18, 18, 18, 18, 18, 18,
709 18, 17, 18, 18, 17, 18, 18, 18,
710 18, 18, 18, 19, 19, 18, 18, 18,
711 19, 19, 19, 20, 19, 19, 18, 19,
712 19, 20, 21, 21, 19, 19, 18, 6,
713 10, 12, 13, 14, 14, 14, 15, 15,
714 15, 16, 16, 17, 17, 17, 17, 17,
715 17, 17, 18, 18, 19, 18, 18, 18,
716 19, 18, 18, 18, 19, 18, 18, 18,
717 18, 18, 18, 18, 18, 18, 18, 18,
718 19, 20, 20, 19, 19, 19, 19, 20,
719 20, 19, 20, 19, 19, 19, 20, 20,
720 20, 19, 19, 18, 19, 7, 10, 12,
721 13, 14, 15, 15, 15, 16, 16, 17,
722 17, 17, 17, 17, 17, 18, 18, 18,
723 18, 19, 18, 19, 19, 19, 20, 19,
724 18, 19, 19, 18, 18, 19, 19, 19,
725 18, 19, 19, 20, 19, 18, 20, 21,
726 20, 20, 19, 19, 21, 20, 21, 20,
727 20, 20, 19, 19, 20, 20, 21, 20,
728 19, 7, 11, 13, 14, 15, 15, 15,
729 16, 16, 17, 17, 17, 17, 18, 18,
730 18, 18, 18, 19, 20, 19, 19, 20,
731 19, 19, 19, 19, 19, 19, 19, 19,
732 18, 18, 19, 20, 19, 19, 19, 20,
733 19, 19, 19, 20, 19, 20, 20, 21,
734 20, 20, 20, 21, 22, 20, 19, 20,
735 20, 21, 20, 21, 20, 19, 8, 11,
736 13, 14, 15, 16, 16, 16, 17, 17,
737 17, 18, 18, 18, 18, 18, 19, 18,
738 19, 19, 19, 19, 21, 19, 19, 21,
739 19, 20, 20, 20, 19, 18, 18, 8,
740 12, 14, 15, 16, 16, 16, 16, 17,
741 17, 17, 19, 18, 18, 19, 19, 20,
742 19, 18, 20, 19, 20, 20, 19, 19,
743 20, 20, 21, 21, 20, 19, 19, 19,
744 19, 19, 19, 20, 21, 20, 19, 19,
745 8, 12, 14, 15, 16, 16, 17, 17,
746 17, 18, 18, 18, 19, 19, 19, 19,
747 19, 19, 20, 21, 20, 21, 19, 21,
748 20, 20, 20, 20, 21, 20, 19, 20,
749 19, 20, 20, 20, 19, 22, 21, 21,
750 19, 9, 12, 14, 15, 16, 17, 17,
751 17, 18, 18, 18, 19, 19, 19, 19,
752 20, 19, 19, 19, 9, 13, 15, 16,
753 17, 17, 18, 18, 18, 19, 18, 20,
754 19, 20, 20, 20, 19, 9, 13, 15,
755 16, 17, 17, 18, 18, 18, 20, 18,
756 19, 20, 20, 20, 20, 19, 20, 19,
757 9, 13, 15, 16, 17, 18, 18, 18,
758 19, 19, 19, 19, 10, 14, 16, 17,
759 18, 18, 19, 19, 19, 19, 19, 10,
760 14, 16, 17, 18, 18, 18, 19, 19,
761 10, 14, 16, 17, 18, 18, 18, 19,
762 19, 20, 19, 10, 14, 16, 18, 18,
763 18, 19, 20, 19, 19, 10, 14, 17,
764 18, 18, 18, 10, 15, 17, 18, 19,
765 19, 21, 19, 11, 15, 17, 18, 18,
766 19, 19, 11, 15, 17, 18, 19, 19,
767 11, 15, 17, 18, 11, 15, 18, 19,
768 19, 11, 15, 18, 19, 19, 11, 16,
769 18, 19, 11, 15, 18, 19, 11, 16,
770 18, 12, 16, 18, 19, 12, 16, 19,
771 12, 16, 19, 19, 19, 12, 16, 19,
772 12, 16, 19, 19, 12, 16, 18, 12,
773 16, 19, 12, 17, 19, 12, 17, 19,
774 12, 17, 19, 12, 17, 19, 13, 17,
775 13, 17, 13, 17, 19, 19, 13, 17,
776 13, 17, 19, 13, 17, 13, 18, 19,
777 13, 17, 19, 13, 18, 13, 17, 13,
778 18, 13, 18, 13, 18, 13, 18, 13,
779 18, 13, 18, 14, 18, 19, 14, 18,
780 14, 18, 14, 18, 14, 18, 14, 19,
781 14, 19, 14, 18, 14, 18, 14, 18,
782 14, 19, 14, 14, 18, 14, 14, 19,
783 14, 18, 14, 19, 14, 19, 14, 15,
784 19, 15, 15, 15, 15, 19, 15, 19,
785 15, 15, 19, 15, 15, 19, 15, 19,
786 15, 19, 15, 19, 15, 15, 15, 15,
787 15, 15, 15, 15, 15, 15, 15, 16,
788 15, 15, 15, 16, 16, 16, 15, 16,
789 16, 16, 16, 16, 16, 16, 16, 16,
790 16, 16, 16, 16, 16, 16, 16, 16,
791 16, 16, 16, 17, 16, 16, 16, 17,
792 17, 16, 17, 17, 16, 17, 17, 17,
793 17, 17, 17, 17, 17, 17, 17, 17,
794 17, 17, 17, 17, 17, 17, 17, 18,
795 17, 17, 17, 17, 17, 17, 17, 17,
796 18, 17, 17, 18, 17, 17, 17, 17,
797 18, 18, 17, 17, 17, 17, 17, 17,
798 17, 18, 17, 18, 18, 17, 17, 17,
799 18, 18, 18, 17, 18, 17, 18, 18,
800 18, 18, 18, 18, 18, 18, 18, 17,
801 18, 18, 18, 18, 19, 18, 18, 18,
802 18, 18, 18, 18, 18, 18, 18, 18,
803 18, 18, 18, 18, 18, 18, 18, 19,
804 18, 18, 19, 18, 18, 18, 19, 18,
805 19, 18, 18, 19, 18, 18, 19, 19,
806 19, 19, 19, 18, 19, 18, 19, 18,
807 19, 19, 18, 18, 19, 19, 19, 19,
808 19, 19, 19, 19, 19, 19, 18, 19,
809 19, 19, 19, 19, 18, 19, 19, 19,
810 19, 19, 19, 19, 19, 19, 19, 20,
811 19, 19, 19, 19, 21, 19, 19, 20,
812 19, 20, 19, 19, 19, 19, 19, 20,
813 20, 20, 19, 19, 19, 20, 19, 19,
814 19, 20, 20, 19, 20, 19, 19, 21,
815 20, 20, 19, 19, 19, 19, 19, 19,
816 20, 19, 20, 20, 20, 20, 20, 20,
817 20, 19, 19, 21, 20, 20, 19, 19,
818 };
819
820 static const uint32_t coef3_huffcodes[1072] = {
821 0x001b2, 0x00069, 0x00000, 0x00004, 0x00006, 0x0000e, 0x00014, 0x00019,
822 0x00016, 0x0002b, 0x00030, 0x0003d, 0x0003c, 0x0005a, 0x0005f, 0x0006d,
823 0x0007e, 0x0005f, 0x0007f, 0x000b6, 0x000bc, 0x000d8, 0x000f2, 0x000fe,
824 0x000bc, 0x000fc, 0x00161, 0x0016e, 0x00174, 0x00176, 0x001a2, 0x001e3,
825 0x001f3, 0x00174, 0x0017a, 0x001ea, 0x002a8, 0x002c4, 0x002e6, 0x00314,
826 0x00346, 0x00367, 0x003e9, 0x002e5, 0x002ee, 0x003d6, 0x00555, 0x00554,
827 0x00557, 0x005c3, 0x005d6, 0x006e0, 0x0062f, 0x006e2, 0x00799, 0x00789,
828 0x007fa, 0x005ce, 0x007fe, 0x005ec, 0x007cc, 0x007af, 0x00aa7, 0x00b19,
829 0x00b94, 0x00b85, 0x00b9f, 0x00c48, 0x00c45, 0x00dd8, 0x00c4c, 0x00c4b,
830 0x00d99, 0x00d1f, 0x00dc2, 0x00f95, 0x00fa2, 0x00bb5, 0x00b9f, 0x00f5d,
831 0x00bbf, 0x00f47, 0x0154a, 0x00fd5, 0x00f45, 0x00f7f, 0x0160d, 0x01889,
832 0x01757, 0x01722, 0x018b3, 0x0172d, 0x01a39, 0x01a18, 0x01bb3, 0x01b30,
833 0x01e63, 0x0173c, 0x01b35, 0x01723, 0x01e80, 0x01fee, 0x01761, 0x01ffc,
834 0x01f7f, 0x02c7c, 0x01fa1, 0x0177b, 0x01755, 0x0175a, 0x01fa6, 0x02eab,
835 0x0310a, 0x02c69, 0x03669, 0x03127, 0x03103, 0x02e43, 0x03662, 0x03165,
836 0x03124, 0x0313b, 0x03111, 0x03668, 0x0343b, 0x03c52, 0x03efc, 0x02e6c,
837 0x03fda, 0x03ef8, 0x02e7b, 0x03ee2, 0x03cc5, 0x03d72, 0x058c0, 0x03df8,
838 0x02ea9, 0x03e7e, 0x0556d, 0x05c82, 0x03d71, 0x03e7b, 0x03c42, 0x058d7,
839 0x03f4e, 0x06200, 0x03d70, 0x05cb2, 0x05c96, 0x05cb0, 0x03f45, 0x05cb1,
840 0x02e6d, 0x03110, 0x02f68, 0x05c90, 0x07ca6, 0x07c88, 0x06204, 0x062c8,
841 0x078a6, 0x07986, 0x079d5, 0x0b1ad, 0x07989, 0x0b079, 0x05cdd, 0x0aad4,
842 0x05de8, 0x07dcd, 0x07987, 0x05d67, 0x05d99, 0x0b91d, 0x07cf1, 0x05d9b,
843 0x079d7, 0x0b07b, 0x05c85, 0x05d9a, 0x07dcc, 0x07ebf, 0x07dce, 0x07dfb,
844 0x07ec0, 0x07d1a, 0x07a07, 0x05c84, 0x0c471, 0x07cf2, 0x0baef, 0x0b9d2,
845 0x05deb, 0x07bd6, 0x0b845, 0x05d98, 0x0b91a, 0x0bae8, 0x0c4e0, 0x0dc31,
846 0x0f93d, 0x0bbce, 0x0d1d2, 0x0f7a9, 0x0d9b9, 0x0bbcb, 0x0b900, 0x0aad7,
847 0x0babd, 0x0c4e1, 0x0f46f, 0x0c588, 0x0c58b, 0x160e6, 0x0bbcf, 0x0bac3,
848 0x0f945, 0x0f7a3, 0x0d1c1, 0x0fb8e, 0x0f7a4, 0x0fb8c, 0x0f40c, 0x0c473,
849 0x0fd72, 0x0bbcd, 0x0fffa, 0x0f940, 0x0bbc9, 0x0f7a8, 0x1a1ed, 0x0bbc5,
850 0x1f26f, 0x163fd, 0x160c7, 0x1a1f5, 0x0f947, 0x163fc, 0x154b3, 0x0fff6,
851 0x163f6, 0x160e9, 0x1a1f0, 0x0bab9, 0x0baba, 0x17086, 0x0b903, 0x0fd75,
852 0x0f308, 0x176f3, 0x163ff, 0x0fd7d, 0x1bb78, 0x163fb, 0x188db, 0x1a1f7,
853 0x154b2, 0x172fd, 0x163f4, 0x1bb73, 0x172ff, 0x0babc, 0x0f97d, 0x1a1f3,
854 0x1bb6d, 0x1ffd5, 0x1a1f4, 0x1f272, 0x17380, 0x17382, 0x1ffe7, 0x0bac8,
855 0x0bbc4, 0x188d3, 0x160e0, 0x0fd7b, 0x1725f, 0x172f5, 0x1bb79, 0x1fad9,
856 0x1f269, 0x188d0, 0x0bac4, 0x0bac5, 0x31185, 0x188d2, 0x188cc, 0x31187,
857 0x3e7fe, 0x188d1, 0x1bb6c, 0x1f268, 0x1fad2, 0x1ffd9, 0x1a1ea, 0x1bb68,
858 0x1facb, 0x3fdb2, 0x1e81a, 0x188ce, 0x172fb, 0x1a1ef, 0x1face, 0x1bb70,
859 0x0bac1, 0x1bb6b, 0x172f8, 0x1bb66, 0x1ffdf, 0x1bb6a, 0x1ffd7, 0x1f266,
860 0x176f8, 0x37653, 0x1fa7e, 0x31182, 0x1fac8, 0x2c7e3, 0x370ee, 0x176ec,
861 0x176e9, 0x2e4bc, 0x160c5, 0x3765a, 0x3ce9c, 0x17373, 0x176e8, 0x188d4,
862 0x176f1, 0x176ef, 0x37659, 0x1bb7c, 0x1ffde, 0x176f2, 0x3118b, 0x2c7d4,
863 0x37651, 0x5ce9f, 0x37650, 0x31191, 0x3f4f6, 0x3f4f5, 0x7a06c, 0x1fac1,
864 0x5c97b, 0x2c7e0, 0x79d3a, 0x3e7fd, 0x2c7df, 0x3f4f0, 0x7a06d, 0x376c1,
865 0x79d3b, 0x00004, 0x00014, 0x00059, 0x000ab, 0x000b8, 0x00177, 0x001f5,
866 0x001f2, 0x00315, 0x003fc, 0x005bd, 0x0062d, 0x006e8, 0x007dd, 0x00b04,
867 0x007cd, 0x00b1e, 0x00d1e, 0x00f15, 0x00f3b, 0x00f41, 0x01548, 0x018b0,
868 0x0173b, 0x01884, 0x01a1c, 0x01bb4, 0x01f25, 0x017b5, 0x0176d, 0x01ef8,
869 0x02e73, 0x03107, 0x03125, 0x03105, 0x02e49, 0x03ce8, 0x03ef9, 0x03e5e,
870 0x02e72, 0x03471, 0x03fd9, 0x0623f, 0x078a0, 0x06867, 0x05cb3, 0x06272,
871 0x068ec, 0x06e9a, 0x079d4, 0x06e98, 0x0b1aa, 0x06e1a, 0x07985, 0x068ee,
872 0x06e9b, 0x05c88, 0x0b1ac, 0x07dfa, 0x05d65, 0x07cf0, 0x07cbf, 0x0c475,
873 0x160eb, 0x1bb7e, 0x0f7a6, 0x1fedd, 0x160e3, 0x0fffb, 0x0fb8d, 0x0fff9,
874 0x0d1c0, 0x0c58c, 0x1a1e9, 0x0bab8, 0x0f5cf, 0x0fff5, 0x376c5, 0x1a1ec,
875 0x160ed, 0x1fede, 0x1fac9, 0x1a1eb, 0x1f224, 0x176ee, 0x0fd79, 0x17080,
876 0x17387, 0x1bb7a, 0x1ffe9, 0x176f7, 0x17385, 0x17781, 0x2c7d5, 0x17785,
877 0x1ffe3, 0x163f5, 0x1fac2, 0x3e7f9, 0x3118d, 0x3fdb1, 0x1ffe2, 0x1f226,
878 0x3118a, 0x2c7d9, 0x31190, 0x3118c, 0x3f4f3, 0x1bb7f, 0x1bb72, 0x31184,
879 0xb92f4, 0x3e7fb, 0x6e1d9, 0x1faca, 0x62300, 0x3fdb8, 0x3d037, 0x3e7fc,
880 0x62301, 0x3f4f2, 0x1f26a, 0x0000e, 0x00063, 0x000f8, 0x001ee, 0x00377,
881 0x003f7, 0x006e3, 0x005cc, 0x00b05, 0x00dd2, 0x00fd4, 0x0172e, 0x0172a,
882 0x01e23, 0x01f2d, 0x01763, 0x01769, 0x0176c, 0x02e75, 0x03104, 0x02ec1,
883 0x03e58, 0x0583f, 0x03f62, 0x03f44, 0x058c5, 0x0623c, 0x05cf4, 0x07bd7,
884 0x05d9d, 0x0aad2, 0x05d66, 0x0b1a9, 0x0b078, 0x07cfe, 0x0b918, 0x0c46f,
885 0x0b919, 0x0b847, 0x06e1b, 0x0b84b, 0x0aad8, 0x0fd74, 0x172f4, 0x17081,
886 0x0f97c, 0x1f273, 0x0f7a0, 0x0fd7c, 0x172f7, 0x0fd7a, 0x1bb77, 0x172fe,
887 0x1f270, 0x0fd73, 0x1bb7b, 0x1a1bc, 0x1bb7d, 0x0bbc3, 0x172f6, 0x0baeb,
888 0x0fb8f, 0x3f4f4, 0x3fdb4, 0x376c8, 0x3e7fa, 0x1ffd0, 0x62303, 0xb92f5,
889 0x1f261, 0x31189, 0x3fdb5, 0x2c7db, 0x376c9, 0x1fad6, 0x1fad1, 0x00015,
890 0x000f0, 0x002e0, 0x0058e, 0x005d7, 0x00c4d, 0x00fa1, 0x00bdb, 0x01756,
891 0x01f70, 0x02c19, 0x0313c, 0x0370f, 0x03cc0, 0x02ea8, 0x058c6, 0x058c7,
892 0x02eb7, 0x058d0, 0x07d18, 0x0aa58, 0x0b848, 0x05d9e, 0x05d6c, 0x0b84c,
893 0x0c589, 0x0b901, 0x163f8, 0x0bac9, 0x0b9c5, 0x0f93c, 0x188d8, 0x0bbc7,
894 0x160ec, 0x0fd6f, 0x188d9, 0x160ea, 0x0f7a7, 0x0f944, 0x0baab, 0x0dc3a,
895 0x188cf, 0x176fb, 0x2c7d8, 0x2c7d7, 0x1bb75, 0x5ce9e, 0x62302, 0x370ed,
896 0x176f4, 0x1ffd1, 0x370ef, 0x3f4f8, 0x376c7, 0x1ffe1, 0x376c6, 0x176ff,
897 0x6e1d8, 0x176f6, 0x17087, 0x0f5cd, 0x00035, 0x001a0, 0x0058b, 0x00aac,
898 0x00b9a, 0x0175f, 0x01e22, 0x01e8c, 0x01fb2, 0x0310b, 0x058d1, 0x0552e,
899 0x05c27, 0x0686e, 0x07ca7, 0x0c474, 0x0dc33, 0x07bf2, 0x05de9, 0x07a35,
900 0x0baaa, 0x0b9eb, 0x0fb95, 0x0b9b8, 0x17381, 0x1f262, 0x188cd, 0x17088,
901 0x172fa, 0x0f7a2, 0x1fad3, 0x0bac0, 0x3765c, 0x1fedf, 0x1f225, 0x1fad4,
902 0x2c7da, 0x5ce9d, 0x3e7f8, 0x1e203, 0x188d7, 0x00054, 0x002c0, 0x007a1,
903 0x00f78, 0x01b36, 0x01fa3, 0x0313a, 0x03436, 0x0343a, 0x07d1d, 0x07bd8,
904 0x05cdf, 0x0b846, 0x0b189, 0x0d9b8, 0x0fff8, 0x0d9be, 0x0c58a, 0x05dea,
905 0x0d1d3, 0x160e4, 0x1f26b, 0x188da, 0x1e202, 0x2c7d2, 0x163fe, 0x31193,
906 0x17782, 0x376c2, 0x2c7d1, 0x3fdb0, 0x3765d, 0x2c7d0, 0x1fad0, 0x1e201,
907 0x188dd, 0x2c7e2, 0x37657, 0x37655, 0x376c4, 0x376c0, 0x176ea, 0x0006f,
908 0x003cf, 0x00dd5, 0x01f23, 0x02c61, 0x02ed0, 0x05d54, 0x0552d, 0x07883,
909 0x0b1a8, 0x0b91c, 0x0babf, 0x0b902, 0x0f7aa, 0x0f7a5, 0x1a1e8, 0x1ffd6,
910 0x0babe, 0x1a1bf, 0x163f3, 0x1ffd8, 0x1fad7, 0x1f275, 0x1ffdc, 0x0007d,
911 0x005bc, 0x01549, 0x02a99, 0x03def, 0x06273, 0x079d6, 0x07d1b, 0x0aad3,
912 0x0d0fc, 0x2c7dd, 0x188d6, 0x0bac2, 0x2c7e1, 0x1bb76, 0x1a1bd, 0x31186,
913 0x0fd78, 0x1a1be, 0x31183, 0x3fdb6, 0x3f4f1, 0x37652, 0x1fad5, 0x3f4f9,
914 0x3e7ff, 0x5ce9c, 0x3765b, 0x31188, 0x17372, 0x000bd, 0x0078b, 0x01f21,
915 0x03c43, 0x03ded, 0x0aad6, 0x07ec1, 0x0f942, 0x05c86, 0x17089, 0x0babb,
916 0x1ffe8, 0x2c7de, 0x1f26e, 0x1fac4, 0x3f4f7, 0x37656, 0x1fa7d, 0x376c3,
917 0x3fdb3, 0x3118f, 0x1fac6, 0x000f8, 0x007ed, 0x01efd, 0x03e7a, 0x05c91,
918 0x0aad9, 0x0baec, 0x0dc32, 0x0f46e, 0x1e200, 0x176fa, 0x3765e, 0x3fdb7,
919 0x2c7d6, 0x3fdb9, 0x37654, 0x37658, 0x3118e, 0x1ffdb, 0x000f6, 0x00c43,
920 0x03106, 0x068ef, 0x0b84d, 0x0b188, 0x0bbcc, 0x1f264, 0x1bb69, 0x17386,
921 0x1fac0, 0x00171, 0x00f39, 0x03e41, 0x068ed, 0x0d9bc, 0x0f7a1, 0x1bb67,
922 0x1ffdd, 0x176f9, 0x001b9, 0x00f7d, 0x03f63, 0x0d0fd, 0x0b9ea, 0x188dc,
923 0x1fac3, 0x1a1f2, 0x31192, 0x1ffe4, 0x001f6, 0x01754, 0x06865, 0x0f309,
924 0x160e5, 0x176f5, 0x3765f, 0x1facc, 0x001e9, 0x01a1a, 0x06201, 0x0f105,
925 0x176f0, 0x002df, 0x01756, 0x05d6d, 0x163fa, 0x176ed, 0x00342, 0x02e40,
926 0x0d0ff, 0x17082, 0x003cd, 0x02a98, 0x0fffc, 0x2c7dc, 0x1fa7f, 0x003fe,
927 0x03764, 0x0fffd, 0x176fc, 0x1fac5, 0x002f7, 0x02ed1, 0x0fb97, 0x0058a,
928 0x02edc, 0x0bbc8, 0x005d4, 0x0623d, 0x160e8, 0x0062e, 0x05830, 0x163f9,
929 0x006eb, 0x06205, 0x1f274, 0x007de, 0x062c9, 0x1f265, 0x005c9, 0x05cde,
930 0x1ffd3, 0x005d4, 0x07988, 0x007ce, 0x0b849, 0x00b1b, 0x05c89, 0x1fac7,
931 0x00b93, 0x05c83, 0x00b9e, 0x0f14f, 0x00c4a, 0x0b9c7, 0x00dd4, 0x0c470,
932 0x1f271, 0x00f38, 0x0fb96, 0x176eb, 0x00fa0, 0x163f7, 0x00bb2, 0x0b91b,
933 0x00bbe, 0x0f102, 0x00f44, 0x0f946, 0x1facd, 0x00f79, 0x0d9bd, 0x0154d,
934 0x0bbc6, 0x00fd2, 0x160e7, 0x0172b, 0x188cb, 0x0175e, 0x0fd76, 0x0175c,
935 0x1bb71, 0x0189f, 0x1a1ee, 0x01f24, 0x1a1f6, 0x01ba7, 0x0bbca, 0x01f7d,
936 0x0ffff, 0x01f2e, 0x1bb65, 0x01bb5, 0x172f9, 0x01fef, 0x1f26c, 0x01f3e,
937 0x0fd77, 0x01762, 0x1bb6e, 0x01ef9, 0x172fc, 0x01fa0, 0x02ab7, 0x02e4a,
938 0x1f267, 0x01fb3, 0x1ffda, 0x02e42, 0x03101, 0x17780, 0x0313d, 0x03475,
939 0x17784, 0x03126, 0x1facf, 0x03c51, 0x17783, 0x03e40, 0x1ffe5, 0x03663,
940 0x1ffe0, 0x03e8f, 0x1f26d, 0x0343c, 0x03cc1, 0x176fd, 0x03e45, 0x02ec0,
941 0x03f61, 0x03dee, 0x03fd8, 0x0583e, 0x02e45, 0x03e59, 0x03d02, 0x05ce8,
942 0x05568, 0x176fe, 0x02f69, 0x1fad8, 0x058c1, 0x05c83, 0x1ffe6, 0x06271,
943 0x06e1c, 0x062c7, 0x068e1, 0x0552f, 0x06864, 0x06866, 0x06e99, 0x05cbc,
944 0x07ca5, 0x078a1, 0x05c82, 0x07dcf, 0x0623b, 0x0623e, 0x068e8, 0x07a36,
945 0x05d9c, 0x0b077, 0x07cf3, 0x07a34, 0x07ca4, 0x07d19, 0x079d2, 0x07d1c,
946 0x07bd9, 0x0b84a, 0x0fb94, 0x0aad5, 0x0dc30, 0x07bf3, 0x0baee, 0x0b07a,
947 0x0c472, 0x0b91e, 0x0d9ba, 0x05d9f, 0x0d0fe, 0x0b9c6, 0x05c87, 0x0f14e,
948 0x0baed, 0x0b92e, 0x0f103, 0x0b9c4, 0x0fb91, 0x0d9bb, 0x0b1ab, 0x0c58d,
949 0x0fffe, 0x0f93b, 0x0f941, 0x0baea, 0x0b91f, 0x0f5cc, 0x0d9bf, 0x0f943,
950 0x0f104, 0x1f260, 0x0fb92, 0x0f93f, 0x0f3a6, 0x0bac7, 0x0f7ab, 0x0bac6,
951 0x17383, 0x0fd6d, 0x0bae9, 0x0fd6e, 0x1e74f, 0x188ca, 0x1f227, 0x0fb93,
952 0x0fb90, 0x0fff7, 0x17085, 0x17083, 0x160e1, 0x17084, 0x0f93e, 0x160e2,
953 0x160c6, 0x1a1f1, 0x1bb6f, 0x17384, 0x0fd70, 0x1f263, 0x188d5, 0x173a6,
954 0x0f5ce, 0x163f2, 0x0fd71, 0x1ffd2, 0x160c4, 0x1ffd4, 0x2c7d3, 0x1bb74,
955 };
956
957 static const uint8_t coef3_huffbits[1072] = {
958 9, 7, 2, 3, 4, 4, 5, 5,
959 6, 6, 6, 6, 7, 7, 7, 7,
960 7, 8, 8, 8, 8, 8, 8, 8,
961 9, 9, 9, 9, 9, 9, 9, 9,
962 9, 10, 10, 10, 10, 10, 10, 10,
963 10, 10, 10, 11, 11, 11, 11, 11,
964 11, 11, 11, 11, 11, 11, 11, 11,
965 11, 12, 11, 12, 12, 12, 12, 12,
966 12, 12, 12, 12, 12, 12, 12, 12,
967 12, 12, 12, 12, 12, 13, 13, 13,
968 13, 13, 13, 13, 13, 13, 13, 13,
969 13, 13, 13, 13, 13, 13, 13, 13,
970 13, 14, 13, 14, 14, 13, 14, 13,
971 13, 14, 14, 14, 14, 14, 14, 14,
972 14, 14, 14, 14, 14, 14, 14, 14,
973 14, 14, 14, 14, 14, 14, 14, 15,
974 14, 14, 15, 14, 14, 15, 15, 15,
975 15, 15, 15, 15, 15, 15, 14, 15,
976 15, 15, 15, 15, 15, 15, 15, 15,
977 15, 14, 15, 15, 15, 15, 15, 15,
978 15, 15, 15, 16, 15, 16, 16, 16,
979 16, 15, 15, 16, 16, 16, 16, 16,
980 15, 16, 16, 16, 15, 16, 15, 15,
981 16, 15, 16, 16, 16, 16, 16, 16,
982 16, 16, 16, 16, 16, 16, 16, 16,
983 16, 17, 16, 17, 16, 17, 17, 16,
984 17, 16, 17, 16, 16, 17, 17, 17,
985 16, 17, 16, 16, 17, 16, 17, 16,
986 17, 17, 16, 16, 17, 17, 17, 17,
987 17, 17, 17, 17, 16, 17, 17, 16,
988 17, 17, 17, 17, 17, 17, 17, 17,
989 16, 18, 17, 17, 17, 17, 17, 17,
990 17, 17, 17, 17, 17, 17, 16, 17,
991 17, 17, 17, 17, 17, 17, 17, 17,
992 17, 17, 17, 17, 17, 17, 17, 18,
993 17, 17, 17, 17, 18, 17, 17, 18,
994 19, 17, 17, 17, 18, 17, 17, 17,
995 18, 18, 18, 17, 17, 17, 18, 17,
996 17, 17, 17, 17, 17, 17, 17, 17,
997 18, 18, 18, 18, 18, 18, 18, 18,
998 18, 18, 17, 18, 18, 18, 18, 17,
999 18, 18, 18, 17, 17, 18, 18, 18,
1000 18, 19, 18, 18, 19, 19, 20, 18,
1001 19, 18, 19, 19, 18, 19, 20, 18,
1002 19, 4, 6, 7, 8, 9, 9, 9,
1003 10, 10, 10, 11, 11, 11, 11, 12,
1004 12, 12, 12, 12, 12, 13, 13, 13,
1005 13, 13, 13, 13, 13, 14, 14, 14,
1006 14, 14, 14, 14, 14, 14, 14, 14,
1007 14, 14, 14, 15, 15, 15, 15, 15,
1008 15, 15, 15, 15, 16, 15, 15, 15,
1009 15, 16, 16, 15, 16, 16, 15, 16,
1010 17, 17, 17, 17, 17, 16, 16, 16,
1011 16, 16, 17, 17, 17, 16, 18, 17,
1012 17, 17, 18, 17, 17, 18, 17, 17,
1013 17, 17, 17, 18, 17, 18, 18, 18,
1014 17, 17, 18, 19, 18, 18, 17, 17,
1015 18, 18, 18, 18, 19, 17, 17, 18,
1016 20, 19, 19, 18, 19, 18, 19, 19,
1017 19, 19, 17, 5, 7, 9, 10, 10,
1018 11, 11, 12, 12, 12, 13, 13, 13,
1019 13, 13, 14, 14, 14, 14, 14, 15,
1020 14, 15, 15, 15, 15, 15, 16, 16,
1021 16, 16, 16, 16, 16, 16, 16, 16,
1022 16, 16, 15, 16, 16, 17, 17, 17,
1023 16, 17, 17, 17, 17, 17, 17, 17,
1024 17, 17, 17, 17, 17, 17, 17, 16,
1025 16, 19, 18, 18, 19, 17, 19, 20,
1026 17, 18, 18, 18, 18, 18, 18, 6,
1027 8, 10, 11, 12, 12, 12, 13, 13,
1028 13, 14, 14, 14, 14, 15, 15, 15,
1029 15, 15, 15, 16, 16, 16, 16, 16,
1030 16, 17, 17, 17, 16, 16, 17, 17,
1031 17, 17, 17, 17, 17, 16, 16, 16,
1032 17, 18, 18, 18, 17, 19, 19, 18,
1033 18, 17, 18, 19, 18, 17, 18, 18,
1034 19, 18, 17, 17, 6, 9, 11, 12,
1035 13, 13, 13, 14, 14, 14, 15, 15,
1036 15, 15, 15, 16, 16, 16, 16, 16,
1037 16, 17, 16, 17, 17, 17, 17, 17,
1038 17, 17, 18, 17, 18, 17, 17, 18,
1039 18, 19, 19, 17, 17, 7, 10, 12,
1040 13, 13, 14, 14, 14, 14, 15, 16,
1041 16, 16, 16, 16, 16, 16, 16, 16,
1042 16, 17, 17, 17, 17, 18, 17, 18,
1043 18, 18, 18, 18, 18, 18, 18, 17,
1044 17, 18, 18, 18, 18, 18, 18, 7,
1045 10, 12, 13, 14, 15, 15, 15, 15,
1046 16, 16, 17, 17, 17, 17, 17, 17,
1047 17, 17, 17, 17, 18, 17, 17, 8,
1048 11, 13, 14, 15, 15, 15, 15, 16,
1049 16, 18, 17, 17, 18, 17, 17, 18,
1050 17, 17, 18, 18, 19, 18, 18, 19,
1051 19, 19, 18, 18, 18, 8, 11, 13,
1052 14, 15, 16, 16, 16, 16, 17, 17,
1053 17, 18, 17, 18, 19, 18, 18, 18,
1054 18, 18, 18, 8, 12, 14, 15, 15,
1055 16, 16, 16, 17, 17, 18, 18, 18,
1056 18, 18, 18, 18, 18, 17, 9, 12,
1057 14, 15, 16, 16, 17, 17, 17, 17,
1058 18, 9, 12, 14, 15, 16, 17, 17,
1059 17, 18, 9, 13, 15, 16, 17, 17,
1060 18, 17, 18, 17, 9, 13, 15, 16,
1061 17, 18, 18, 18, 10, 13, 15, 16,
1062 18, 10, 14, 16, 17, 18, 10, 14,
1063 16, 17, 10, 14, 16, 18, 18, 10,
1064 14, 16, 18, 18, 11, 15, 16, 11,
1065 15, 17, 11, 15, 17, 11, 15, 17,
1066 11, 15, 17, 11, 15, 17, 12, 16,
1067 17, 12, 15, 12, 16, 12, 16, 18,
1068 12, 16, 12, 16, 12, 16, 12, 16,
1069 17, 12, 16, 18, 12, 17, 13, 16,
1070 13, 16, 13, 16, 18, 13, 16, 13,
1071 17, 13, 17, 13, 17, 13, 17, 13,
1072 17, 13, 17, 13, 17, 13, 17, 13,
1073 16, 13, 17, 13, 17, 13, 17, 14,
1074 17, 14, 17, 14, 17, 14, 14, 14,
1075 17, 14, 17, 14, 14, 18, 14, 14,
1076 18, 14, 18, 14, 18, 14, 17, 14,
1077 17, 14, 17, 14, 14, 18, 14, 15,
1078 15, 15, 14, 15, 15, 14, 15, 15,
1079 15, 18, 15, 18, 15, 15, 17, 15,
1080 15, 15, 15, 15, 15, 15, 15, 15,
1081 15, 15, 16, 15, 15, 15, 15, 16,
1082 16, 16, 16, 16, 15, 15, 15, 15,
1083 16, 16, 16, 16, 16, 16, 16, 16,
1084 16, 16, 16, 16, 16, 16, 16, 16,
1085 16, 16, 16, 16, 16, 16, 16, 16,
1086 16, 16, 16, 16, 16, 17, 16, 16,
1087 16, 17, 16, 16, 16, 17, 17, 17,
1088 17, 17, 16, 17, 17, 17, 17, 16,
1089 16, 16, 17, 17, 17, 17, 16, 17,
1090 17, 17, 17, 17, 17, 17, 17, 17,
1091 17, 17, 17, 17, 17, 17, 18, 17,
1092 };
1093
1094 static const uint32_t coef4_huffcodes[476] = {
1095 0x00f01, 0x0001e, 0x00000, 0x00004, 0x00006, 0x0000d, 0x0000a, 0x00017,
1096 0x0001d, 0x00017, 0x0002c, 0x00031, 0x00039, 0x0003e, 0x00039, 0x0005a,
1097 0x00066, 0x00070, 0x0007b, 0x00070, 0x00077, 0x000af, 0x000c9, 0x000f2,
1098 0x000f4, 0x000b2, 0x000e3, 0x0015b, 0x0015d, 0x00181, 0x0019d, 0x001e3,
1099 0x001c5, 0x002b5, 0x002db, 0x00338, 0x003c3, 0x003cc, 0x003f0, 0x002cd,
1100 0x003fa, 0x003a1, 0x005b4, 0x00657, 0x007ab, 0x0074d, 0x0074c, 0x00ac1,
1101 0x00ac5, 0x0076b, 0x00ca8, 0x00f04, 0x00f00, 0x00fe3, 0x00f3c, 0x00f10,
1102 0x00f39, 0x00fe6, 0x00e26, 0x00e90, 0x016c5, 0x01827, 0x01954, 0x015c5,
1103 0x01958, 0x01f8a, 0x01c4a, 0x02b0f, 0x02b41, 0x02b0e, 0x033c6, 0x03050,
1104 0x01c4f, 0x02d88, 0x0305c, 0x03c18, 0x02b4f, 0x02cc2, 0x03a47, 0x05680,
1105 0x0569d, 0x06442, 0x06443, 0x06446, 0x0656e, 0x06444, 0x07120, 0x0748a,
1106 0x0c1ba, 0x07e22, 0x07aa6, 0x07f25, 0x07aa7, 0x07e20, 0x0c11b, 0x0c118,
1107 0x07aa5, 0x0ad0a, 0x0f389, 0x19ebb, 0x0caad, 0x0fe42, 0x0fe40, 0x16c34,
1108 0x2b4e5, 0x33d65, 0x16c30, 0x1e7ae, 0x1e25c, 0x18370, 0x1e703, 0x19eba,
1109 0x16c37, 0x0e234, 0x16c6e, 0x00004, 0x0002a, 0x00061, 0x00075, 0x000cb,
1110 0x000ff, 0x00190, 0x001eb, 0x001d1, 0x002b9, 0x00307, 0x00339, 0x0033f,
1111 0x003fb, 0x003b4, 0x0060c, 0x00679, 0x00645, 0x0067d, 0x0078a, 0x007e3,
1112 0x00749, 0x00ac4, 0x00ad2, 0x00ae3, 0x00c10, 0x00c16, 0x00ad1, 0x00cf4,
1113 0x00fe2, 0x01586, 0x00e9d, 0x019f1, 0x01664, 0x01e26, 0x01d38, 0x02b4d,
1114 0x033c5, 0x01fc2, 0x01fc3, 0x01d28, 0x03c1d, 0x0598e, 0x0f094, 0x07aa4,
1115 0x0ad38, 0x0ac0c, 0x0c11a, 0x079ea, 0x0c881, 0x0fe44, 0x0b635, 0x0ac0d,
1116 0x0b61e, 0x05987, 0x07121, 0x0f382, 0x0f387, 0x0e237, 0x0fe47, 0x0f383,
1117 0x0f091, 0x0f385, 0x0e233, 0x182ee, 0x19eb8, 0x1663e, 0x0f093, 0x00014,
1118 0x00058, 0x00159, 0x00167, 0x00300, 0x003d4, 0x005b5, 0x0079d, 0x0076a,
1119 0x00b67, 0x00b60, 0x00f05, 0x00cf0, 0x00f17, 0x00e95, 0x01822, 0x01913,
1120 0x016c2, 0x0182f, 0x01959, 0x01fcb, 0x01e27, 0x01c40, 0x033c7, 0x01e7b,
1121 0x01c49, 0x02d89, 0x01e23, 0x01660, 0x03f12, 0x02cc6, 0x033e1, 0x05b34,
1122 0x0609a, 0x06569, 0x07488, 0x07e21, 0x0cf5f, 0x0712c, 0x0389d, 0x067cf,
1123 0x07f28, 0x1663f, 0x33d67, 0x1663d, 0x1e25d, 0x3c1ab, 0x15c44, 0x16c36,
1124 0x0001f, 0x000ec, 0x00323, 0x005b2, 0x0079f, 0x00ac2, 0x00f16, 0x00e9e,
1125 0x01956, 0x01e0f, 0x019ea, 0x01666, 0x02b89, 0x02b02, 0x02d8c, 0x03c1b,
1126 0x03c19, 0x032b5, 0x03f9c, 0x02ccf, 0x03897, 0x05b35, 0x0ad02, 0x07f29,
1127 0x06441, 0x03884, 0x07888, 0x0784e, 0x06568, 0x0c1bb, 0x05986, 0x067cc,
1128 0x0fe49, 0x0fe48, 0x0c1bc, 0x0fe41, 0x18371, 0x1663c, 0x0e231, 0x0711e,
1129 0x0ad09, 0x0f092, 0x0002d, 0x001db, 0x00781, 0x00c1a, 0x00f55, 0x01580,
1130 0x01ea8, 0x02d9b, 0x032af, 0x03f16, 0x03c1c, 0x07834, 0x03c45, 0x0389c,
1131 0x067ce, 0x06445, 0x0c1b9, 0x07889, 0x07f3a, 0x0784f, 0x07f2b, 0x0ad0b,
1132 0x0f090, 0x0c11d, 0x0e94e, 0x0711f, 0x0e9f1, 0x0f38e, 0x079e9, 0x0ad03,
1133 0x0f09b, 0x0caae, 0x0fe46, 0x2b4e6, 0x0e9f0, 0x19eb6, 0x67ac1, 0x67ac0,
1134 0x33d66, 0x0f388, 0x00071, 0x003a0, 0x00ca9, 0x01829, 0x01d39, 0x02b43,
1135 0x02cc4, 0x06554, 0x0f09a, 0x0b61f, 0x067cd, 0x0711c, 0x0b636, 0x07f2a,
1136 0x0b634, 0x0c11f, 0x0cf5e, 0x0b61d, 0x0f06b, 0x0caab, 0x0c1be, 0x0e94c,
1137 0x0f099, 0x182ed, 0x0e94f, 0x0c119, 0x0e232, 0x2b4e4, 0x0f38a, 0x19eb4,
1138 0x1e25f, 0x0e94d, 0x000b7, 0x00785, 0x016cc, 0x03051, 0x033c4, 0x0656f,
1139 0x03891, 0x0711d, 0x0caaf, 0x0f097, 0x07489, 0x0f098, 0x0c880, 0x0caaa,
1140 0x0f386, 0x19eb7, 0x16c6f, 0x0f384, 0x182e8, 0x182e9, 0x0e230, 0x1e700,
1141 0x33d62, 0x33d63, 0x33d64, 0x16c33, 0x0e216, 0x000fd, 0x00c15, 0x01665,
1142 0x03c4a, 0x07f3b, 0x07896, 0x0c11c, 0x0e215, 0x16c32, 0x0f38b, 0x0f38d,
1143 0x182ea, 0x1e701, 0x712df, 0x15c46, 0x00194, 0x00fe0, 0x03f13, 0x0748b,
1144 0x0f096, 0x0cf80, 0x1e25e, 0xe25bd, 0x33d61, 0x16c31, 0x001f9, 0x01912,
1145 0x05710, 0x0f3d0, 0x0c1bf, 0x00301, 0x01e24, 0x0ad08, 0x003cd, 0x01c41,
1146 0x0c1bd, 0x00563, 0x03a52, 0x0f3d1, 0x00570, 0x02cce, 0x0e217, 0x0067b,
1147 0x0655d, 0x0074b, 0x06447, 0x00c12, 0x074fb, 0x00f08, 0x0b61c, 0x00e22,
1148 0x0fe43, 0x016c7, 0x01836, 0x019f2, 0x01c43, 0x01d3f, 0x01fcf, 0x02b4c,
1149 0x0304c, 0x032b6, 0x03a46, 0x05607, 0x03f17, 0x02cc5, 0x0609b, 0x0655c,
1150 0x07e23, 0x067c1, 0x07f26, 0x07f27, 0x0f095, 0x0e9f3, 0x0cf81, 0x0c11e,
1151 0x0caac, 0x0f38f, 0x0e9f2, 0x074fa, 0x0e236, 0x0fe45, 0x1c428, 0x0e235,
1152 0x182ef, 0x19eb5, 0x0f3d6, 0x182ec, 0x16c35, 0x0f38c, 0x2b4e7, 0x15c47,
1153 0xe25bc, 0x1e702, 0x1c4b6, 0x0e25a, 0x3c1aa, 0x15c45, 0x1c429, 0x19eb9,
1154 0x1e7af, 0x182eb, 0x1e0d4, 0x3896e,
1155 };
1156
1157 static const uint8_t coef4_huffbits[476] = {
1158 12, 6, 2, 3, 4, 4, 5, 5,
1159 5, 6, 6, 6, 6, 6, 7, 7,
1160 7, 7, 7, 8, 8, 8, 8, 8,
1161 8, 9, 9, 9, 9, 9, 9, 9,
1162 10, 10, 10, 10, 10, 10, 10, 11,
1163 10, 11, 11, 11, 11, 12, 12, 12,
1164 12, 12, 12, 12, 12, 12, 12, 12,
1165 12, 12, 13, 13, 13, 13, 13, 13,
1166 13, 13, 14, 14, 14, 14, 14, 14,
1167 14, 14, 14, 14, 14, 15, 15, 15,
1168 15, 15, 15, 15, 15, 15, 16, 16,
1169 16, 15, 15, 15, 15, 15, 16, 16,
1170 15, 16, 16, 17, 16, 16, 16, 17,
1171 18, 18, 17, 17, 17, 17, 17, 17,
1172 17, 17, 17, 4, 6, 7, 8, 8,
1173 8, 9, 9, 10, 10, 10, 10, 10,
1174 10, 11, 11, 11, 11, 11, 11, 11,
1175 12, 12, 12, 12, 12, 12, 12, 12,
1176 12, 13, 13, 13, 14, 13, 14, 14,
1177 14, 13, 13, 14, 14, 16, 16, 15,
1178 16, 16, 16, 15, 16, 16, 16, 16,
1179 16, 16, 16, 16, 16, 17, 16, 16,
1180 16, 16, 17, 17, 17, 18, 16, 5,
1181 8, 9, 10, 10, 10, 11, 11, 12,
1182 12, 12, 12, 12, 12, 13, 13, 13,
1183 13, 13, 13, 13, 13, 14, 14, 13,
1184 14, 14, 13, 14, 14, 15, 14, 15,
1185 15, 15, 16, 15, 16, 16, 15, 15,
1186 15, 18, 18, 18, 17, 18, 17, 17,
1187 6, 9, 10, 11, 11, 12, 12, 13,
1188 13, 13, 13, 14, 14, 14, 14, 14,
1189 14, 14, 14, 15, 15, 15, 16, 15,
1190 15, 15, 15, 15, 15, 16, 16, 15,
1191 16, 16, 16, 16, 17, 18, 17, 16,
1192 16, 16, 7, 10, 11, 12, 12, 13,
1193 13, 14, 14, 14, 14, 15, 14, 15,
1194 15, 15, 16, 15, 15, 15, 15, 16,
1195 16, 16, 17, 16, 17, 16, 15, 16,
1196 16, 16, 16, 18, 17, 17, 19, 19,
1197 18, 16, 7, 11, 12, 13, 14, 14,
1198 15, 15, 16, 16, 15, 16, 16, 15,
1199 16, 16, 16, 16, 16, 16, 16, 17,
1200 16, 17, 17, 16, 17, 18, 16, 17,
1201 17, 17, 8, 11, 13, 14, 14, 15,
1202 15, 16, 16, 16, 16, 16, 16, 16,
1203 16, 17, 17, 16, 17, 17, 17, 17,
1204 18, 18, 18, 17, 17, 8, 12, 14,
1205 14, 15, 15, 16, 17, 17, 16, 16,
1206 17, 17, 20, 17, 9, 12, 14, 16,
1207 16, 16, 17, 21, 18, 17, 9, 13,
1208 15, 16, 16, 10, 13, 16, 10, 14,
1209 16, 11, 15, 16, 11, 15, 17, 11,
1210 15, 12, 15, 12, 16, 12, 16, 13,
1211 16, 13, 13, 13, 14, 14, 13, 14,
1212 14, 14, 15, 15, 14, 15, 15, 15,
1213 15, 15, 15, 15, 16, 17, 16, 16,
1214 16, 16, 17, 16, 17, 16, 18, 17,
1215 17, 17, 16, 17, 17, 16, 18, 17,
1216 21, 17, 18, 17, 18, 17, 18, 17,
1217 17, 17, 17, 19,
1218 };
1219
1220 static const uint32_t coef5_huffcodes[435] = {
1221 0x00347, 0x0000b, 0x00001, 0x00001, 0x0000c, 0x00004, 0x00010, 0x00015,
1222 0x0001f, 0x0000b, 0x00023, 0x00026, 0x00029, 0x00035, 0x00037, 0x00001,
1223 0x00015, 0x0001a, 0x0001d, 0x0001c, 0x0001e, 0x0004e, 0x00049, 0x00051,
1224 0x00078, 0x00004, 0x00000, 0x00008, 0x0000d, 0x0007b, 0x00005, 0x00032,
1225 0x00095, 0x00091, 0x00096, 0x000a1, 0x000d9, 0x00003, 0x00019, 0x00061,
1226 0x00066, 0x00060, 0x00017, 0x0000e, 0x00063, 0x001a0, 0x001b7, 0x001e6,
1227 0x001e7, 0x001b6, 0x00018, 0x001e8, 0x00038, 0x00031, 0x00005, 0x0003d,
1228 0x00027, 0x001ea, 0x0001a, 0x000c5, 0x000f9, 0x000ff, 0x000db, 0x00250,
1229 0x000fc, 0x0025c, 0x00008, 0x00075, 0x003d7, 0x003d3, 0x001b0, 0x0007c,
1230 0x003ca, 0x00036, 0x00189, 0x004a6, 0x004a2, 0x004fb, 0x000c0, 0x0007f,
1231 0x0009a, 0x00311, 0x0006e, 0x0009b, 0x0068c, 0x006c0, 0x00484, 0x00012,
1232 0x000c3, 0x0094f, 0x00979, 0x009f9, 0x00d09, 0x00da6, 0x00da8, 0x00901,
1233 0x000c1, 0x00373, 0x00d08, 0x009fa, 0x00d8b, 0x00d85, 0x00d86, 0x000df,
1234 0x006e2, 0x000ce, 0x00f24, 0x009fe, 0x001f7, 0x007c1, 0x000cf, 0x009fc,
1235 0x009ff, 0x00d89, 0x00da9, 0x009fd, 0x001f8, 0x01a36, 0x0128c, 0x0129d,
1236 0x01a37, 0x00196, 0x003ea, 0x00f8b, 0x00d93, 0x01e45, 0x01e58, 0x01e4b,
1237 0x01e59, 0x013f1, 0x00309, 0x00265, 0x00308, 0x0243a, 0x027e1, 0x00f89,
1238 0x00324, 0x03cbc, 0x03c86, 0x03695, 0x0243c, 0x0243b, 0x0243e, 0x01e4a,
1239 0x003a5, 0x03468, 0x03428, 0x03c84, 0x027e0, 0x025e2, 0x01880, 0x00197,
1240 0x00325, 0x03cb7, 0x0791e, 0x007ec, 0x06c75, 0x004c8, 0x04bc7, 0x004c6,
1241 0x00983, 0x0481e, 0x01b53, 0x0251b, 0x01b58, 0x00984, 0x04fa8, 0x03cbb,
1242 0x00f8a, 0x00322, 0x0346a, 0x0243d, 0x00326, 0x03469, 0x0481f, 0x0481d,
1243 0x00746, 0x09032, 0x01b50, 0x01d13, 0x0d8e4, 0x0481b, 0x06c74, 0x0796b,
1244 0x07969, 0x00985, 0x0d8e3, 0x00986, 0x00fa2, 0x01301, 0x06c7c, 0x00987,
1245 0x03cb8, 0x0f4af, 0x00e88, 0x1b1c0, 0x00fce, 0x033eb, 0x03f6a, 0x03f69,
1246 0x00fcf, 0x0791f, 0x004c9, 0x04871, 0x00fcd, 0x00982, 0x00fcc, 0x00fa3,
1247 0x01d12, 0x0796c, 0x01b47, 0x00321, 0x0796a, 0x0d8e2, 0x04872, 0x04873,
1248 0x0000e, 0x00014, 0x0000a, 0x000a0, 0x00012, 0x0007d, 0x001a2, 0x0003b,
1249 0x0025f, 0x000dd, 0x0027c, 0x00343, 0x00368, 0x0036b, 0x0003e, 0x001fa,
1250 0x00485, 0x001b3, 0x0007f, 0x001b1, 0x0019e, 0x004ba, 0x007ad, 0x00339,
1251 0x00066, 0x007a4, 0x00793, 0x006c6, 0x0007e, 0x000f1, 0x00372, 0x009fb,
1252 0x00d83, 0x00d8a, 0x00947, 0x009f4, 0x001d0, 0x01b09, 0x01b4b, 0x007ec,
1253 0x003e1, 0x000ca, 0x003ec, 0x02539, 0x04fa9, 0x01b57, 0x03429, 0x03d2a,
1254 0x00d97, 0x003a7, 0x00dc0, 0x00d96, 0x00dc1, 0x007eb, 0x03cba, 0x00c43,
1255 0x00c41, 0x01b52, 0x007ef, 0x00323, 0x03cb9, 0x03c83, 0x007d0, 0x007ed,
1256 0x06c7f, 0x09033, 0x03f6c, 0x36383, 0x1e95d, 0x06c78, 0x00747, 0x01b51,
1257 0x00022, 0x00016, 0x00039, 0x00252, 0x00079, 0x00486, 0x00338, 0x00369,
1258 0x00d88, 0x00026, 0x00d87, 0x00f4b, 0x00d82, 0x00027, 0x001e1, 0x01a15,
1259 0x007c7, 0x012f0, 0x001e0, 0x006d0, 0x01a16, 0x01e44, 0x01e5f, 0x03690,
1260 0x00d90, 0x00c42, 0x00daf, 0x00d92, 0x00f80, 0x00cfb, 0x0342f, 0x0487f,
1261 0x01b46, 0x07968, 0x00d95, 0x00d91, 0x01b55, 0x03f68, 0x04bc6, 0x03cbd,
1262 0x00f81, 0x00320, 0x00069, 0x000fe, 0x006d5, 0x0033f, 0x000de, 0x007c6,
1263 0x01e40, 0x00d94, 0x00f88, 0x03c8e, 0x03694, 0x00dae, 0x00dad, 0x00267,
1264 0x003a6, 0x00327, 0x0487e, 0x007ee, 0x00749, 0x004c7, 0x03692, 0x01b56,
1265 0x00fd1, 0x07a56, 0x06c77, 0x09031, 0x00748, 0x06c7a, 0x0796d, 0x033ea,
1266 0x06c76, 0x00fd0, 0x36382, 0x1e417, 0x00745, 0x04faf, 0x0d8e1, 0x03f6b,
1267 0x1e95c, 0x04fad, 0x0009e, 0x004bd, 0x0067c, 0x01b08, 0x003eb, 0x01b45,
1268 0x03691, 0x0d8e5, 0x07904, 0x00981, 0x007ea, 0x019f4, 0x06c7d, 0x04fab,
1269 0x04fac, 0x06c7e, 0x01300, 0x06c7b, 0x0006f, 0x003f7, 0x03c85, 0x004c4,
1270 0x0001e, 0x006e1, 0x03693, 0x01b44, 0x00241, 0x01e46, 0x0019d, 0x00266,
1271 0x004bb, 0x02538, 0x007ac, 0x01b54, 0x00902, 0x04870, 0x00da7, 0x00900,
1272 0x00185, 0x06c79, 0x006e3, 0x003e9, 0x01e94, 0x003ed, 0x003f2, 0x0342e,
1273 0x0346b, 0x0251a, 0x004c5, 0x01881, 0x0481c, 0x01b59, 0x03c87, 0x04fae,
1274 0x007e9, 0x03f6d, 0x0f20a, 0x09030, 0x04faa, 0x0d8e6, 0x03f6f, 0x0481a,
1275 0x03f6e, 0x1e416, 0x0d8e7,
1276 };
1277
1278 static const uint8_t coef5_huffbits[435] = {
1279 10, 4, 2, 4, 4, 5, 5, 5,
1280 5, 6, 6, 6, 6, 6, 6, 7,
1281 7, 7, 7, 7, 7, 7, 7, 7,
1282 7, 8, 8, 8, 8, 7, 8, 8,
1283 8, 8, 8, 8, 8, 9, 9, 9,
1284 9, 9, 9, 9, 9, 9, 9, 9,
1285 9, 9, 10, 9, 10, 10, 10, 10,
1286 10, 9, 10, 10, 10, 10, 10, 10,
1287 10, 10, 11, 11, 10, 10, 11, 11,
1288 10, 11, 11, 11, 11, 11, 12, 12,
1289 12, 12, 12, 12, 11, 11, 11, 12,
1290 12, 12, 12, 12, 12, 12, 12, 12,
1291 12, 12, 12, 12, 12, 12, 12, 13,
1292 13, 13, 12, 12, 13, 13, 13, 12,
1293 12, 12, 12, 12, 13, 13, 13, 13,
1294 13, 14, 14, 14, 14, 13, 13, 13,
1295 13, 13, 14, 14, 14, 14, 14, 14,
1296 15, 14, 14, 14, 14, 14, 14, 13,
1297 14, 14, 14, 14, 14, 14, 15, 14,
1298 15, 14, 15, 15, 15, 15, 15, 15,
1299 16, 15, 15, 14, 15, 16, 15, 14,
1300 14, 15, 14, 14, 15, 14, 15, 15,
1301 15, 16, 15, 17, 16, 15, 15, 15,
1302 15, 16, 16, 16, 16, 17, 15, 16,
1303 14, 16, 16, 17, 16, 16, 16, 16,
1304 16, 15, 15, 15, 16, 16, 16, 16,
1305 17, 15, 15, 15, 15, 16, 15, 15,
1306 4, 7, 8, 8, 9, 9, 9, 10,
1307 10, 10, 10, 10, 10, 10, 11, 11,
1308 11, 11, 11, 11, 11, 11, 11, 12,
1309 12, 11, 11, 11, 12, 12, 12, 12,
1310 12, 12, 12, 12, 13, 13, 13, 13,
1311 12, 13, 14, 14, 15, 15, 14, 14,
1312 14, 14, 14, 14, 14, 15, 14, 14,
1313 14, 15, 15, 15, 14, 14, 15, 15,
1314 15, 16, 16, 18, 17, 15, 15, 15,
1315 6, 9, 10, 10, 11, 11, 12, 12,
1316 12, 13, 12, 12, 12, 13, 13, 13,
1317 13, 13, 13, 13, 13, 13, 13, 14,
1318 14, 14, 14, 14, 14, 14, 14, 15,
1319 15, 15, 14, 14, 15, 16, 15, 14,
1320 14, 15, 7, 10, 11, 12, 13, 13,
1321 13, 14, 14, 14, 14, 14, 14, 14,
1322 14, 15, 15, 15, 15, 15, 14, 15,
1323 16, 15, 15, 16, 15, 15, 15, 16,
1324 15, 16, 18, 17, 15, 15, 16, 16,
1325 17, 15, 8, 11, 13, 13, 14, 15,
1326 14, 16, 15, 16, 15, 15, 15, 15,
1327 15, 15, 17, 15, 9, 12, 14, 15,
1328 10, 13, 14, 15, 10, 13, 11, 14,
1329 11, 14, 11, 15, 12, 15, 12, 12,
1330 13, 15, 13, 14, 13, 14, 14, 14,
1331 14, 14, 15, 15, 15, 15, 14, 15,
1332 15, 16, 16, 16, 15, 16, 16, 15,
1333 16, 17, 16,
1334 };
1335
1336 static const uint16_t levels0[60] = {
1337 317, 92, 62, 60, 19, 17, 10, 7,
1338 6, 5, 5, 3, 3, 3, 2, 2,
1339 2, 2, 2, 2, 2, 1, 2, 2,
1340 1, 1, 1, 1, 1, 1, 1, 1,
1341 1, 1, 1, 1, 1, 1, 1, 1,
1342 1, 1, 1, 1, 1, 1, 1, 1,
1343 1, 1, 1, 1, 1, 1, 1, 1,
1344 1, 1, 1, 1,
1345 };
1346
1347 static const uint16_t levels1[40] = {
1348 311, 91, 61, 28, 10, 6, 5, 2,
1349 2, 2, 2, 2, 2, 2, 2, 1,
1350 1, 1, 1, 1, 1, 1, 1, 1,
1351 1, 1, 1, 1, 1, 1, 1, 1,
1352 1, 1, 1, 1, 1, 1, 1, 1,
1353 };
1354
1355 static const uint16_t levels2[340] = {
1356 181, 110, 78, 63, 61, 62, 60, 61,
1357 33, 41, 41, 19, 17, 19, 12, 11,
1358 9, 11, 10, 6, 8, 7, 6, 4,
1359 5, 5, 4, 4, 3, 4, 3, 5,
1360 3, 4, 3, 3, 3, 3, 3, 3,
1361 2, 2, 4, 2, 3, 2, 3, 3,
1362 2, 2, 2, 2, 2, 2, 2, 2,
1363 3, 2, 2, 2, 2, 2, 2, 2,
1364 2, 2, 2, 1, 2, 1, 2, 2,
1365 2, 2, 1, 2, 1, 1, 1, 2,
1366 2, 1, 2, 1, 2, 2, 2, 2,
1367 1, 1, 1, 1, 1, 1, 1, 1,
1368 1, 1, 1, 1, 1, 1, 1, 1,
1369 1, 1, 1, 1, 1, 1, 1, 1,
1370 1, 1, 1, 1, 1, 1, 1, 1,
1371 1, 1, 1, 1, 1, 1, 1, 1,
1372 1, 1, 1, 1, 1, 1, 1, 1,
1373 1, 1, 1, 1, 1, 1, 1, 1,
1374 1, 1, 1, 1, 1, 1, 1, 1,
1375 1, 1, 1, 1, 1, 1, 1, 1,
1376 1, 1, 1, 1, 1, 1, 1, 1,
1377 1, 1, 1, 1, 1, 1, 1, 1,
1378 1, 1, 1, 1, 1, 1, 1, 1,
1379 1, 1, 1, 1, 1, 1, 1, 1,
1380 1, 1, 1, 1, 1, 1, 1, 1,
1381 1, 1, 1, 1, 1, 1, 1, 1,
1382 1, 1, 1, 1, 1, 1, 1, 1,
1383 1, 1, 1, 1, 1, 1, 1, 1,
1384 1, 1, 1, 1, 1, 1, 1, 1,
1385 1, 1, 1, 1, 1, 1, 1, 1,
1386 1, 1, 1, 1, 1, 1, 1, 1,
1387 1, 1, 1, 1, 1, 1, 1, 1,
1388 1, 1, 1, 1, 1, 1, 1, 1,
1389 1, 1, 1, 1, 1, 1, 1, 1,
1390 1, 1, 1, 1, 1, 1, 1, 1,
1391 1, 1, 1, 1, 1, 1, 1, 1,
1392 1, 1, 1, 1, 1, 1, 1, 1,
1393 1, 1, 1, 1, 1, 1, 1, 1,
1394 1, 1, 1, 1, 1, 1, 1, 1,
1395 1, 1, 1, 1, 1, 1, 1, 1,
1396 1, 1, 1, 1, 1, 1, 1, 1,
1397 1, 1, 1, 1, 1, 1, 1, 1,
1398 1, 1, 1, 1,
1399 };
1400
1401 static const uint16_t levels3[180] = {
1402 351, 122, 76, 61, 41, 42, 24, 30,
1403 22, 19, 11, 9, 10, 8, 5, 5,
1404 4, 5, 5, 3, 3, 3, 3, 3,
1405 3, 3, 2, 2, 3, 2, 2, 2,
1406 3, 3, 2, 2, 2, 3, 2, 2,
1407 2, 2, 2, 2, 2, 2, 2, 2,
1408 2, 2, 2, 2, 2, 2, 1, 1,
1409 2, 2, 1, 2, 1, 2, 2, 2,
1410 2, 2, 2, 1, 2, 1, 1, 1,
1411 1, 1, 1, 1, 1, 1, 1, 2,
1412 2, 1, 2, 1, 1, 1, 1, 1,
1413 1, 1, 1, 1, 1, 1, 1, 1,
1414 1, 1, 1, 1, 1, 1, 1, 1,
1415 1, 1, 1, 1, 1, 1, 1, 1,
1416 1, 1, 1, 1, 1, 1, 1, 1,
1417 1, 1, 1, 1, 1, 1, 1, 1,
1418 1, 1, 1, 1, 1, 1, 1, 1,
1419 1, 1, 1, 1, 1, 1, 1, 1,
1420 1, 1, 1, 1, 1, 1, 1, 1,
1421 1, 1, 1, 1, 1, 1, 1, 1,
1422 1, 1, 1, 1, 1, 1, 1, 1,
1423 1, 1, 1, 1, 1, 1, 1, 1,
1424 1, 1, 1, 1,
1425 };
1426
1427 static const uint16_t levels4[70] = {
1428 113, 68, 49, 42, 40, 32, 27, 15,
1429 10, 5, 3, 3, 3, 3, 2, 2,
1430 2, 2, 2, 1, 1, 1, 1, 1,
1431 1, 1, 1, 1, 1, 1, 1, 1,
1432 1, 1, 1, 1, 1, 1, 1, 1,
1433 1, 1, 1, 1, 1, 1, 1, 1,
1434 1, 1, 1, 1, 1, 1, 1, 1,
1435 1, 1, 1, 1, 1, 1, 1, 1,
1436 1, 1, 1, 1, 1, 1,
1437 };
1438
1439 static const uint16_t levels5[40] = {
1440 214, 72, 42, 40, 18, 4, 4, 2,
1441 2, 2, 2, 2, 1, 1, 2, 1,
1442 1, 1, 1, 1, 1, 1, 1, 1,
1443 1, 1, 1, 1, 1, 1, 1, 1,
1444 1, 1, 1, 1, 1, 1, 1, 1,
1445 };
1446
1447 #define DEF_COEF_TABLE(_x) { \
1448 .n = sizeof(coef ## _x ## _huffbits), \
1449 .max_level = sizeof(levels ## _x) / 2, \
1450 .huffcodes = coef ## _x ## _huffcodes, \
1451 .huffbits = coef ## _x ##_huffbits, \
1452 .levels = levels ## _x}
1453
1454 static const struct coef_vlc_table coef_vlcs[6] = {
1455 DEF_COEF_TABLE(0), DEF_COEF_TABLE(1), DEF_COEF_TABLE(2),
1456 DEF_COEF_TABLE(3), DEF_COEF_TABLE(4), DEF_COEF_TABLE(5)
1457 };