[XviD-devel] Global Motion Compensation

Christoph Lampert xvid-devel@xvid.org
Thu, 24 Oct 2002 12:54:14 +0200 (CEST)


On Thu, 24 Oct 2002, Michael Niedermayer wrote:

> Hi
> 
> On Tuesday 22 October 2002 11:34, Christoph Lampert wrote:
> > Hi,
> >
> > two questions for the experts, since I started to look at GMC again but
> > have no reference material (there's no DivX5pro for Linux and micro$oft
> > reference software doesn't compile).
> momusys does compile on linux


Where is the GMC code in that? I just found routines to load warping 
information from files. 


> > 1) What parameter models does DivX5 support for GMC encoding/decoding
> >   (affine, 4?, 6?)
> LOL
> 
> translation only (=1)
> but they transmit it as several warppoints, at least they did in the past, 
> havnt checked the latest version, that means the 2nd one is allways (0,0)
> 
> >
> > 2) What parameter models does ffmpeg support for decoding
> >   (there's no encoding, yet, right?)
> no encoding
> decoding support is complete that means 3 points max as the standart only 
> allows 1,2,3 for GMC, 4 points is only allowed for sprites

great! 


> > 3) How much work would it be to add GMC decoding to XviD decoder API-3?
> >    I guess it's the only feature missing to be a full Advanced Simple
> >    profile decoder and for testing I would love to be able to use
> >    xvid_stat.
> hmm advanced simple allso requires the error resilience stuff IIRC (i might be 
> wrong though)
> 
> btw, iam not sure if GMC encoding with >1 warp point is such a great idea, the 
> speed loss is huge for decoding and that would make the files unplayable on 
> older CPUs

Yeah, maybe. But on the other hand, CPUs get faster every day and I don't
believe in simply ignoring a feature because it's too slow... If you
encode for yourself and know that your machine is fast enough for
decoding, why not use everything possible? Smolic implemented a real-time
GMC _encoder_. Maybe more tweaks are possible for fast decoding, too. 
(pre calculated tables or something...)

The only argument would be that you don't gain anything from GMC, which
may be true for most videos, but sometimes it seems to help during
zoom/pan, so I'll at least have a look. 

> btw: 
> 1 warp point  -> translation
> 2 warp points -> means translation+rotation+scaling
> 3 warp points -> affine
> 4 warp points -> perspective (not allowed in GMC)

Okay, I didn't check about the 4 points, but it would have been 
too much computational effort for the moment anyway. 

gruel