Hallo liebe Gemeinde
Ich verzweifle langsam dran:
Ein Bild soll möglich schnell, also Multithreaded und später auch mit SIMD optimiert gefiltert werden.
Dabei sollen mehrere BufferedImage in eines geschrieben werden, wobei jedes der Einzelbilder nur einen Teil des gesamten Bildes enthält.
Sprich Teil1 - Zeile 0 bis 5, Teil2 - Zeile 5 bis 10 ...
Beim effizienten zusammensetzen hapert es aber.
In einer Schleife habe ich nun:
dabei wird aber im Gesamtbild nur
dargestellt.
Mit folgender Variante klappt es korrekt, ist aber unglaublich langsam:
Kann mir jemand helfen?
Ich verzweifle langsam dran:
Ein Bild soll möglich schnell, also Multithreaded und später auch mit SIMD optimiert gefiltert werden.
Dabei sollen mehrere BufferedImage in eines geschrieben werden, wobei jedes der Einzelbilder nur einen Teil des gesamten Bildes enthält.
Sprich Teil1 - Zeile 0 bis 5, Teil2 - Zeile 5 bis 10 ...
Beim effizienten zusammensetzen hapert es aber.
In einer Schleife habe ich nun:
Java:
BufferedImage dest = new BufferedImage(img.getWidth(), img.getHeight(),
BufferedImage.TYPE_3BYTE_BGR);
int anzThreads = 4;
for (int x = 0; x < anzThreads; x++) {
BufferedImage tmp = new BufferedImage(img.getWidth(), img.getHeight(),
BufferedImage.TYPE_3BYTE_BGR);
tmp = Threaded(x, anzThreads, img, tresholds);
dest.getGraphics().drawImage(tmp, 0, startwert, tmp.getTileWidth(), endwert, null);
}
dabei wird aber im Gesamtbild nur
dargestellt.
Mit folgender Variante klappt es korrekt, ist aber unglaublich langsam:
Java:
for (ya = startwert; ya < endwert; ya++) {
for (xa = 0; xa < img.getTileWidth(); xa++) {
dest.setRGB(xa, ya, tmp.getRGB(xa, ya));
}
}
Kann mir jemand helfen?