LAME

Mike Cheng / Mark Taylor

 

Not Rated

 

Version 3.85b - 7/3/00

  • Mid/side stereo demasking thresholds updated.
  • New short block MDCT coefficient data structure. Should allow for future speed improvements.
  • fixed bug in old VBR routine, the --noath mode messed up the VBR routine resulting in very large files
  • found bugs in some sections when using 32 bit floating point. Default is now back to 64bit floating point.
  • Modified PE formula to use ATH.
  • README.DJGPP - instructions for compiling LAME with DJGPP, the dos version of gcc.

Version 3.84b - 6/30/00

  • .wav file output (with --decode option) was writing the wrong filesize in the .wav file. Now fixed.
  • (optional) Vorbis support, both encoding and decoding. LAME can now produce .ogg files, or even re-encode your entire .ogg collection into mp3. (Just kidding: it is always a bad idea to convert from one lossy format to another)
  • Bug fixed causing VBR to crash under windows. (pretab[] array overflow)
  • Another bug found in the mpg123 MPEG2 tables. Now fixed for the mpg123 based decoder in LAME.
  • VBR histogram works in win32. compile with -DBRHIST -DNOTERMCAP
  • LAME CBR will now use scalefac_scale to expand the dynamic range of the scalefactors.
  • Library improvements: exit()'s, printf, fprintf's are being replaced by interceptable macros.

Version 3.83b - 5/19/00

  • Bug in buffering routines: in some cases, could cause MDCT to read past end of buffer. Rare in MPEG2, even more rare for MPEG1, but potentially serious!
  • MDCT/polyphase filterbank was not being "primed" properly. Does not effect output unless you set the encoder delay lower than the default of 576 samples.
  • "vdbj" and "Caster" found several VBR bugs (now fixed): 1. Analog silence detection only checked frequencies up to 16khz. 2. VBR mode could still somehow avoid -F mode. 3. VBR mode would ignore noise above 16khz (scalefactor band 22), Now calc_noise1 will compute the noise in this band when in VBR mode. Not calculated in CBR mode since CBR algorithm has no way of using this information.
  • Scalefactor band 22 info (masking(=ATH), noise and energy) now displayed in frame analyzer.
  • VBR code ATH tuning was disabled by accident in 3.81, now fixed.
  • Lame --decode will produce .wav files. (oops - size is off by a factor of 4)

Version 3.82b - 5/11/00

  • Fixed bug in high bitrate joint stereo encodings.
  • New long block MDCT routine

Version 3.81b - 5/8/00

  • All ISO code removed
  • new window subband routines.
  • Bug fix in mpglib (decoding) lib: in some cases, MDCT coefficients from previous granule was incorrectly used for the next granule.
  • ISO 7680 bit buffer limitation removed. It can be reactivated with "--strictly-enforce-ISO" Please report any trouble with high bitrates.

Version 3.80b - 5/6/00

  • More efficient and faster huffman encoding
  • Much improved short block compression
  • MPEG2.5 now supported
  • Incorporated Takehiro's bitstream.c! bitstream.c used by default, but old ISO bitstream code can also be used.
  • Good resampling routine finaly in LAME. uses a 19 point FIR filter with Blackman window. Very slow for non integer resampling ratios.
  • Fixed SIGBUS error: VBR and id3 tags were using data after it was free()'d.
  • Improved VBR tuning. #define RH_QUALITY_CONTROL and #RH_SIDE_VBR now the defaults.
  • LAME version string now added to ancillary data.
  • VBR histogram support for Amiga.
  • VBR stats (but not histogram) for DOS verson.
  • Rare VBR overflow bug fixed.
  • -F option strictly enforces the VBR min bitrate. Without -F, LAME will ignore the minimum bitrate when encoding analog silence.
  • User can now specify a compression ratio (--comp ) instead of a bit rate. Default settings based on a compression ratio of 11.0
  • Free format bitstreams can be created with --freeformat, and specify any integer bitrate from 8 to 320kbs with -b.
  • Lame can be used as a decoder (output raw pcm only): lame --decode input.mp3 output.pcm

