¿Es el formato Lossless PNG ya que tiene un parámetro de compresión?

cómo-es-el-png-formato sin pérdidas-desde-que-tiene-un-compresión-parámetro-00
El formato PNG se supone que es un formato sin pérdida, pero al guardar una imagen como un archivo PNG, se le pedirá que elija un nivel de compresión. ¿Significa esto que el formato PNG es en realidad no sin pérdidas después de todo? De hoy superusuario Q & A de post ayuda a aclarar la confusión para el lector curioso.
Pregunta y respuesta La sesión de hoy nos llega por cortesía de superusuario, una subdivisión de Stack Exchange, un grupo impulsado por la comunidad de Q & A sitios web.

La Pregunta

Lector de superusuario pkout quiere saber si la calidad de imagen PNG se ve afectada por el nivel de compresión elegido:
Según tengo entendido, los archivos PNG utilizan la compresión sin pérdidas. Sin embargo, cuando estoy usando un editor de imágenes como Gimp e intento para guardar una imagen como un archivo PNG, se pide un nivel de compresión que oscila entre 0 y 9.
Si se tiene un parámetro de compresión que afecta a la precisión visual de la imagen comprimida, cómo es png sin pérdidas, entonces? Por favor alguien puede explicar esto a mí? ¿Me dan un comportamiento sin pérdidas sólo cuando me puse el nivel de compresión de 9?
¿Hay una diferencia en la calidad de la imagen en función del nivel de compresión que elija?

La Respuesta

Superusuario, las respuestas LordNeckbeard y jjlin tienen la respuesta para nosotros. En primer lugar, LordNeckbeard:
PNG es comprimido, pero sin pérdidas
El nivel de compresión es un equilibrio entre tamaño de archivo y velocidad de codificación / decodificación. Para generalizar excesivamente, incluso formatos sin imagen como FLAC tienen conceptos similares.
Los diferentes niveles de compresión, salida Decoded Mismo
Aunque los tamaños de archivo son diferentes debido a los diferentes niveles de compresión, la salida decodificada real será idéntico. Puede comparar los hashes MD5 de las salidas decodificadas con ffmpeg utilizando el muxer MD5 . Esto se muestra mejor con algunos ejemplos.
Crear archivos PNG
cómo-es-el-png-formato sin pérdidas-desde-que-tiene-un-compresión-parámetro-01
  • Por defecto, ffmpeg utilizará -compression_level 100 para la salida PNG.
  • Una prueba rápida, descuidado mostró que 100 (el nivel de compresión más alta) tomó aproximadamente tres veces más largos para codificar y cinco veces más tiempo para descifrar a 0 (el nivel de compresión más bajo) en este ejemplo.
Comparar Tamaño del archivo
cómo-es-el-png-formato sin pérdidas-desde-que-tiene-un-compresión-parámetro-02
Decodificar los archivos PNG y Mostrar hashes MD5
cómo-es-el-png-formato sin pérdidas-desde-que-tiene-un-compresión-parámetro-03
Dado que ambos hashes son iguales, usted puede estar seguro de que las salidas decodificadas (los archivos RAW sin comprimir) son exactamente los mismos.
Seguido por la respuesta de jjlin:
PNG es sin pérdidas. GIMP es muy probable que no usa la mejor opción de la fraseología en este caso.
Piense en ello como la calidad de la compresión o nivel de compresión . Con menor compresión, se obtiene un archivo más grande, pero se tarda menos tiempo para producir, mientras que con una mayor compresión, se obtiene un archivo más pequeño que lleva más tiempo para producir.
Normalmente se obtiene rendimientos decrecientes, es decir, no tanto disminución de tamaño en comparación con el aumento del tiempo que se necesita cuando se va hasta los más altos niveles de compresión, pero depende de usted.

Si tiene algo que añadir a la explicación? En off en los comentarios. ¿Quieres leer más respuestas de otros usuarios Stack Exchange conocedores de la tecnología? Echa un vistazo a el tema de discussion completo aquí .