]> git.tuebingen.mpg.de Git - paraslash.git/blob - wmadata.h
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 };