Registriert seit: 23. Nov 2014
Ort: Leipzig
6 Beiträge
Delphi 7 Professional
|
AW: Geht das noch schneller? - Bitmap-Verrechnung
30. Nov 2014, 18:47
Nach flüchtigem Verfolgen der Diskussion meine ich:
Es geht hier, wie schon anklang, um Alphablending.
Da gab es doch 2005 das Thema
Alphablending mit MMX / SSE Befehle
Aber zur jetzigen Diskussion
Wenn man anstatt 255 durch 256 per Shift dividiert,
dann geht das nur bei nichnegativem Nenner.
Für den Datentyp Int32 kann man den Trick mit der
magischen Zahl $8081 zur Division durch 255 verwenden.
const
Magic: UInt16 = $8081;
var
n: Integer;
Dann ist für -Sqr(255) <= n<=Sqr(255)
( n * Magic) div (1 shl 23) = n div 255
Der Compiler erzeugt für den ersten Ausdruck
einen arithmetische Rechtsshift um 23.
Müsste mal mit RDTSC timen.
Manfred
Manfred Zimmer
|