[MPlayer-cvslog] CVS: main/libmpcodecs ve_lavc.c,1.111,1.112

Loren Merritt lorenm at u.washington.edu
Wed Mar 2 23:02:54 CET 2005


On Wed, 2 Mar 2005, Guillaume Poirier wrote:
> On Wed, 2 Mar 2005 15:08:45 -0500, D Richard Felker III
> <dalias at aerifal.cx> wrote:
>> On Wed, Mar 02, 2005 at 08:28:45PM +0100, Guillaume Poirier CVS wrote:
>>
>> If you're experimenting with this, could you see what happens if you
>> encode pass1 by scaling way down (e.g. 1/2 width and height) with
>> vf_scale, and then encode pass2 at full size? i.e. does the psnr
>> significantly drop? It might be necessary to do some renormalization
>> of the data in the log file for such a hack to work, but I suspect if
>> done correctly it might, and of course it would make another 50%
>> speedup or something...

Good idea, but I think "renormalization" would be nontrivial: The amount 
of bitrate you save by downscaling depends on the amount of detail and/or 
noise in the video.
So for a very fast 1st pass, I suggest the following:
Encode the whole video using fast settings and/or lower resolution. 
Additionally, encode some small fraction of the frames at full quality (in 
groups, e.g. 10-20 consecutive frames here and there). This gives you both 
an approximate bitrate curve for 2pass allocation, and also an estimate of 
how much to multiply the 1st pass bitrate by to compensate for the turbo.
Disadvantage: I think this would need some code in lavc, not just in 
mencoder.

This idea was inspired in part by AutoGK's compression test, and in part 
by x264's B-frame decision.

> As far as the renormalization is concerned, I guess a constant-quant
> (like vqscale=2) encode for the first pass could do the trick,
> couldn't it?
> Well, reading x264's section of the manpages, it kind of states that
> should a first pass be done with constant quants, it's better if the
> constant quant used is close to average quants in the resulting video,
> so I don't know what I should do...

The 1st pass should be as close as possible to the distribution of quants 
used in the 2nd pass. x264's 2pass is closer to CQP than it is to CBR. But 
even better would be a 1pass VBR mode that uses the same curve compression 
as 2pass.
(BTW, I recommend vqcomp=.6 or .7 in lavc too, in which case CQP 1st pass 
becomes good there too.)

--Loren Merritt




More information about the MPlayer-cvslog mailing list