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