]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - imdct.c
simplify definition of sqrthalf and capitalize it.
[paraslash.git] / imdct.c
diff --git a/imdct.c b/imdct.c
index 89ee2dfb4ff8c48e78ad589d8bba0102d33bb153..a981eeb99fe6d2e23f5a04af40881fdb18190b21 100644 (file)
--- a/imdct.c
+++ b/imdct.c
 
 typedef float fftsample_t;
 
-#define DECLARE_ALIGNED(n,t,v)      t v __attribute__ ((aligned (n)))
-#define DECLARE_ALIGNED_16(t, v) DECLARE_ALIGNED(16, t, v)
-#define M_SQRT1_2      0.70710678118654752440  /* 1/sqrt(2) */
-
 struct fft_complex {
        fftsample_t re, im;
 };
@@ -42,8 +38,6 @@ struct fft_context {
        int inverse;
        uint16_t *revtab;
        struct fft_complex *exptab;
-       struct fft_complex *exptab1;    /* only used by SSE code */
-       struct fft_complex *tmp_buf;
 };
 
 struct mdct_context {
@@ -93,7 +87,7 @@ static int split_radix_permutation(int i, int n, int inverse)
                return split_radix_permutation(i, m, inverse) * 4 - 1;
 }
 
-#define sqrthalf (float)M_SQRT1_2
+#define SQRTHALF (float)0.70710678118654752440 /* 1/sqrt(2) */
 
 #define BF(x,y,a,b) {\
     x = a - b;\
@@ -203,7 +197,7 @@ static void fft8(struct fft_complex *z)
        BF(z[6].re, z[2].re, z[2].re, t7);
        BF(z[6].im, z[2].im, z[2].im, t8);
 
-       TRANSFORM(z[1], z[3], z[5], z[7], sqrthalf, sqrthalf);
+       TRANSFORM(z[1], z[3], z[5], z[7], SQRTHALF, SQRTHALF);
 }
 
 static void fft16(struct fft_complex *z)
@@ -215,7 +209,7 @@ static void fft16(struct fft_complex *z)
        fft4(z + 12);
 
        TRANSFORM_ZERO(z[0], z[4], z[8], z[12]);
-       TRANSFORM(z[2], z[6], z[10], z[14], sqrthalf, sqrthalf);
+       TRANSFORM(z[2], z[6], z[10], z[14], SQRTHALF, SQRTHALF);
        TRANSFORM(z[1], z[5], z[9], z[13], ff_cos_16[1], ff_cos_16[3]);
        TRANSFORM(z[3], z[7], z[11], z[15], ff_cos_16[3], ff_cos_16[1]);
 }
@@ -334,13 +328,9 @@ static int fft_init(struct fft_context *s, int nbits, int inverse)
        s->nbits = nbits;
        n = 1 << nbits;
 
-       s->tmp_buf = NULL;
        s->exptab = para_malloc((n / 2) * sizeof(struct fft_complex));
        s->revtab = para_malloc(n * sizeof(uint16_t));
        s->inverse = inverse;
-
-       s->exptab1 = NULL;
-
        for (j = 4; j <= nbits; j++) {
                int k = 1 << j;
                double freq = 2 * M_PI / k;
@@ -353,7 +343,6 @@ static int fft_init(struct fft_context *s, int nbits, int inverse)
        for (i = 0; i < n; i++)
                s->revtab[-split_radix_permutation(
                        i, n, s->inverse) & (n - 1)] = i;
-       s->tmp_buf = para_malloc(n * sizeof(struct fft_complex));
        return 0;
 }
 
@@ -361,29 +350,6 @@ static void fft_end(struct fft_context *ctx)
 {
        freep(&ctx->revtab);
        freep(&ctx->exptab);
-       freep(&ctx->exptab1);
-       freep(&ctx->tmp_buf);
-}
-
-DECLARE_ALIGNED(16, float, ff_sine_128[128]);
-DECLARE_ALIGNED(16, float, ff_sine_256[256]);
-DECLARE_ALIGNED(16, float, ff_sine_512[512]);
-DECLARE_ALIGNED(16, float, ff_sine_1024[1024]);
-DECLARE_ALIGNED(16, float, ff_sine_2048[2048]);
-DECLARE_ALIGNED(16, float, ff_sine_4096[4096]);
-
-float *ff_sine_windows[6] = {
-       ff_sine_128, ff_sine_256, ff_sine_512, ff_sine_1024,
-       ff_sine_2048, ff_sine_4096
-};
-
-// Generate a sine window.
-void sine_window_init(float *window, int n)
-{
-       int i;
-
-       for (i = 0; i < n; i++)
-               window[i] = sinf((i + 0.5) * (M_PI / (2.0 * n)));
 }
 
 /**