• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* ------------------------------------------------------------------
2  * Copyright (C) 1998-2009 PacketVideo
3  *
4  * Licensed under the Apache License, Version 2.0 (the "License");
5  * you may not use this file except in compliance with the License.
6  * You may obtain a copy of the License at
7  *
8  *      http://www.apache.org/licenses/LICENSE-2.0
9  *
10  * Unless required by applicable law or agreed to in writing, software
11  * distributed under the License is distributed on an "AS IS" BASIS,
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
13  * express or implied.
14  * See the License for the specific language governing permissions
15  * and limitations under the License.
16  * -------------------------------------------------------------------
17  */
18 /*
19 ------------------------------------------------------------------------------
20 
21    PacketVideo Corp.
22    MP3 Decoder Library
23 
24    Filename: pvmp3_tables.cpp
25 
26    Date: 09/21/2007
27 
28 ------------------------------------------------------------------------------
29  REVISION HISTORY
30 
31 
32  Description:
33 
34 
35 ------------------------------------------------------------------------------
36 
37 
38 ------------------------------------------------------------------------------
39  REFERENCES
40 
41  [1] ISO MPEG Audio Subgroup Software Simulation Group (1996)
42      ISO 13818-3 MPEG-2 Audio Decoder - Lower Sampling Frequency Extension
43 
44 ------------------------------------------------------------------------------
45 */
46 
47 
48 /*----------------------------------------------------------------------------
49 ; INCLUDES
50 ----------------------------------------------------------------------------*/
51 
52 #include "pvmp3_tables.h"
53 
54 /*----------------------------------------------------------------------------
55 ; MACROS
56 ; Define module specific macros here
57 ----------------------------------------------------------------------------*/
58 
59 
60 /*----------------------------------------------------------------------------
61 ; DEFINES
62 ; Include all pre-processor statements here. Include conditional
63 ; compile variables also.
64 ----------------------------------------------------------------------------*/
65 
66 /*----------------------------------------------------------------------------
67 ; LOCAL FUNCTION DEFINITIONS
68 ; Function Prototype declaration
69 ----------------------------------------------------------------------------*/
70 
71 /*----------------------------------------------------------------------------
72 ; LOCAL STORE/BUFFER/POINTER DEFINITIONS
73 ; Variable declaration - defined here and used outside this module
74 ----------------------------------------------------------------------------*/
75 
76 const int32  mp3_s_freq[4][4] =
77 {
78     {44100, 48000, 32000, 0},
79     {22050, 24000, 16000, 0},
80     {11025, 12000,  8000, 0}
81 }; // MPEG-2.5
82 
83 
84 /*
85  *  144000./s_freq
86  */
87 const int32 inv_sfreq[4] =
88 {
89     Qfmt_28(3.26530612244898),
90     Qfmt_28(3.0),
91     Qfmt_28(4.5),
92     0
93 };
94 
95 
96 /* 1: MPEG-1, 0: MPEG-2 LSF, 1995-07-11 shn */
97 
98 
99 const int16  mp3_bitrate[3][15] =
100 {
101     {0, 32, 40, 48, 56, 64, 80, 96, 112, 128, 160, 192, 224, 256, 320},
102     {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160},
103     {0, 8, 16, 24, 32, 40, 48, 56, 64, 80, 96, 112, 128, 144, 160}
104 };
105 
106 
107 const mp3_scaleFactorBandIndex mp3_sfBandIndex[9] =
108 {
109 
110     /* MPEG 1 */
111 
112     {{0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 52, 62, 74, 90, 110, 134, 162, 196, 238, 288, 342, 418, 576},
113     {0, 4, 8, 12, 16, 22, 30, 40, 52, 66, 84, 106, 136, 192}},
114     {{0, 4, 8, 12, 16, 20, 24, 30, 36, 42, 50, 60, 72, 88, 106, 128, 156, 190, 230, 276, 330, 384, 576},
115     {0, 4, 8, 12, 16, 22, 28, 38, 50, 64, 80, 100, 126, 192}},
116     {{0, 4, 8, 12, 16, 20, 24, 30, 36, 44, 54, 66, 82, 102, 126, 156, 194, 240, 296, 364, 448, 550, 576},
117         {0, 4, 8, 12, 16, 22, 30, 42, 58, 78, 104, 138, 180, 192}},
118 
119     /* MPEG 2 - LSF */
120 
121     {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
122     {0, 4, 8, 12, 18, 24, 32, 42, 56, 74, 100, 132, 174, 192}},
123     {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 114, 136, 162, 194, 232, 278, 332, 394, 464, 540, 576},
124     {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 136, 180, 192}},
125     {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
126         {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}},
127 
128     /* MPEG 2.5  extension */
129 
130     {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
131     {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}},
132     {{0, 6, 12, 18, 24, 30, 36, 44, 54, 66, 80, 96, 116, 140, 168, 200, 238, 284, 336, 396, 464, 522, 576},
133     {0, 4, 8, 12, 18, 26, 36, 48, 62, 80, 104, 134, 174, 192}},
134     {{0, 12, 24, 36, 48, 60, 72, 88, 108, 132, 160, 192, 232, 280, 336, 400, 476, 566, 568, 570, 572, 574, 576},
135         {0, 8, 16, 24, 36, 52, 72, 96, 124, 160, 162, 164, 166, 192}}
136 
137 };
138 
139 #define INV_Q31( x)   (int32)(0x7FFFFFFF/(float)x - 1.0f)
140 
141 const int32 mp3_shortwindBandWidths[9][13] =
142 {
143     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10),
144         INV_Q31(12), INV_Q31(14), INV_Q31(18), INV_Q31(22), INV_Q31(30), INV_Q31(56)},
145     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(6), INV_Q31(10),
146       INV_Q31(12), INV_Q31(14), INV_Q31(16), INV_Q31(20), INV_Q31(26), INV_Q31(66)},
147     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(12),
148       INV_Q31(16), INV_Q31(20), INV_Q31(26), INV_Q31(34), INV_Q31(42), INV_Q31(12)},
149     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(6), INV_Q31(8), INV_Q31(10),
150       INV_Q31(14), INV_Q31(18), INV_Q31(26), INV_Q31(32), INV_Q31(42), INV_Q31(18)},
151     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12),
152       INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(32), INV_Q31(44), INV_Q31(12)},
153     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12),
154       INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)},
155     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12),
156       INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)},
157     { INV_Q31(4), INV_Q31(4), INV_Q31(4), INV_Q31(6), INV_Q31(8), INV_Q31(10), INV_Q31(12),
158       INV_Q31(14), INV_Q31(18), INV_Q31(24), INV_Q31(30), INV_Q31(40), INV_Q31(18)},
159     { INV_Q31(8), INV_Q31(8), INV_Q31(8), INV_Q31(12), INV_Q31(16), INV_Q31(20), INV_Q31(24),
160       INV_Q31(28), INV_Q31(36), INV_Q31(2), INV_Q31(2), INV_Q31(2), INV_Q31(26)}
161 };
162 
163 
164 #define Q30_fmt(a)    (int32((0x40000000)*a))
165 
166 const int32 pqmfSynthWin[(HAN_SIZE/2) + 8] =
167 {
168     Q30_fmt(-0.000015259F), Q30_fmt(0.000396729F), Q30_fmt(0.000473022F), Q30_fmt(0.003173828F),
169     Q30_fmt(0.003326416F), Q30_fmt(0.006118770F), Q30_fmt(0.007919310F), Q30_fmt(0.031478880F),
170     Q30_fmt(0.030517578F), Q30_fmt(0.073059080F), Q30_fmt(0.084182740F), Q30_fmt(0.108856200F),
171     Q30_fmt(0.090927124F), Q30_fmt(0.543823240F), Q30_fmt(0.600219727F), Q30_fmt(1.144287109F),
172 
173     Q30_fmt(-0.000015259F), Q30_fmt(0.000366211F), Q30_fmt(0.000534058F), Q30_fmt(0.003082275F),
174     Q30_fmt(0.003387451F), Q30_fmt(0.005294800F), Q30_fmt(0.008865360F), Q30_fmt(0.031738280F),
175     Q30_fmt(0.029785160F), Q30_fmt(0.067520140F), Q30_fmt(0.089706420F), Q30_fmt(0.116577150F),
176     Q30_fmt(0.080688480F), Q30_fmt(0.515609740F), Q30_fmt(0.628295900F), Q30_fmt(1.142211914F),
177 
178     Q30_fmt(-0.000015259F), Q30_fmt(0.000320435F), Q30_fmt(0.000579834F), Q30_fmt(0.002990723F),
179     Q30_fmt(0.003433228F), Q30_fmt(0.004486080F), Q30_fmt(0.009841920F), Q30_fmt(0.031845090F),
180     Q30_fmt(0.028884890F), Q30_fmt(0.061996460F), Q30_fmt(0.095169070F), Q30_fmt(0.123474120F),
181     Q30_fmt(0.069595340F), Q30_fmt(0.487472530F), Q30_fmt(0.656219480F), Q30_fmt(1.138763428F),
182 
183     Q30_fmt(-0.000015259F), Q30_fmt(0.000289917F), Q30_fmt(0.000625610F), Q30_fmt(0.002899170F),
184     Q30_fmt(0.003463745F), Q30_fmt(0.003723140F), Q30_fmt(0.010849000F), Q30_fmt(0.031814580F),
185     Q30_fmt(0.027801510F), Q30_fmt(0.056533810F), Q30_fmt(0.100540160F), Q30_fmt(0.129577640F),
186     Q30_fmt(0.057617190F), Q30_fmt(0.459472660F), Q30_fmt(0.683914180F), Q30_fmt(1.133926392F),
187 
188     Q30_fmt(-0.000015259F), Q30_fmt(0.000259399F), Q30_fmt(0.000686646F), Q30_fmt(0.002792358F),
189     Q30_fmt(0.003479004F), Q30_fmt(0.003005981F), Q30_fmt(0.011886600F), Q30_fmt(0.031661990F),
190     Q30_fmt(0.026535030F), Q30_fmt(0.051132200F), Q30_fmt(0.105819700F), Q30_fmt(0.134887700F),
191     Q30_fmt(0.044784550F), Q30_fmt(0.431655880F), Q30_fmt(0.711318970F), Q30_fmt(1.127746582F),
192 
193     Q30_fmt(-0.000015259F), Q30_fmt(0.000244141F), Q30_fmt(0.000747681F), Q30_fmt(0.002685547F),
194     Q30_fmt(0.003479004F), Q30_fmt(0.002334595F), Q30_fmt(0.012939450F), Q30_fmt(0.031387330F),
195     Q30_fmt(0.025085450F), Q30_fmt(0.045837400F), Q30_fmt(0.110946660F), Q30_fmt(0.139450070F),
196     Q30_fmt(0.031082153F), Q30_fmt(0.404083250F), Q30_fmt(0.738372800F), Q30_fmt(1.120223999F),
197 
198     Q30_fmt(-0.000030518F), Q30_fmt(0.000213623F), Q30_fmt(0.000808716F), Q30_fmt(0.002578735F),
199     Q30_fmt(0.003463745F), Q30_fmt(0.001693726F), Q30_fmt(0.014022830F), Q30_fmt(0.031005860F),
200     Q30_fmt(0.023422240F), Q30_fmt(0.040634160F), Q30_fmt(0.115921020F), Q30_fmt(0.143264770F),
201     Q30_fmt(0.016510010F), Q30_fmt(0.376800540F), Q30_fmt(0.765029907F), Q30_fmt(1.111373901F),
202 
203     Q30_fmt(-0.000030518F), Q30_fmt(0.000198364F), Q30_fmt(0.000885010F), Q30_fmt(0.002456665F),
204     Q30_fmt(0.003417969F), Q30_fmt(0.001098633F), Q30_fmt(0.015121460F), Q30_fmt(0.030532840F),
205     Q30_fmt(0.021575930F), Q30_fmt(0.035552980F), Q30_fmt(0.120697020F), Q30_fmt(0.146362300F),
206     Q30_fmt(0.001068120F), Q30_fmt(0.349868770F), Q30_fmt(0.791213990F), Q30_fmt(1.101211548F),
207 
208     Q30_fmt(-0.000030518F), Q30_fmt(0.000167847F), Q30_fmt(0.000961304F), Q30_fmt(0.002349854F),
209     Q30_fmt(0.003372192F), Q30_fmt(0.000549316F), Q30_fmt(0.016235350F), Q30_fmt(0.029937740F),
210     Q30_fmt(0.019531250F), Q30_fmt(0.030609130F), Q30_fmt(0.125259400F), Q30_fmt(0.148773190F),
211     Q30_fmt(-0.015228270F), Q30_fmt(0.323318480F), Q30_fmt(0.816864010F), Q30_fmt(1.089782715F),
212 
213     Q30_fmt(-0.000030518F), Q30_fmt(0.000152588F), Q30_fmt(0.001037598F), Q30_fmt(0.002243042F),
214     Q30_fmt(0.003280640F), Q30_fmt(0.000030518F), Q30_fmt(0.017349240F), Q30_fmt(0.029281620F),
215     Q30_fmt(0.017257690F), Q30_fmt(0.025817870F), Q30_fmt(0.129562380F), Q30_fmt(0.150497440F),
216     Q30_fmt(-0.032379150F), Q30_fmt(0.297210693F), Q30_fmt(0.841949463F), Q30_fmt(1.077117920F),
217 
218     Q30_fmt(-0.000045776F), Q30_fmt(0.000137329F), Q30_fmt(0.001113892F), Q30_fmt(0.002120972F),
219     Q30_fmt(0.003173828F), Q30_fmt(-0.000442505F), Q30_fmt(0.018463130F), Q30_fmt(0.028533940F),
220     Q30_fmt(0.014801030F), Q30_fmt(0.021179200F), Q30_fmt(0.133590700F), Q30_fmt(0.151596070F),
221     Q30_fmt(-0.050354000F), Q30_fmt(0.271591190F), Q30_fmt(0.866363530F), Q30_fmt(1.063217163F),
222 
223     Q30_fmt(-0.000045776F), Q30_fmt(0.000122070F), Q30_fmt(0.001205444F), Q30_fmt(0.002014160F),
224     Q30_fmt(0.003051758F), Q30_fmt(-0.000869751F), Q30_fmt(0.019577030F), Q30_fmt(0.027725220F),
225     Q30_fmt(0.012115480F), Q30_fmt(0.016708370F), Q30_fmt(0.137298580F), Q30_fmt(0.152069090F),
226     Q30_fmt(-0.069168090F), Q30_fmt(0.246505740F), Q30_fmt(0.890090940F), Q30_fmt(1.048156738F),
227 
228     Q30_fmt(-0.000061035F), Q30_fmt(0.000106812F), Q30_fmt(0.001296997F), Q30_fmt(0.001907349F),
229     Q30_fmt(0.002883911F), Q30_fmt(-0.001266479F), Q30_fmt(0.020690920F), Q30_fmt(0.026840210F),
230     Q30_fmt(0.009231570F), Q30_fmt(0.012420650F), Q30_fmt(0.140670780F), Q30_fmt(0.151962280F),
231     Q30_fmt(-0.088775630F), Q30_fmt(0.221984860F), Q30_fmt(0.913055420F), Q30_fmt(1.031936646F),
232 
233     Q30_fmt(-0.000061035F), Q30_fmt(0.000106812F), Q30_fmt(0.001388550F), Q30_fmt(0.001785278F),
234     Q30_fmt(0.002700806F), Q30_fmt(-0.001617432F), Q30_fmt(0.021789550F), Q30_fmt(0.025909420F),
235     Q30_fmt(0.006134030F), Q30_fmt(0.008316040F), Q30_fmt(0.143676760F), Q30_fmt(0.151306150F),
236     Q30_fmt(-0.109161380F), Q30_fmt(0.198059080F), Q30_fmt(0.935195920F), Q30_fmt(1.014617920F),
237 
238     Q30_fmt(-0.000076294F), Q30_fmt(0.000091553F), Q30_fmt(0.001480103F), Q30_fmt(0.001693726F),
239     Q30_fmt(0.002487183F), Q30_fmt(-0.001937866F), Q30_fmt(0.022857670F), Q30_fmt(0.024932860F),
240     Q30_fmt(0.002822880F), Q30_fmt(0.004394530F), Q30_fmt(0.146255490F), Q30_fmt(0.150115970F),
241     Q30_fmt(-0.130310060F), Q30_fmt(0.174789430F), Q30_fmt(0.956481930F), Q30_fmt(0.996246338F),
242 
243     Q30_fmt(0.000000000F), Q30_fmt(0.000442505F), Q30_fmt(0.001586910F), Q30_fmt(0.003250122F),
244     Q30_fmt(0.007003780F), Q30_fmt(0.023910525F), Q30_fmt(0.031082153F), Q30_fmt(0.078628545F),
245     Q30_fmt(0.148422240F), Q30_fmt(0.100311279F), Q30_fmt(0.572036740F), Q30_fmt(0.976852417F),
246     Q30_fmt(1.144989014F), Q30_fmt(-0.572036745F), Q30_fmt(-0.152206421F), Q30_fmt(0.100311279F),
247 
248     Q30_fmt(-0.078628540F), Q30_fmt(-0.000686646F), Q30_fmt(0.031082153F), Q30_fmt(-0.007003785F),
249     Q30_fmt(0.002227783F), Q30_fmt(0.003250122F), Q30_fmt(-0.000442500F), Q30_fmt(-0.000076294F),
250 };
251 
252 
253 
254 
255 
256 const uint16  huffTable_1[8] =
257 {
258     0x1103,    0x0103,    0x1002,    0x1002,
259     0x0001,    0x0001,    0x0001,    0x0001
260 };
261 
262 const uint16  huffTable_2[15] =
263 {
264     0x1103,    0x0103,    0x1003,    0x0001,
265     0x0001,    0x0001,    0x0001,    0x2206,
266     0x0206,    0x1205,    0x1205,    0x2105,
267     0x2105,    0x2005,    0x2005
268 };
269 
270 const uint16 huffTable_3[15] =
271 {
272 
273     0x1003,    0x1102,    0x1102,    0x0102,
274     0x0102,    0x0002,    0x0002,    0x2206,
275     0x0206,    0x1205,    0x1205,    0x2105,
276     0x2105,    0x2005,    0x2005
277 };
278 
279 const uint16 huffTable_5[25] =
280 {
281 
282     0x1103,    0x0103,    0x1003,    0x0001,
283     0x0001,    0x0001,    0x0001,    0x3106,
284     0x3106,    0x1307,    0x0307,    0x3007,
285     0x2207,    0x1206,    0x1206,    0x2106,
286     0x2106,    0x0206,    0x0206,    0x2006,
287     0x2006,    0x3308,    0x2308,    0x3207,
288     0x3207
289 };
290 
291 
292 const uint16 huffTable_6[26] =
293 {
294 
295     0x1204,    0x2104,    0x2004,    0x0103,
296     0x0103,    0x1102,    0x1102,    0x1102,
297     0x1102,    0x1003,    0x1003,    0x0003,
298     0x0003,    0x2306,    0x3206,    0x3006,
299     0x1305,    0x1305,    0x3105,    0x3105,
300     0x2205,    0x2205,    0x0205,    0x0205,
301     0x3307,    0x0307
302 };
303 
304 
305 
306 const uint16 huffTable_7[73] =
307 {
308     0x0103,
309     0x1003,
310     0x0001,
311     0x0001,
312     0x0001,
313     0x0001,
314     0x1206,
315     0x2105,
316     0x2105,
317     0x0206,
318     0x2006,
319     0x1104,
320     0x1104,
321     0x1104,
322     0x1104,
323     0x3509,
324     0x4409,
325     0x2509,
326     0x5209,
327     0x1508,
328     0x1508,
329     0x5108,
330     0x5108,
331     0x0509,
332     0x3409,
333     0x5008,
334     0x5008,
335     0x4309,
336     0x3309,
337     0x2408,
338     0x2408,
339     0x4208,
340     0x4208,
341     0x1407,
342     0x1407,
343     0x1407,
344     0x1407,
345     0x4107,
346     0x4107,
347     0x4107,
348     0x4107,
349     0x4007,
350     0x4007,
351     0x4007,
352     0x4007,
353     0x0408,
354     0x0408,
355     0x2308,
356     0x2308,
357     0x3208,
358     0x3208,
359     0x0308,
360     0x0308,
361     0x1307,
362     0x1307,
363     0x1307,
364     0x1307,
365     0x3107,
366     0x3107,
367     0x3107,
368     0x3107,
369     0x3007,
370     0x3007,
371     0x3007,
372     0x3007,
373     0x2207,
374     0x2207,
375     0x2207,
376     0x2207,
377     0x550a,
378     0x450a,
379     0x540a,
380     0x530a
381 };
382 
383 const uint16 huffTable_8[66] =
384 {
385     0x1204,
386     0x2104,
387     0x1102,
388     0x1102,
389     0x1102,
390     0x1102,
391     0x0103,
392     0x0103,
393     0x1003,
394     0x1003,
395     0x0002,
396     0x0002,
397     0x0002,
398     0x0002,
399     0x2206,
400     0x0206,
401     0x2006,
402     0x2509,
403     0x5209,
404     0x0509,
405     0x1508,
406     0x1508,
407     0x5108,
408     0x5108,
409     0x3409,
410     0x4309,
411     0x5009,
412     0x3309,
413     0x2408,
414     0x2408,
415     0x4208,
416     0x4208,
417     0x1408,
418     0x1408,
419     0x4107,
420     0x4107,
421     0x4107,
422     0x4107,
423     0x0408,
424     0x0408,
425     0x4008,
426     0x4008,
427     0x2308,
428     0x2308,
429     0x3208,
430     0x3208,
431     0x1308,
432     0x1308,
433     0x3108,
434     0x3108,
435     0x0308,
436     0x0308,
437     0x3008,
438     0x3008,
439     0x550b,
440     0x540b,
441     0x450a,
442     0x450a,
443     0x5309,
444     0x5309,
445     0x5309,
446     0x5309,
447     0x350a,
448     0x350a,
449     0x440a,
450     0x440a
451 
452 };
453 
454 
455 const uint16 huffTable_9[53] =
456 {
457     0x1204,
458     0x2104,
459     0x2004,
460     0x1103,
461     0x1103,
462     0x0103,
463     0x0103,
464     0x1003,
465     0x1003,
466     0x0003,
467     0x0003,
468     0x1406,
469     0x4106,
470     0x2306,
471     0x3206,
472     0x1305,
473     0x1305,
474     0x3105,
475     0x3105,
476     0x0306,
477     0x3006,
478     0x2205,
479     0x2205,
480     0x0205,
481     0x0205,
482     0x4408,
483     0x2508,
484     0x5208,
485     0x1508,
486     0x5107,
487     0x5107,
488     0x3407,
489     0x3407,
490     0x4307,
491     0x4307,
492     0x5008,
493     0x0408,
494     0x2407,
495     0x2407,
496     0x4207,
497     0x4207,
498     0x3307,
499     0x3307,
500     0x4007,
501     0x4007,
502     0x5509,
503     0x4509,
504     0x3508,
505     0x3508,
506     0x5308,
507     0x5308,
508     0x5409,
509     0x0509
510 
511 };
512 
513 
514 const uint16 huffTable_10[96] =
515 {
516     0x0001,
517     0x1104,
518     0x0103,
519     0x0103,
520     0x1003,
521     0x1003,
522     0x1206,
523     0x2106,
524     0x0206,
525     0x2006,
526     0x1408,
527     0x4108,
528     0x4008,
529     0x2308,
530     0x3208,
531     0x0308,
532     0x1307,
533     0x1307,
534     0x3107,
535     0x3107,
536     0x3007,
537     0x3007,
538     0x2207,
539     0x2207,
540     0x1608,
541     0x1608,
542     0x6108,
543     0x6108,
544     0x6008,
545     0x6008,
546     0x0509,
547     0x5009,
548     0x2409,
549     0x4209,
550     0x3309,
551     0x0409,
552     0x2709,
553     0x2709,
554     0x7209,
555     0x7209,
556     0x640a,
557     0x070a,
558     0x7009,
559     0x7009,
560     0x6209,
561     0x6209,
562     0x450a,
563     0x350a,
564     0x0609,
565     0x0609,
566     0x530a,
567     0x440a,
568     0x1708,
569     0x1708,
570     0x1708,
571     0x1708,
572     0x7108,
573     0x7108,
574     0x7108,
575     0x7108,
576     0x3609,
577     0x3609,
578     0x2609,
579     0x2609,
580     0x250a,
581     0x520a,
582     0x1509,
583     0x1509,
584     0x5109,
585     0x5109,
586     0x340a,
587     0x430a,
588     0x770b,
589     0x670b,
590     0x760b,
591     0x570b,
592     0x750b,
593     0x660b,
594     0x470a,
595     0x470a,
596     0x740a,
597     0x740a,
598     0x560a,
599     0x560a,
600     0x650a,
601     0x650a,
602     0x370a,
603     0x370a,
604     0x730a,
605     0x730a,
606     0x460a,
607     0x460a,
608     0x550b,
609     0x540b,
610     0x630a,
611     0x630a
612 };
613 
614 
615 const uint16 huffTable_11[116] =
616 {
617     0x1103,
618     0x0103,
619     0x1003,
620     0x0002,
621     0x0002,
622     0x2105,
623     0x1204,     /*  0100         */
624     0x1204,     /*  010         */
625     0x0205,     /*  01010        */
626     0x2005,     /*  01011        */
627     0x1408,     /*      10 */
628     0x4108,     /*   00      */
629     0x0408,     /*   0 0     */
630     0x4008,     /*   0 1     */
631     0x2307,     /*    0      */
632     0x2307,     /*          */
633     0x3207,     /*    1      */
634     0x3207,     /*          */
635     0x1306,     /*   010       */
636     0x1306,     /*   01       */
637     0x1306,     /*   01       */
638     0x1306,     /*   01       */
639     0x3106,     /*   011       */
640     0x3106,     /*   01      */
641     0x3106,     /*   01      */
642     0x3106,     /*   01      */
643     0x0307,     /*   1000      */
644     0x0307,     /*   100      */
645     0x3007,     /*   1       */
646     0x3007,     /*   100      */
647     0x2206,     /*   101       */
648     0x2206,     /*   10      */
649     0x2206,     /*   10      */
650     0x2206,     /*   10      */
651     0x2708,
652     0x2708,     /*  000 0     */
653     0x7208,     /*  000 10     */
654     0x7208,     /*  000 1     */
655     0x6409,     /*  000 110    */
656     0x0709,
657     0x7107,
658     0x7107,
659     0x7107,     /*  00 0      */
660     0x7107,     /*  00 0      */
661     0x1708,
662     0x1708,     /*  00 01     */
663     0x7008,
664     0x7008,
665     0x3608,
666     0x3608,     /*  00 10     */
667     0x6308,     /*  00 101     */
668     0x6308,     /*  00 10     */
669     0x6008,
670     0x6008,     /*  00 11     */
671     0x4409,
672     0x2509,
673     0x5209,     /*  0      */
674     0x0509,     /*  0 00     */
675     0x1508,     /*  0 0      */
676     0x1508,     /*  0 000     */
677     0x6207,     /*  0        */
678     0x6207,     /*  0 00     */
679     0x6207,     /*  0 00     */
680     0x6207,     /*  0 00     */
681     0x2608,
682     0x2608,     /*  0 010     */
683     0x0608,
684     0x0608,
685     0x1607,
686     0x1607,
687     0x1607,
688     0x1607,
689     0x6107,
690     0x6107,
691     0x6107,
692     0x6107,
693     0x5108,
694     0x5108,
695     0x3408,
696     0x3408,
697     0x5008,
698     0x5008,
699     0x4309,
700     0x3309,
701     0x2408,
702     0x2408,     /*  0 111     */
703     0x4208,     /*  0 1111     */
704     0x4208,     /*  0 111     */
705     0x560a,
706     0x650a,
707     0x3709,
708     0x3709,
709     0x7309,
710     0x7309,
711     0x4609,
712     0x4609,
713     0x450a,
714     0x540a,     /*  000 0    */
715     0x350a,     /*  000  0   */
716     0x530a,     /*  000  1   */
717     0x770a,
718     0x770a,
719     0x670a,
720     0x670a,
721     0x760a,     /*    0   */
722     0x760a,     /*       */
723     0x750a,     /*    1   */
724     0x750a,     /*       */
725     0x660a,     /*    00   */
726     0x660a,     /*    0   */
727     0x470a,     /*    01   */
728     0x470a,     /*    0   */
729     0x740a,     /*    10   */
730     0x740a,     /*    1   */
731     0x570b,     /*    110  */
732     0x550b  /*    111  */
733 
734 };
735 
736 const uint16 huffTable_12[134] =
737 {
738 
739     0x1103,     /*  101          */
740     0x0103,     /*  110          */
741     0x1003,     /*  111          */
742     0x1204,
743     0x1204,     /*  011         */
744     0x2104,     /*  0111         */
745     0x2104,     /*  011         */
746     0x0205,     /*  10000        */
747     0x2005,     /*  10         */
748     0x0004,     /*  1          */
749     0x0004,     /*  100         */
750     0x3006,
751     0x1305,     /*  01         */
752     0x1305,     /*  0100        */
753     0x3105,
754     0x3105,
755     0x2205,
756     0x2205,     /*  0101        */
757     0x1507,
758     0x1507,     /*   000      */
759     0x5107,     /*   0       */
760     0x5107,     /*   000      */
761     0x3407,     /*    0      */
762     0x3407,     /*          */
763     0x4307,     /*    1      */
764     0x4307,     /*          */
765     0x5008,
766     0x0408,
767     0x2407,
768     0x2407,     /*   010      */
769     0x4207,
770     0x4207,
771     0x1407,     /*   0111      */
772     0x1407,     /*   011      */
773     0x3306,
774     0x3306,
775     0x3306,
776     0x3306,
777     0x4106,
778     0x4106,
779     0x4106,
780     0x4106,
781     0x2306,
782     0x2306,
783     0x2306,
784     0x2306,
785     0x3206,
786     0x3206,
787     0x3206,
788     0x3206,
789     0x4007,
790     0x4007,
791     0x0307,
792     0x0307,     /*  010000      */
793     0x7208,
794     0x7208,     /*  00 00     */
795     0x4608,     /*  00       */
796     0x4608,     /*  00 00     */
797     0x6408,
798     0x6408,     /*  00 01     */
799     0x1708,     /*  00 011     */
800     0x1708,
801     0x7108,     /*  00 100     */
802     0x7108,
803     0x0709,
804     0x7009,
805     0x3608,
806     0x3608,     /*  00 11     */
807     0x6308,
808     0x6308,
809     0x4508,
810     0x4508,
811     0x5408,     /*  0 0      */
812     0x5408,     /*  0 000     */
813     0x4408,     /*  0  0     */
814     0x4408,     /*  0       */
815     0x0609,     /*  0  10    */
816     0x0509,     /*  0  11    */
817     0x2607,
818     0x2607,
819     0x2607,
820     0x2607,
821     0x6207,
822     0x6207,
823     0x6207,
824     0x6207,
825     0x6107,
826     0x6107,
827     0x6107,
828     0x6107,
829     0x1608,     /*  0 1010     */
830     0x1608,     /*  0 101     */
831     0x6008,     /*  0 1011     */
832     0x6008,     /*  0 101     */
833     0x3508,
834     0x3508,     /*  0 110     */
835     0x5308,     /*  0 1101     */
836     0x5308,     /*  0 110     */
837     0x2508,
838     0x2508,     /*  0 111     */
839     0x5208,     /*  0 1111     */
840     0x5208,     /*  0 111     */
841     0x770a,
842     0x670a,
843     0x7609,     /*        */
844     0x7609,
845     0x5709,     /*    0    */
846     0x5709,     /*        */
847     0x7509,     /*    1    */
848     0x7509,     /*        */
849     0x6609,
850     0x6609,
851     0x4709,     /*  0000 01    */
852     0x4709,     /*  0000 0    */
853     0x7409,
854     0x7409,     /*  0000 1    */
855     0x6509,
856     0x6509,     /*  0000 1    */
857     0x5608,
858     0x5608,
859     0x5608,
860     0x5608,
861     0x3708,
862     0x3708,
863     0x3708,
864     0x3708,
865     0x7309,     /*  000 100    */
866     0x7309,     /*  000 10    */
867     0x5509,
868     0x5509,     /*  000 10    */
869     0x2708,
870     0x2708,
871     0x2708,
872     0x2708,
873 };
874 
875 
876 
877 const uint16 huffTable_13[491] =
878 {
879     0x0001,
880     0x1104,
881     0x0104,
882     0x1003,
883     0x1003,
884     0x4107,
885     0x4107,
886     0x0408,
887     0x4008,
888     0x2308,
889     0x3208,
890     0x1307,
891     0x1307,
892     0x3107,
893     0x3107,
894     0x0307,
895     0x0307,
896     0x3007,
897     0x3007,
898     0x2207,
899     0x2207,
900     0x1206,
901     0x1206,
902     0x1206,
903     0x1206,
904     0x2106,
905     0x2106,
906     0x2106,
907     0x2106,
908     0x0206,
909     0x0206,
910     0x0206,
911     0x0206,
912     0x2006,
913     0x2006,
914     0x2006,
915     0x2006,
916     0x370a,
917     0x270a,     /*  0 000           */
918     0x1709,     /*  0 00            */
919     0x1709,
920     0x7109,
921     0x7109,     /*  0 0            */
922     0x550a,
923     0x070a,     /*  0 0 11          */
924     0x700a,
925     0x360a,     /*  0             */
926     0x630a,
927     0x450a,     /*  0  011          */
928     0x540a,
929     0x260a,     /*  0  101          */
930     0x620a,
931     0x350a,     /*  0  111          */
932     0x8108,
933     0x8108,     /*  0 010            */
934     0x8108,
935     0x8108,     /*  0 010            */
936     0x0809,
937     0x0809,     /*  0 0101           */
938     0x8009,
939     0x8009,     /*  0 0101           */
940     0x1609,
941     0x1609,     /*  0 0110           */
942     0x6109,
943     0x6109,     /*  0 0110           */
944     0x0609,
945     0x0609,     /*  0 0111           */
946     0x6009,
947     0x6009,     /*  0 0111           */
948     0x530a,
949     0x440a,     /*  0 100           */
950     0x2509,
951     0x2509,     /*  0 1000           */
952     0x5209,
953     0x5209,     /*  0 1            */
954     0x0509,
955     0x0509,     /*  0 1            */
956     0x1508,
957     0x1508,     /*  0 101            */
958     0x1508,
959     0x1508,     /*  0 101            */
960     0x5108,
961     0x5108,     /*  0 101           */
962     0x5108,
963     0x5108,     /*  0 101           */
964     0x3409,
965     0x3409,     /*  0 1100           */
966     0x4309,
967     0x4309,     /*  0 1100           */
968     0x5009,
969     0x5009,     /*  0 1101           */
970     0x2409,
971     0x2409,     /*  0 1101           */
972     0x4209,
973     0x4209,     /*  0 1110           */
974     0x3309,
975     0x3309,     /*  0 1110           */
976     0x1408,
977     0x1408,     /*  0 111           */
978     0x1408,
979     0x1408,     /*  0 111           */
980     0x1a0a,
981     0x1a0a,
982     0xa10a,     /*  00 00           */
983     0xa10a,
984     0x0a0b,
985     0x680b,
986     0xa00a,
987     0xa00a,
988     0x860b,
989     0x490b,
990     0x930a,
991     0x930a,
992     0x390b,
993     0x580b,
994     0x850b,
995     0x670b,
996     0x290a,
997     0x290a,
998     0x920a,
999     0x920a,
1000     0x570b,
1001     0x750b,
1002     0x380a,
1003     0x380a,
1004     0x830a,
1005     0x830a,
1006     0x660b,
1007     0x470b,
1008     0x740b,
1009     0x560b,
1010     0x650b,
1011     0x730b,
1012     0x1909,
1013     0x1909,
1014     0x1909,
1015     0x1909,
1016     0x9109,
1017     0x9109,
1018     0x9109,
1019     0x9109,
1020     0x090a,     /*  00 10100          */
1021     0x090a,
1022     0x900a,     /*  00 10101          */
1023     0x900a,
1024     0x480a,     /*  00 10110          */
1025     0x480a,
1026     0x840a,     /*  00 10111          */
1027     0x840a,
1028     0x720a,     /*  00 11000          */
1029     0x720a,
1030     0x460b,     /*  00 11 0         */
1031     0x640b,
1032     0x2809,
1033     0x2809,
1034     0x2809,
1035     0x2809,
1036     0x8209,
1037     0x8209,
1038     0x8209,
1039     0x8209,
1040     0x1809,
1041     0x1809,
1042     0x1809,
1043     0x1809,
1044     0xc10b,
1045     0xc10b,     /*  000 0000         */
1046     0x980c,
1047     0x0c0c,     /*  000 00 1        */
1048     0xc00b,
1049     0xc00b,     /*  000 0          */
1050     0xb40c,
1051     0x6a0c,     /*  000 0 11        */
1052     0xa60c,
1053     0x790c,     /*  000           */
1054     0x3b0b,
1055     0x3b0b,     /*  000  0         */
1056     0xb30b,
1057     0xb30b,     /*  000  1         */
1058     0x880c,
1059     0x5a0c,     /*  000  111        */
1060     0x2b0b,
1061     0x2b0b,     /*  000 0100         */
1062     0xa50c,
1063     0x690c,     /*  000 01 1        */
1064     0xa40b,
1065     0xa40b,     /*  000 0101         */
1066     0x780c,
1067     0x870c,
1068     0x940b,
1069     0x940b,     /*  000 0110         */
1070     0x770c,
1071     0x760c,     /*  000 011011        */
1072     0xb20a,
1073     0xb20a,     /*  000 011         */
1074     0xb20a,
1075     0xb20a,     /*  000 011         */
1076     0x1b0a,
1077     0x1b0a,     /*  000 100          */
1078     0x1b0a,
1079     0x1b0a,     /*  000 100          */
1080     0xb10a,
1081     0xb10a,
1082     0xb10a,     /*  000 100         */
1083     0xb10a,     /*  000 100         */
1084     0x0b0b,     /*  000 10100         */
1085     0x0b0b,     /*  000 1010         */
1086     0xb00b,
1087     0xb00b,     /*  000 1010         */
1088     0x960b,     /*  000 10110         */
1089     0x960b,     /*  000 1011         */
1090     0x4a0b,
1091     0x4a0b,     /*  000 1011         */
1092     0x3a0b,     /*  000 11000         */
1093     0x3a0b,     /*  000 1100         */
1094     0xa30b,     /*  000 11          */
1095     0xa30b,     /*  000 1100         */
1096     0x590b,
1097     0x590b,     /*  000 1101         */
1098     0x950b,     /*  000 11011         */
1099     0x950b,     /*  000 1101         */
1100     0x2a0a,
1101     0x2a0a,
1102     0x2a0a,
1103     0x2a0a,
1104     0xa20a,
1105     0xa20a,
1106     0xa20a,
1107     0xa20a,
1108     0xf00c,
1109     0xf00c,     /*    000        */
1110     0xba0d,
1111     0xe50d,     /*    0 1       */
1112     0xe40d,
1113     0x8c0d,     /*     01       */
1114     0x6d0d,
1115     0xe30d,     /*     11       */
1116     0xe20c,     /*    0100        */
1117     0xe20c,
1118     0x2e0d,     /*    01010       */
1119     0x0e0d,
1120     0x1e0c,     /*    0110        */
1121     0x1e0c,
1122     0xe10c,     /*    0111        */
1123     0xe10c,
1124     0xe00d,     /*    10000       */
1125     0x5d0d,
1126     0xd50d,     /*    1 0       */
1127     0x7c0d,
1128     0xc70d,
1129     0x4d0d,
1130     0x8b0d,
1131     0xb80d,
1132     0xd40d,
1133     0x9a0d,
1134     0xa90d,
1135     0x6c0d,
1136     0xc60c,
1137     0xc60c,
1138     0x3d0c,
1139     0x3d0c,     /*    111        */
1140     0xd30d,     /*  0000         */
1141     0x7b0d,
1142     0x2d0c,
1143     0x2d0c,
1144     0xd20c,
1145     0xd20c,
1146     0x1d0c,
1147     0x1d0c,
1148     0xb70c,
1149     0xb70c,     /*  0000  0        */
1150     0x5c0d,
1151     0xc50d,     /*  0000  011       */
1152     0x990d,
1153     0x7a0d,
1154     0xc30c,
1155     0xc30c,     /*  0000  1        */
1156     0xa70d,
1157     0x970d,
1158     0x4b0c,
1159     0x4b0c,
1160     0xd10b,
1161     0xd10b,
1162     0xd10b,     /*  0000 010        */
1163     0xd10b,
1164     0x0d0c,
1165     0x0d0c,
1166     0xd00c,
1167     0xd00c,
1168     0x8a0c,
1169     0x8a0c,
1170     0xa80c,
1171     0xa80c,
1172     0x4c0c,
1173     0x4c0c,
1174     0xc40c,
1175     0xc40c,
1176     0x6b0c,
1177     0x6b0c,     /*  0000 1         */
1178     0xb60c,     /*  0000 1 1        */
1179     0xb60c,     /*  0000 1         */
1180     0x3c0b,
1181     0x3c0b,
1182     0x3c0b,
1183     0x3c0b,
1184     0x2c0b,     /*  0000 1011         */
1185     0x2c0b,     /*  0000 101        */
1186     0x2c0b,     /*  0000 101        */
1187     0x2c0b,     /*  0000 101        */
1188     0xc20b,
1189     0xc20b,
1190     0xc20b,
1191     0xc20b,
1192     0x5b0b,     /*  0000 1101         */
1193     0x5b0b,
1194     0x5b0b,     /*  0000 110        */
1195     0x5b0b,     /*  0000 110        */
1196     0xb50c,
1197     0xb50c,
1198     0x890c,
1199     0x890c,     /*  0000 1110        */
1200     0x1c0b,
1201     0x1c0b,
1202     0x1c0b,
1203     0x1c0b,
1204     0x2f0d,
1205     0x2f0d,     /*    000       */
1206     0xf20d,     /*    0        */
1207     0xf20d,     /*    000       */
1208     0x6e0e,     /*     00      */
1209     0x9c0e,     /*     01      */
1210     0x0f0d,     /*     1       */
1211     0x0f0d,     /*            */
1212     0xc90e,
1213     0x5e0e,     /*    01       */
1214     0xab0d,     /*    0101       */
1215     0xab0d,
1216     0x7d0e,     /*    01100      */
1217     0xd70e,
1218     0x4e0d,     /*    0111       */
1219     0x4e0d,
1220     0xc80e,
1221     0xd60e,     /*    10       */
1222     0x3e0d,
1223     0x3e0d,     /*    100       */
1224     0xb90d,
1225     0xb90d,     /*    101       */
1226     0x9b0e,
1227     0xaa0e,     /*    10111      */
1228     0x1f0c,
1229     0x1f0c,     /*    11        */
1230     0x1f0c,     /*    11        */
1231     0x1f0c,
1232     0xf10c,     /*    111        */
1233     0xf10c,     /*    11       */
1234     0xf10c,     /*    11       */
1235     0xf10c,     /*    11       */
1236     0xe80e,
1237     0xe80e,
1238     0x5f0e,
1239     0x5f0e,
1240     0x9d0e,
1241     0x9d0e,
1242     0xd90e,
1243     0xd90e,     /*  0000000        */
1244     0xf50e,
1245     0xf50e,
1246     0xe70e,
1247     0xe70e,
1248     0xac0e,
1249     0xac0e,
1250     0xbb0e,
1251     0xbb0e,
1252     0x4f0e,
1253     0x4f0e,
1254     0xf40e,     /*  0000000 1       */
1255     0xf40e,
1256     0xca0f,
1257     0xe60f,
1258     0xf30e,
1259     0xf30e,     /*  0000000 101      */
1260     0x3f0d,
1261     0x3f0d,     /*  0000000 11       */
1262     0x3f0d,
1263     0x3f0d,     /*  0000000 11       */
1264     0x8d0e,
1265     0x8d0e,
1266     0xd80e,     /*  0000000 1111      */
1267     0xd80e,
1268     0x8f0f,
1269     0x8f0f,     /*  00000000 000     */
1270     0xf80f,     /*  00000000 0      */
1271     0xf80f,
1272     0xcc0f,     /*  00000000  0     */
1273     0xcc0f,
1274     0xae10,
1275     0x9e10,     /*  00000000  11    */
1276     0x8e0f,
1277     0x8e0f,
1278     0x7f10,
1279     0x7e10,
1280     0xf70e,     /*  00000000 011      */
1281     0xf70e,
1282     0xf70e,
1283     0xf70e,     /*  00000000 01     */
1284     0xda0e,
1285     0xda0e,     /*  00000000 10      */
1286     0xda0e,
1287     0xda0e,     /*  00000000 10      */
1288     0xad0f,
1289     0xad0f,     /*  00000000 101     */
1290     0xbc0f,
1291     0xbc0f,     /*  00000000 101     */
1292     0xcb0f,
1293     0xcb0f,     /*  00000000 110     */
1294     0xf60f,
1295     0xf60f,     /*  00000000 110     */
1296     0x6f0e,
1297     0x6f0e,     /*  00000000 11     */
1298     0x6f0e,     /*  00000000 11     */
1299     0x6f0e,     /*  00000000 11     */
1300     0xff10,
1301     0xff10,
1302     0xef10,
1303     0xef10,     /*  000000000000     */
1304     0xdf10,     /*  000000000000 1    */
1305     0xdf10,     /*  000000000000     */
1306     0xee10,     /*  00000000000 00    */
1307     0xee10,     /*  00000000000 0    */
1308     0xcf10,     /*  00000000000 01    */
1309     0xcf10,
1310     0xde10,     /*  00000000000 10    */
1311     0xde10,
1312     0xbf10,     /*  00000000000 11    */
1313     0xbf10,     /*  00000000000 1    */
1314     0xfb10,
1315     0xfb10,
1316     0xce10,
1317     0xce10,     /*  0000000000 00    */
1318     0xdc10,     /*  0000000000 010    */
1319     0xdc10,
1320     0xaf11,
1321     0xe911,
1322     0xec0f,     /*  0000000000 10     */
1323     0xec0f,     /*  0000000000 1     */
1324     0xec0f,     /*  0000000000 1     */
1325     0xec0f,     /*  0000000000 1     */
1326     0xdd0f,     /*  0000000000 11     */
1327     0xdd0f,     /*  0000000000 1    */
1328     0xdd0f,     /*  0000000000 1    */
1329     0xdd0f,     /*  0000000000 1    */
1330     0xfa10,     /*  000000000 0000    */
1331     0xfa10,     /*  000000000 000    */
1332     0xcd10,     /*  000000000 0     */
1333     0xcd10,     /*  000000000 000    */
1334     0xbe0f,     /*  000000000       */
1335     0xbe0f,
1336     0xbe0f,
1337     0xbe0f,
1338     0xeb0f,
1339     0xeb0f,
1340     0xeb0f,
1341     0xeb0f,     /*  000000000 01     */
1342     0x9f0f,     /*  000000000 011     */
1343     0x9f0f,     /*  000000000 01    */
1344     0x9f0f,
1345     0x9f0f,
1346     0xf90f,     /*  000000000 100     */
1347     0xf90f,     /*  000000000 10     */
1348     0xf90f,     /*  000000000 10     */
1349     0xf90f,     /*  000000000 10     */
1350     0xea0f,     /*  000000000 101     */
1351     0xea0f,     /*  000000000 10    */
1352     0xea0f,     /*  000000000 10    */
1353     0xea0f,     /*  000000000 10    */
1354     0xbd0f,     /*  000000000 110     */
1355     0xbd0f,     /*  000000000 11     */
1356     0xbd0f,     /*  000000000 11     */
1357     0xbd0f,     /*  000000000 11     */
1358     0xdb0f,     /*  000000000 111     */
1359     0xdb0f,     /*  000000000 11    */
1360     0xdb0f,     /*  000000000 11    */
1361     0xdb0f,     /*  000000000 11    */
1362     0xfe13,
1363     0xfc13,
1364     0xfd12,
1365     0xfd12,
1366     0xed11,
1367     0xed11,
1368     0xed11,
1369     0xed11
1370 
1371 };
1372 
1373 
1374 
1375 const uint16 huffTable_15[421] =
1376 {
1377     0x1103,
1378     0x1103,
1379     0x0104,
1380     0x1004,
1381     0x0003,     /*  111                 */
1382     0x0003, /*  11                 */
1383     0x3407,
1384     0x4307,
1385     0x2407,     /*  0101              */
1386     0x4207,     /*  0101010             */
1387     0x3307,
1388     0x4106,     /*  010110              */
1389     0x4106,
1390     0x1407,     /*  0101110             */
1391     0x0407,
1392     0x2306,     /*  011000              */
1393     0x2306,
1394     0x3206,     /*  011               */
1395     0x3206,
1396     0x4007,
1397     0x0307,
1398     0x1306,     /*  011011              */
1399     0x1306,     /*  01101              */
1400     0x3106,     /*  011100              */
1401     0x3106,     /*  01110              */
1402     0x3006,     /*  011101              */
1403     0x3006,     /*  01110              */
1404     0x2205,     /*  01111               */
1405     0x2205,     /*  0111              */
1406     0x2205,     /*  0111              */
1407     0x2205,     /*  0111              */
1408     0x1205,     /*  10000               */
1409     0x1205,     /*  1000               */
1410     0x1205,     /*  1000               */
1411     0x1205,     /*  1000               */
1412     0x2105,     /*  10                */
1413     0x2105,     /*  1000              */
1414     0x2105,     /*  1000              */
1415     0x2105,     /*  1000              */
1416     0x0205,
1417     0x0205,     /*  1                */
1418     0x0205,     /*  1                */
1419     0x0205,     /*  1                */
1420     0x2005,     /*  1 1               */
1421     0x2005,     /*  1               */
1422     0x2005,     /*  1               */
1423     0x2005,     /*  1               */
1424     0x5809,
1425     0x8509,
1426     0x2909,     /*               */
1427     0x6709,     /*   000            */
1428     0x7609,     /*   00 0           */
1429     0x9209,     /*   00 1           */
1430     0x9108,     /*   0 0            */
1431     0x9108,     /*   0             */
1432     0x1909,     /*   0 10           */
1433     0x9009,     /*   0 11           */
1434     0x4809,     /*    000           */
1435     0x8409,     /*                */
1436     0x5709,     /*    010           */
1437     0x7509,     /*    011           */
1438     0x3809,     /*    100           */
1439     0x8309,     /*    101           */
1440     0x6609,     /*    110           */
1441     0x4709,     /*    111           */
1442     0x2808,
1443     0x2808,     /*   0100            */
1444     0x8208,     /*   01             */
1445     0x8208,     /*   0100            */
1446     0x1808,     /*   01010            */
1447     0x1808,     /*   0101            */
1448     0x8108,     /*   01011            */
1449     0x8108,     /*   0101            */
1450     0x7409,
1451     0x0809,     /*   011            */
1452     0x8009,     /*   011010           */
1453     0x5609,
1454     0x6509,     /*   011100           */
1455     0x3709,
1456     0x7309,     /*   011110           */
1457     0x4609,
1458     0x2708,     /*   10000            */
1459     0x2708,     /*   1000            */
1460     0x7208,     /*   10             */
1461     0x7208,     /*   1000            */
1462     0x6408,     /*   1 0            */
1463     0x6408,     /*   1             */
1464     0x1708,     /*   1 1            */
1465     0x1708,     /*   1             */
1466     0x5508,     /*   10100            */
1467     0x5508,
1468     0x7108,     /*   10101            */
1469     0x7108,
1470     0x0709,     /*   101100           */
1471     0x7009,     /*   101101           */
1472     0x3608,     /*   10111            */
1473     0x3608,     /*   1011            */
1474     0x6308,     /*   11000            */
1475     0x6308,     /*   1100            */
1476     0x4508,     /*   11             */
1477     0x4508,     /*   1100            */
1478     0x5408,     /*   11010            */
1479     0x5408,     /*   1101            */
1480     0x2608,     /*   11011            */
1481     0x2608,     /*   1101            */
1482     0x6208,     /*   11100            */
1483     0x6208,     /*   1110            */
1484     0x1608,     /*   11101            */
1485     0x1608,     /*   1110            */
1486     0x0609,     /*   111100           */
1487     0x6009,     /*   111101           */
1488     0x3508,     /*   11111            */
1489     0x3508,     /*   1111            */
1490     0x6107,
1491     0x6107,
1492     0x6107,
1493     0x6107,
1494     0x5308,     /*  0100 0            */
1495     0x5308,     /*  0100             */
1496     0x4408,     /*  0100 1            */
1497     0x4408,     /*  0100             */
1498     0x2507,     /*  010 0             */
1499     0x2507,     /*  010              */
1500     0x2507,     /*  010              */
1501     0x2507,     /*  010              */
1502     0x5207,     /*  010 1             */
1503     0x5207,     /*  010             */
1504     0x5207,     /*  010             */
1505     0x5207,     /*  010             */
1506     0x1507,     /*  01 00             */
1507     0x1507,     /*  01 0             */
1508     0x1507,     /*  01 0             */
1509     0x1507,     /*  01 0             */
1510     0x5107,     /*  01 01             */
1511     0x5107,     /*  01 0            */
1512     0x5107,     /*  01 0            */
1513     0x5107,     /*  01 0            */
1514     0x0508,     /*  01 100            */
1515     0x0508,     /*  01 10            */
1516     0x5008,     /*  01 101            */
1517     0x5008,     /*  01 10            */
1518     0xc209,
1519     0xc209,
1520     0x2c0a,     /*  00 11110          */
1521     0x5b0a,
1522     0xb50a,     /*  0            */
1523     0x1c0a,     /*  0 000           */
1524     0x890a,     /*  0 00 0          */
1525     0x980a,
1526     0xc10a,     /*  0 0 00          */
1527     0x4b0a,     /*  0 0 01          */
1528     0xb40a,     /*  0 0 10          */
1529     0x6a0a,     /*  0 0 11          */
1530     0x3b0a,     /*  0  000          */
1531     0x790a,     /*  0             */
1532     0xb309,     /*  0  01           */
1533     0xb309,     /*  0  0           */
1534     0x970a,     /*  0  100          */
1535     0x880a,     /*  0  101          */
1536     0x2b0a,     /*  0  110          */
1537     0x5a0a,     /*  0  111          */
1538     0xb209,     /*  0 01000           */
1539     0xb209,     /*  0 0100           */
1540     0xa50a,     /*  0 01 0          */
1541     0x1b0a,     /*  0 01 1          */
1542     0xb109,     /*  0 01010           */
1543     0xb109,     /*  0 0101           */
1544     0xb00a,     /*  0 010110          */
1545     0x690a,     /*  0 010111          */
1546     0x960a,     /*  0 011000          */
1547     0x4a0a,     /*  0 011           */
1548     0xa40a,     /*  0 011010          */
1549     0x780a,     /*  0 011011          */
1550     0x870a,     /*  0 011100          */
1551     0x3a0a,     /*  0 011101          */
1552     0xa309,     /*  0 01111           */
1553     0xa309,     /*  0 0111           */
1554     0x5909,     /*  0 10000           */
1555     0x5909,     /*  0 1000           */
1556     0x9509,     /*  0 10            */
1557     0x9509,     /*  0 1000           */
1558     0x2a09,     /*  0 1 0           */
1559     0x2a09,     /*  0 1            */
1560     0xa209,     /*  0 1 1           */
1561     0xa209,     /*  0 1            */
1562     0x1a09,     /*  0 10100           */
1563     0x1a09,     /*  0 1010           */
1564     0xa109,     /*  0 10101           */
1565     0xa109,     /*  0 1010           */
1566     0x0a0a,     /*  0 101100          */
1567     0xa00a,     /*  0 101101          */
1568     0x6809,     /*  0 10111           */
1569     0x6809,     /*  0 1011           */
1570     0x8609,     /*  0 11000           */
1571     0x8609,     /*  0 1100           */
1572     0x4909,     /*  0 11            */
1573     0x4909,     /*  0 1100           */
1574     0x9409,     /*  0 11010           */
1575     0x9409,     /*  0 1101           */
1576     0x3909,     /*  0 11011           */
1577     0x3909,     /*  0 1101           */
1578     0x9309,     /*  0 11100           */
1579     0x9309,     /*  0 1110           */
1580     0x770a,     /*  0 111010          */
1581     0x090a,     /*  0 111011          */
1582     0x7c0b,
1583     0xc70b,     /*  00 000          */
1584     0x4d0b,     /*  00 00 0         */
1585     0x8b0b,     /*  00 00 1         */
1586     0xd40a,     /*  00 0 0          */
1587     0xd40a,     /*  00 0           */
1588     0xb80b,     /*  00 0 10         */
1589     0x9a0b,     /*  00 0 11         */
1590     0xa90b,     /*  00  000         */
1591     0x6c0b,     /*  00            */
1592     0xc60b,     /*  00  010         */
1593     0x3d0b,     /*  00  011         */
1594     0xd30a,     /*  00  10          */
1595     0xd30a,     /*  00  1          */
1596     0xd20a,     /*  00  11          */
1597     0xd20a,     /*  00  1          */
1598     0x2d0b,     /*  00 010000         */
1599     0x0d0b,     /*  00 010          */
1600     0x1d0a,     /*  00 01           */
1601     0x1d0a,     /*  00 0100          */
1602     0x7b0a,     /*  00 01010          */
1603     0x7b0a,     /*  00 0101          */
1604     0xb70a,     /*  00 01011          */
1605     0xb70a,     /*  00 0101          */
1606     0xd10a,     /*  00 01100          */
1607     0xd10a,     /*  00 0110          */
1608     0x5c0b,     /*  00 011010         */
1609     0xd00b,     /*  00 011011         */
1610     0xc50a,     /*  00 01110          */
1611     0xc50a,     /*  00 0111          */
1612     0x8a0a,     /*  00 01111          */
1613     0x8a0a,     /*  00 0111          */
1614     0xa80a,     /*  00 10000          */
1615     0xa80a,     /*  00 1000          */
1616     0x4c0a,     /*  00 10           */
1617     0x4c0a,     /*  00 1000          */
1618     0xc40a,     /*  00 1 0          */
1619     0xc40a,     /*  00 1           */
1620     0x6b0a,     /*  00 1 1          */
1621     0x6b0a,     /*  00 1           */
1622     0xb60a,     /*  00 10100          */
1623     0xb60a,     /*  00 1010          */
1624     0x990b,     /*  00 101010         */
1625     0x0c0b,     /*  00 101011         */
1626     0x3c0a,     /*  00 10110          */
1627     0x3c0a,     /*  00 1011          */
1628     0xc30a,     /*  00 10111          */
1629     0xc30a,     /*  00 1011          */
1630     0x7a0a,     /*  00 11000          */
1631     0x7a0a,     /*  00 1100          */
1632     0xa70a,     /*  00 11           */
1633     0xa70a,     /*  00 1100          */
1634     0xa60a,     /*  00 11010          */
1635     0xa60a,     /*  00 1101          */
1636     0xc00b,     /*  00 110110         */
1637     0x0b0b,     /*  00 110111         */
1638     0xcb0b,
1639     0xcb0b,     /*  0000 000         */
1640     0xf60b,     /*  0000 0          */
1641     0xf60b,     /*  0000 000         */
1642     0x8e0c,     /*  0000  00        */
1643     0xe80c,     /*  0000  01        */
1644     0x5f0c,     /*  0000  10        */
1645     0x9d0c,     /*  0000  11        */
1646     0xf50b,     /*  0000 0100         */
1647     0xf50b,     /*  0000 010         */
1648     0x7e0b,     /*  0000 0101         */
1649     0x7e0b,     /*  0000 010         */
1650     0xe70b,     /*  0000 0110         */
1651     0xe70b,     /*  0000 011         */
1652     0xac0b,     /*  0000 0111         */
1653     0xac0b,     /*  0000 011         */
1654     0xca0b,     /*  0000 1000         */
1655     0xca0b,     /*  0000 100         */
1656     0xbb0b,     /*  0000 1          */
1657     0xbb0b,     /*  0000 100         */
1658     0xd90c,     /*  0000 10100        */
1659     0x8d0c,     /*  0000 10101        */
1660     0x4f0b,     /*  0000 1011         */
1661     0x4f0b,     /*  0000 101         */
1662     0xf40b,     /*  0000 1100         */
1663     0xf40b,     /*  0000 110         */
1664     0x3f0b,     /*  0000 1101         */
1665     0x3f0b,     /*  0000 110         */
1666     0xf30b,     /*  0000 1110         */
1667     0xf30b,     /*  0000 111         */
1668     0xd80b,     /*  0000 1111         */
1669     0xd80b,     /*  0000 111         */
1670     0xe60b,     /*  000           */
1671     0xe60b,     /*  000 0000         */
1672     0x2f0b,     /*  000 00          */
1673     0x2f0b,     /*  000 0000         */
1674     0xf20b,     /*  000 0 0         */
1675     0xf20b,     /*  000 0          */
1676     0x6e0c,     /*  000 0 10        */
1677     0xf00c,     /*  000 0 11        */
1678     0x1f0b,     /*  000  00         */
1679     0x1f0b,     /*  000  0         */
1680     0xf10b,     /*  000  01         */
1681     0xf10b,     /*  000  0         */
1682     0x9c0b,     /*  000  10         */
1683     0x9c0b,     /*  000  1         */
1684     0xc90b,     /*  000  11         */
1685     0xc90b,     /*  000  1         */
1686     0x5e0b,     /*  000 01000         */
1687     0x5e0b,     /*  000 0100         */
1688     0xab0b,     /*  000 01          */
1689     0xab0b,     /*  000 0100         */
1690     0xba0b,     /*  000 01010         */
1691     0xba0b,     /*  000 0101         */
1692     0xe50b,     /*  000 01011         */
1693     0xe50b,     /*  000 0101         */
1694     0x7d0b,     /*  000 01100         */
1695     0x7d0b,     /*  000 0110         */
1696     0xd70b,     /*  000 01101         */
1697     0xd70b,
1698     0x4e0b,     /*  000 01110         */
1699     0x4e0b,
1700     0xe40b,     /*  000 01111         */
1701     0xe40b,     /*  000 0111         */
1702     0x8c0b,
1703     0x8c0b,     /*  000 1000         */
1704     0xc80b,     /*  000 10          */
1705     0xc80b,
1706     0x3e0b,     /*  000 1 0         */
1707     0x3e0b,     /*  000 1          */
1708     0x6d0b,
1709     0x6d0b,     /*  000 1          */
1710     0xd60b,     /*  000 10100         */
1711     0xd60b,     /*  000 1010         */
1712     0xe30b,
1713     0xe30b,     /*  000 1010         */
1714     0x9b0b,     /*  000 10110         */
1715     0x9b0b,     /*  000 1011         */
1716     0xb90b,
1717     0xb90b,     /*  000 1011         */
1718     0x2e0b,     /*  000 11000         */
1719     0x2e0b,     /*  000 1100         */
1720     0xaa0b,
1721     0xaa0b,     /*  000 1100         */
1722     0xe20b,
1723     0xe20b,     /*  000 1101         */
1724     0x1e0b,
1725     0x1e0b,     /*  000 1101         */
1726     0xe10b,
1727     0xe10b,     /*  000 1110         */
1728     0x0e0c,
1729     0xe00c,     /*  000 111011        */
1730     0x5d0b,
1731     0x5d0b,     /*  000 1111         */
1732     0xd50b,
1733     0xd50b,     /*  000 1111         */
1734     0xff0d,
1735     0xef0d,
1736     0xfe0d,
1737     0xdf0d,
1738     0xee0c,
1739     0xee0c,
1740     0xfd0d,
1741     0xcf0d,
1742     0xfc0d,
1743     0xde0d,
1744     0xed0d,
1745     0xbf0d,
1746     0xfb0c,
1747     0xfb0c,
1748     0xce0d,
1749     0xec0d,
1750     0xdd0c,     /*    000        */
1751     0xdd0c,     /*    00        */
1752     0xaf0c,     /*             */
1753     0xaf0c,     /*    00        */
1754     0xfa0c,     /*    010        */
1755     0xfa0c,     /*    01        */
1756     0xbe0c,     /*    011        */
1757     0xbe0c,     /*    01        */
1758     0xeb0c,     /*    100        */
1759     0xeb0c,     /*    10        */
1760     0xcd0c,     /*    101        */
1761     0xcd0c,     /*    10        */
1762     0xdc0c,     /*    110        */
1763     0xdc0c,     /*    11        */
1764     0x9f0c,     /*    111        */
1765     0x9f0c,     /*    11        */
1766     0xf90c,     /*    0000        */
1767     0xf90c,     /*    000        */
1768     0xea0c,     /*    0         */
1769     0xea0c,     /*    000        */
1770     0xbd0c,     /*     0        */
1771     0xbd0c,     /*             */
1772     0xdb0c,     /*     1        */
1773     0xdb0c,     /*             */
1774     0x8f0c,     /*    0100        */
1775     0x8f0c,     /*    010        */
1776     0xf80c,     /*    0101        */
1777     0xf80c,     /*    010        */
1778     0xcc0c,
1779     0xcc0c,     /*    011        */
1780     0x9e0c,     /*    0111        */
1781     0x9e0c,     /*    011        */
1782     0xe90c,     /*    1000        */
1783     0xe90c,     /*    100        */
1784     0x7f0c,     /*    1         */
1785     0x7f0c,
1786     0xf70c,     /*    1010        */
1787     0xf70c,     /*    101        */
1788     0xad0c,     /*    1011        */
1789     0xad0c,     /*    101        */
1790     0xda0c,     /*    1100        */
1791     0xda0c,     /*    110        */
1792     0xbc0c,
1793     0xbc0c,     /*    110        */
1794     0x6f0c,     /*    1110        */
1795     0x6f0c,     /*    111        */
1796     0xae0d,     /*    11110       */
1797     0x0f0d
1798 };
1799 
1800 const uint16 huffTable_16[465] =
1801 {
1802     0x0001,
1803     0x1104,
1804     0x0104,
1805     0x1003,
1806     0x1003,
1807     0x2308,
1808     0x3208,     /*    11            */
1809     0x1307,     /*   0100             */
1810     0x1307,     /*   010             */
1811     0x3107,
1812     0x3107,
1813     0x0308,
1814     0x3008,
1815     0x2207,     /*   0111             */
1816     0x2207,     /*   011             */
1817     0x1206,     /*   100              */
1818     0x1206,     /*   10              */
1819     0x1206,     /*   10              */
1820     0x1206,     /*   10              */
1821     0x2106,     /*   101              */
1822     0x2106,     /*   10             */
1823     0x2106,     /*   10             */
1824     0x2106,     /*   10             */
1825     0x0206,
1826     0x0206,
1827     0x0206,
1828     0x0206,
1829     0x2006,
1830     0x2006,
1831     0x2006,
1832     0x2006,
1833     0x1709,
1834     0x1709,     /*  0 0111           */
1835     0x7109,     /*  0 10000           */
1836     0x7109,     /*  0 1000           */
1837     0x700a,     /*  0 10 0          */
1838     0x360a,     /*  0 10 1          */
1839     0x630a,     /*  0 1 00          */
1840     0x450a,     /*  0 1 01          */
1841     0x540a,     /*  0 1 10          */
1842     0x260a,     /*  0 1 11          */
1843     0x6209,     /*  0 10100           */
1844     0x6209,     /*  0 1010           */
1845     0x1609,
1846     0x1609,
1847     0x6109,     /*  0 10110           */
1848     0x6109,     /*  0 1011           */
1849     0x060a,     /*  0 101110          */
1850     0x600a,
1851     0x5309,
1852     0x5309,     /*  0 1100           */
1853     0x350a,     /*  0 11 0          */
1854     0x440a,     /*  0 11 1          */
1855     0x2509,     /*  0 11010           */
1856     0x2509,     /*  0 1101           */
1857     0x5209,     /*  0 11011           */
1858     0x5209,     /*  0 1101           */
1859     0x5108,
1860     0x5108,
1861     0x5108,
1862     0x5108,
1863     0x1509,
1864     0x1509,     /*  0 1111           */
1865     0x0509,     /*  0 11111           */
1866     0x0509,     /*  0 1111           */
1867     0x3409,     /*               */
1868     0x3409,     /*               */
1869     0x4309,     /*   000            */
1870     0x4309,     /*               */
1871     0x5009,     /*   00 0           */
1872     0x5009,     /*   00            */
1873     0x2409,     /*   00 1           */
1874     0x2409,     /*   00            */
1875     0x4209,     /*   0 00           */
1876     0x4209,     /*   0 0           */
1877     0x3309,     /*   0 01           */
1878     0x3309,     /*   0 0           */
1879     0x1408,     /*   0 1            */
1880     0x1408,     /*   0            */
1881     0x1408,     /*   0            */
1882     0x1408,     /*   0            */
1883     0x4108,     /*    00            */
1884     0x4108,     /*    0            */
1885     0x4108,     /*    0            */
1886     0x4108,     /*    0            */
1887     0x0409,     /*    010           */
1888     0x0409,     /*    01           */
1889     0x4009,     /*    011           */
1890     0x4009,     /*    01           */
1891     0x1d0b,
1892     0x1d0b,     /*  00 10101         */
1893     0xc40c,     /*  00 1011000        */
1894     0x6b0c,     /*  00 1011         */
1895     0xc30c,     /*  00 1011010        */
1896     0xa70c,     /*  00 1011011        */
1897     0x2c0b,     /*  00 101110         */
1898     0x2c0b,     /*  00 10111         */
1899     0xc20c,     /*  00 1011110        */
1900     0xb50c,     /*  00 1011111        */
1901     0xc10c,     /*  00 1100000        */
1902     0x0c0c,     /*  00 1100         */
1903     0x4b0c,     /*  00 110 0        */
1904     0xb40c,     /*  00 110 1        */
1905     0x6a0c,     /*  00 11 00        */
1906     0xa60c,     /*  00 11 01        */
1907     0xb30b,     /*  00 11 1         */
1908     0xb30b,     /*  00 11          */
1909     0x5a0c,     /*  00 1101000        */
1910     0xa50c,     /*  00 1101         */
1911     0x2b0b,     /*  00 110101         */
1912     0x2b0b,     /*  00 11010         */
1913     0xb20b,     /*  00 110110         */
1914     0xb20b,     /*  00 11011         */
1915     0x1b0b,     /*  00 110111         */
1916     0x1b0b,     /*  00 11011         */
1917     0xb10b,     /*  00 111000         */
1918     0xb10b,     /*  00 11100         */
1919     0x0b0c,     /*  00 111 0        */
1920     0xb00c,     /*  00 111 1        */
1921     0x690c,     /*  00 1110100        */
1922     0x960c,     /*  00 1110101        */
1923     0x4a0c,     /*  00 1110110        */
1924     0xa40c,     /*  00 1110111        */
1925     0x780c,     /*  00 1111000        */
1926     0x870c,     /*  00 1111         */
1927     0xa30b,     /*  00 111101         */
1928     0xa30b,     /*  00 11110         */
1929     0x3a0c,     /*  00 1111100        */
1930     0x590c,     /*  00 1111101        */
1931     0x2a0b,     /*  00 111111         */
1932     0x2a0b,     /*  00 11111         */
1933     0x950c,     /*  0 00000000        */
1934     0x680c,     /*  0           */
1935     0xa10b,     /*  0 0000          */
1936     0xa10b,     /*  0           */
1937     0x860c,     /*  0 000 00        */
1938     0x770c,     /*  0 000 01        */
1939     0x940b,     /*  0 000 1         */
1940     0x940b,     /*  0 000          */
1941     0x490c,     /*  0 00 000        */
1942     0x570c,     /*  0 00          */
1943     0x670b,     /*  0 00 01         */
1944     0x670b,     /*  0 00 0         */
1945     0xa20a,     /*  0 00 1          */
1946     0xa20a,     /*  0 00          */
1947     0xa20a,     /*  0 00          */
1948     0xa20a,     /*  0 00          */
1949     0x1a0a,     /*  0 0 00          */
1950     0x1a0a,     /*  0 0 0          */
1951     0x1a0a,     /*  0 0 0          */
1952     0x1a0a,     /*  0 0 0          */
1953     0x0a0b,     /*  0 0 010         */
1954     0x0a0b,     /*  0 0 01         */
1955     0xa00b,     /*  0 0 011         */
1956     0xa00b,     /*  0 0 01         */
1957     0x390b,     /*  0 0 100         */
1958     0x390b,     /*  0 0 10         */
1959     0x930b,     /*  0 0 101         */
1960     0x930b,     /*  0 0 10         */
1961     0x580b,     /*  0 0 110         */
1962     0x580b,     /*  0 0 11         */
1963     0x850b,     /*  0 0 111         */
1964     0x850b,     /*  0 0 11         */
1965     0x290a,     /*  0  000          */
1966     0x290a,     /*  0  00          */
1967     0x290a,     /*  0  00          */
1968     0x290a,     /*  0  00          */
1969     0x920a,     /*  0             */
1970     0x920a,     /*  0  00         */
1971     0x920a,     /*  0  00         */
1972     0x920a,     /*  0  00         */
1973     0x760b,     /*  0  0100         */
1974     0x760b,     /*  0  010         */
1975     0x090b,     /*  0  0101         */
1976     0x090b,     /*  0  010         */
1977     0x190a,     /*  0  011          */
1978     0x190a,     /*  0  01         */
1979     0x190a,     /*  0  01         */
1980     0x190a,     /*  0  01         */
1981     0x910a,     /*  0  100          */
1982     0x910a,     /*  0  10          */
1983     0x910a,     /*  0  10          */
1984     0x910a,     /*  0  10          */
1985     0x900b,     /*  0  1010         */
1986     0x900b,     /*  0  101         */
1987     0x480b,     /*  0  1011         */
1988     0x480b,     /*  0  101         */
1989     0x840b,     /*  0  1100         */
1990     0x840b,     /*  0  110         */
1991     0x750b,     /*  0  1101         */
1992     0x750b,     /*  0  110         */
1993     0x380b,     /*  0  1110         */
1994     0x380b,     /*  0  111         */
1995     0x830b,     /*  0  1111         */
1996     0x830b,     /*  0  111         */
1997     0x660b,     /*  0 0100000         */
1998     0x660b,     /*  0 010000         */
1999     0x280b,     /*  0 0100          */
2000     0x280b,     /*  0 010000         */
2001     0x820a,     /*  0 010           */
2002     0x820a,     /*  0 01000         */
2003     0x820a,     /*  0 01000         */
2004     0x820a,     /*  0 01000         */
2005     0x470b,     /*  0 01 00         */
2006     0x470b,     /*  0 01 0         */
2007     0x740b,     /*  0 01 01         */
2008     0x740b,     /*  0 01 0         */
2009     0x180a,     /*  0 01 1          */
2010     0x180a,     /*  0 01          */
2011     0x180a,     /*  0 01          */
2012     0x180a,     /*  0 01          */
2013     0x810a,     /*  0 010100          */
2014     0x810a,     /*  0 01010          */
2015     0x810a,     /*  0 01010          */
2016     0x810a,     /*  0 01010          */
2017     0x800a,     /*  0 010101          */
2018     0x800a,     /*  0 01010         */
2019     0x800a,     /*  0 01010         */
2020     0x800a,     /*  0 01010         */
2021     0x080b,     /*  0 0101100         */
2022     0x080b,     /*  0 010110         */
2023     0x560b,     /*  0 0101101         */
2024     0x560b,     /*  0 010110         */
2025     0x370a,     /*  0 010111          */
2026     0x370a,     /*  0 01011         */
2027     0x370a,     /*  0 01011         */
2028     0x370a,     /*  0 01011         */
2029     0x730a,     /*  0 011000          */
2030     0x730a,     /*  0 01100          */
2031     0x730a,     /*  0 01100          */
2032     0x730a,     /*  0 01100          */
2033     0x650b,     /*  0 011 0         */
2034     0x650b,     /*  0 011          */
2035     0x460b,     /*  0 011 1         */
2036     0x460b,     /*  0 011          */
2037     0x270a,     /*  0 011010          */
2038     0x270a,     /*  0 01101          */
2039     0x270a,     /*  0 01101          */
2040     0x270a,     /*  0 01101          */
2041     0x720a,     /*  0 011011          */
2042     0x720a,     /*  0 01101         */
2043     0x720a,     /*  0 01101         */
2044     0x720a,     /*  0 01101         */
2045     0x640b,     /*  0 0111000         */
2046     0x640b,     /*  0 011100         */
2047     0x550b,     /*  0 0111          */
2048     0x550b,     /*  0 011100         */
2049     0x070a,     /*  0 011101          */
2050     0x070a,     /*  0 01110         */
2051     0x070a,     /*  0 01110         */
2052     0x070a,     /*  0 01110         */
2053     0x9e0d,
2054     0x9e0d,     /*  00 0110000       */
2055     0xbc0e,     /*  00 01100 0      */
2056     0xcb0e,     /*  00 01100 1      */
2057     0x8e0e,     /*  00 0110 00      */
2058     0xe80e,     /*  00 0110 01      */
2059     0x9d0e,     /*  00 0110 10      */
2060     0xe70e,     /*  00 0110 11      */
2061     0xbb0e,     /*  00 011 000      */
2062     0x8d0e,     /*  00 011        */
2063     0xd80e,     /*  00 011 010      */
2064     0x6e0e,     /*  00 011 011      */
2065     0xe60d,     /*  00 011 10       */
2066     0xe60d,     /*  00 011 1       */
2067     0x9c0d,     /*  00 011 11       */
2068     0x9c0d,     /*  00 011 1       */
2069     0xab0e,     /*  00 011010000      */
2070     0xba0e,     /*  00 011010       */
2071     0xe50e,     /*  00 01101 0      */
2072     0xd70e,     /*  00 01101 1      */
2073     0x4e0d,     /*  00 01101010       */
2074     0x4e0d,     /*  00 0110101       */
2075     0xe40e,     /*  00 011010110      */
2076     0x8c0e,     /*  00 011010111      */
2077     0xc80d,     /*  00 01101100       */
2078     0xc80d,     /*  00 0110110       */
2079     0x3e0d,     /*  00 01101101       */
2080     0x3e0d,     /*  00 0110110       */
2081     0x6d0d,     /*  00 01101110       */
2082     0x6d0d,     /*  00 0110111       */
2083     0xd60e,     /*  00 011011110      */
2084     0x9b0e,     /*  00 011011111      */
2085     0xb90e,     /*  00 011100000      */
2086     0xaa0e,     /*  00 011100       */
2087     0xe10d,     /*  00 01110        */
2088     0xe10d,     /*  00 0111000       */
2089     0xd40d,     /*  00 0111 0       */
2090     0xd40d,     /*  00 0111        */
2091     0xb80e,     /*  00 0111 10      */
2092     0xa90e,     /*  00 0111 11      */
2093     0x7b0d,     /*  00 01110100       */
2094     0x7b0d,     /*  00 0111010       */
2095     0xb70e,     /*  00 011101010      */
2096     0xd00e,     /*  00 011101011      */
2097     0xe30c,     /*  00 0111011        */
2098     0xe30c,     /*  00 011101       */
2099     0xe30c,     /*  00 011101       */
2100     0xe30c,     /*  00 011101       */
2101     0x0e0d,     /*  00 01111000       */
2102     0x0e0d,     /*  00 0111100       */
2103     0xe00d,     /*  00 01111        */
2104     0xe00d,     /*  00 0111100       */
2105     0x5d0d,     /*  00 01111010       */
2106     0x5d0d,     /*  00 0111101       */
2107     0xd50d,     /*  00 01111011       */
2108     0xd50d,     /*  00 0111101       */
2109     0x7c0d,     /*  00 01111100       */
2110     0x7c0d,     /*  00 0111110       */
2111     0xc70d,     /*  00 01111101       */
2112     0xc70d,     /*  00 0111110       */
2113     0x4d0d,     /*  00 01111110       */
2114     0x4d0d,     /*  00 0111111       */
2115     0x8b0d,     /*  00 01111111       */
2116     0x8b0d,     /*  00 0111111       */
2117     0x9a0d,
2118     0x6c0d,     /*  00 10000        */
2119     0xc60d,     /*  00 1000 0       */
2120     0x3d0d,     /*  00 1000 1       */
2121     0x5c0d,     /*  00 100 00       */
2122     0xc50d,     /*  00 100 01       */
2123     0x0d0c,     /*  00 100 1        */
2124     0x0d0c,     /*  00 100         */
2125     0x8a0d,     /*  00 10 000       */
2126     0xa80d,     /*  00 10         */
2127     0x990d,     /*  00 10 010       */
2128     0x4c0d,     /*  00 10 011       */
2129     0xb60d,     /*  00 10 100       */
2130     0x7a0d,     /*  00 10 101       */
2131     0x3c0c,     /*  00 10 11        */
2132     0x3c0c,     /*  00 10 1        */
2133     0x5b0d,     /*  00 1 0000       */
2134     0x890d,     /*  00 1 0        */
2135     0x1c0c,     /*  00 1          */
2136     0x1c0c,     /*  00 1 00        */
2137     0xc00c,     /*  00 1 010        */
2138     0xc00c,     /*  00 1 01        */
2139     0x980d,     /*  00 1 0110       */
2140     0x790d,     /*  00 1 0111       */
2141     0xe20b,     /*  00 1 10         */
2142     0xe20b,     /*  00 1 1         */
2143     0xe20b,     /*  00 1 1         */
2144     0xe20b,     /*  00 1 1         */
2145     0x2e0c,     /*  00 1 110        */
2146     0x2e0c,     /*  00 1 11        */
2147     0x1e0c,     /*  00 1 111        */
2148     0x1e0c,     /*  00 1 11        */
2149     0xd30c,     /*  00 1010000        */
2150     0xd30c,     /*  00 101000        */
2151     0x2d0c,     /*  00 1010         */
2152     0x2d0c,     /*  00 101000        */
2153     0xd20c,     /*  00 101 0        */
2154     0xd20c,     /*  00 101         */
2155     0xd10c,     /*  00 101 1        */
2156     0xd10c,     /*  00 101         */
2157     0x3b0c,     /*  00 1010100        */
2158     0x3b0c,     /*  00 101010        */
2159     0x970d,     /*  00 10101010       */
2160     0x880d,     /*  00 10101011       */
2161     0xf208,
2162     0xf208,     /*  000 1            */
2163     0x2f09,     /*  00 0000           */
2164     0x0f09,     /*  00 0            */
2165     0x1f08,     /*  00              */
2166     0x1f08,     /*  00 00            */
2167     0xf108,     /*  00 010            */
2168     0xf108,     /*  00 01            */
2169     0xce10,
2170     0xce10,     /*  000 101100000    */
2171     0xec11,     /*  000 1011000 0   */
2172     0xdd11,     /*  000 1011000 1   */
2173     0xde0f,     /*  000 101100      */
2174     0xde0f,     /*  000 10110000    */
2175     0xde0f,     /*  000 10110000    */
2176     0xde0f,     /*  000 10110000    */
2177     0xe90f,     /*  000 10110 0     */
2178     0xe90f,     /*  000 10110      */
2179     0xe90f,     /*  000 10110      */
2180     0xe90f,     /*  000 10110      */
2181     0xea10,     /*  000 10110 10    */
2182     0xea10,     /*  000 10110 1    */
2183     0xd910,     /*  000 10110 11    */
2184     0xd910,     /*  000 10110 1    */
2185     0xee0e,
2186     0xee0e,     /*  000 1011       */
2187     0xed0f,     /*  000 1011 10     */
2188     0xeb0f,     /*  000 1011 11     */
2189     0xbe0e,     /*  000 10110100      */
2190     0xbe0e,     /*  000 1011010      */
2191     0xcd0e,     /*  000 10110101      */
2192     0xcd0e,     /*  000 1011010      */
2193     0xdc0f,     /*  000 101101100     */
2194     0xdb0f,     /*  000 101101101     */
2195     0xae0e,     /*  000 10110111      */
2196     0xae0e,     /*  000 1011011      */
2197     0xcc0e,     /*  000 10111000      */
2198     0xcc0e,     /*  000 1011100      */
2199     0xad0f,     /*  000 10111 0     */
2200     0xda0f,     /*  000 10111 1     */
2201     0x7e0f,     /*  000 101110100     */
2202     0xac0f,     /*  000 101110101     */
2203     0xca0e,     /*  000 10111011      */
2204     0xca0e,     /*  000 1011101      */
2205     0xc90f,     /*  000 101111000     */
2206     0x7d0f,     /*  000 101111      */
2207     0x5e0e,     /*  000 10111101      */
2208     0x5e0e,     /*  000 1011110      */
2209     0xbd0d,     /*  000 1011111       */
2210     0xbd0d,     /*  000 101111      */
2211     0xbd0d,     /*  000 101111      */
2212     0xbd0d,     /*  000 101111      */
2213     0xef0b,
2214     0xfe0b,     /*  00000000          */
2215     0xdf0b,     /*  0000000 0         */
2216     0xfd0b,     /*  0000000 1         */
2217     0xcf0b,     /*    00         */
2218     0xfc0b,     /*    01         */
2219     0xbf0b,     /*    10         */
2220     0xfb0b,     /*    11         */
2221     0xaf0a,     /*    00          */
2222     0xaf0a,     /*    0          */
2223     0xfa0b,     /*    010         */
2224     0x9f0b,     /*    011         */
2225     0xf90b,     /*    100         */
2226     0xf80b,     /*    101         */
2227     0x8f0a,     /*    11          */
2228     0x8f0a,     /*    1          */
2229     0x7f0a,     /*  0000 000          */
2230     0x7f0a,     /*  0000 00          */
2231     0xf70a,     /*  0000            */
2232     0xf70a,     /*  0000 00          */
2233     0x6f0a,     /*  0000 010          */
2234     0x6f0a,     /*  0000 01          */
2235     0xf60a,     /*  0000 011          */
2236     0xf60a,     /*  0000 01          */
2237     0xff08,     /*  0000 1            */
2238     0xff08,     /*  0000            */
2239     0xff08,     /*  0000            */
2240     0xff08,     /*  0000            */
2241     0xff08,     /*  0000            */
2242     0xff08,     /*  0000            */
2243     0xff08,     /*  0000            */
2244     0xff08,     /*  0000            */
2245     0x5f0a,     /*  000 0000          */
2246     0x5f0a,     /*  000 000          */
2247     0xf50a,     /*  000 0           */
2248     0xf50a,     /*  000 000          */
2249     0x4f09,     /*  000             */
2250     0x4f09,     /*  000 00          */
2251     0x4f09,     /*  000 00          */
2252     0x4f09,     /*  000 00          */
2253     0xf409,     /*  000 010           */
2254     0xf409,     /*  000 01           */
2255     0xf409,     /*  000 01           */
2256     0xf409,     /*  000 01           */
2257     0xf309,     /*  000 011           */
2258     0xf309,     /*  000 01          */
2259     0xf309,     /*  000 01          */
2260     0xf309,     /*  000 01          */
2261     0xf009,     /*  000 100           */
2262     0xf009,     /*  000 10           */
2263     0xf009,     /*  000 10           */
2264     0xf009,     /*  000 10           */
2265     0x3f0a,
2266     0x3f0a
2267 };
2268 
2269 
2270 
2271 const uint16 huffTable_24[478] =
2272 {
2273 
2274     0x2206,     /*  101               */
2275     0x1205,     /*  10101               */
2276     0x1205,     /*  1010               */
2277     0x2105,     /*  10110               */
2278     0x2105,     /*  1011               */
2279     0x0206,     /*  101110              */
2280     0x2006,     /*  101111              */
2281     0x1104,
2282     0x1104,
2283     0x1104,
2284     0x1104,
2285     0x0104,
2286     0x0104,
2287     0x0104,
2288     0x0104,
2289     0x1004,
2290     0x1004,
2291     0x1004,
2292     0x1004,
2293     0x0004,
2294     0x0004,
2295     0x0004,
2296     0x0004,
2297     0x7308,
2298     0x7308,
2299     0x3709,
2300     0x2709,
2301     0x7208,
2302     0x7208,
2303     0x4608,     /*  01110000            */
2304     0x4608,     /*  0111000            */
2305     0x6408,     /*  01110             */
2306     0x6408,     /*  0111000            */
2307     0x5508,     /*  0111 0            */
2308     0x5508,     /*  0111             */
2309     0x7108,     /*  0111 1            */
2310     0x7108,     /*  0111             */
2311     0x3608,     /*  01110100            */
2312     0x3608,     /*  0111010            */
2313     0x6308,     /*  01110101            */
2314     0x6308,     /*  0111010            */
2315     0x4508,     /*  01110110            */
2316     0x4508,     /*  0111011            */
2317     0x5408,     /*  01110111            */
2318     0x5408,     /*  0111011            */
2319     0x2608,     /*  01111000            */
2320     0x2608,     /*  0111100            */
2321     0x6208,     /*  01111             */
2322     0x6208,     /*  0111100            */
2323     0x1608,     /*  01111010            */
2324     0x1608,     /*  0111101            */
2325     0x6108,     /*  01111011            */
2326     0x6108,     /*  0111101            */
2327     0x0609,     /*  011111000           */
2328     0x6009,     /*  011111            */
2329     0x3508,     /*  01111101            */
2330     0x3508,     /*  0111110            */
2331     0x5308,     /*  01111110            */
2332     0x5308,     /*  0111111            */
2333     0x4408,     /*  01111111            */
2334     0x4408,     /*  0111111            */
2335     0x2508,     /*  10000000            */
2336     0x2508,     /*  1000000            */
2337     0x5208,     /*  10000             */
2338     0x5208,     /*  1000000            */
2339     0x1508,     /*  1000 0            */
2340     0x1508,     /*  1000             */
2341     0x0509,     /*  1000 10           */
2342     0x5009,     /*  1000 11           */
2343     0x5107,     /*  100 0             */
2344     0x5107,     /*  100              */
2345     0x5107,     /*  100              */
2346     0x5107,     /*  100              */
2347     0x3408,     /*  100 10            */
2348     0x3408,     /*  100 1            */
2349     0x4308,     /*  100 11            */
2350     0x4308,     /*  100 1            */
2351     0x2407,     /*  10 00             */
2352     0x2407,     /*  10 0             */
2353     0x2407,     /*  10 0             */
2354     0x2407,     /*  10 0             */
2355     0x4207,     /*  10 01             */
2356     0x4207,     /*  10 0            */
2357     0x4207,     /*  10 0            */
2358     0x4207,     /*  10 0            */
2359     0x3307,     /*  10 10             */
2360     0x3307,     /*  10 1             */
2361     0x3307,     /*  10 1             */
2362     0x3307,     /*  10 1             */
2363     0x1407,     /*  10 11             */
2364     0x1407,     /*  10 1            */
2365     0x1407,     /*  10 1            */
2366     0x1407,     /*  10 1            */
2367     0x4107,     /*  1 000             */
2368     0x4107,     /*  1 00             */
2369     0x4107,     /*  1 00             */
2370     0x4107,     /*  1 00             */
2371     0x0408,     /*  1  0            */
2372     0x0408,     /*  1              */
2373     0x4008,     /*  1  1            */
2374     0x4008,     /*  1              */
2375     0x2307,     /*  1 010             */
2376     0x2307,     /*  1 01             */
2377     0x2307,     /*  1 01             */
2378     0x2307,     /*  1 01             */
2379     0x3207,     /*  1 011             */
2380     0x3207,     /*  1 01            */
2381     0x3207,     /*  1 01            */
2382     0x3207,     /*  1 01            */
2383     0x1306,     /*  1 10              */
2384     0x1306,     /*  1 1              */
2385     0x1306,     /*  1 1              */
2386     0x1306,     /*  1 1              */
2387     0x1306,     /*  1 1              */
2388     0x1306,     /*  1 1              */
2389     0x1306,     /*  1 1              */
2390     0x1306,     /*  1 1              */
2391     0x3106,     /*  1 11              */
2392     0x3106,     /*  1 1             */
2393     0x3106,     /*  1 1             */
2394     0x3106,     /*  1 1             */
2395     0x3106,     /*  1 1             */
2396     0x3106,     /*  1 1             */
2397     0x3106,     /*  1 1             */
2398     0x3106,     /*  1 1             */
2399     0x0307,     /*  1010000             */
2400     0x0307,     /*  101000             */
2401     0x0307,     /*  101000             */
2402     0x0307,     /*  101000             */
2403     0x3007,     /*  1010              */
2404     0x3007,     /*  101000            */
2405     0x3007,     /*  101000            */
2406     0x3007,     /*  101000            */
2407     0xb309,
2408     0xb309,
2409     0x8809,     /*  010101            */
2410     0x8809,     /*  01010100           */
2411     0x2b0a,     /*  0101010100          */
2412     0x5a0a,     /*  0101010101          */
2413     0xb209,     /*  010101011           */
2414     0xb209,     /*  01010101           */
2415     0xa50a,     /*  0101011000          */
2416     0x1b0a,     /*  0101011           */
2417     0xb10a,     /*  0101011010          */
2418     0x690a,     /*  0101011011          */
2419     0x9609,     /*  010101110           */
2420     0x9609,     /*  01010111           */
2421     0xa409,     /*  010101111           */
2422     0xa409,     /*  01010111           */
2423     0x4a0a,     /*  0101100000          */
2424     0x780a,     /*  0101100           */
2425     0x8709,     /*  010110            */
2426     0x8709,     /*  01011000           */
2427     0x3a09,     /*  01011 0           */
2428     0x3a09,     /*  01011            */
2429     0xa309,     /*  01011 1           */
2430     0xa309,     /*  01011            */
2431     0x5909,     /*  010110100           */
2432     0x5909,     /*  01011010           */
2433     0x9509,     /*  010110101           */
2434     0x9509,     /*  01011010           */
2435     0x2a09,     /*  010110110           */
2436     0x2a09,     /*  01011011           */
2437     0xa209,     /*  010110111           */
2438     0xa209,     /*  01011011           */
2439     0xa109,     /*  010111000           */
2440     0xa109,     /*  01011100           */
2441     0x6809,     /*  010111            */
2442     0x6809,     /*  01011100           */
2443     0x8609,     /*  010111010           */
2444     0x8609,     /*  01011101           */
2445     0x7709,     /*  010111011           */
2446     0x7709,     /*  01011101           */
2447     0x4909,     /*  010111100           */
2448     0x4909,     /*  01011110           */
2449     0x9409,     /*  010111101           */
2450     0x9409,     /*  01011110           */
2451     0x3909,     /*  010111110           */
2452     0x3909,     /*  01011111           */
2453     0x9309,     /*  010111111           */
2454     0x9309,     /*  01011111           */
2455     0x5809,     /*  011000000           */
2456     0x5809,     /*  01100000           */
2457     0x8509,     /*  011000            */
2458     0x8509,     /*  01100000           */
2459     0x2909,     /*  01100 0           */
2460     0x2909,     /*  01100            */
2461     0x6709,     /*  01100 1           */
2462     0x6709,     /*  01100            */
2463     0x7609,     /*  0110 00           */
2464     0x7609,     /*  0110 0           */
2465     0x9209,     /*  0110 01           */
2466     0x9209,     /*  0110 0           */
2467     0x1909,     /*  0110 10           */
2468     0x1909,     /*  0110 1           */
2469     0x9109,     /*  0110 11           */
2470     0x9109,     /*  0110 1           */
2471     0x4809,     /*  011 000           */
2472     0x4809,     /*  011 00           */
2473     0x8409,     /*  011             */
2474     0x8409,     /*  011 00           */
2475     0x5709,     /*  011 010           */
2476     0x5709,     /*  011 01           */
2477     0x7509,     /*  011 011           */
2478     0x7509,     /*  011 01           */
2479     0x3809,     /*  011 100           */
2480     0x3809,     /*  011 10           */
2481     0x8309,     /*  011 101           */
2482     0x8309,     /*  011 10           */
2483     0x6609,     /*  011 110           */
2484     0x6609,     /*  011 11           */
2485     0x2809,     /*  011 111           */
2486     0x2809,     /*  011 11           */
2487     0x8209,     /*  011010000           */
2488     0x8209,     /*  01101000           */
2489     0x1809,     /*  011010            */
2490     0x1809,     /*  01101000           */
2491     0x4709,     /*  01101 0           */
2492     0x4709,     /*  01101            */
2493     0x7409,     /*  01101 1           */
2494     0x7409,     /*  01101            */
2495     0x8109,     /*  011010100           */
2496     0x8109,     /*  01101010           */
2497     0x080a,     /*  0110101010          */
2498     0x800a,     /*  0110101011          */
2499     0x5609,     /*  011010110           */
2500     0x5609,     /*  01101011           */
2501     0x6509,     /*  011010111           */
2502     0x6509,     /*  01101011           */
2503     0x1709,     /*  011011000           */
2504     0x1709,     /*  01101100           */
2505     0x070a,     /*  011011 0          */
2506     0x700a,     /*  011011 1          */
2507     0x6e0b,
2508     0x9c0b,
2509     0xc90a,     /*  01000 01          */
2510     0xc90a,     /*  01000 0          */
2511     0x5e0a,     /*  01000 10          */
2512     0x5e0a,     /*  01000 1          */
2513     0xba0a,     /*  01000 11          */
2514     0xba0a,     /*  01000 1          */
2515     0xe50a,     /*  0100 000          */
2516     0xe50a,     /*  0100 00          */
2517     0xab0b,     /*  0100  0         */
2518     0x7d0b,     /*  0100  1         */
2519     0xd70a,     /*  0100 010          */
2520     0xd70a,     /*  0100 01          */
2521     0xe40a,     /*  0100 011          */
2522     0xe40a,     /*  0100 01          */
2523     0x8c0a,     /*  0100 100          */
2524     0x8c0a,
2525     0xc80a,
2526     0xc80a,
2527     0x4e0b,     /*  0100 1100         */
2528     0x2e0b,     /*  0100 1101         */
2529     0x3e0a,     /*  0100 111          */
2530     0x3e0a,     /*  0100 11          */
2531     0x6d0a,     /*  010 0000          */
2532     0x6d0a,     /*  010 000          */
2533     0xd60a,     /*  010 0           */
2534     0xd60a,     /*  010 000          */
2535     0xe30a,     /*  010  0          */
2536     0xe30a,     /*  010            */
2537     0x9b0a,     /*  010  1          */
2538     0x9b0a,     /*  010            */
2539     0xb90a,     /*  010 0100          */
2540     0xb90a,     /*  010 010          */
2541     0xaa0a,     /*  010 0101          */
2542     0xaa0a,
2543     0xe20a,
2544     0xe20a,
2545     0x1e0a,
2546     0x1e0a,
2547     0xe10a,
2548     0xe10a,
2549     0x5d0a,
2550     0x5d0a,
2551     0xd50a,
2552     0xd50a,
2553     0x7c0a,
2554     0x7c0a,
2555     0xc70a,
2556     0xc70a,
2557     0x4d0a,
2558     0x4d0a,
2559     0x8b0a,
2560     0x8b0a,
2561     0xb80a,
2562     0xb80a,
2563     0xd40a,
2564     0xd40a,
2565     0x9a0a,
2566     0x9a0a,
2567     0xa90a,     /*  01 0 0          */
2568     0xa90a,     /*  01 0           */
2569     0x6c0a,     /*  01 0 1          */
2570     0x6c0a,     /*  01 0           */
2571     0xc60a,     /*  01  00          */
2572     0xc60a,     /*  01  0          */
2573     0x3d0a,     /*  01  01          */
2574     0x3d0a,     /*  01  0          */
2575     0xd30a,     /*  01  10          */
2576     0xd30a,     /*  01  1          */
2577     0x2d0a,     /*  01  11          */
2578     0x2d0a,     /*  01  1          */
2579     0xd20a,
2580     0xd20a,
2581     0x1d0a,     /*  01 01           */
2582     0x1d0a,     /*  01 0100          */
2583     0x7b0a,     /*  01 01010          */
2584     0x7b0a,     /*  01 0101          */
2585     0xb70a,     /*  01 01011          */
2586     0xb70a,
2587     0xd10a,
2588     0xd10a,     /*  01 0110          */
2589     0x5c0a,     /*  01 01101          */
2590     0x5c0a,     /*  01 0110          */
2591     0xc50a,     /*  01 01110          */
2592     0xc50a,     /*  01 0111          */
2593     0x8a0a,     /*  01 01111          */
2594     0x8a0a,     /*  01 0111          */
2595     0xa80a,     /*  01 10000          */
2596     0xa80a,     /*  01 1000          */
2597     0x990a,     /*  01 10           */
2598     0x990a,     /*  01 1000          */
2599     0x4c0a,     /*  01 1 0          */
2600     0x4c0a,     /*  01 1           */
2601     0xc40a,     /*  01 1 1          */
2602     0xc40a,     /*  01 1           */
2603     0x6b0a,     /*  01 10100          */
2604     0x6b0a,     /*  01 1010          */
2605     0xb60a,     /*  01 10101          */
2606     0xb60a,     /*  01 1010          */
2607     0xd00b,     /*  01 101100         */
2608     0x0c0b,     /*  01 101101         */
2609     0x3c0a,     /*  01 10111          */
2610     0x3c0a,     /*  01 1011          */
2611     0xc30a,     /*  01 11000          */
2612     0xc30a,     /*  01 1100          */
2613     0x7a0a,     /*  01 11           */
2614     0x7a0a,     /*  01 1100          */
2615     0xa70a,     /*  01 11010          */
2616     0xa70a,     /*  01 1101          */
2617     0x2c0a,     /*  01 11011          */
2618     0x2c0a,     /*  01 1101          */
2619     0xc20a,     /*  01 11100          */
2620     0xc20a,     /*  01 1110          */
2621     0x5b0a,     /*  01 11101          */
2622     0x5b0a,     /*  01 1110          */
2623     0xb50a,     /*  01 11110          */
2624     0xb50a,     /*  01 1111          */
2625     0x1c0a,
2626     0x1c0a,
2627     0x890a,
2628     0x890a,
2629     0x980a,
2630     0x980a,
2631     0xc10a,     /*  010100 0          */
2632     0xc10a,     /*  010100           */
2633     0x4b0a,     /*  010100 1          */
2634     0x4b0a,     /*  010100           */
2635     0xc00b,     /*  01010 000         */
2636     0x0b0b,     /*  01010           */
2637     0x3b0a,     /*  01010 01          */
2638     0x3b0a,     /*  01010 0          */
2639     0xb00b,     /*  01010 100         */
2640     0x0a0b,     /*  01010 101         */
2641     0x1a0a,     /*  01010 11          */
2642     0x1a0a,     /*  01010 1          */
2643     0xb409,     /*  0101 00           */
2644     0xb409,     /*  0101 0           */
2645     0xb409,     /*  0101 0           */
2646     0xb409,     /*  0101 0           */
2647     0x6a0a,     /*  0101 010          */
2648     0x6a0a,     /*  0101 01          */
2649     0xa60a,     /*  0101 011          */
2650     0xa60a,     /*  0101 01          */
2651     0x790a,     /*  0101 100          */
2652     0x790a,     /*  0101 10          */
2653     0x970a,     /*  0101 101          */
2654     0x970a,     /*  0101 10          */
2655     0xa00b,     /*  0101 1100         */
2656     0x090b,     /*  0101 1101         */
2657     0x900a,     /*  0101 111          */
2658     0x900a,     /*  0101 11          */
2659     0xca0b,
2660     0xca0b,
2661     0xbb0b,
2662     0xbb0b,
2663     0x8d0b,
2664     0x8d0b,     /*  0100000          */
2665     0xd80b,     /*  0100000 1         */
2666     0xd80b,     /*  0100000          */
2667     0x0e0c,     /*  010000 000        */
2668     0xe00c,     /*  010000          */
2669     0x0d0b,     /*  010000 01         */
2670     0x0d0b,     /*  010000 0         */
2671     0xe60a,     /*  010000 1          */
2672     0xe60a,     /*  010000          */
2673     0xe60a,     /*  010000          */
2674     0xe60a,     /*  010000          */
2675     0x0f09,     /*   011000      401  */
2676     0x0f09,     /*   01100           */
2677     0x0f09,     /*   01100           */
2678     0x0f09,     /*   01100           */
2679     0xee0b,     /*   011 00         */
2680     0xde0b,     /*   011 01         */
2681     0xed0b,     /*   011 10         */
2682     0xce0b,     /*   011 11         */
2683     0xec0b,     /*   01101000         */
2684     0xdd0b,     /*   01101          */
2685     0xbe0b,     /*   01101010         */
2686     0xeb0b,     /*   01101011         */
2687     0xcd0b,     /*   01101100         */
2688     0xdc0b,     /*   01101101         */
2689     0xae0b,     /*   01101110         */
2690     0xea0b,     /*   01101111         */
2691     0xbd0b,     /*   01110000         */
2692     0xdb0b,     /*   01110          */
2693     0xcc0b,     /*   0111 0         */
2694     0x9e0b,     /*   0111 1         */
2695     0xe90b,     /*   01110100         */
2696     0xad0b,     /*   01110101         */
2697     0xda0b,     /*   01110110         */
2698     0xbc0b,     /*   01110111         */
2699     0xcb0b,     /*   01111000         */
2700     0x8e0b,
2701     0xe80b,
2702     0x9d0b,
2703     0xd90b,
2704     0x7e0b,
2705     0xe70b,
2706     0xac0b,
2707     0xff04,
2708     0xef08,
2709     0xfe08,
2710     0xdf08,     /*  0000 0            */
2711     0xfd08,     /*  0000 1            */
2712     0xcf08,     /*  000 00            */
2713     0xfc08,     /*  000 01            */
2714     0xbf08,     /*  000 10            */
2715     0xfb08,     /*  000 11            */
2716     0xfa07,     /*  00 00             */
2717     0xfa07,     /*  00 0             */
2718     0xaf08,     /*  00 010            */
2719     0x9f08,     /*  00 011            */
2720     0xf907,     /*  00 10             */
2721     0xf907,     /*  00 1             */
2722     0xf807,     /*  00 11             */
2723     0xf807,     /*  00 1             */
2724     0x8f08,
2725     0x7f08,     /*  0 0             */
2726     0xf707,     /*  0               */
2727     0xf707,     /*  0 00             */
2728     0x6f07,     /*  0 010             */
2729     0x6f07,     /*  0 01             */
2730     0xf607,     /*  0 011             */
2731     0xf607,     /*  0 01             */
2732     0x5f07,
2733     0x5f07,     /*  0 10             */
2734     0xf507,     /*  0 101             */
2735     0xf507,     /*  0 10             */
2736     0x4f07,     /*  0 110             */
2737     0x4f07,     /*  0 11             */
2738     0xf407,     /*  0 111             */
2739     0xf407,     /*  0 11             */
2740     0x3f07,
2741     0x3f07,
2742     0xf307,     /*   0              */
2743     0xf307,
2744     0x2f07,     /*    0             */
2745     0x2f07,     /*                 */
2746     0xf207,     /*    1             */
2747     0xf207,     /*                 */
2748     0xf107,
2749     0xf107,
2750     0x1f08,
2751     0xf008
2752 
2753 };
2754 
2755 
2756 const uint16 huffTable_32[33] =
2757 {
2758 
2759     0x0b06,
2760     0x0f06,
2761     0x0d06,
2762     0x0e06,
2763     0x0706,
2764     0x0506,
2765     0x0905,
2766     0x0905,
2767     0x0605,
2768     0x0605,
2769     0x0305,
2770     0x0305,
2771     0x0a05,
2772     0x0a05,
2773     0x0c05,
2774     0x0c05,
2775     0x0204,
2776     0x0204,
2777     0x0204,
2778     0x0204,
2779     0x0104,
2780     0x0104,
2781     0x0104,
2782     0x0104,
2783     0x0404,
2784     0x0404,
2785     0x0404,
2786     0x0404,
2787     0x0804,
2788     0x0804,
2789     0x0804,
2790     0x0804,
2791     0x0001
2792 
2793 };
2794 
2795 
2796 /*
2797  *  MM = 512; z = [0:(MM)]; a = z.^(1/3);
2798  *  Table is in Q27
2799  */
2800 const int32  power_one_third[513] =
2801 {
2802 
2803     0x00000000,  0x08000000,  0x0A14517D,  0x0B89BA25,
2804     0x0CB2FF53,  0x0DAE07DE,  0x0E897685,  0x0F4DAEDD,
2805     0x10000000,  0x10A402FD,  0x113C4841,  0x11CAB613,
2806     0x1250BFE2,  0x12CF8890,  0x1347F8AB,  0x13BACD65,
2807     0x1428A2FA,  0x1491FC15,  0x14F74744,  0x1558E2F7,
2808     0x15B72095,  0x161246D7,  0x166A9399,  0x16C03D55,
2809     0x17137449,  0x17646369,  0x17B33124,  0x18000000,
2810     0x184AEF29,  0x18941AD8,  0x18DB9CB7,  0x19218C2E,
2811     0x1965FEA5,  0x19A907C2,  0x19EAB998,  0x1A2B24D0,
2812     0x1A6A58D5,  0x1AA863EE,  0x1AE5535D,  0x1B213377,
2813     0x1B5C0FBD,  0x1B95F2EC,  0x1BCEE70F,  0x1C06F590,
2814     0x1C3E2745,  0x1C74847A,  0x1CAA1501,  0x1CDEE035,
2815     0x1D12ED0B,  0x1D464212,  0x1D78E582,  0x1DAADD3A,
2816     0x1DDC2ECF,  0x1E0CDF8C,  0x1E3CF476,  0x1E6C7257,
2817     0x1E9B5DBA,  0x1EC9BAF6,  0x1EF78E2C,  0x1F24DB4E,
2818     0x1F51A620,  0x1F7DF23C,  0x1FA9C314,  0x1FD51BF2,
2819     0x20000000,  0x202A7244,  0x205475A6,  0x207E0CEE,
2820     0x20A73ACA,  0x20D001CC,  0x20F8646D,  0x2120650E,
2821     0x214805FA,  0x216F4963,  0x2196316C,  0x21BCC020,
2822     0x21E2F77A,  0x2208D961,  0x222E67AD,  0x2253A425,
2823     0x22789082,  0x229D2E6E,  0x22C17F82,  0x22E5854F,
2824     0x23094155,  0x232CB509,  0x234FE1D5,  0x2372C918,
2825     0x23956C26,  0x23B7CC47,  0x23D9EABB,  0x23FBC8B9,
2826     0x241D676E,  0x243EC7FF,  0x245FEB86,  0x2480D319,
2827     0x24A17FC3,  0x24C1F28B,  0x24E22C6C,  0x25022E5F,
2828     0x2521F954,  0x25418E33,  0x2560EDE2,  0x2580193E,
2829     0x259F111F,  0x25BDD657,  0x25DC69B4,  0x25FACBFE,
2830     0x2618FDF8,  0x26370060,  0x2654D3EF,  0x2672795C,
2831     0x268FF156,  0x26AD3C8A,  0x26CA5BA2,  0x26E74F41,
2832     0x27041808,  0x2720B695,  0x273D2B81,  0x27597762,
2833     0x27759ACB,  0x2791964B,  0x27AD6A6F,  0x27C917C0,
2834     0x27E49EC5,  0x28000000,  0x281B3BF3,  0x2836531B,
2835     0x285145F3,  0x286C14F5,  0x2886C096,  0x28A1494B,
2836     0x28BBAF85,  0x28D5F3B3,  0x28F01641,  0x290A179B,
2837     0x2923F82A,  0x293DB854,  0x2957587E,  0x2970D90A,
2838     0x298A3A59,  0x29A37CCA,  0x29BCA0BB,  0x29D5A687,
2839     0x29EE8E87,  0x2A075914,  0x2A200684,  0x2A38972C,
2840     0x2A510B5F,  0x2A696370,  0x2A819FAE,  0x2A99C069,
2841     0x2AB1C5ED,  0x2AC9B088,  0x2AE18085,  0x2AF9362C,
2842     0x2B10D1C6,  0x2B28539B,  0x2B3FBBEF,  0x2B570B09,
2843     0x2B6E412B,  0x2B855E97,  0x2B9C6390,  0x2BB35056,
2844     0x2BCA2527,  0x2BE0E242,  0x2BF787E4,  0x2C0E1649,
2845     0x2C248DAD,  0x2C3AEE4A,  0x2C513859,  0x2C676C13,
2846     0x2C7D89AF,  0x2C939164,  0x2CA98368,  0x2CBF5FF1,
2847     0x2CD52731,  0x2CEAD95E,  0x2D0076A9,  0x2D15FF45,
2848     0x2D2B7363,  0x2D40D332,  0x2D561EE4,  0x2D6B56A7,
2849     0x2D807AAA,  0x2D958B19,  0x2DAA8823,  0x2DBF71F4,
2850     0x2DD448B7,  0x2DE90C98,  0x2DFDBDC0,  0x2E125C5C,
2851     0x2E26E892,  0x2E3B628D,  0x2E4FCA75,  0x2E642070,
2852     0x2E7864A8,  0x2E8C9741,  0x2EA0B862,  0x2EB4C831,
2853     0x2EC8C6D3,  0x2EDCB46C,  0x2EF09121,  0x2F045D14,
2854     0x2F18186A,  0x2F2BC345,  0x2F3F5DC7,  0x2F52E812,
2855     0x2F666247,  0x2F79CC88,  0x2F8D26F4,  0x2FA071AC,
2856     0x2FB3ACD0,  0x2FC6D87F,  0x2FD9F4D7,  0x2FED01F8,
2857     0x30000000,  0x3012EF0C,  0x3025CF39,  0x3038A0A6,
2858     0x304B636D,  0x305E17AD,  0x3070BD81,  0x30835504,
2859     0x3095DE51,  0x30A85985,  0x30BAC6B9,  0x30CD2609,
2860     0x30DF778D,  0x30F1BB60,  0x3103F19C,  0x31161A59,
2861     0x312835B0,  0x313A43BA,  0x314C4490,  0x315E3849,
2862     0x31701EFD,  0x3181F8C4,  0x3193C5B4,  0x31A585E6,
2863     0x31B7396F,  0x31C8E066,  0x31DA7AE1,  0x31EC08F6,
2864     0x31FD8ABC,  0x320F0047,  0x322069AC,  0x3231C702,
2865     0x3243185C,  0x32545DCF,  0x32659770,  0x3276C552,
2866     0x3287E78A,  0x3298FE2C,  0x32AA094A,  0x32BB08F9,
2867     0x32CBFD4A,  0x32DCE652,  0x32EDC423,  0x32FE96D0,
2868     0x330F5E6A,  0x33201B04,  0x3330CCB0,  0x33417380,
2869     0x33520F85,  0x3362A0D0,  0x33732774,  0x3383A380,
2870     0x33941506,  0x33A47C17,  0x33B4D8C4,  0x33C52B1B,
2871     0x33D5732F,  0x33E5B10F,  0x33F5E4CA,  0x34060E71,
2872     0x34162E14,  0x342643C1,  0x34364F88,  0x34465178,
2873     0x345649A1,  0x34663810,  0x34761CD6,  0x3485F800,
2874     0x3495C99D,  0x34A591BB,  0x34B55069,  0x34C505B4,
2875     0x34D4B1AB,  0x34E4545B,  0x34F3EDD2,  0x35037E1D,
2876     0x3513054B,  0x35228367,  0x3531F881,  0x354164A3,
2877     0x3550C7DC,  0x35602239,  0x356F73C5,  0x357EBC8E,
2878     0x358DFCA0,  0x359D3408,  0x35AC62D1,  0x35BB8908,
2879     0x35CAA6B9,  0x35D9BBF0,  0x35E8C8B9,  0x35F7CD20,
2880     0x3606C92F,  0x3615BCF3,  0x3624A878,  0x36338BC8,
2881     0x364266EE,  0x365139F6,  0x366004EC,  0x366EC7D9,
2882     0x367D82C9,  0x368C35C6,  0x369AE0DC,  0x36A98414,
2883     0x36B81F7A,  0x36C6B317,  0x36D53EF7,  0x36E3C323,
2884     0x36F23FA5,  0x3700B488,  0x370F21D5,  0x371D8797,
2885     0x372BE5D7,  0x373A3CA0,  0x37488BF9,  0x3756D3EF,
2886     0x37651489,  0x37734DD1,  0x37817FD1,  0x378FAA92,
2887     0x379DCE1D,  0x37ABEA7C,  0x37B9FFB7,  0x37C80DD7,
2888     0x37D614E6,  0x37E414EC,  0x37F20DF1,  0x38000000,
2889     0x380DEB20,  0x381BCF5A,  0x3829ACB6,  0x3837833D,
2890     0x384552F8,  0x38531BEE,  0x3860DE28,  0x386E99AF,
2891     0x387C4E89,  0x3889FCC0,  0x3897A45B,  0x38A54563,
2892     0x38B2DFDF,  0x38C073D7,  0x38CE0152,  0x38DB885A,
2893     0x38E908F4,  0x38F68329,  0x3903F701,  0x39116483,
2894     0x391ECBB6,  0x392C2CA1,  0x3939874D,  0x3946DBC0,
2895     0x39542A01,  0x39617218,  0x396EB40C,  0x397BEFE4,
2896     0x398925A7,  0x3996555C,  0x39A37F09,  0x39B0A2B7,
2897     0x39BDC06A,  0x39CAD82B,  0x39D7EA01,  0x39E4F5F0,
2898     0x39F1FC01,  0x39FEFC3A,  0x3A0BF6A2,  0x3A18EB3E,
2899     0x3A25DA16,  0x3A32C32F,  0x3A3FA691,  0x3A4C8441,
2900     0x3A595C46,  0x3A662EA6,  0x3A72FB67,  0x3A7FC28F,
2901     0x3A8C8425,  0x3A99402E,  0x3AA5F6B1,  0x3AB2A7B3,
2902     0x3ABF533A,  0x3ACBF94D,  0x3AD899F1,  0x3AE5352C,
2903     0x3AF1CB03,  0x3AFE5B7D,  0x3B0AE6A0,  0x3B176C70,
2904     0x3B23ECF3,  0x3B306830,  0x3B3CDE2C,  0x3B494EEB,
2905     0x3B55BA74,  0x3B6220CC,  0x3B6E81F9,  0x3B7ADE00,
2906     0x3B8734E5,  0x3B9386B0,  0x3B9FD364,  0x3BAC1B07,
2907     0x3BB85D9E,  0x3BC49B2F,  0x3BD0D3BE,  0x3BDD0751,
2908     0x3BE935ED,  0x3BF55F97,  0x3C018453,  0x3C0DA427,
2909     0x3C19BF17,  0x3C25D52A,  0x3C31E662,  0x3C3DF2C6,
2910     0x3C49FA5B,  0x3C55FD24,  0x3C61FB27,  0x3C6DF468,
2911     0x3C79E8ED,  0x3C85D8B9,  0x3C91C3D2,  0x3C9DAA3C,
2912     0x3CA98BFC,  0x3CB56915,  0x3CC1418E,  0x3CCD156A,
2913     0x3CD8E4AE,  0x3CE4AF5E,  0x3CF0757F,  0x3CFC3714,
2914     0x3D07F423,  0x3D13ACB0,  0x3D1F60BF,  0x3D2B1055,
2915     0x3D36BB75,  0x3D426224,  0x3D4E0466,  0x3D59A23F,
2916     0x3D653BB4,  0x3D70D0C8,  0x3D7C6180,  0x3D87EDE0,
2917     0x3D9375EC,  0x3D9EF9A8,  0x3DAA7918,  0x3DB5F43F,
2918     0x3DC16B23,  0x3DCCDDC7,  0x3DD84C2E,  0x3DE3B65D,
2919     0x3DEF1C58,  0x3DFA7E22,  0x3E05DBC0,  0x3E113535,
2920     0x3E1C8A85,  0x3E27DBB3,  0x3E3328C4,  0x3E3E71BB,
2921     0x3E49B69C,  0x3E54F76B,  0x3E60342B,  0x3E6B6CE0,
2922     0x3E76A18D,  0x3E81D237,  0x3E8CFEE0,  0x3E98278D,
2923     0x3EA34C40,  0x3EAE6CFE,  0x3EB989CA,  0x3EC4A2A8,
2924     0x3ECFB79A,  0x3EDAC8A5,  0x3EE5D5CB,  0x3EF0DF10,
2925     0x3EFBE478,  0x3F06E606,  0x3F11E3BE,  0x3F1CDDA2,
2926     0x3F27D3B6,  0x3F32C5FD,  0x3F3DB47B,  0x3F489F32,
2927     0x3F538627,  0x3F5E695C,  0x3F6948D5,  0x3F742494,
2928     0x3F7EFC9D,  0x3F89D0F3,  0x3F94A19A,  0x3F9F6E94,
2929     0x3FAA37E4,  0x3FB4FD8E,  0x3FBFBF94,  0x3FCA7DFB,
2930     0x3FD538C4,  0x3FDFEFF3,  0x3FEAA38A,  0x3FF5538E,
2931     0x40000000
2932 };
2933 
2934 
2935