Ich habe bei einer Aufnahme ein Artefakt entdeckt, als ich eine große Vergrößerung eines engen Ausschnitts gedruckt habe. Anfangs dachte ich: "Oh nein, ich habe ein Kameraproblem!" Weitere Experimente zeigten, dass die Artefakte beim Exportieren von Raw in JPG mit aktiviertem OpenCL zur Verwendung meiner Nvidia-GPU generiert werden. Beim Exportieren mit deaktiviertem OpenCl wurde das Artefakt nicht generiert.
Ich verwende Linux und habe dies nicht unter Windows versucht.
Ich habe sowohl "mit" als auch "ohne" OpenCL-JPGs in GIMP-Ebenen eingefügt und einen "Unterschied" der beiden Ebenen vorgenommen. Die Artefakte stellten sich als umfangreicher heraus, als ich ursprünglich gesehen hatte, und manifestierten sich als mehrere rechteckige Blockdiskontinuitäten.
Ich habe dasselbe in Darktable versucht und genau das bekommen, was man sich erhoffen würde, einen schwarzen "Unterschied", da die Bilder identisch waren.
AfterShot hat kleine Helligkeitsunterschiede mit OpenCL-Hardwarebeschleunigung, die klein genug ist, um damit zu leben, aber die Blockartefakte sind inakzeptabel.
Hat noch jemand dieses Problem festgestellt?
Ich verwende die neuesten Nvidia-Treiber auf einer wohl alten GPU, aber das sollte nur ein Geschwindigkeitsproblem sein.
Nur CPU, GPU OpenCL, Unterschiedsbilder sind zu sehen unter:
Von AfterShot Pro 3 GPU generierte Artefakte
Wenn Sie zwischen den beiden Hauptbildern hin und her springen, können Sie die Artefaktverschiebungspunkte sehen. Die offensichtlichste ist eine perfekt horizontale dünne Linie durch die Stirn der Katze.
Meine unmittelbare Frage bezieht sich auf Aftershot Pro 3 unter Linux, aber ich bin jetzt neugierig auf eine umfassendere "Unterschieds"-Prüfung auf vielen Plattformen und RAW-Editoren, die die Verwendung von GPUs unterstützen.
---- Edit ----
Ich habe die Besonderheiten des Problems identifiziert!
Es gibt 4 OpenCL-Nutzungseinstellungen: Minimum, Niedrig, Standard, Hoch. Und natürlich NONE, wenn OpenCL deaktiviert ist.
Ein Vergleich der Ausgabe der 4 Einstellungen mit NONE als Referenzstandard zeigt:
Alle 4 OpenCL-Einstellungen verschieben das Ausgabebild um 2 Pixel in X & Y.
Nur die Einstellung „Minimum“ erzeugt Artefakte, die als rechteckige Bereiche erscheinen, die sich „nicht um 2 Pixel verschieben“.
Ich denke, dass dies der Kern des Problems ist. Die OpenCL-Verarbeitung hat einen 2-Pixel-Offset in X und Y. Solange das gesamte Bild von der GPU verarbeitet wird, ist es selbstkonsistent. Wenn ein Teil des Bildes von der CPU verarbeitet wird, gibt es 2 Pixelverschiebungsgrenzen zwischen den von der CPU und der GPU verarbeiteten Teilen des Bildes.
Es ist wahrscheinlich, dass dies je nach CPU- und GPU-Geschwindigkeit bei jeder Einstellung oder überhaupt nicht auftritt.
Es ist möglich, dass die CPU-Berechnung die 2-Pixel-Verschiebung hat, aber der Schlüssel ist, dass sie unterschiedlich sind!
---- Edit 2 ----
Ich habe ein unbeschnittenes Bild sowohl auf „Aftershot“ als auch auf „Darktable“ auf Ausrichtung verglichen, um herauszufinden, welche 2-Pixel-Verschiebung fehlerhaft ist.
„Darktable CPU“, „Darktable OpenCL“ und „AfterShot CPU“ stimmen alle überein!
"AfterShot OpenCL" hat eine 2-Pixel-Verschiebung in X & Y.
Dies ist ein Fehler in Corels Implementierung der OpenCL-Hardware-GPU-Nutzung.
Das zugrunde liegende Problem besteht darin, dass die OpenCL-Implementierung von Corel das exportierte Layout im Vergleich zu anderen Konvertierungen von RAW in JPG (auch TIF ) in X & Y um (ungefähr) 2 Pixel verschiebt . Das Aufnehmen von RAW + JPG in der Kamera und der Vergleich mit Corels Export des RAW in das Kamera-JPG bestätigt, dass es nur Corel Aftershot OpenCL ist, das diese Verschiebung erzeugt. Aftershot, der nur den CPU-Export verwendet, stimmt mit dem Kamera-JPG überein, ebenso wie alle Darktable-Exporte.
Warum ist also eine bloße 2-Pixel-Verschiebung wichtig?
In erster Linie erzeugt es Artefakte in jedem Bild, das Teile enthält, die mit und ohne OpenCL erstellt wurden , das hat meine Aufmerksamkeit überhaupt erregt. In meinen Tests trat dies nur bei der „ minimalen “ OpenCL-Einstellung auf . Dies gilt jedoch möglicherweise nicht mit einem anderen GPU/CPU-Mix.
Theoretisch würde eine Fehlausrichtung von Corel OpenCL Probleme verursachen, wenn versucht wird, Bilder zu verwenden, die von mehreren RAW-Konvertern verarbeitet wurden. Obwohl dies in den meisten Fällen eine unwahrscheinliche Verwendung ist, wirkt es sich auf Versuche aus, sowohl RAW- als auch JPG-Bilder zu verwenden, wenn Sie versuchen, sie zu überlagern.
Ich habe Corel bezüglich dieses Problems kontaktiert.
xiota
Benutzer10216038
xiota
xiota
Benutzer10216038
Benutzer10216038
mattdm
Benutzer10216038
xiota