Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Nochmal: Pixels vs Scanline (https://www.delphipraxis.net/148309-nochmal-pixels-vs-scanline.html)

nezumi77 27. Feb 2010 10:53


Nochmal: Pixels vs Scanline
 
Hallo,

Ich müsste sehr viele Bilddateien Pixel für Pixel vergleichen. In bisherigen Beiträgen wird ja hierfür immer scanline empfohlen, da schneller. Bei mir ist es aber so, dass die Dateien (Bitmap) sehr klein sind (maximal 200*200 Pixel) und auch nur s/w. Letztlich handelt es sich nicht um Bilder sondern um Informationen, die in Bitmaps verpackt sind.

Bevor ich mich an die Umsetzung mache: würdet Ihr auch hier scanline empfehlen oder eher Pixels?

Danke und Gruß,
Stephan.

mkinzler 27. Feb 2010 10:55

Re: Nochmal: Pixels vs Scanline
 
Versuch es doch selber aus, wenn du den Antworten nicht traust

nezumi77 27. Feb 2010 11:00

Re: Nochmal: Pixels vs Scanline
 
Es ist nicht so dass ich den Antworten nicht trauen würde, ich habe in den Beiträgen aber auch gelesen, dass die Vorteile von scanline bei Bildern mit hoher Farbtiefe liegen. Daher meine Frage.

mkinzler 27. Feb 2010 11:04

Re: Nochmal: Pixels vs Scanline
 
Scanline greift direkt auf den Speicher zu Pixels[] nur mittelbar

Medium 27. Feb 2010 11:06

Re: Nochmal: Pixels vs Scanline
 
Die Vorteile sind universell. Genau genommen sollte es in deinem Fall dann noch besser sein, da pro Zugriff auf Pixels weniger Informationen abgerufen werden, und der langsame Teil an Pixels ist nicht der Abgriff dieser selbst, sondern die Art und Weise des Zugriffs. Da du also quasi bei s/w mehr Zugriffe pro Byte hast als bei 24bpp Bitmaps, sollte der Geschwindigkeitsvorteil noch größer sein. Und selbst wenn nicht: Wir reden hier über Größenordnungen, bei denen es fast schon egal ist was man tut - Scanline ist immer beachtlich schneller.
Und, naja, wie mkinzler schon angedeutet hat: Probieren > Studieren. Probier's einfach aus, dann bist du ohnehin auf der sicheren Seite.

himitsu 27. Feb 2010 11:07

Re: Nochmal: Pixels vs Scanline
 
Pixels ist bei allen Farbtiefen langsamer, speziell bei Farbtiefen, welche vom aRGB-Format abweichen, muß ja auch noch umgerechnet werden, um auf einen TColor-Wert zu kommen.

Es hängt jetzt also davon ab, wie groß der Zeitunterschied ist und ob eine Optimierung via ScanLine erhebliche Vorteile mit sich bringt.

Bei ScanLine muß man immerhin das interne BildFormat kennen/beachten.



Heißt also:
Ist dir der Zugriff via .Pixels zu langsam, dann verwende ScanLine.
Reicht dir die Geschwindigkeit von .Pixels aus, dann nutze eben dieses.


Bei Bildern von 200x200 und pf1Bit kann man z.B. via ScanLine und CompareMemory die etwa 5.000 Byte sehr schnell direkt vergleichen.

200 X-Pixel / 8 Bit = 25 Byte
(25 Byte + "eventuelle Zeilenspeichausrichtung") * 200 Y-Pixel = 5000 Byte

nezumi77 27. Feb 2010 11:36

Re: Nochmal: Pixels vs Scanline
 
Alles klar. Besten Dank für die Infos!


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:34 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz