[Ffmpeg-devel] [patch] rc buffer bits reservation for I-frames
Sat Nov 25 07:35:18 CET 2006
On Sat, 25 Nov 2006, Michael Niedermayer wrote:
> On Fri, Nov 24, 2006 at 04:11:32PM +0100, Jindrich Makovicka wrote:
>> when using a short RC buffer and tight bitrate restrictions (typically
>> when encoding for DVB), the rate control sometimes tends to use too
>> much bits for P-frames, and when an I-frame gets encoded, there is not
>> enough bits available, causing a sudden quality decrease.
>> Index: ratecontrol.h
>> --- ratecontrol.h (revision 7165)
>> +++ ratecontrol.h (working copy)
>> @@ -63,6 +63,7 @@
>> int num_entries; ///< number of RateControlEntries
>> RateControlEntry *entry;
>> double buffer_index; ///< amount of bits in the video/audio buffer
>> + double prev_iframe_bits;
>> Predictor pred;
> hmm, cant predict_size() be used instead? or is that worse quality?
predict_size() requires some info about the frame. prev_iframe_bits is
used before the next I-frame is even given as input to lavc. I suppose you
use predict_size() on mb_var_sum of the current frame rather than the
exact size of the previous I-frame. Dunno if the variance in the estimate
would cause problems.
More information about the ffmpeg-devel