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