30Aug

Ist das PNG-Format verlustfrei, da es einen Komprimierungsparameter hat?

click fraud protection

Wie-ist-das-Png-Format-verlustfrei-seit-es-hat-eine-Kompression-Parameter-00

Das PNG-Format sollte ein verlustfreies Format sein, aber wenn Sie ein Bild als PNG-Datei speichern, werden Sie aufgefordert, eine Komprimierungsstufe auszuwählen. Bedeutet das, dass das PNG-Format überhaupt nicht verlustfrei ist? Die heutige SuperUser Q & A-Post hilft, die Verwirrung für einen neugierigen Leser zu klären.

Heutige Frage &Die Antwortsitzung kommt dank SuperUser, einer Unterteilung von Stack Exchange, einer Community-gesteuerten Gruppierung von Q & A-Websites, zu uns.

Die Frage

SuperUser-Leser pkout möchte wissen, ob die Qualität eines PNG-Bildes von der gewählten Komprimierungsstufe beeinflusst wird:

Wie ich es verstehe, verwenden PNG-Dateien verlustfreie Komprimierung. Wenn ich jedoch einen Bildbearbeitungsprogramm wie Gimp verwende und versuche, ein Bild als PNG-Datei zu speichern, fragt es nach einem Komprimierungsgrad zwischen 0 und 9.

Wenn es einen Komprimierungsparameter hat, der die visuelle Genauigkeit des Komprimierten beeinflusstBild, wie ist PNG dann verlustfrei? Kann mir bitte jemand das erklären? Bekomme ich verlustfreies Verhalten nur, wenn ich den Komprimierungsgrad auf 9 festlege?

instagram viewer

Gibt es einen Unterschied in der Qualität des Bildes, abhängig von der gewählten Komprimierungsstufe?

Die Antwort

SuperUser Mitarbeiter LordNeckbeard und jjlin haben die Antwort für uns. First up, Lord Neckbeard:

PNG ist komprimiert, aber verlustfrei

Der Komprimierungsgrad ist ein Kompromiss zwischen Dateigröße und Kodierungs- / Dekodierungsgeschwindigkeit. Um zu verallgemeinern, haben auch Nicht-Bildformate wie FLAC ähnliche Konzepte.

Unterschiedliche Komprimierungsstufen, gleiche dekodierte Ausgabe

Obwohl die Dateigrößen aufgrund der unterschiedlichen Komprimierungsstufen unterschiedlich sind, ist die tatsächliche dekodierte Ausgabe identisch. Sie können die MD5-Hashes der dekodierten Ausgaben mit ffmpeg mit dem MD5-Muxer vergleichen. Dies wird am besten anhand einiger Beispiele gezeigt.

Erstellen von PNG-Dateien

how-is-the-png-Format-verlustfrei-seit-es-hat-eine-Kompression-Parameter-01

  • Standardmäßig verwendet ffmpeg -compression_level 100 für die PNG-Ausgabe.
  • Ein schneller, schlampiger Test zeigte, dass 100( der höchste Komprimierungsgrad) in diesem Beispiel etwa dreimal länger zum Codieren und fünf Mal länger zum Decodieren als 0( der niedrigste Komprimierungsgrad) benötigte.

Dateigröße vergleichen

how-is-the-png-Format-verlustfrei-seit-es-hat-eine-Kompression-Parameter-02

PNG-Dateien entschlüsseln und MD5-Hashes anzeigen

how-is-the-png-Format-verlustfrei-seit-es-hat-eine-Kompression-Parameter-03

Da beide Hashwerte identisch sind, können Sie sicher sein, dass die dekodierten Ausgaben( die unkomprimierten Raw-Dateien) genau gleich sind.

Gefolgt von der Antwort von jjlin:

PNG ist verlustfrei. GIMP verwendet in diesem Fall höchstwahrscheinlich nicht die beste Wortwahl.

Betrachten Sie es als Qualität der Komprimierung oder Komprimierungsstufe .Mit geringerer Komprimierung erhalten Sie eine größere Datei, aber es dauert weniger Zeit zu produzieren, während Sie mit höherer Komprimierung eine kleinere Datei erhalten, die länger dauert.

Normalerweise erhalten Sie abnehmende Renditen, d. H. Nicht so viel an Größe im Vergleich zu der Zeit, die Sie benötigen, um die höchsten Komprimierungsstufen zu erreichen, aber es liegt an Ihnen.

Haben Sie etwas zur Erklärung hinzuzufügen? Ton in den Kommentaren ab. Möchten Sie mehr Antworten von anderen technisch versierten Stack Exchange Benutzern lesen? Sehen Sie sich den vollständigen Diskussionsfaden hier an.