LZO: различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][отпатрулированная версия]
Содержимое удалено Содержимое добавлено
м оформление
Спасение 1 источников и отметка 0 мёртвыми. #IABot (v1.5.1)
Строка 44: Строка 44:


== Ссылки ==
== Ссылки ==
* [http://www.oberhumer.com/opensource/lzo/ Официальная страница алгоритма LZO]{{ref-en}}
* [https://web.archive.org/web/20120625020414/http://www.lzop.de/ Официальная страница алгоритма LZO]{{ref-en}}
* [https://www.lzop.org/ Сайт утилиты lzop], 2010{{ref-en}}
* [https://www.lzop.org/ Сайт утилиты lzop], 2010{{ref-en}}
** [https://www.lzop.org/lzop_man.php Документация lzop], 1996—2010{{ref-en}}
** [https://www.lzop.org/lzop_man.php Документация lzop], 1996—2010{{ref-en}}

Версия от 09:46, 8 сентября 2017

LZO
Тип алгоритм сжатия[вд]
Автор Маркус Оберхеймер (Markus Oberhumer)
Операционная система многоплатформенная
Языки интерфейса англ.
Первый выпуск 1997
Последняя версия 1.03 (2010)
Лицензия GPLv2
Сайт oberhumer.com/opensource…

LZO (аббр. от Lempel-Ziv-Oberhumer — Лемпель-Зив-Оберхеймер) — алгоритм сжатия данных, разработанный для достижения максимальной скорости распаковки в середине 1990-х годов. Алгоритм сжимает данные без потерь и его базовая реализация поддерживает многопоточное исполнение.

Свободной программой, реализующей LZO, является lzop. Исходная библиотека была написана на ANSI C и доступна под лицензией GPL. Также существуют реализации LZO на языках Ассемблер (x86), Perl, Python, Java и .NET. Код написан Маркусом Оберхеймером (Markus F. X. J. Oberhumer)

LZO-библиотека реализует несколько алгоритмов, со следующими особенностями:

  • Распаковка простая и очень быстрая.
  • Для декомпрессии не требуется дополнительной памяти помимо буферов для сжатых и распаковываемых данных.
  • Сжатие также очень быстрое.
  • При сжатии требуется 64 КБ памяти
  • Можно достичь дополнительного сжатия, потратив несколько больше времени при сжатии. При этом скорость декомпрессии не уменьшается.
  • Существует несколько уровней сжатия (с разными требования по скорости).
  • В частности реализован вариант алгоритма, которому требуется всего 8 кб памяти для сжатия.
  • Алгоритм безопасно применять в многопоточной среде.
  • Алгоритм сжимает и распаковывает данные без потерь

Высокая скорость алгоритма позволяет встраивать его в различные высокопроизводительные системы, например, в СУБД[1], системы обработки данных[2][3], файловые системы[4][5], распаковке ядер ОС при загрузке[6] (в том числе Android-устройствах Samsung), системы сжатой памяти[7][8]. Применялся на нескольких планетах[9].

Алгоритм является одним из самых быстрых по скорости распаковки, наряду с созданным на его основе методом LZ4 (LZ4 HC), а также рядом других алгоритмов сжатия: Snappy?!, FastLZ, LZF[6].

Среди недостатков отмечают отсутствие единой спецификации на формат сжатого потока[10]. В оригинальном коде распаковки до 2014 года существовала ошибка целочисленного переполнения. Широкое использование алгоритма привело к потенциальной уязвимости множества проектов[11][12][13].

См. также

Примечания

Ссылки