Seite 1 von 2
verlustfreies Drehen von Bildern
Verfasst: Do 29. Apr 2004, 14:16
von karlheinz
Hallo,
ich hab grade verschiedene Programme ausprobiert, mit denen man Jpegs verlustfrei drehen kann. Dabei ist mir aufgefallen, dass sich durch das Drehen um 90° die Größe der Dateien ändert. (z.B. bei einem Bild mit 813KB um 12 bis 30 KB weniger). Meine Annahme, dass nach dem Drehen in der Gegenrichtung die Datei wieder ihre ursprüngliche Größe hat, bestätigte sich nur bei Fotosort, bei Cam2PC und Nikonview wurde die Datei zwar wieder größer, blieb aber immer noch kleiner als das Original. Hat jemand ne Ahnung wieso das so ist? Geht da doch irgendwas verloren?
Grüße
Karlheinz
Verfasst: Do 29. Apr 2004, 14:43
von wegus
Hallo,
jpeg ist nichts anderes als ein Kompressionsalgorithmus. So wie zip auch. JPEG eignet sich besonders gut für Bilder, ist jedoch verlustbehaftet. Will sagen durch die Kompression gehen Bildinformationen verloren ( unwiederbringlich).
Mehrfaches speichern in JPEG führt, da immer wieder neu berechnet wird, damit zu weniger Bildinformation. Wenn Du das Bild drehst, so ist die Drehung verlustfrei, die anschließende Speicherung in JPEG jedoch nicht. Drehst Du wieder zurück und speicherst, hast Du wieder Information verloren.
Wenn Du jedoch mit Qualitäten über 95% arbeitest, sollte der Verlust wirklich nur theoretisch sein. Ich finde es eher spannend, daß einige Programme dabei tatsächlich die Ausgangsgröße der Dateien erreichen. Das hätte ich nicht erwartet.
Gruß Karsten
Verfasst: Do 29. Apr 2004, 14:57
von UweL
wegus hat geschrieben:jpeg ist nichts anderes als ein Kompressionsalgorithmus. So wie zip auch. JPEG eignet sich besonders gut für Bilder, ist jedoch verlustbehaftet. Will sagen durch die Kompression gehen Bildinformationen verloren ( unwiederbringlich).
Mehrfaches speichern in JPEG führt, da immer wieder neu berechnet wird, damit zu weniger Bildinformation. Wenn Du das Bild drehst, so ist die Drehung verlustfrei, die anschließende Speicherung in JPEG jedoch nicht. Drehst Du wieder zurück und speicherst, hast Du wieder Information verloren.
das stimmt nicht ganz: für JPEG's berechnet man ganz grob gesagt Frequenz-Koeffizienten auf 8x8 Pixel großen Blöcken. Dazu wird eine sogenannte DCT durchgeführt (Discrete Cosine Transformation). Diese entstehende Frequenzmatrix kann man sehr wohl drehen durch einfache Spiegelung der Koeffizienten.
Programme wie z.B. Fixfoto (siehe Link rechts unten in der Ecke) können das - allerdings muß das Bild dann auch ein Vielfaches von 8 Pixeln breit & hoch sein, nur dann geht das.
Den von karlheinz beschriebenen Effekt habe ich noch nicht beobachtet, will aber nicht ausschließen, dass es dafür eine Erklärung gibt.
Verfasst: Do 29. Apr 2004, 15:11
von wegus
UweL schrieb:
8x8 Pixel großen Blöcken
Ich dachte immer, die unterschiedlichen Kompressionsraten entstünden durch unterschiedliche Kachelgröße. Da Du dich recht genau auszukennen scheinst, wärs nett wenn Du dazu nochmal was schreiben könntest.
Nach Deinem Beispiel ist dann auch klar, daß Breite und Höhe durch 8 teilbar sein müssen. Ist dies nicht der Fall, so könnte dies theoretisch den von karlheinz beschriebenen Effekt erklären ( was zu prüfen wäre).
Verfasst: Do 29. Apr 2004, 15:32
von UweL
wegus hat geschrieben:
Ich dachte immer, die unterschiedlichen Kompressionsraten entstünden durch unterschiedliche Kachelgröße. Da Du dich recht genau auszukennen scheinst, wärs nett wenn Du dazu nochmal was schreiben könntest.
um ehrlich zu sein müßte ich das nachlesen... aber mit der Blockgröße hat das IMHO nix zu tun sondern mit den Quantisierungstabelle, die auf die aus der DCT resultierende Matrix angewendet wird. Für jede Stufe hätte man eine andere Tabelle. Aber wie gesagt: Aus dem Kopf weiß ich solche Details nicht mehr.
wegus hat geschrieben:
Nach Deinem Beispiel ist dann auch klar, daß Breite und Höhe durch 8 teilbar sein müssen. Ist dies nicht der Fall, so könnte dies theoretisch den von karlheinz beschriebenen Effekt erklären ( was zu prüfen wäre).
...was dann aber wieder doof wäre, wenn das Programm das dann nicht wenigstens als Warnung raus gibt. Keine Ahnung, was FixFoto da tut - muß ich mal zuhause testen. Meine CP5700 gint halt 2560x1920 raus, und da passt das. IMHO liefern wohl alle (?) DigiCams Bilder, die in Höhe und Breite einem Vielfachen von 8 entsprechen. Erst bei der Nachverarbeitung käme man dann evtl. zu anderen Verhältnissen...
Verfasst: Do 29. Apr 2004, 16:54
von Gast
wegus hat geschrieben:Nach Deinem Beispiel ist dann auch klar, daß Breite und Höhe durch 8 teilbar sein müssen. Ist dies nicht der Fall, so könnte dies theoretisch den von karlheinz beschriebenen Effekt erklären ( was zu prüfen wäre).
An der Pixelzahl kann´s nicht liegen, sind 2272x1704, also jeweils durch 8 teilbar.
Grüße
Karlheinz
Verfasst: Do 29. Apr 2004, 17:08
von wegus
@uweL:
Irgendwie hatte ich bei Deiner Erwähnung von Fixfoto ein Deja vu!
Dort gab es diese Diskussion auch schon mal. Dort wird auch bestätigt, daß die 8Pixel-Bereiche konstant bleiben. Aber was wiederhole ich das alles. Lest selbst:
http://www.ffsf.de/index.php?board=1;ac ... 4#msg21694
Gruß Karsten
Verfasst: Fr 30. Apr 2004, 07:06
von Andreas Blöchl
Also ich habe mich jetzt mal da durch gekämpft und den Thread etwas verfolgt. Ich zu meinem Teil denke das das alles etwas übertrieben wird, das ist etwas zu mathematisch und wissenschaftlich. Ich denke die befinden sich im bereich von "das kann keiner sehen" oder wie sieht ihr das. Ich finde das ist sehr Programmbezogen da müßte man auch mehrere Programme wie PS Fixfoto NikonView testen um zu sehen mit welchem Programm es am besten gespeichert wird. Deswegen mache ich mir auch darüber keinen Kopf mit welchem Programm ich das Bild drehe. Wie sieht es da bei euch aus?
Verfasst: Fr 30. Apr 2004, 07:22
von Andreas Blöchl
Hätte aber jetzt doch noch eine Frage an euch. Wenn tatsächlich die Bildquali nur beim drehen alleine beeinflußt wird, wie soll man dann es am besten machen? Wäre dann eine Canon klar im vorteil ,die erkennt ja durch das eingebaute Teil das schwimmend gelagert ist ,das sie das Bild gleich drehen muß .
Verfasst: Fr 30. Apr 2004, 08:50
von UweL
Andreas Blöchl hat geschrieben:Ich finde das ist sehr Programmbezogen da müßte man auch mehrere Programme wie PS Fixfoto NikonView testen um zu sehen mit welchem Programm es am besten gespeichert wird.
es geht ja um das
verlustfreie drehen und nicht um das
fast verlustfreie. Das, was z.B. FixFoto und mittlerweile viele andere Programme beherrschen, ist wirklich 100% verlusfrei. Diese Art des Drehens geht aber wirklich nur, wenn
- a) das Bild die richtigen Maße (Breite und Höhe ein Vielfaches von acht), und
b) der Drehwinkel 90, 180 oder 270 Grad ist
Welches Programm man dazu verwendet, ist letztendlich wurscht - das geht immer nach dem gleichen Prinzip (so das Programm das denn unterstützt).
Hier z.B. eine Liste von Programmen, die das unterstützt:
http://wdw.de/digipix/tipps_jpgdrehen.html oder folgende:
http://sylvana.net/jpegcrop/losslessapps.html