📄 huffman.c
字号:
-1, 195, 167, -1, 44, -1, 194, 181, -23, -13, -7, -3, -1, 193, 12,
-1, 75, 180, -3, -1, 106, 166, 179, -5, -3, -1, 90, 165, 43, -1,
178, 27, -13, -5, -1, 177, -1, 11, 176, -3, -1, 105, 150, -1, 74,
164, -5, -3, -1, 120, 135, 163, -3, -1, 58, 89, 42, -97, -57, -33,
-19, -11, -5, -3, -1, 149, 104, 161, -3, -1, 134, 119, 148, -5, -3,
-1, 73, 87, 103, 162, -5, -1, 26, -1, 10, 160, -3, -1, 57, 147,
-1, 88, 133, -9, -3, -1, 41, 146, -3, -1, 118, 9, 25, -5, -1,
145, -1, 144, 72, -3, -1, 132, 117, -1, 56, 131, -21, -11, -5, -3,
-1, 102, 40, 130, -3, -1, 71, 116, 24, -3, -1, 129, 128, -3, -1,
8, 86, 55, -9, -5, -1, 115, -1, 101, 70, -1, 39, 114, -5, -3,
-1, 100, 85, 7, 23, -23, -13, -5, -1, 113, -1, 112, 54, -3, -1,
99, 69, -1, 84, 38, -3, -1, 98, 22, -1, 97, -1, 6, 96, -9,
-5, -1, 83, -1, 53, 68, -1, 37, 82, -1, 81, -1, 21, 5, -33,
-23, -13, -7, -3, -1, 52, 67, -1, 80, 36, -3, -1, 66, 51, 20,
-5, -1, 65, -1, 4, 64, -1, 35, 50, -3, -1, 19, 49, -3, -1,
3, 48, 34, -3, -1, 18, 33, -1, 2, 32, -3, -1, 17, 1, 16,
0
};
short tab24[] =
{
-451,-117, -43, -25, -15, -7, -3, -1, 239, 254, -1, 223, 253, -3, -1,
207, 252, -1, 191, 251, -5, -1, 250, -1, 175, 159, -1, 249, 248, -9,
-5, -3, -1, 143, 127, 247, -1, 111, 246, -3, -1, 95, 245, -1, 79,
244, -71, -7, -3, -1, 63, 243, -1, 47, 242, -5, -1, 241, -1, 31,
240, -25, -9, -1, 15, -3, -1, 238, 222, -1, 237, 206, -7, -3, -1,
236, 221, -1, 190, 235, -3, -1, 205, 220, -1, 174, 234, -15, -7, -3,
-1, 189, 219, -1, 204, 158, -3, -1, 233, 173, -1, 218, 188, -7, -3,
-1, 203, 142, -1, 232, 157, -3, -1, 217, 126, -1, 231, 172, 255,-235,
-143, -77, -45, -25, -15, -7, -3, -1, 202, 187, -1, 141, 216, -5, -3,
-1, 14, 224, 13, 230, -5, -3, -1, 110, 156, 201, -1, 94, 186, -9,
-5, -1, 229, -1, 171, 125, -1, 215, 228, -3, -1, 140, 200, -3, -1,
78, 46, 62, -15, -7, -3, -1, 109, 214, -1, 227, 155, -3, -1, 185,
170, -1, 226, 30, -7, -3, -1, 225, 93, -1, 213, 124, -3, -1, 199,
77, -1, 139, 184, -31, -15, -7, -3, -1, 212, 154, -1, 169, 108, -3,
-1, 198, 61, -1, 211, 45, -7, -3, -1, 210, 29, -1, 123, 183, -3,
-1, 209, 92, -1, 197, 138, -17, -7, -3, -1, 168, 153, -1, 76, 196,
-3, -1, 107, 182, -3, -1, 208, 12, 60, -7, -3, -1, 195, 122, -1,
167, 44, -3, -1, 194, 91, -1, 181, 28, -57, -35, -19, -7, -3, -1,
137, 152, -1, 193, 75, -5, -3, -1, 192, 11, 59, -3, -1, 176, 10,
26, -5, -1, 180, -1, 106, 166, -3, -1, 121, 151, -3, -1, 160, 9,
144, -9, -3, -1, 179, 136, -3, -1, 43, 90, 178, -7, -3, -1, 165,
27, -1, 177, 105, -1, 150, 164, -17, -9, -5, -3, -1, 74, 120, 135,
-1, 58, 163, -3, -1, 89, 149, -1, 42, 162, -7, -3, -1, 161, 104,
-1, 134, 119, -3, -1, 73, 148, -1, 57, 147, -63, -31, -15, -7, -3,
-1, 88, 133, -1, 41, 103, -3, -1, 118, 146, -1, 25, 145, -7, -3,
-1, 72, 132, -1, 87, 117, -3, -1, 56, 131, -1, 102, 40, -17, -7,
-3, -1, 130, 24, -1, 71, 116, -5, -1, 129, -1, 8, 128, -1, 86,
101, -7, -5, -1, 23, -1, 7, 112, 115, -3, -1, 55, 39, 114, -15,
-7, -3, -1, 70, 100, -1, 85, 113, -3, -1, 54, 99, -1, 69, 84,
-7, -3, -1, 38, 98, -1, 22, 97, -5, -3, -1, 6, 96, 53, -1,
83, 68, -51, -37, -23, -15, -9, -3, -1, 37, 82, -1, 21, -1, 5,
80, -1, 81, -1, 52, 67, -3, -1, 36, 66, -1, 51, 20, -9, -5,
-1, 65, -1, 4, 64, -1, 35, 50, -1, 19, 49, -7, -5, -3, -1,
3, 48, 34, 18, -1, 33, -1, 2, 32, -3, -1, 17, 1, -1, 16,
0
};
short tab_c0[] =
{
-29, -21, -13, -7, -3, -1, 11, 15, -1, 13, 14, -3, -1, 7, 5,
9, -3, -1, 6, 3, -1, 10, 12, -3, -1, 2, 1, -1, 4, 8,
0
};
short tab_c1[] =
{
-15, -7, -3, -1, 15, 14, -1, 13, 12, -3, -1, 11, 10, -1, 9,
8, -7, -3, -1, 7, 6, -1, 5, 4, -3, -1, 3, 2, -1, 1,
0
};
//#if 0
struct newhuff ht[] =
{
{ /* 0 */ 0 , tab0 } ,
{ /* 2 */ 0 , tab1 } ,
{ /* 3 */ 0 , tab2 } ,
{ /* 3 */ 0 , tab3 } ,
{ /* 0 */ 0 , tab0 } ,
{ /* 4 */ 0 , tab5 } ,
{ /* 4 */ 0 , tab6 } ,
{ /* 6 */ 0 , tab7 } ,
{ /* 6 */ 0 , tab8 } ,
{ /* 6 */ 0 , tab9 } ,
{ /* 8 */ 0 , tab10 } ,
{ /* 8 */ 0 , tab11 } ,
{ /* 8 */ 0 , tab12 } ,
{ /* 16 */ 0 , tab13 } ,
{ /* 0 */ 0 , tab0 } ,
{ /* 16 */ 0 , tab15 } ,
{ /* 16 */ 1 , tab16 } ,
{ /* 16 */ 2 , tab16 } ,
{ /* 16 */ 3 , tab16 } ,
{ /* 16 */ 4 , tab16 } ,
{ /* 16 */ 6 , tab16 } ,
{ /* 16 */ 8 , tab16 } ,
{ /* 16 */ 10, tab16 } ,
{ /* 16 */ 13, tab16 } ,
{ /* 16 */ 4 , tab24 } ,
{ /* 16 */ 5 , tab24 } ,
{ /* 16 */ 6 , tab24 } ,
{ /* 16 */ 7 , tab24 } ,
{ /* 16 */ 8 , tab24 } ,
{ /* 16 */ 9 , tab24 } ,
{ /* 16 */ 11, tab24 } ,
{ /* 16 */ 13, tab24 }
};
//#endif
struct newhuff htc[] =
{
{ /* 1 , 1 , */ 0 , tab_c0 } ,
{ /* 1 , 1 , */ 0 , tab_c1 }
};
//***********************************************data
#if 0
int bitindex; //in mpg123.c
unsigned char *bufpointer;
real win1[4][36];
real /*const*/ win[4][36] = { // FLOAT24
{
0x000843a9, 0x001b71e0, 0x00338fe2, 0x00535b97, 0x00800000, 0x00c48ce2, 0x013dc0c8, 0x0254fac1,
0x07be80a6, 0xf78c7a66, 0xfcf6004c, 0xfe0d3a45, 0xfe866e2b, 0xfecafb0d, 0xfef79f75, 0xff176b2b,
0xff2f892d, 0xff42b764, 0xff528db3, 0xff600a32, 0xff6bd44e, 0xff765fbe, 0xff800000, 0xff88f3e7,
0xff916cc2, 0xff999313, 0xffa189e2, 0xffa9712c, 0xffb167fa, 0xffb98e4c, 0xffc20726, 0xffcafb0d,
0xffd49b50, 0xffdf26bf, 0xffeaf0dc, 0xfff86d5b,
},
{
0x000843a9, 0x001b71e0, 0x00338fe2, 0x00535b97, 0x00800000, 0x00c48ce2, 0x013dc0c8, 0x0254fac1,
0x07be80a6, 0xf78c7a66, 0xfcf6004c, 0xfe0d3a45, 0xfe866e2b, 0xfecafb0d, 0xfef79f75, 0xff176b2b,
0xff2f892d, 0xff42b764, 0xff526366, 0xff5ea8d8, 0xff683b58, 0xff6fb1f3, 0xff75742d, 0xff79c9cd,
0xff7e038d, 0xff88b916, 0xff9a5aa2, 0xffb2011a, 0xffce9807, 0xffeee313, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
},
{
0x001b71e0, 0x00800000, 0x0254fac1, 0xfcf6004c, 0xfecafb0d, 0xff2f892d, 0xff600a32, 0xff800000,
0xff999313, 0xffb167fa, 0xffcafb0d, 0xffeaf0dc, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000,
0x00000000, 0x00000000, 0x00000000, 0x00000000,
},
{
0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x004d3116, 0x017746ea,
0x06fa6529, 0xf6e7ecac, 0xfc76004c, 0xfdb5aba3, 0xfe5655b5, 0xfeb18517, 0xfeeacafb, 0xff11c58b,
0xff2dbcad, 0xff42893a, 0xff528db3, 0xff600a32, 0xff6bd44e, 0xff765fbe, 0xff800000, 0xff88f3e7,
0xff916cc2, 0xff999313, 0xffa189e2, 0xffa9712c, 0xffb167fa, 0xffb98e4c, 0xffc20726, 0xffcafb0d,
0xffd49b50, 0xffdf26bf, 0xffeaf0dc, 0xfff86d5b,
},
};
real /*const*/ COS9[9] = { // FLOAT24
0x01000000, 0x00fc1c5c, 0x00f08fb2, 0x00ddb3d7, 0x00c41b7d, 0x00a48dba, 0x00800000, 0x00578ea1, 0x002c7434,
};
real /*const*/ aa_cs[8] = { // FLOAT24
0x00db84a8, 0x00e1b9d7, 0x00f31adc, 0x00fbba81, 0x00feda41, 0x00ffc8fc, 0x00fff964, 0x00ffff8d,
};
real /*const*/ aa_ca[8] = { // FLOAT24
0xff7c4a02, 0xff873c93, 0xffafc67f, 0xffd16e23, 0xffe7c9fd, 0xfff58348, 0xfffc5d7c, 0xffff0d85,
};
real /*const*/ tfcos36[9] = { // FLOAT24
0x00807d2b, 0x008483ee, 0x008d3b7c, 0x009c4257, 0x00b504f3, 0x00df2943, 0x012edfb1, 0x01ee8dd4, 0x05bca2a2,
};
unsigned char rval;
real *pnts[5] = {cos64, cos32, cos16, cos8, cos4};
real /*const*/ ispow[130] = { // FLOAT21 !!!!!!!!!!!!!!
0x00000000, 0x00200000, 0x0050a28b, 0x008a74b9, 0x00cb2ff5, 0x0111989d, 0x015ce31c, 0x01ac7f20,
0x02000000, 0x0257106b, 0x02b16b4a, 0x030ed74b, 0x036f23fa, 0x03d227bd, 0x0437be65, 0x049fc823,
0x050a28be, 0x0576c6f5, 0x05e58c0b, 0x06566361, 0x06c93a2e, 0x073dff3e, 0x07b4a2bc, 0x082d160a,
0x08a74b9b, 0x092336d5, 0x09a0cbf6, 0x0a200000, 0x0aa0c8a1, 0x0b231c29, 0x0ba6f175, 0x0c2c3fe6,
0x0cb2ff52, 0x0d3b2800, 0x0dc4b298, 0x0e4f9821, 0x0edbd1f8, 0x0f6959c5, 0x0ff8297f, 0x10883b5c,
0x111989d6, 0x11ac0f9e, 0x123fc7a1, 0x12d4acfc, 0x136abaff, 0x1401ed25, 0x149a3f18, 0x1533aca7,
0x15ce31c8, 0x1669ca96, 0x1706734d, 0x17a4284a, 0x1842e608, 0x18e2a91f, 0x19836e43, 0x1a253242,
0x1ac7f203, 0x1b6baa83, 0x1c1058d7, 0x1cb5fa2b, 0x1d5c8bbe, 0x1e040ae1, 0x1eac74fa, 0x1f55c782,
0x20000000, 0x20ab1c0d, 0x21571953, 0x2203f589, 0x22b1ae76, 0x236041f0, 0x240fadd7, 0x24bff01b,
0x257106b8, 0x2622efb5, 0x26d5a925, 0x27893125, 0x283d85e0, 0x28f2a588, 0x29a88e5a, 0x2a5f3e9e,
0x2b16b4a3, 0x2bceeec2, 0x2c87eb5f, 0x2d41a8e2, 0x2dfc25bf, 0x2eb7606f, 0x2f735776, 0x3030095d,
0x30ed74b3, 0x31ab9812, 0x326a7217, 0x332a0167, 0x33ea44ae, 0x34ab3a9d, 0x356ce1ec, 0x362f3958,
0x36f23fa5, 0x37b5f39a, 0x387a5405, 0x393f5fbb, 0x3a051592, 0x3acb7469, 0x3b927b20, 0x3c5a28a0,
0x3d227bd2, 0x3deb73a7, 0x3eb50f12, 0x3f7f4d0d, 0x404a2c92, 0x4115aca2, 0x41e1cc42, 0x42ae8a7a,
0x437be655, 0x4449dee4, 0x45187337, 0x45e7a268, 0x46b76b8e, 0x4787cdc8, 0x4858c835, 0x492a59f9,
0x49fc823c, 0x4acf4026, 0x4ba292e4, 0x4c7679a5, 0x4d4af39d, 0x4e200000, 0x4ef59e05, 0x4fcbcce8,
0x50a28be6, 0x5179da3d,
};
real /*const*/ gainpow2[4] = {0x01000000, 0x01306fe0, 0x016a09e6, 0x01ae89f9, }; // FLOAT24
#endif
real b0x[16];
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -