[XviD-devel] want to give a hand

Christoph Lampert xvid-devel@xvid.org
Wed, 24 Jul 2002 12:09:27 +0200 (CEST)


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

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. 

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

> i need to "aim" on something
> 
> tell me if i can help (i hope i could :)
> 
> MarcFD  marc.fd@libertysurf.fr
> 

-- 
Christoph H. Lampert chl@math.uni-bonn.de | Diese Signature wurde maschi-     
Beringstr. 6, Raum 14 Tel. (0228) 73-2948 | nell erstellt und bedarf
Sprechstunden: keine, aber meistens da    | keiner Unterschrift. AZ 27B-6