[MPlayer-users] [BUG] lavc error - 2pass curve failed to converge

Loren Merritt lorenm at u.washington.edu
Sat Jul 15 19:29:14 CEST 2006


On Fri, 14 Jul 2006, Corey Hickey wrote:
> If I recall correctly, simply changing fabs() back to abs() isn't really the 
> right solution, since fabs() is doing what it's supposed to. Changing the 
> 0.01 threshold might be in order, or perhaps it might be better to find why 
> the threshold is being exceeded.

Just in case it helps anyone debugging:
x264 uses the same ratecontrol framework with the same threshold 
(including fabs), and it works (i.e. complains if and only if bitrate 
can't be satisfied given the qp_min or qp_max).
The only fix related to convergence I remember making is:
Instead of an absolute search range for ratefactor

     for(step=256*256; step>0.0000001; step*=0.5){
         rate_factor+= step;

to initialize it based on a closed-form solution

     step_mult= available_bits / expected_bits;
     for(step=256*256; step>0.0000001; step*=0.5){
         rate_factor+= step*step_mult;

because different rc_eq's need very different search ranges.

--Loren Merritt



More information about the MPlayer-users mailing list