Sieht man sich die Daten an, die ein CMOS-Sensor in der Kamera erzeugt, so handelt es sich immer nur um Helligkeitswerte (hinter Farbfiltern). Bei einem 12 Bit Sensor kann ein Pixel (genauer ein Sensel) dabei 4096 Helligkeitswerte erfassen (also “messen”). Bei einem 14 Bit Modell sind 16384 verschiedene Helligkeitswerte möglich. Und bei einem 16 Bit Sensor gibt es theoretisch sogar 65536 verschiedene Helligkeitabstufungen.
Bei der RAW-Aufnahme werden diese Helligkeitsabstufungen für jeden Sensel direkt abgespeichert. Dies kostet eine Menge Speicherplatz, sorgt im Gegenzug jedoch dafür dass man in der Nachbearbeitung wirklich jede erfasste Information des Bildmotivs nutzen kann. Will man beispielsweise in den dunklen Bereichen eines Bildes mehr Details herausarbeiten, so können diese Bereiche in einer RAW-Aufnahme bis zu einem gewissen Grad durch Anhebung zum Vorschein gebracht werden.
8 Bit sind Standard
Die meisten Anwender (oder zumindest deren Kameras) wollen dagegen den Speicherplatz sehr viel effektiver nutzen. Daher kommt bei der Aufzeichnung ein Codec zur Kompression der Videodaten zum Einsatz. Dieser kann meistens die Helligkeit eines Pixels nur mit deutlich geringerer Genauigkeit speichern. So gibt es bei 8 Bit-Aufzeichnung nur 256 mögliche Helligkeitsabstufungen (sowie 1024 Helligkeitsabstufungen bei 10 Bit).
Da bis zum heutigen Tage mindestens 99,9 Prozent aller Wiedergabegeräte (also Displays und Fernseher) sowieso nur maximal 8 Bit darstellen können, scheint es auf den ersten Blick jedoch damit überhaupt kein Problem zu geben. Solange der Display-Kontrast nicht allzu zu hoch ist (was sich jedoch durch HDR-Displays in naher Zukunft ändern soll) sind diese 256 Helligkeitswerte mehr, als die menschliche Wahrnehmung auf einem Display unterscheiden kann.
Solange man also die (noch viel feiner abgestuften) Sensordaten sorgfältig in 8 Bit umwandelt, sollte man an der sichtbaren 8 Bit Qualität nichts aussetzen können. Und tatsächlich ist dies in der Praxis auch so. Bis auf sehr wenig bewusst provozierte Farbverläufe erzeugen aktuelle Kameras selbst bei 8 Bit Aufzeichnung keine auffälligen Farbsprünge (sog. Banding / Posterizing). Doch dies gilt nur, wenn man sein Material nicht mehr nachbearbeiten will...
Am Anfang war Cineon
Die Idee hinter Log ist auf das Cineon Format von Kodak zurückzuführen. Denn auch lange vor den digitalen Sensoren hatte man schon das Problem, dass analoger Film eine weitaus größere Dynamik erfassen konnte, als man beim Scannen von analogem Film ökonomisch sinnvoll speichern konnte. Denn in den Anfängen digitaler Filmscans (ca. ab 1992) war Speicher noch weitaus teurer als heute. Eine Minute 10 Bit Filmscan in 2K fraß in den Anfangstagen schon zwischen 10.000 und 20.000 Dollar an Speicherkosten. An eine unkomprimierte Speicherung der gescannten Daten mit mehr als 10 Bit war daher auch in 2K-Auflösungen aus Kostengründen kaum zu denken. Selbst 8 oder 10 Bit waren für Special Effects Schmieden somit schon hart an der finanziellen Schmerzgrenze und die hierfür nötigen Datenspeicher machten zu dieser Zeit einen nicht unerheblichen Teil der Special Effects Kosten aus.
Gleichzeitig wollte man in der Nachbearbeitung jedoch möglichst alle Vorteile eines typischen, analogen Negativfilms weiter nutzen können. Also auch entscheiden, ob man beispielsweise dunkle Stellen im Bild etwas anhebt oder eine digitale Farbkorrektur auf einzelne Bildbereiche anwendet. Außerdem wollte man seine Effekte und Farbkorrekturen anschließend wieder auf analogen Film ausspielen, weshalb eine Reduzierung der Dynamik während der Bearbeitung so gut wie nur möglich vermieden werden musste.
Hätte man die Filmscan-Daten einfach (linear) mit 8 oder 10 Bit eingelesen und bearbeitet, so wäre die fehlende Dynamik beim Ausspielen auf Film deutlich sichtbar geworden. Denn wie wir in einem anderen Grundlagenartikel schon einmal dargestellt haben, kann eine lineare 8 Bit Aufzeichnung nur 8 Blendenstufen speichern, eine lineare 10 Bit Speicherung entsprechend 10 Blendenstufen. Analoger Film kann jedoch bis zu 15 Blendenstufen “erfassen”.
Und so entstand die Idee zum Kodak Cineon Format, das quasi die Mutter aller Log-Kurven darstellt.
Log = Logarithmisch statt Linear
Log-Profile (auch Log-Kurven genannt) dienen dazu, die maximal mögliche Dynamik eines Sensors in dem vergleichsweise stark limitierten Wertebereich eines Codecs zu speichern. Der Vorteil gegenüber RAW ist dabei eine geringere Datenrate bei der Aufzeichnung. Die Speicherersparnis resultiert dabei in erster Linie aus der Verringerung der Bittiefe (meist von 14-16 Bit linear auf 8-10 Bit Log). Gleichzeitig komprimieren typische Log-Codecs (wie z.B. ProRES, DNxHD aber auch XAVC) die Daten nach der Bit-Reduzierung noch weiter.
Cineon wandelte übrigens nur nach 10 Bit-Log, speicherte die Daten aber ansonsten unkomprimiert (weil die Rechenpower zur (De-)Kompression in akzeptabler Zeit ebenfalls noch nicht verfügbar war).
Was tun, wenn man auf der einen Seite die maximale Filmdynamik von bis zu 15 Blendenstufen für die Nachbearbeitung nutzen will und auf der anderen Seite nur 8 oder 10 Blendenstufen pro Pixel bezahlen kann? Man muss die 15 Blendenstufen eben möglichst sinnvoll in die 8/10 Bit “hineinquetschen”. Hierfür sind viele Möglichkeiten denkbar. Die folgende Grafik zeigt den grundsätzlichen Zusammenhang zwischen einer linearen und einer logarithmischen Speicherung.

