[MPlayer-dev-eng] bogus overloaded quality var for mp3lame encoding

D Richard Felker III dalias at aerifal.cx
Wed May 1 06:22:51 CEST 2002


I've been looking into the mysteries of the quality (q) setting for
lame mp3 encoding in mencoder, and it seems that it's overloaded to
have two different functions depending on whether it's in VBR or CBR
mode.

In CBR mode, "q" controls the noise shaping and psycho-acoustic model.

In VBR mode, "q" is essentially a bitrate control. Better "q" means
use more bits to make the encoded audio match the original better.
Even though LAME seems to provide such a facility, there is NO WAY to
have mencoder tell LAME what quality to use in terms of noise shaping
and psycho acoustics. In particular, the default q=5 will be used in
VBR mode, which means more bits have to be wasted to get the same
quality.

Overall, this whole situation seems to be entirely broken. These two
settings, "VBR quality" and "algorithmic quality", have nothing to do
with one another, and need to be configurable independently, so "q"
should not control both of them. I'd like to ask permission to fix
this, since changes may affect compatibility with old command line
syntax.

I doubt many people have used CBR so far (especially since it doesn't
work with WMP or whatever), so it would probably be acceptable to just
make "q" control VBR quality, and mode the LAME algorithm quality
setting to another option. But if this isn't ok, how about the
following setup:

Have two new separate variables, VBR quality and the other quality,
both initially -1. Export them as options so they can be configured by
the user. But, if they're still -1 when it gets to time to initialize
LAME, initialize them in the old (brain damaged) way based on "q".
Make sense?

Comments, Arpi?

Rich







More information about the MPlayer-dev-eng mailing list