Le format PNG est-il sans perte puisqu'il comporte un paramètre de compression?

Table des matières:

Le format PNG est-il sans perte puisqu'il comporte un paramètre de compression?
Le format PNG est-il sans perte puisqu'il comporte un paramètre de compression?

Vidéo: Le format PNG est-il sans perte puisqu'il comporte un paramètre de compression?

Vidéo: Le format PNG est-il sans perte puisqu'il comporte un paramètre de compression?
Vidéo: Comment afficher les fichiers et dossiers cachés sous Mac OS X - YouTube 2024, Avril
Anonim
Le format PNG est supposé être un format sans perte, mais lorsque vous enregistrez une image au format PNG, vous êtes invité à choisir un niveau de compression. Cela signifie-t-il que le format PNG n'est en réalité pas sans perte? Le billet de questions-réponses du SuperUser d’aujourd’hui aide à dissiper la confusion qui règne pour un lecteur curieux.
Le format PNG est supposé être un format sans perte, mais lorsque vous enregistrez une image au format PNG, vous êtes invité à choisir un niveau de compression. Cela signifie-t-il que le format PNG n'est en réalité pas sans perte? Le billet de questions-réponses du SuperUser d’aujourd’hui aide à dissiper la confusion qui règne pour un lecteur curieux.

La séance de questions et réponses d’aujourd’hui nous est offerte par SuperUser, une sous-division de Stack Exchange, un groupe de sites Web de questions-réponses dirigé par la communauté.

La question

SuperUser Reader pkout veut savoir si la qualité d'une image PNG est affectée par le niveau de compression choisi:

As I understand it, PNG files use lossless compression. However, when I am using an image editor such as Gimp and try to save an image as a PNG file, it asks for a compression level ranging between 0 and 9.

If it has a compression parameter that affects the visual precision of the compressed image, how is PNG lossless then? Can someone please explain this to me? Do I get lossless behavior only when I set the compression level to 9?

Existe-t-il une différence dans la qualité de l'image en fonction du niveau de compression choisi?

La réponse

LordNeckbeard et jjlin, contributeurs au superutilisateur, ont la réponse pour nous. LordNeckbeard:

PNG is Compressed, but Lossless

The compression level is a trade-off between file size and encoding/decoding speed. To overly generalize, even non-image formats such as FLAC have similar concepts.

Different Compression Levels, Same Decoded Output

Although the file sizes are different due the the different compression levels, the actual decoded output will be identical. You can compare the MD5 hashes of the decoded outputs with ffmpeg using the MD5 muxer. This is best shown with some examples.

Create PNG Files

Image
Image
  • By default, ffmpeg will use -compression_level 100 for PNG output.
  • A quick, sloppy test showed that 100 (the highest compression level) took roughly three times longer to encode and five times longer to decode than 0 (the lowest compression level) in this example.

Compare File Size

Image
Image

Decode the PNG Files and Show MD5 Hashes

Since both hashes are the same, you can be assured that the decoded outputs (the uncompressed raw files) are exactly the same.
Since both hashes are the same, you can be assured that the decoded outputs (the uncompressed raw files) are exactly the same.

Suivi de la réponse de jjlin:

PNG is lossless. GIMP is most likely not using the best choice of wording in this case.

Think of it as quality of compression or level of compression. With lower compression, you get a bigger file, but it takes less time to produce, whereas with higher compression, you get a smaller file that takes longer to produce.

Typically you get diminishing returns, i.e. not as much decrease in size compared to the increase in time it takes when going up to the highest compression levels, but it is up to you.

Avez-vous quelque chose à ajouter à l'explication? Sound off dans les commentaires. Voulez-vous lire plus de réponses d'autres utilisateurs de Stack Exchange doués en technologie? Découvrez le fil de discussion complet ici.

Conseillé: