[FFmpeg-devel] FFV1 Specification

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun Apr 8 16:42:00 CEST 2012

On Sun, Apr 08, 2012 at 04:29:18PM +0200, Michael Niedermayer wrote:
> On Sun, Apr 08, 2012 at 04:04:03PM +0200, Reimar Döffinger wrote:
> > > Also in relation to this (10 seconds from the matrix lobby scene)
> > > using rangecoding and the larger context model:
> > > ffv1    GOP=300     23736978
> > > ffv1    GOP=1       25056734
> > > 
> > > ffv1.2  GOP=300     23648224
> > > ffv1.2  GOP=1       23645074
> > > 
> > > and ffv1.2 does low latency multithreaded encoding & decoding for all
> > > who dont know that yet ...
> > 
> > Larger GOP values giving larger file size is not really the expected
> > behaviour though I have to say...
> I dunno, its not so unexpected
> for gop 1 each slice starts with a good average optimized state
> for gop 300 most slices use the previous slices state, this as such
> would likely be better but its not exactly what happens rather the
> left top starts using the coder state of the previous slices bottom
> right and with the matrix lobby scene with 4 rectangular slices the
> tops and bottoms allways are in a different area (black border vs
> picture) this likely gives a penalty relative to starting with
> a middle average state

Well, it certainly isn't from a user standpoint.
Maybe with slices the context should be moved around, i.e. top slice
always gets default state, second slice uses state from first slice
of previous frame etc.
That would also make frame-parallel decoding of dependent frames
more efficient...
It's not that important, but if larger GOP size most of the time
gives worse compression, we probably should refuse to allow setting
GOP size except with a special -strict -2 or such...
(note I haven't actually check what the current state of all this
is, and whether v1.2 is even "official" yet)

More information about the ffmpeg-devel mailing list