Version 3.70b - 4/6/00

  • "LAME 3.69beta becomes LAME 3.70 "stable"

Version 3.69b - 4/6/00

  • "spahm": default mode selection bug fixed. In some cases, lame was defaulting to regular stereo instead of jstereo when the user did not specify a mode.

Version 3.68b - 4/4/00

  • mono encoding bug in DLL fixed.
  • bug in --cwlimit argument parsing fixed.
  • bug in 4-point resample code fixed.

Version 3.67b - 3/27/00

  • jstereo now enabled for MPEG2 encodings
  • old M/S stereo mode which used L/R maskings has been removed.
  • Xing MPEG2 VBR headers now working.
  • When quantized coefficients are all 0 in a band, set scalefactors to 0 also to save a few bits.
  • Problems with framesize calculation when using -f fast-math option fixed.

Version 3.66b - 3/21/00

  • Bug fixes in BladeEnc DLL, possible click in last mp3 frame, VBR historgram display, byteswapping option, ASM quantize routines work for both float and double.

Version 3.65b - 3/17/00

  • Enabled ASM version of quantize_xrpow() - accidently disabled in lame3.64.

Version 3.64b - 3/16/00

  • Don Melton: id3v1.1 tags & id3 bugfixes
  • Gabriel Bouvigne: L/R matching block type fix
  • Bug fixed which was allowing quantized values to exceed the maximum when not using -h
  • Fitlers based on polyphase filterbank. should be slightly better since the responce is independent of the blocktype, and they are slightly faster.
  • API: the API changed slightly - and this should be the final version. There is a new routine: lame_encode_buffer() which takes an arbritray sized input buffer, resamples & filters if necessary, encodes, and returns the mp3buffer. There are also several new #defines, so it is possible to compile a simple encoding library with no decoding or file I/O or command line parsing. see the file API for details.
  • MSVC stuff: lame.exe (with and without the frame analyzer) and the CDex lame_enc.dll should compile under MSVC. The MSVC5 project files may need some tweaking. In particular, you need to make sure LAMEPARSE, LAMESNDFILE and HAVEMPGLIB are defined. (and HAVEGTK for the GTK stuff).

Version 3.63b - 2/20/00

  • Robert Hegemann: FPE with -h fixed?
  • Mathey Hendry: FPE error catching for Cygwin, FPE fix for vbr mode and output to /dev/null
  • Jeremy Hall: Fixed problems with input files where the number of samples is not known.
  • Mathew Hendry: ASM quantize_xrpow() for GNU i386
  • Wilfried Behne quantize_xrpow ()for PowerPC and non-ASM
  • Takehiro Tominaga: GOGO FFTs (not yet used?)

Version 3.62b - 2/9/00

  • Iwasa Kazmi: frame analyzer short block display of single subblocks (press 1, 2 or 3)
  • Ingo Saitz: --help option added, with output to stdout
  • Alfred Weyers: short block AAC spreading function bug fixed
  • Takehiro Tominaga: new scalefac data structure - improves performance
  • Lionel Bonnet: Bug fixed in MPEG2 scalefactor routine: scalefactors were being severly limited.
  • Takehiro Tominaga: faster FFT routines from. These routines are also compatible with the GOGO routines, in case someone is interested in porting them back to LAME.
  • Sigbjørn Skjæret, Takehiro Tominaga: faster pow() code.
  • Joachim Kuebart: Found some unitialized variables that were effecting quality for encodings which did not use the -h option (now fixed).
  • More modularization work. It is now possible to use LAME as a library where you can set the encoding parameters directly and do your own file i/o. The calling program is now it's own mp3 output. For an example of the LAME API, see main.c, or mp3rtp.c or mp3x.c. These can all be compiled as stand alone programs which link with libmp3lame.a.
  • Felix vos Leitner: mp3rtp fixes. mp3rtp is a standalone program which will encode and stream with RTP.
  • Robert Hegemann: Information written to stderr displaying exactly which type of lowpass filter (if any) is being used.
  • Iwasa Kazmi: mpglib (the mpg123 decoder) scsfi decoding fixes.
  • Takehiro Tominaga: More mpglib scsfi decoding fixes.

