Verringert das einfache Öffnen und Schließen einer JPEG-Datei die Bildqualität?

Ich hatte einige Fotokurse, habe viele Fotobücher gelesen und viele Foren durchgesehen. Und ich kann keine einheitliche Antwort auf diese Frage finden. Ein "Lager" sagt, dass jedes Mal, wenn Sie eine JPEG-Datei öffnen und schließen, ein Verlust der Bildqualität auftritt (aufgrund der Komprimierung). Andere Lager sagen, dass es keinen Verlust der Bildqualität gibt, es sei denn, Sie bearbeiten das Foto tatsächlich und speichern es dann erneut.

Macht es einen Unterschied, wenn:

  • Ich öffne das Bild in einem Standard-Bildbetrachter und "schließe" das Bild einfach?
  • Ich öffne das Bild in Photoshop Elements Editor und schließe es dort?
  • Wenn ich ein Bild einfach schließe oder es erneut speichere?

Kann jemand eine einfache Antwort darauf geben, wann das Schließen oder Speichern eines JPEG zu einer Verschlechterung der Bildqualität führt und wann nicht?

Das Öffnen eines JPEGs „dekomprimiert“ es nicht und das Schließen „komprimiert es“ daher nicht und führt zu einem Qualitätsverlust. Die Komprimierung (und „Beschädigung“) erfolgt, wenn das JPEG ursprünglich generiert wird, nicht wenn es geöffnet wird.
@ElendilTheTall: Beim Öffnen eines JPEG-Bildes wird es definitiv dekomprimiert, zumindest wenn Sie mit dem Öffnen die tatsächliche Anzeige und nicht die Dateisystemoperation meinen.

Antworten (12)

Dies beruht auf einem Missverständnis. Qualitätsverlust tritt nur während der Komprimierung auf, die beim Speichern eines Bildes als JPEG durchgeführt wird. Aber es spielt keine Rolle, ob es bearbeitet wurde oder nicht.

Also: Sie werden (mit einigen sehr spezifischen Ausnahmen, siehe Kommentare) an Qualität verlieren, wenn Sie ein Bild in einem Bildeditor öffnen und erneut speichern, selbst wenn Sie keine Änderungen vorgenommen haben. Aber wenn Sie es nur öffnen, um es anzuzeigen, und es dann schließen, anstatt es zu speichern, ändert sich nichts.

Übrigens: Das gilt nur für klassische Bildbearbeitungsprogramme wie Photoshop. Programme wie Lightroom, die RAW-Dateien "entwickeln", verfolgen einen anderen Ansatz (auch im Umgang mit JPEG-Dateien): Sie lassen das Originalbild immer intakt und speichern die durchgeführten Bearbeitungsschritte separat, die beim Exportieren der Endergebnisse angewendet werden. Bei solchen Programmen müssen Sie sich also keine Gedanken über Qualitätsverlust machen (mehr als einmal). Aber dafür sollten Sie sowieso keine JPEG-Quelldateien verwenden.

