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