Version 3.61b - 1/14/00

  • Fixed bug with lowpass filters when using VBR with a 64kbs or lower min bitrate setting.
  • Takehiro Tominaga: more efficient huffman encoding splitting.

Version 3.60b - 1/9/00

  • Distribution now comes with self test. Needs work to be automated, see 'make test' in Makefile.
  • AAC spreading function now the default
  • Gabriel Bouvigne: updated HTML docs
  • Felix von Leitner: compute correct file length from Xing header (if present) when input file is a mp3 file
  • Felix von Leitner: mp3rtp (standalone) program now included. Not yet tested. mp3rtp ip:port:ttl <infile> /dev/null will stream directly to ip:port using RTP.

Version 3.59b - 1/4/00

  • Takehiro Tominaga: --noath option. Disables ATH maskings.
  • Gabriel Bouvigne: updated HTML docs.
  • Iwasa Kazmi: makefile fixes
  • Mark Taylor: Fixed bug where first frame of data was always overwritten with 0's. Thanks to 'gol'
  • Mark Taylor: bug fixes in mid/side masking ratios (thanks to Menno Bakker)
  • Mark Taylor: replaced norm_l, norm_s table data with formulas.

Version 3.58b - 12/13/00

  • Segher Boessenkool: More accurate quantization procedure! Enabled with -h.
  • Mathew Hendry, Acy Stapp and Takehiro Tominaga: ASM optimizations for quantize_xrpow and quantize_xrpow_ISO.
  • Chuck Zenkus: "encoder inside" logo on web page
  • Mark Taylor: a couple people have asked for this. Allow LAME to overide VBR_min_bitrate if analog_silence detected. Analog_silence defined a la Robert: energy < ATH.
  • An Van Lam: Valid bitrates were being printed for layer 2, not layer 3!
  • Ethan Yeo: Makefile.MSVC updated
  • Mark Stephens: updated all MSVC project files
  • Robert Hegemann: lowpass and highpass filters can be enabled with --lowpass, --highpass
  • Mark Taylor: MS switching is now smoother: ms_ratio average over 4 granules
  • Takehiro Tominaga: Scalefactor pre-emphasis fixed (and now turned back on)
  • Takehiro Tominaga: Bug in M/S maskings: switch to turn on stereo demasking code was buggy.

Version 3.57b - 11/22/00

  • Sigbjørn Skjæret, patch to allow encoding from 8bit input files when using LIBSNDFILE
  • Automatic downsampling to nearest valid samplerate.
  • Scalefactor bands demarked on MDCT plot in frameanalyzer
  • Scalefactor preemphasis disabled for now. The algorithm was often doing more harm than good.

Version 3.56b - 11/19/00

  • Kimmo Mustonen: portabilty code cleanup.
  • Vladimir Marek: id3 genre patch.
  • Conrad Sanderson: new applypatch script.
  • Initial window type now "STOP_TYPE" to reduce initial attenuation. This is needed because the new encoder delay is so short. With a NORM_TYPE, the first 240 samples would be attenuated.
  • Padding at end of file now adjusted (hopefully!) to produce as little padding as possible while still guarantee all input samples are encoded.
  • Takehiro Tominaga: Reduced shortblock extra bit allocation formulas by 10% since new huffman coding is at least 10% more efficient.

Version 3.55b - 11/1/00

  • Albert Faber: updated BladeEnc.dll
  • Simple lowpass filter added to linear downsampling routine.
  • Nils Faerber: updated man page.
  • All floating point variables are delcared FLOAT or FLOAT8. Change the definition of FLOAT8 in machine.h to run at 32bit preceision.
  • Bug (introduced in 3.54beta) in stereo->mono downsampling fixed.
 

Download

This program is freeware and has no trial limitations. It is distributed under the GNU Lesser Public License and the source code is also available from the Product Download Page.

Product Download Page
lame385.zip 146.0 KB

 

Related