Warum sind JPEG-Weißabgleichkorrekturen nach der Verarbeitung nicht so genau wie der Weißabgleich mit Raw?
Mein Verständnis ist, dass die Kamera beim Aufnehmen von JPEG intern die folgenden Schritte ausführt:
In linearen Raum umwandeln
a. Verwenden der Nachschlagetabelle, um den Rohwert dem linearen Raum zuzuordnen
b. Der Schwarzpegel für jedes Pixel wird dann berechnet und subtrahiert.
c. Der Wert für jedes Pixel wird dann mithilfe von Whitelevel auf 0,0 bis 1,0 neu skaliert
d. Werte werden neu skaliert und auf einen logischen Bereich von 0,0 bis 1,0 begrenzt.
Abbildung des Kamerafarbraums auf den CIE-XYZ-Raum mit Weißabgleich
a. Konvertieren Sie in XYZ (D50) mit CameraToXYZ_D50 = Chromatic_adapatation_matrix * CameraToXYZ_matrix
Konvertieren Sie CIE XYZ in sRGB
a. Berechnen Sie lineares RGB mit der CIE XYZ-zu-linearen RGB-Matrix
b. Berechnen Sie Rec709 sRGB mithilfe der Gammakurventransformation auf linearem RGB
Wenn dies richtig ist, verstehe ich nicht, warum Jpeg den Weißabgleich nicht auf die gleiche Weise wie Raw korrigieren konnte!
Liegt es einfach an der verlustbehafteten Komprimierung von JPEG- und 32-Bit-TIFF-Dateien, die dieses Problem nicht haben?
Warum kann die Software den Weißabgleich bei RAW-Dateien genauer korrigieren als bei JPEGs?
Es gibt einen grundlegenden Unterschied zwischen der Arbeit mit den tatsächlichen Rohdaten, um eine andere Interpretation der Rohdaten als der anfänglichen 8-Bit-Interpretation der Rohdatei zu erzeugen, die Sie auf Ihrem Bildschirm sehen, im Vergleich zur Arbeit mit einem 8-Bit-JPEG, in dem die gesamten Informationen enthalten sind Die Datei ist das, was Sie auf Ihrem Bildschirm sehen.
Wenn Sie den weißen Clicker für eine "Rohdatei" verwenden, korrigieren Sie nicht das auf Ihrem Bildschirm angezeigte Bild (das ein JPEG-ähnliches 8-Bit-Rendering ist, das eine von vielen möglichen Interpretationen der Daten in einer Rohbilddatei darstellt ). Sie weisen die Raw-Konvertierungsanwendung an, zurückzugehen und die Daten in der Raw-Datei mit einem anderen Satz von Farbkanalmultiplikatoren in ein anzeigbares Bild umzuwandeln.
Sie erstellen ein weiteres Bild aus denselben Rohdaten, die zum Erstellen der ersten Version verwendet wurden, die Sie auf Ihrem Bildschirm sehen. Aber die Anwendung geht den ganzen Weg zurück zum Anfang und verwendet alle Daten in der Rohdatei, um eine zweite, andere Interpretation der Rohdaten zu erstellen, basierend auf Ihren unterschiedlichen Anweisungen, wie diese Daten verarbeitet werden sollen. Es beginnt nicht mit den begrenzten Informationen, die auf Ihrem Bildschirm angezeigt werden, und korrigiert diese. Wenn dies der Fall wäre, würden Sie dasselbe Ergebnis erhalten wie bei der Arbeit mit dem JPEG. ¹
Die Rohdatei enthält viel mehr Informationen, als auf Ihrem Monitor angezeigt werden, wenn Sie eine Rohdatei „öffnen“. Rohbilddateien enthalten genügend Daten, um eine nahezu unendliche Anzahl verschiedener Interpretationen dieser Daten zu erstellen, die in eine 8-Bit-JPEG-Datei passen.²
Jedes Mal, wenn Sie eine Rohdatei öffnen und auf Ihrem Bildschirm betrachten, sehen Sie nicht „DIE Rohdatei“. ³ Sie sehen eine von nahezu unzähligen möglichen Interpretationen der Daten in der Rohdatei. Die Rohdaten selbst enthalten einen einzelnen (monochromen) Helligkeitswert, der von jeder Pixelmulde gemessen wird. Bei maskierten Kamerasensoren von Bayer (die überwiegende Mehrheit der digitalen Farbkameras verwenden Bayer-Filter) hat jedes Pixel einen Farbfilter davor , der entweder „rot“, „grün“ oder „blau“ ist (die eigentlichen „Farben“ von Die Filter in den meisten Bayer-Masken reichen von leicht gelblich-grün bis orange-gelb für "rot", leicht bläulich-grün für "grün" und leicht bläulich-violett für "blau" -diese Farben entsprechen mehr oder weniger dem Empfindlichkeitszentrum für die drei Arten von Zapfen in unserer Netzhaut ). Eine vollständigere Diskussion darüber, wie wir Farbinformationen aus den einzelnen Helligkeitswerten erhalten, die an jedem Pixel gut gemessen werden, finden Sie unter RAW-Dateien speichern 3 Farben pro Pixel oder nur eine?
Wenn Sie den Weißabgleich einer Rohdatei ändern, nehmen Sie keine Änderungen an der 8-Bit-Interpretation der Rohdatei vor, die Sie auf Ihrem Bildschirm sehen, Sie nehmen Änderungen an der Art und Weise vor, wie die linearen 14-Bit-Monochrom-Rohdaten interpretiert werden und wird dann mit dem aktualisierten Weißabgleich auf Ihrem Bildschirm angezeigt.Das heißt, Sie nutzen den vollen Vorteil dieser 16.384 diskreten monochromatischen linearen Schritte, die die Rohdatei für jedes Pixel enthält, und nicht die 256 diskreten gammakorrigierten Schritte in drei Farbkanälen für jedes Pixel, die Sie auf Ihrem 8-Bit-Bildschirm sehen eine Darstellung dieser Rohdatei. Sie nutzen auch alle anderen Informationen, die in den Rohbilddaten enthalten sind, einschließlich solcher Dinge wie maskierte Pixel und andere Informationen, die verworfen werden, wenn die Datei in ein 8-Bit-Format konvertiert wird, um auf Ihrem Bildschirm angezeigt zu werden.
Wie das Bild, das Sie beim Öffnen einer Rohdatei auf Ihrem Monitor sehen, aussieht, hängt davon ab, wie die Anwendung, die Sie zum Öffnen der Datei verwendet haben, die Rohdaten in der Datei interpretiert, um ein sichtbares Bild zu erzeugen. Aber das ist nicht die "einzige" Möglichkeit, "DIE Original-Rohdatei" anzuzeigen. Es ist einfach so, wie Ihre Anwendung – oder die Kamera, die die an die Rohdatei angehängte JPEG-Vorschau erstellt hat – die Informationen in der Rohdatei verarbeitet hat, um sie auf Ihrem Bildschirm anzuzeigen.
Jede Anwendung hat ihren eigenen Satz von Standardparametern, die bestimmen, wie die Rohdaten verarbeitet werden. Einer der wichtigsten Parameter ist die Auswahl des Weißabgleichs , der zur Konvertierung der Rohdaten verwendet wird. Die meisten Anwendungen haben viele verschiedene Sätze von Parametern, die vom Benutzer ausgewählt werden können, der dann frei ist, einzelne Einstellungen innerhalb des Satzes von Anweisungen zu ändern, die verwendet werden, um die Daten in der Rohdatei anfänglich zu interpretieren. Viele Anwendungen verwenden die Weißabgleich-/Farbkanalmultiplikatoren, die von der Kamera geschätzt (bei Verwendung von AWB in der Kamera) oder vom Benutzer (bei Verwendung von CT + WB-Korrektur in der Kamera) zum Zeitpunkt der Aufnahme des Fotos eingegeben wurden. Aber das ist nicht der einzige legitime Weißabgleich, der zur Interpretation der Rohdaten verwendet werden kann.
Bei einer 14-Bit-Rohdatei gibt es 16.384 diskrete Werte zwischen 0 (reines Schwarz) und 1 (reines Weiß). Das erlaubt sehr kleine Schritte zwischen jedem Wert. Dies sind jedoch monochrome Luminanzwerte. Wenn die Daten aufgelöst, Gammakurven angewendet und in einen bestimmten Farbraum konvertiert werden, werden die WB-Konvertierungsmultiplikatoren normalerweise auf diese 14-Bit-Werte angewendet. Der letzte Schritt in diesem Prozess besteht darin, die resultierenden Werte auf 8 Bit neu zuzuordnen, bevor eine verlustbehaftete Dateikomprimierung durchgeführt wird. 8-Bit erlaubt nur 256 diskrete Werte zwischen 0 (reines Schwarz) und 1 (reines Weiß). Somit ist jeder Schritt zwischen den Werten 64-mal größer als bei 14-Bit.
Wenn wir dann versuchen, den WB mit diesen viel gröberen Abstufungen zu ändern, verschieben die Bereiche, die wir zu erweitern versuchen, jeden der Schritte in den Daten, die wir verwenden, weiter als einen einzelnen Schritt in der resultierenden Datei. Die Abstufungen in diesen Bereichen werden also noch gröber. Die Bereiche, die wir verkleinern, drücken jeden dieser Schritte in einen kleineren Raum als einen einzelnen Schritt in der resultierenden Datei. Aber dann werden diese Schritte alle neu ausgerichtet, um der 256-Schritt-Abstufung zwischen '0' und '1' zu entsprechen. Dies führt häufig zu Streifenbildung oder Posterisierung anstelle von glatten Übergängen.
¹ Um schneller und weniger ressourcenintensiv zu sein, verfügen einige Raw-Verarbeitungsanwendungen über einen "schnellen" Modus, der tatsächlich die vorhandene 8-Bit-Darstellung auf Ihrem Bildschirm ändert, wenn Sie einen Einstellungsregler bewegen. Dies führt häufig zu Streifenbildung oder anderen unerwünschten Artefakten, z. B. dem violetten Farbton, den Sie in dem farbverschobenen JPEG in der Frage sehen. Dies gilt jedoch nur für die angezeigte Vorschau. Wenn die Datei konvertiert und gespeichert (exportiert) wird, werden die gleichen Anweisungen tatsächlich auf die Rohdaten angewendet, wie sie erneut verarbeitet werden, und die Streifenbildung oder andere Artefakte sind nicht zu sehen (oder sind nicht so schwerwiegend).
² Sicher, Sie könnten ein Bild aufnehmen, das im gesamten Sichtfeld eine einzige reine Farbe enthält. Die meisten Fotos enthalten jedoch eine Vielzahl von Farbtönen, Farbtönen und Helligkeitsstufen.
³ Siehe: Warum sind meine RAW-Bilder bereits in Farbe, wenn das Debayering noch nicht abgeschlossen ist?
Dies würde die Streifenbildung oder Posterisierung im Bild erklären, die durch die verringerte Genauigkeit verursacht wird, aber es sollte immer noch möglich sein, den Weißpunkt in die richtige Position zu verschieben, nein?
Sie können die Farbe eines JPEG bis zu einem gewissen Grad ändern, aber die meisten Informationen, die erforderlich sind, um alle Farben zu erzeugen, die Sie mit den Rohdaten erzeugen können, sind nicht mehr vorhanden. Es wurde bei der Umwandlung in RGB und der Reduzierung auf 8 Bit vor der Komprimierung verworfen. Das einzige, womit Sie noch arbeiten müssen, sind die Werte jedes Pixels in diesen drei Farbkanälen. Die Antwortkurven für jeden dieser Kanäle können neu gezeichnet werden, aber alles, was dies tut, ist, den Wert für diesen Farbkanal in jedem der Bildpixel zu erhöhen oder zu verringern. Es geht nicht zurück und wiederholt die Demosaikierung basierend auf neuen Kanalmultiplikatoren, da diese Informationen nicht im JPEG aufbewahrt werden.
Es ist wichtig zu verstehen, dass in dem der Frage hinzugefügten Beispielbild das zweite Bild nicht vom ersten Bild abgeleitet ist. Sowohl das erste als auch das zweite Bild sind zwei unterschiedliche Interpretationen genau derselben Rohdaten.Keiner ist origineller als der andere. Keine ist "korrekter" als die andere in Bezug auf eine gültige Darstellung der in der Rohdatei enthaltenen Daten. Beides sind vollkommen legitime Möglichkeiten, die Daten in der Rohdatei zu verwenden, um ein 8-Bit-Bild zu erzeugen. Die erste ist die Art und Weise, wie Ihre RAW-Konvertierungsanwendung und/oder die in Ihrer Kamera generierte JPEG-Vorschau die Daten interpretiert. Die zweite ist die Art und Weise, wie Ihre Rohdatenkonvertierungsanwendung die Daten interpretiert hat, nachdem Sie ihr mitgeteilt haben, welche Rohsensorwerte Sie in Grau/Weiß umwandeln möchten. Wenn Sie auf denselben Teil des JPEG-Bilds geklickt haben, waren viele der Farbinformationen, die erforderlich waren, um das Bild so zu korrigieren, dass es wie die zweite Version der Rohdatei aussah, nicht mehr vorhanden und konnten daher nicht verwendet werden.
Liegt es einfach an der verlustbehafteten Komprimierung von JPEG- und 32-Bit-TIFF-Dateien, die dieses Problem nicht haben?
Nein, obwohl die verlustbehaftete Komprimierung einen großen Teil davon ausmacht. Ebenso die Reduzierung auf 8 Bit, wodurch jeder Schritt zwischen „0“ (reines Schwarz) und „1“ (volle Sättigung) 64-mal so groß wird wie bei einer 14-Bit-Rohdatei. Aber es geht über die JPEG-Komprimierung hinaus.
Ein paar Absätze aus dieser Antwort auf RAW to TIFF oder PSD 16bit verlieren an Farbtiefe :
Sobald die Daten in der Rohdatei in eine demosaikierte, gammakorrigierte TIFF-Datei umgewandelt wurden, ist der Vorgang unumkehrbar.
Bei TIFF-Dateien sind all diese Verarbeitungsschritte in die enthaltenen Informationen "eingebacken". Obwohl eine unkomprimierte 16-Bit-TIFF-Datei aufgrund der Art und Weise, wie die Daten gespeichert werden, viel größer ist als eine typische Rohdatei, aus der sie abgeleitet wurde, enthält sie nicht alle Informationen, die erforderlich sind, um die Transformation umzukehren und genau dieselben Daten zu reproduzieren in der Rohdatei enthalten. Es gibt eine nahezu unendliche Anzahl unterschiedlicher Werte in den Daten auf Pixelebene einer Rohdatei, die verwendet werden könnten, um ein bestimmtes TIFF zu erzeugen. Ebenso gibt es eine nahezu unendliche Anzahl von TIFF-Dateien, die aus den Daten in einer Rohbilddatei erzeugt werden können, abhängig von den Entscheidungen, die darüber getroffen werden, wie die Rohdaten verarbeitet werden, um das TIFF zu erzeugen.
Der Vorteil von 16-Bit-TIFFs gegenüber 8-Bit-TIFFs ist die Anzahl der Schritte zwischen den dunkelsten und hellsten Werten für jeden Farbkanal im Bild. Diese feineren Schritte ermöglichen weitere zusätzliche Manipulationen, bevor sie schließlich in ein 8-Bit-Format konvertiert werden, ohne Artefakte wie Streifenbildung in Bereichen mit tonaler Abstufung zu erzeugen.
Aber nur weil ein 16-Bit-TIFF mehr Schritte zwischen "0" und "65.535" hat als eine 12-Bit- (0-4095) oder 14-Bit-Rohdatei (0-16383), bedeutet das nicht, dass die TIFF-Datei angezeigt wird gleicher oder größerer Helligkeitsbereich. Wenn die Daten in einer 14-Bit-Rohdatei in eine TIFF-Datei umgewandelt wurden, hätte der Schwarzpunkt mit einem Wert wie 2048 ausgewählt werden können. Jedem Pixel in der Rohdatei mit einem niedrigeren Wert als 2048 würde der Wert 0 zugewiesen werden im TIFF. Wenn der Weißpunkt beispielsweise auf 8.191 eingestellt wäre, würde jeder Wert in der Rohdatei, der höher als 8191 ist, auf 65.535 eingestellt, und die hellste Lichtblende in der Rohdatei würde unwiderruflich verloren gehen. Alles, was in der Rohdatei heller ist als der ausgewählte Weißpunkt, hat im TIFF denselben Wert, sodass kein Detail erhalten bleibt.
Es gibt hier eine große Anzahl bestehender Fragen, die einen Großteil des gleichen Bereichs abdecken. Hier sind einige davon, die Sie vielleicht hilfreich finden:
RAW-Dateien speichern 3 Farben pro Pixel oder nur eine?
RAW zu TIFF oder PSD 16bit verliert an Farbtiefe
Wie fange ich mit kamerainternen JPEG-Einstellungen in Lightroom an?
Warum ändert sich das Aussehen von RAW-Dateien beim Wechsel von „Lighttable“ zu „Darkroom“ in Darktable?
nikon d810 manuell Weißabgleich ist nicht dasselbe wie „As Shot“ in Lightroom
Warum sehen RAW-Bilder in Bearbeitungsprogrammen schlechter aus als JPEGs?
Passen Sie Farben in Lightroom an andere Bearbeitungswerkzeuge an Müssen
Sie beim Aufnehmen in RAW nachbearbeiten, damit das Bild gut aussieht?
Warum gibt es einen Qualitätsverlust von der Kamera zum Computerbildschirm
? Warum sehen meine Fotos in Photoshop/Lightroom anders aus als im Canon EOS-Dienstprogramm/in der Kamera?
Warum sehen meine Bilder auf meiner Kamera anders aus, als wenn sie auf meinen Laptop importiert werden?
Wie emuliert man die kamerainterne Verarbeitung in Lightroom?
Kamerainterne Nikon-Konvertierung im Vergleich zu Lightroom-JPG-Konvertierung
Warum ändert sich meine Lightroom/Photoshop-Vorschau nach dem Laden?
Die einfache Antwort ist, dass Ihre Kamera und Ihr RAW-Prozessor (LR, Darktable, um nur einige zu nennen) unterschiedliche Algorithmen verwenden, um RAW-Dateien zu verarbeiten. Die Gründe dafür sind vielfältig, und wir können diese Algorithmen nicht bewerten, da viele Geschäftsgeheimnisse sind. Beispielsweise liegt die Farbtemperatur von Canon (EOS 700D) bei Tageslicht bei etwa 5200 K, während die von Lightroom bei 5500 K liegt. In manchen Situationen macht das einen Unterschied.
Um genau zu sein, haben RAW-Dateien keine vordefinierte Farbtemperatur. Sie ist als Metainformation enthalten. RAW-Prozessoren wenden bestimmte WB an, wenn sie die von Ihnen beschriebenen Vorgänge ausführen.
Bearbeiten: und basierend auf Ihrem Kommentar: Sie können die Farbtemperatur der JPEG-Datei nicht stark ändern, da sie bereits "gekocht" ist. Die Farbtemperatur wurde bereits angewendet, und Sie haben nicht genügend Farbtiefe, um die Farben zu „verschieben“.
Es ist möglich, JPEGs weißabzugleichen, aber die Bearbeitungswerkzeuge, die für die Bearbeitung von RAW-Bildern verwendet werden, neigen dazu, sich anders zu verhalten (unterschiedliche Algorithmen). Weiter:
Das Pipettenwerkzeug ist ungenau, was es schwierig macht, Ergebnisse zu replizieren.
Die Bittiefe von JPEGs begrenzt, wie viel Farben im Vergleich zu RAW verschoben werden können.
Die Gammakurve bringt alles durcheinander.
Berechnungen mit linearen Daten vs. logarithmischen Daten verhalten sich unterschiedlich.
So funktioniert es nicht genau , aber zur Veranschaulichung:
Angenommen, Sie möchten einige Daten (1, 4, 8) mit 2 multiplizieren. Das Ergebnis ist (2, 8, 16). Bei linearen Daten ist das maximale Ergebnis, 16, das Vierfache des minimalen Ergebnisses, 2.
Aber bei logarithmischen Darstellungen ist die Lücke zwischen benachbarten Werten, wie 2 5 und 2 6 , viel größer als die Differenz zwischen linearen Werten, 5 und 6. Außerdem ist das maximale Ergebnis, 2 16 , nicht nur 32768 Mal größer als die min Ergebnis, 2 2 , ist es auch 256-mal der ursprüngliche Wert, 2 8 .
Michael C
Himmel
mattdm
Michael C
schrottplatzfunkeln
mattdm
Himmel