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