OpenGL und OpenCL – Turbolader für ihre Bildbearbeitung?

Für diesen Artikel haben wir mit vier Applikationen getestet: GIMP, Corel AfterShot Pro, Musemage und Adobe Photoshop CS6.

GIMP (GNU Image Manipulation Program) ist ein Open-Source-Projekt, das seit 1995 entwickelt wird und es wird unter anderem von jenen Anwendern verwendet, die für ein Bildbearbeitungsprogramm gar nichts ausgeben wollen. Aber GIMP ist durchaus kein Leichtgewicht, sondern strotzt regelrecht vor Features, von Channels zu Paths zu Animation und Pattern Tools. Während wir das Programm unter Windows getestet haben, sind auch Versionen für andere Betriebssysteme verfügbar, zum Beispiel Mac OS X, Linux, FreeBSD und sogar AmigaOS 4. Wir haben mit dem am 2. April 2012 freigegebenen Build der Version 2.8 getestet, der OpenCL-Support für 19 Filter beinhaltet. Wir haben drei dieser Filter über das Generic Graphics Library (GEGL)-Menü, das sein Debut in der GIMP-Version 2.6 hatte, ausgewählt. AMD beschrieb uns GEGL wie folgt:

 ‘GEGL ist eine Verarbeitungspipeline, die mit Gleitkommazahlen arbeitet und das Fundament für die nächste große GIMP-Release darstellt. GEGL benötigt mehr Prozessorressourcen als die althergebrachte GIMP-Pipeline, die mit 8-Bit-Werten arbeitet. Obwohl die Latte für die Rechenleistung in GEGL höher gelegt wird, bieten Gleitkommazahlen Vorteile gegenüber 8-Bit-Werten. Da GEGL die Zukunft der GIMP-Architektur ist, haben wir unsere OpenCL-Arbeit auf GEGL und nicht auf die alte 8-Bit-Pipeline ausgerichtet. Das bedeutet, dass nur GEGL-Operationen von OpenCL-Beschleunigung profitieren werden. GEGL wird Zug um Zug in GIMP integriert, und daher sieht man derzeit noch ein spezielles Menü für GEGL-Operationen, aber irgendwann in der Zukunft wird GEGL voll in GIMP integriert sein und es wird kein GEGL-Menü mehr geben, denn dann wird GIMP komplett auf GEGL beruhen.’

Als wir mit GIMP/GEGL-Entwickler Victor Oliveira gesprochen haben, haben wir eine interessante Erkenntnis gewonnen. OpenGL ist primär für Graphikverarbeitung gemacht, und wir hatten bislang immer vermutet, dass OpenCL ähnlich gelagert ist, vielleicht mit einem Schwerpunkt auf andere Aspekte der Graphikverarbeitung. Wie sich herausstellte, ist das neue API aber robuster und flexibler als viele Leute gemeinhin annehmen.

‘OpenCL liefert nicht nur GPU-Beschleunigung, sondern man kann OpenCL auch auf einer CPU verwenden, zum Beispiel für Multithreading-Support, den GIMP bislang nicht aufwies, und auch Vektorisierungs-Support’, meint Oliveira. ‘Die Anwender von GIMP sind eine sehr heterogene Gruppe, einige fahren GIMP auf Uralt-PCs und andere auf den allerneuesten PCs. Wenn wir beispielsweise den AVX-Befehlssatz in GIMP unterstützen wollen, müssten wir entweder zwei getrennte Builds machen, denn alte PCs verfügen nicht über AVX, oder zur Laufzeit entscheiden, ob AVX verwendet werden soll oder nicht. Beide Lösungen haben Nachteile. Mit OpenCL sind solche Dinge in einem einzigen Build möglich – es handelt sich wirklich um eine faszinierende Technologie.’

Unser GIMP-Build hat eine Kommandozeilenoption, die festlegt, ob OpenCL verwendet werden soll oder nicht; außerdem ein Debug-Fenster, das Benchmarking-Ergebnisse anzeigt. Als Testdatei verwendeten wir eine 30 MB große Bitmap-Datei mit 4096×2048 Pixeln.

Corel AfterShot Pro ist eine nichtdestruktive Photobearbeitungssoftware. Technisch gesehen heißt nichtdestruktiv, dass jedes Mal, wenn ein Bild geöffnet, editiert oder gespeichert wird, alle Arbeitsschritte angefangen vom allerersten bis zur Darstellung am Bildschirm ausgeführt werden. Das verhindert, dass sich kleine Rundungsfehler allmählich aufaddieren und Bildqualität verlorengeht. Alle Verarbeitungsschritte liegen wie ein Karteikartenstapel vor, und auch ein früher Bearbeitungsschritt kann nachträglich geändert oder eliminiert werden. Das geht natürlich nur, solange der Stapel auch auf dem PC vorliegt. Wenn nur das resultierende Bild als JPEG auf einem anderen PC importiert wird, ist der nichtdestruktive Ablauf natürlich nicht mehr verfügbar.

Wir haben dankenswerterweise von Corel eine spezielle Vorabversion von ASP erhalten. In derselben wird OpenCL für Formatkonvertierungen verwendet. Wir beschafften uns eine Photostrecke von 50 Digitalphotos im RAW-Format, alle mit 6048×4032 Pixeln und je circa 37 MB groß, und haben dann ASP im Batchbetrieb mit und ohne OpenCL-Support auf diese Photostrecke losgelassen.

Musemage ist eine relativ neue und noch nicht sehr bekannte Bildbearbeitungssoftware, der aber ein breiter Durchbruch am Markt gebührt. Die Hintergrundinformationen, die uns AMD über Musemage zukommen hat lassen, besagen, dass das Programm in China entwickelt wurde. Die Anwendung ist ein technisches Wunderwerk aus mächtigen Funktionen, die aber leicht bedienbar sind. Musemage ist besonders gut für die Batch-Verarbeitung von Fotos geeignet, es scheint der Firma aber an Vertriebspartnern zu mangeln. Das ist insofern schade, als Musemage von Grund auf im Hinblick auf GPU-Beschleunigung entwickelt wurde, anders als die meisten anderen Bildbearbeitungsprogramme, denen eine GPU-Unterstützung nur nachträglich eingebaut wurde.

Für unseren Musemage Batch-Durchlauf haben wir uns acht JPEG-Bilder, jeweils zwischen 10 und 12 MP groß, von JLucasPhoto.com beschafft – in Summe sind die acht Digitalphotos 35.4 MB groß. Musemage verfügt über dutzende Bearbeitungsoptionen: Farbeffekte, Linseneffekte, Verzerrungen, Vergrößerungen, Verkleinerungen, etc.  Für unseren Batchdurchlauf haben wir elf Funktionen ausgewählt: Automatischer Kontrast, Automatischer Weißabgleich, Gauss’sche Unschärfe (4 Pixel), Farbentrauschen (0,8 Pixel), Negativumwandlung (Highlight 50, Schatten 50), Advanced Defog (Grenzwert 0,10; Stärke 0,65), Vignetteneffekt (Field of View-Winkel 45 Grad), Weichzeichner für Haut (Radius 3,3 Pixel; Stärke 0,05; Aufhellung 0,02), Horizontale Spiegelung, Vergrößern (150% in Höhe und Breite) sowie Hinzufügen von Text (40% Undurchsichtigkeit).

Ebenfalls interessant...