Frage:
Warum exportiert Darktable enorme JPEGs?
Matteo Pagliazzi
2013-07-29 19:25:36 UTC
view on stackexchange narkive permalink

Ich habe eine Nikon D3200 und habe gerade mit den Aufnahmen in Raw begonnen.

Raw-Dateien haben eine Größe von 18 bis 24 MB. Wenn ich sie mit ViewNX 2 von Nikon in JPEG konvertiere, werden oben 8 bis 12 MB-Dateien angezeigt Qualität und Auflösung mit sRGB; Die gleiche Größe, die ich mit JPG außerhalb der Kamera mit maximaler Qualität aufnehmen würde.

Stattdessen verwende ich Darktable mit denselben Optionen (Qualität 100 und sRGB bei maximaler Auflösung) und erhalte Dateien mit 25 -30mb, das ist viel - sogar mehr als das Original Raw.

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

Ich kann dies mit D5100-Dateien reproduzieren (aber nicht mit Fujifilm-Dateien).
Für die Webansicht würde ich empfehlen, die Qualität auf etwa 75 einzustellen. Wenn Sie etwas bessere 95 wünschen, ist alles, was Sie brauchen. Die Größe ist für mich als 7MB.
Vier antworten:
Michael Nielsen
2013-07-29 22:19:03 UTC
view on stackexchange narkive permalink

Unkomprimierte RGB-Dateien (3 Werte pro Pixel) sind größer als Ihre Rohdaten, da die Rohdaten eine monochrome Bitmap (1 Wert pro Pixel) und normalerweise eine verkleinerte, aggressiv komprimierte Vorschau enthalten, die einen Bruchteil der Größe von 400 KB benötigt für Canon 10MP-Kameras und 1M für Nikon D5100 (Ich kenne diese Zahlen, weil ich sie aus den Rohdateien gelesen und in einer temporären Datei gespeichert habe). Nikon NEFs speichern Vorschaubilder in voller Auflösung, während Canon die halbe Auflösung verwendet, daher der größere Bruchteil.

Sie können also erwarten, dass sich eine unkomprimierte 16-Bit-RGB- "Bitmap" dreimal größer als die Rohdaten und 3 mal geteilt durch annähert 2 für 8bit unkomprimiert. Ein 16MP 8bit Bild ist 48Mb unkomprimiert.

Nun zum Punkt, da wir hier über JPEGs sprechen. Es ist die unkomprimierte Bitmap-Größe, die die Basisgröße für die Komprimierung darstellt, nicht die Rohgröße. Dies bedeutet, dass wenn Sie die Komprimierung sehr sanft einstellen, sie leicht immer noch größer als die Rohkompression sein kann.

Die JPEG-Qualitätszahlen sind willkürlich - Sie wissen nur, dass die Qualität 100 im selben Programm größer als 90 und 90 größer als 80 ist. Mit der JPEGLIB, die ich für mein JPEG-Handling verwende, wird ein 16-Megapixel-Bild zu 4 MB, und bei 95 sinkt es schnell auf 1,7 MB, ohne dass ein Qualitätsverlust erkennbar ist. Normalerweise halte ich es bei 80, was 950k ist. Beim Umschalten zwischen der 4-MB- und der 950k-Datei bei 100% Zoom kann ich keinen Unterschied feststellen. Es scheint also übertrieben, 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, speichern. 60,50, bis Sie einen Qualitätshit sehen können. Bei Ihren 24-Megapixel-Bildern werden Sie diese Grenze wahrscheinlich bei etwa 1,5 MB erreichen, unabhängig von der JPEG-Qualitätszahl, die in Ihrem Programm enthalten sein kann.

Ausgezeichnete Antwort, Sie könnten vielleicht einen Link zur JPEGLIB hinzufügen
thomasrutter
2013-07-30 09:01:54 UTC
view on stackexchange narkive permalink

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

  • Unterschiedliche Einstellung für die Chroma-Unterabtastung . Die Chroma-Unterabtastung in JPEGs verringert die räumliche Auflösung der Chroma-Kanäle, um die Dateigröße zumindest bei den meisten Fotomaterialien mit kaum merklichen Qualitätsunterschieden zu verringern.

    Verschiedene JPEG-Encoder können die Chroma-Unterabtastung anpassen -abtastung anders: Einige passen sie möglicherweise zusammen mit der Qualitätseinstellung an, sodass bei einer höheren Qualität auch weniger Unterabtastung erforderlich ist. Einige verwenden möglicherweise eine andere, separate Steuerung als die Qualitätseinstellung. Einige erlauben möglicherweise überhaupt keine Anpassung dieser Einstellung.

  • Unterschiede zwischen der Interpretation der Qualitätseinstellung durch Encoder. Verschiedene JPEG-Encoder wenden unterschiedliche Bedeutungen auf die Qualitätseinstellung an, sodass Sie die Qualitätseinstellungen nicht zwischen verschiedenen Encodern vergleichen können.

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

    Selbst die Qualitätseinstellung "100%" kann zwischen den Encodern unterschiedliche Bedeutungen haben. In einigen Fällen bedeutet dies, die niedrigsten verfügbaren Quantisierer zu verwenden (wobei die meisten Details erhalten bleiben). In anderen Fällen geht es möglicherweise nicht unbedingt so weit, oder es kann (wie oben erwähnt) andere Aspekte der Codierung beeinflussen, z. B. die Chroma-Unterabtastung.

Beachten Sie, dass das JPEG-Bild für ein normales Bild niemals größer ist als das unkomprimierte Bitmap-Bild. 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 aufgrund der Interpolation die Größe erhöht). um es zu einem richtigen unkomprimierten Bitmap-Bild zu erweitern.

Unapiedra
2013-07-29 19:48:34 UTC
view on stackexchange narkive permalink

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 aufnehme und es mit dem sRGB-Farbraum und der Qualität 100 in JPEG konvertiere, wird die Das Ergebnis ist ungefähr 18 MB groß. Dasselbe mit dcraw und ImageMagicks Konvertierung zu tun, führt auch 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 sicher etwas wie 95 verwenden und den Unterschied nicht erkennen.

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

Ok, mit 95 bekomme ich ungefähr 11-12mb (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 höchster Qualität viel kleinere Dateien bekomme. Vielleicht ist ihre Spitzenqualität nicht wirklich 100, da es keinen numerischen Wert gibt, sondern nur einen Schieberegler.
Ich weiß nichts über ViewNX. Wenn 12 MB zu groß sind, gehen Sie zu 75. Versuchen Sie, einen Unterschied zu erkennen. Worauf Sie achten müssen, sind Kanten in normalerweise glatten Farben (wie der Himmel) und feine Details in wirklich strukturierten Bereichen.
@Unapiedra: Dies gilt nicht nur für Darktable. Einige Produkte, mit denen ich arbeite, haben einen RIESIGEN Größenunterschied zwischen JPEG 100% und beispielsweise 95% Qualität.
AJ Henderson
2013-07-29 21:48:16 UTC
view on stackexchange narkive permalink

Unterschiedliche Encoder verwenden unterschiedliche Werte für maximale Qualität. Während JPEG die Dateigröße hervorragend reduzieren kann, indem Bilder auf subtile Weise vereinfacht werden, ist es ein One-Trick-Pony, das nicht nach Mustern im gesamten Bild sucht, mit denen die Größe verlustfrei reduziert werden kann.

Die RAW-Datei verwendet andererseits wahrscheinlich eine verlustfreie Allzweckkomprimierung, die nach Mustern sucht, die der JPEG-Encoder nicht findet. Dies und der Overhead des JPEG-Dateiformats können möglicherweise zu einer größeren Gesamtdatei als das ursprüngliche RAW führen.

Was unterschiedliche Größen für maximale Qualität zwischen Encodern betrifft, ist dies einfach ein Ergebnis der Differenz zwischen den Werten Wird beim Codieren von "100%" verwendet. Es ist immer noch nicht verlustfrei und es tritt immer noch eine Vereinfachung auf, aber der Grad der Vereinfachung kann von Programm zu Programm sehr unterschiedlich sein. Insbesondere bei höheren Qualitäten kann ein relativ geringer Qualitätsgewinn dazu führen, dass erheblich mehr Daten benötigt werden, da Sie niedrigstwertige Bits einer bereits großen Anzahl von Werten hinzufügen.



Diese Fragen und Antworten wurden automatisch aus der englischen Sprache übersetzt.Der ursprüngliche Inhalt ist auf stackexchange verfügbar. Wir danken ihm für die cc by-sa 3.0-Lizenz, unter der er vertrieben wird.
Loading...