[Liboil] idct8x8_s16_mmx seems kind of broken...

David Schleef ds at schleef.org
Wed Dec 21 11:38:46 PST 2005

On Sun, Dec 18, 2005 at 12:29:45PM +0000, Adam D. Moss wrote:
> I'm using the oil_idct8x8_s16() function and I find
> that when liboil selects idct8x8_s16_mmx, the artifacts
> are pretty bad (see attached images), almost regardless
> of the distribution or strength of the DCT coefficients.
> idct8x8_s16_ref is very nearly as fast here and gives
> perfect results as far as I'm concerned (bit-identical to
> idct8x8_f64_c for my tests).

Sorry for taking so long to reply.  It turns out that the testing
code was actually comparing the data in the guard region between
the tested implementation and the reference function.  On most
classes, the data area was much larger than the guard area, so
at least part of the data area was tested.  For idct8x8_s16, the
data fit entirely into the guard area, so inaccuracies were never

I fixed the code in CVS, which means that a bunch of new
implementations are failing now.


David Schleef
Big Kitten LLC (http://www.bigkitten.com/) -- data acquisition on Linux

More information about the Liboil mailing list