00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #include "mtypes.h"
00030 #include "huff.h"
00031
00032 int huff_maxlevel[32] = { 41, 19, 6, 5, 4, 4, 4, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2, 2 };
00033
00034 uint32 huff_table0[41] = { 0x0, 0x6, 0x8, 0xa, 0xc, 0x4c, 0x42, 0x14, 0x3a, 0x30, 0x26, 0x20, 0x34, 0x32, 0x30, 0x2e, 0x3e, 0x3c, 0x3a, 0x38, 0x36, 0x34, 0x32, 0x30, 0x2e, 0x2c, 0x2a, 0x28, 0x26, 0x24, 0x22, 0x20, 0x30, 0x2e, 0x2c, 0x2a, 0x28, 0x26, 0x24, 0x22, 0x20 };
00035 int huff_bits0[41] = { 0, 3, 5, 6, 8, 9, 9, 11, 13, 13, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 16, 16, 16 };
00036
00037 uint32 huff_table1[19] = { 0x0, 0x6, 0xc, 0x4a, 0x18, 0x36, 0x2c, 0x2a, 0x3e, 0x3c, 0x3a, 0x38, 0x36, 0x34, 0x32, 0x26, 0x24, 0x22, 0x20 };
00038 int huff_bits1[19] = { 0, 4, 7, 9, 11, 13, 14, 14, 16, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17 };
00039
00040 uint32 huff_table2[6] = { 0x0, 0xa, 0x8, 0x16, 0x28, 0x28 };
00041 int huff_bits2[6] = { 0, 5, 8, 11, 13, 14 };
00042
00043 uint32 huff_table3[5] = { 0x0, 0xe, 0x48, 0x38, 0x26 };
00044 int huff_bits3[5] = { 0, 6, 9, 13, 14 };
00045
00046 uint32 huff_table4[4] = { 0x0, 0xc, 0x1e, 0x24 };
00047 int huff_bits4[4] = { 0, 6, 11, 13 };
00048
00049 uint32 huff_table5[4] = { 0x0, 0xe, 0x12, 0x24 };
00050 int huff_bits5[4] = { 0, 7, 11, 14 };
00051
00052 uint32 huff_table6[4] = { 0x0, 0xa, 0x3c, 0x28 };
00053 int huff_bits6[4] = { 0, 7, 13, 17 };
00054
00055 uint32 huff_table7[3] = { 0x0, 0x8, 0x2a };
00056 int huff_bits7[3] = { 0, 7, 13 };
00057
00058 uint32 huff_table8[3] = { 0x0, 0xe, 0x22 };
00059 int huff_bits8[3] = { 0, 8, 13 };
00060
00061 uint32 huff_table9[3] = { 0x0, 0xa, 0x22 };
00062 int huff_bits9[3] = { 0, 8, 14 };
00063
00064 uint32 huff_table10[3] = { 0x0, 0x4e, 0x20 };
00065 int huff_bits10[3] = { 0, 9, 14 };
00066
00067 uint32 huff_table11[3] = { 0x0, 0x46, 0x34 };
00068 int huff_bits11[3] = { 0, 9, 17 };
00069
00070 uint32 huff_table12[3] = { 0x0, 0x44, 0x32 };
00071 int huff_bits12[3] = { 0, 9, 17 };
00072
00073 uint32 huff_table13[3] = { 0x0, 0x40, 0x30 };
00074 int huff_bits13[3] = { 0, 9, 17 };
00075
00076 uint32 huff_table14[3] = { 0x0, 0x1c, 0x2e };
00077 int huff_bits14[3] = { 0, 11, 17 };
00078
00079 uint32 huff_table15[3] = { 0x0, 0x1a, 0x2c };
00080 int huff_bits15[3] = { 0, 11, 17 };
00081
00082 uint32 huff_table16[3] = { 0x0, 0x10, 0x2a };
00083 int huff_bits16[3] = { 0, 11, 17 };
00084
00085 uint32 huff_table17[2] = { 0x0, 0x3e };
00086 int huff_bits17[2] = { 0, 13 };
00087
00088 uint32 huff_table18[2] = { 0x0, 0x34 };
00089 int huff_bits18[2] = { 0, 13 };
00090
00091 uint32 huff_table19[2] = { 0x0, 0x32 };
00092 int huff_bits19[2] = { 0, 13 };
00093
00094 uint32 huff_table20[2] = { 0x0, 0x2e };
00095 int huff_bits20[2] = { 0, 13 };
00096
00097 uint32 huff_table21[2] = { 0x0, 0x2c };
00098 int huff_bits21[2] = { 0, 13 };
00099
00100 uint32 huff_table22[2] = { 0x0, 0x3e };
00101 int huff_bits22[2] = { 0, 14 };
00102
00103 uint32 huff_table23[2] = { 0x0, 0x3c };
00104 int huff_bits23[2] = { 0, 14 };
00105
00106 uint32 huff_table24[2] = { 0x0, 0x3a };
00107 int huff_bits24[2] = { 0, 14 };
00108
00109 uint32 huff_table25[2] = { 0x0, 0x38 };
00110 int huff_bits25[2] = { 0, 14 };
00111
00112 uint32 huff_table26[2] = { 0x0, 0x36 };
00113 int huff_bits26[2] = { 0, 14 };
00114
00115 uint32 huff_table27[2] = { 0x0, 0x3e };
00116 int huff_bits27[2] = { 0, 17 };
00117
00118 uint32 huff_table28[2] = { 0x0, 0x3c };
00119 int huff_bits28[2] = { 0, 17 };
00120
00121 uint32 huff_table29[2] = { 0x0, 0x3a };
00122 int huff_bits29[2] = { 0, 17 };
00123
00124 uint32 huff_table30[2] = { 0x0, 0x38 };
00125 int huff_bits30[2] = { 0, 17 };
00126
00127 uint32 huff_table31[2] = { 0x0, 0x36 };
00128 int huff_bits31[2] = { 0, 17 };
00129
00130 uint32 *huff_table[32] = { huff_table0, huff_table1, huff_table2, huff_table3, huff_table4, huff_table5, huff_table6, huff_table7, huff_table8, huff_table9, huff_table10, huff_table11, huff_table12, huff_table13, huff_table14, huff_table15, huff_table16, huff_table17, huff_table18, huff_table19, huff_table20, huff_table21, huff_table22, huff_table23, huff_table24, huff_table25, huff_table26, huff_table27, huff_table28, huff_table29, huff_table30, huff_table31 };
00131 int *huff_bits[32] = { huff_bits0, huff_bits1, huff_bits2, huff_bits3, huff_bits4, huff_bits5, huff_bits6, huff_bits7, huff_bits8, huff_bits9, huff_bits10, huff_bits11, huff_bits12, huff_bits13, huff_bits14, huff_bits15, huff_bits16, huff_bits17, huff_bits18, huff_bits19, huff_bits20, huff_bits21, huff_bits22, huff_bits23, huff_bits24, huff_bits25, huff_bits26, huff_bits27, huff_bits28, huff_bits29, huff_bits30, huff_bits31 };