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
76const 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 */
87const 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
99const 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
107const 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
141const 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
166const 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
256const uint16  huffTable_1[8] =
257{
258    0x1103,    0x0103,    0x1002,    0x1002,
259    0x0001,    0x0001,    0x0001,    0x0001
260};
261
262const 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
270const 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
279const 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
292const 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
306const 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
383const 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
455const 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
514const 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
615const 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
736const 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
877const 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
1375const 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
1800const 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
2271const 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
2756const 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 */
2800const 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