[Ffmpeg-devel] Intra-frame rate control
RLopez
rlopez
Sat Apr 7 09:17:56 CEST 2007
Hi,
> Hi
> dont top post
Sorry, I'm new to this mailing list. What does top posting mean?
> On Thu, Apr 05, 2007 at 09:29:49PM -0700, RLopez wrote:
>> Hi Michael,
>>
>> If avcodec.lib can only change Q values at picture boundaries for
>> MPEG2 files that's a huge limitation. The advantage of MPEG2 over
>> MJPEG is the ability to change the Q in the middle of an image. A
>> common clip people use to show this off is a field of daisies under a
>> blue sky. The blue sky can be encoded well with a high Q value while
>> the more complex field of daisies portion of the image can be encoded
with a lower Q value.
> libavcodec supports adapting QP based on spatial and or temporal
complexity of macroblocks, if you want to find > > out how then do as i said
and Read The Fine Manual
Can you point me to where the manual discusses this. I looked through all
the manuals on the ffmpeg website and didn't see any mention of adaptive
spatial QP for MPEG2.
>>
>> Another problem I'm seeing caused by avcodec.lib only changing Q
>> values at picture boundaries is that the instantaneous bitrate of an
>> encoded clip jumps around too much. For example when a complex image
>> follows several black frames the bitrate skyrockets because the rate
>> controller lowered the Q during the black frames and doesn't readjust
>> it until the end of the complex frame. This problem is especially bad
when working with HD images.
> the RC algorithm can probably be improved, and patches together with
comparissions of patched vs old encoder are welcome
>>
>> If I'm correct that avcodec.lib will only change Q values at picture
>> boundaries, could someone point me to which files I could modify to
>> change this? I assume mpegvideo.c would be the main one.
> mpegvideo.c and ratecontrol.c are the files you should look at if you want
to play with the ratecontrol code
Thanks, I'll take a look at these 2 files.
> [...]
>> On Wed, Apr 04, 2007 at 02:56:24PM -0700, RLopez wrote:
> [...]
>> > I'm trying to use avcodec.lb to encode 1920x1080 frames in MPEG-2.
>> > I've noticed that the Q value for all the slices in each encoded
>> > frame is always constant. Is this a limitation of avcodec.lib? In
>> > other words can the rate control only adjust Q values at picture
>> > boundaries and not at slice boundaries? Is there a setting
>> > somewhere to allow the library to adjust the Q within a frame
>> > instead of only at frame
>> boundaries.
>>
>> RTFM, RTFS and use ffmpeg-user for user questions
> [...]
> --
> Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
> I do not agree with what you have to say, but I'll defend to the death
your right to say it. -- Voltaire
More information about the ffmpeg-devel
mailing list