JPEG Encoder Photoshop 2024 / IrfanView / MozJPEG

greybit

Cadet 3rd Year
Registriert
Nov. 2019
Beiträge
40
Hallo,

ich scanne aktuell meine alten Fotos ein. Diese wollte ich nach einer kleinen Aufbereitung in Photoshop als JPG ablegen.

Was ich jetzt nicht verstehe ist, warum meine JPGs mit Photoshop weniger Speicherplatz brauchen, als mit IrfanView oder MozJPEG gespeicherte JPGs.

Mit Photoshop 2024 speichere ich die JPGs auf Stufe 10 (lt. Dateiinformation bei IrfanView entspricht das einer Qualität von 93%) und Baseline.
JPG = 1,57MB

Mit IrfanView habe ich ebenfalls 93% genommen und Baseline.
JPG = 2,05 MB

MozJPEG habe ich mit folgender Befehlszeile ausgeführt:
Code:
cjpeg.exe -quality 93 -baseline "input.png" >> "output.jpg"
JPG = 2,33 MB

Die Quelle war eine PNG Datei mit einer Dateigröße von knapp über 10MB.

Die Dateiinformationen von IrfanView und die konvertierten Bilder sind anbei.

Weiß jemand wie der Größenunterschied zustande kommt?
 

Anhänge

  • info.PNG
    info.PNG
    209,9 KB · Aufrufe: 122
  • irfanview 4.62.jpg
    irfanview 4.62.jpg
    2,1 MB · Aufrufe: 118
  • mozjpeg_4.1.1.jpg
    mozjpeg_4.1.1.jpg
    2,3 MB · Aufrufe: 109
  • photoshop 2024.jpg
    photoshop 2024.jpg
    1,6 MB · Aufrufe: 114
Zuletzt bearbeitet:
Speicher in Photoshop dann einfach auf der vollen Qualitätsstufe 12...
Es ist klar, dass bei geringeren Stufen, auch eine höhere Komprimierung folgt
 
ich würde da noch einen Schritt weiter zu gehen empfehlen und gleich auf TIFF wechseln. Tiff kann 16Bit pro Kanal, kann unkomprimiert, bzw verlustloses komprimieren. Dann hast Du etwas zu Raw entsprechendes. Die Ausgabe nach der Bearbeitung dann gern in jpg, png, etc.
Sollte der Scanner DNG ausgeben können, würd ich sogar das nehmen.
Ja, braucht Platz, aber bei der Arbeit, die man in so etwas stecken muss, würde ich da nicht dran sparen wollen.
 
Du machst dir die Mühe Alte Fotos zu digitalisieren und speicherst die in verlustbehafteten jpg?
Wenn schon nimm ein Format, das keine oder wenig Pixel vernichtet sonst könnte es sein das du beim hochskalieren auf den tv sehr enttäuscht bist
 
  • Gefällt mir
Reaktionen: dms
Die original Scans hebe ich auch loseless als PNG auf. Mir geht es jetzt eigentlich darum, warum die JPGs so einen Größenunterschied aufweisen, obwohl sie alle mit einer Qualität von 93% komprimiert wurden.
Bzw. wurde die JPG von Photoshop bei Stufe 10 überhaupt mit 93% komprimiert? Woher nimmt IrfanView diese Information bezüglich der Komprimierungsrate?
 
Vielleicht benutzt Photoshop noch 4:2:0 Subsampling. Das wäre unter aller Kanone. Das 'Subsampling off' spricht zwar dagegen, würde ich aber mit 'mediainfo' o.ä. gegenprüfen.

Den Qualitätswert (0-100) kann man aus der Datei extrahieren, z.B. mit 'identify' (ImageMagick).
Code:
$ identify -verbose 9549.jpg |grep -iE 'Quality:|sampling-factor:'
  Quality: 80
    jpeg:sampling-factor: 1x1,1x1,1x1

Des Weiteren gibt es ja noch einige erweiterte JPG Optionen, die das beeinflussen können (optimze, arithmetic, progressive...).

Gimp:
gimp_jpg.png
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: greybit
greybit schrieb:
Die original Scans hebe ich auch loseless als PNG auf. Mir geht es jetzt eigentlich darum, warum die JPGs so einen Größenunterschied aufweisen, obwohl sie alle mit einer Qualität von 93% komprimiert wurden.
Offiziell führt der Qualitätslevel nur zu:
"Constructs JPEG quantization tables appropriate for the indicated quality setting."
Wie diese Table aussieht, bleibt der Implementierung überlassen.

Dazu lässt sich dann noch die "luminance quality" und "chrominance quality" getrennt regeln (würde aber >90% der Anweder überfordern, weshalb das nur die Library anbietet).

Adobe nutzt seit Jahrzehnten einen eigenen JPG-Encoder, womit der nicht nur von der Performance anders (früher mal besser, aber die persönliche Erfahrung ist eher schon 10 Jahre alt) wie die OpenSource-Lösungen war. Schau Dir schon nur die "gezählten Farben" an. Da hat Adobe offensichtlich eine andere Idee der (visuaell wahrnehmbaren) Optimierung wie IrfanView (nutzt das noch Libjpeg-Turbo?).

Ob sonst noch alles intern identisch ist (z.B. restart-marker on/off, progressive on/off) müsste man ermitteln, wenn es einem wichtig ist (also bei 45 MPix Datein, die man im Internet anbietet und nicht bei 0,5 MPix Dateien). Dazu hat Adobe offensichtlich noch ein paar Byte für EXIF-Daten verschwendet.

