Zopfli - Zopfli
Autor (es) original (es) | Lode Vandevenne y Jyrki Alakuijala |
---|---|
Versión inicial | febrero de 2013 |
Lanzamiento estable | 1.0.3 / 27 de noviembre de 2019
|
Repositorio | |
Escrito en | C |
Sistema operativo | Multiplataforma |
Escribe | Archivo de archivos , compresión de datos |
Licencia | Licencia Apache 2.0 |
Sitio web |
github |
Zopfli es un software de compresión de datos que codifica datos en formatos DEFLATE , gzip y zlib . Alcanza una compresión más alta que otras implementaciones DEFLATE / zlib, pero lleva mucho más tiempo realizar la compresión. Fue lanzado por primera vez en febrero de 2013 por Google como una biblioteca de programación de software libre bajo la licencia Apache, versión 2.0 . El nombre Zöpfli es el diminutivo suizo alemán de " Zopf ", un tipo de Hefezopf sin azúcar .
Propiedades y caso de uso
Zopfli puede generar un flujo de datos DEFLATE sin procesar o datos DEFLATE encapsulados en formatos gzip o zlib. Se puede configurar para hacer más o menos iteraciones que las 15 predeterminadas para intercambiar el tiempo de procesamiento por la eficiencia de la compresión.
Con la configuración predeterminada, la salida de Zopfli suele ser un 3–8% más pequeña que la compresión máxima de zlib, pero tarda unas 80 veces más. La velocidad de descompresión de la salida de Zopfli frente a la salida de zlib prácticamente no se ve afectada.
Debido a su velocidad de compresión significativamente más lenta, zopfli es menos adecuado para la compresión sobre la marcha y generalmente se usa para la compresión única de contenido estático. Esto suele ser cierto para el contenido web que se sirve con compresión HTTP basada en DEFLATE o contenido web en un formato de archivo basado en DEFLATE, como archivos de fuentes PNG o WOFF . Otro caso de uso son las actualizaciones o descargas de software con archivos de paquetes de software que tienen un formato zip , como los paquetes de aplicaciones de Android (APK) o Java Archives (JAR), especialmente a través de conexiones móviles.
Tecnología
La mayor densidad de datos se logra mediante el uso de técnicas de compresión más exhaustivas. El método se basa en el modelado de entropía iterativa y un algoritmo de búsqueda de ruta más corta para encontrar una ruta de bajo costo de bits a través del gráfico de todas las posibles representaciones DEFLATE de los datos sin comprimir.
Implementaciones
Una implementación de referencia de Google fue lanzado en forma de una biblioteca de programación escrito en C . Está disponible como software gratuito según los términos de la versión 2.0 de la licencia Apache .
Zopfli también se puede utilizar desde otros lenguajes de programación, mediante reimplementaciones o envoltorios nativos .
Nombre | Lenguaje de implementación | Tipo de implementación |
---|---|---|
CompressSharper | C# | Nativo |
php_zopfli | PHP | Envoltura |
Zopfli en Rust | Oxido | Nativo |
Historia
Zopfli se basa en un algoritmo de Jyrki Alakuijala. Los empleados de Google Jyrki Alakuijala y Lode Vandevenne escribieron una implementación de referencia de zopfli. Se lanzó por primera vez al público en febrero de 2013. La versión 1.0.0 se lanzó el 25 de abril de 2013. Después de que aparecieran varias adaptaciones de Zopfli para la compresión PNG en GitHub , ZopfliPNG se comprometió con la implementación de referencia zopfli de Google en mayo de 2013.
Optimización PNG
El algoritmo de Zopfli se puede utilizar para comprimir archivos PNG ( Portable Network Graphics ) porque PNG utiliza una capa de compresión DEFLATE. Existe una herramienta de optimización PNG llamada ZopfliPNG de los autores de Zopfli. El algoritmo Zopfli también se ha integrado en otras herramientas de optimización de compresión PNG como advpng del paquete de utilidades AdvanceCOMP y OxiPNG .