fft.c File Reference

#include <config.h>
#include "lame.h"
#include "machine.h"
#include "encoder.h"
#include "util.h"
#include "fft.h"

Include dependency graph for fft.c:

Go to the source code of this file.

Defines

#define TRI_SIZE   (5-1)
#define ch01(index)   (buffer[chn][index])
#define ml00(f)   (window[i ] * f(i))
#define ml10(f)   (window[i + 0x200] * f(i + 0x200))
#define ml20(f)   (window[i + 0x100] * f(i + 0x100))
#define ml30(f)   (window[i + 0x300] * f(i + 0x300))
#define ml01(f)   (window[i + 0x001] * f(i + 0x001))
#define ml11(f)   (window[i + 0x201] * f(i + 0x201))
#define ml21(f)   (window[i + 0x101] * f(i + 0x101))
#define ml31(f)   (window[i + 0x301] * f(i + 0x301))
#define ms00(f)   (window_s[i ] * f(i + k))
#define ms10(f)   (window_s[0x7f - i] * f(i + k + 0x80))
#define ms20(f)   (window_s[i + 0x40] * f(i + k + 0x40))
#define ms30(f)   (window_s[0x3f - i] * f(i + k + 0xc0))
#define ms01(f)   (window_s[i + 0x01] * f(i + k + 0x01))
#define ms11(f)   (window_s[0x7e - i] * f(i + k + 0x81))
#define ms21(f)   (window_s[i + 0x41] * f(i + k + 0x41))
#define ms31(f)   (window_s[0x3e - i] * f(i + k + 0xc1))

Functions

static void fht (FLOAT *fz, int n)
void fft_short (lame_internal_flags const *const gfc, FLOAT x_real[3][BLKSIZE_s], int chn, const sample_t *buffer[2])
void fft_long (lame_internal_flags const *const gfc, FLOAT x[BLKSIZE], int chn, const sample_t *buffer[2])
void init_fft (lame_internal_flags *const gfc)

Variables

static FLOAT window [BLKSIZE]
static FLOAT window_s [BLKSIZE_s/2]
static const FLOAT costab [TRI_SIZE *2]
static const unsigned char rv_tbl []


Define Documentation

#define ch01 ( index   )     (buffer[chn][index])

Definition at line 169 of file fft.c.

Referenced by fft_long(), and fft_short().

#define ml00 ( f   )     (window[i ] * f(i))

Definition at line 171 of file fft.c.

Referenced by fft_long().

#define ml01 ( f   )     (window[i + 0x001] * f(i + 0x001))

Definition at line 176 of file fft.c.

Referenced by fft_long().

#define ml10 ( f   )     (window[i + 0x200] * f(i + 0x200))

Definition at line 172 of file fft.c.

Referenced by fft_long().

#define ml11 ( f   )     (window[i + 0x201] * f(i + 0x201))

Definition at line 177 of file fft.c.

Referenced by fft_long().

#define ml20 ( f   )     (window[i + 0x100] * f(i + 0x100))

Definition at line 173 of file fft.c.

Referenced by fft_long().

#define ml21 ( f   )     (window[i + 0x101] * f(i + 0x101))

Definition at line 178 of file fft.c.

Referenced by fft_long().

#define ml30 ( f   )     (window[i + 0x300] * f(i + 0x300))

Definition at line 174 of file fft.c.

Referenced by fft_long().

#define ml31 ( f   )     (window[i + 0x301] * f(i + 0x301))

Definition at line 179 of file fft.c.

Referenced by fft_long().

#define ms00 ( f   )     (window_s[i ] * f(i + k))

Definition at line 181 of file fft.c.

Referenced by fft_short().

#define ms01 ( f   )     (window_s[i + 0x01] * f(i + k + 0x01))

Definition at line 186 of file fft.c.

Referenced by fft_short().

#define ms10 ( f   )     (window_s[0x7f - i] * f(i + k + 0x80))

Definition at line 182 of file fft.c.

Referenced by fft_short().

#define ms11 ( f   )     (window_s[0x7e - i] * f(i + k + 0x81))

Definition at line 187 of file fft.c.

Referenced by fft_short().

#define ms20 ( f   )     (window_s[i + 0x40] * f(i + k + 0x40))

Definition at line 183 of file fft.c.

Referenced by fft_short().

#define ms21 ( f   )     (window_s[i + 0x41] * f(i + k + 0x41))

Definition at line 188 of file fft.c.

Referenced by fft_short().

#define ms30 ( f   )     (window_s[0x3f - i] * f(i + k + 0xc0))

