[x264-devel] Re: comments is not consistent with source code.
    Loren Merritt 
    lorenm at u.washington.edu
       
    Sun Apr 29 14:45:36 CEST 2007
    
    
  
On Sun, 29 Apr 2007, jogging song wrote:
>  Now I am reading the source code of rate control in x264. The function
> clip_qscale adjusts qscale according to vbv buffer state.
> I find some comments are not consistent with source codes.
> Here is the codes:
>
>       /* Check B-frame complexity, and use up any bits that would
>        * overflow before the next P-frame. */
>       if( h->sh.i_type == SLICE_TYPE_P )
>       {
>           int nb = rcc->bframes;
>           double pbbits = bits;
>           double bbits = predict_size( rcc->pred_b_from_p, q * h->
> param.rc.f_pb_factor, rcc->last_satd );
>           double space;
>
>           if( bbits > rcc->buffer_rate )
>               nb = 0;
>           pbbits += nb * bbits;
>
>           space = rcc->buffer_fill + (1+nb)*rcc->buffer_rate -
> rcc->buffer_size;
>           if( pbbits < space )
>           {
>               q *= X264_MAX( pbbits / space,
>                              bits / (0.5 * rcc->buffer_size) );
>           }
>           q = X264_MAX( q0-5, q );
>       }
>
> The comments tell us that the following codes adjust qscale for B slices.
> But the codes are executed in the case the slice is P.
The comment is correct. It doesn't say it adjusts the QP of the B-frames, 
it says it adjusts the QP of the P-frames to compensate for B-frames. 
Given that B-frames' QP are locked to an offset from the adjacent 
P-frames's QP (and that's optimal for compression), the way to modify the 
qscale for B-frames is to modify the adjacent P-frames.
> I have one question. VBV buffer allows us to change the rate according the
> content of current frame. But how do we make good use of vbv buffer? 
> What is the objective pf vbv buffer in rate control? Try to make it 
> full always?
Before asking what x264 does with VBV, do you know what VBV means in 
general, as descibed in the MPEG-2 and H.264 standards and related docs?
I don't feel up to explaining that.
--Loren Merritt
-- 
This is the x264-devel mailing-list
To unsubscribe, go to: http://developers.videolan.org/lists.html
    
    
More information about the x264-devel
mailing list