Pourquoi les gens utilisent-ils des images JPG?

17

Je vois des images JPG partout. Mais pourquoi?

Les fichiers PNG ont l'opacité, contrairement aux JPG. J'ai essayé d'exporter certaines images au format PNG et JPG pour comparer la taille, et elles correspondent toutes les deux ou le PNG est plus petit (en fonction de l'image bien sûr).

entrez la description de l'image ici

Ceci est une image JPG 512x512 qui dit "JPG"

entrez la description de l'image ici

Et ceci est une image PNG 512x512 qui dit "PNG".

Le JPG était de 31,7 Ko et le PNG de 25,9 Ko

Alors qu'est-ce qui donne?

JediBurrell
la source
3
Vous devez également savoir que .png est sans perte, tandis que .jpg ne l'est pas. Donc .png sont plus adaptés aux images sources, tandis que .jpg est plus adapté à la publication.
Personne
1
@Personne PNG ne peut être avec ou sans perte. Selon la façon dont vous l'exportez.
DA01
8
Pour info, vous utiliseriez rarement JPG pour les dessins au trait, comme les exemples que vous utilisez ici. Donc, basé uniquement sur ces exemples, vous n'utiliseriez pas JPG. S'il s'agissait de photos, vous vous rendrez compte que vous obtenez des résultats entièrement différents.
DA01
7
Je ne peux vraiment pas croire que cette question ait survécu plus de 10 secondes.
civil du
2
@ DA01 PNG n'est jamais avec perte, mais vous pouvez manipuler l'image avec perte avant de l'exporter en PNG pour la réduire. La spécification PNG n'en sait rien.
Personne

Réponses:

35

Parce qu'ils sont bien meilleurs pour compresser des images qui ont beaucoup de couleurs et de formes irrégulières, comme les photographies.

Avez-vous essayé la même expérience que vous, mais avec une photo? Le .png va probablement être sensiblement plus grand que n'importe quel .jpg, quel que soit le facteur de compression du .jpg.

Exemple:

image png
Image .png, 110k

jpeg à 100 qualité
.jpg à 100% qualité, 63k

jpeg à 30 qualité
.jpg à 30% de qualité, un maigre 9k

Si vous regardez de plus près, vous verrez des artefacts sur le .jpg de qualité à 30%, mais c'est principalement parce que le bord dur de l'ampoule sur le fond vert lisse ne se prête pas trop bien à l'algorithme de compression. Vous pouvez avoir des images régulières réduites à une qualité égale à 10 ou 5% sans aucune perte que vous remarqueriez en un coup d'œil.

Vincent
la source
3
FWIW: Après avoir optimisé le PNG, il a 34 Ko sans aucune perte reconnaissable.
Mario
Wow, je ne l'ai jamais su. J'ai essayé de convertir une photo que j'ai prise en PNG et elle est passée de 550k à 2933k. Savez-vous ce qui en fait le cas?
JediBurrell
10
La compression PNG @JediBurrell est toujours sans perte (AFAIK), tandis que la compression JPG finira par supprimer les informations sur l'image. Dans votre cas, une image déjà compressée JPG bien que belle contiendra des bords autour de chaque compartiment (petits carrés compressés qui composent une image JPG), et PNG récupère ces artefacts afin qu'ils ne soient pas perdus. Par conséquent, votre PNG est beaucoup plus grand que votre JPG d'origine. La recompression d'un JPG à l'aide de JPG aggravera cela plusieurs fois - l'effet est appelé "méta-blocage".
Jay Versluis
2
@JediBurrell Si vous êtes intéressé par les détails techniques et mathématiques, vous pouvez regarder cette vidéo par Computerphile.
Paul Manta
2
"le fond vert lisse ne se prête pas trop bien à l'algorithme de compression": c'est le contraire, les dégradés sont très bien représentés par JPEG, alors que les bords durs ne le sont pas, produisant des artefacts à proximité. Pour les curieux, lisez comment Fourier transforme un signal carré.
Lloeki
13

JPEG bénéficie du soutien de l'industrie photographique et est antérieur à PNG d'une demi-douzaine d'années environ, tandis que PNG a été conçu en remplacement de GIF, qui était plutôt protégé avec zèle par CompuServe. Les gens ont été poursuivis en justice pour avoir utilisé des GIF sur leurs sites Web, par exemple, simplement parce qu'ils n'avaient pas utilisé un programme autorisé par CompuServe pour créer ces images.

Dès le début, JPEG a été conçu pour récupérer de l'espace en réduisant la taille des fichiers, au détriment de la qualité parfaite des pixels. Même le réglage de Q à 100 entraînera des artefacts mineurs, principalement invisibles - les dommages sont causés, et chaque fois que le fichier est modifié et enregistré, d'autres dommages se produisent. Cependant, à moins que vous ne le fassiez autant de fois, vous ne remarquerez probablement jamais l'effet à moins que vous ne le cherchiez.

