[MPlayer-users] Difference between vqscale and vqmin/vqmax values (quality vs. quantizer?)

D Richard Felker III dalias at aerifal.cx
Tue Jun 1 19:59:58 CEST 2004


On Tue, Jun 01, 2004 at 01:00:39PM -0400, Jason Tackaberry wrote:
> I've noticed that vqmin and vqmax don't accept floating point values
> where as vqscale does.  My understanding was that the values passed to
> these parameters both selected quantizers, however looking at ve_lavc.c
> and avcodec.h, it looks like this isn't the case.
> 
> Seems that vqscale gets mapped to an integer value between 1-32767 and
> then assigned to a "quality" variable in a lavc struct.  This suggests
> that with vqscale, libavcodec implements constant quality as opposed to
> a fixed quantizer.

No, it really is fixed per-frame quantizer. But quantizer can vary
per-macroblock, so perhaps this is how it works. Why not RTFS? That's
the only way you'll really know. But anyway the "quality" variable is
just poorly named. It's really the (scaled) quantizer.

> I suppose, in practical terms, I'm asking: how would a single pass with
> vqscale=3 compare in PSNR to a two-pass with vqmin=3:vqmax=3 (assuming
> vbitrate was set sufficiently high enough so as not to get in the way)?

This is nonsense. There's no use for two-pass if quantizer is forced
to 3!!

Rich





More information about the MPlayer-users mailing list