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