Qualitätsverlust nach dem Drehen von JPGs?
Qualitätsverlust nach dem Drehen von JPGs?
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.
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.
Re: Qualitätsverlust nach dem Drehen von JPGs?
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
exiftran verlustfrei drehen.)
Edit: Laut https://en.wikipedia.org/wiki/Compariso ... l_features kann eog JPEG verlustfrei drehen.
(Auf der Kommandozeile kann man mit
![Debian](/pics/debianpackage.png)
Edit: Laut https://en.wikipedia.org/wiki/Compariso ... l_features kann eog JPEG verlustfrei drehen.
Use ed once in a while!
Re: Qualitätsverlust nach dem Drehen von JPGs?
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".
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".
Re: Qualitätsverlust nach dem Drehen von JPGs?
Ich habe mal mit eog ein Test-Bild um 360° (d.h. 4x um 90°) gedreht, aus Ursprungsbild und gedrehtem Bild alle Metadaten entfernt
und dann die Prüfsummen verglichen. Sie sind für beide Bilder identisch:
Das sollte, meine ich, für eine verlustfreie Rotation sprechen.
Code: Alles auswählen
$ mogrify -strip test.jpg
$ mogrify -strip test_360.jpg
Code: Alles auswählen
$ sha1sum test.jpg
08f67d7295aab42a0b2076a6f7308141f558f297 test.jpg
$ sha1sum test_360.jpg
08f67d7295aab42a0b2076a6f7308141f558f297 test_360.jpg
Re: Qualitätsverlust nach dem Drehen von JPGs?
Beim Drehen von JPEG-Dateien gibt es IIRC verschiedene „Verfahren“:HumiNi hat geschrieben:13.03.2024 21:14:08Da 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.
- 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])
Re: Qualitätsverlust nach dem Drehen von JPGs?
Perfekt!Huo hat geschrieben:13.03.2024 23:09:13Ich habe mal mit eog ein Test-Bild um 360° (d.h. 4x um 90°) gedreht, aus Ursprungsbild und gedrehtem Bild alle Metadaten entferntund dann die Prüfsummen verglichen. Sie sind für beide Bilder identisch:Code: Alles auswählen
$ mogrify -strip test.jpg $ mogrify -strip test_360.jpg
Das sollte, meine ich, für eine verlustfreie Rotation sprechen.Code: Alles auswählen
$ sha1sum test.jpg 08f67d7295aab42a0b2076a6f7308141f558f297 test.jpg $ sha1sum test_360.jpg 08f67d7295aab42a0b2076a6f7308141f558f297 test_360.jpg
![Thumbs Up :THX:](./images/smilies/thumbup.gif)
Use ed once in a while!
Re: Qualitätsverlust nach dem Drehen von JPGs?
Es gibt prinzipiell 3 Varianten JPEGs zu drehen
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:
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.
Code: Alles auswählen
exiftool -n -Orientation={n} TheImage.jpg
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:
rot: Moderator wanne spricht, default: User wanne spricht.
Re: Qualitätsverlust nach dem Drehen von JPGs?
Vielen Dank euch allen für die erhellenden Informationen.
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...
![Hail :hail:](./images/smilies/icon_hail.gif)
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.
Re: Qualitätsverlust nach dem Drehen von JPGs?
Dann solltest Du unbedingt so drehen, dass die Daten „umsortiert“ werden.HumiNi hat geschrieben:14.03.2024 09:48:36Hintergrund 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.
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.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...
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:
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:
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
Re: Qualitätsverlust nach dem Drehen von JPGs?
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.