"Sie werden an Qualität verlieren ... auch wenn Sie keine Änderungen vorgenommen haben." Das hängt von der Anwendung ab. Eine Anwendung kann durchaus wissen, dass keine Änderungen vorgenommen wurden, und das ursprüngliche komprimierte Schema ohne zusätzlichen Qualitätsverlust gegenüber dem ursprünglichen JPEG neu schreiben.
Ja, oder wenn dieses Programm standardmäßig auf maximale JPEG-Qualität eingestellt ist (sprich: mindestens so gut wie die Originalqualität) und keine der Änderungen einen ausreichenden Einfluss auf das Bild hat, um einen Nettoqualitätsverlust durch Neukomprimierung zu verursachen (Laden eines perfekt komprimierten JPEG und es erneut durch einen Kompressor zu leiten, verschlechtert die Qualität nicht auf magische Weise).
@DocMax: theoretisch möglich, aber kennst du eine Anwendung, die das definitiv tut?
@LightnessRacesinOrbit: Ich bin mir sehr sicher, dass du da falsch liegst. Das Transformieren der Daten aus dem Frequenzbereich in den ursprünglichen und zurück kann jedes Mal zusätzliche Fehler aufgrund der Quantisierung hinzufügen. Vielleicht wird es irgendwann zu einem stabilen Zustand konvergieren, aber ich bezweifle es.
@MichaelBorgwardt: Ich gebe zu, ich begehe eine Art handgewellte Vermutung, in der Hoffnung, dass hier Konvergenz im Spiel ist. Ich verstehe allerdings nicht wirklich, warum das nicht sein kann; Im sehr allgemeinen Fall einer verlustbehafteten Komprimierung ist dies sicherlich nicht völlig unmöglich.
@MichaelBorgwardt jpegtrankann unter anderem zum verlustfreien Zuschneiden oder Drehen eines JPEG verwendet werden. Ich verwende es oft, um die Dateigröße weiter zu reduzieren und/oder unerwünschte Flusen wie EXIF-Daten, Kommentare usw. zu entfernen:jpegtran -optimize -copy none -perfect -v input.jpg > output.jpg
Einige Programme lassen Sie nicht einmal speichern (oder buchstäblich einfach nichts tun), es sei denn, das geöffnete Projekt ist schmutzig (Sie haben Änderungen vorgenommen). Sie können jedoch jederzeit Speichern unter... um eine Kopie zu erstellen.
@LordNeckbeard jpegtranmacht etwas ganz anderes als ein Bildbearbeiter.
@Rawling Warum sollte diese Unterscheidung wichtig sein? Die Erwähnung war relevant für die Diskussion.
@MichaelBorgwardt Ich habe Tests mit imagemagick durchgeführt und es konvergiert tatsächlich nach einer Handvoll Speicherungen. Hier gibt es Beispiele zu einer anderen Frage ... Ich werde es später finden ....
Hier: photo.stackexchange.com/a/34192 in meinen Beispielen in 8 oder 9 Zyklen konvergiert.
@mattdm: Als Gegenbeispiel hat unser eigener Jeff Atwood nach 10 Zyklen immer schlechtere Ergebnisse erzielt: blog.codinghorror.com/… - also denke ich, dass es auch vom jeweiligen Bild abhängt
@LordNeckbeard jpegtran"weiß nicht absichtlich, dass keine Änderungen vorgenommen wurden, und schreibt das ursprüngliche komprimierte Schema ohne zusätzlichen Qualitätsverlust neu", es verwendet einfach niemals eine verlustbehaftete Komprimierung .
@DocMax: Dies erfordert entweder, dass 1) die App den komprimierten Stream im Speicher speichert (oder erneut liest) oder dass 2) die JPEG-Datei tatsächlich nicht neu geschrieben wird und sie intakt bleibt (einschließlich Zeitstempel, falls vorhanden). Sehr unwahrscheinliche Szenarien
Ich stimme zu, dass es selten vorkommt, dass eine Anwendung den komprimierten Stream so festhält und neu schreibt, wie er ist. Ich habe es einmal gesehen, aber das war vor vielen Jahren, als die Erinnerung kostbarer war als heute. Mein Punkt war nur, dass " wird an Qualität verlieren" impliziert, dass Qualitätsverlust überhaupt nicht vermieden werden kann; Ich hätte kein Problem mit "wird mit ziemlicher Sicherheit an Qualität verlieren".
Ich zweite, dass es für ein JPEG-Programm durchaus möglich ist, eine Datei (mit einigen Einschränkungen) ohne weiteren Qualitätsverlust zu dekomprimieren, zu bearbeiten und zu speichern. Die DCT kann mit ausreichender Präzision durchgeführt werden, um die im ursprünglichen JPEG gespeicherten Frequenzdaten vollständig wiederherzustellen (dies ist kein Problem), und ein Encoder kann die Daten nach Belieben quantisieren. Es kann immer eine Quantisierung wählen, die die Präzision nicht mehr beschneidet, als es ohnehin schon war, wenn es das möchte. Ob es tatsächlich Encoder gibt, die dies tun, ist natürlich eine andere Frage, es ist in der Spezifikation machbar.
@TimSeguine: "Es kann immer eine Quantisierung wählen, die die Genauigkeit nicht mehr beschneidet, als es bereits war, wenn es möchte" - ist das angesichts der begrenzten Genauigkeit Ihrer numerischen Typen tatsächlich möglich?
@MichaelBorgwardt ja. Wenn es für den ersten Encoder möglich war, dann ist es auch für den zweiten möglich.
@TimSeguine - das basiert auf der Annahme, dass die genauen Originaldaten aus der ersten Codierung wiederhergestellt wurden, was angesichts der verlustbehafteten Natur der Codierung bedeutet, dass dies selbst unter perfekten / Laborbedingungen unwahrscheinlich ist.
@JamesSnell Es ist möglich, die DCT und die inverse DCT mit beliebig hoher Genauigkeit zu berechnen. Das ist alles, was nötig ist. Zeitraum. Das ist auch in der Praxis nicht besonders schwierig. JPEG ist nur wegen des Quantisierungsschrittes verlustbehaftet. Wenn wir das weglassen und eine gute DCT-Unterroutine haben, können wir viele Dinge mit den Daten machen, ohne die Qualität weiter zu reduzieren, einschließlich Zuschneiden, 90-Grad-Drehung und Spiegelung. Es ist nicht nur eine theoretische Möglichkeit, es gibt Software, die dies tut. Unter Nicht-Laborbedingungen. Ich erkläre nur, wie es möglich ist.
@TimSeguine: Nein. Die Software, von der Sie sprechen, führt überhaupt keine DCT oder inverse DCT durch - sie ordnet lediglich die vollständig komprimierten Daten neu an, indem sie genaue Kenntnisse über das Format und seine Symmetrien verwendet.
@MichaelBorgwardt Bist du ein Zauberer? Kannst du meine Gedanken lesen? Ich habe nie ein bestimmtes Programm erwähnt. Es interessiert mich auch nicht, wie ein Programm, von dem ich nicht gesprochen habe, implementiert wird.
@TimSeguine: von welcher Software hast du damals gesprochen? Weil ich sehr bezweifle, dass jemand mit den erforderlichen Fähigkeiten eine so absurd verschwenderische und ineffektive Methode anwenden würde, um das gleiche Ergebnis zu erzielen.
@MichaelBorgwardt Es ist nicht verschwenderisch, wenn es allgemeiner ist. Der Punkt war (vorausgesetzt, Sie haben einen hochwertigen DCT-Algorithmus), dass Sie so ziemlich alles mit einem JPEG tun können, ohne seine Qualität zu beeinträchtigen, wenn Sie den Quantisierungsschritt beim erneuten Speichern überspringen. Das kauft Ihnen eindeutig mehr. Sie können es nicht besser machen als alle anderen, die das Original sehen, aber Sie müssen es auch nicht schlechter machen. Seien Sie vorsichtig und quantisieren Sie nicht.
@TimSeguine - Wenn Sie dieser Antwort nicht zustimmen, ist es Zeit für Sie, die Referenzen aufzuschlüsseln. Und wenn Sie eine Diskussion führen möchten, verschieben Sie sie möglicherweise am besten in den Chat.
@JamesSnell Du hast absolut recht. Ich bin mir nur nicht sicher, ob es sich für mich lohnt, weiterhin pedantisch über eine Antwort zu sein, die dem OP den richtigen Rat gibt.

