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