>
> Could you please give a little more details about it? How does this actually work?
>Does this
> have any compatibility issue? And why not add an option for this in the binary?
>
> - Zia
>
>
> >
> > 3. "safe VBR". This mode is really CBR, but it keeps the bit
> > reservoir as small as possible and uses VBR to achieve
> > an unlimited bit reservoir. When the target bitrate is
> > (for example) 128kbs, it will produce files slightly larger
> > than 128kbs, but *always* sound better than 128kbs CBR.
> > it also runs just as fast as CBR :-)
> > if you want to try it out, change the #undef SAFE_VBR to
> > #define SAVE_VBR in quantize.c
> >
> > Mark
>
This bitstreams produced by this mode are just like other
VBR streams, so there should be no compatibility problems.
To explain how this works, take a 128kbs CBR for example.
In that case, LAME allocated a base amount of
bits for each frame. This base amount is about 10% less than
a 128kbs stream, so that the bit reservoir is slowly built up.
LAME then allocates extra bits based on the "perceptual entropy",
computed in psymodel.c. If the perceptual entropy is large,
the frame can use the base amount + up to 60% of the reservoir.
These ideas come straight from the ISO docs, but the implementation
in LAME is new (the ISO dist10 code reservoir treatment is a disaster.)
"Safe VBR" is even simpler: It computes the same base
amount of bits for each frame, and then computes extra bits
needed based on the perceptual entropy. But instead of
relying on the bit reservoir (which might be empty)
it just increase the frame size when extra bits are needed.
Mark
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )