From c80f6716556e994a6c4f331c2294693192cf19ce Mon Sep 17 00:00:00 2001 From: evilsocket Date: Tue, 26 May 2009 06:30:39 +0200 Subject: [PATCH] Optimized DCT, 74% performance increment. --- main.c | 34 ++++++++++++++++++++++------------ 1 file changed, 22 insertions(+), 12 deletions(-) diff --git a/main.c b/main.c index b8a1b4e..5c4d030 100644 --- a/main.c +++ b/main.c @@ -98,7 +98,7 @@ int main (int argc, char **argv) { return 1; } } - printf( "DEVICE : %s\n", device ); + buf = (u8*) malloc(TOTSIZE); neutral = (double*) malloc(TOTSIZE*sizeof(double)); trans = (double*) malloc(TOTSIZE*sizeof(double)); @@ -132,18 +132,28 @@ int main (int argc, char **argv) { printf ("capture done, computing DCT...\n" ); t1 = time((unsigned) NULL); - - for (i=0; i= 0) ? v : -v; + trans[0] = log(v); + + double init = buf[0]; + for( i = 1; i < TOTSIZE; ++i ) { + t = PIconst * i; + v = init; + /* dato che ho inizializzato v a buf[0] e sono sicuro che t != 0, + * posso partire da j = 1 . */ + for( j = 1; j < TOTSIZE; ++j ){ + v += buf[j] * taylor_cosine( t * j, 10 ); } - v *= coeff; v -= neutral[i]; v = (v >= 0) ? v : -v;