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