An der X-Achse (unten) stehen die Werte, die der Sensor erzeugen kann. An der Y-Achse sieht man, welchen Wert man beim Speichern erhalten würde. Die 109% auf der Y-Achse entsprechen dabei den Werten 255 (8Bit) bzw. 1023 (10 Bit). Würde man einfach die Sensorwerte (linear) 1:1 übernehmen und an der 8/10 Bit Grenze clippen lassen, käme etwas wie die rote lineare Kurve zustande. Alternativ könnte man alle Messwerte des Sensors gleichmäßig (ebenfalls linear) auf die Y-Achse verteilen, was der grünen Kurve entspäche. Auf den Nachteil hierbei kommen wir gleich zu sprechen. Die blaue Kurve speichert dagegen die Sensordaten (X) logarithmisch in Y und verteilt damit die Messwerte mit einer anderen Gewichtung. Doch warum?
Photonen und subjektives Helligkeitsempfinden
Sieht man Sensoren oder deren erzeugte RAW-Daten als Photonen-Zähler (was sie zweifelsfrei auch sind), so bemerkt man, dass eine als subjektiv gleich empfundene Helligkeitsveränderung in dunklen Bereichen durch viel weniger Photonen hervorgerufen wird, als in hellen Bereichen. Den Helligkeitunterschied zwischen 10 und 20 gemessenen Photonen empfinden wir als genau so groß, wie den Helligkeitsunterschied zwischen 10.000 und 20.000 Photonen. Auf unserer Grafik zeigt sich das unter anderem so, dass uns der Helligkeitsunterschied auf der X-Achse von 100% zu 200% genauso groß vorkommt wie der Unterschied zwischen 200% und 400% bzw. zwischen 400% und 800%. Dieser Unterschied entspricht übrigens auch genau einer Blendenstufe:

