Blog

Raw-Daten komprimieren – wie funktioniert das?

Kameras mit immer höher auflösenden Sensoren erzeugen immer größere Raw-Dateien. Eine verlustfreie oder verlustbehaftete Komprimierung, sei es nachträglich oder schon in der Kamera, kann Platz und Zeit sparen. Aber wie funktionieren solche Kompressionsverfahren überhaupt?

Rawsie-Test: Speicherplatz sparen ohne Qualitätsverluste? Raw-Daten komprimieren – wie funktioniert das?
Werbeversprechen: Das Rawsie-Verfahren von Dotphoton soll stark verkleinerte Raw-Dateien ohne sichtbare Qualitätsverluste produzieren. Aber wie ist so etwas überhaupt möglich?

Komprimierte Raw-Formate gibt es schon lange. Canon beispielsweise bietet nicht einmal die Option an, unkomprimierte Daten zu speichern. Wenn man es aber mit unkomprimierten oder nur leicht komprimierten Raw-Daten zu tun hat, liegt der Gedanke nahe, sie noch einmal im Nachhinein zu komprimieren. Dass man auf diese Weise Speicherplatz spart, muss nicht der wichtigste Grund dafür sein, denn die Kapazität der jeweils neuesten Speichermedien wächst noch viel schneller als die Megapixelzahlen der Sensoren, aber kleinere Raw-Dateien lassen sich auch schneller übertragen und öffnen. Das fällt um so stärker ins Gewicht, wenn man nicht im heimischen Netzwerk unterwegs ist, sondern seine Bilder auf einem Server im Internet (vulgo Cloud) speichern will. Christoph Künne hat jüngst getestet, was der Raw-Kompressor Rawsie in diesem Zusammenhang leisten kann, aber wie die daran anschließende Diskussion gezeigt hat, scheint es über die Arbeitsweise und den Nutzen von Kompressionsverfahren noch Unklarheiten zu geben.

Unkomprimiert

Wenn Kameras unkomprimierte Raw-Dateien speichern, gehen sie oft verschwenderisch mit dem Speicherplatz um. Die Analog/Digital-Konverter der meisten aktuellen Kameramodelle digitalisieren 14 Bits, aber 14 Bits sind eine etwas unpraktische Größe. Auf Speichermedien schreibt man keine Bits, sondern Bytes, also Einheiten von jeweils acht Bits, und daher werden die 14 Bits jedes Sensorpixels in zwei Bytes und damit 16 Bits gespeichert – zwei Bits sind dann stets gleich Null. Bei einer Bittiefe von 12 Bits wäre es noch recht einfach, die Daten kompakt zu speichern: Im ersten Byte werden acht Bits des ersten Pixels gespeichert, im zweiten Byte je vier Bits des ersten und zweiten Pixels, im dritten Byte die verbliebenen acht Bits des zweiten Pixels und so weiter. Bei 14 Bits wäre eine kompakte Speicherung ohne „Luft“ zwischen den Datenbits komplexer, und so macht man es sich einfach und akzeptiert, dass 1/8 einer Raw-Datei keine Informationen enthält.

Verlustfrei komprimiert

Eine verlustfreie Komprimierung der Raw-Daten vermeidet nicht nur diese Verschwendung, sondern verkleinert den Speicherbedarf noch weiter. Hierfür wird meist eine verlustfreie JPEG-Komprimierung verwendet. Dieses Verfahren hat mit der vertrauten JPEG-Komprimierung, die ja verlustbehaftet arbeitet, nichts zu tun; sie wurde lediglich von derselben Institution entwickelt: der Joint Photographic Experts Group, kurz JPEG.

Die verlustfreie JPEG-Komprimierung sieht vor, dass man die Zeilen eines Bildes von oben nach unten und dann die Pixel in jeder Zeile von links nach rechts durchläuft. Zu jedem Pixel nimmt man die Werte der Nachbarpixel links, oben und links oben und sagt auf deren Basis den erwarteten Wert des aktuellen Pixels voraus – oft haben benachbarte Pixel ja ähnliche Werte. Dann nimmt man die Differenz der Voraussage und des tatsächlichen Wertes und speichert diese. Um später die Pixelwerte zu rekonstruieren, nimmt man wiederum die benachbarten Pixel links, oben und links oben, die ja bereits rekonstruiert sind, berechnet eine Voraussage und addiert die gespeicherte Differenz.

Damit allein hätte man die Raw-Daten allerdings noch nicht komprimiert. Die Zahl der Werte entspricht ja weiter der Pixelzahl des Sensors. Die erwünschte Datenreduktion wird erst im zweiten Schritt erreicht, einer Entropiekodierung. Dabei wird nicht zu jedem Pixelwert die gleiche Zahl von Bits, also beispielsweise 12, 14 oder 16 gespeichert, sondern Bitfolgen variabler Länge – häufig vorkommende Werte werden mit weniger Bits als seltener auftretende Werte kodiert. Da die vorausgesagten Pixelwerte oft den tatsächlichen Pixelwerten nahe kommen, ist die Differenz meist klein. Kleine Zahlen sind also viel häufiger als große, und da diese kleinen Zahlen mit weniger Bits kodiert werden, nimmt die gespeicherte Datei am Ende weniger Platz ein. Da das Verfahren verlustfrei ist, lassen sich aber auch aus der kleineren Datei die vollständigen Raw-Daten wiederherstellen – das Ergebnis ist Bit für Bit identisch mit dem unkomprimierten Original.

