Qualitätsverlust nach dem Drehen von JPGs?

Sound, Digitalkameras, TV+Video und Spiele.
Antworten
HumiNi
Beiträge: 340
Registriert: 02.10.2014 21:46:18

Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von HumiNi » 13.03.2024 21:14:08

Ich versuche gerade, etwas Struktur in unsere Fotos der letzten Jahre zu bringen. Dabei komme ich in Verlegenheit, manche "auf die Füße zu stellen", also zu drehen. Dies passiert der Einfachheit halber mit eog.
Da ich keine Ahnung habe, was technisch beim Drehen abläuft, meine Frage: Gibt es einen Qualitätsverlust nach dem Drehen? Rein optisch kann ich keinen Unterschied erkennen.
Gedächtnis wie ein Rechen: Nur Mist bleibt hängen.

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von Meillo » 13.03.2024 21:31:04

JPEGs koennen prinzipiell sowohl verlustfrei als auch verlustbehaftet gedreht werden. Wie eog das macht, muss man recherchieren. Auf die Schnelle habe ich keine definitive Information dazu finden koennen.

(Auf der Kommandozeile kann man mit Debianexiftran verlustfrei drehen.)


Edit: Laut https://en.wikipedia.org/wiki/Compariso ... l_features kann eog JPEG verlustfrei drehen.
Use ed once in a while!

dakuan
Beiträge: 97
Registriert: 28.04.2011 22:09:39

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von dakuan » 13.03.2024 22:17:42

exiftran kann JPGs verlustfrei drehen. Man sollte dabei allerdings beachten, dass die wichtigen Werte für Breite und Höhe durch 8 teilbar sind (bei manchen Formaten auch 16). Bei Nichtbeachtung können unpassende Ränder entstehen,

Diese kann man ggf. durch die Option "crop" vermeiden, wodurch dann allerdings diese Pixel verloren gehen.

Das einzige, mir bekannte, Programm, dass diese Möglichkeit nutzt'(e) war GQview. Ob das auch für den Nachfolger Geeqie zutrifft, kann ich nicht sage. Ich hatte das in der Vergangenheit, bei Bedarf, immer manuell, direkt mit exiftran gemacht.

Selbst Gimp codiert neu!

Edit: sorry. Ich hatte mich geirrt. Die Option "-crop" bezieht sich auf das Programm "jpegtran".

Huo
Beiträge: 614
Registriert: 26.11.2017 14:03:31
Wohnort: Freiburg

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von Huo » 13.03.2024 23:09:13

Ich habe mal mit eog ein Test-Bild um 360° (d.h. 4x um 90°) gedreht, aus Ursprungsbild und gedrehtem Bild alle Metadaten entfernt

Code: Alles auswählen

$ mogrify -strip test.jpg
$ mogrify -strip test_360.jpg
und dann die Prüfsummen verglichen. Sie sind für beide Bilder identisch:

Code: Alles auswählen

$ sha1sum test.jpg
08f67d7295aab42a0b2076a6f7308141f558f297  test.jpg
$ sha1sum test_360.jpg
08f67d7295aab42a0b2076a6f7308141f558f297  test_360.jpg
Das sollte, meine ich, für eine verlustfreie Rotation sprechen.

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von GregorS » 14.03.2024 02:43:59

HumiNi hat geschrieben: ↑ zum Beitrag ↑
13.03.2024 21:14:08
Da ich keine Ahnung habe, was technisch beim Drehen abläuft, meine Frage: Gibt es einen Qualitätsverlust nach dem Drehen? Rein optisch kann ich keinen Unterschied erkennen.
Beim Drehen von JPEG-Dateien gibt es IIRC verschiedene „Verfahren“:
- die Bilddaten werden als solche neu „angeordnet“, ungefähr so, als würdest Du ein A4-Blatt auf dem Tisch vom Hoch- auf's Querformat drehen. Das Neuordnen (kodieren) ist dabei unvermeidlich.
- die Information der Ausrichtung ist im Dateikopf lediglich in der Art „Norden/Osten/Süden/Westen“ hinterlegt. Die eigentlichen Bilddaten werden dabei nicht manipuliert.

Vorteil der zweiten Methode ist, dass die Qualität voll erhalten bleibt. Nachteil ist, dass diese Information nicht von allen Betrachtern unterstützt/ausgewertet wird.
Probiere mal ein bewusst verlustbehaftetes Drehen, z.B. mit Gimp. Wenn Du keinen Unterschied erkennen kannst, solltest Du so eine Methode (also mit Neuberechnung/-kompression) verwenden.

Ich habe mich bei meinen Bildern für die zweite Methode entschieden. Schließlich will ich nicht nach irgendeinem Tool suchen müssen, ganz egal, wann und wo ich meine Fotos angucken möchte. EOG fragt IIRC vor dem Beenden, ob man gedrehte Bilder „neu speichern“ (oder so) möchte. Soweit ich weiß, werden dabei lediglich die zwei Ausrichtungs-Bits entsprechend gesetzt.

HTH

Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

Benutzeravatar
Meillo
Moderator
Beiträge: 8818
Registriert: 21.06.2005 14:55:06
Wohnort: Balmora
Kontaktdaten:

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von Meillo » 14.03.2024 05:52:42

Huo hat geschrieben: ↑ zum Beitrag ↑
13.03.2024 23:09:13
Ich habe mal mit eog ein Test-Bild um 360° (d.h. 4x um 90°) gedreht, aus Ursprungsbild und gedrehtem Bild alle Metadaten entfernt

Code: Alles auswählen

$ mogrify -strip test.jpg
$ mogrify -strip test_360.jpg
und dann die Prüfsummen verglichen. Sie sind für beide Bilder identisch:

Code: Alles auswählen

$ sha1sum test.jpg
08f67d7295aab42a0b2076a6f7308141f558f297  test.jpg
$ sha1sum test_360.jpg
08f67d7295aab42a0b2076a6f7308141f558f297  test_360.jpg
Das sollte, meine ich, für eine verlustfreie Rotation sprechen.
Perfekt! :THX:
Use ed once in a while!

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von wanne » 14.03.2024 08:27:27

Es gibt prinzipiell 3 Varianten JPEGs zu drehen

Code: Alles auswählen

exiftool -n -Orientation={n} TheImage.jpg
packt einfach den Tag dran, in welche Richtung das Bild gucken soll. Handys machen das üblicherweise genau so, wenn du es beim fotografieren in eine der 3 "falschen" Richtungen hältst. Es gibt leider einige Programme

Dann gibt es die primitive Methode decodieren und reencodieren. Das ist verlustbehaftet.

Nun sind die ersten beiden Schritte beim decodieren von JPEGs zuerst ein verlustfreier Kompressionsalgorithmus (defakto immer Huffman) und dann diverse 8x8-Matrixmultiplikation für die später gilt dass jeder Wert nur in einen entsprechenden Pixel eines 8x8 Blocks im Bild einfließt.
Nun gilt: Bild Wenn du also verlustfrei dekomprimierst alle Matrizen drehst, und wieder verlustfrei komprimierst Erhältst ein Bild, in dem jeder 8x8 Block gedreht ist. Drehst du nicht nur die Matrizen sondern ordnest sie auch noch um hast du ein gedrehtes Bild. Das machen dann exiftran/jpegtran. – Ihr merkt, warum das nur mit durch 8 teilbaren Höhen/Breiten funktioniert.
rot: Moderator wanne spricht, default: User wanne spricht.

HumiNi
Beiträge: 340
Registriert: 02.10.2014 21:46:18

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von HumiNi » 14.03.2024 09:48:36

Vielen Dank euch allen für die erhellenden Informationen. :hail:

Hintergrund meiner Frage: Ich stelle die Fotos (u.a.) strukturiert auf einem USB-Medium zusammen, um sie an jedem beliebigen Betrachter (auch TV) ohne Kopfstände ansehen zu können.
Andererseits sollte die Ursprungsqualität (z.B. für einen Ausdruck / Vergrößerung) erhalten bleiben. Bisher habe ich vorsichtshalber 2 Dateivarianten gespeichert (und archiviert), das wird aber unübersichtlich...
Gedächtnis wie ein Rechen: Nur Mist bleibt hängen.

Benutzeravatar
GregorS
Beiträge: 2626
Registriert: 05.06.2008 09:36:37
Wohnort: Freiburg
Kontaktdaten:

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von GregorS » 14.03.2024 10:16:35

HumiNi hat geschrieben: ↑ zum Beitrag ↑
14.03.2024 09:48:36
Hintergrund meiner Frage: Ich stelle die Fotos (u.a.) strukturiert auf einem USB-Medium zusammen, um sie an jedem beliebigen Betrachter (auch TV) ohne Kopfstände ansehen zu können.
Dann solltest Du unbedingt so drehen, dass die Daten „umsortiert“ werden.
Andererseits sollte die Ursprungsqualität (z.B. für einen Ausdruck / Vergrößerung) erhalten bleiben. Bisher habe ich vorsichtshalber 2 Dateivarianten gespeichert (und archiviert), das wird aber unübersichtlich...
Wegen der Auflösung musst Du Dir bei wahrscheinlich keinem Foto Sorgen machen. Kritisch kann es höchstens bei Motiven sein, die quasi „Strichzeichnungen“ sind, die also Details enthalten, die rein schwarzweiß sind. Bei 08/15-Fotos (Landschaft, Portrait, Grillfest-Szenen ...) kann man mittlerweile auch popligste Handyfotos locker auf DIN A4 aufblasen.
Ich habe mit meiner uralten (2009) Pentax-Kompaktknipse mit gerade mal 10 MPixel-Fingernagelsensor Fotos gemacht, die ich für Bilder benutzt habe, die einen Ausschnitt auf 20x20 cm zeigen. Die effektive Auflösung betrug bei dieser Ausbelichtung gerade mal 150 ppi. Bedenke bei derlei Überlegungen auch den Betrachtungsabstand. Der Auflösungswahn, der mittlerweile fast überall herrscht, ist manchmal grotesk.

Gruß

Gregor

PS: Das ist der Ausschnitt:

4734

Noch'n Tipp: Wenn Du so etwas an die Wand hängen möchtest, dann mach' vor dem Ausbelichten mit Gimp oder so noch einen breiten weißen Rand drum. Das kann echt edel aussehen.

Hihi, gerade noch eins gefunden, wo ich das Wassermotiv noch einmal verwendet habe:

4407
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])

wanne
Moderator
Beiträge: 7465
Registriert: 24.05.2010 12:39:42

Re: Qualitätsverlust nach dem Drehen von JPGs?

Beitrag von wanne » 14.03.2024 17:22:52

Ja. Ich habe das mal vorgefürt (allerdings mit JPEG-2000) 4k Bild 5000 mal verlustbehaftet gedreht. Konnte niemand eine Veränderung feststellen. Ab Drehung ~750 blieb allerdings die Checksumme über die Bilddaten gleich. Ich wette bei jpeg geht das noch schneller: Irgend wann hast du halt Farbverteilungen die in jede Richtung rechts und unten nur noch Nullen werfen. Ist ein bisschen fies, wenn man jedes mal den gleichen encoder nutzt.
rot: Moderator wanne spricht, default: User wanne spricht.

Antworten