Warum exportiert Darktable riesige JPEGs?

Ich habe eine Nikon D3200 und habe gerade angefangen, in Raw zu fotografieren.

Raw-Dateien sind 18–24 MB groß, und wenn ich sie mit Nikons ViewNX 2 in JPEG konvertiere, erhalte ich 8–12 MB-Dateien in höchster Qualität und Auflösung mit sRGB; die gleiche Größe, die ich bei Aufnahmen außerhalb der Kamera in JPG mit maximaler Qualität erhalten würde.

Anstatt Darktable mit den gleichen Optionen (Qualität 100 und sRGB bei maximaler Auflösung) zu verwenden, erhalte ich Dateien mit 25-30 MB, was viel ist – sogar mehr als das ursprüngliche Raw.

Gibt es dafür einen Grund? Wie kann ich es ändern? Wenn es nicht möglich ist, zu ändern, welche Einstellung würden Sie mir empfehlen, in Darktable zu verwenden, um kleinere Dateien zu erhalten, ohne zu viel Qualität zu verlieren?

Ich kann dies mit D5100-Dateien (aber nicht mit Fujifilm-Dateien) reproduzieren.
Für das Betrachten im Internet würde ich empfehlen, die Qualität auf etwa 75 einzustellen. Wenn Sie eine etwas bessere Qualität wünschen, sind 95 alles, was Sie brauchen. Die Größe beträgt für mich mehr als 7 MB.

Antworten (4)

Es scheint, dass die große Dateigröße für die von Ihnen gewählten Einstellungen erwartet wird.

Wenn ich ein NEF-Bild von einer Nikon D5100 nehme und es mit dem sRGB-Farbraum und der Qualität 100 in JPEG umwandle, ist das Ergebnis etwa 18 MB groß. Das Gleiche mit dcraw und ImageMagicks Konvertierung führt ebenfalls zu einer 18-MB-Datei.

JPEG 100-Qualität sollte wahrscheinlich nie benötigt werden. Wenn Sie verlustfreie Dateien möchten, verwenden Sie TIFF. Für die Anzeige wird JPEG 100 nicht benötigt, Sie können ruhig etwas wie 95 verwenden und sind nicht in der Lage, den Unterschied zu erkennen.

Welche JPEG-Komprimierung ausgewählt werden sollte, kann weiter untersucht werden, und es gibt hier Fragen dazu, aber die Auswahl eines Werts in den 90ern wird die Größe erheblich reduzieren und für die meisten Anwendungen geeignet sein.

Ok, mit 95 bekomme ich ungefähr 11-12 MB (ich teste zwei Bilder bei 97, 95, 93), was in Ordnung sein sollte. Das einzige, was ich nicht verstehe, ist, warum ich mit ViewNX 2 in der höchsten Qualität viel kleinere Dateien bekomme. Vielleicht ist ihre Top-Qualität nicht wirklich 100, da es keinen numerischen Wert gibt, sondern nur einen Schieberegler.
ViewNX kenne ich nicht. Wenn 12 MB zu groß sind, versuchen Sie, auf 75 zu gehen. Versuchen Sie, ob Sie einen Unterschied sehen können. Worauf Sie achten sollten, sind Kanten in normalerweise glatten Farben (wie der Himmel) und feine Details in wirklich strukturierten Bereichen.
@Unapiedra: Dies ist nicht nur bei Darktable der Fall. Mehrere Produkte, mit denen ich arbeite, haben einen RIESIGEN Größenunterschied zwischen JPEG 100 % und, sagen wir, 95 % Qualität.

Unkomprimierte RGB-Dateien (3 Werte pro Pixel) sind größer als Ihre Raws, da die Raws eine monochrome Bitmap (1 Wert pro Pixel) und normalerweise eine herunterskalierte, stark komprimierte Vorschau enthalten, die einen Bruchteil der Größe einnimmt, 400k für Canon 10MP Kameras und 1M für Nikon D5100 (ich kenne diese Zahlen, weil ich sie früher aus den Rohdateien ausgelesen und in einer temporären Datei gespeichert habe). Nikon NEFs speichern Vorschauen in voller Auflösung, während Canon die halbe Auflösung verwendet, daher der größere Bruchteil.

Sie können also davon ausgehen, dass eine unkomprimierte 16-Bit-RGB-Bitmap ungefähr dreimal größer ist als die Rohdatei und mal 3 geteilt durch 2 für unkomprimierte 8-Bit. Ein 16 MP 8-Bit-Bild ist unkomprimiert 48 MB groß.

Nun zum Punkt, da wir hier über JPEGs sprechen. Es ist die unkomprimierte Bitmap-Größe, die die Basisgröße für die Komprimierung ist, um sich von herunterzuarbeiten, nicht die Rohgröße. Das heißt, wenn man die Kompression sehr sanft einstellt, kann sie durchaus noch größer sein als das Rohmaterial.