Absolut nicht. Sie müssen die Datei bearbeiten und erneut als JPEG speichern, um die Effekte der Bildkomprimierung zu verstärken. Das bloße Ansehen hat überhaupt keine Auswirkungen – wenn doch, würden alle JPEGs im Internet in höchstens ein oder zwei Tagen vollständig „abgenutzt“ sein.

FYI – hier ist ein Beispiel für die Art von Anleitung, die ich verwirrend finde (dies ist von einer Fotoblog-Website): „Was ist der Nachteil beim Aufnehmen von .JPEG? Es hat ein Komprimierungsschema, das jedes Mal, wenn die Datei geöffnet und gespeichert wird, eine Bildverschlechterung verursacht. Die Verschlechterung ist gering. Sie würden es wahrscheinlich zunächst nicht bemerken. Aber Sie würden es mit der Zeit sehen.
@markthomas: das entscheidende Wort ist gespart - sparen ist etwas ganz anderes als schließen.
+1 für "abgenutzt"... Google muss auf seiner Suchergebnisseite alle paar Sekunden neue "Farbschichten" auftragen!
@MichaelBorgwardt In der Tat, aber es könnte missverstanden werden als "jedes Mal, wenn die Datei geöffnet wird und jedes Mal, wenn die Datei gespeichert wird". Zugegeben, Sie hätten eine viel größere Verschlechterung, wenn Sie ohne vorheriges Öffnen gespeichert hätten, aber ich denke immer noch, dass das Öffnen nicht erwähnt werden sollte.

Die JPEG-Komprimierung kann so beschrieben werden, dass sie zwei unterschiedliche Phasen aufweist: zuerst eine verlustbehaftete Phase, dann eine verlustfreie Phase. Für diese Frage ist es wichtig, den Unterschied zwischen ihnen zu verstehen. Das liegt nicht so sehr daran, dass es hilft zu verstehen, was vor sich geht, sondern weil es hilft zu verstehen, woher die häufigsten Fehler kommen.

Die verlustbehaftete Komprimierung erfolgt nur , wenn die Datei gespeichert wird . Dies ist der Teil, der Qualitätsverlust verursacht. Das Schließen der Datei reicht jedoch nicht aus, um eine verlustbehaftete Komprimierung auszulösen: Sie müssen sie speichern . Einige Editoren weigern sich möglicherweise, JPEG-Dateien zu speichern, die nicht bearbeitet wurden, um zu vermeiden, dass versehentlich eine verlustfreie Komprimierung ausgelöst wird, aber ich weiß nicht aus dem Kopf, ob dies tatsächlich von Editoren getan wird oder nicht.

Die verlustfreie Komprimierung erfolgt ebenfalls nur beim Speichern der Datei . Der Hauptunterschied besteht darin, dass es keine Rolle spielen würde, selbst wenn die Datei ohne Speichern geschlossen wurde, da sie verlustfrei ist. JPEG verwendet beide Techniken zusammen.

Die verlustfreie Dekomprimierung findet immer statt, wenn die Datei geöffnet wird, aber zu keinem anderen Zeitpunkt . Nicht, wenn es geschlossen ist, und nicht einmal, wenn es gespeichert ist. Wie bei der verlustfreien Dekomprimierung spielt es keine Rolle, ob es in diesen Zeiten passiert, da es verlustfrei ist.

"Verlustbehaftete Dekompression" findet nie statt. So etwas gibt es nicht . Das kann nicht sein, denn die Daten, die während der verlustbehafteten Komprimierungsphase weggeworfen wurden, sind weg. Wenn Sie es irgendwie rekonstruieren könnten, hätten Sie einen verlustfreien Komprimierungsalgorithmus, keinen verlustbehafteten. Ich erwähne das Konzept nur deshalb, weil es nach der Erwähnung von zwei Arten der Komprimierung seltsam aussehen würde, wenn ich nur eine Art der Dekomprimierung erwähnen würde, ohne zu erklären, warum.

Beachten Sie, dass das Speichern der Datei beide Komprimierungsarten auslöst . Daran führt nicht viel vorbei, es sei denn, Sie wissen, dass das Bild nicht bearbeitet wurde, aber dann macht es auch keinen Sinn, es zu speichern. Beachten Sie auch, dass das Schließen der Datei ohne Speichern keine der beiden Phasen auslöst , nicht einmal die "sichere" verlustfreie Komprimierung. Aus diesem Grund kann das bloße Öffnen und Schließen der Datei die Bildqualität nicht beeinträchtigen .

