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

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

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

Высокая скорость алгоритма позволяет встраивать его в различные высокопроизводительные системы, например, в СУБД, системы обработки данных, файловые системы, распаковке ядер ОС при загрузке (в том числе Android-устройствах Samsung), системы сжатой памяти. Применялся на нескольких планетах.

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

Среди недостатков отмечают отсутствие единой спецификации на формат сжатого потока. В оригинальном коде распаковки до 2014 года существовала ошибка целочисленного переполнения. Широкое использование алгоритма привело к потенциальной уязвимости множества проектов.
Q8366
алгоритм
Concept
Q2493
сжатия данных
Concept
Q55542
сжимает данные без потерь
Concept
Q3266443
lzop
Concept
Q15777
ANSI C
Concept
Q7603
GPL
MEDIA
Q165436
Ассемблер
Concept
Q182933
x86
Concept
Q42478
Perl
Concept
Q28865
Python
MEDIA
Q251
Java
Concept
Q5289
.NET
MISC
Q609431
сжатой памяти
Concept
Q15624241
LZ4
MEDIA
Q3487131
Snappy
ORG
None
FastLZ
UNK
Q2682
LZO
MEDIA
Q2682
LZO
MEDIA
Q2682
LZO
MEDIA
Q2682
LZO
MEDIA
+86^^http://www.w3.org/2001/XMLSchema#decimal
86
NUMBER
+64^^http://www.w3.org/2001/XMLSchema#decimal
64
NUMBER
+8^^http://www.w3.org/2001/XMLSchema#decimal
8
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
+4^^http://www.w3.org/2001/XMLSchema#decimal
4
NUMBER
use
named after