PNG, d'autre part, est parfaitement sans perte. Chaque pixel est fidèlement reproduit à chaque fois, quel que soit le nombre de fois que le fichier est modifié et enregistré. Cependant, il est possible de compresser les données sans perte, bien que PNG utilise plusieurs astuces pour regrouper autant d'informations dans le moins d'octets de données possible. Un JPEG de haute qualité sera probablement de la même taille qu'un PNG sans optimisation ou encore plus grand. Alors que PNG commence à optimiser, par exemple, en utilisant des filtres ou en ajustant la taille des fenêtres, le fichier devient plus petit sans perte, tandis que JPEG doit commencer à éliminer les informations visuelles pour suivre.

Alors, pourquoi JPEG est-il utilisé? Il est, après tout, généralement inférieur en termes de fidélité et d'espace de stockage. La raison principale, bien sûr, est qu'il s'agit d'une norme de l'industrie et bénéficie d'un très large soutien. Presque toutes les caméras du monde utilisent RAW (littéralement, les données brutes) ou JPEG. Des processeurs de données matériels sont intégrés à ces caméras pour compresser les données JPEG aussi rapidement que possible, etc.

Vous constaterez que c'est la même raison pour laquelle le GIF est toujours présent. La plupart des logiciels prennent en charge GIF, tandis que PNG bénéficie d'une prise en charge moindre dans les anciens logiciels (par exemple, les anciennes versions d'Internet Explorer nécessitaient un plugin pour afficher les fichiers PNG). Même s'il prend en charge les couleurs moche, il prend en charge les animations, ce que PNG ne fait pas (il existe un format de fichier connexe, APNG, qui n'a jamais vraiment décollé de la façon dont PNG l'a fait). GIF reste toujours le champion des images animées, car c'est le seul format de fichier qui peut le faire avec un support étendu.

Le coût pour passer du JPEG au PNG serait prohibitif d'un point de vue matériel. Les caméras auraient besoin de nouveaux processeurs conçus pour prendre en charge la compression PNG rapide, par exemple, car ils sont codés en dur pour utiliser JPEG en ce moment. Vos anciens appareils photo ne serviraient à rien, car vous devriez en acheter un nouveau avec une puce PNG intégrée. Cela signifierait également que vous devriez convaincre un fabricant d'aller à l'encontre des normes de l'industrie et de commencer à fabriquer de tels appareils, ce qui signifie qu'il devrait y avoir une demande suffisante pour le justifier, et ces caméras seraient initialement plus chères que leurs appareils JPEG. homologues. Il est très difficile de changer une industrie.

phyrfox
la source
PNG est potentiellement sans perte. Le logiciel de sauvegarde peut choisir de perdre des données difficiles pour un meilleur format compressible. La nature vavelet de jpeg le rend impossible sans perte.
joojaa
@joojaa Pouvez-vous confirmer que la compression PNG "peut choisir de perdre des données difficiles"?
CJ Dennis
@joojaa JPEG utilise la compression DCT, pas les ondelettes. Vous pensez peut-être à JPEG 2000.
bcrist
7
Je crois comprendre que la réduction des couleurs se produit avant que l'image ne soit transmise au codec PNG. Ce n'est pas parce qu'un format est capable de stocker des données déjà perdues qu'il le fait. Changer un RVB 32 bits avec une image Alpha en une image noir et blanc 1 bit perdra beaucoup de données, mais ce n'est pas PNG qui le fait. La réduction de la profondeur de couleur est une conversion avec perte, pas une compression avec perte .
CJ Dennis
2
Mon erreur DCT c'est. Ce que je veux dire, c'est que même si PNG est sans perte, tous les optimiseurs PNG ne le sont pas! Ainsi, sans savoir ce que vous avez utilisé, vous ne savez pas si le processus a subi des pertes ou non. La question de la non-perte n'est donc pas aussi simple qu'on le pense. Tout comme les changements de profondeur de couleur se produisent avant l'enregistrement, les optimiseurs PNG peuvent modifier les images d'une autre manière avant l'enregistrement, pour une empreinte plus petite. @JCDennis Ces crunchers existent il suffit de voir leurs pages de manuel.
joojaa
7

Quelque chose qui n'est pas mentionné en détail est le fonctionnement de ces algorithmes de compression. JPEG est destiné directement aux photographies où de légères modifications de la couleur des pixels ne sont pas remarquées. PNG est plus ciblé pour les images fabriquées qui contiennent de grandes zones d'une seule couleur où la compression est pleinement exploitée comme dans votre exemple d'une énorme photo tout blanc avec des lettres noires simples. Si vous avez pris la même photo et que le fond blanc s'estompe du blanc au gris uniformément sur l'image côte à côte, la taille png augmenterait considérablement et jpg aurait probablement peu de changement. J'ai fait du codage il y a environ 10 ans directement avec ces deux formats pour décompresser ces types de fichiers en bmps. JPEG est très sophistiqué et complexe. Le PNG est très simple et n'est vraiment efficace que sur certaines images où la couleur ne change pas sur les lignes horizontales

Ryan
la source
1
Avez-vous vraiment essayé cela? PNG n'est pas simplement un encodage de longueur et est beaucoup plus sophistiqué que vous ne le suggérez. Il utilise un algorithme adaptatif et compressera efficacement les zones solides et les motifs répétés.
z7sg