¿Por qué la gente usa imágenes JPG?


17

Veo imágenes JPG en todas partes. ¿Pero por qué?

Los archivos PNG tienen opacidad, mientras que los JPG no. Intenté exportar algunas imágenes a PNG y JPG para comparar el tamaño, y ambas coinciden o el PNG es más pequeño (dependiendo de la imagen, por supuesto).

ingrese la descripción de la imagen aquí

Esta es una imagen JPG de 512x512 que dice "JPG"

ingrese la descripción de la imagen aquí

Y esta es una imagen PNG de 512x512 que dice "PNG".

El JPG era de 31.7 kb y el PNG era de 25.9 kb

Entonces, ¿qué da?


3
Algo que también debe saber es que .png no tiene pérdidas, mientras que .jpg no. Por lo tanto, .png es más adecuado para imágenes de origen, mientras que .jpg es más adecuado para publicación.
Nadie

1
@ Nadie PNG puede ser con o sin pérdida. Dependiendo de cómo lo exporte.
DA01

8
Para su información, rara vez usaría JPG para el arte lineal, como los ejemplos que usa aquí. Entonces, basado únicamente en estos ejemplos, no usarías JPG. Sin embargo, si se tratara de fotos, te darás cuenta de que obtienes resultados completamente diferentes.
DA01

77
En serio, no puedo creer que esta pregunta haya sobrevivido más de 10 segundos.
vestidos de civil el

2
@ DA01 PNG nunca tiene pérdida, pero puede manipular con pérdida la imagen antes de exportarla a PNG para que sea más pequeña. La especificación PNG no sabe nada sobre esto.
Nadie

Respuestas:


35

Porque son mucho mejores para comprimir imágenes que tienen muchos colores y formas irregulares, como las fotografías.

¿Has probado el mismo epxeriment que hiciste, pero luego con una fotografía? El .png probablemente será notablemente más grande que cualquier .jpg, independientemente del factor de compresión del .jpg.

Ejemplo:

imagen png
imagen .png, 110k

JPEG a 100 calidad
.jpg al 100% de calidad, 63k

JPEG a 30 calidad
.jpg con 30% de calidad, un mísero 9k

Si observa detenidamente, verá algunos artefactos en el .jpg de calidad al 30%, pero eso se debe principalmente a que el borde duro de la bombilla contra el fondo verde liso no se presta demasiado bien al algoritmo de compresión. Puede reducir las imágenes regulares a incluso un 10 o 5% de calidad sin ninguna pérdida que notaría de un vistazo.


3
FWIW: Después de optimizar el PNG, tiene 34 KB sin ninguna pérdida reconocible.
Mario

Wow, nunca supe eso. Intenté convertir una fotografía que tomé a PNG y pasó de 550k a 2933k. ¿Sabes qué hace que ese sea el caso?
JediBurrell

10
La compresión PNG de @JediBurrell siempre es sin pérdidas (AFAIK), mientras que la compresión de JPG eventualmente eliminará la información de la imagen. En su caso, una imagen JPG ya comprimida, aunque atractiva, contendrá bordes alrededor de cada cubo (pequeños cuadrados comprimidos que forman una imagen JPG), y PNG recoge estos artefactos para que no se pierdan. Por lo tanto, su PNG es mucho más grande que su JPG original. Volver a comprimir un JPG usando JPG lo empeorará muchas veces: el efecto se llama "metabloqueo".
Jay Versluis

2
@JediBurrell Si está interesado en los detalles técnicos y matemáticos, puede ver este video de Computerphile.
Paul Manta

2
"el fondo verde suave no se presta demasiado bien al algoritmo de compresión": es lo contrario, los gradientes están muy bien representados por JPEG, mientras que los bordes duros no lo están, produciendo artefactos cercanos. Para los curiosos, lea sobre Fourier transformando una señal cuadrada.
Lloeki

13

JPEG cuenta con el respaldo de la industria fotográfica y es anterior a PNG en aproximadamente media docena de años, mientras que PNG fue diseñado como un reemplazo para GIF, que estaba bastante celosamente protegido por CompuServe. Las personas fueron demandadas por usar GIF en sus sitios web, por ejemplo, simplemente porque no usaron un programa con licencia de CompuServe para hacer esas imágenes.

Desde el principio, JPEG fue diseñado para recuperar algo de espacio al hacer que los archivos sean más pequeños, a expensas de la calidad perfecta de píxeles. Incluso establecer Q en 100 causará artefactos menores, en su mayoría invisibles: el daño ya está hecho, y cada vez que se modifique y guarde el archivo, se producirá más daño. Sin embargo, a menos que lo haga muchas veces, probablemente nunca notará el efecto a menos que lo busque.

