Der Hintergrund
Die Verarbeitung von hochauflösenden Bildern ist eine herausfordernde Aufgabe, die moderne Rechner erfordert. Hinsichtlich Speicherbedarf und Prozessorleistung kann bereits die optimale Bearbeitung eines typischen 15, 20 oder 25 Megapixel Bilds einen Rechner schnell an seine Grenzen bringen.
Die Anforderungen von darktable sind da keine Ausnahme. Alle Berechnungen werden in 4 x 32-Bit Gleitkommazahlen ausgeführt. Das ist langsamer als die “gewöhnliche” 8- oder 16-Bit Integer-Algebra, aber alle Probleme mit Tonwertabbrüchen oder Informationsverlust werden beseitigt.
Umfangreiche Optimierungen wurde durchgeführt, um darktable so schnell wie möglich zu machen. Falls eine neue Version von darktable auf einem modernen Computer läuft, kann keine “Langsamkeit” beobachtbar sein. Es gibt aber Umstände und bestimmte Module, bei denen der arme Multikernprozessor bemerkbar (oder am Aufheulen des CPU-Ventilators hörbar) zu kämpfen hat.
Hier kommt OpenCL ins Spiel. Durch OpenCL steht darktable die enorme Leistungsfähigkeit moderner Grafikkarten zur Verfügung. Die Anforderungen von Spielern an den Detailreichtum von 3D-Spielen hat, neben dem Krypto-Mining, die Entwicklung von Grafikprozessoren (GPUs) stark beschleunigt. AMD, NVIDIA und Co. haben umfangreiche Ressourcen in die Deckung dieser Nachfrage gesteckt. Das Ergebnis sind moderne Grafikkarten mit hoch-parallelisierten GPUs, die auch bei hohen Frame-Raten sehr schnell Oberflächen und Texturen berechnen können.
Du bist kein Spieler und benötigst diese Leistung gar nicht? Nun, in darktable wird sie auch dir nützen! Bei hoch-parallelisierten Gleitkommarechnungen sind heutige GPUs deutlich schneller als CPUs, vor allem wenn dieselben Prozessschritte millionenfach durchgeführt werden müssen. Typische Anwendung ist die Verarbeitung von großen Megapixelbildern.