Zu "kein Sinn zu speichern" habe ich mir Sorgen gemacht, was ein Programm tun würde, wenn ich nur die Metadaten (Kommentar, Notizen) bearbeite, wenn die Benutzeroberfläche Öffnen-Bearbeiten-Speichern ist und es keinen besonderen Hinweis darauf gibt, dass die Bilddaten kopiert werden aber nicht neu komprimiert.
"Lossy decompression" als Konzept ist absolut sinnvoll, obwohl mir nichts bekannt ist, was es implementiert. Die komprimierte Datei enthält eine bestimmte Datenmenge; man könnte sich einen Dekomprimierungsalgorithmus vorstellen, der nur eine niedrig aufgelöste Version dieser Daten extrahiert. Dies könnte viel schneller sein, als alle verfügbaren Daten zu extrahieren, und man könnte einen solchen Algorithmus beispielsweise verwenden, um eine Vorschau bereitzustellen. (Zum Beispiel komprimiert JPEG ein Bild als eine Folge von 8x8-Blöcken; Sie könnten die durchschnittliche Farbe jedes Blocks extrahieren und dies als einzelnes Pixel für eine Vorschau in 1/8-Größe rendern.)
@jdlugosz Programme, die im Allgemeinen nur Metadaten aktualisieren, dekomprimieren/komprimieren den Bildteil des JPG nicht erneut. Sie kopieren diesen Teil einfach so, wie er in der neuen Datei ist. Das JPG-Dateiformat ist so konstruiert, dass es tatsächlich einfacher und weniger arbeitsintensiv ist, dies so zu tun, wenn Sie nur die Metadaten aktualisieren müssen. Aber es hängt alles von der Software ab. Wenn das in der Art und Weise, wie es Dinge tut, dumm ist, führt kein Weg daran vorbei (außer der Verwendung anderer Software).
@DavidRicherby Es gibt eine Menge Software, die die Dekomprimierungs-Engine für Vorschauen und dergleichen verwendet. Die meisten webbasierten Fotoalben tun dies, um Miniaturansichten zu generieren und eine Version mit niedriger Auflösung an einen Browser mit einem kleinen Display zu senden. In MacOSX erledigen das die Thumbnail-Ansichten im Finder und iPhoto. Ich vermute, dass Thumbnails im Explorer unter Windows dies auch tun, bin mir aber nicht sicher.
Tatsächlich, AIUI, können sowohl die JPEG-Komprimierung als auch die Dekomprimierung (etwas) verlustbehaftet sein. Das heißt, Sie können das Originalbild nicht exakt aus den komprimierten Daten rekonstruieren, und Sie können die komprimierten Daten nicht (immer) exakt aus dem dekomprimierten Bild rekonstruieren. Meistens, AFAIK, kann dies aufgrund von Clipping passieren: Wenn die komprimierten YUV-DCT-Koeffizienten zurück auf 8-Bit-RGB-Pixelfarben abgebildet werden, können einige Pixel mit Farbwerten kleiner als 0 oder größer als 255 enden, die abgeschnitten werden.
@DavidRicherby: Soweit ich weiß, ist jeder Punkt in einer JPEG-Datei eine Summe verschiedener Werte, multipliziert mit unterschiedlichen Skalierungsfaktoren. Obwohl der Wert im Allgemeinen in einen Wert mit jeweils 8 Bit für Rot, Grün und Blau gerendert wird, sind die Werte der Punkte genauer definiert. Wenn man ein Bild JPEG-komprimieren würde, das genau mit dem ungerundeten Ergebnis einer JPEG-Dekomprimierung übereinstimmt, würde eine erneute Komprimierung mit denselben Einstellungen wie das frühere Bild dasselbe Ergebnis wie die frühere Komprimierung liefern, aber das Runden, das während des Dekomprimierungsprozesses auftritt, unterbricht dies.
Viele Programme können eine verlustfreie Rotation durchführen, indem sie die DCT-Blöcke drehen, ohne sie zu dekomprimieren, wodurch der verlustbehaftete Komprimierungsschritt vermieden wird. Sie können also nicht sagen, dass "das Speichern der Datei beide Arten der Komprimierung auslöst", auch wenn dies meistens zutrifft.

Das bloße Öffnen und Schließen einer JPEG-Datei sollte keinen Speicherbefehl auslösen (in keinem mir bekannten Programm), und daher findet keine erneute Komprimierung statt.

Für die Zeiten, in denen Sie tatsächlich auf "Speichern" klicken, hängt das, was passiert, davon ab, welche Änderungen Sie vorgenommen haben und wie intelligent das betreffende Bildprogramm ist.

Der Benutzer CutNGlass hat bereits ein Beispiel für ein intelligentes Bildprogramm namens "Better JPEG" erwähnt, das sich die Tatsache zunutze macht, dass JPEG-Bilder aus vielen unabhängig voneinander codierten rechteckigen Pixelblöcken bestehen und nur Blöcke, die wirklich neu sind -komprimiert beim Speichern des Bildes. Mit einem solchen Programm können Sie beispielsweise rote Augen entfernen und beim Speichern des JPEG-Bildes werden nur die Blöcke neu komprimiert, die von der Änderung betroffen waren. http://www.betterjpeg.com/features.htm

Nun, diese Technik, um zu vermeiden, dass irgendein Teil eines JPEG-Bildes neu komprimiert werden muss, der nicht neu komprimiert werden muss, ist wirklich "altmodisch" (ich bin kein Experte und kenne es seit über einem Jahrzehnt). Ich denke, ich habe es als etwas selbstverständlich angesehen, dass alle guten Bildverarbeitungsprogramme dies inzwischen perfekt handhaben würden (was bedeuten würde, dass normalerweise keine erneute Komprimierung erforderlich wäre, wenn Sie einfach ein JPEG-Bild öffnen und auf "Speichern" klicken). weil das Programm wissen würde, dass keine Blöcke verändert wurden, und sie einfach unberührt lassen würde), aber wenn ich mir diese Frage und ihre unterschiedlichen Antworten ansehe, kann ich nur feststellen, dass dies NOCH nicht wahr ist! *Vielleicht ist die Programmierung hinter solchen Lösungen komplizierter als ich glaube - sonst hätten das alle JPEG-Programme schon vor Jahren gehabt!*