greybit schrieb:
Bzw. wurde die JPG von Photoshop bei Stufe 10 überhaupt mit 93% komprimiert? Woher nimmt IrfanView diese Information bezüglich der Komprimierungsrate?
Weil es im Header jedes JPG-Files einen Eintrag gibt, aus dem man die vom Encoder gesetzte Qualität wieder in eine Prozentzahl zurück wandeln kann. Da kann aber natürlich jeder reinschreiben, was er für richtig hält. Stufe 10 bei Photoshop entspreicht halt gemäß der Adobe-Bewertung 93% der von ihnen erzeugbaren Qualität.

greybit schrieb:
Weiß jemand wie der Größenunterschied zustande kommt?
Unterschiedliche Quantisierugstabellen, u.U. unterschiedliche Filterung des Quellbildes, u.U. unterschiedliche Bewertung von einzelnen Bilddteilen vor der Quantisierung. Wenn Dir das ganze nichts sagt, ist es auch völlig egal, So lange Du keinen eigenen Encoder schreibst, musst Du sowieso mit den vorhandenen leben. Und da ist Adobe halt (schcon idelogigisch) ein Sonderling (die JPG-Spec redet immer von Prozentangaben, welche m.W.n. weltweit bei ganzzahligen Werten von 0-100 und nicht von 0-12 gehen), der außerdem nicht für Batchverarbeitung außerhalb des Adobe-Universums geegnet usw.

Die geringere Anzahl an Farben muss auch nicht bedeuten, dass das Bild visuell schlechter ist. Im Idelafall bewerten sie jedes Bild einzeln (aber gesamthaft) und optimieren dann ihre Farbanzahl, die Bildfilterung und sonstige Parameter vor der Kompression.
 
  • Gefällt mir
Reaktionen: greybit
@Uridium
Bei Photoshop hat man im normalen Speicherdialog nicht so viele Optionen, siehe Bild.

Es ist ein Baseline JPG, kein progressiv (weil das würde bei IrfanView dann in der Info stehen) und auch kein arithmetic (weil damit kann Photoshop garnicht umgehen, nicht mal solche JPGs laden).

Screenshot von MediaInfo anbei.
Ergänzung ()

@gymfan
Erstmal danke für den ausführlichen Beitrag.

gymfan schrieb:
Weil es im Header jedes JPG-Files einen Eintrag gibt, aus dem man die vom Encoder gesetzte Qualität wieder in eine Prozentzahl zurück wandeln kann. Da kann aber natürlich jeder reinschreiben, was er für richtig hält. Stufe 10 bei Photoshop entspreicht halt gemäß der Adobe-Bewertung 93% der von ihnen erzeugbaren Qualität.
Also kann man sagen, dass auf die Qualitätsangabe kein Verlass ist, ja jedes Programm die so setzen kann wie es will.

Hmmm... vielleicht bleibe ich doch bei einer verlustlosen Komprimierung wie PNG oder WebP, wäre zumindest einfacher als die JPG Thematik. Werde mal eine Nacht darüber schlafen.
 

Anhänge

  • mediainfo.PNG
    mediainfo.PNG
    152,9 KB · Aufrufe: 79
  • psjpgsave.PNG
    psjpgsave.PNG
    22,5 KB · Aufrufe: 78
Zuletzt bearbeitet:
greybit schrieb:
Bei Photoshop hat man im normalen Speicherdialog nicht so viele Optionen, siehe Bild.
Gab es nicht mal zwei JPG Encoder bei Photoshop (Exportieren/Für Web speichern...) oder so ähnlich?
 
Ja stimmt, es gibt noch "Exportieren als..." und "Für Web speichern (Lagacy)".

Einstellmöglichkeiten
Normales Speichern = 12 Stufen
Exportieren als... = 7 Stufen
Für Web speichern = 0 - 100%

Bei "Exportieren als..." entspricht Stufe 6 der Stufe 10 fürs normale Speichern.

Bei "Für Web speichern" gibt es ein paar mehr Einstellungen. Ich habe das Bild mal mit 93% und den Einstellungen wie im Anhang zu sehen gespeichert. Raus kam eine 4,25 MB große JPG. Als ich mir die Dateiinfo mit IrfanView angeguckt habe, zeigt er mir aber an, dass die Datei eine Qualität von 97% hat.

Ich bekomme so langsam den Eindruck, dass ich fürs exportieren von Bildern vielleich ein anderes Programm als Photoshop nehmen sollte.
 

Anhänge

  • web_speichern.PNG
    web_speichern.PNG
    1,6 MB · Aufrufe: 84
  • exportieren_als.PNG
    exportieren_als.PNG
    643,4 KB · Aufrufe: 79
Ich habe jetzt eine Nacht darüber geschlafen und mich dafür entschieden die JPGs in die Tonne zu kloppen und stattdessen auf WebP (lossless) zu setzen. Glücklicherweise hatte ich von allen Bildern noch eine lossless Version im PNG oder TiFF Format.

Ich habe mich jetzt für WebP entschieden weil...
  • es ein weit verbreitetes Format ist, dass eine lossless Komprimierung abietet, sowie schneller speichert und dazu noch kleiner ist als PNG.
  • weil ich in einem Bild einen Fehler bei der Bearbeitung gemacht habe und mir klar wurde, dass wenn ich das Bild jetzt nur noch als JPG hätte, ich erneut die JPG Komprimierung drüberkloppen müsste, wodurch es dann noch mehr Artefakte bekommen würde. Von daher am besten nicht mit lossy Komprimierung anfangen.
 
  • Gefällt mir
Reaktionen: chrigu und Blende Up
Zurück
Oben