PNG, por otro lado, es perfectamente sin pérdidas. Cada píxel se reproduce fielmente cada vez, sin importar cuántas veces se modifique y guarde el archivo. Sin embargo, existe un límite en cuanto a qué tan bien puede comprimir datos sin pérdida, aunque PNG emplea varios trucos para empaquetar tanta información en la menor cantidad de bytes de datos posible. Un JPEG de alta calidad probablemente tendrá aproximadamente el mismo tamaño que un PNG sin optimización o incluso más grande. A medida que PNG comienza a optimizar, por ejemplo, mediante el uso de filtros o ajustando los tamaños de las ventanas, el archivo se vuelve más pequeño sin pérdida, mientras que JPEG debe comenzar a descartar información visual para mantenerse al día.

Entonces, ¿por qué se usa JPEG? Después de todo, es generalmente inferior en términos de fidelidad y espacio de almacenamiento. La razón principal, por supuesto, es que es un estándar de la industria y tiene un soporte muy amplio. Prácticamente todas las cámaras del mundo usan RAW (literalmente, los datos sin procesar) o JPEG. Hay procesadores de datos de hardware integrados en esas cámaras para comprimir los datos JPEG lo más rápido posible, etc.

Encontrarás que esta es la misma razón por la que GIF está en todas partes todavía. La mayoría del software es compatible con GIF, mientras que PNG es menos compatible con el software anterior (por ejemplo, las versiones anteriores de Internet Explorer requerían un complemento para mostrar archivos PNG). A pesar de que tiene un mal soporte de color, admite animaciones, algo que PNG no hace (hay un formato de archivo relacionado, APNG, que nunca despegó del mismo modo que PNG). GIF sigue siendo el campeón de las imágenes animadas, ya que es el único formato de archivo que puede hacerlo con un amplio soporte.

El costo de cambiar de JPEG a PNG sería prohibitivo desde una perspectiva de hardware. Las cámaras necesitarían nuevos procesadores creados para soportar una rápida compresión PNG, por ejemplo, porque están codificadas para usar JPEG en este momento. Tus viejas cámaras no valdrían nada, porque tendrías que comprar una nueva con un chip PNG incorporado. Eso también significaría que tendría que convencer a un fabricante para que vaya en contra de los estándares de la industria y comenzar a fabricar tales dispositivos, lo que significa que tendría que haber suficiente demanda para justificarlo, y tales cámaras serían inicialmente más caras que las basadas en JPEG contrapartes Es muy difícil cambiar una industria.


PNG es potencialmente sin pérdidas. El software de guardado puede optar por perder datos difíciles para un mejor formato comprimible. La naturaleza vavelet de jpeg hace que sea imposible que no tenga pérdidas.
joojaa

@joojaa ¿Puede respaldar la afirmación de que la compresión PNG "puede elegir perder datos difíciles"?
CJ Dennis

@joojaa JPEG usa compresión DCT, no wavelet. Quizás
estés

77
Tengo entendido que la reducción de color ocurre antes de que la imagen pase al códec PNG. El hecho de que un formato sea capaz de almacenar datos ya con pérdida no lo hace con pérdida. Cambiar un RGB de 32 bits con imagen Alpha a una imagen en blanco y negro de 1 bit perderá muchos datos, pero no es PNG lo que está haciendo eso. La reducción de la profundidad de color es una conversión con pérdida, no una compresión con pérdida .
CJ Dennis

2
Mi error DCT es. Mi punto es que si bien PNG no tiene pérdidas, ¡no todos los optimizadores PNG lo son! Por lo tanto, sin saber lo que utilizó, no sabe si el proceso fue con pérdida o no. Entonces, la pregunta sobre la falta de brillo no es tan simple como se piensa. Al igual que ocurre con los cambios de profundidad de color antes de guardar, los optimizadores PNG pueden alterar las imágenes de otras formas antes de guardar, para una huella más pequeña. @JCDennis Estos trituradores existen solo vea sus páginas manuales.
joojaa

7

Algo que no se menciona con gran detalle es la forma en que funcionan estos algoritmos de compresión. JPEG está dirigido directamente a fotografías donde no se notan ligeros cambios en el color de los píxeles. PNG está más orientado a las imágenes fabricadas que contienen grandes áreas de un solo color donde se aprovecha al máximo la compresión, como en su ejemplo de una gran foto en blanco con letras en negro. Si tomas la misma foto y pones el fondo blanco para que se desvanezca de blanco a gris de manera uniforme en la imagen de lado a lado, el tamaño png aumentará drásticamente y probablemente jpg tenga pocos cambios. Codifiqué hace unos 10 años directamente con ambos formatos para descomprimir estos tipos de archivos en bmps. JPEG es muy sofisticado y complejo. PNG es muy simple y solo realmente efectivo en ciertas imágenes donde el color no cambia en líneas horizontales


1
¿Realmente has intentado esto? PNG no es simplemente una codificación de longitud de ejecución y es mucho más sofisticado de lo que sugiere. Utiliza un algoritmo adaptativo y comprimirá eficazmente áreas sólidas y patrones repetidos.
z7sg Ѫ
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.