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