Rückblick auf darktable 3.0 bis 3.4

Aktuell ist zur Zeit darktable 3.6.1 und Version 3.8 steht schon in den Startlöchern. Es ist also höchste Zeit meinen Rückstand gegenüber dem Entwicklerteam in dieser Artikelserie zu verringern. Dieser Artikel soll die Neuerungen von darktable 3.0 bis 3.4 betrachten, mit der zur Zeit aktuellen Version befasse ich mich dann an anderer Stelle.

Neuer Workflow

Mit dem Einzug von “Filmisch” in Version 2.6 wurde ein grundlegender Umbau der Berechnungs-Pipeline von darktable gestartet. Was dabei mit einem einzelnen Modul begann wurde in den folgenden Versionen schrittweise ausgedehnt auf eine ganze Reihe existierender und neuer Module mit wesentlicher Bedeutung für die Bildbearbeitung. Dahinter steht nicht weniger als ein Paradigmenwechsel: Viele in der Bildbearbeitung genutzten Farbräume basieren auf psychophysikalischen Modellen welche die Wahrnehmung von Farbe durch das menschlichen Auge und Gehirn beschreiben. Ihr Zweck ist die Darstellung von Farben für die Anzeige (display-referred). Diese sind nur innerhalb gewisser Grenzen für die Bildbearbeitung geeignet und können insbesondere bei der Arbeit an Bildmaterial mit hohem Dynamikumfang zu Farbfehlern und anderen Artefakten führen.

Der neue Workflow der in darktable mit Version 3.0 einzog und mit darktable 3.2 zum neuen Standard wurde verwendet in weiten Teilen der Pipeline einen Aufnahme-bezogenen Farbraum (scene-referred). Dieser orientiert sich nicht an der menschlichen Wahrnehmung sondern an den physikalischen Gegebenheiten der betrachteten Szenerie: Die Lichtintensität wird linear in diesem Farbraum abgebildet, im Gegensatz zum menschlichen Auge bei dem der Zusammenhang zwischen Intensität und Wahrnehmung ungefähr logarithmisch ist. Diese Herangehensweise erlaubt physikalisch korrekte Anpassungen von Belichtung, Kontrasten und Farbe über einen weiten Dynamikumfang ohne dabei verfärbte oder übersättigte Schatten und Lichter zu riskieren.

Das Modul “Filmisch”, welches mit darktable 3.0 durch “Filmisch RGB” abgelöst wird, steht dabei im Mittelpunkt des neuen Workflows. Es reduziert den hohen Dynamikumfang der durch den Kamerasensor aufgenommenen Szene auf ein darstellbares Maß (tonemapping). Mit darktable 3.0 und 3.2 wurden dabei Verbesserungen an der Benutzerschnittstelle und den zugrundeliegenden Berechnungsmethoden vorgenommen um den Umgang mit Farbe und insbesondere die Sättingung in Schatten und Lichtern besser zu beherrschen. Mit Version 3.2 wurden außerdem Möglichkeiten ergänzt Bildinformationen in (fast) ausgebrannten Spitzlichtern zu rekonstruieren.

“Filmisch” wird durch eine Reihe weiterer Module ergänzt die Anpassungen nun im “richtigen” Farbraum vornehmen. Dazu zählt auch das Werkzeug für Tonwertkurve (“RGB-Kurve”). Das Modul Weißabgleich und der Kanalmixer werden im neuen Workflow abgelöst durch “Farbkalibrierung”. Angepasst an den neuen Farbraum gibt es ferner zusätzlicher Modi zur Überblendung von Ein- und Ausgabe der Module um eine Beschneidung der darstellbare Farbinformation zu verhindern.

Neue und verbesserte Funktionen

Neu mit darktable 3.0 eingeführt und mit Version 3.4 verbessert wurde der “Tonwert-Equalizer”, ein Werkzeug welches gezielte Anpassungen an der Helligkeit bestimmter Tonwertbereiche im Bild erlaubt. Die Bearbeitung erfolgt dabei lokal in ausgewählten Bereichen, aufgrund der Funktionsweise des Tonwert-Equalizer werden hässliche Kontrastumkehrungen oder -kanten (Halos) vermieden.

Mit darktable 3.2 zieht der “Negadoctor” ein, ein Modul zur Umwandlung eingescannter oder abfotografierter Negative in die Positivdarstellung. Zu den wichtigsten Funktionen dürfte sicher die Möglichkeit zählen, die bei Film übliche Farbmaske herauszurechnen.

Neuerungen gab es auch bei den Möglichkeiten zur Maskierung bei der Überblendung von des Ein- und Ausgabebildes eines Moduls. Mit den bei darktable 3.0 eingeführten Rastermasken kann die Maske die für ein Modul genutzt wurde an späterer Stelle exakt so erneut angewendet werden, etwa um gleichermaßen Helligkeit und Farben in einem bestimmten Bildbereich mit unterschiedlichen Modulen zu beeinflussen. Zuvor war das bei der Verwendung von parametrischen Masken nur schwer oder gar nicht möglich, da diese jeweils ausgehend vom Ein- oder Ausgangsbild des jeweiligen Moduls berechnet wurden und die Bildinformation an späterer Stelle in der Pipeline somit nicht gleich ist. Für gezeichnete Masken schafft darktable 3.2 zudem die Möglichkeit den Übergang zwischen keiner und voller Deckung nichtlinear (schwächerer oder stärkerer Abfall) zu gestalten, gesteuert über Shift+Mausrad.

