Working on the 8hz source code...
- Patched the 8hz source code
- 45% faster than original source (on my freebsd p166).
-
- m1 - sped up the mdct.c and quantize() functions [MDCTD, MDCTD2, LOOPD]
- m2 - sped up the filter_subband routine using Stephane Tavenard 's work from musicin [FILTST]
- m2 - minor cleanup of window_subband [WINDST2]
- m2 - Cleaned up a few bits in l3psy.c. Replaced a sparse matrix multiply with a hand configured unrolling [PSYD]
- m3 - (amiga only) Added in the asm FFT for m68k (based on sources from Henryk Richter and Stephane Tavenard)
- m4 - raw pcm support back in
- m5 - put in a byte-ordering switch for raw PCM reading (just in case)
- m6 - reworked the whole fft.c file. fft now 10-15% faster.
- m7 - totally new fft routine. exploits fact that this is a real->complex fft. About twice as fast as previous fastest fft (in m6). (C fft routine is faster than the asm one on an m68k!)
- m8
-
- - Now encodes from stdin. Use '-' as the input filename. Thanks to Brad Threatt
- - Worked out that the 1024point FFT only ever uses the first 6 phi values, and the first 465 energy values. Saves a bunch of calculations.
- - Added a speed-up/quality switch. Speed is increased but quality is decreased slightly. My ears are bad enough not to be able to notice the difference in quality at low settings :). Setting '-q 1' improves speed by about 10%. '-q 100' improves speed by about 26%. Enoding of my test track goes from 111s (at default '-q 0') to 82s (at -q 100). Thanks to Jan Peman for this tip.
- m9 - fixed an error in l3psy.c. numlines[] is overwritten with incorrect data. Added a new variable numlines_s[] to fix this. Thanks again to Jan Peman.
- m10 - Down to 106 seconds by selecting a few more compiler options. Also added a pow20() function in l3loop.c to speed up (ever so slightly) calls to pow(2.0, x)
- m11
-
- No speedups. Just cleaned up some bits of the code.
- Changed K&R prototyping to 'normal' format. Thanks to Steffan Haeuser for his help here.
- Changed some C++ style comments to normal C comments in huffman.c
- Removed the #warning from psy_data.h (it was getting annoying!)
- Removed reference in bitstream.c to malloc.h. Is there a system left where malloc.h hasn't been superceded by stdlib.h?
- In Progess:
-
- my PSYD hack for the spreading functions is only valid for 44.1 kHz - Should really put in a "if freq = 44.1 kHz" switch for it. Someone might want to extend the speedup for 48 and 32 kHz.
- Putting in Jan Peman's quantanf_init speedup.