annotate mp3lib/tabinit.c @ 2316:bcb229557e9b

fixed alignment (static variables where sometimes not 8-byte aligned) added half uv interpolation support added prefetch BGR15 support in MMX (untested) (so BGR15,16,24,32 are supported) special unscaled height version (not much faster but it doesnt interpolate uv vertically)
author michael
date Sat, 20 Oct 2001 21:12:09 +0000
parents 03b7e2955a20
children 1320f1b3229d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1245
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
1 real decwin[(512+32)], cos64[32], cos32[16], cos16[8], cos8[4], cos4[2];
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
2 real *pnts[]={ cos64,cos32,cos16,cos8,cos4 };
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
3
1245
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
4 static long intwinbase[] = {
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
5 0, -1, -1, -1, -1, -1, -1, -2, -2, -2,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
6 -2, -3, -3, -4, -4, -5, -5, -6, -7, -7,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
7 -8, -9, -10, -11, -13, -14, -16, -17, -19, -21,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
8 -24, -26, -29, -31, -35, -38, -41, -45, -49, -53,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
9 -58, -63, -68, -73, -79, -85, -91, -97, -104, -111,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
10 -117, -125, -132, -139, -147, -154, -161, -169, -176, -183,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
11 -190, -196, -202, -208, -213, -218, -222, -225, -227, -228,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
12 -228, -227, -224, -221, -215, -208, -200, -189, -177, -163,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
13 -146, -127, -106, -83, -57, -29, 2, 36, 72, 111,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
14 153, 197, 244, 294, 347, 401, 459, 519, 581, 645,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
15 711, 779, 848, 919, 991, 1064, 1137, 1210, 1283, 1356,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
16 1428, 1498, 1567, 1634, 1698, 1759, 1817, 1870, 1919, 1962,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
17 2001, 2032, 2057, 2075, 2085, 2087, 2080, 2063, 2037, 2000,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
18 1952, 1893, 1822, 1739, 1644, 1535, 1414, 1280, 1131, 970,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
19 794, 605, 402, 185, -45, -288, -545, -814, -1095, -1388,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
20 -1692, -2006, -2330, -2663, -3004, -3351, -3705, -4063, -4425, -4788,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
21 -5153, -5517, -5879, -6237, -6589, -6935, -7271, -7597, -7910, -8209,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
22 -8491, -8755, -8998, -9219, -9416, -9585, -9727, -9838, -9916, -9959,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
23 -9966, -9935, -9863, -9750, -9592, -9389, -9139, -8840, -8492, -8092,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
24 -7640, -7134, -6574, -5959, -5288, -4561, -3776, -2935, -2037, -1082,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
25 -70, 998, 2122, 3300, 4533, 5818, 7154, 8540, 9975, 11455,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
26 12980, 14548, 16155, 17799, 19478, 21189, 22929, 24694, 26482, 28289,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
27 30112, 31947, 33791, 35640, 37489, 39336, 41176, 43006, 44821, 46617,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
28 48390, 50137, 51853, 53534, 55178, 56778, 58333, 59838, 61289, 62684,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
29 64019, 65290, 66494, 67629, 68692, 69679, 70590, 71420, 72169, 72835,
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
30 73415, 73908, 74313, 74630, 74856, 74992, 75038 };
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
31
1245
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
32 void make_decode_tables(long scaleval)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
33 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
34 int i,j,k,kr,divv;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
35 real *table,*costab;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
36
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
37
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
38 for(i=0;i<5;i++)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
39 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
40 kr=0x10>>i; divv=0x40>>i;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
41 costab = pnts[i];
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
42 for(k=0;k<kr;k++) costab[k] = 1.0 / (2.0 * cos(M_PI * ((double) k * 2.0 + 1.0) / (double) divv));
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
43 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
44
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
45 table = decwin;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
46 scaleval = -scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
47 for(i=0,j=0;i<256;i++,j++,table+=32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
48 {
1245
03b7e2955a20 Added newest MMX-optimized decore which speedups decoding at least on 13% for any cpu.
nick
parents: 1045
diff changeset
49 if(table < decwin+512+16)
1
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
50 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
51 if(i % 32 == 31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
52 table -= 1023;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
53 if(i % 64 == 63)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
54 scaleval = - scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
55 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
56
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
57 for( /* i=256 */ ;i<512;i++,j--,table+=32)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
58 {
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
59 if(table < decwin+512+16)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
60 table[16] = table[0] = (double) intwinbase[j] / 65536.0 * (double) scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
61 if(i % 32 == 31)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
62 table -= 1023;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
63 if(i % 64 == 63)
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
64 scaleval = - scaleval;
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
65 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
66 }
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
67
3b5f5d1c5041 Initial revision
arpi_esp
parents:
diff changeset
68