[XviD-devel] PlainC optmization

Michael Militzer michael at xvid.org
Tue Mar 4 19:13:47 CET 2003


Hi,

have you checked xmm for comparison? Is it much faster than mmx?

BTW: I believe that my interpolate8x8_avg2 function should be faster than
the normal interpolate8x8_[h,v] functions (at least mmx vs. mmx). However I
think I never exactly profiled the functions (or if I did I forgot about
it). I remember that I had planned to replace the old mmx interpolation code
with the new one from avg2 but then didn't had the time/forgot about it.

So I would be quite interested to know how avg2 mmx performs vs. normal
interpolate[h,v] mmx. And since you are currently profiling anyway... ;-)

bye,
Michael

----- Original Message -----
From: "Christoph Lampert" <chl at math.uni-bonn.de>
To: <xvid-devel at xvid.org>
Sent: Tuesday, March 04, 2003 6:16 PM
Subject: Re: [XviD-devel] PlainC optmization


>
> Sorry, me again...
> I just checked the same for P2 450 MHz (MMX, no MMXEXT).
>
>  ===  test block motion ===
> PLAINC - interp- h-round0 0.502 usec       iCrc=8107
> PLAINC -           round1 0.511 usec       iCrc=8100
> PLAINC - interp- v-round0 0.504 usec       iCrc=8108
> PLAINC -           round1 0.475 usec       iCrc=8105
> PLAINC - interp-hv-round0 0.771 usec       iCrc=8112
> PLAINC -           round1 0.775 usec       iCrc=8103
>  ---
> MMX    - interp- h-round0 0.454 usec       iCrc=8107
> MMX    -           round1 0.455 usec       iCrc=8100
> MMX    - interp- v-round0 0.466 usec       iCrc=8108
> MMX    -           round1 0.466 usec       iCrc=8105
> MMX    - interp-hv-round0 0.670 usec       iCrc=8112
> MMX    -           round1 0.671 usec       iCrc=8103
>
>
> Is this possible? Plain MMX really can't do better than _that_?
> Ouch...
>
> gruel
>
>
>
>
>
> On Tue, 4 Mar 2003, Christoph Lampert wrote:
>
> > Hi,
> >
> > if anyone out there is bored: XVID has lots of places where C-code can
be
> > optimized (in particular many routines for which MMX equivalents exist
> > are not optimized at all):
> >
> > I did the simplest tasks for interpolate8x8: Loop unrolling, removal of
> > dependencies, removal of redundant calculations (of "1-rounding" in this
> > case)
> >
> > Of course it's not important for everyone with MMX, but if it helps on
> > other plattforms and doesn't make the code too unreadable... why not?
> >
> >
> >
> > before:
> >  ===  test block motion ===
> > PLAINC - interp- h-round0 1.992 usec       iCrc=8107
> > PLAINC -           round1 1.990 usec       iCrc=8100
> > PLAINC - interp- v-round0 1.989 usec       iCrc=8108
> > PLAINC -           round1 1.989 usec       iCrc=8105
> > PLAINC - interp-hv-round0 3.181 usec       iCrc=8112
> > PLAINC -           round1 3.180 usec       iCrc=8103
> >
> > after:
> >  ===  test block motion ===
> > PLAINC - interp- h-round0 0.322 usec       iCrc=8107
> > PLAINC -           round1 0.329 usec       iCrc=8100
> > PLAINC - interp- v-round0 0.343 usec       iCrc=8108
> > PLAINC -           round1 0.306 usec       iCrc=8105
> > PLAINC - interp-hv-round0 0.496 usec       iCrc=8112
> > PLAINC -           round1 0.497 usec       iCrc=8103
> >
> >
> > Yeah, I'm such a super-hero ;-)))
> >
> > gruel
> >
> >
> > _______________________________________________
> > XviD-devel mailing list
> > XviD-devel at xvid.org
> > http://list.xvid.org/mailman/listinfo/xvid-devel
> >
>
> _______________________________________________
> XviD-devel mailing list
> XviD-devel at xvid.org
> http://list.xvid.org/mailman/listinfo/xvid-devel
>



More information about the XviD-devel mailing list