[XviD-devel] GMC update

Marco Al xvid-devel@xvid.org
Thu, 2 Jan 2003 11:31:59 +0100


Christoph Lampert wrote:

> 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...

I think gmc_c is about as straight as it is going to be, in fact in converting
it to asm the algorithm will get a lot less straight. Those border checks have
to be moved outside of the inner loop for a start, so you will need 2 GMC
routines (one for when all reference pixels are inside the borders, one for when
they are not).

I think the best approach would be to unroll the outerloop to get parallelism
for MMX, having the innerloop work on 2 scanlines at a time.

> 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 ;-)

You have the final version? Could you pass it on? :) (It was on the web a short
time, but the server it was on disappeared.)

> His method might help to SIMD the whole stuff, even though GMC is pixel-
> and not block-based.

Hmmm? It is MB selective, but inside the MB it is still pixel based ... just as
FFMPEG's code is and just as XviD's code will have to be.

Marco