LZO
LZO это алгоритм сжатия данных, разработанный для достижения максимальной скорости распаковки. LZO — это аббревиатура от фамилий разработчиков: Lempel-Ziv-Oberhumer (Лемпель-Зив-Оберхеймер). Это алгоритм сжатия без потерь и его базовая реализация может работать в многопоточной среде.
Свободной программой, реализующей LZO, является lzop. Исходная библиотека была написана на ANSI C и доступна под лицензией GPL. Также существуют реализации LZO на языках Ассемблер (x86), Perl, Python, Java и .NET. Код написан Маркусом Оберхеймером (Markus F. X. J. Oberhumer)
LZO-библиотека реализует несколько алгоритмов, со следующими особенностями:
- Распаковка простая и очень быстрая.
- Для декомпрессии не требуется дополнительной памяти помимо буферов для сжатых и распаковываемых данных.
- Сжатие также очень быстрое.
- На сжатие требуется 64 кб памяти
- Можно достичь дополнительного сжатия, потратив несколько больше времени при сжатии. При этом скорость декомпрессии не уменьшается.
- Существует несколько уровней сжатия (с разными требования по скорости).
- В частности реализован вариант алгоритма, которому требуется всего 8 кб памяти для сжатия.
- Алгоритм безопасно применять в многопоточной среде.
- Алгоритм сжимает без потерь