Eine verlustfreie Raw-Komprimierung kann die Dateien oft auf die Hälfte verkleinern. Eine stärkere Kompression, etwa auf ein Viertel, wird nur selten erreicht. Verrauschte Aufnahmen mit einem hohen ISO-Wert lassen sich nur schlecht komprimieren, da sich Rauschen kaum vorhersagen lässt. Gute Kompressionsergebnisse erzielt man dagegen bei Aufnahmen mit niedrigem ISO-Wert und offener Blende – ein unscharfer Hintergrund lässt sich besonders gut komprimieren, da sich die Werte von Pixel zu Pixel nur wenig ändern.

Verlustbehaftet komprimiert

Eine Alternative sind verlustbehaftete Kompressionsverfahren, die einen Teil der in den ursprünglichen Daten enthaltenen Informationen weglassen – aber nur solche, deren Fehlen dem Betrachter nicht auffällt. Ein naheliegender Ansatz beruht darauf, dass die Sensordaten die Helligkeit linear beschreiben, während unsere Tonwertwahrnehmung eher einer logarithmischen Kurve folgt. Daher werden die Tonwerte in den Lichtern unnötig fein aufgelöst, die Tonwerte in den Schatten dagegen relativ grob. Man kann auf einen großen Teil der Differenzierungen in den Lichtern verzichten, ohne dass es auffiele oder auch nur die Bearbeitbarkeit der Bilder nennenswert einschränkte.

Nikon hat diesen Umstand mit seinem verlustbehafteten NEF-Kompressionsverfahren ausgenutzt, das die Pixelwerte zunächst mit einer Gammakurve auf einen kleineren Wertebereich reduziert. Eine anschließende Entropiekodierung sorgt dann für die eigentliche Datenreduktion.

Leica hat es sich bei der M8 und M9 noch einfacher gemacht: Die ursprünglichen 14-Bit-Werte werden mit 4 multipliziert und die Quadratwurzel daraus gezogen. Das Ergebnis sind Werte zwischen 0 und 255, die sich in 8 Bits speichern lassen, wozu nicht einmal eine Entropiekodierung nötig ist. Dieses Verfahren ist extrem schnell – tatsächlich werden die gesuchten Werte gar nicht berechnet, sondern in einer Lookup-Table nachgeschlagen – und liefert gute Ergebnisse. Argwöhnische Leica-Fotografen haben jahrelang nach einem Haken bei dieser doch recht grobschlächtigen Methode gesucht, aber keinen gefunden.

Sowohl die verlustbehaftete NEF-Kompression wie auch Leicas Quadratwurzelmethode erreichen allerdings nur recht moderate Kompressionsfaktoren. Leicas Verfahren reduziert die Dateigröße beispielsweise auf exakt die Hälfte, wenn man von der verschwenderischen Speicherung von 14 Bits in zwei Bytes ausgeht. Von dem, was mit JPEG erreichbar ist, bleibt das weit entfernt.

Raw-Daten komprimieren – wie funktioniert das?
Mit dem Adobe DNG Converter ist auch eine verlustbehaftete Komprimierung möglich, die in Adobes etwas unglücklicher Eindeutschung als „verlustreich“ bezeichnet wird.

Im DNG Converter bietet Adobe schon seit vielen Jahren verlustbehaftete Kompressionsoptionen, mit denen sich Raw-Dateien, wie sie die Kamera gespeichert hat, in deutlich stärker verkleinerte DNG-Dateien konvertieren lassen. Eine Methode besteht darin, die Bilder schlicht auf eine geringere Pixelzahl zu verkleinern, aber wenn es darum geht, die Raw-Daten ohne sichtbare Verluste zu komprimieren, kommt das natürlich nicht in Frage. Wenn man die Pixelzahl erhalten möchte, bleibt dennoch eine starke Kompression möglich.

Zu diesem Zweck erzeugt der Adobe DNG Converter zunächst eine sogenannte lineare DNG-Datei. Diese enthält statt der eigentlichen Rohdaten, in denen für jedes Pixel nur die Helligkeit in einem Farbkanal gespeichert ist, vollständige RGB-Daten. Das Demosaicing, also die Vervollständigung der RGB-Daten durch Interpolation aus den Nachbarpixeln, die für die jeweils fehlenden Grundfarben empfindlich sind, ist dann bereits erfolgt, aber alle weiteren Schritte der Raw-Entwicklung noch nicht. Solche Dateien bieten daher immer noch eine ähnliche Flexibilität und denselben Dynamikumfang wie echte Rohdaten.

