Nicht nur "ReadJPG" wird Zeit verbraten, auch die ganzen impliziten Speicherallozierungen werden (ein wenig) Zeit brauchen.
Nur mal so:
- (EDIT): Aus einem U32-Array (Größe ca. 50 MB) machst du ein U8-Array. Damit holst du dir übrigens nur die Stärke des Blau-Anteiles! R und G Anteil schmeißt du weg. Oder arbeitest du mit Graustufen-JPGs?
- Das U8 Array nach dem Einlesen belegt bei deiner typischen Größe so ca. 12-13 MB Speicher.
- Nach dem Vergleich kommt ein Boolean-Array heraus, ebenfalls 1 Byte pro Element, also nochmal 12-13 MB.
- Boolean to (0,1): Der Ausgang ist ein I16-Array -> 25 MB
- Wandlung nach I32 -> 50 MB.
Ob das wirklich ein merklicher Zeitfresser ist, muss man im Detail ausprobieren und messen. Aber der Platz für diese Speicherallozierungen muss schon vorhanden sein.
Gruß, Jens