Verbessert wurde in darktable 3.0. außerdem die profilbasierte Entrauschung, sie bietet nun insbesondere direkt die Möglichkeit Farb- und Luminanzrauschen in einer Modulinstanz getrennt zu beeinflussen.

Flexible Pipeline

Der neue Workflow wird komplementiert durch eine größere technische Änderung die mit darktable 3.0 eingeführt wurde. Zuvor war die Struktur der Verarbeitungs-Pipeline fest vorgegeben. Mit Version 3.0 wurde diese programmatische Festlegung aufgelöst, die Reihenfolge in der Module das Bild verarbeiten ist seitdem frei konfigurierbar. In den meisten Fällen tut man gut daran die voreingestellte Reihenfolge beizubehalten, aber in Einzelfällen kann so kontrolliert werden an welcher Stelle auf dem Weg vom RAW zum fertigen Bild man Korrekturen vornimmt. Insbesondere können damit Module je nach gewähltem Workflow an die geeignete Stelle in der Pipeline gesetzt werden. Mit Version 3.0 kommt eine neue Standard-Reihenfolge, eigene Pipeline-Konfigurationen können als Preset abgespeichert und aufgerufen werden.

Benutzeroberfläche

Viel Arbeit floss in den vergangenen Veröffentlichungen auch in die Überarbeitung der Benutzeroberfläche. Neben technischen Änderungen (die Oberfläche wird jetzt vollständig über CSS gestaltet und unterstützt damit selbst konfigurierbare Themes) gibt es seit Version 3.0 mehr Möglichkeiten auf Funktionen mit Tastenkürzeln zuzugreifen.

Massive Verbesserungen und Neuerungen ab es vor allem am Leuchttisch. Mit darktable 3.0 kam eine neue Ansicht zur Bildauswahl (culling mode) hinzu, ebenso wie die Möglichkeit Änderungen rückgängig zu machen (Undo/Redo). Mit darktable 3.0 und 3.2 wurde die Tagging-Funktionalität komplett überarbeitet. Die Performanz der Leuchttisch-Ansicht wurde ebenfalls signifikant verbessert, einen entsprechend leistungsfähigen Rechner vorausgesetzt soll damit auch auf 8K-Bildschirmen ein flüssiges Arbeiten möglich sein.

In die digitale Dunkelkammer wiederum zog mit Version 3.0 die Unterstützung für die parallele Bildvorschau auf einem zweiten Monitor ein. Seit darktable 3.4 gibt es zudem eine neue Clipping-Anzeige die mehr Möglichkeiten bietet über- und unterbelichtete Bildbereiche oder Kanäle zu identifizieren als die bisherige Überbelichtungs-Anzeige. Schließlich ist erlaubt Version 3.4 eine freie Kategorisierung der verschiedenen Module entsprechend der eigenen Herangehensweise, die früher fest vorgegebenen Kategorien sind Geschichte.

Sonstiges

Generell wurde in allen Veröffentlichungen viel Augenmerk darauf gelegt die Performanz von darktable weiter zu verbessern. Wesentliche Optimierungen zielten etwas darauf ab, die Anzahl und den Umfang der erforderlichen Neuberechnungen durch die Pipeline zu reduzieren.

Zudem wurde mit Version 3.4 die sehr umfangreiche Dokumentation überarbeitet und auf eine neue technische Grundlage gestellt. Für darktable 3.4 existieren alte und neue Dokumentation nebeneinander bis die alte Variante mit mit Version 3.6 ganz abgelöst wird. Um diesen Prozess zu erleichtern wurde die Betreuung der Dokumentation in ein eigenständiges Projekt abgespalten.

darktable 2.4 und 2.6 – Ein kleiner Rückblick

Schon länger habe ich nichts mehr zu darktable geschrieben, was aber nicht bedeutet, dass sich nichts getan hätte. Inzwischen sind wir einige Major-Releases weiter. Ich will im Folgenden aber nicht auf die ganze Entwicklungshistorie eingehen, sondern nur auf ausgewählte Neuerungen der Versionen 2.4 und 2.6 diskutieren, welche 2017 und 2018 veröffentlicht wurden. Die Entwicklung ging seitdem zügig weiter und es gab seitdem größere Änderungen sowohl an der Oberfläche als auch am kompletten Bildbearbeitungs-Workflow. Auf diese Neuerungen welche darktable 3.0 bis 3.6 mit sich gebracht haben, werde ich in einem gesonderten Artikel eingehen.

darktable 2.4

