WikiDer > Лемпель – Зив – Оберхумер

Lempel–Ziv–Oberhumer
LZO
Разработчики)Маркус F.X.J. Оберхумер
изначальный выпуск20 мая 1996 г.; 24 года назад (1996-05-20)
Стабильный выпуск
2.10 / 1 марта 2017 г.; 3 года назад (2017-03-01)
Операционная системаКроссплатформенность
ТипСжатие данных
ЛицензияGPLv2 или коммерческий
Интернет сайтwww.oberhumer.com/Открытый исходный код/ lzo/

Лемпель – Зив – Оберхумер (LZO) это без потерь Сжатие данных алгоритм который ориентирован на скорость декомпрессии.[1]

Дизайн

Первоначальная реализация «lzop», выпущенная в 1996 году, была разработана Маркусом Францем Ксавером Йоханнесом Оберхумером на основе более ранних алгоритмов Авраам Лемпель и Джейкоб Зив. В библиотеке LZO реализован ряд алгоритмов со следующими характеристиками:[1]

  • более высокая скорость сжатия по сравнению с ВЫПУСКАТЬ сжатие
  • очень быстрая декомпрессия
  • требует дополнительного буфера во время сжатия (размером 8 или 64 КБ, в зависимости от уровня сжатия)
  • не требует дополнительной памяти для декомпрессии, кроме исходного и целевого буферов
  • позволяет пользователю регулировать баланс между степенью сжатия и скоростью сжатия, не влияя на скорость декомпрессии

LZO поддерживает перекрывающееся сжатие и декомпрессию на месте. Как алгоритм сжатия блоков, он сжимает и распаковывает блоки данных. Размер блока должен быть одинаковым для сжатия и распаковки. LZO сжимает блок данных в совпадения (скользящий словарь) и бежит несовпадающих литералов для получения хороших результатов с сильно избыточными данными и приемлемо работает с несжимаемыми данными, только расширяя несжимаемые данные максимум на 1/64 от исходного размера при измерении по размеру блока не менее 1 кБ.

Реализации

Эталонная реализация написана на ANSI C, и он был доступен как бесплатно программное обеспечение под Стандартная общественная лицензия GNU. В Авторские права код принадлежит Маркусу Ф. Х. Дж. Оберхумеру. Первоначально он был опубликован в 1996 году. Оберхумер также написал интерфейс командной строки под названием Изоп.

Версии LZO доступны для Perl, Python и Ява языков. Сообщается, что различные реализации LZO работают под Win32, AIX, ConvexOS, IRIX, Mac OS, Palm OS, Игровая приставка, Nintendo 64, Wii, Солярис, SunOS, TOS (Atari ST), Linux и VxWorks.

Ядро Linux использует реализацию LZO в некоторых функциях:

Рекомендации

  1. ^ а б «Библиотека сжатия данных в реальном времени LZO».

внешняя ссылка