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