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