Greg Maxwell wrote:
> Currently VBR quality selection only select the number of subbands that
> you permit to be over the psy model (unless I've drifted completely out of
> sync from the codebase), this is a nearly useless metric.
OK, you are a bit out of sync with the codebase. VBR as it is implemented
now does not allow distortions over the psy model thresholds. With VBR_q
you can lower the psy model threshold from -12db (VBR_q = 0) over 0db (VBR_q = 6)
and upper up to +6db (VBR_q = 9) in 2db steps.
Maybe we should sync the docs with the code someday :)
> > > The problem is that the psy models effectiveness for VBR selection use is
> > > very veriable. Sometimes, it thinks there is a ton of masking when there
> > > really isn't. Sometimes it's right on. The linear -2dB or the like really
> > > isn't all that effective.
> >
> > And the linear -2dB permits lame switching to 32kbits on digital silence,
> > when there is absolutely no energy in, forcing always to select max_bitrate.
>
> I dont follow this statement. Can you please clarify?
For digital silence Lame would need no (few?) bits, and for 0 bits you can stick
at 32kbits frames. But if you encode this granule with 0 bits, you'll get a total
noise of 0db. So the binary search won't go down to min_bitrate, but stick at
max_bitrate, cos the requirement tot_noise<=-2 can't be fullfilled.
> > I don't see any chance of speeding up VBR encoding in doing so. You would
> > still have the binary search to get the optimal bits needed, but for
> > ath only mode.
>
> Yes, I'm stupid. :) We only need to compute the threshold once.
>
> > Have you had this 'why the hell did you choose 32K for this *$*@$ frame?!?'
> > situation in recent lame versions?!?
>
> No. I havn't kept up with recent versions because I've been working on the
> ability to control bitrate within a window, and other projects.
>
> [use ath]
> > I'm afraid you would be always too pessimistic in doing so, or you would
> > introduce distortions you don't want.
>
> I dont know that I really agree. I hacked the code a while back to skip
> the bitrate search, and pull the target bitrates from a file. I generated
> a bitrate file by looking at the unquanted mdct and guessing. I got much
> better results then -v0.
>
> > I like the way VBR works now. OK it's slow, and there may be some BUGs still
> > in there, but it's quite useable.
>
> I need to try the newer code, but I found the older code disappointing.
>
> Generally, if set loosely the files were smaller but it made wrong choices
> (like going to low bitrates at the begings of words in speech causing very
> bad distortion), or if set strongly, it wasn't worth it.
>
OK, you may get the new code and try this opts: -V6 -X5 -Y -Z -d
I haven't tried it on speech, but for most test tracks it works well.
You may add the --voice option for speech encoding too.
Robert
--
MP3 ENCODER mailing list ( http://geek.rcc.se/mp3encoder/ )