Die JPEG-Qualitätsnummern sind willkürlich - alles, was Sie sicher wissen, ist, dass die Qualität 100 größer als 90 und 90 größer als 80 im selben Programm ist. Mit der JPEGLIB, die ich für meine JPEG-Verarbeitung verwende, wird ein 16-Megapixel-Bild 4 MB groß und geht bei 95 schnell auf 1,7 MB zurück, ohne dass die Qualität merklich beeinträchtigt wird. Normalerweise behalte ich es bei 80, was 950.000 entspricht. Und beim Umschalten zwischen der 4-MB- und der 950-k-Datei bei 100 % Zoom sehe ich keinen Unterschied. Es scheint also übertrieben zu sein, dass Ihre 100% kaum komprimiert werden.

Sie sollten also ein Bild mit vielen Details und klarem Himmel aufnehmen und dann bei 100, 90, 80, 70, 60, 50 speichern, bis Sie einen Qualitätstreffer sehen. Für Ihre 24-Megapixel-Bilder werden Sie diese Grenze wahrscheinlich bei etwa 1,5 MB erreichen, unabhängig von der JPEG-Qualitätsnummer, die in Ihrem Programm angegeben ist.

Ausgezeichnete Antwort, Sie könnten vielleicht einen Link zum JPEG hinzufügen

Die Diskrepanz in der Größe zwischen JPEGs, die in verschiedenen Encodern mit "100 % Qualität" codiert wurden, ist wahrscheinlich auf eine der folgenden Ursachen zurückzuführen:

  • Unterschiedliche Chroma-Subsampling-Einstellung. Chroma-Subsampling in JPEGs reduziert die räumliche Auflösung der Chroma-Kanäle im Gegenzug zur Reduzierung der Dateigröße mit kaum wahrnehmbaren Qualitätsunterschieden, zumindest bei den meisten Fotomaterialien.

    Verschiedene JPEG-Encoder können das Chroma-Subsampling unterschiedlich anpassen: Einige können es zusammen mit der Qualitätseinstellung anpassen, sodass eine höhere Qualität auch weniger Subsampling verwendet. Einige verwenden möglicherweise eine andere, separate Steuerung für die Qualitätseinstellung. Und einige erlauben möglicherweise überhaupt keine Anpassung dieser Einstellung.

  • Unterschiede zwischen der Art und Weise, wie Encoder die Qualitätseinstellung interpretieren. Unterschiedliche JPEG-Encoder weisen der Qualitätseinstellung unterschiedliche Bedeutungen zu, sodass Sie die Qualitätseinstellungen verschiedener Encoder nicht vergleichen können.

    Beispielsweise kann eine Qualität von 80 % in einem Codierer ähnliche durchschnittliche Quantisiererwerte wie eine Qualität von 92 % in einem anderen Codierer wählen. Die Qualitätseinstellungen beeinflussen nur indirekt den Algorithmus, den der Encoder verwendet, um Quantisiererwerte für jeden Block im Bild auszuwählen. Unter der Haube sind es diese Quantizer-Werte, die die Qualität tatsächlich beeinflussen, und Sie können diese normalerweise nicht direkt anpassen.

    Sogar die Qualitätseinstellung "100 %" kann zwischen den Encodern unterschiedliche Bedeutungen haben. In einigen bedeutet es, die niedrigsten verfügbaren Quantisierer zu verwenden (wobei die meisten Details erhalten bleiben). In anderen geht es vielleicht nicht unbedingt so weit, oder es kann (wie oben erwähnt) andere Aspekte der Codierung wie das Chroma-Subsampling beeinflussen.

Beachten Sie, dass das JPEG-Bild bei jedem normalen Bild nie größer als das unkomprimierte Bitmap-Bild sein wird. Der Vergleich mit einer RAW-Datei kann jedoch etwas irreführend sein, da eine RAW-Datei mehrere Schritte benötigen würde (einschließlich eines Schritts namens demosaicing , der die Größe aufgrund der Interpolation erhöht), um sie zu einem ordnungsgemäßen unkomprimierten Bitmap-Bild zu erweitern.

Verschiedene Encoder verwenden unterschiedliche Werte für die maximale Qualität. Während JPEG großartig darin ist, die Dateigröße zu reduzieren, indem Bilder auf subtile Weise vereinfacht werden können, ist es ein One-Trick-Pony, das nicht im gesamten Bild nach Mustern sucht, die eine verlustfreie Reduzierung der Größe ermöglichen würden.

Die RAW-Datei hingegen verwendet wahrscheinlich eine verlustfreie Allzweckkomprimierung, die Muster findet, die der JPEG-Encoder nicht findet. Dies und der Overhead des JPEG-Dateiformats können zu einer potenziell größeren Gesamtdatei als die ursprüngliche RAW-Datei führen.

Was unterschiedliche Größen für maximale Qualität zwischen Encodern angeht, ist dies einfach ein Ergebnis des Unterschieds zwischen den Werten, die beim Codieren von "100%" verwendet werden. Es ist immer noch nicht verlustfrei und es findet immer noch eine Vereinfachung statt, aber der Grad der Vereinfachung kann von einem Programm zum anderen sehr stark sein. Insbesondere bei den höheren Qualitäten können relativ geringe Qualitätsgewinne dazu führen, dass erheblich mehr Daten benötigt werden, da Sie die niederwertigsten Bits einer bereits großen Anzahl von Werten hinzufügen.