Even voor alle duidelijkheid:
Geoptimaliseerd is de IEEE-1180 reference iDCT van FlaskMPEG, dat is zeg maar de floating point versie van het algoritme: de
ALLERBESTE KWALITEIT (geen vuile afrondingen vanwege gegoochel met gehele getallen), maar ook
HET ALLERLANGZAAMST: floating point is nu eenmaal stukken langzamer dan integer-berekeningen.
Vandaar daar de meesten al jaren de MMX-versie van het algoritme gebruiken: VEEL sneller, kwalitatief iets minder, maar who cares about a few % quality, als je daarna de uitgepakte DVD toch met een lossy compressie als DivX gaat behandelen!
Maar je moet de nieuwe AMD- (en Intel-) geoptimaliseerde versie dus NIET gaan vergelijken met de MMX-versie, maar met de IEEE reference. En dan is er EEN ENORME SNELHEIDSWINST.
Helaas is de
MMX-versie nog steeds de snelste, hoewel het nu weinig meer scheelt t.o.v. de geoptimaliseerde Floating-point versie. Zelf gebruik ik daarom sinds kort de AMD Hybrid, betere kwaliteit, iets minder snelheid (hoewel het nog maar heel weinig scheelt, en hij heeft toch de hele nacht de tijd dus...

)
Samengevat: aan de MMX-versie die bijna iedereen al gebruikt vanwege de snelheid, is nauwelijks iets gewijzigd/geoptimaliseerd; een paar % snelheidsverbetering of verslechtering zijn mogelijk t.o.v. de originele MMX-variant omdat er ook met wat compiler-opties is gespeeld.
Anders geformuleerd: door de AMD-optimized Hybrid codering te gebruiken, krijg je Floating-point kwaliteit bij (bijna-)Integer/MMX-snelheid!
Nog anders geformuleerd: de gebruiker heeft er dus geen reet aan, de hele actie was dan ook niet bedoeld om het proces voor ons sneller te maken, maar om aan te tonen hoeveel winst er t.o.v. standaard floating point rekenwerk behaald kan worden met SSE2- dan wel 3DNow!-optimalisaties.
Jammer, ik had ook liever gehad dat ze de MMX-variant hadden geoptimaliseerd (AMD heeft toch MMX2 extensies? Zou daar nog wat mee te doen zijn? En met het nauwkeurig vullen van de processor-pipelines, en het alignen van data?)