Компания 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-страниц. Особенно эффект от уменьшения размера передаваемых данных может быть заметен в мобильных сетях, выражаясь в том числе в экономии потребления энергии и сокращении оплаты за принятый трафик.

Источник: http://www.opennet.ru/opennews/art.shtml?num=36267