Hallo neuer Benutzer. Vielen Dank für Ihren Beitrag, die Aufnahme eines Links zu betterjpeg ist eine nützliche Ergänzung. Aus Entwicklersicht ist die Situation ein extremer Grenzfall - um nützlich zu sein, muss der Benutzer eine Teilbearbeitung vornehmen UND genau identische Qualitätsausgabeeinstellungen wünschen UND die Quelldatei eine von wenigen JPEG-Codierungsoptionen sein . Für die Menge an Arbeit, die damit verbunden ist, gibt es nicht genug Nutzen.
Hallo @JamesSnell! Zunächst einmal weiß ich Ihr Feedback sehr zu schätzen und gibt mir eine Erklärung dafür, warum alle Bildbearbeitungsprogramme nicht alles tun, um eine Verschlechterung von JPEGs nach Möglichkeit zu vermeiden. Allerdings muss ich sagen, dass es ziemlich subjektiv ist, ob dieser Programmieraufwand zu viel Arbeit ist und ob die Anwendungsfälle "extreme edge-cases" darstellen oder nicht! Es hängt davon ab, wie viele Bildformate das Programm verarbeitet und wie häufig JPEG verwendet wird, und es hängt davon ab, wie anal Sie nichts verlieren wollen, was Sie nicht verlieren müssen (in diesem Fall unnötiger Bildqualitätsverlust). .
Außerdem würde ich sagen, dass JPEG das weltweit am häufigsten verwendete Bildformat Nr. 1 ist, was dies an und für sich zu etwas anderem als einem „extremen Randfall“ macht (zumindest das Wort „extrem“ sollte entfernt werden ). Wenn Sie auch bedenken, dass diese Block-Handling-Technik, wenn sie in einem Bildprogramm implementiert ist, für eine Vielzahl unterschiedlicher Situationen verwendet werden kann (Teilbearbeitungen, wie Entfernen roter Augen; Drehen/Spiegeln des Bildes; Zuschneiden), das weist auch auf etwas anderes als einen "extremen Grenzfall" hin. Es ist vielleicht nicht das am MEISTEN nachgefragte Feature, aber gleichzeitig bin ich sicher, dass es geschätzt würde!
Carl, ich würde @JamesSnell zustimmen, dass dies ein Grenzfall ist - und ich habe an einem beliebten Bildbearbeitungsprogramm gearbeitet, daher habe ich hier einige Erfahrung. Wenn Sie eine Datei öffnen, wird sie zur Bearbeitung in eine unkomprimierte Version im Arbeitsspeicher kopiert, und das Original wird sofort verworfen . Das spart Speicherplatz und gibt Ihnen die Flexibilität, jedes Dateiformat als Quelle zu verwenden. Ich habe Software gesehen, die ein JPEG verlustfrei spiegeln oder drehen kann, aber es ist eine sehr spezielle Funktion. Das Programm, auf das Sie verlinken, ist der einzige Editor, den ich je gesehen habe, der diese Funktion auf die allgemeine Bearbeitung ausdehnt.
Danke fürs Wiegen, Mark – und danke für deine Einsicht. Ich würde dies jedoch immer noch nicht als "Randfall" bezeichnen, da wir über sehr häufige Arten von Bearbeitungen sprechen, die den weltweit häufigsten Bilddateityp verwenden ... Dass Programmierer es einfach halten wollen und sich vielleicht nicht genug darum kümmern über die Bildverschlechterung, damit es sich für sie "lohnt", damit umzugehen, ist eine Erklärung dafür, warum die meisten Bildprogramme dies nicht handhaben, aber es macht es nicht zu einem "Randfall". Die JPEG-Datei ist normalerweise viel kleiner als die unkomprimierte Version, sodass sie im Speicher bleiben und diese Funktionalität hinzugefügt werden könnte.

Sie werden definitiv keine Qualität verlieren, wenn Sie es sich ansehen. Aber wie oben erwähnt, können Sie beim Speichern ohne Änderungen an Bildqualität verlieren, wenn der Editor sie komprimiert, wenn er die Datei speichert . Angenommen, Sie haben ein JPEG ohne Komprimierung:

  1. Sie öffnen es in The GIMP, nehmen keine Änderungen vor und speichern es
  2. Das GIMP fragt Sie, wie viel Komprimierung Sie möchten (Qualität)
  3. Sie geben 90 % Qualität ein (Standardeinstellung)

Wenn Sie dies 20 Mal tun, werden Sie eine deutliche Qualitätsminderung feststellen, da es 20 Mal komprimiert wurde. Wenn Sie es ohne Komprimierung (100 % Qualität) speichern, sehen Sie keine Änderung.

JPEG hat immer eine Komprimierung; Bei JPEG gibt es keine "keine Komprimierung". Es ist von Natur aus verlustbehaftet. Wenn Sie jedoch ein [JPEG-komprimiertes] Bild mit 100 % Qualität durch einen JPEG-Kompressor schicken, führt dies möglicherweise nicht zu einem Qualitätsverlust.
Wiederholtes erneutes Komprimieren eines JPEG-Bildes mit derselben Qualität wird es nicht verschlechtern.
@geometrisch Wirklich?
@geometrisch definitiv nicht der Fall
Beispiel für Qualitätsverlust beim erneuten Speichern auf gleicher Qualitätsstufe: photo.stackexchange.com/a/34192
Beachten Sie auch, dass 100 % Qualität keine Komprimierung bedeutet.
Auch ohne Komprimierung haben Sie immer noch eine Farbraumkonvertierung (normalerweise zwischen RGB und YCrCb, die einem Quantisierungsfehler unterliegt.

Wie bei jeder Datei werden auf jeden Fall keine Änderungen vorgenommen, wenn Sie nicht auf "Speichern" klicken, sondern die Datei einfach schließen. (stellen Sie es sich wie ein Wortdokument vor, das Sie einfach öffnen und schließen)

Wenn Sie Änderungen vornehmen, erhalten Sie von den meisten Programmen eine Benachrichtigung, in der Sie gefragt werden, ob Sie "Änderungen speichern" möchten.

Die Antwort auf Ihre Frage ist also definitiv nein.

Ich hoffe, das hilft.

Einfach gesagt:

  • Öffnen: kein Qualitätsverlust
  • Kopieren: kein Qualitätsverlust
  • Anzeige: kein Qualitätsverlust
  • Speichern ohne Bearbeitung: ist Kopieren, kein Qualitätsverlust*
  • Speichern nur mit Metadatenbearbeitungen: kein Qualitätsverlust*
  • Einsparung bei Änderung der Komprimierungsqualität: Qualitätsverlust
  • Speichern nach Bearbeitung der Bilddaten: Qualitätsverlust

*Abhängig vom Programm können schlecht implementierte Programme tatsächlich neu komprimieren, selbst wenn sie nicht benötigt werden, mit dem daraus resultierenden Qualitätsverlust

Die Dekodierung aller digitalen Daten ist verlustfrei. Es gibt kein einziges digitales Format, bei dem die bloße Decodierung und Anzeige die Daten verändern würde.

Lediglich die erneute Komprimierung der Bilddaten ist potenziell verlustbehaftet. Bestimmte Bearbeitungsvorgänge, die eigentlich nur Metadatenbearbeitungen sind, sollten keinen Qualitätsverlust verursachen, zum Beispiel ist die EXIF-Rotation verlustfrei.

Es ist möglich, dass ein Programm eine Datei generiert, indem es Daten verwendet, die wörtlich aus Teilen des Bildes kopiert wurden, die sich nicht geändert haben, aber neue komprimierte Daten für andere Teile erzeugt. Der JPEG-Assistent zum Beispiel ermöglicht es, „wichtige“ Bereiche eines JPEGs hervorzuheben und unverändert zu lassen, während andere weniger wichtige Bereiche des Bildes aggressiv um verschiedene Beträge komprimiert werden.
Das Kopieren der Datei (in Explorer, Finder etc.) führt nicht zu Qualitätsverlusten. Das Öffnen des Bildes, alles auswählen, kopieren, neues Bild von kopieren und dann speichern führt zu Qualitätsverlust.
@supercat - Blockersetzung ist nur für bestimmte JPEG-Codierungsschemata möglich. Aber die Option für selektive Qualität (wie nur in einigen Bereichen) könnte für einige interessante Platzeinsparungen ohne größere Bildverschlechterung im Web sorgen.
@JamesSnell: Ich habe den JPEG-Assistenten vor Ewigkeiten verwendet; Ich habe nicht nachgesehen, ob/wie es gewartet oder aktualisiert wurde, aber es kann einige große Platzeinsparungen ermöglichen, wenn ein Bild ein paar Stellen hat, an denen Details benötigt werden, und viele Bereiche, in denen dies nicht der Fall ist. In einigen Fällen kann das Verwischen von allem außer den Hauptmotiven eines Bildes das Bild ästhetisch verbessern und gleichzeitig die Datei viel kleiner machen.

Einfach gesagt Nein .

Um genau zu sein. Beim Speichern des JPEG-Bildes treten einige Verluste auf, da JPEG als verlustbehaftete Komprimierung definiert ist.

Das Bild wird mit Huffman-Codierung komprimiert, wenn ich mich nicht irre. Wenn nun ein Bildeditor ein Bild öffnet, wird das Bild nicht dekomprimiert. Es decodiert einfach das komprimierte Bild, sodass der Bildschirm anzeigen kann, was darin enthalten ist.

Aber wenn Sie Änderungen vornehmen und es erneut speichern, wird das Bild mit mehr Datenverlust in ein neues JPEG komprimiert. Software wie GIMP fragt Sie jedoch, wie viel Qualität Sie möchten, damit Sie 100% auswählen können, um die vorhandene Qualität beizubehalten.

Jetzt würde das Öffnen und Schließen eines Bildes ohne Änderungen keine Rolle spielen, wie es gespeichert wird und welche Daten verloren gehen. Wenn Sie es zum Anzeigen öffnen und dann schließen, werden keine Änderungen an der Datei vorgenommen. Egal was der Fall ist (mp3, Bild, Word-Dokument). Da nichts gespeichert wird, bleibt die Qualität immer gleich.

Aber wie bereits gesagt, wenn Sie sich wirklich Sorgen um Datenverlust machen, können Sie einfach andere Formate wie png oder tiff verwenden.

Beachten Sie, dass Sie die vorhandene Qualität nicht beibehalten, wenn Sie das Foto in GINMP mit dem 100 %-Wert der "Qualitätsprozentsatzeinstellung" erneut speichern. Es setzt nur bestimmte vom Encoder verwendete Parameter auf die höchstmögliche Qualitätsstufe. Diese Einstellungen sind nicht verlustfrei.
Kein Problem. Sie können mehr darüber in dieser Frage lesen .

Auch in diesen Antworten scheint es viele Fehlinformationen zu geben.

JPEG ist ein verlustbehafteter Blockcodierungsstandard. Es ist ein Frequenzbereichscode, der seine Komprimierung erhält, indem er höherfrequente Bildkomponenten mit geringerer Genauigkeit darstellt. Die Blockgröße beträgt 8x8 Pixel.

Um ein JPEG-Bild zu codieren, nehmen Sie jeden Block, führen eine 2-D- DCT durch und zeichnen das Ergebnis in einer Art Zick-Zack-Muster mit immer weniger Bits auf, beginnend mit der niedrigsten Frequenz und endend mit der höchsten. Das Präzisionsprofil wird durch eine einzige Qualitätsvariable bestimmt.

Solange Sie diesen Vorgang einmal an einem Block durchgeführt haben, können Sie beliebig oft decodieren und neu codieren, ohne die Bildqualität zu verlieren (solange Sie immer dieselbe Qualitätsvariable verwenden). Das ist keine Übertreibung; Der Vorgang des Decodierens und Neucodierens eines JPEG-Blocks kann vollkommen verlustfrei erfolgen, und jede Bearbeitungsanwendung, die ihr Geld wert ist, kann dies bereits tun.

Was bedeutet das für eine Person, die ein Bild bearbeitet? Wenn Sie ein Bild öffnen und es mit derselben Bildqualität speichern (neu codieren), tritt kein Qualitätsverlust auf (Ihre Bearbeitungsanwendung sollte Ihnen die Qualitätsvariable mitteilen können, die zum Codieren des Bildes verwendet wurde). Wenn Sie ein Bild öffnen und nur einen Teil davon bearbeiten, ändern sich nur die 8x8-Blöcke, die Sie bearbeitet haben. Alles andere wird genau gleich sein.

Ist das so ?
Ich habe nicht genau nachgeforscht, aber ich gehe davon aus, dass es Rundungsfehler sind, die dies nicht genau der Fall machen.
Wenn das Programm dieselbe Q-Matrix verwendet und Sie nur isolierte Regionen ändern, ist die @stevecox-Zusammenfassung korrekt. Wenn das gleiche Programm verwendet wird, sollte die gleiche Schiebereglereinstellung die gleichen internen Parameter ergeben. Das Zuschneiden von links/oben kann die Blockausrichtung ändern; Gesamtänderungen wie Farbton und Helligkeit berühren alles und beide können eine schreckliche Verschlechterung über die nominelle Komprimierungsqualität hinaus bewirken. Wenn die ursprüngliche Speicherung von sehr hoher Qualität war, werden die Effekte subtil, aber kumulativ sein.
@mattdm Auch ohne absichtliches Abrunden hoher Frequenzen (Quantisierung) werden die Farbinformationen der Farben in der Auflösung reduziert und über ein vollauflösendes b & amp; w-Ebene, und die Farbraumtransformation hat normale Fließkommagenauigkeit und Rundung auf die nächste ganze Zahl. JPEG2000 adressiert das und hat echte verlustfreie Modi.
-1 Ich habe gerade ein kurzes Experiment mit Photoshop CC durchgeführt und wiederholt ein Bild mit genau denselben Einstellungen geöffnet und gespeichert, was jedes Mal zu einer anderen Datei führt , wenn sie mit dem Original mit einem „Unterschied“-Mischmodus verglichen wird. Anscheinend ist Photoshop kein "sein Salz wert". Ich kann nicht für andere Redakteure sprechen, aber ich würde wetten, dass es ihnen genauso geht. Sie könnten ein Programm sehr sorgfältig schreiben, um Rundungsfehler zu vermeiden, wenn Sie ein Bild kontinuierlich dekomprimieren und erneut komprimieren, aber das hätte keinen Sinn - JPEGs sind kein gutes Zwischenformat, Punkt.
@MattGrum Ich habe gerade das gleiche Experiment mit Jaspis gemacht. Das Diff war nach der ersten Komprimierung leer. Ich kann nicht sagen, wie Sie Ihr Experiment durchgeführt haben, aber die Referenzimplementierung erzeugt keinen zusätzlichen Qualitätsverlust
@SteveCox Ich habe ein Bild in Photoshop geöffnet, es als JPEG-Qualität 7 gespeichert, dieses JPEG geöffnet und als JPEG-Qualität 7 gespeichert und es dann fünfmal wiederholt. Ich habe dann das erste JPEG mit dem 5. JPEG verglichen. Was die Referenzimplementierung macht, ist nur dann von akademischem Interesse, wenn die großen Editoren alle für Qualitätseinbußen sorgen.

Die einfache Antwort lautet: „Das kommt darauf an.“

Macht es einen Unterschied, wenn:

Ich öffne das Bild in einem Standard-Bildbetrachter und "schließe" das Bild einfach?

Sollte sicher sein, da ein Betrachter niemals in der Lage sein sollte, das Bild zu ändern.

Ich öffne das Bild in Photoshop Elements Editor und schließe es dort?

Sollte das Bild nicht ändern.

Soll ich das Bild einfach schließen und speichern vs. es neu speichern?

Das schließende Bild sollte das Bild nicht ändern. Das erneute Speichern des Bildes würde es sehr wahrscheinlich ändern, abhängig von den verwendeten Plug-Ins.

Ein Grund dafür, dass Sie so viele unterschiedliche Antworten auf die Frage „Wann führt das Schließen oder Speichern einer JPEG-Datei zu einer Verschlechterung der Bildqualität und wann nicht?“ finden werden. ist, dass es von so vielen verschiedenen Dingen abhängt, einschließlich: der Software, die Sie zum Bearbeiten des Bildes verwenden, den Plug-Ins, die auf dieser Software installiert sind, ob Ihre Software "automatische Speicherungen" durchführt, und von den Einstellungen, die Sie verwenden wenn Sie das JPG-Bild speichern! Das ist eigentlich der Grund, warum ich keine Originaldateien bearbeite.

Ich verwende Photoshop nicht, aber es gibt ein Plug-in dafür, das bei dem spezifischen Problem helfen soll -- Vermeidung von Bildqualitätsverlusten beim Speichern eines JPEG: http://www.betterjpeg.com /jpeg-plug-in.htm

Better JPEG Lossless Resave Plug-in für Adobe Photoshop und Adobe Photoshop Elements ist ein Tool zur Vermeidung von Rekomprimierungsverlusten beim erneuten Speichern bearbeiteter JPEG-Bilder in Photoshop. Das Plug-in nutzt die Tatsache aus, dass JPEG-Bilder aus einer Reihe kleiner unabhängiger Blöcke bestehen, und komprimiert unveränderte Blöcke nicht erneut.

Interessante Antworten. Aber einige sind immer noch ein wenig irreführend. Ich werde versuchen, zusammenzufassen.

Absolut nicht

1) Das Öffnen einer Datei wirkt sich in keiner Weise darauf aus. Schließe es auch. Nicht in einem Viewer oder Bearbeitungsprogramm.

