[XviD-devel] GMC update

Christoph Lampert xvid-devel@xvid.org
Thu, 2 Jan 2003 10:57:33 +0100 (CET)


On Thu, 2 Jan 2003, Marco Al wrote:

> Christoph Lampert wrote:
> 
> > Btw. creating the transformed image is integer-only again, but it's really
> > ugly "ISO standard"ish code:
> 
> Why not jack FFMPEG's code? It seems to come from one of the reference
> implementations rather than the standard, it has a more sane incremental
> implementation. It is LGPL so you can relicense it to GPL.

ffmpeg does not encode, so we could just reuse compensation. 
Actually, the routines themselves are not so much of a problem, they are
ugly in ffmpeg as well, because it's simply the algorithm that is ugly.

I wanted to first create a version which is as straight as possible so
other people might read it, understand the "idea" and convert to ASM. 
We can do speedup later... 


> > (so global motion is 16th-pel resolution and is bilinearily interpolated)
> 
> Isnt the resolution variable?

Yes, but I can't see any reason to choose lower values. 
It's won't become simpler or faster... but I couldn't check quality, of
course... 



> > Any ideas how to speed this stuff up, maybe even MMX?
> 
> If anyone wants to do it they might want to consider asking Andreas Dehnhardt
> for his thesis, he implemented on a 64 bit SIMD processor (which is bound to be
> pretty close to MMX). There is an old version on his website which only explains
> the process of GMC and analyzes the incremental version of GMC from the
> reference code, but it lacks any of the conversion to SIMD :
> 
> http://www.stud.uni-hannover.de/user/73346/StA-Dehnhardt.pdf


Yes, I have a copy of the season somewhere but thanks for mentioning it.
It looks helpful (at least for the german speaking part of the world ;-)
His method might help to SIMD the whole stuff, even though GMC is pixel-
and not block-based. 

gruel