Das Demosaicing erzeugt aus meist 14 Bits pro Pixel RGB-Daten mit 8 Bits pro Farbkanal, insgesamt also 24 Bits. Der Platzbedarf wächst daher zunächst um 71 Prozent. Um die Datenmenge wieder zu verkleinern, werden die RGB-Daten danach mit dem verlustbehafteten JPEG-Verfahren komprimiert. Dass sich damit eine starke Kompression erzielen lässt, liegt auf der Hand, aber es stellt sich die Frage, ob eine so komprimierte DNG-Datei überhaupt noch Vorteile gegenüber einer JPEG-Datei bietet.

Der entscheidende Unterschied zu einer gewöhnlichen JPEG-Datei liegt in der Behandlung der Tonwerte. Bei der Vergröberung der Farbtiefe auf 8 Bits pro Farbkanal bleibt hier der ursprüngliche Dynamikumfang erhalten. Es wird keine im Bild vorhandene Lichter- oder Schattenzeichnung abgeschnitten, sondern die Tonwertdifferenzierung nur dort reduziert, wo das vermutlich unbemerkt bleibt – prinzipiell also ähnlich, wie das bei Nikons verlustbehafteter NEF-Komprimierung und bei Leicas Quadratwurzelverfahren geschieht. Die dazu angewandten Tonwertkurven sind allerdings für die drei Farbkanäle jedes Bildes individuell optimiert, was zu besseren Ergebnissen als die einheitliche Tonwertkomprimierung bei Nikon und Leica führt. Ein in die Bilddaten eingerechnetes Dithermuster trägt zusätzlich dazu bei, dass es trotz der Vergröberung selbst bei starken Eingriffen in die Tonwertwiedergabe nur selten zu störenden Tonwertabrissen kommt.

Wie geht nun aber das von Christoph Künne getestete Verfahren vor? Der Hersteller der Rawsie-Software, ein Startup namens Dotphoton, verrät keine Details, aber da die Software den Adobe DNG Converter voraussetzt und ebenfalls DNG-Dateien erzeugt, muss sie zwangsläufig ähnlich funktionieren. Es werden also zunächst noch nicht vollständig entwickelte RGB-Daten erzeugt und diese dann komprimiert. Was bei der Komprimierung geschieht, bleibt unklar; Dotphoton sagt nur, dass es nicht dasselbe wie bei Adobes Verfahren sei. Auf der anderen Seite kann es aber auch nichts völlig anderes sein, denn sonst ließe sich das Ergebnis nicht im DNG-Format speichern. Dass Rawsie im Vergleichstest keine besseren Ergebnisse als der Adobe DNG Converter brachte, kann insofern nicht überraschen.

Zeig mehr

Michael J. Hußmann

Michael J. Hußmann gilt als führender Experte für die Technik von Kameras und Objektiven im deutschsprachigen Raum. Er hat Informatik und Linguistik studiert und für einige Jahre als Wissenschaftler im Bereich der Künstlichen Intelligenz gearbeitet.

Ähnliche Artikel

3 Kommentare

  1. Sehr interessanter Artikel. Ich vermisse darin den cRAW von Canon. durch Adobe DNG verdoppelt sich die Größe (aus ca. 32MB 0E0A1577.CR3 werden 71 MB 0E0A1577.dng.) In den Foren und Communities habe ich bisher keine negative Meinungen zum cRAW gefunden. Ist CANON besser als Adobe?

    1. Nicht unbedingt besser … Damit der DNG Converter eine bereits komprimierte Raw-Datei in ein DNG höchstens gleicher Größe umwandeln kann, müssten die komprimierten Daten übernommen werden, was aber nur funktionieren kann, wenn die DNG-Spezifikation exakt dieses Format unmittelbar unterstützt. Das ist bei cRaw nicht der Fall. Der DNG Converter muss die Daten daher zunächst dekomprimieren. Er könnte sie danach erneut verlustbehaftet komprimieren, aber selbst wenn man damit einen vergleichbaren Kompressionsfaktor bekäme, wäre es keine gute Idee, zwei verlustbehaftete Kompressionsverfahren hintereinander anzuwenden, was die Verluste ja vergrößert. Es wäre aber zumindest denkbar, dass Adobe irgendwann die cRaw-Komprimierung in die DNG-Spezifikation übernimmt, falls dem keine Patente entgegen stehen oder sich Canon kooperativ erweist.

      Wie die verlustbehaftete cRaw-Komprimierung funktioniert, weiß ich nicht; eine Dokumentation des Verfahrens habe ich nicht gefunden. Um herauszufinden, wie sich cRaw gegenüber Adobes verlustbehafteter Kompression verhält, müsste man ein Bild einmal im normalen, verlustfrei komprimierten CR3-Format und dann im cRaw-Format speichern und das verlustfrei komprimierte Raw mit dem DNG Converter verlustbehaftet komprimieren. Dann könnte man die Dateigrößen und die Qualität der beiden auf verschiedene Weisen verlustbehaftet komprimierten Dateien in einem Raw-Konverter vergleichen. Aber selbst wenn sich Adobes Verfahren als besser erweisen sollte, würde es einem nichts nützen, falls man schon beim Speichern in der Kamera Platz sparen will; dabei hilft nur cRaw.

Schreibe einen Kommentar

Das könnte Dich interessieren
Schließen
Schaltfläche "Zurück zum Anfang"