Deshalb versucht man bei einer Log-Speicherung jeden Wert zwischen 10 und 20 exakt zu speichern, während man bei den Messwerten zwischen 10000 und 20000 bei einer Log-Speicherung die gemessenen Werte grob zu zehn Wertebereichen zusammenfassen würde. Die Abstände zwischen den Wertebereichen wählt man dabei so, dass der Helligkeitsunterschied zum nächsten gespeicherten Wert immer einem subjektiv gleichen Anstieg in der Helligkeit entspricht. Nichts anderes als diesen subjektiven Anstieg beschreibt eine Log-Kurve. Man weist also den linearen Messwerten des Sensors einen entsprechenden Wert in einer logarithmisch geformten Verteilung zu.
Log-Profile sind deswegen nicht dazu gedacht, das Material zu sichten oder zu veröffentlichen. Vielmehr werden Reserven für die Nachbearbeitung im Material gleichmäßig über die Bildhelligkeit verteilt. Dies macht natürlich am meisten Sinn, wenn man beim Dreh noch nicht weiß, welche Helligkeitbereiche später im Bild wichtig (also betont) werden sollen. Darum nimmt man bei Log an, dass alle Blendenstufen gleich wichtig sind. Folglich bekommt jede Blendenstufe gleich viel Gewicht in der Verteilungkurve. Dies kann man auch schön auf der Y-Achse der letzten Grafik sehen. Die Abstände der Blendenstufen auf der Y-Achse sind ungefähr gleich groß.
Blendenstufen und deren Auflösung
Um dies noch besser verstehen zu können, macht es vielleicht Sinn zwei Begriffe explizit zu klären:
Unter einer Blendenstufe versteht man (je nach Richtung) die Halbierung oder Verdoppelung des einfallenden Lichts durch die Blende. Ein Bildbereich, der sich von einem anderen um eine Blendenstufe unterscheidet, ist also doppelt oder halb so hell.
Unter der Blendenstufen-Auflösung verstehen wir die maximal mögliche Anzahl der Helligkeitsausprägungen innerhalb einer Blendenstufe. Salopp gesagt, wie viele unterschiedliche Helligkeitswerte man innerhalb einer Blendenstufe speichern kann.
Bei linearer Aufzeichnung gilt dann: Je heller eine Blendenstufe, desto höher ist ihre Blendenstufen-Auflösung. Sie kann also viel mehr Helligkeitsunterschiede innerhalb einer Blendenstufe “fassen”, je heller die Blendenstufe ist.
Bei einer idealen Log-Kurve gilt dagegen: Jede Blendenstufe besitzt die gleiche Blendenstufen-Auflösung. Egal ob die Blendenstufe in den Schatten, Mitten oder Lichtern sitzt. In jeder Blendenstufe kann die gleiche Anzahl an Helligkeitsunterschieden gespeichert werden.
An dieser Stelle lässt sich jetzt auch gut darlegen, warum 8 Bit Log ab einer gewissen Sensordynamik zum Problem wird. Nehmen wir an, der Sensor kann 15 Blendenstufen liefern und wir haben aufgrund von 8 Bit nur 256 mögliche Werte, um diese Daten zu speichern, dann können in einer Blendenstufe “nur” 17 (256/15) Helligkeitsunterschiede gespeichert werden. In realen Log-Profilen können aufgrund von typischen Codec-Schwächen in den dunklen Bereichen meistens sogar erst Werte über 16 oder 32 genutzt werden, was die Blendenstufen-Auflösung in 8 Bit auf ca. 16 drückt. Dies ist schon knapp an der Grenze zu sichtbarem Banding/Posterisation (= Treppenbildung in eigentlich weichen Helligkeitsverläufen). Zum Vergleich: In 10 Bit hat man bei ansonsten gleichen Rahmenbedingungen (15 Stops/LUT startet bei 128) schon eine viermal höhere Blendenstufen-Auflösung (ca. 64 Helligkeitswerte pro Blendenstufe). Für alle, die an dieser Stelle ausgestiegen sind, hier noch mal das wichtigste...
...zusammengefasst:
Im Vergleich zur REC709 wird das Bild bei Log nicht für das Auge geschönt gespeichert, sondern das Gegenteil ist das Ziel: Es soll ein möglichst breites Spektrum der vorliegenden Sensordaten für eine Nachbearbeitung erhalten bleiben. Und zwar sowohl in den Schatten als auch in den Mitten und den Lichtern. Erst in der Nachbearbeitung entscheidet sich, wie man den Kontrast, die Dynamik und die Farbinformationen der Log-Aufnahme für das finale Mastering nutzt. Ein "Log-Bild" sieht immer blass und farblos aus, weil die Informationen erst aus dem Material "entwickelt" werden müssen. Für die Korrektur in ein ansehnliches Bild nutzt man übrigens dann zugehörige LUTs (Look-up Tables). Das sind in diesem Fall invertierte Log-Kurven, welche die gepeicherten Log-Werte für die ansehenliche Wiedergabe auf einem Display zurückwandeln. (Mehr zu LUTs müssen wir in einen Nachfolgeartikel verschieben).
Soll das Material dagegen direkt nach der Aufnahme ohne weitere Korrektur gleich auf jedem Display gut aussehen, dann fasst man die Sensordaten logischerweise bereits in der Kamera so zusammen, dass auf einem (8 Bit-)Display ein möglichst sehenswertes Bild entsteht. Diese “Zusammenfassung” regelt aktuell die REC709-Norm und eine zugehörig definierte Gammakurve. Hierbei werden dunkle Bereiche des Bildes stark zusammenfasst und bekommen entsprechend wenig mögliche Werte von den 256 möglichen Plätzen. Die Mitten bekommen dagegen relativ viele Helligkeitsabstufungen der 256 Werte zugewiesen. Zu helle Sensorwerte werden dagegen wieder relativ schnell komplett weiß, bekommen also schon früh den maximalen Wert von 255. Ob eine Blendenstufe viele oder wenige der knappen 256 Werte zugewiesen bekommt wird hier also nach optischen Präferenzen festgelegt.
8 Bit Log ist nicht immer sinnvoll
Dies führt uns auch gleich zu der letzten Frage, ob denn 8 Bit Log gegenüber 8 Bit REC709 wirklich Sinn macht. Sofern man dem gewünschten Look schon in der Kamera nahe kommen kann, definitiv nicht. Denn in Log “schenkt” man dem Bild mehr Helligeitdetails in den Schatten und in den Lichtern, die den Mitten dann zwingenderweise fehlen. Wenn man die feineren Log-Helligkeitsabstufungen in den Schatten und Lichtern im finalen Bild gar nicht braucht, lässt man (z.B für Hauttöne) besser den Mitten mehr Helligkeitsdetails zukommen, indem man in REC709 filmt.
Erst 10 Bit Log stellt dagegen einen vernünftigen Kompromiss zwischen speicherfressender RAW-Aufnhame und dem Erhalt von vielen Details für die Postproduktion bei gleichzeitig relativ geringer Datenrate dar. Weil man in 10 Bit auch nach einer Korrektur in der Regel immer noch genügend Reserven für die Mitten im 8 Bit-Mastering zur Verfügung hat, gibt es keinen Nachteil gegenüber einer “echten” REC709-Aufnahme in 8 Bit. Außer etwas mehr Umstände mit einem passenden LUT-Workflow in der Nachbearbeitung. Doch dieser Zusatz-Aufwand ist bei entsprechendem LUT/Log-Verständnis faktisch gleich Null - Mehr zu LUTs in diesem Zusammenhang gibts dann auch demnächst an dieser Stelle.