[XviD-devel] want to give a hand

Marc FD xvid-devel@xvid.org
Wed, 24 Jul 2002 18:00:21 +0200


> Hi Marc,
>
> > I'm playing around with the mmx/xmm/isse/3dnow i.sets since 3 days and i
think it's
> > time to make something "usefull"
> > s.o. said there where always things to be "MMXed" so if there is
> > something like it to do, i would help if i can :)
> > (it would be kind if you can lemme do something "easy" to begin, but
> > i think all easy opt. are already done...)
>
> No, actually I just saw I could need somethings: interpolate_48x48_mmx
> or interpolate_48x48_xmm (even interpolate_48x48_c).

mmh, i think i can handle that ...

>
> For B-frame motion estimation I could use a routine that does bilinear
> interpolation between two image (see e.g. sad16bi_c or sad16_bi_mmx): Add
> to areas together and devide the result by 2.
> This has to be done for areas of the size 48x48 (this is some special
> condition in B-frame ME) like this:
>
> 1) the routine get's two source pointers ref1, ref2 with a stride value
> stride_src and a destination pointers dest with stride_dest.
>
> 2) the routine interpolates between the two images: from ref to ref+47
> pixels, and from ref to ref+47 rows and saves the result to dest area.
> An advanced version could get an extra "rounding" flag, that tells whether
> to round up or down, but for the beginning, this is not needed.
>

I think i could really make this. that's exactly the kind of things
i make in avisynth filters....

> There are similar routines already, which you can check, but not this
> one exactly, so it could be a good start to practice.
>
> gruel
>
> P.S. Try to get it _faster_ than plain C ;-)
>

Thx. I will go for a c/mmx/isse version (and maybe a 3dNow!2 for my CPU
:))))

PS : For asm i curently only use inline asm(with __asm statements), but i
think if you want it in a .asm file, it's
really very easy to port...