30Aug
Se supone que el formato PNG es un formato sin pérdida, pero cuando guarda una imagen como un archivo PNG, se le pide que elija un nivel de compresión.¿Significa esto que el formato PNG no es sin pérdidas después de todo? La publicación SuperUser Q & A de hoy le ayuda a aclarar la confusión a un lector curioso.
Pregunta de hoy &La sesión de respuesta nos llega por cortesía de SuperUser, una subdivisión de Stack Exchange, una agrupación de sitios web Q & A dirigida por la comunidad.
La pregunta
SuperUser reader pkout desea saber si la calidad de una imagen PNG se ve afectada por el nivel de compresión elegido:
Según entiendo, los archivos PNG usan compresión sin pérdida. Sin embargo, cuando estoy usando un editor de imágenes como Gimp y trato de guardar una imagen como un archivo PNG, solicita un nivel de compresión que varíe entre 0 y 9.
Si tiene un parámetro de compresión que afecta la precisión visual del archivo comprimidoimagen, ¿cómo es PNG sin pérdidas entonces?¿Alguien puede explicarme esto?¿Obtengo un comportamiento sin pérdidas solo cuando configuro el nivel de compresión en 9?
¿Hay alguna diferencia en la calidad de la imagen dependiendo del nivel de compresión que elija?
La respuesta Los colaboradores de
SuperUser LordNeckbeard y jjlin tienen la respuesta para nosotros. Primero, LordNeckbeard:
PNG está comprimido, pero sin pérdida
El nivel de compresión es una compensación entre el tamaño del archivo y la velocidad de codificación / descodificación. Para generalizar demasiado, incluso formatos sin imágenes como FLAC tienen conceptos similares.
Niveles de compresión diferentes, con la misma salida decodificada
Aunque los tamaños de archivo son diferentes debido a los diferentes niveles de compresión, la salida decodificada real será idéntica. Puede comparar los valores hash MD5 de las salidas descodificadas con ffmpeg utilizando el muxer MD5.Esto se ve mejor con algunos ejemplos.
Crear archivos PNG
- Por defecto, ffmpeg usará -compression_level 100 para salida PNG.
- Una prueba rápida y descuidada mostró que 100( el nivel de compresión más alto) tomó aproximadamente tres veces más tiempo para codificar y cinco veces más para decodificar que 0( el nivel de compresión más bajo) en este ejemplo.
Comparación del tamaño de archivo
Decodificación de los archivos PNG y Mostrar los valores hash MD5
Dado que ambos hash son iguales, puede estar seguro de que las salidas descodificadas( los archivos brutos sin comprimir) son exactamente iguales.
Seguido de la respuesta de jjlin:
PNG no tiene pérdida. Es muy probable que GIMP no utilice la mejor opción de redacción en este caso.
Piense en ello como calidad de compresión o nivel de compresión .Con una compresión más baja, obtienes un archivo más grande, pero lleva menos tiempo para producirlo, mientras que con una compresión más alta, obtienes un archivo más pequeño que tarda más en producirse.
Normalmente obtiene rendimientos decrecientes, es decir, no tanto disminución de tamaño en comparación con el aumento en el tiempo que lleva subir a los niveles de compresión más altos, pero depende de usted.
¿Tiene algo que agregar a la explicación? Suena apagado en los comentarios.¿Desea leer más respuestas de otros usuarios de Stack Exchange expertos en tecnología? Mira el hilo de discusión completo aquí.