Definition at line 184 of file fft.c.

Referenced by fft_short().

#define ms31 ( f   )     (window_s[0x3e - i] * f(i + k + 0xc1))

Definition at line 189 of file fft.c.

Referenced by fft_short().

#define TRI_SIZE   (5-1)

Definition at line 51 of file fft.c.


Function Documentation

void fft_long ( lame_internal_flags const *const  gfc,
FLOAT  x[BLKSIZE],
int  chn,
const sample_t buffer[2] 
)

Definition at line 245 of file fft.c.

References ch01, lame_internal_flags::fft_fht, gfc, i, ml00, ml01, ml10, ml11, ml20, ml21, ml30, ml31, and rv_tbl.

Referenced by compute_ffts().

void fft_short ( lame_internal_flags const *const  gfc,
FLOAT  x_real[3][BLKSIZE_s],
int  chn,
const sample_t buffer[2] 
)

Definition at line 193 of file fft.c.

References ch01, lame_internal_flags::fft_fht, gfc, i, ms00, ms01, ms10, ms11, ms20, ms21, ms30, ms31, and rv_tbl.

Referenced by compute_ffts().

static void fht ( FLOAT fz,
int  n 
) [static]

Definition at line 64 of file fft.c.

References costab, i, and SQRT2.

void init_fft ( lame_internal_flags *const  gfc  ) 

Definition at line 292 of file fft.c.

References lame_internal_flags::AMD_3DNow, BLKSIZE, BLKSIZE_s, lame_internal_flags::CPU_features, lame_internal_flags::fft_fht, gfc, i, PI, window, and window_s.


Variable Documentation

const FLOAT costab[TRI_SIZE *2] [static]

Initial value:

 {
    9.238795325112867e-01, 3.826834323650898e-01,
    9.951847266721969e-01, 9.801714032956060e-02,
    9.996988186962042e-01, 2.454122852291229e-02,
    9.999811752826011e-01, 6.135884649154475e-03
}

Definition at line 56 of file fft.c.

Referenced by dct64_1(), fht(), and make_decode_tables().

const unsigned char rv_tbl[] [static]

Initial value:

 {
    0x00, 0x80, 0x40, 0xc0, 0x20, 0xa0, 0x60, 0xe0,
    0x10, 0x90, 0x50, 0xd0, 0x30, 0xb0, 0x70, 0xf0,
    0x08, 0x88, 0x48, 0xc8, 0x28, 0xa8, 0x68, 0xe8,
    0x18, 0x98, 0x58, 0xd8, 0x38, 0xb8, 0x78, 0xf8,
    0x04, 0x84, 0x44, 0xc4, 0x24, 0xa4, 0x64, 0xe4,
    0x14, 0x94, 0x54, 0xd4, 0x34, 0xb4, 0x74, 0xf4,
    0x0c, 0x8c, 0x4c, 0xcc, 0x2c, 0xac, 0x6c, 0xec,
    0x1c, 0x9c, 0x5c, 0xdc, 0x3c, 0xbc, 0x7c, 0xfc,
    0x02, 0x82, 0x42, 0xc2, 0x22, 0xa2, 0x62, 0xe2,
    0x12, 0x92, 0x52, 0xd2, 0x32, 0xb2, 0x72, 0xf2,
    0x0a, 0x8a, 0x4a, 0xca, 0x2a, 0xaa, 0x6a, 0xea,
    0x1a, 0x9a, 0x5a, 0xda, 0x3a, 0xba, 0x7a, 0xfa,
    0x06, 0x86, 0x46, 0xc6, 0x26, 0xa6, 0x66, 0xe6,
    0x16, 0x96, 0x56, 0xd6, 0x36, 0xb6, 0x76, 0xf6,
    0x0e, 0x8e, 0x4e, 0xce, 0x2e, 0xae, 0x6e, 0xee,
    0x1e, 0x9e, 0x5e, 0xde, 0x3e, 0xbe, 0x7e, 0xfe
}

Definition at line 150 of file fft.c.

Referenced by fft_long(), and fft_short().

FLOAT window[BLKSIZE] [static]

Definition at line 54 of file fft.c.

Referenced by gtkcontrol(), inc_subblock_gain(), init_fft(), scale_bitcount_lsf(), set_scalefacs(), and text_window().

FLOAT window_s[BLKSIZE_s/2] [static]

Definition at line 54 of file fft.c.

Referenced by init_fft().


Generated on Sun Dec 2 11:36:02 2007 for LAME by  doxygen 1.5.2