Zopfli

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
Zopfli
Скриншот программы Zopfli
Тип алгоритм сжатия[вд]
Авторы Лоде Вандевенне и Йюрки Алакуйяла
Разработчик Google
Написана на Си
Операционная система кроссплатформенность
Последняя версия
Репозиторий github.com/google/zopfli
Лицензия Apache License 2.0[2]
Сайт github.com/google… (англ.)
Логотип Викисклада Медиафайлы на Викискладе

Zopfli — программное обеспечение для сжатия данных, кодирующее данные в форматы DEFLATE, gzip и zlib. Оно сжимает данные с большим коэффициентом сжатия, чем другие реализации DEFLATE и zlib, но требует значительно больше времени для создания архива[3]. Программное обеспечение было выпущено компанией Google в феврале 2013 года в качестве свободной библиотеки под лицензией Apache версии 2.0[4]. Название Zöpfli является швейцарским диминутивом от слова zopf[англ.] — названия швейцарского хлеба[5].

Свойства и использование

[править | править код]

Zopfli может создавать как чистый поток данных DEFLATE, так и данные DEFLATE, помещённые в форматы gzip или zlib. По умолчанию программа сжимает в 15 итераций, однако может быть настроена на осуществление меньшего или большего числа итераций для соблюдения баланса между временем и коэффициентом сжатия.

При настройках по умолчанию результат работы Zopfli обычно на 3—8 % меньше, чем результат работы zlib с максимальным доступным коэффициентом сжатия, однако сжатие требует примерно в 80 раз больше времени[4][3]. Время распаковки архивов, созданных Zopfli и zlib, практически не различается[6].

В силу значительно более медленного сжатия zopfli менее пригоден для использования для сжатия на ходу и обычно используется для единовременного сжатия статичных данных[7][8]. Это, в частности, истинно для веб-содержимого, передающегося с помощью сжимаемого HTTP[англ.] на основе DEFLATE, и веб-содержимого в форматах, основанных на DEFLATE, таких как PNG или WOFF[9].

Технология

[править | править код]

Большая плотность информации достигается за счёт более полных техник сжатия. Метод основывается на итеративном моделировании энтропии и алгоритмах поиска кратчайшего пути для поиска пути минимальной битовой стоимости в графе всех возможных DEFLATE-представлений несжатых данных[10].

Zopfli основывается на алгоритме, созданном Йюрки Алакуйялой. Исследовательская реализация Zopfli была создана Йюрки Алакуйялой и Лоде Вандевенне, работниками Google. Первая публичная версия программы вышла в феврале 2013 года. Версия 1.0 была выпущена в апреле 2013 года[11].

Примечания

[править | править код]
  1. Release 1.0.3 — 2019.
  2. https://github.com/google/zopfli/blob/zopfli-1.0.1/COPYING
  3. 1 2 A Look At Zopfli, Google's Open Source Compression Algorithm | Lifehacker Australia. Lifehacker.com.au (3 марта 2013). Дата обращения: 29 сентября 2015. Архивировано 24 октября 2020 года.
  4. 1 2 Compress data more densely with Zopfli - Google Developers Blog. Googledevelopers.blogspot.com (28 февраля 2013). Дата обращения: 1 мая 2013. Архивировано 8 марта 2016 года.
  5. Alexander Neumann. Zopfli: Neue Kompressionsbibliothek von Google | heise Developer (нем.). Heise.de. Дата обращения: 29 сентября 2015.
  6. Alakuijala, Jyrki; Vandevenne, Lode Data compression using Zopfli. Дата обращения: 6 сентября 2015. Архивировано из оригинала 5 марта 2016 года.
  7. Dean Hume. Improved Compression Ratios Using Zopfli (1 июня 2015). Дата обращения: 6 сентября 2015. Архивировано 29 сентября 2017 года.
  8. Sharwood, Simon Google open sources very slow compression algorithm. The Register (2013). Дата обращения: 20 февраля 2019. Архивировано 20 февраля 2019 года.
  9. Ilya Grigorik. Google Fonts recently switched to using new Zopfli compression algorithm. Google+ (9 января 2014). Дата обращения: 6 июня 2015. Архивировано 9 января 2019 года.
  10. Zopfli: Google's new data compression algorithm | Digit.in. Thinkdigit.com (1 марта 2013). Дата обращения: 29 сентября 2015. Архивировано 8 июля 2013 года.
  11. Release Zopfli-1.0.0. Github.com (25 апреля 2013). Дата обращения: 6 сентября 2015. Архивировано 23 октября 2020 года.