On Tue, 19 Oct 1999, Takehiro Tominaga wrote:
> Check my latest MDCT routine.
> MDCT routine in my old snapshot has lot of bugs, but in latest one,
> most of them are debugged. I think latest one is almost perfect...
lame-1017-4: http://www.isoternet.org/~tominaga/lame-beta/
very very very nice, but did you experiment with the fact that
(maybe?) we don't need 512 w[x] coefficients but only 256 due to the
symmetry/mirrorring (+: reduces mem footprint with 1K if float, 2K if
double, -:more complex (to write loops), etc etc).
So, did you/anyone compare and/or try (I know, exactly the same things as
in earlier postings, just want to make sure anyone interested gets it):
step/question1:
If I am correct then (did not check everything) you would have to
add a new setting of ""w=&window[-k]"" just before
t += xx[256] * w[256];
t += xx[320] * w[192];
t += xx[384] * w[128];
t += xx[448] * w[64];
and change += into -=
Note that some w-values will still be loaded twice, so:
step/question2:
or is it possible/better to rewrite loops so that
some_val1 += xx[ 1] * (temp = w[ 1]); // not [0] I think
some_val2 -= xx[511] * temp;
etc.
so w[0..256] contains everything needed and each w gets loaded only once.
regards,
Patrick.
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )