added numframes parameter
[swftools.git] / lib / bladeenc / tables.c
1 /*
2                         (c) Copyright 1998-2000 - Tord Jansson
3                         ======================================
4
5                 This file is part of the BladeEnc MP3 Encoder, based on
6                 ISO's reference code for MPEG Layer 3 compression, and might
7                 contain smaller or larger sections that are directly taken
8                 from ISO's reference code.
9
10                 All changes to the ISO reference code herein are either
11                 copyrighted by Tord Jansson (tord.jansson@swipnet.se)
12                 or sublicensed to Tord Jansson by a third party.
13
14         BladeEnc is free software; you can redistribute this file
15         and/or modify it under the terms of the GNU Lesser General Public
16         License as published by the Free Software Foundation; either
17         version 2.1 of the License, or (at your option) any later version.
18
19
20
21         ------------    Changes    ------------
22
23         2000-11-06  Andre Piotrowski
24
25         -       speed up: (for 'encode.c') traversed 'enwindow[]' needed for 'WIND_SB_CHANGE_LEVEL 3'
26 */
27
28 #include        "tables.h"
29 #include        "huffman.h"
30
31
32
33
34 /*      ========================================================================================  */
35 /*      L3 parameter tables                                                                   */
36 /*      ========================================================================================  */
37
38
39
40
41
42 #if NEW_L3PARM_TABLES
43
44 l3_parm_block                   l3_parm[3] =
45 {
46
47         {       /* sfreq_idx_44100 */
48
49                 {       /* psy_longBlock_44100_62 */
50
51                         63, /* cbmax_l */
52
53                         {       /* numlines_l */
54                                   1,  1,  1,  1,  1,  1,  1,  1,  1,
55                                   1,  1,  1,  1,  1,  1,  2,  2,  2,
56                                   2,  2,  2,  2,  2,  2,  2,  2,  2,
57                                   2,  3,  3,  3,  3,  3,  3,  3,  4,
58                                   4,  4,  5,  5,  5,  6,  6,  7,  7,
59                                   7,  9,  9,  9, 10, 10, 11, 14, 14,
60                                  15, 20, 20, 21, 27, 27, 36, 73, 18
61                         },
62                         {       /* minval */
63                                  24.5, 24.5, 24.5, 24.5, 24.5, 20.0, 20.0, 20.0, 20.0,
64                                  20.0, 20.0, 20.0, 18.0, 18.0, 18.0, 12.0,  6.0,  6.0,
65                                   3.0,  3.0,  3.0,  3.0,  0.0,  0.0,  0.0,  0.0,  0.0,
66                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
67                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
68                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
69                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0
70                         },
71                         {       /* qthr_l */
72                                    4.532,   4.532,   4.532,   0.904,   0.904,   0.090,   0.090,   0.029,   0.029,
73                                    0.029,   0.009,   0.009,   0.009,   0.009,   0.009,   0.018,   0.018,   0.018,
74                                    0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,
75                                    0.018,   0.027,   0.027,   0.027,   0.027,   0.027,   0.027,   0.027,   0.036,
76                                    0.036,   0.036,   0.045,   0.045,   0.045,   0.054,   0.054,   0.063,   0.063,
77                                    0.063,   0.081,   0.081,   0.081,   0.180,   0.180,   0.198,   0.400,   0.400,
78                                    0.429,   1.808,   1.808,   1.898,  24.416,  24.416,  32.554, 660.124, 162.770
79                         },
80
81 #if !CALC_NORM   /* do we compute more exact values? */
82                         {       /* norm_l */
83                                  0.951, 0.700, 0.681, 0.675, 0.667, 0.665, 0.664, 0.664, 0.664,
84                                  0.655, 0.616, 0.597, 0.578, 0.541, 0.575, 0.856, 0.846, 0.840,
85                                  0.822, 0.800, 0.753, 0.704, 0.674, 0.640, 0.609, 0.566, 0.535,
86                                  0.531, 0.615, 0.686, 0.650, 0.612, 0.567, 0.520, 0.513, 0.557,
87                                  0.584, 0.570, 0.579, 0.585, 0.548, 0.536, 0.550, 0.532, 0.504,
88                                  0.496, 0.517, 0.527, 0.516, 0.497, 0.489, 0.502, 0.501, 0.491,
89                                  0.497, 0.504, 0.504, 0.495, 0.486, 0.484, 0.483, 0.475, 0.515
90                         },
91 #endif
92                         {       /* bval_l */
93                                   0.000,  0.431,  0.861,  1.292,  1.723,  2.153,  2.584,  3.015,  3.445,
94                                   3.876,  4.279,  4.670,  5.057,  5.416,  5.774,  6.422,  7.026,  7.609,
95                                   8.168,  8.710,  9.207,  9.662, 10.099, 10.515, 10.917, 11.293, 11.652,
96                                  11.997, 12.394, 12.850, 13.277, 13.681, 14.062, 14.411, 14.751, 15.119,
97                                  15.508, 15.883, 16.263, 16.654, 17.020, 17.374, 17.744, 18.104, 18.447,
98                                  18.782, 19.130, 19.487, 19.838, 20.179, 20.510, 20.852, 21.196, 21.531,
99                                  21.870, 22.214, 22.558, 22.898, 23.232, 23.564, 23.897, 24.229, 24.442 
100                         }
101
102                 },
103
104                 {       /* psy_shortBlock_44100_38 */
105
106                         39, /* cbmax_s */
107
108                         {       /* numlines_s */
109                                   1,  1,  1,  1,  1,  1,  1,
110                                   1,  1,  1,  1,  1,  1,  1,
111                                   1,  1,  1,  1,  1,  2,  2,
112                                   2,  2,  2,  2,  3,  3,  3,
113                                   3,  3,  4,  4,  5,  5,  5,
114                                   7,  7,  7, 19,  0,  0,  0
115                         },
116                         {       /* qthr_s */
117                                    4.532,   0.904,   0.029,   0.009,   0.009,   0.009,   0.009,
118                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.009,   0.009,
119                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.018,   0.018,
120                                    0.018,   0.018,   0.018,   0.018,   0.027,   0.027,   0.054,
121                                    0.054,   0.054,   0.114,   0.114,   0.452,   0.452,   0.452,
122                                    6.330,   6.330,   6.330, 171.813,   0.000,   0.000,   0.000
123                         },
124 #if !CALC_NORM   /* do we compute more exact values? */
125                         {       /* norm_s */
126                                  1.000, 0.983, 0.983, 0.982, 0.985, 0.983, 0.978,
127                                  0.967, 0.948, 0.930, 0.914, 0.870, 0.845, 0.800,
128                                  0.749, 0.701, 0.653, 0.590, 0.616, 0.860, 0.823,
129                                  0.762, 0.688, 0.612, 0.594, 0.658, 0.706, 0.660,
130                                  0.606, 0.565, 0.560, 0.579, 0.567, 0.534, 0.514,
131                                  0.520, 0.518, 0.507, 0.447, 0.000, 0.000, 0.000
132                         },
133 #endif
134                         {       /* SNR_s */
135                                  -8.240, -8.240, -8.240, -8.240, -8.240, -8.240, -8.240,
136                                  -8.240, -8.240, -8.240, -7.447, -7.447, -7.447, -7.447,
137                                  -7.447, -7.447, -7.447, -7.447, -7.447, -7.447, -6.990,
138                                  -6.990, -6.990, -6.990, -6.990, -6.990, -6.990, -6.990,
139                                  -6.990, -6.990, -6.020, -6.020, -6.020, -6.020, -5.229,
140                                  -5.229, -5.229, -5.229, -4.559,  0.000,  0.000,  0.000
141                         },
142                         {       /* bval_s */
143                                   0.000,  1.723,  3.445,  5.057,  6.422,  7.609,  8.710,
144                                   9.662, 10.515, 11.293, 12.009, 12.625, 13.210, 13.748,
145                                  14.241, 14.695, 15.125, 15.508, 15.891, 16.537, 17.112,
146                                  17.621, 18.073, 18.470, 18.849, 19.271, 19.741, 20.177,
147                                  20.576, 20.950, 21.316, 21.699, 22.078, 22.438, 22.782,
148                                  23.133, 23.484, 23.828, 24.173,  0.000,  0.000,  0.000
149                         }
150
151                 },
152
153                 {       /* psy_data3_44100_20 */
154
155                         {       /* cbw_l */
156                                   3,  3,  4,  3,  3,  1,  3,
157                                   3,  3,  3,  3,  3,  4,  3,
158                                   3,  3,  3,  3,  2,  2,  2
159                         },
160                         {       /* bu_l */
161                                   0,  4,  7, 11, 14, 17, 18,
162                                  21, 24, 27, 30, 33, 36, 40,
163                                  43, 46, 49, 52, 55, 57, 59
164                         },
165                         {       /* bo_l */
166                                   4,  7, 11, 14, 17, 18, 21,
167                                  24, 27, 30, 33, 36, 40, 43,
168                                  46, 49, 52, 55, 57, 59, 61
169                         },
170                         {       /* w1_l */
171                                  1.000, 0.944, 0.389, 0.833, 0.278, 0.861, 0.083,
172                                  0.417, 0.750, 0.194, 0.426, 0.463, 0.180, 0.900,
173                                  0.532, 0.376, 0.550, 0.448, 0.597, 0.357, 0.278
174                         },
175                         {       /* w2_l */
176                                  0.056, 0.611, 0.167, 0.722, 0.139, 0.917, 0.583,
177                                  0.250, 0.805, 0.574, 0.537, 0.819, 0.100, 0.468,
178                                  0.623, 0.450, 0.552, 0.403, 0.643, 0.722, 0.960
179                         }
180
181                 },
182
183                 {       /* psy_data4_44100_11 */
184
185                         {       /* cbw_s */
186                                   2,  2,  3,  3,  4,  5,
187                                   3,  4,  3,  3,  3,  2
188                         },
189                         {       /* bu_s */
190                                   0,  3,  5,  8, 11, 15,
191                                  20, 23, 27, 30, 33, 36
192                         },
193                         {       /* bo_s */
194                                   2,  5,  8, 11, 15, 20,
195                                  23, 27, 30, 33, 36, 38
196                         },
197                         {       /* w1_s */
198                                  1.000, 0.833, 0.167, 0.500, 0.833, 0.833,
199                                  0.750, 0.417, 0.944, 0.625, 0.700, 0.833
200                         },
201                         {       /* w2_s */
202                                  0.167, 0.833, 0.500, 0.167, 0.167, 0.250,
203                                  0.583, 0.055, 0.375, 0.300, 0.167, 1.000
204                         }
205
206                 }
207
208         },
209
210         {       /* sfreq_idx_48000 */
211
212                 {       /* psy_longBlock_48000_61 */
213
214                         62, /* cbmax_l */
215
216                         {       /* numlines_l */
217                                   1,  1,  1,  1,  1,  1,  1,  1,  1,
218                                   1,  1,  1,  1,  1,  1,  1,  2,  2,
219                                   2,  2,  2,  2,  2,  2,  2,  2,  2,
220                                   2,  2,  3,  3,  3,  3,  3,  4,  4,
221                                   4,  4,  4,  5,  5,  5,  6,  7,  7,
222                                   8,  8,  8, 10, 10, 10, 13, 13, 14,
223                                  18, 18, 20, 25, 25, 35, 67, 67,  0
224                         },
225                         {       /* minval */
226                                  24.5, 24.5, 24.5, 24.5, 24.5, 20.0, 20.0, 20.0, 20.0,
227                                  20.0, 20.0, 18.0, 18.0, 18.0, 12.0, 12.0,  6.0,  6.0,
228                                   3.0,  3.0,  3.0,  3.0,  0.0,  0.0,  0.0,  0.0,  0.0,
229                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
230                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
231                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
232                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0
233                         },
234                         {       /* qthr_l */
235                                    4.532,   4.532,   4.532,   0.904,   0.904,   0.090,   0.090,   0.029,   0.029,
236                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.009,   0.009,   0.018,   0.018,
237                                    0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,
238                                    0.018,   0.018,   0.027,   0.027,   0.027,   0.027,   0.027,   0.036,   0.036,
239                                    0.036,   0.036,   0.036,   0.045,   0.045,   0.045,   0.054,   0.063,   0.063,
240                                    0.072,   0.072,   0.072,   0.180,   0.180,   0.180,   0.372,   0.372,   0.400,
241                                    1.627,   1.627,   1.808,  22.607,  22.607,  31.650, 605.867, 605.867,   0.000
242                         },
243 #if !CALC_NORM   /* do we compute more exact values? */
244                         {       /* norm_l */
245                                  0.970, 0.755, 0.738, 0.730, 0.724, 0.723, 0.723, 0.723, 0.718,
246                                  0.690, 0.660, 0.641, 0.600, 0.584, 0.532, 0.537, 0.857, 0.858,
247                                  0.853, 0.824, 0.778, 0.740, 0.709, 0.676, 0.632, 0.592, 0.553,
248                                  0.510, 0.513, 0.608, 0.673, 0.637, 0.586, 0.571, 0.616, 0.640,
249                                  0.598, 0.538, 0.512, 0.528, 0.517, 0.493, 0.499, 0.525, 0.541,
250                                  0.528, 0.510, 0.506, 0.525, 0.536, 0.518, 0.501, 0.497, 0.497,
251                                  0.495, 0.494, 0.497, 0.494, 0.487, 0.483, 0.482, 0.524, 0.000
252                         },
253 #endif
254                         {       /* bval_l */
255                                   0.000,  0.469,  0.938,  1.406,  1.875,  2.344,  2.813,  3.281,  3.750,
256                                   4.199,  4.625,  5.047,  5.438,  5.828,  6.188,  6.522,  7.174,  7.801,
257                                   8.402,  8.966,  9.484,  9.966, 10.426, 10.866, 11.279, 11.669, 12.042,
258                                  12.386, 12.721, 13.115, 13.562, 13.984, 14.371, 14.741, 15.140, 15.563,
259                                  15.962, 16.324, 16.665, 17.020, 17.373, 17.708, 18.045, 18.398, 18.762,
260                                  19.120, 19.466, 19.807, 20.159, 20.522, 20.874, 21.214, 21.553, 21.892,
261                                  22.231, 22.569, 22.909, 23.248, 23.583, 23.915, 24.246, 24.576,  0.000
262                         }
263
264                 },
265
266                 {       /* psy_shortBlock_48000_37 */
267
268                         38, /* cbmax_s */
269
270                         {       /* numlines_s */
271                                   1,  1,  1,  1,  1,  1,  1,
272                                   1,  1,  1,  1,  1,  1,  1,
273                                   1,  1,  1,  1,  1,  2,  2,
274                                   2,  2,  2,  2,  2,  3,  3,
275                                   3,  4,  4,  5,  5,  5,  7,
276                                   7, 11, 17,  0,  0,  0,  0
277                         },
278                         {       /* qthr_s */
279                                    4.532,   0.904,   0.029,   0.009,   0.009,   0.009,   0.009,
280                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.009,   0.009,
281                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.018,   0.018,
282                                    0.018,   0.018,   0.018,   0.018,   0.018,   0.054,   0.054,
283                                    0.054,   0.114,   0.114,   0.452,   0.452,   0.452,   6.330,
284                                    6.330,   9.947, 153.727,   0.000,   0.000,   0.000,   0.000
285                         },
286 #if !CALC_NORM   /* do we compute more exact values? */
287                         {       /* norm_s */
288                                  1.000, 0.989, 0.989, 0.981, 0.985, 0.984, 0.980,
289                                  0.968, 0.954, 0.929, 0.906, 0.883, 0.844, 0.792,
290                                  0.747, 0.689, 0.644, 0.592, 0.553, 0.850, 0.811,
291                                  0.736, 0.665, 0.610, 0.544, 0.528, 0.621, 0.673,
292                                  0.635, 0.626, 0.636, 0.615, 0.579, 0.551, 0.552,
293                                  0.559, 0.528, 0.479, 0.000, 0.000, 0.000, 0.000
294                         },
295 #endif
296                         {       /* SNR_s */
297                                  -8.240, -8.240, -8.240, -8.240, -8.240, -8.240, -8.240,
298                                  -8.240, -8.240, -8.240, -7.447, -7.447, -7.447, -7.447,
299                                  -7.447, -7.447, -7.447, -7.447, -7.447, -7.447, -6.990,
300                                  -6.990, -6.990, -6.990, -6.990, -6.990, -6.990, -6.990,
301                                  -6.990, -6.990, -6.020, -6.020, -6.020, -6.020, -5.229,
302                                  -5.229, -5.229, -5.229,  0.000,  0.000,  0.000,  0.000
303                         },
304                         {       /* bval_s */
305                                   0.000,  1.875,  3.750,  5.438,  6.857,  8.109,  9.237,
306                                  10.202, 11.083, 11.865, 12.554, 13.195, 13.781, 14.309,
307                                  14.803, 15.250, 15.667, 16.068, 16.409, 17.045, 17.607,
308                                  18.097, 18.528, 18.931, 19.295, 19.636, 20.038, 20.486,
309                                  20.900, 21.306, 21.722, 22.128, 22.513, 22.877, 23.241,
310                                  23.616, 23.974, 24.313,  0.000,  0.000,  0.000,  0.000
311                         }
312
313                 },
314
315                 {       /* psy_data3_48000_20 */
316
317                         {       /* cbw_l */
318                                   3,  3,  4,  3,  3,  2,  3,
319                                   2,  3,  3,  3,  3,  4,  3,
320                                   3,  3,  3,  2,  3,  2,  1
321                         },
322                         {       /* bu_l */
323                                   0,  4,  7, 11, 14, 17, 19,
324                                  22, 24, 27, 30, 33, 36, 40,
325                                  43, 46, 49, 52, 54, 57, 59
326                         },
327                         {       /* bo_l */
328                                   4,  7, 11, 14, 17, 19, 22,
329                                  24, 27, 30, 33, 36, 40, 43,
330                                  46, 49, 52, 54, 57, 59, 60
331                         },
332                         {       /* w1_l */
333                                  1.000, 0.944, 0.389, 0.833, 0.278, 0.361, 0.583,
334                                  0.917, 0.250, 0.583, 0.352, 0.389, 0.375, 0.856,
335                                  0.611, 0.840, 0.783, 0.816, 0.114, 0.687, 0.548
336                         },
337                         {       /* w2_l */
338                                  0.056, 0.611, 0.167, 0.722, 0.639, 0.417, 0.083,
339                                  0.750, 0.417, 0.648, 0.611, 0.625, 0.144, 0.389,
340                                  0.160, 0.217, 0.184, 0.886, 0.313, 0.452, 0.908
341                         }
342
343                 },
344
345                 {       /* psy_data4_48000_11 */
346
347                         {       /* cbw_s */
348                                   2,  2,  3,  3,  4,  4,
349                                   3,  4,  4,  2,  3,  2
350                         },
351                         {       /* bu_s */
352                                   0,  3,  5,  8, 11, 15,
353                                  19, 22, 26, 30, 32, 35
354                         },
355                         {       /* bo_s */
356                                   2,  5,  8, 11, 15, 19,
357                                  22, 26, 30, 32, 35, 37
358                         },
359                         {       /* w1_s */
360                                  1.000, 0.833, 0.167, 0.500, 0.833, 0.833,
361                                  0.417, 0.083, 0.055, 0.958, 0.433, 0.833
362                         },
363                         {       /* w2_s */
364                                  0.167, 0.833, 0.500, 0.167, 0.167, 0.583,
365                                  0.917, 0.944, 0.042, 0.567, 0.167, 0.618
366                         }
367
368                 }
369
370         },
371
372         {       /* sfreq_idx_32000 */
373
374                 {       /* psy_longBlock_32000_58 */
375
376                         59, /* cbmax_l */
377
378                         {       /* numlines_l */
379                                   2,  2,  2,  2,  2,  2,  2,  2,  2,
380                                   2,  2,  2,  2,  2,  2,  2,  2,  2,
381                                   3,  3,  3,  3,  3,  3,  3,  3,  3,
382                                   4,  4,  4,  5,  5,  5,  5,  5,  6,
383                                   6,  6,  8,  8,  8, 10, 10, 10, 12,
384                                  12, 13, 14, 14, 16, 20, 20, 23, 27,
385                                  27, 32, 37, 37, 12,  0,  0,  0,  0
386                         },
387                         {       /* minval */
388                                  24.5, 24.5, 24.5, 20.0, 20.0, 20.0, 20.0, 20.0, 18.0,
389                                  18.0, 12.0, 12.0,  6.0,  6.0,  6.0,  3.0,  3.0,  3.0,
390                                   3.0,  3.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
391                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
392                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
393                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,
394                                   0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0,  0.0
395                         },
396                         {       /* qthr_l */
397                                    4.532,   4.532,   1.809,   0.181,   0.181,   0.057,   0.018,   0.018,   0.018,
398                                    0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.018,
399                                    0.027,   0.027,   0.027,   0.027,   0.027,   0.027,   0.027,   0.027,   0.027,
400                                    0.036,   0.036,   0.036,   0.045,   0.045,   0.045,   0.045,   0.045,   0.054,
401                                    0.054,   0.054,   0.072,   0.072,   0.072,   0.090,   0.090,   0.090,   0.109,
402                                    0.109,   0.118,   0.252,   0.252,   0.288,   0.572,   0.572,   0.658,   2.441,
403                                    2.441,   2.893,  33.458,  33.458,  10.851,   0.000,   0.000,   0.000,   0.000
404                         },
405 #if !CALC_NORM   /* do we compute more exact values? */
406                         {       /* norm_l */
407                                  0.997, 0.893, 0.881, 0.873, 0.872, 0.871, 0.860, 0.839, 0.812,
408                                  0.784, 0.741, 0.697, 0.674, 0.651, 0.633, 0.611, 0.589, 0.575,
409                                  0.654, 0.724, 0.701, 0.673, 0.631, 0.592, 0.553, 0.510, 0.506,
410                                  0.562, 0.598, 0.589, 0.607, 0.620, 0.580, 0.532, 0.517, 0.517,
411                                  0.509, 0.506, 0.522, 0.531, 0.519, 0.512, 0.509, 0.498, 0.494,
412                                  0.501, 0.508, 0.502, 0.493, 0.497, 0.506, 0.510, 0.504, 0.496,
413                                  0.493, 0.490, 0.482, 0.458, 0.500, 0.000, 0.000, 0.000, 0.000
414                         },
415 #endif
416                         {       /* bval_l */
417                                   0.313,  0.938,  1.563,  2.188,  2.813,  3.438,  4.045,  4.625,  5.173,
418                                   5.698,  6.185,  6.634,  7.070,  7.492,  7.905,  8.305,  8.695,  9.064,
419                                   9.484,  9.966, 10.426, 10.866, 11.279, 11.669, 12.042, 12.386, 12.721,
420                                  13.091, 13.488, 13.873, 14.268, 14.679, 15.067, 15.424, 15.771, 16.120,
421                                  16.466, 16.807, 17.158, 17.518, 17.869, 18.215, 18.563, 18.902, 19.239,
422                                  19.580, 19.925, 20.269, 20.606, 20.944, 21.288, 21.635, 21.980, 22.319,
423                                  22.656, 22.993, 23.326, 23.656, 23.937,  0.000,  0.000,  0.000,  0.000
424                         }
425
426                 },
427
428                 {       /* psy_shortBlock_32000_41 */
429
430                         42, /* cbmax_s */
431
432                         {       /* numlines_s */
433                                   1,  1,  1,  1,  1,  1,  1,
434                                   1,  1,  1,  1,  1,  1,  1,
435                                   1,  1,  1,  1,  1,  2,  2,
436                                   2,  2,  2,  2,  2,  2,  3,
437                                   3,  3,  3,  3,  4,  4,  4,
438                                   5,  5,  6,  7,  7,  8, 10
439                         },
440                         {       /* qthr_s */
441                                    4.532,   0.904,   0.090,   0.029,   0.009,   0.009,   0.009,
442                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.009,   0.009,
443                                    0.009,   0.009,   0.009,   0.009,   0.009,   0.018,   0.018,
444                                    0.018,   0.018,   0.018,   0.018,   0.018,   0.018,   0.027,
445                                    0.027,   0.027,   0.027,   0.027,   0.072,   0.072,   0.072,
446                                    0.143,   0.143,   0.172,   0.633,   0.633,   0.723,   9.043
447                         },
448 #if !CALC_NORM   /* do we compute more exact values? */
449                         {       /* norm_s */
450                                  1.000, 0.985, 0.983, 0.983, 0.981, 0.975, 0.959,
451                                  0.944, 0.933, 0.920, 0.892, 0.863, 0.839, 0.786,
452                                  0.755, 0.698, 0.673, 0.605, 0.629, 0.883, 0.858,
453                                  0.829, 0.767, 0.705, 0.637, 0.564, 0.550, 0.603,
454                                  0.635, 0.592, 0.533, 0.518, 0.568, 0.594, 0.568,
455                                  0.536, 0.522, 0.542, 0.539, 0.519, 0.514, 0.518
456                         },
457 #endif
458                         {       /* SNR_s */
459                                  -8.240, -8.240, -8.240, -8.240, -8.240, -8.240, -8.240,
460                                  -8.240, -8.240, -8.240, -7.447, -7.447, -7.447, -7.447,
461                                  -7.447, -7.447, -7.447, -7.447, -7.447, -7.447, -6.990,
462                                  -6.990, -6.990, -6.990, -6.990, -6.990, -6.990, -6.990,
463                                  -6.990, -6.990, -6.020, -6.020, -6.020, -6.020, -5.229,
464                                  -5.229, -5.229, -5.229, -4.559, -4.559, -3.980, -3.980
465                         },
466                         {       /* bval_s */
467                                   0.000,  1.250,  2.500,  3.750,  4.909,  5.958,  6.857,
468                                   7.700,  8.500,  9.237,  9.895, 10.500, 11.083, 11.604,
469                                  12.107, 12.554, 13.000, 13.391, 13.781, 14.474, 15.096,
470                                  15.667, 16.177, 16.636, 17.057, 17.429, 17.786, 18.177,
471                                  18.597, 18.994, 19.352, 19.693, 20.066, 20.462, 20.841,
472                                  21.201, 21.549, 21.911, 22.275, 22.625, 22.971, 23.321
473                         }
474
475                 },
476
477                 {       /* psy_data3_32000_20 */
478
479                         {       /* cbw_l */
480                                   1,  2,  2,  1,  2,  2,  3,
481                                   2,  3,  3,  4,  4,  4,  3,
482                                   4,  3,  4,  3,  3,  2,  2
483                         },
484                         {       /* bu_l */
485                                   0,  2,  4,  6,  7,  9, 11,
486                                  14, 16, 19, 22, 26, 30, 34,
487                                  37, 41, 44, 48, 51, 54, 56
488                         },
489                         {       /* bo_l */
490                                   2,  4,  6,  7,  9, 11, 14,
491                                  16, 19, 22, 26, 30, 34, 37,
492                                  41, 44, 48, 51, 54, 56, 58
493                         },
494                         {       /* w1_l */
495                                  1.000, 0.472, 0.694, 0.917, 0.139, 0.361, 0.583,
496                                  0.917, 0.250, 0.130, 0.167, 0.611, 0.522, 0.967,
497                                  0.083, 0.383, 0.005, 0.726, 0.519, 0.739, 0.116
498                         },
499                         {       /* w2_l */
500                                  0.528, 0.305, 0.083, 0.861, 0.639, 0.417, 0.083,
501                                  0.750, 0.870, 0.833, 0.389, 0.478, 0.033, 0.917,
502                                  0.617, 0.995, 0.274, 0.480, 0.261, 0.884, 1.000
503                         }
504
505                 },
506
507                 {       /* psy_data4_32000_11 */
508
509                         {       /* cbw_s */
510                                   2,  2,  3,  3,  4,  5,
511                                   4,  5,  4,  4,  3,  1
512                         },
513                         {       /* bu_s */
514                                   0,  3,  5,  8, 11, 15,
515                                  20, 24, 29, 33, 37, 40
516                         },
517                         {       /* bo_s */
518                                   2,  5,  8, 11, 15, 20,
519                                  24, 29, 33, 37, 40, 41
520                         },
521                         {       /* w1_s */
522                                  1.000, 0.833, 0.167, 0.500, 0.833, 0.833,
523                                  0.750, 0.750, 0.944, 0.625, 0.528, 0.062
524                         },
525                         {       /* w2_s */
526                                  0.167, 0.833, 0.500, 0.167, 0.167, 0.250,
527                                  0.250, 0.055, 0.375, 0.472, 0.937, 1.000
528                         }
529
530                 }
531
532         }
533
534 };
535
536 #else   /* NEW_L3PARM_TABLES */
537
538 psyDataElem                             psy_longBlock_48000_61[62] =
539 {
540         { 1 ,24.5 ,   4.532 ,0.970 ,   0.000 },
541         { 1 ,24.5 ,   4.532 ,0.755 ,   0.469 },
542         { 1 ,24.5 ,   4.532 ,0.738 ,   0.938 },
543         { 1 ,24.5 ,   0.904 ,0.730 ,   1.406 },
544         { 1 ,24.5 ,   0.904 ,0.724 ,   1.875 },
545         { 1 ,20.0 ,   0.090 ,0.723 ,   2.344 },
546         { 1 ,20.0 ,   0.090 ,0.723 ,   2.813 },
547         { 1 ,20.0 ,   0.029 ,0.723 ,   3.281 },
548         { 1 ,20.0 ,   0.029 ,0.718 ,   3.750 },
549         { 1 ,20.0 ,   0.009 ,0.690 ,   4.199 },
550         { 1 ,20.0 ,   0.009 ,0.660 ,   4.625 },
551         { 1 ,18.0 ,   0.009 ,0.641 ,   5.047 },
552         { 1 ,18.0 ,   0.009 ,0.600 ,   5.438 },
553         { 1 ,18.0 ,   0.009 ,0.584 ,   5.828 },
554         { 1 ,12.0 ,   0.009 ,0.532 ,   6.188 },
555         { 1 ,12.0 ,   0.009 ,0.537 ,   6.522 },
556         { 2 , 6.0 ,   0.018 ,0.857 ,   7.174 },
557         { 2 , 6.0 ,   0.018 ,0.858 ,   7.801 },
558         { 2 , 3.0 ,   0.018 ,0.853 ,   8.402 },
559         { 2 , 3.0 ,   0.018 ,0.824 ,   8.966 },
560         { 2 , 3.0 ,   0.018 ,0.778 ,   9.484 },
561         { 2 , 3.0 ,   0.018 ,0.740 ,   9.966 },
562         { 2 , 0.0 ,   0.018 ,0.709 ,  10.426 },
563
564         { 2 , 0.0 ,   0.018 ,0.676 ,  10.866 },
565         { 2 , 0.0 ,   0.018 ,0.632 ,  11.279 },
566         { 2 , 0.0 ,   0.018 ,0.592 ,  11.669 },
567         { 2 , 0.0 ,   0.018 ,0.553 ,  12.042 },
568         { 2 , 0.0 ,   0.018 ,0.510 ,  12.386 },
569         { 2 , 0.0 ,   0.018 ,0.513 ,  12.721 },
570         { 3 , 0.0 ,   0.027 ,0.608 ,  13.115 },
571         { 3 , 0.0 ,   0.027 ,0.673 ,  13.562 },
572         { 3 , 0.0 ,   0.027 ,0.637 ,  13.984 },
573         { 3 , 0.0 ,   0.027 ,0.586 ,  14.371 },
574         { 3 , 0.0 ,   0.027 ,0.571 ,  14.741 },
575         { 4 , 0.0 ,   0.036 ,0.616 ,  15.140 },
576         { 4 , 0.0 ,   0.036 ,0.640 ,  15.563 },
577         { 4 , 0.0 ,   0.036 ,0.598 ,  15.962 },
578         { 4 , 0.0 ,   0.036 ,0.538 ,  16.324 },
579         { 4 , 0.0 ,   0.036 ,0.512 ,  16.665 },
580         { 5 , 0.0 ,   0.045 ,0.528 ,  17.020 },
581         { 5 , 0.0 ,   0.045 ,0.517 ,  17.373 },
582         { 5 , 0.0 ,   0.045 ,0.493 ,  17.708 },
583         { 6 , 0.0 ,   0.054 ,0.499 ,  18.045 },
584         { 7 , 0.0 ,   0.063 ,0.525 ,  18.398 },
585         { 7 , 0.0 ,   0.063 ,0.541 ,  18.762 },
586         { 8 , 0.0 ,   0.072 ,0.528 ,  19.120 },
587         { 8 , 0.0 ,   0.072 ,0.510 ,  19.466 },
588         { 8 , 0.0 ,   0.072 ,0.506 ,  19.807 },
589         {10 , 0.0 ,   0.180 ,0.525 ,  20.159 },
590         {10 , 0.0 ,   0.180 ,0.536 ,  20.522 },
591         {10 , 0.0 ,   0.180 ,0.518 ,  20.874 },
592         {13 , 0.0 ,   0.372 ,0.501 ,  21.214 },
593         {13 , 0.0 ,   0.372 ,0.497 ,  21.553 },
594         {14 , 0.0 ,   0.400 ,0.497 ,  21.892 },
595         {18 , 0.0 ,   1.627 ,0.495 ,  22.231 },
596         {18 , 0.0 ,   1.627 ,0.494 ,  22.569 },
597         {20 , 0.0 ,   1.808 ,0.497 ,  22.909 },
598         {25 , 0.0 ,  22.607 ,0.494 ,  23.248 },
599         {25 , 0.0 ,  22.607 ,0.487 ,  23.583 },
600         {35 , 0.0 ,  31.650 ,0.483 ,  23.915 },
601         {67 , 0.0 , 605.867 ,0.482 ,  24.246 },
602         {67 , 0.0 , 605.867 ,0.524 ,  24.576 } 
603 };
604
605 psyDataElem                             psy_longBlock_44100_62[63] =
606 {
607         { 1 ,24.5 ,   4.532 ,0.951 ,   0.000 },
608         { 1 ,24.5 ,   4.532 ,0.700 ,   0.431 },
609         { 1 ,24.5 ,   4.532 ,0.681 ,   0.861 },
610         { 1 ,24.5 ,   0.904 ,0.675 ,   1.292 },
611         { 1 ,24.5 ,   0.904 ,0.667 ,   1.723 },
612         { 1 ,20.0 ,   0.090 ,0.665 ,   2.153 },
613         { 1 ,20.0 ,   0.090 ,0.664 ,   2.584 },
614         { 1 ,20.0 ,   0.029 ,0.664 ,   3.015 },
615         { 1 ,20.0 ,   0.029 ,0.664 ,   3.445 },
616         { 1 ,20.0 ,   0.029 ,0.655 ,   3.876 },
617         { 1 ,20.0 ,   0.009 ,0.616 ,   4.279 },
618         { 1 ,20.0 ,   0.009 ,0.597 ,   4.670 },
619         { 1 ,18.0 ,   0.009 ,0.578 ,   5.057 },
620         { 1 ,18.0 ,   0.009 ,0.541 ,   5.416 },
621         { 1 ,18.0 ,   0.009 ,0.575 ,   5.774 },
622         { 2 ,12.0 ,   0.018 ,0.856 ,   6.422 },
623         { 2 , 6.0 ,   0.018 ,0.846 ,   7.026 },
624         { 2 , 6.0 ,   0.018 ,0.840 ,   7.609 },
625         { 2 , 3.0 ,   0.018 ,0.822 ,   8.168 },
626         { 2 , 3.0 ,   0.018 ,0.800 ,   8.710 },
627         { 2 , 3.0 ,   0.018 ,0.753 ,   9.207 },
628         { 2 , 3.0 ,   0.018 ,0.704 ,   9.662 },
629         { 2 , 0.0 ,   0.018 ,0.674 ,  10.099 },
630         { 2 , 0.0 ,   0.018 ,0.640 ,  10.515 },
631         { 2 , 0.0 ,   0.018 ,0.609 ,  10.917 },
632         { 2 , 0.0 ,   0.018 ,0.566 ,  11.293 },
633         { 2 , 0.0 ,   0.018 ,0.535 ,  11.652 },
634         { 2 , 0.0 ,   0.018 ,0.531 ,  11.997 },
635         { 3 , 0.0 ,   0.027 ,0.615 ,  12.394 },
636         { 3 , 0.0 ,   0.027 ,0.686 ,  12.850 },
637         { 3 , 0.0 ,   0.027 ,0.650 ,  13.277 },
638         { 3 , 0.0 ,   0.027 ,0.612 ,  13.681 },
639         { 3 , 0.0 ,   0.027 ,0.567 ,  14.062 },
640         { 3 , 0.0 ,   0.027 ,0.520 ,  14.411 },
641         { 3 , 0.0 ,   0.027 ,0.513 ,  14.751 },
642         { 4 , 0.0 ,   0.036 ,0.557 ,  15.119 },
643         { 4 , 0.0 ,   0.036 ,0.584 ,  15.508 },
644         { 4 , 0.0 ,   0.036 ,0.570 ,  15.883 },
645         { 5 , 0.0 ,   0.045 ,0.579 ,  16.263 },
646         { 5 , 0.0 ,   0.045 ,0.585 ,  16.654 },
647         { 5 , 0.0 ,   0.045 ,0.548 ,  17.020 },
648         { 6 , 0.0 ,   0.054 ,0.536 ,  17.374 },
649         { 6 , 0.0 ,   0.054 ,0.550 ,  17.744 },
650         { 7 , 0.0 ,   0.063 ,0.532 ,  18.104 },
651         { 7 , 0.0 ,   0.063 ,0.504 ,  18.447 },
652         { 7 , 0.0 ,   0.063 ,0.496 ,  18.782 },
653         { 9 , 0.0 ,   0.081 ,0.517 ,  19.130 },
654         { 9 , 0.0 ,   0.081 ,0.527 ,  19.487 },
655         { 9 , 0.0 ,   0.081 ,0.516 ,  19.838 },
656         {10 , 0.0 ,   0.180 ,0.497 ,  20.179 },
657         {10 , 0.0 ,   0.180 ,0.489 ,  20.510 },
658         {11 , 0.0 ,   0.198 ,0.502 ,  20.852 },
659         {14 , 0.0 ,   0.400 ,0.501 ,  21.196 },
660         {14 , 0.0 ,   0.400 ,0.491 ,  21.531 },
661         {15 , 0.0 ,   0.429 ,0.497 ,  21.870 },
662         {20 , 0.0 ,   1.808 ,0.504 ,  22.214 },
663         {20 , 0.0 ,   1.808 ,0.504 ,  22.558 },
664         {21 , 0.0 ,   1.898 ,0.495 ,  22.898 },
665         {27 , 0.0 ,  24.416 ,0.486 ,  23.232 },
666         {27 , 0.0 ,  24.416 ,0.484 ,  23.564 },
667         {36 , 0.0 ,  32.554 ,0.483 ,  23.897 },
668         {73 , 0.0 , 660.124 ,0.475 ,  24.229 },
669         {18 , 0.0 , 162.770 ,0.515 ,  24.442 } 
670 };
671
672 psyDataElem                             psy_longBlock_32000_58[59] =
673 {
674         { 2 ,24.5 ,   4.532 ,0.997 ,   0.313 },
675         { 2 ,24.5 ,   4.532 ,0.893 ,   0.938 },
676         { 2 ,24.5 ,   1.809 ,0.881 ,   1.563 },
677         { 2 ,20.0 ,   0.181 ,0.873 ,   2.188 },
678         { 2 ,20.0 ,   0.181 ,0.872 ,   2.813 },
679         { 2 ,20.0 ,   0.057 ,0.871 ,   3.438 },
680         { 2 ,20.0 ,   0.018 ,0.860 ,   4.045 },
681         { 2 ,20.0 ,   0.018 ,0.839 ,   4.625 },
682         { 2 ,18.0 ,   0.018 ,0.812 ,   5.173 },
683         { 2 ,18.0 ,   0.018 ,0.784 ,   5.698 },
684         { 2 ,12.0 ,   0.018 ,0.741 ,   6.185 },
685         { 2 ,12.0 ,   0.018 ,0.697 ,   6.634 },
686         { 2 , 6.0 ,   0.018 ,0.674 ,   7.070 },
687         { 2 , 6.0 ,   0.018 ,0.651 ,   7.492 },
688         { 2 , 6.0 ,   0.018 ,0.633 ,   7.905 },
689         { 2 , 3.0 ,   0.018 ,0.611 ,   8.305 },
690         { 2 , 3.0 ,   0.018 ,0.589 ,   8.695 },
691         { 2 , 3.0 ,   0.018 ,0.575 ,   9.064 },
692         { 3 , 3.0 ,   0.027 ,0.654 ,   9.484 },
693         { 3 , 3.0 ,   0.027 ,0.724 ,   9.966 },
694         { 3 , 0.0 ,   0.027 ,0.701 ,  10.426 },
695         { 3 , 0.0 ,   0.027 ,0.673 ,  10.866 },
696         { 3 , 0.0 ,   0.027 ,0.631 ,  11.279 },
697         { 3 , 0.0 ,   0.027 ,0.592 ,  11.669 },
698         { 3 , 0.0 ,   0.027 ,0.553 ,  12.042 },
699         { 3 , 0.0 ,   0.027 ,0.510 ,  12.386 },
700         { 3 , 0.0 ,   0.027 ,0.506 ,  12.721 },
701         { 4 , 0.0 ,   0.036 ,0.562 ,  13.091 },
702         { 4 , 0.0 ,   0.036 ,0.598 ,  13.488 },
703         { 4 , 0.0 ,   0.036 ,0.589 ,  13.873 },
704         { 5 , 0.0 ,   0.045 ,0.607 ,  14.268 },
705         { 5 , 0.0 ,   0.045 ,0.620 ,  14.679 },
706         { 5 , 0.0 ,   0.045 ,0.580 ,  15.067 },
707         { 5 , 0.0 ,   0.045 ,0.532 ,  15.424 },
708         { 5 , 0.0 ,   0.045 ,0.517 ,  15.771 },
709         { 6 , 0.0 ,   0.054 ,0.517 ,  16.120 },
710         { 6 , 0.0 ,   0.054 ,0.509 ,  16.466 },
711         { 6 , 0.0 ,   0.054 ,0.506 ,  16.807 },
712         { 8 , 0.0 ,   0.072 ,0.522 ,  17.158 },
713         { 8 , 0.0 ,   0.072 ,0.531 ,  17.518 },
714         { 8 , 0.0 ,   0.072 ,0.519 ,  17.869 },
715         {10 , 0.0 ,   0.090 ,0.512 ,  18.215 },
716         {10 , 0.0 ,   0.090 ,0.509 ,  18.563 },
717         {10 , 0.0 ,   0.090 ,0.498 ,  18.902 },
718         {12 , 0.0 ,   0.109 ,0.494 ,  19.239 },
719         {12 , 0.0 ,   0.109 ,0.501 ,  19.580 },
720         {13 , 0.0 ,   0.118 ,0.508 ,  19.925 },
721         {14 , 0.0 ,   0.252 ,0.502 ,  20.269 },
722         {14 , 0.0 ,   0.252 ,0.493 ,  20.606 },
723         {16 , 0.0 ,   0.288 ,0.497 ,  20.944 },
724         {20 , 0.0 ,   0.572 ,0.506 ,  21.288 },
725         {20 , 0.0 ,   0.572 ,0.510 ,  21.635 },
726         {23 , 0.0 ,   0.658 ,0.504 ,  21.980 },
727         {27 , 0.0 ,   2.441 ,0.496 ,  22.319 },
728         {27 , 0.0 ,   2.441 ,0.493 ,  22.656 },
729         {32 , 0.0 ,   2.893 ,0.490 ,  22.993 },
730         {37 , 0.0 ,  33.458 ,0.482 ,  23.326 },
731         {37 , 0.0 ,  33.458 ,0.458 ,  23.656 },
732         {12 , 0.0 ,  10.851 ,0.500 ,  23.937 } 
733 };
734
735
736 psyDataElem2                    psy_shortBlock_48000_37[38] =
737 {
738         { 1 ,   4.532 ,1.000 ,-8.240 ,   0.000 },
739         { 1 ,   0.904 ,0.989 ,-8.240 ,   1.875 },
740         { 1 ,   0.029 ,0.989 ,-8.240 ,   3.750 },
741         { 1 ,   0.009 ,0.981 ,-8.240 ,   5.438 },
742         { 1 ,   0.009 ,0.985 ,-8.240 ,   6.857 },
743         { 1 ,   0.009 ,0.984 ,-8.240 ,   8.109 },
744         { 1 ,   0.009 ,0.980 ,-8.240 ,   9.237 },
745         { 1 ,   0.009 ,0.968 ,-8.240 ,  10.202 },
746         { 1 ,   0.009 ,0.954 ,-8.240 ,  11.083 },
747         { 1 ,   0.009 ,0.929 ,-8.240 ,  11.865 },
748         { 1 ,   0.009 ,0.906 ,-7.447 ,  12.554 },
749         { 1 ,   0.009 ,0.883 ,-7.447 ,  13.195 },
750         { 1 ,   0.009 ,0.844 ,-7.447 ,  13.781 },
751         { 1 ,   0.009 ,0.792 ,-7.447 ,  14.309 },
752         { 1 ,   0.009 ,0.747 ,-7.447 ,  14.803 },
753         { 1 ,   0.009 ,0.689 ,-7.447 ,  15.250 },
754         { 1 ,   0.009 ,0.644 ,-7.447 ,  15.667 },
755         { 1 ,   0.009 ,0.592 ,-7.447 ,  16.068 },
756         { 1 ,   0.009 ,0.553 ,-7.447 ,  16.409 },
757         { 2 ,   0.018 ,0.850 ,-7.447 ,  17.045 },
758         { 2 ,   0.018 ,0.811 ,-6.990 ,  17.607 },
759         { 2 ,   0.018 ,0.736 ,-6.990 ,  18.097 },
760         { 2 ,   0.018 ,0.665 ,-6.990 ,  18.528 },
761         { 2 ,   0.018 ,0.610 ,-6.990 ,  18.931 },
762         { 2 ,   0.018 ,0.544 ,-6.990 ,  19.295 },
763         { 2 ,   0.018 ,0.528 ,-6.990 ,  19.636 },
764         { 3 ,   0.054 ,0.621 ,-6.990 ,  20.038 },
765         { 3 ,   0.054 ,0.673 ,-6.990 ,  20.486 },
766         { 3 ,   0.054 ,0.635 ,-6.990 ,  20.900 },
767         { 4 ,   0.114 ,0.626 ,-6.990 ,  21.306 },
768         { 4 ,   0.114 ,0.636 ,-6.020 ,  21.722 },
769         { 5 ,   0.452 ,0.615 ,-6.020 ,  22.128 },
770         { 5 ,   0.452 ,0.579 ,-6.020 ,  22.513 },
771         { 5 ,   0.452 ,0.551 ,-6.020 ,  22.877 },
772         { 7 ,   6.330 ,0.552 ,-5.229 ,  23.241 },
773         { 7 ,   6.330 ,0.559 ,-5.229 ,  23.616 },
774         {11 ,   9.947 ,0.528 ,-5.229 ,  23.974 },
775         {17 , 153.727 ,0.479 ,-5.229 ,  24.313 }
776 };
777
778 psyDataElem2                    psy_shortBlock_44100_38[39] =
779 {
780         { 1 ,   4.532 ,1.000 ,-8.240 ,   0.000 },
781         { 1 ,   0.904 ,0.983 ,-8.240 ,   1.723 },
782         { 1 ,   0.029 ,0.983 ,-8.240 ,   3.445 },
783         { 1 ,   0.009 ,0.982 ,-8.240 ,   5.057 },
784         { 1 ,   0.009 ,0.985 ,-8.240 ,   6.422 },
785         { 1 ,   0.009 ,0.983 ,-8.240 ,   7.609 },
786         { 1 ,   0.009 ,0.978 ,-8.240 ,   8.710 },
787         { 1 ,   0.009 ,0.967 ,-8.240 ,   9.662 },
788         { 1 ,   0.009 ,0.948 ,-8.240 ,  10.515 },
789         { 1 ,   0.009 ,0.930 ,-8.240 ,  11.293 },
790         { 1 ,   0.009 ,0.914 ,-7.447 ,  12.009 },
791         { 1 ,   0.009 ,0.870 ,-7.447 ,  12.625 },
792         { 1 ,   0.009 ,0.845 ,-7.447 ,  13.210 },
793         { 1 ,   0.009 ,0.800 ,-7.447 ,  13.748 },
794         { 1 ,   0.009 ,0.749 ,-7.447 ,  14.241 },
795         { 1 ,   0.009 ,0.701 ,-7.447 ,  14.695 },
796         { 1 ,   0.009 ,0.653 ,-7.447 ,  15.125 },
797         { 1 ,   0.009 ,0.590 ,-7.447 ,  15.508 },
798         { 1 ,   0.009 ,0.616 ,-7.447 ,  15.891 },
799         { 2 ,   0.018 ,0.860 ,-7.447 ,  16.537 },
800         { 2 ,   0.018 ,0.823 ,-6.990 ,  17.112 },
801         { 2 ,   0.018 ,0.762 ,-6.990 ,  17.621 },
802         { 2 ,   0.018 ,0.688 ,-6.990 ,  18.073 },
803         { 2 ,   0.018 ,0.612 ,-6.990 ,  18.470 },
804         { 2 ,   0.018 ,0.594 ,-6.990 ,  18.849 },
805         { 3 ,   0.027 ,0.658 ,-6.990 ,  19.271 },
806         { 3 ,   0.027 ,0.706 ,-6.990 ,  19.741 },
807         { 3 ,   0.054 ,0.660 ,-6.990 ,  20.177 },
808         { 3 ,   0.054 ,0.606 ,-6.990 ,  20.576 },
809         { 3 ,   0.054 ,0.565 ,-6.990 ,  20.950 },
810         { 4 ,   0.114 ,0.560 ,-6.020 ,  21.316 },
811         { 4 ,   0.114 ,0.579 ,-6.020 ,  21.699 },
812         { 5 ,   0.452 ,0.567 ,-6.020 ,  22.078 },
813         { 5 ,   0.452 ,0.534 ,-6.020 ,  22.438 },
814         { 5 ,   0.452 ,0.514 ,-5.229 ,  22.782 },
815         { 7 ,   6.330 ,0.520 ,-5.229 ,  23.133 },
816         { 7 ,   6.330 ,0.518 ,-5.229 ,  23.484 },
817         { 7 ,   6.330 ,0.507 ,-5.229 ,  23.828 },
818         {19 , 171.813 ,0.447 ,-4.559 ,  24.173 }
819 };
820
821 psyDataElem2                    psy_shortBlock_32000_41[42] =
822 {
823         { 1 ,   4.532 ,1.000 ,-8.240 ,   0.000 },
824         { 1 ,   0.904 ,0.985 ,-8.240 ,   1.250 },
825         { 1 ,   0.090 ,0.983 ,-8.240 ,   2.500 },
826         { 1 ,   0.029 ,0.983 ,-8.240 ,   3.750 },
827         { 1 ,   0.009 ,0.981 ,-8.240 ,   4.909 },
828         { 1 ,   0.009 ,0.975 ,-8.240 ,   5.958 },
829         { 1 ,   0.009 ,0.959 ,-8.240 ,   6.857 },
830         { 1 ,   0.009 ,0.944 ,-8.240 ,   7.700 },
831         { 1 ,   0.009 ,0.933 ,-8.240 ,   8.500 },
832         { 1 ,   0.009 ,0.920 ,-8.240 ,   9.237 },
833         { 1 ,   0.009 ,0.892 ,-7.447 ,   9.895 },
834         { 1 ,   0.009 ,0.863 ,-7.447 ,  10.500 },
835         { 1 ,   0.009 ,0.839 ,-7.447 ,  11.083 },
836         { 1 ,   0.009 ,0.786 ,-7.447 ,  11.604 },
837         { 1 ,   0.009 ,0.755 ,-7.447 ,  12.107 },
838         { 1 ,   0.009 ,0.698 ,-7.447 ,  12.554 },
839         { 1 ,   0.009 ,0.673 ,-7.447 ,  13.000 },
840         { 1 ,   0.009 ,0.605 ,-7.447 ,  13.391 },
841         { 1 ,   0.009 ,0.629 ,-7.447 ,  13.781 },
842         { 2 ,   0.018 ,0.883 ,-7.447 ,  14.474 },
843         { 2 ,   0.018 ,0.858 ,-6.990 ,  15.096 },
844         { 2 ,   0.018 ,0.829 ,-6.990 ,  15.667 },
845         { 2 ,   0.018 ,0.767 ,-6.990 ,  16.177 },
846         { 2 ,   0.018 ,0.705 ,-6.990 ,  16.636 },
847         { 2 ,   0.018 ,0.637 ,-6.990 ,  17.057 },
848         { 2 ,   0.018 ,0.564 ,-6.990 ,  17.429 },
849         { 2 ,   0.018 ,0.550 ,-6.990 ,  17.786 },
850         { 3 ,   0.027 ,0.603 ,-6.990 ,  18.177 },
851         { 3 ,   0.027 ,0.635 ,-6.990 ,  18.597 },
852         { 3 ,   0.027 ,0.592 ,-6.990 ,  18.994 },
853         { 3 ,   0.027 ,0.533 ,-6.020 ,  19.352 },
854         { 3 ,   0.027 ,0.518 ,-6.020 ,  19.693 },
855         { 4 ,   0.072 ,0.568 ,-6.020 ,  20.066 },
856         { 4 ,   0.072 ,0.594 ,-6.020 ,  20.462 },
857         { 4 ,   0.072 ,0.568 ,-5.229 ,  20.841 },
858         { 5 ,   0.143 ,0.536 ,-5.229 ,  21.201 },
859         { 5 ,   0.143 ,0.522 ,-5.229 ,  21.549 },
860         { 6 ,   0.172 ,0.542 ,-5.229 ,  21.911 },
861         { 7 ,   0.633 ,0.539 ,-4.559 ,  22.275 },
862         { 7 ,   0.633 ,0.519 ,-4.559 ,  22.625 },
863         { 8 ,   0.723 ,0.514 ,-3.980 ,  22.971 },
864         {10 ,   9.043 ,0.518 ,-3.980 ,  23.321 }
865 };
866
867
868 psyDataElem3                    psy_data3_48000_20[21] =
869 {
870         { 3 , 0 , 4 ,1.000 ,0.056 },
871         { 3 , 4 , 7 ,0.944 ,0.611 },
872         { 4 , 7 ,11 ,0.389 ,0.167 },
873         { 3 ,11 ,14 ,0.833 ,0.722 },
874         { 3 ,14 ,17 ,0.278 ,0.639 },
875         { 2 ,17 ,19 ,0.361 ,0.417 },
876         { 3 ,19 ,22 ,0.583 ,0.083 },
877         { 2 ,22 ,24 ,0.917 ,0.750 },
878         { 3 ,24 ,27 ,0.250 ,0.417 },
879         { 3 ,27 ,30 ,0.583 ,0.648 },
880         { 3 ,30 ,33 ,0.352 ,0.611 },
881         { 3 ,33 ,36 ,0.389 ,0.625 },
882         { 4 ,36 ,40 ,0.375 ,0.144 },
883         { 3 ,40 ,43 ,0.856 ,0.389 },
884         { 3 ,43 ,46 ,0.611 ,0.160 },
885         { 3 ,46 ,49 ,0.840 ,0.217 },
886         { 3 ,49 ,52 ,0.783 ,0.184 },
887         { 2 ,52 ,54 ,0.816 ,0.886 },
888         { 3 ,54 ,57 ,0.114 ,0.313 },
889         { 2 ,57 ,59 ,0.687 ,0.452 },
890         { 1 ,59 ,60 ,0.548 ,0.908 }
891 };
892
893 psyDataElem3                    psy_data3_44100_20[21] =
894 {
895         { 3 , 0 , 4 ,1.000 ,0.056 },
896         { 3 , 4 , 7 ,0.944 ,0.611 },
897         { 4 , 7 ,11 ,0.389 ,0.167 },
898         { 3 ,11 ,14 ,0.833 ,0.722 },
899         { 3 ,14 ,17 ,0.278 ,0.139 },
900         { 1 ,17 ,18 ,0.861 ,0.917 },
901         { 3 ,18 ,21 ,0.083 ,0.583 },
902         { 3 ,21 ,24 ,0.417 ,0.250 },
903         { 3 ,24 ,27 ,0.750 ,0.805 },
904         { 3 ,27 ,30 ,0.194 ,0.574 },
905         { 3 ,30 ,33 ,0.426 ,0.537 },
906         { 3 ,33 ,36 ,0.463 ,0.819 },
907         { 4 ,36 ,40 ,0.180 ,0.100 },
908         { 3 ,40 ,43 ,0.900 ,0.468 },
909         { 3 ,43 ,46 ,0.532 ,0.623 },
910         { 3 ,46 ,49 ,0.376 ,0.450 },
911         { 3 ,49 ,52 ,0.550 ,0.552 },
912         { 3 ,52 ,55 ,0.448 ,0.403 },
913         { 2 ,55 ,57 ,0.597 ,0.643 },
914         { 2 ,57 ,59 ,0.357 ,0.722 },
915         { 2 ,59 ,61 ,0.278 ,0.960 }
916 };
917
918 psyDataElem3                    psy_data3_32000_20[21] =
919 {
920         { 1 , 0 , 2 ,1.000 ,0.528 },
921         { 2 , 2 , 4 ,0.472 ,0.305 },
922         { 2 , 4 , 6 ,0.694 ,0.083 },
923         { 1 , 6 , 7 ,0.917 ,0.861 },
924         { 2 , 7 , 9 ,0.139 ,0.639 },
925         { 2 , 9 ,11 ,0.361 ,0.417 },
926         { 3 ,11 ,14 ,0.583 ,0.083 },
927         { 2 ,14 ,16 ,0.917 ,0.750 },
928         { 3 ,16 ,19 ,0.250 ,0.870 },
929         { 3 ,19 ,22 ,0.130 ,0.833 },
930         { 4 ,22 ,26 ,0.167 ,0.389 },
931         { 4 ,26 ,30 ,0.611 ,0.478 },
932         { 4 ,30 ,34 ,0.522 ,0.033 },
933         { 3 ,34 ,37 ,0.967 ,0.917 },
934         { 4 ,37 ,41 ,0.083 ,0.617 },
935         { 3 ,41 ,44 ,0.383 ,0.995 },
936         { 4 ,44 ,48 ,0.005 ,0.274 },
937         { 3 ,48 ,51 ,0.726 ,0.480 },
938         { 3 ,51 ,54 ,0.519 ,0.261 },
939         { 2 ,54 ,56 ,0.739 ,0.884 },
940         { 2 ,56 ,58 ,0.116 ,1.000 }
941 };
942
943
944 psyDataElem3                    psy_data4_48000_11[12] =
945 {
946         { 2 , 0 , 2 ,1.000 ,0.167 },
947         { 2 , 3 , 5 ,0.833 ,0.833 },
948         { 3 , 5 , 8 ,0.167 ,0.500 },
949         { 3 , 8 ,11 ,0.500 ,0.167 },
950         { 4 ,11 ,15 ,0.833 ,0.167 },
951         { 4 ,15 ,19 ,0.833 ,0.583 },
952         { 3 ,19 ,22 ,0.417 ,0.917 },
953         { 4 ,22 ,26 ,0.083 ,0.944 },
954         { 4 ,26 ,30 ,0.055 ,0.042 },
955         { 2 ,30 ,32 ,0.958 ,0.567 },
956         { 3 ,32 ,35 ,0.433 ,0.167 },
957         { 2 ,35 ,37 ,0.833 ,0.618 }
958 };
959
960 psyDataElem3                    psy_data4_44100_11[12] =
961 {
962         { 2 , 0 , 2 ,1.000 ,0.167 },
963         { 2 , 3 , 5 ,0.833 ,0.833 },
964         { 3 , 5 , 8 ,0.167 ,0.500 },
965         { 3 , 8 ,11 ,0.500 ,0.167 },
966         { 4 ,11 ,15 ,0.833 ,0.167 },
967         { 5 ,15 ,20 ,0.833 ,0.250 },
968         { 3 ,20 ,23 ,0.750 ,0.583 },
969         { 4 ,23 ,27 ,0.417 ,0.055 },
970         { 3 ,27 ,30 ,0.944 ,0.375 },
971         { 3 ,30 ,33 ,0.625 ,0.300 },
972         { 3 ,33 ,36 ,0.700 ,0.167 },
973         { 2 ,36 ,38 ,0.833 ,1.000 }
974 };
975
976 psyDataElem3                    psy_data4_32000_11[12] =
977 {
978         { 2 , 0 , 2 ,1.000 ,0.167 },
979         { 2 , 3 , 5 ,0.833 ,0.833 },
980         { 3 , 5 , 8 ,0.167 ,0.500 },
981         { 3 , 8 ,11 ,0.500 ,0.167 },
982         { 4 ,11 ,15 ,0.833 ,0.167 },
983         { 5 ,15 ,20 ,0.833 ,0.250 },
984         { 4 ,20 ,24 ,0.750 ,0.250 },
985         { 5 ,24 ,29 ,0.750 ,0.055 },
986         { 4 ,29 ,33 ,0.944 ,0.375 },
987         { 4 ,33 ,37 ,0.625 ,0.472 },
988         { 3 ,37 ,40 ,0.528 ,0.937 },
989         { 1 ,40 ,41 ,0.062 ,1.000 }
990 };
991
992 #endif   /* NEW_L3PARM_TABLES */
993
994
995
996
997
998 /*=============================================================================*/
999
1000
1001
1002
1003
1004 #if 1   /* WIND_SB_CHANGE_LEVEL == 3 */
1005
1006 double                                  enwindow[512] =
1007 {
1008          0.000000000, 0.000101566, 0.000971317, 0.003134727, 0.035780907, 0.003134727, 0.000971317, 0.000101566,
1009         -0.000000477, 0.000103951, 0.000953674, 0.002841473, 0.035758972, 0.003401756, 0.000983715, 0.000099182,
1010         -0.000000477, 0.000105858, 0.000930786, 0.002521515, 0.035694122, 0.003643036, 0.000991821, 0.000096321,
1011         -0.000000477, 0.000107288, 0.000902653, 0.002174854, 0.035586357, 0.003858566, 0.000995159, 0.000093460,
1012         -0.000000477, 0.000108242, 0.000868797, 0.001800537, 0.035435200, 0.004049301, 0.000994205, 0.000090599,
1013         -0.000000477, 0.000108719, 0.000829220, 0.001399517, 0.035242081, 0.004215240, 0.000989437, 0.000087261,
1014         -0.000000477, 0.000108719, 0.000783920, 0.000971317, 0.035007000, 0.004357815, 0.000980854, 0.000083923,
1015         -0.000000954, 0.000108242, 0.000731945, 0.000515938, 0.034730434, 0.004477024, 0.000968933, 0.000080585,
1016
1017         -0.000000954, 0.000106812, 0.000674248, 0.000033379, 0.034412861, 0.004573822, 0.000954151, 0.000076771,
1018         -0.000000954, 0.000105381, 0.000610352,-0.000475883, 0.034055710, 0.004649162, 0.000935555, 0.000073433,
1019         -0.000000954, 0.000102520, 0.000539303,-0.001011848, 0.033659935, 0.004703045, 0.000915051, 0.000070095,
1020         -0.000001431, 0.000099182, 0.000462532,-0.001573563, 0.033225536, 0.004737377, 0.000891685, 0.000066280,
1021         -0.000001431, 0.000095367, 0.000378609,-0.002161503, 0.032754898, 0.004752159, 0.000866413, 0.000062943,
1022         -0.000001907, 0.000090122, 0.000288486,-0.002774239, 0.032248020, 0.004748821, 0.000838757, 0.000059605,
1023         -0.000001907, 0.000084400, 0.000191689,-0.003411293, 0.031706810, 0.004728317, 0.000809669, 0.000055790,
1024         -0.000002384, 0.000077724, 0.000088215,-0.004072189, 0.031132698, 0.004691124, 0.000779152, 0.000052929,
1025
1026         -0.000002384, 0.000069618,-0.000021458,-0.004756451, 0.030526638, 0.004638195, 0.000747204, 0.000049591,
1027         -0.000002861, 0.000060558,-0.000137329,-0.005462170, 0.029890060, 0.004570484, 0.000714302, 0.000046253,
1028         -0.000003338, 0.000050545,-0.000259876,-0.006189346, 0.029224873, 0.004489899, 0.000680923, 0.000043392,
1029         -0.000003338, 0.000039577,-0.000388145,-0.006937027, 0.028532982, 0.004395962, 0.000646591, 0.000040531,
1030         -0.000003815, 0.000027180,-0.000522137,-0.007703304, 0.027815342, 0.004290581, 0.000611782, 0.000037670,
1031         -0.000004292, 0.000013828,-0.000661850,-0.008487225, 0.027073860, 0.004174709, 0.000576973, 0.000034809,
1032         -0.000004768,-0.000000954,-0.000806808,-0.009287834, 0.026310921, 0.004048824, 0.000542164, 0.000032425,
1033         -0.000005245,-0.000017166,-0.000956535,-0.010103703, 0.025527000, 0.003914356, 0.000507355, 0.000030041,
1034
1035         -0.000006199,-0.000034332,-0.001111031,-0.010933399, 0.024725437, 0.003771782, 0.000472546, 0.000027657,
1036         -0.000006676,-0.000052929,-0.001269817,-0.011775017, 0.023907185, 0.003622532, 0.000438213, 0.000025272,
1037         -0.000007629,-0.000072956,-0.001432419,-0.012627602, 0.023074150, 0.003467083, 0.000404358, 0.000023365,
1038         -0.000008106,-0.000093937,-0.001597881,-0.013489246, 0.022228718, 0.003306866, 0.000371456, 0.000021458,
1039         -0.000009060,-0.000116348,-0.001766682,-0.014358521, 0.021372318, 0.003141880, 0.000339031, 0.000019550,
1040         -0.000010014,-0.000140190,-0.001937389,-0.015233517, 0.020506859, 0.002974033, 0.000307560, 0.000018120,
1041         -0.000011444,-0.000165462,-0.002110004,-0.016112804, 0.019634247, 0.002803326, 0.000277042, 0.000016689,
1042         -0.000012398,-0.000191212,-0.002283096,-0.016994476, 0.018756866, 0.002630711, 0.000247478, 0.000014782,
1043
1044         -0.000013828,-0.000218868,-0.002457142,-0.017876148, 0.017876148, 0.002457142, 0.000218868, 0.000013828,
1045         -0.000014782,-0.000247478,-0.002630711,-0.018756866, 0.016994476, 0.002283096, 0.000191212, 0.000012398,
1046         -0.000016689,-0.000277042,-0.002803326,-0.019634247, 0.016112804, 0.002110004, 0.000165462, 0.000011444,
1047         -0.000018120,-0.000307560,-0.002974033,-0.020506859, 0.015233517, 0.001937389, 0.000140190, 0.000010014,
1048         -0.000019550,-0.000339031,-0.003141880,-0.021372318, 0.014358521, 0.001766682, 0.000116348, 0.000009060,
1049         -0.000021458,-0.000371456,-0.003306866,-0.022228718, 0.013489246, 0.001597881, 0.000093937, 0.000008106,
1050         -0.000023365,-0.000404358,-0.003467083,-0.023074150, 0.012627602, 0.001432419, 0.000072956, 0.000007629,
1051         -0.000025272,-0.000438213,-0.003622532,-0.023907185, 0.011775017, 0.001269817, 0.000052929, 0.000006676,
1052
1053         -0.000027657,-0.000472546,-0.003771782,-0.024725437, 0.010933399, 0.001111031, 0.000034332, 0.000006199,
1054         -0.000030041,-0.000507355,-0.003914356,-0.025527000, 0.010103703, 0.000956535, 0.000017166, 0.000005245,
1055         -0.000032425,-0.000542164,-0.004048824,-0.026310921, 0.009287834, 0.000806808, 0.000000954, 0.000004768,
1056         -0.000034809,-0.000576973,-0.004174709,-0.027073860, 0.008487225, 0.000661850,-0.000013828, 0.000004292,
1057         -0.000037670,-0.000611782,-0.004290581,-0.027815342, 0.007703304, 0.000522137,-0.000027180, 0.000003815,
1058         -0.000040531,-0.000646591,-0.004395962,-0.028532982, 0.006937027, 0.000388145,-0.000039577, 0.000003338,
1059         -0.000043392,-0.000680923,-0.004489899,-0.029224873, 0.006189346, 0.000259876,-0.000050545, 0.000003338,
1060         -0.000046253,-0.000714302,-0.004570484,-0.029890060, 0.005462170, 0.000137329,-0.000060558, 0.000002861,
1061
1062         -0.000049591,-0.000747204,-0.004638195,-0.030526638, 0.004756451, 0.000021458,-0.000069618, 0.000002384,
1063         -0.000052929,-0.000779152,-0.004691124,-0.031132698, 0.004072189,-0.000088215,-0.000077724, 0.000002384,
1064         -0.000055790,-0.000809669,-0.004728317,-0.031706810, 0.003411293,-0.000191689,-0.000084400, 0.000001907,
1065         -0.000059605,-0.000838757,-0.004748821,-0.032248020, 0.002774239,-0.000288486,-0.000090122, 0.000001907,
1066         -0.000062943,-0.000866413,-0.004752159,-0.032754898, 0.002161503,-0.000378609,-0.000095367, 0.000001431,
1067         -0.000066280,-0.000891685,-0.004737377,-0.033225536, 0.001573563,-0.000462532,-0.000099182, 0.000001431,
1068         -0.000070095,-0.000915051,-0.004703045,-0.033659935, 0.001011848,-0.000539303,-0.000102520, 0.000000954,
1069         -0.000073433,-0.000935555,-0.004649162,-0.034055710, 0.000475883,-0.000610352,-0.000105381, 0.000000954,
1070
1071         -0.000076771,-0.000954151,-0.004573822,-0.034412861,-0.000033379,-0.000674248,-0.000106812, 0.000000954,
1072         -0.000080585,-0.000968933,-0.004477024,-0.034730434,-0.000515938,-0.000731945,-0.000108242, 0.000000954,
1073         -0.000083923,-0.000980854,-0.004357815,-0.035007000,-0.000971317,-0.000783920,-0.000108719, 0.000000477,
1074         -0.000087261,-0.000989437,-0.004215240,-0.035242081,-0.001399517,-0.000829220,-0.000108719, 0.000000477,
1075         -0.000090599,-0.000994205,-0.004049301,-0.035435200,-0.001800537,-0.000868797,-0.000108242, 0.000000477,
1076         -0.000093460,-0.000995159,-0.003858566,-0.035586357,-0.002174854,-0.000902653,-0.000107288, 0.000000477,
1077         -0.000096321,-0.000991821,-0.003643036,-0.035694122,-0.002521515,-0.000930786,-0.000105858, 0.000000477,
1078         -0.000099182,-0.000983715,-0.003401756,-0.035758972,-0.002841473,-0.000953674,-0.000103951, 0.000000477
1079 };
1080
1081 #else   /* WIND_SB_CHANGE_LEVEL < 3 */
1082
1083 double                                  enwindow[512] =
1084 {
1085          0.000000000,-0.000000477,-0.000000477,-0.000000477,-0.000000477,-0.000000477,-0.000000477,-0.000000954,
1086         -0.000000954,-0.000000954,-0.000000954,-0.000001431,-0.000001431,-0.000001907,-0.000001907,-0.000002384,
1087         -0.000002384,-0.000002861,-0.000003338,-0.000003338,-0.000003815,-0.000004292,-0.000004768,-0.000005245,
1088         -0.000006199,-0.000006676,-0.000007629,-0.000008106,-0.000009060,-0.000010014,-0.000011444,-0.000012398,
1089         -0.000013828,-0.000014782,-0.000016689,-0.000018120,-0.000019550,-0.000021458,-0.000023365,-0.000025272,
1090         -0.000027657,-0.000030041,-0.000032425,-0.000034809,-0.000037670,-0.000040531,-0.000043392,-0.000046253,
1091         -0.000049591,-0.000052929,-0.000055790,-0.000059605,-0.000062943,-0.000066280,-0.000070095,-0.000073433,
1092         -0.000076771,-0.000080585,-0.000083923,-0.000087261,-0.000090599,-0.000093460,-0.000096321,-0.000099182,
1093
1094          0.000101566, 0.000103951, 0.000105858, 0.000107288, 0.000108242, 0.000108719, 0.000108719, 0.000108242,
1095          0.000106812, 0.000105381, 0.000102520, 0.000099182, 0.000095367, 0.000090122, 0.000084400, 0.000077724,
1096          0.000069618, 0.000060558, 0.000050545, 0.000039577, 0.000027180, 0.000013828,-0.000000954,-0.000017166,
1097         -0.000034332,-0.000052929,-0.000072956,-0.000093937,-0.000116348,-0.000140190,-0.000165462,-0.000191212,
1098         -0.000218868,-0.000247478,-0.000277042,-0.000307560,-0.000339031,-0.000371456,-0.000404358,-0.000438213,
1099         -0.000472546,-0.000507355,-0.000542164,-0.000576973,-0.000611782,-0.000646591,-0.000680923,-0.000714302,
1100         -0.000747204,-0.000779152,-0.000809669,-0.000838757,-0.000866413,-0.000891685,-0.000915051,-0.000935555,
1101         -0.000954151,-0.000968933,-0.000980854,-0.000989437,-0.000994205,-0.000995159,-0.000991821,-0.000983715,
1102
1103          0.000971317, 0.000953674, 0.000930786, 0.000902653, 0.000868797, 0.000829220, 0.000783920, 0.000731945,
1104          0.000674248, 0.000610352, 0.000539303, 0.000462532, 0.000378609, 0.000288486, 0.000191689, 0.000088215,
1105         -0.000021458,-0.000137329,-0.000259876,-0.000388145,-0.000522137,-0.000661850,-0.000806808,-0.000956535,
1106         -0.001111031,-0.001269817,-0.001432419,-0.001597881,-0.001766682,-0.001937389,-0.002110004,-0.002283096,
1107         -0.002457142,-0.002630711,-0.002803326,-0.002974033,-0.003141880,-0.003306866,-0.003467083,-0.003622532,
1108         -0.003771782,-0.003914356,-0.004048824,-0.004174709,-0.004290581,-0.004395962,-0.004489899,-0.004570484,
1109         -0.004638195,-0.004691124,-0.004728317,-0.004748821,-0.004752159,-0.004737377,-0.004703045,-0.004649162,
1110         -0.004573822,-0.004477024,-0.004357815,-0.004215240,-0.004049301,-0.003858566,-0.003643036,-0.003401756,
1111
1112          0.003134727, 0.002841473, 0.002521515, 0.002174854, 0.001800537, 0.001399517, 0.000971317, 0.000515938,
1113          0.000033379,-0.000475883,-0.001011848,-0.001573563,-0.002161503,-0.002774239,-0.003411293,-0.004072189,
1114         -0.004756451,-0.005462170,-0.006189346,-0.006937027,-0.007703304,-0.008487225,-0.009287834,-0.010103703,
1115         -0.010933399,-0.011775017,-0.012627602,-0.013489246,-0.014358521,-0.015233517,-0.016112804,-0.016994476,
1116         -0.017876148,-0.018756866,-0.019634247,-0.020506859,-0.021372318,-0.022228718,-0.023074150,-0.023907185,
1117         -0.024725437,-0.025527000,-0.026310921,-0.027073860,-0.027815342,-0.028532982,-0.029224873,-0.029890060,
1118         -0.030526638,-0.031132698,-0.031706810,-0.032248020,-0.032754898,-0.033225536,-0.033659935,-0.034055710,
1119         -0.034412861,-0.034730434,-0.035007000,-0.035242081,-0.035435200,-0.035586357,-0.035694122,-0.035758972,
1120
1121          0.035780907, 0.035758972, 0.035694122, 0.035586357, 0.035435200, 0.035242081, 0.035007000, 0.034730434,
1122          0.034412861, 0.034055710, 0.033659935, 0.033225536, 0.032754898, 0.032248020, 0.031706810, 0.031132698,
1123          0.030526638, 0.029890060, 0.029224873, 0.028532982, 0.027815342, 0.027073860, 0.026310921, 0.025527000,
1124          0.024725437, 0.023907185, 0.023074150, 0.022228718, 0.021372318, 0.020506859, 0.019634247, 0.018756866,
1125          0.017876148, 0.016994476, 0.016112804, 0.015233517, 0.014358521, 0.013489246, 0.012627602, 0.011775017,
1126          0.010933399, 0.010103703, 0.009287834, 0.008487225, 0.007703304, 0.006937027, 0.006189346, 0.005462170,
1127          0.004756451, 0.004072189, 0.003411293, 0.002774239, 0.002161503, 0.001573563, 0.001011848, 0.000475883,
1128         -0.000033379,-0.000515938,-0.000971317,-0.001399517,-0.001800537,-0.002174854,-0.002521515,-0.002841473,
1129
1130          0.003134727, 0.003401756, 0.003643036, 0.003858566, 0.004049301, 0.004215240, 0.004357815, 0.004477024,
1131          0.004573822, 0.004649162, 0.004703045, 0.004737377, 0.004752159, 0.004748821, 0.004728317, 0.004691124,
1132          0.004638195, 0.004570484, 0.004489899, 0.004395962, 0.004290581, 0.004174709, 0.004048824, 0.003914356,
1133          0.003771782, 0.003622532, 0.003467083, 0.003306866, 0.003141880, 0.002974033, 0.002803326, 0.002630711,
1134          0.002457142, 0.002283096, 0.002110004, 0.001937389, 0.001766682, 0.001597881, 0.001432419, 0.001269817,
1135          0.001111031, 0.000956535, 0.000806808, 0.000661850, 0.000522137, 0.000388145, 0.000259876, 0.000137329,
1136          0.000021458,-0.000088215,-0.000191689,-0.000288486,-0.000378609,-0.000462532,-0.000539303,-0.000610352,
1137         -0.000674248,-0.000731945,-0.000783920,-0.000829220,-0.000868797,-0.000902653,-0.000930786,-0.000953674,
1138
1139          0.000971317, 0.000983715, 0.000991821, 0.000995159, 0.000994205, 0.000989437, 0.000980854, 0.000968933,
1140          0.000954151, 0.000935555, 0.000915051, 0.000891685, 0.000866413, 0.000838757, 0.000809669, 0.000779152,
1141          0.000747204, 0.000714302, 0.000680923, 0.000646591, 0.000611782, 0.000576973, 0.000542164, 0.000507355,
1142          0.000472546, 0.000438213, 0.000404358, 0.000371456, 0.000339031, 0.000307560, 0.000277042, 0.000247478,
1143          0.000218868, 0.000191212, 0.000165462, 0.000140190, 0.000116348, 0.000093937, 0.000072956, 0.000052929,
1144          0.000034332, 0.000017166, 0.000000954,-0.000013828,-0.000027180,-0.000039577,-0.000050545,-0.000060558,
1145         -0.000069618,-0.000077724,-0.000084400,-0.000090122,-0.000095367,-0.000099182,-0.000102520,-0.000105381,
1146         -0.000106812,-0.000108242,-0.000108719,-0.000108719,-0.000108242,-0.000107288,-0.000105858,-0.000103951,
1147
1148          0.000101566, 0.000099182, 0.000096321, 0.000093460, 0.000090599, 0.000087261, 0.000083923, 0.000080585,
1149          0.000076771, 0.000073433, 0.000070095, 0.000066280, 0.000062943, 0.000059605, 0.000055790, 0.000052929,
1150          0.000049591, 0.000046253, 0.000043392, 0.000040531, 0.000037670, 0.000034809, 0.000032425, 0.000030041,
1151          0.000027657, 0.000025272, 0.000023365, 0.000021458, 0.000019550, 0.000018120, 0.000016689, 0.000014782,
1152          0.000013828, 0.000012398, 0.000011444, 0.000010014, 0.000009060, 0.000008106, 0.000007629, 0.000006676,
1153          0.000006199, 0.000005245, 0.000004768, 0.000004292, 0.000003815, 0.000003338, 0.000003338, 0.000002861,
1154          0.000002384, 0.000002384, 0.000001907, 0.000001907, 0.000001431, 0.000001431, 0.000000954, 0.000000954,
1155          0.000000954, 0.000000954, 0.000000477, 0.000000477, 0.000000477, 0.000000477, 0.000000477, 0.000000477
1156 };
1157
1158 #endif
1159
1160
1161
1162
1163
1164 /*=============================================================================*/
1165 /*                                       >>> HUFFMAN ENCODING RELATED TABLES <<<                                   */
1166 /*=============================================================================*/
1167
1168
1169 unsigned int huff_tab1[2*2] = {
1170   1, 1,
1171   1, 0
1172 };
1173
1174 unsigned int huff_tab2[3*3] = {
1175     1, 2, 1,
1176     3, 1, 1,
1177     3, 2, 0
1178 };
1179
1180 unsigned int huff_tab3[3*3] = {
1181     3, 2, 1,
1182     1, 1, 1,
1183     3, 2, 0
1184 };
1185
1186 unsigned int huff_tab5[4*4] = {
1187     1, 2, 6, 5,
1188     3, 1, 4, 4,
1189     7, 5, 7, 1,
1190     6, 1, 1, 0
1191 };
1192
1193 unsigned int huff_tab6[4*4] = {
1194     7, 3, 5, 1,
1195     6, 2, 3, 2,
1196     5, 4, 4, 1,
1197     3, 3, 2, 0
1198 };
1199
1200 unsigned int huff_tab7[6*6] = {
1201     1, 2, 10, 19, 16, 10,
1202     3, 3, 7, 10, 5, 3,
1203     11, 4, 13, 17, 8, 4,
1204     12, 11, 18, 15, 11, 2,
1205     7, 6, 9, 14, 3, 1,
1206     6, 4, 5, 3, 2, 0
1207 };
1208
1209 unsigned int huff_tab8[6*6] = {
1210     3, 4, 6, 18, 12, 5,
1211     5, 1, 2, 16, 9, 3,
1212     7, 3, 5, 14, 7, 3,
1213     19, 17, 15, 13, 10, 4,
1214     13, 5, 8, 11, 5, 1,
1215     12, 4, 4, 1, 1, 0
1216 };
1217
1218 unsigned int huff_tab9[6*6] = {
1219     7, 5, 9, 14, 15, 7,
1220     6, 4, 5, 5, 6, 7,
1221     7, 6, 8, 8, 8, 5,
1222     15, 6, 9, 10, 5, 1,
1223     11, 7, 9, 6, 4, 1,
1224     14, 4, 6, 2, 6, 0
1225 };
1226
1227 unsigned int huff_tab10[8*8] = {
1228     1, 2, 10, 23, 35, 30, 12, 17,
1229     3, 3, 8, 12, 18, 21, 12, 7,
1230     11, 9, 15, 21, 32, 40, 19, 6,
1231     14, 13, 22, 34, 46, 23, 18, 7,
1232     20, 19, 33, 47, 27, 22, 9, 3,
1233     31, 22, 41, 26, 21, 20, 5, 3,
1234     14, 13, 10, 11, 16, 6, 5, 1,
1235     9, 8, 7, 8, 4, 4, 2, 0
1236 };
1237
1238 unsigned int huff_tab11[8*8] = {
1239     3, 4, 10, 24, 34, 33, 21, 15,
1240     5, 3, 4, 10, 32, 17, 11, 10,
1241     11, 7, 13, 18, 30, 31, 20, 5,
1242     25, 11, 19, 59, 27, 18, 12, 5,
1243     35, 33, 31, 58, 30, 16, 7, 5,
1244     28, 26, 32, 19, 17, 15, 8, 14,
1245     14, 12, 9, 13, 14, 9, 4, 1,
1246     11, 4, 6, 6, 6, 3, 2, 0
1247 };
1248
1249 unsigned int huff_tab12[8*8] = {
1250     9, 6, 16, 33, 41, 39, 38, 26,
1251     7, 5, 6, 9, 23, 16, 26, 11,
1252     17, 7, 11, 14, 21, 30, 10, 7,
1253     17, 10, 15, 12, 18, 28, 14, 5,
1254     32, 13, 22, 19, 18, 16, 9, 5,
1255     40, 17, 31, 29, 17, 13, 4, 2,
1256     27, 12, 11, 15, 10, 7, 4, 1,
1257     27, 12, 8, 12, 6, 3, 1, 0
1258 };
1259
1260 unsigned int huff_tab13[16*16] = {
1261     1, 5, 14, 21, 34, 51, 46, 71, 42, 52, 68, 52, 67, 44, 43, 19,
1262     3, 4, 12, 19, 31, 26, 44, 33, 31, 24, 32, 24, 31, 35, 22, 14,
1263     15, 13, 23, 36, 59, 49, 77, 65, 29, 40, 30, 40, 27, 33, 42, 16,
1264     22, 20, 37, 61, 56, 79, 73, 64, 43, 76, 56, 37, 26, 31, 25, 14,
1265     35, 16, 60, 57, 97, 75, 114, 91, 54, 73, 55, 41, 48, 53, 23, 24,
1266     58, 27, 50, 96, 76, 70, 93, 84, 77, 58, 79, 29, 74, 49, 41, 17,
1267     47, 45, 78, 74, 115, 94, 90, 79, 69, 83, 71, 50, 59, 38, 36, 15,
1268     72, 34, 56, 95, 92, 85, 91, 90, 86, 73, 77, 65, 51, 44, 43, 42,
1269     43, 20, 30, 44, 55, 78, 72, 87, 78, 61, 46, 54, 37, 30, 20, 16,
1270     53, 25, 41, 37, 44, 59, 54, 81, 66, 76, 57, 54, 37, 18, 39, 11,
1271     35, 33, 31, 57, 42, 82, 72, 80, 47, 58, 55, 21, 22, 26, 38, 22,
1272     53, 25, 23, 38, 70, 60, 51, 36, 55, 26, 34, 23, 27, 14, 9, 7,
1273     34, 32, 28, 39, 49, 75, 30, 52, 48, 40, 52, 28, 18, 17, 9, 5,
1274     45, 21, 34, 64, 56, 50, 49, 45, 31, 19, 12, 15, 10, 7, 6, 3,
1275     48, 23, 20, 39, 36, 35, 53, 21, 16, 23, 13, 10, 6, 1, 4, 2,
1276     16, 15, 17, 27, 25, 20, 29, 11, 17, 12, 16, 8, 1, 1, 0, 1
1277 };
1278
1279 unsigned int huff_tab15[16*16] = {
1280     7, 12, 18, 53, 47, 76, 124, 108, 89, 123, 108, 119, 107, 81, 122, 63,
1281     13, 5, 16, 27, 46, 36, 61, 51, 42, 70, 52, 83, 65, 41, 59, 36,
1282     19, 17, 15, 24, 41, 34, 59, 48, 40, 64, 50, 78, 62, 80, 56, 33,
1283     29, 28, 25, 43, 39, 63, 55, 93, 76, 59, 93, 72, 54, 75, 50, 29,
1284     52, 22, 42, 40, 67, 57, 95, 79, 72, 57, 89, 69, 49, 66, 46, 27,
1285     77, 37, 35, 66, 58, 52, 91, 74, 62, 48, 79, 63, 90, 62, 40, 38,
1286     125, 32, 60, 56, 50, 92, 78, 65, 55, 87, 71, 51, 73, 51, 70, 30,
1287     109, 53, 49, 94, 88, 75, 66, 122, 91, 73, 56, 42, 64, 44, 21, 25,
1288     90, 43, 41, 77, 73, 63, 56, 92, 77, 66, 47, 67, 48, 53, 36, 20,
1289     71, 34, 67, 60, 58, 49, 88, 76, 67, 106, 71, 54, 38, 39, 23, 15,
1290     109, 53, 51, 47, 90, 82, 58, 57, 48, 72, 57, 41, 23, 27, 62, 9,
1291     86, 42, 40, 37, 70, 64, 52, 43, 70, 55, 42, 25, 29, 18, 11, 11,
1292     118, 68, 30, 55, 50, 46, 74, 65, 49, 39, 24, 16, 22, 13, 14, 7,
1293     91, 44, 39, 38, 34, 63, 52, 45, 31, 52, 28, 19, 14, 8, 9, 3,
1294     123, 60, 58, 53, 47, 43, 32, 22, 37, 24, 17, 12, 15, 10, 2, 1,
1295     71, 37, 34, 30, 28, 20, 17, 26, 21, 16, 10, 6, 8, 6, 2, 0
1296 };
1297
1298 unsigned int huff_tab16[16*16] = {
1299     1, 5, 14, 44, 74, 63, 110, 93, 172, 149, 138, 242, 225, 195, 376, 17,
1300     3, 4, 12, 20, 35, 62, 53, 47, 83, 75, 68, 119, 201, 107, 207, 9,
1301     15, 13, 23, 38, 67, 58, 103, 90, 161, 72, 127, 117, 110, 209, 206, 16,
1302     45, 21, 39, 69, 64, 114, 99, 87, 158, 140, 252, 212, 199, 387, 365, 26,
1303     75, 36, 68, 65, 115, 101, 179, 164, 155, 264, 246, 226, 395, 382, 362, 9,
1304     66, 30, 59, 56, 102, 185, 173, 265, 142, 253, 232, 400, 388, 378, 445, 16,
1305     111, 54, 52, 100, 184, 178, 160, 133, 257, 244, 228, 217, 385, 366, 715, 10,
1306     98, 48, 91, 88, 165, 157, 148, 261, 248, 407, 397, 372, 380, 889, 884, 8,
1307     85, 84, 81, 159, 156, 143, 260, 249, 427, 401, 392, 383, 727, 713, 708, 7,
1308     154, 76, 73, 141, 131, 256, 245, 426, 406, 394, 384, 735, 359, 710, 352, 11,
1309     139, 129, 67, 125, 247, 233, 229, 219, 393, 743, 737, 720, 885, 882, 439, 4,
1310     243, 120, 118, 115, 227, 223, 396, 746, 742, 736, 721, 712, 706, 223, 436, 6,
1311     202, 224, 222, 218, 216, 389, 386, 381, 364, 888, 443, 707, 440, 437, 1728, 4,
1312     747, 211, 210, 208, 370, 379, 734, 723, 714, 1735, 883, 877, 876, 3459, 865, 2,
1313     377, 369, 102, 187, 726, 722, 358, 711, 709, 866, 1734, 871, 3458, 870, 434, 0,
1314     12, 10, 7, 11, 10, 17, 11, 9, 13, 12, 10, 7, 5, 3, 1, 3
1315 };
1316
1317 unsigned int huff_tab24[16*16] = {
1318     15, 13, 46, 80, 146, 262, 248, 434, 426, 669, 653, 649, 621, 517, 1032, 88,
1319     14, 12, 21, 38, 71, 130, 122, 216, 209, 198, 327, 345, 319, 297, 279, 42,
1320     47, 22, 41, 74, 68, 128, 120, 221, 207, 194, 182, 340, 315, 295, 541, 18,
1321     81, 39, 75, 70, 134, 125, 116, 220, 204, 190, 178, 325, 311, 293, 271, 16,
1322     147, 72, 69, 135, 127, 118, 112, 210, 200, 188, 352, 323, 306, 285, 540, 14,
1323     263, 66, 129, 126, 119, 114, 214, 202, 192, 180, 341, 317, 301, 281, 262, 12,
1324     249, 123, 121, 117, 113, 215, 206, 195, 185, 347, 330, 308, 291, 272, 520, 10,
1325     435, 115, 111, 109, 211, 203, 196, 187, 353, 332, 313, 298, 283, 531, 381, 17,
1326     427, 212, 208, 205, 201, 193, 186, 177, 169, 320, 303, 286, 268, 514, 377, 16,
1327     335, 199, 197, 191, 189, 181, 174, 333, 321, 305, 289, 275, 521, 379, 371, 11,
1328     668, 184, 183, 179, 175, 344, 331, 314, 304, 290, 277, 530, 383, 373, 366, 10,
1329     652, 346, 171, 168, 164, 318, 309, 299, 287, 276, 263, 513, 375, 368, 362, 6,
1330     648, 322, 316, 312, 307, 302, 292, 284, 269, 261, 512, 376, 370, 364, 359, 4,
1331     620, 300, 296, 294, 288, 282, 273, 266, 515, 380, 374, 369, 365, 361, 357, 2,
1332     1033, 280, 278, 274, 267, 264, 259, 382, 378, 372, 367, 363, 360, 358, 356, 0,
1333     43, 20, 19, 17, 15, 13, 11, 9, 7, 6, 4, 7, 5, 3, 1, 3
1334 };
1335
1336 unsigned int huff_tab32[16*1] = {
1337     1,
1338     5,
1339     4,
1340     5,
1341     6,
1342     5,
1343     4,
1344     4,
1345     7,
1346     3,
1347     6,
1348     0,
1349     7,
1350     2,
1351     3,
1352     1
1353 };
1354
1355 unsigned int huff_tab33[16*1] = {
1356     15,
1357     14,
1358     13,
1359     12,
1360     11,
1361     10,
1362     9,
1363     8,
1364     7,
1365     6,
1366     5,
1367     4,
1368     3,
1369     2,
1370     1,
1371     0
1372 };
1373
1374 unsigned char huff_hlen1[2*2] = {
1375     1, 3,
1376     2, 3
1377 };
1378
1379 unsigned char huff_hlen2[3*3] = {
1380     1, 3, 6,
1381     3, 3, 5,
1382     5, 5, 6
1383 };
1384
1385 unsigned char huff_hlen3[3*3] = {
1386     2, 2, 6,
1387     3, 2, 5,
1388     5, 5, 6
1389 };
1390
1391 unsigned char huff_hlen5[4*4] = {
1392     1, 3, 6, 7,
1393     3, 3, 6, 7,
1394     6, 6, 7, 8,
1395     7, 6, 7, 8
1396 };
1397
1398 unsigned char huff_hlen6[4*4] = {
1399     3, 3, 5, 7,
1400     3, 2, 4, 5,
1401     4, 4, 5, 6,
1402     6, 5, 6, 7
1403 };
1404
1405 unsigned char huff_hlen7[6*6] = {
1406     1, 3, 6, 8, 8, 9,
1407     3, 4, 6, 7, 7, 8,
1408     6, 5, 7, 8, 8, 9,
1409     7, 7, 8, 9, 9, 9,
1410     7, 7, 8, 9, 9, 10,
1411     8, 8, 9, 10, 10, 10
1412 };
1413
1414 unsigned char huff_hlen8[6*6] = {
1415     2, 3, 6, 8, 8, 9,
1416     3, 2, 4, 8, 8, 8,
1417     6, 4, 6, 8, 8, 9,
1418     8, 8, 8, 9, 9, 10,
1419     8, 7, 8, 9, 10, 10,
1420     9, 8, 9, 9, 11, 11
1421 };
1422
1423 unsigned char huff_hlen9[6*6] = {
1424     3, 3, 5, 6, 8, 9,
1425     3, 3, 4, 5, 6, 8,
1426     4, 4, 5, 6, 7, 8,
1427     6, 5, 6, 7, 7, 8,
1428     7, 6, 7, 7, 8, 9,
1429     8, 7, 8, 8, 9, 9
1430 };
1431
1432 unsigned char huff_hlen10[8*8] = {
1433     1, 3, 6, 8, 9, 9, 9, 10,
1434     3, 4, 6, 7, 8, 9, 8, 8,
1435     6, 6, 7, 8, 9, 10, 9, 9,
1436     7, 7, 8, 9, 10, 10, 9, 10,
1437     8, 8, 9, 10, 10, 10, 10, 10,
1438     9, 9, 10, 10, 11, 11, 10, 11,
1439     8, 8, 9, 10, 10, 10, 11, 11,
1440     9, 8, 9, 10, 10, 11, 11, 11
1441 };
1442
1443 unsigned char huff_hlen11[8*8] = {
1444     2, 3, 5, 7, 8, 9, 8, 9,
1445     3, 3, 4, 6, 8, 8, 7, 8,
1446     5, 5, 6, 7, 8, 9, 8, 8,
1447     7, 6, 7, 9, 8, 10, 8, 9,
1448     8, 8, 8, 9, 9, 10, 9, 10,
1449     8, 8, 9, 10, 10, 11, 10, 11,
1450     8, 7, 7, 8, 9, 10, 10, 10,
1451     8, 7, 8, 9, 10, 10, 10, 10
1452 };
1453
1454 unsigned char huff_hlen12[8*8] = {
1455     4, 3, 5, 7, 8, 9, 9, 9,
1456     3, 3, 4, 5, 7, 7, 8, 8,
1457     5, 4, 5, 6, 7, 8, 7, 8,
1458     6, 5, 6, 6, 7, 8, 8, 8,
1459     7, 6, 7, 7, 8, 8, 8, 9,
1460     8, 7, 8, 8, 8, 9, 8, 9,
1461     8, 7, 7, 8, 8, 9, 9, 10,
1462     9, 8, 8, 9, 9, 9, 9, 10
1463 };
1464
1465 unsigned char huff_hlen13[16*16] = {
1466     1, 4, 6, 7, 8, 9, 9, 10, 9, 10, 11, 11, 12, 12, 13, 13,
1467     3, 4, 6, 7, 8, 8, 9, 9, 9, 9, 10, 10, 11, 12, 12, 12,
1468     6, 6, 7, 8, 9, 9, 10, 10, 9, 10, 10, 11, 11, 12, 13, 13,
1469     7, 7, 8, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 13, 13,
1470     8, 7, 9, 9, 10, 10, 11, 11, 10, 11, 11, 12, 12, 13, 13, 14,
1471     9, 8, 9, 10, 10, 10, 11, 11, 11, 11, 12, 11, 13, 13, 14, 14,
1472     9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 12, 12, 13, 13, 14, 14,
1473     10, 9, 10, 11, 11, 11, 12, 12, 12, 12, 13, 13, 13, 14, 16, 16,
1474     9, 8, 9, 10, 10, 11, 11, 12, 12, 12, 12, 13, 13, 14, 15, 15,
1475     10, 9, 10, 10, 11, 11, 11, 13, 12, 13, 13, 14, 14, 14, 16, 15,
1476     10, 10, 10, 11, 11, 12, 12, 13, 12, 13, 14, 13, 14, 15, 16, 17,
1477     11, 10, 10, 11, 12, 12, 12, 12, 13, 13, 13, 14, 15, 15, 15, 16,
1478     11, 11, 11, 12, 12, 13, 12, 13, 14, 14, 15, 15, 15, 16, 16, 16,
1479     12, 11, 12, 13, 13, 13, 14, 14, 14, 14, 14, 15, 16, 15, 16, 16,
1480     13, 12, 12, 13, 13, 13, 15, 14, 14, 17, 15, 15, 15, 17, 16, 16,
1481     12, 12, 13, 14, 14, 14, 15, 14, 15, 15, 16, 16, 19, 18, 19, 16
1482 };
1483
1484 unsigned char huff_hlen15[16*16] = {
1485     3, 4, 5, 7, 7, 8, 9, 9, 9, 10, 10, 11, 11, 11, 12, 13,
1486     4, 3, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 10, 11, 11,
1487     5, 5, 5, 6, 7, 7, 8, 8, 8, 9, 9, 10, 10, 11, 11, 11,
1488     6, 6, 6, 7, 7, 8, 8, 9, 9, 9, 10, 10, 10, 11, 11, 11,
1489     7, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11,
1490     8, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 11, 11, 11, 12,
1491     9, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 12, 12,
1492     9, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 12,
1493     9, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 12, 12, 12,
1494     9, 8, 9, 9, 9, 9, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12,
1495     10, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 11, 12, 13, 12,
1496     10, 9, 9, 9, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 13,
1497     11, 10, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 12, 12, 13, 13,
1498     11, 10, 10, 10, 10, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13,
1499     12, 11, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 12, 13,
1500     12, 11, 11, 11, 11, 11, 11, 12, 12, 12, 12, 12, 13, 13, 13, 13
1501 };
1502
1503 unsigned char huff_hlen16[16*16] = {
1504     1, 4, 6, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 9,
1505     3, 4, 6, 7, 8, 9, 9, 9, 10, 10, 10, 11, 12, 11, 12, 8,
1506     6, 6, 7, 8, 9, 9, 10, 10, 11, 10, 11, 11, 11, 12, 12, 9,
1507     8, 7, 8, 9, 9, 10, 10, 10, 11, 11, 12, 12, 12, 13, 13, 10,
1508     9, 8, 9, 9, 10, 10, 11, 11, 11, 12, 12, 12, 13, 13, 13, 9,
1509     9, 8, 9, 9, 10, 11, 11, 12, 11, 12, 12, 13, 13, 13, 14, 10,
1510     10, 9, 9, 10, 11, 11, 11, 11, 12, 12, 12, 12, 13, 13, 14, 10,
1511     10, 9, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 13, 15, 15, 10,
1512     10, 10, 10, 11, 11, 11, 12, 12, 13, 13, 13, 13, 14, 14, 14, 10,
1513     11, 10, 10, 11, 11, 12, 12, 13, 13, 13, 13, 14, 13, 14, 13, 11,
1514     11, 11, 10, 11, 12, 12, 12, 12, 13, 14, 14, 14, 15, 15, 14, 10,
1515     12, 11, 11, 11, 12, 12, 13, 14, 14, 14, 14, 14, 14, 13, 14, 11,
1516     12, 12, 12, 12, 12, 13, 13, 13, 13, 15, 14, 14, 14, 14, 16, 11,
1517     14, 12, 12, 12, 13, 13, 14, 14, 14, 16, 15, 15, 15, 17, 15, 11,
1518     13, 13, 11, 12, 14, 14, 13, 14, 14, 15, 16, 15, 17, 15, 14, 11,
1519     9, 8, 8, 9, 9, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 8
1520 };
1521
1522 unsigned char huff_hlen24[16*16] = {
1523     4, 4, 6, 7, 8, 9, 9, 10, 10, 11, 11, 11, 11, 11, 12, 9,
1524     4, 4, 5, 6, 7, 8, 8, 9, 9, 9, 10, 10, 10, 10, 10, 8,
1525     6, 5, 6, 7, 7, 8, 8, 9, 9, 9, 9, 10, 10, 10, 11, 7,
1526     7, 6, 7, 7, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 7,
1527     8, 7, 7, 8, 8, 8, 8, 9, 9, 9, 10, 10, 10, 10, 11, 7,
1528     9, 7, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 7,
1529     9, 8, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 7,
1530     10, 8, 8, 8, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 8,
1531     10, 9, 9, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 11, 11, 8,
1532     10, 9, 9, 9, 9, 9, 9, 10, 10, 10, 10, 10, 11, 11, 11, 8,
1533     11, 9, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 8,
1534     11, 10, 9, 9, 9, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 8,
1535     11, 10, 10, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 8,
1536     11, 10, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 8,
1537     12, 10, 10, 10, 10, 10, 10, 11, 11, 11, 11, 11, 11, 11, 11, 8,
1538     8, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 8, 8, 8, 8, 4
1539 };
1540
1541 unsigned char huff_hlen32[16*1] = {
1542     1,
1543     4,
1544     4,
1545     5,
1546     4,
1547     6,
1548     5,
1549     6,
1550     4,
1551     5,
1552     5,
1553     6,
1554     5,
1555     6,
1556     6,
1557     6
1558 };
1559
1560 unsigned char huff_hlen33[16*1] = {
1561     4,
1562     4,
1563     4,
1564     4,
1565     4,
1566     4,
1567     4,
1568     4,
1569     4,
1570     4,
1571     4,
1572     4,
1573     4,
1574     4,
1575     4,
1576     4
1577 };
1578
1579 struct huffcodetab ht[34] = {
1580     { 0, 0, 0, 0, -1, 0, 0 },
1581     { 2, 2, 0, 0, -1, huff_tab1, huff_hlen1 },
1582     { 3, 3, 0, 0, -1, huff_tab2, huff_hlen2 },
1583     { 3, 3, 0, 0, -1, huff_tab3, huff_hlen3 },
1584     { 0, 0, 0, 0, -1, 0, 0 },
1585     { 4, 4, 0, 0, -1, huff_tab5, huff_hlen5 },
1586     { 4, 4, 0, 0, -1, huff_tab6, huff_hlen6 },
1587     { 6, 6, 0, 0, -1, huff_tab7, huff_hlen7 },
1588     { 6, 6, 0, 0, -1, huff_tab8, huff_hlen8 },
1589     { 6, 6, 0, 0, -1, huff_tab9, huff_hlen9 },
1590     { 8, 8, 0, 0, -1, huff_tab10, huff_hlen10 },
1591     { 8, 8, 0, 0, -1, huff_tab11, huff_hlen11 },
1592     { 8, 8, 0, 0, -1, huff_tab12, huff_hlen12 },
1593     { 16, 16, 0, 0, -1, huff_tab13, huff_hlen13 },
1594     { 0, 0, 0, 0, -1, 0, 0 },
1595     { 16, 16, 0, 0, -1, huff_tab15, huff_hlen15 },
1596     { 16, 16, 1, 1, -1, huff_tab16, huff_hlen16 },
1597     { 16, 16, 2, 3, 16, huff_tab16, huff_hlen16 },
1598     { 16, 16, 3, 7, 16, huff_tab16, huff_hlen16 },
1599     { 16, 16, 4, 15, 16, huff_tab16, huff_hlen16 },
1600     { 16, 16, 6, 63, 16, huff_tab16, huff_hlen16 },
1601     { 16, 16, 8, 255, 16, huff_tab16, huff_hlen16 },
1602     { 16, 16, 10, 1023, 16, huff_tab16, huff_hlen16 },
1603     { 16, 16, 13, 8191, 16, huff_tab16, huff_hlen16 },
1604     { 16, 16, 4, 15, -1, huff_tab24, huff_hlen24 },
1605     { 16, 16, 5, 31, 24, huff_tab24, huff_hlen24 },
1606     { 16, 16, 6, 63, 24, huff_tab24, huff_hlen24 },
1607     { 16, 16, 7, 127, 24, huff_tab24, huff_hlen24 },
1608     { 16, 16, 8, 255, 24, huff_tab24, huff_hlen24 },
1609     { 16, 16, 9, 511, 24, huff_tab24, huff_hlen24 },
1610     { 16, 16, 11, 2047, 24, huff_tab24, huff_hlen24 },
1611     { 16, 16, 13, 8191, 24, huff_tab24, huff_hlen24 },
1612     { 1, 16, 0, 0, -1, huff_tab32, huff_hlen32 },
1613     { 1, 16, 0, 0, -1, huff_tab33, huff_hlen33 }
1614 };