Es besteht die Möglichkeit, dass Sie die Datei in verschiedenen Programmen unterschiedlich anzeigen, aber das könnte daran liegen, wie dieses Programm einige Informationen wie Farbmodus oder Farbprofil interpretiert. Aber dieser Prozess liest es nur.

Kleine Veränderungen sind möglich

2) Verlustfreie Operationen ausführen, wie z. B. das Drehen eines Bildes. Normalerweise ordnen die Programme die Daten einer JPG-Datei einfach neu an, ohne sie zu analysieren und neu zu komprimieren. Aber ich würde nicht für alle Programme die Hand ins Feuer legen, die das angeblich können.

Kleine unnotorische Änderungen

3) Öffnen und Speichern mit der gleichen Komprimierung auf dem gleichen Programm.

Beim ersten Speichern einer JPG-Datei wird eine erste Neukomprimierung durchgeführt. Wenn Sie die Datei ein zweites Mal mit denselben Einstellungen speichern, ist der ursprüngliche Datenverlust bereits erfolgt, aber kleine Änderungen können erneut angewendet werden. Nicht im gleichen Ausmaß wie der erste, kann sich aber mehrmals bemerkbar machen. Das hängt aber vom Programm ab.

Spürbare Veränderungen

4) Am offensichtlichsten ist das erneute Speichern mit einer anderen Komprimierungseinstellung.

