Компания Google открыла реализацию нового алгоритма сжатия данных Zopfli. Представленная реализация системы сжатия совместима с библиотекой zlib, предоставляющей поддержку контейнеров gzip и deflate, и может выступать в качестве прозрачной замены zlib. Код написан на языке Си и распространяется под лицензией Apache 2.0. Представлен только код для обеспечения сжатия, распаковка может выполняться уже существующими реализациями zlib. Zopfli также совместим на уровне битового потока с методами gzip, Zip, PNG и системами сжатия запросов HTTP.
Алгоритм Zopfli примечателен более высокой степенью сжатия и позволяет сжимать данные в среднем на 3-8% эффективнее zlib, при этом распаковка может выполняться любыми приложениями, поддерживающими Deflate. Используемый в Zopfli метод достаточно ресурсоёмок и базируется на итерационном моделировании энтропии с использованием алгоритма поиска кратчайшего пути в графе для выбора наиболее оптимального представления сжатой последовательности из общего набора вариантов.
Обратной стороной повышения коэффициента сжатия без потери совместимости является значительное повышение трудоёмкости работы алгоритма, который сжимает примерно в 100 раз медленнее zlib. Скорость распаковки архивов, созданных с использованием алгоритма Zopfli идентична другим реализациям zlib.
В качестве области использования Zopfli называются ситуации, требующие однократного сжатия данных с последующей многократной отдачей результата по сети, например, при распространении сжатого статического контента в Web. Более высокая степень сжатия позволяет уменьшить требуемое для хранения дисковое пространство, ускорить передачу данных и уменьшить задержки при загрузке web-страниц. Особенно эффект от уменьшения размера передаваемых данных может быть заметен в мобильных сетях, выражаясь в том числе в экономии потребления энергии и сокращении оплаты за принятый трафик.
Алгоритм Zopfli примечателен более высокой степенью сжатия и позволяет сжимать данные в среднем на 3-8% эффективнее zlib, при этом распаковка может выполняться любыми приложениями, поддерживающими Deflate. Используемый в Zopfli метод достаточно ресурсоёмок и базируется на итерационном моделировании энтропии с использованием алгоритма поиска кратчайшего пути в графе для выбора наиболее оптимального представления сжатой последовательности из общего набора вариантов.
Обратной стороной повышения коэффициента сжатия без потери совместимости является значительное повышение трудоёмкости работы алгоритма, который сжимает примерно в 100 раз медленнее zlib. Скорость распаковки архивов, созданных с использованием алгоритма Zopfli идентична другим реализациям zlib.
В качестве области использования Zopfli называются ситуации, требующие однократного сжатия данных с последующей многократной отдачей результата по сети, например, при распространении сжатого статического контента в Web. Более высокая степень сжатия позволяет уменьшить требуемое для хранения дисковое пространство, ускорить передачу данных и уменьшить задержки при загрузке web-страниц. Особенно эффект от уменьшения размера передаваемых данных может быть заметен в мобильных сетях, выражаясь в том числе в экономии потребления энергии и сокращении оплаты за принятый трафик.