Re: [MP3 ENCODER] FFT - fht.c - optimisation for Altivec on Apple

2002-09-18 Thread ruffnex

Thanks Takehiro.

(1) Could you also please provide an overview of and clarify the parameters 
to fft_long() ?

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

- gfc is used to obtain a pointer to the blackman window, of size ???
- x contains the data to be transformed, in sequential order ???
- chn = ???
- buffer = ??? sample data, left/right channel???

(2) Apple's vDSP library features an In-Place Real Fourier Transform.  
Hence, I'm trying to isolate the code in fft.c which does the same thing.  
That is, a fft that operates on time-domain data in time series.

I don't understand (yet) the LAME functions / interfaces and it seems there 
are quite a few optimisation hacks which will make isolating the code 
harder.  Thus, any tips much appreciated...

Cheers
Simon

On Saturday, September 7, 2002, at 06:49 PM, Takehiro Tominaga wrote:

 Hi, ruffnex.
 I am looking forward to AltiVec optimized LAME :)

 r == ruffnex  [EMAIL PROTECTED] writes:

 r After gprof'ing Lame 3.92, and looking at the source, I think
 r fht.c might be an ideal candidate for vectorising with OSX's
 r Altivec optimised DSP library.

 Yes, the code is easy to optimize with the SIMD instructions
 but currently, only 3DNow!-ed code is available which I ported from GOGO.

 r (1) Function arguments

 r static void fht(FLOAT *fz, int n)
 r *fz = ptr to time-domain data (in what order ?)

 the order is 'bit-reversed series order'.
 See the fft_short() and fft_long() functions in fft.c for the details.

 r n = the size of the input data to transform e.g. n-point dft
 r (what is the valid range for n ?)

 only 256 or 1024.

 r (2) the function is in-place (that is, the input data is
 r over-written by the output data)

 yes, you are right. the calculation is done by in-place algorithm.
 --
 Takehiro TOMINAGA // may the source be with you!
 ___
 mp3encoder mailing list
 [EMAIL PROTECTED]
 http://minnie.tuhs.org/mailman/listinfo/mp3encoder


___
mp3encoder mailing list
[EMAIL PROTECTED]
http://minnie.tuhs.org/mailman/listinfo/mp3encoder



Re: [MP3 ENCODER] FFT - fht.c - optimisation for Altivec on Apple

2002-09-07 Thread Takehiro Tominaga

Hi, ruffnex.
I am looking forward to AltiVec optimized LAME :)

 r == ruffnex  [EMAIL PROTECTED] writes:

r After gprof'ing Lame 3.92, and looking at the source, I think
r fht.c might be an ideal candidate for vectorising with OSX's
r Altivec optimised DSP library.

Yes, the code is easy to optimize with the SIMD instructions
but currently, only 3DNow!-ed code is available which I ported from GOGO.

r (1) Function arguments

r static void fht(FLOAT *fz, int n)
r *fz = ptr to time-domain data (in what order ?)

the order is 'bit-reversed series order'.
See the fft_short() and fft_long() functions in fft.c for the details.

r n = the size of the input data to transform e.g. n-point dft
r (what is the valid range for n ?)

only 256 or 1024.

r (2) the function is in-place (that is, the input data is
r over-written by the output data)

yes, you are right. the calculation is done by in-place algorithm.
-- 
Takehiro TOMINAGA // may the source be with you!
___
mp3encoder mailing list
[EMAIL PROTECTED]
http://minnie.tuhs.org/mailman/listinfo/mp3encoder



[MP3 ENCODER] FFT - fht.c - optimisation for Altivec on Apple

2002-09-02 Thread ruffnex

Hi,

After gprof'ing Lame 3.92, and looking at the source, I think fht.c might 
be an ideal candidate for vectorising with OSX's Altivec optimised DSP 
library.

Could somebody please confirm the following (regarding fft.c) :

(1) Function arguments

static void fht(FLOAT *fz, int n)

*fz = ptr to time-domain data (in what order ?)
n   = the size of the input data to transform e.g. n-point dft (what is the 
valid range for n ?)

(2)
the function is in-place (that is, the input data is over-written by the 
output data)

Thanks in advance.  Much appreciated.

Rgds,

Simon

___
mp3encoder mailing list
[EMAIL PROTECTED]
http://minnie.tuhs.org/mailman/listinfo/mp3encoder