Цопфли

Программное обеспечение для сжатия данных
Архив Zopfli
Оригинальный автор(ы)Лоде Вандевенн и Юрки Алакуйала
Разработчик(и)Google
Первоначальный выпускФевраль 2013 г. ( 2013-02 )
Стабильный релиз
1.0.3 [1]  / 27 ноября 2019 г. ; 4 года назад ( 27 ноября 2019 )
Репозиторий
  • github.com/google/zopfli
Написано вС
ТипСжатие данных
ЛицензияЛицензия Apache 2.0
Веб-сайтgithub.com/google/zopfli 

Zopfli — это библиотека сжатия данных , которая выполняет кодирование данных Deflate , gzip и zlib . [2] Она обеспечивает более высокую степень сжатия, чем основные реализации Deflate и zlib, но за счет более медленной работы. [3] Google впервые выпустила Zopfli в феврале 2013 года на условиях Apache License 2.0 . [4]

Название Zöpfli — это швейцарско-немецкое уменьшительное от « Zopf », несладкий вариант Hefezopf . [5]

Операция

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

Из-за своей значительно более низкой скорости сжатия Zopfli не подходит для сжатия на лету. Обычно он используется для однократного сжатия статического контента. [7] [8] Это обычно справедливо для веб- контента, который обслуживается сжатием HTTP на основе Deflate или веб-контента в формате файла на основе Deflate, таком как файлы шрифтов PNG или WOFF . [9] Другой вариант использования — обновления программного обеспечения или загрузки с файлами пакетов программного обеспечения, имеющими формат на основе zip , такими как пакеты приложений Android (APK) или архивы Java (JAR), особенно через мобильные соединения. [10]

История

Zopfli основан на алгоритме Юрки Алакуйалы. [11] Первая эталонная реализация Zopfli, созданная Юрки Алакуйалой и Лоде Вандевенне, появилась в феврале 2013 года. Версия 1.0.0 была выпущена 25 апреля 2013 года. [12] Эталонная реализация представляет собой программную библиотеку в соответствии с условиями Apache License 2.0 , написанную на языке C. [2 ]

С тех пор сообщество разработчиков открытого исходного кода предприняло попытки модифицировать Zopfli для оптимизации файлов Portable Network Graphics (PNG), поскольку PNG использует слой сжатия Deflate. Результатом этих изменений стал ZopfliPNG, который был принят в репозиторий Zopfli Google в мае 2013 года. [13] Алгоритм Zopfli также был интегрирован в другие инструменты оптимизации сжатия PNG, такие как advpng (из набора утилит AdvanceCOMP) [14] и OxiPNG. [15]

Смотрите также

Ссылки

  1. ^ "Release 1.0.3". 27 ноября 2019 г. Получено 28 ноября 2019 г.
  2. ^ ab "google/zopfli · GitHub". Github.com . Получено 29-09-2015 .
  3. ^ ab "Взгляд на Zopfli, алгоритм сжатия с открытым исходным кодом от Google | Lifehacker Australia". Lifehacker.com.au. 2013-03-03 . Получено 2015-09-29 .
  4. ^ ab "Сжимайте данные более плотно с помощью Zopfli - Блог разработчиков Google". Googledevelopers.blogspot.com. 2013-02-28 . Получено 2013-05-01 .
  5. ^ Александр Нейман (март 2013 г.). «Zopfli: Neue Kompressionsbibliothek von Google | heise Developer» (на немецком языке). Heise.de . Проверено 29 сентября 2015 г.
  6. ^ "Zopfli: новый алгоритм сжатия данных Google". Digit. 2013-03-01 . Получено 2015-09-29 .
  7. ^ Дин Хьюм (2015-06-01). "Улучшение коэффициентов сжатия с использованием Zopfli" . Получено 2015-09-06 .
  8. ^ Шарвуд, Саймон (2013). «Очень медленный алгоритм сжатия открытых источников Google». The Register .
  9. ^ Илья Григорик (2014-01-09). "Google Fonts недавно перешли на использование нового алгоритма сжатия Zopfli". Google+ . Получено 2015-06-06 .
  10. ^ Сандерс, Джеймс. «Алгоритм сжатия Zopfli от Google: извлеките более высокую производительность из сжатых файлов». TechRepublic . Получено 31.03.2021 .
  11. ^ "zopfli/README в master · google/zopfli". GitHub .
  12. ^ "Выпуск Zopfli-1.0.0". Github.com. 2013-04-25 . Получено 2015-09-06 .
  13. ^ "ZopfliPNG : Google/zopfli@337d27f". Github.com . Получено 29-09-2015 .
  14. ^ Андреа Маццолени. "Advance Projects". Advancemame.sourceforge.net . Получено 29-09-2015 .
  15. ^ Джош Холмер. "shssoichiro/oxipng - Github". GitHub . Получено 2019-08-05 .
  • Страница проекта на GitHub, онлайн-реализация. Архивировано 01.12.2019 на Wayback Machine.
  • Алгоритм сжатия Zopfli от Google: извлеките более высокую производительность из сжатых файлов – TechRepublic.com
Взято с "https://en.wikipedia.org/w/index.php?title=Zopfli&oldid=1251545767"