Nicht nur auf der "Skala" des Programms, sondern auch auf dem verwendeten Algorithmus. Das ist ein wenig zu technisch, aber es gibt mindestens zwei Hauptkompressionsalgorithmen 4:4:4 und 4:2:2.

Sie könnten den "Schieberegler" Ihres Programms verwenden, um die "Qualität" zu erhöhen, aber wenn Ihr Programm 4:2:2 verwendet und das Original auf 4:4:4 war, haben Sie einen erheblichen Datenverlust.

Hier ist ein kleines Papier, das ich vor einigen Jahren erstellt habe, damit Sie sehen können, was dieser Datenverlust bedeutet. Es ist auf Spanisch, aber Sie können Google Translate verwenden: http://otake.com.mx/Apuntes/PruebasDeCompresion2/1-CompresionJpgProceso.htm

Ein totales Durcheinander

5) Wenn Sie ein Bild öffnen und es in einem Programm mit eingeschränkten Fähigkeiten erneut speichern. Beispielsweise könnte ein Betrachter nur RGB-Dateien speichern und mit CMYK-Dateien nicht richtig arbeiten, oder vielleicht versteht er das eingebettete Farbprofil nicht. Sie könnten Ihr Bild beim Speichern total ruinieren.

6) Verwenden Sie viel Komprimierung. Sie speichern es für Ihre Website und komprimieren es. Bitte löschen Sie Ihre Originale nicht!

Nur auf dem bearbeiteten Teil des Bildes

7) Die Neukomprimierung wird normalerweise für das gesamte Bild durchgeführt, aber wie ich unter Punkt 3 erwähnt habe, ist es nicht viel davon, wenn sich das Bild nicht geändert hat. Wenn Sie ein Bild bearbeiten, muss diese Analyse für diesen bearbeiteten Teil erneut durchgeführt werden.

Denken Sie daran, dass eine Bearbeitung in drei Gruppen eingeteilt werden kann.

a) Farbkorrekturen, Kontrast etc.

b) Ändern eines Teils eines Bildes (rote Augen, Entfernen einer Person, Entfernen unerwünschter Flecken)

c) Eine völlig neue Collage.

In manchen Fällen ist das Bild also ein völlig anderes, zumindest aus Sicht der Analyse und Rekompression.

In diesem Beitrag: https://photo.stackexchange.com/a/67434/37321 erwähnte der Benutzer ein Programm, das eine sehr clevere Analyse der vorhandenen Komprimierung durchführt und sie nicht erneut komprimiert, wenn dies nicht erforderlich ist.

Ja, das tut es offensichtlich! Ich werde es einfach mit einem Beispielbild und einer JPEG-Qualität von 30 machen, um es schnell zu machen. (160 KB)Geben Sie hier die Bildbeschreibung ein

Erste Runde (10 Kb)Geben Sie hier die Bildbeschreibung ein

Zweite Runde (9Kb)Geben Sie hier die Bildbeschreibung ein

JPEG verringert also die Bildqualität nicht wesentlich, solange Sie die Größe nicht ändern oder die Qualitätsmetrik ändern. Das Bild wird sich weiterhin langsam verschlechtern, aber unbedeutend. Und jetzt entferne ich nur 4 Pixel aus dem Bild (eine Spalte von rechts). Und wieder speichern.Geben Sie hier die Bildbeschreibung ein

Deutliche Verschlechterung. Um das zu erklären, müssten wir tief in den JPEG-Algorithmus eintauchen. Wie auch immer, wenn Sie sich in dieser Situation befinden, denken Sie daran – es ist noch nicht vorbei. Es gibt einige großartige Software zur Entfernung von JPEG-Rauschen, zum Beispiel Neural Network Image Super-Resolution and Enhancement . Ich habe das letzte Bild (das schlechteste) in diesen Dienst hochgeladen und hier ist, was ich bekommen habe. Wirklich schönes Ergebnis.Geben Sie hier die Bildbeschreibung ein

Mit welcher Software öffnen und schließen Sie ? Sind Sie sicher, dass Ihre Software das Bild beim Schließen nicht speichert (und daher neu komprimiert)?
Nur einfaches Photoshop-Neuspeichern
Da die Frage nach mehreren verschiedenen Situationen fragt, ist diese Antwort verwirrend, ohne dies klar zu machen.