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