<html> <head> <title>tooLAME changes</title> <style> <!-- BODY { BACKGROUND: #FFFFFF; COLOR: #000000; FONT-SIZE: 10pt; FONT-FAMILY: verdana, sans-serif } A { COLOR: #111177; TEXT-DECORATION: none } TD { font-size: medium; font-weight:normal } --!> </STYLE> </head> <body> <table border = 0 width="75%" align="center"><tr><td> <h1>TooLAME 02l - 2 March 2003</h1> <UL> <LI> <b>Major psychoacoustic model overhauls</b> <UL> <LI> For more detail, see <a href="psycho.html">psycho models</a> <LI> <b>Psychoacoustic Model 3</b> <UL> <LI> 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. <LI> Uses arrays for keeping tone/noise labels rather than the really hard to grok pointer-stuff from the dist10 code. <LI> Uses Painter + Spanias' Formula for the ATH rather than the tables from the standard. <LI> Uses LAME's freq-to-bark conversion to construct the critical bands. <LI> 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. <LI> Eliminated all the ISO/dist10 tables. Everything is from equations or built from scratch. </ul> <LI> <b>Psychoacoustic Model 4</b> <UL> <LI> A reimplementation of psychoacoustic model 2. <LI> Eliminated all the ISO/dist10 tables. Everything (ath, bark, critical bands) is from equations or built from scratch <LI> 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. </ul> <LI> <b>Psychoacoustic Model 0</b> <UL> <LI> This model uses the ATH and the scalefactors for each subband to build an approximate SMR for each subband at nearly zero cost. <LI> 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. <LI> For the amount of effort that this psycho model puts in, the results are pretty good. <LI> Future: Add some parameters to the equation to allow it to be tweaked on the fly. </UL> <LI> <b>Psychoacoustic Model -1</b> <UL> <LI> This is the old "fast" psychoacoustic model ("-f"). <LI> All it does is copy over a static set of pre-calculated SMR values <LI> Sounds OK for most stuff. </UL> </UL> <LI> <b>New bitstream encoding routines (encode_new.c)</b> <UL> <LI> All the old tables.c/alloc_table stuff is now superfluous. <LI> All tables are now at the top of encode_new.c <LI> 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. <LI> These new routines are the default, but you can remove the "NEWENCODE" definition and use the old ones (just in case). <LI> The new routines will become the default in the next release. </UL> <LI> <b>More speed</b> <UL> <LI> All the trig stuff for psychomodel 4 is now done with tables instead of calculating exact values. <LI> The <i>exact</i> 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. </UL> </UL> <HL> <h1>TooLAME 02k - 16 February 2003</h1> <UL> <LI> Some great speedups with a combined filtersubband and windowsubband (Ricardo Schelp ricardoschelp at arnet.com.ar) <LI> Cleaned up the psycho model calling (should be easier to add your own psycho model if you felt like having a hack) <LI> DAB Extensions are now of variable length controlled by an argument to the -D switch (Nicolas Croiset - ncroiset at vdl.fr) <LI> Fixed raw PCM reading to no longer miss the first 40 bytes. (MFC) <LI> No longer a 4GB limit when reading from stdin (or if your filesys supports) (Nicolas) <LI> Tweaks to the end of the bitstream to allow concatentation of mp2 files (Nicolas) <LI> Finally (?) fixed the segfaults using psy model 1 (Nicolas et al) </ul> <HL> <h1>TooLAME 02j - 12 Feb 2003</h1> <UL> <LI>Definitely LGPL now. <LI>encode.c - VBR mode has been stabilised to work correctly for all sampling frequencies (<a href="vbr.html">README.VBR</a> has more details) <LI>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) <LI>spelling fix for 'extension' - Philippe again <LI>psycho_I.c - Speedup for "% 1408" calcs "-DSAMI_P1" sami.sallinen at g-cluster.com (about 4% overall speedup for me) <LI>subband.c - Pointer arithmetic for filter subband "-DSAMI_SB" (sami again) (doesn't give any advantage over gcc3.2 on my system) <LI>psycho_II.c <UL> <LI> enabled the use of gcc's _sincos(). "-DSINCOS -D_GNU_SOURCE" about a 5% overall speed-up in encoding (Philippe again) <LI> added the LSF frequencies so that you can use psy model 2 with LSF (good old Philippe) </UL> <LI>verbosity - added a '-t' flag to set the 'talkativity' level needed for transcode plugin (Andreas neukoetter - anti at webhome.de) <LI>toolame.c - LSF files should now select a valid default bitrate by default. (96kbps) </li> </tr></td> </body> </html>