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