JPG Bild drehen, wozu neu komprimieren?



  • Wieso muss ein per JPG komprimiertes Bild neu komprimiert werden, wenn es gedreht wurde und dieses Drehen abgespeichert werden soll?

    Wäre es nicht viel sinnvoller, wenn man in der Datei nur vermerken würde, dass das Bild um 90 °C zu drehen ist und man das Bild dann so läßt, wie es ist?

    Dadurch muss es nicht erneut komprimiert werden, ein weiterer Informationsverlust findet also nicht statt und wenn das Bild geladen wurde, muss das darstellende Programm das Bild nur noch entsprechenden den Anweisungen drehen und schon kann es wie gewünscht dargestellt werden.
    Für den Benutzer dürfte dieses ganze Prozedere nicht bemerkbar sein.

    Wieso hat man das beim JPEG Format also nicht vorrausgesehen, dass es solche Fälle geben dürfte und dafür gesorgt, dass Bilder, nur wenn man sie drehen und abspeichern will, nicht erneut komprimiert werden?

    Wegen dem Informationsverlust drehe ich meine Bilder, die in der falschen Orientierung dargestellt werden, daher immer erst, nach dem sie geladen wurden,
    aber dieses gedrehte Bild speichere ich prinzipiell nicht mehr ab, weil ich den Informationsverlust nicht haben will.


  • Mod

    Informationsverlust schrieb:

    Wieso muss ein per JPG komprimiertes Bild neu komprimiert werden, wenn es gedreht wurde und dieses Drehen abgespeichert werden soll?

    Muss es doch gar nicht. Let me google that for you...

    Dritter Treffer:

    http://www.faqs.org/faqs/jpeg-faq/part1/index.html

    There are a few specialized operations that can be done on a JPEG file
    without decompressing it, and thus without incurring the generational loss
    that you'd normally get from loading and re-saving the image in a regular
    image editor. In particular it is possible to do 90-degree rotations and
    flips losslessly, if the image dimensions are a multiple of the file's
    block size (typically 16x16, 16x8, or 8x8 pixels for color JPEGs). This
    fact used to be just an academic curiosity, but it has assumed practical
    importance recently because many users of digital cameras would like to be
    able to rotate their images from landscape to portrait format without
    incurring loss --- and practically all digicams that produce JPEG files
    produce images of the right dimensions for these operations to work. So
    software that can do lossless JPEG transforms has started to pop up. But
    you do need special software; rotating the image in a regular image editor
    won't be lossless.

    War das so schwer?



  • Informationsverlust schrieb:

    Wieso muss ein per JPG komprimiertes Bild neu komprimiert werden, wenn es gedreht wurde und dieses Drehen abgespeichert werden soll?

    Muss es ja nicht. Es gibt Programme die das verlustfrei können.
    Google "lossless jpeg rotation".

    Dabei werden die Daten quasi "halb" dekomprimiert, dann rotiert, und dann ohne weitere Änderung wieder re-komprimiert. Das File bleibt dabei ca. gleich gross, und es wird bis auf die Rotation wirklich *nichts* geändert.
    (Die Kompressionsschritte die man dabei wiederholt sind verlustfrei - die verlustbehafteten Schritte muss man nicht wiederholen.)

    Die einzige Einschränkung ist dass die Breite und Höhe des Bildes ohne Rest durch 16 Teilbar sein muss. Ist sie das nicht, muss das Tool das Bild beim Rotieren entweder beschneiden oder Padding einfügen. Wenn man beschneidet ist der übrigbleibende Teil wieder ein 100% exaktes Abbild des rotierten Originals. Wenn man Padding einfügt gehe ich davon aus dass die Randbereiche wo das Padding angehängt wurde neu komprimiert werden müssen. Also die Blöcke des Bildes die im Original-Bild nur unvollständig genutzt wurden, und auf vollständige Blöcke erweitert wurden.

    Wäre es nicht viel sinnvoller, wenn man in der Datei nur vermerken würde, dass das Bild um 90 °C zu drehen ist und man das Bild dann so läßt, wie es ist?

    Ja, vielleicht. Nur dass viele Tools nicht damit klarkommen. Ich bin nichtmal sicher ob die Metadaten dafür standardisiert sind, oder die Tools die genau das machen hier ihr eigenes Süppchen kochen.

    Dadurch muss es nicht erneut komprimiert werden, ein weiterer Informationsverlust findet also nicht statt und wenn das Bild geladen wurde, muss das darstellende Programm das Bild nur noch entsprechenden den Anweisungen drehen und schon kann es wie gewünscht dargestellt werden.
    Für den Benutzer dürfte dieses ganze Prozedere nicht bemerkbar sein.

    Ja, warum das Sinn macht sollte ja jedem klar sein. Dummerweise kommen aber viele Programme nicht damit klar. Weil sie die entsprechenden Metadaten (ob nun standardisiert oder nicht) einfach nicht auswerten.

    Wieso hat man das beim JPEG Format also nicht vorrausgesehen, dass es solche Fälle geben dürfte und dafür gesorgt, dass Bilder, nur wenn man sie drehen und abspeichern will, nicht erneut komprimiert werden?

    Hat man doch. Siehe ganz oben. Einfach nur die richtigen Tools verwenden.

    Davon abgesehen ist die Frage, genau wie die meisten "wieso hat man damals nicht" Fragen sinnlos. Du müsstest schon die Leute fragen die den JPEG Standard definiert haben. Und die lesen hier mit an Sicherheit grenzender Wahrscheinlichkeit nicht mit.

    Und nochmal: es geht ja.

    Wegen dem Informationsverlust drehe ich meine Bilder, die in der falschen Orientierung dargestellt werden, daher immer erst, nach dem sie geladen wurden,
    aber dieses gedrehte Bild speichere ich prinzipiell nicht mehr ab, weil ich den Informationsverlust nicht haben will.

    Wie gesagt... siehe oben... du musst nur die richtigen Tools verwenden. Sogar ACDSee 2.irgendwas konnte das schon.



  • hustbaer schrieb:

    Hat man doch. Siehe ganz oben. Einfach nur die richtigen Tools verwenden.

    Hat man nicht, weil das mit dem durch 16 teilbar ein Spezialfall ist auf denn man auch noch nur durch Zufall gestoßen ist, siehe oben.

    Es wurde also nicht von Anfang an eingeplant.
    Wäre es so gemacht worden, dann wäre es egal, ob so ein Bild nun durch 16 teilbar ist oder nicht, weil niemals eine weitere verlustbehaftete Kompression stattfinden würde.

    Wie gesagt... siehe oben... du musst nur die richtigen Tools verwenden. Sogar ACDSee 2.irgendwas konnte das schon.

    Ja, werde mal schauen welche OSS Programme das können.
    Ist halt leider doch nur ne Notlösung.



  • Informationsverlust schrieb:

    Ist halt leider doch nur ne Notlösung.

    warum Notlösung? Funktioniert doch. Ob jetzt geplant oder nicht ist ja egal


  • Mod

    1992. Wieso sollte jemals ein Mensch ein falsch rotiertes Bild überhaupt erst erstellen? Ein falsch rotierbares Bildaufzeichnungsgerät, das gleich digital in JPEG abspeichert? Unvorstellbar.



  • Informationsverlust schrieb:

    hustbaer schrieb:

    Hat man doch. Siehe ganz oben. Einfach nur die richtigen Tools verwenden.

    Hat man nicht, weil das mit dem durch 16 teilbar ein Spezialfall ist auf denn man auch noch nur durch Zufall gestoßen ist, siehe oben.

    Das ist kein Spezialfall, und dass das geht war von Anfang an klar. "auf denn man auch noch nur durch Zufall gestoßen ist" ist Blödsinn.

    Es wurde also nicht von Anfang an eingeplant.

    Es war von Anfang an klar dass es geht. Oder meinst du die Leute die schlau genug waren den Standard zu definieren, waren gleichzeitig doof genug dass ihnen diese offensichtliche Möglichkeit nicht auffällt?

    Wäre es so gemacht worden, dann wäre es egal, ob so ein Bild nun durch 16 teilbar ist oder nicht, weil niemals eine weitere verlustbehaftete Kompression stattfinden würde.

    Blubb?
    Ich glaube nicht dass das für die Leute die das damals definiert haben ne Priorität hatte.

    Wie gesagt... siehe oben... du musst nur die richtigen Tools verwenden. Sogar ACDSee 2.irgendwas konnte das schon.

    Ja, werde mal schauen welche OSS Programme das können.
    Ist halt leider doch nur ne Notlösung.

    WTF?

    JPEG an und für sich ist ne "Notlösung". Verwende RAW, dann hast du die ganzen Probleme nicht. Bei Canon kannst du da sogar Rauschfilter, Korrektur für die chromatische Aberation, Entzerrung, Belichtung etc. einstellen ohne dass an den eigentlichen Bilddaten irgendwas geändert würde. Und Rotation natürlich sowieso.



  • SeppJ schrieb:

    1992. Wieso sollte jemals ein Mensch ein falsch rotiertes Bild überhaupt erst erstellen? Ein falsch rotierbares Bildaufzeichnungsgerät, das gleich digital in JPEG abspeichert? Unvorstellbar.

    Schonmal hochkant fotografiert?

    Und ja, manche Knipsen & Handys speichern gleich direkt in JPEG.



  • Hast du 1992 digital fotographiert?



  • hustbaer schrieb:

    Informationsverlust schrieb:

    hustbaer schrieb:

    Hat man doch. Siehe ganz oben. Einfach nur die richtigen Tools verwenden.

    Hat man nicht, weil das mit dem durch 16 teilbar ein Spezialfall ist auf denn man auch noch nur durch Zufall gestoßen ist, siehe oben.

    Das ist kein Spezialfall, und dass das geht war von Anfang an klar. "auf denn man auch noch nur durch Zufall gestoßen ist" ist Blödsinn.

    Lies nochmal:

    This
    fact used to be just an academic curiosity, but it has assumed practical
    importance recently
    because many users of digital cameras would like to be
    able to rotate their images from landscape to portrait format without
    incurring loss

    Man hat das also erst jetzt so nebenbei bemerkt wie wichtig das ist.

    Da wurde also gar nichts mit absicht so geplant, es ist reiner Zufall, dass es heute funktioniert.
    Vorher wurde das bestenfalls als Randnotiz als Spielerei für Mathematiker und Informatiker bemerkt, dass es geht.

    Es wurde also nicht von Anfang an eingeplant.

    Es war von Anfang an klar dass es geht.

    Sie haben es aber nicht geplant, dass es geht, sondern es ist eine mathematische Seltsamkeit.

    Oder meinst du die Leute die schlau genug waren den Standard zu definieren, waren gleichzeitig doof genug dass ihnen diese offensichtliche Möglichkeit nicht auffällt?

    Sie waren doof genug nicht so ein Feature einzuplanen, wie ich es in meinem Eingangsposting beschrieben habe.
    Meines würde nämlich immer funktionieren, auch dann, wenn es nicht durch 16 teilbar wäre und die Programme würden das dann heute auch beherrschen, wenn man damals beim Standard schreiben nicht so dumm gewesen wäre und das eingeplant hätte.

    Planung ist eben nicht Zufall.
    Hinter Planung steckt eine Absicht, hinter Zufall steckt "fällt halt als Abfallprodukt an, was für ein Glück!"

    Blubb?
    Ich glaube nicht dass das für die Leute die das damals definiert haben ne Priorität hatte.

    Wäre aber besser gewesen.

    JPEG an und für sich ist ne "Notlösung". Verwende RAW, dann hast du die ganzen Probleme nicht.

    Erst vor kurzem habe ich von jemanden Bilder bekommen, manche davon müßte ich drehen, meinst du etwa, der schert sich um RAW?
    Natürlich speichert der Laie in JPEG ab, wenn der Platz eng ist und
    er weiß, dass er so mehr Bilder auf sein Gerät bekommt.

    Gedanken machen sich die wenigsten darum und manche Apparate erlauben es ja nichtmal, was anderes außer JPEG zu nehmen.
    Mein Handy kann mit der bestehenden SW auch kein RAW.

    Bei Canon kannst du da sogar Rauschfilter, Korrektur für die chromatische Aberation, Entzerrung, Belichtung etc. einstellen ohne dass an den eigentlichen Bilddaten irgendwas geändert würde. Und Rotation natürlich sowieso.

    Blubb, löst das Problem nicht.



  • Man hat das also erst jetzt so nebenbei bemerkt wie wichtig das ist

    Nun, es ist eigentlich nur dir wichtig.

    wenn man damals ... nicht so dumm gewesen

    Ach dir geht es also ums rumranzen ... nur, wenn du nicht so dumm gewesen waerest, dann haettest du dich erstmal informiert, anstatt falsche Behauptungen aufzustellen.

    PS: Wo kommen immer diese Leute her?
    - aus dem Weltall
    - aus missglueckten Experimenten



  • @Informationsverlust
    Richtig, geplant war es nicht.
    Man ist aber nicht erst unlängst draufgekommen dass das zufällig geht. Dass es geht war wie gesagt von vornherein klar. Dass es damals sicher keine Priorität hatte, ist aber auch klar. D.h. sie hätten sicher auch etwas standardisiert wo es nicht gegangen wäre.

    Sie haben es aber nicht geplant, dass es geht, sondern es ist eine mathematische Seltsamkeit.

    Nö, da ist garnix seltsam dran. Ich weiss wie JPEG funktioniert, und ich kann dir versichern, es ist auf den ersten Blick klar dass es gehen muss wenn man verstanden hat wie das Format funktioniert.

    Sie waren doof genug nicht so ein Feature einzuplanen, wie ich es in meinem Eingangsposting beschrieben habe.

    Sie waren schlau genug das Format so offen auszulegen dass man beliebige Metadaten dazuspeichern kann. Dass die Industrie sich offenbar immer noch nicht auf einen "Rotier-Medataden" Standard geeinigt hat ist doch nicht der Fehler der Leute die das damals standardisiert haben?

    Die haben ein Format standardisiert mit dem man Bilder hübsch klein abspeichern kann, und das haben sie gut gemacht. Ihnen vorzuwerfen bzw. sich darüber aufzuregen dass sie nicht an etwas gedacht haben was du jetzt 20 Jahre später auf einmal furchtbar wichtig findest ist reichlich kleinlich und auch ziemlich dumm.

    ----

    Die 16-er Sache wird normalerweise kein Problem darstellen, da vermutlich jede oder fast jede Kamera sowieso Bilder mit passender Grösse erstellen wird.
    Und wenn nicht... naja, drauf geschissen dass dann ein wenig was weggeschnitten wird. Wen interessieren die letzten 1...15 Pixel eines 10MP+ Bildes?

    Wenn du das Feature trotzdem nicht verwenden willst, dann lass es halt bleiben.


Anmelden zum Antworten