TooLAME 02l - 2 March 2003
- Major psychoacoustic model overhauls
- For more detail, see psycho models
- Psychoacoustic Model 3
- Psycho3 is a reimplementation of the psychoacoustic model 1 from the
ISO standard. Pretty much totally rewritten from the ground up, following the nomenclature of the ISO standard.
- Uses arrays for keeping tone/noise labels rather than the really
hard to grok pointer-stuff from the dist10 code.
- Uses Painter + Spanias' Formula for the ATH rather than the tables from the standard.
- Uses LAME's freq-to-bark conversion to construct the critical bands.
- Future: Needs a proper geometric mean for weighting the noise. Needs one more function added to the decimation routines which would eliminate maskers within 0.5 dB of each other.
- Eliminated all the ISO/dist10 tables. Everything is from equations or built from scratch.
- Psychoacoustic Model 4
- A reimplementation of psychoacoustic model 2.
- Eliminated all the ISO/dist10 tables. Everything (ath, bark, critical bands) is from equations or built from scratch
- FUTURE: For psycho model 2 and 4 there's some really bad "warbling" and "Davros" type noise. Depending on the loudness of your sound sample, this can get really annoying. I don't know where it's coming from.
- Psychoacoustic Model 0
- This model uses the ATH and the scalefactors for each subband to build an approximate SMR for each subband at nearly zero cost.
- Based upon an idea mentioned in "Low power mpeg/audio encoders using simplified psychoacoustic model and fast bit allocation" by Hyen-O Oh et al.
- For the amount of effort that this psycho model puts in, the results are pretty good.
- Future: Add some parameters to the equation to allow it to be tweaked on the fly.
- Psychoacoustic Model -1
- This is the old "fast" psychoacoustic model ("-f").
- All it does is copy over a static set of pre-calculated SMR values
- Sounds OK for most stuff.
- New bitstream encoding routines (encode_new.c)
- All the old tables.c/alloc_table stuff is now superfluous.
- All tables are now at the top of encode_new.c
- The tables have quite a bit of indirection to get to the value that you need (but really not any more indirection than the old alloc_table stuff). Probably need to add some more docs to say what's going on.
- These new routines are the default, but you can remove the "NEWENCODE" definition and use the old ones (just in case).
- The new routines will become the default in the next release.
- More speed
- All the trig stuff for psychomodel 4 is now done with tables instead of calculating exact values.
- The exact trig values aren't really used directly in the encoder. They're sort of averaged over a couple of iterations and used as a predictor of uncertainty. So being off a few thousandths won't really affect anything.
TooLAME 02k - 16 February 2003
- Some great speedups with a combined filtersubband and windowsubband (Ricardo Schelp ricardoschelp at arnet.com.ar)
- Cleaned up the psycho model calling (should be easier to add your own psycho
model if you felt like having a hack)
- DAB Extensions are now of variable length controlled by an argument to the -D switch
(Nicolas Croiset - ncroiset at vdl.fr)
- Fixed raw PCM reading to no longer miss the first 40 bytes. (MFC)
- No longer a 4GB limit when reading from stdin (or if your filesys supports) (Nicolas)
- Tweaks to the end of the bitstream to allow concatentation of mp2 files (Nicolas)
- Finally (?) fixed the segfaults using psy model 1 (Nicolas et al)
TooLAME 02j - 12 Feb 2003
- Definitely LGPL now.
- encode.c - VBR mode has been stabilised to work correctly for all sampling frequencies (README.VBR has more details)
- get_audio.c has become audio_read.c - cleaned up that really dodgy wave header parsing.
(thanks to Philippe Jouguet - philippe.jouguet at vdl.fr and Henrik Herranen - leopold at vlsi.fi)
- spelling fix for 'extension' - Philippe again
- psycho_I.c - Speedup for "% 1408" calcs "-DSAMI_P1" sami.sallinen at g-cluster.com
(about 4% overall speedup for me)
- subband.c - Pointer arithmetic for filter subband "-DSAMI_SB" (sami again)
(doesn't give any advantage over gcc3.2 on my system)
- psycho_II.c
- enabled the use of gcc's _sincos(). "-DSINCOS -D_GNU_SOURCE"
about a 5% overall speed-up in encoding (Philippe again)
- added the LSF frequencies so that you can use psy model 2 with LSF (good old Philippe)
- verbosity - added a '-t' flag to set the 'talkativity' level needed for transcode plugin (Andreas neukoetter - anti at webhome.de)
- toolame.c - LSF files should now select a valid default bitrate by default. (96kbps)
|