Version 2.4 war nach den Änderungen welche 2.2 mit sich brachte (es seien an dieser Stelle die automatische Perspektivkorektur und das “Verflüssigen”-Werkzeug genannt) gefühlt weniger beeindruckend. Die für mich wichtigste Neuerung war ein Modul zur Dunstentfernung, darüber hinaus gab es aber an vielen Stellen auch Verbesserungen im Detail. Lange erwartet und für für viele sicherlich deutlich interessanter war jedoch die Tatsache, dass mit darktable 2.4 erstmals eine offizielle Unterstützung für Windows einzog, nachdem zuvor nur für Linux und Mac OS entwickelt wurde.

darktable 2.6

Eine breite Palette neuer Funktionen brachte darktable 2.6 mit sich. “Verflüssigen” aus Version 2.2 wurde ergänzt um das Modul “Retusche”. Dieses stellt verschiedene Varianten dessen Bereit, was von GIMP oder Photoshop als Kopierstempel oder Reparatur-Werkzeug bekannt ist. Das Retusche-Modul arbeitet im Frequenzbereich und kann dadurch einerseits Bereiche von einem Teil des Bildes in einen anderen nahtlos kopieren, oder etwa bestimmte Strukturen überzeichnen während andere (etwa Hautporen) erhalten bleiben.

Eine, vor allem im Hinblick auf die weitere Entwicklung von darktable sehr wichtige Neuerung stellt das Modul “Filmisch” zusammen mit den Änderungen an dem Modul Farbbalance dar. “Filmisch” ist der Beginn einer Reihe von Änderungen in der kompletten Verarbeitungs-Pipeline von darktable die darauf abzielen, Berechnungen auf ein physikalische begründetes Fundament zu stellen.

Weiterhin erweitert darktable 2.6 das Modul “Farbbalance” um zusätzliche Arbeitsfarbräume und die Möglichkeit Farbstiche in Schatten, Mitteltönen und Lichtern automatisch zu neutralisieren. Die profilbasierte Entrauschung wurde ebenfalls erweitert und bietet nun mehr Einstellmöglichkeiten um die Stärke der Entrauschung abhängig von Bildinhalten zu beeinflussen. Grobe Strukturen können so stärker entrauscht werden während feine Strukturen besser erhalten bleiben.

Eine bedeutende Verbesserung stellt die die kantensensitive Maskierung von Bildinhalten (“guided mask blur”) dar. Um die Bearbeitung auf bestimmte Bildinhalte zu beschränken muss nun nicht mehr anhand von parametrischen oder gezeichneten Masken präzise der gewünschte Bildbereich ausgewählt werden. Das kantensensitiver Filter erlaubt es, eine grob gezeichnete Maske anhand der Strukturen im Bild automatisch zu verfeinern, in vielen Fällen funktioniert das überraschend gut und stellt so eine deutliche Erleichterung dar.

Eine kleinere Änderung stellt die Tatsache dar, dass bei der Verwendung mehrerer Modulinstanzen diesen jeweils eigene Namen zugewiesen werden können. darktable nutzt diese um ggf. beim Kopieren von Bearbeitungen von einem Bild zum nächsten die Einstellungen der korrekten Modulinstanz zuzuordnen.

Reusing Lenovo Thinkpad Webcams

Lenovo Thinkpad Webcam FRU 04X5729 with custom soldered connector

In this post I briefly document document of pinout of Lenovo Thinkpad webcam FRU 04X5729 and how to reuse it, in case you stripped one from a broken laptop display.

This webcam is attached to the wiring inside the display by a small connector with seven pins. Three of them are used to connect the microphones (the small golden circles at the left and right side in the image above). The remaining four are wired to the USB interface of the camera sensor. The table below describes the pinout counted from right to left if the camera is front-facing like in the picture above (thus: from the inside to the outside).

PinDescriptionUSB Wire Color
1Unknown
2Unknown
3Unknown
4GNDblack
5D+green
6D-white
7VBUS (3,3V)red
Connector Pinout Counted from Inside (Camera) to Outside (Microphone)

The webcam itself operates at a voltage of 3,3V, while external USB devices have an operating voltage of 5V. Using a step-down converter or linear voltage regulator to reduce the USB supply voltage to 3,3V would be the clean solution. However, the voltage drop of two simple silicon rectifier diodes (e.g. 1N400x familiy) added in series to VBUS is also sufficient in my experience.

It is quite difficult to solder a wire directly to the PCB. There are test points beyond the connector, one for each pin. Yet, they are pretty weak so if you manage to solder a wire to them, they may easily be stripped off the PCB. An approach which worked better for me was to carefully pry away the upper plastic part of the connector. This way, it is possible get good access to the contact pins of the connector. By bending them a bit upwards and away from each other, one can get enough clearance to solder a wire to each of them. Since this is still pretty fragile, it is a good idea to generously add some hot glue after performing a first function test.

Sofern nicht anders angegeben, stehen die Inhalte dieses Blogs unter der Lizenz
Creative Commons BY-NC-ND 3.0 Deutschland
Creative Commons Lizenzvertrag