LZJB

Эта статья находится на начальном уровне проработки, в одной из её версий выборочно используется текст из источника, распространяемого под свободной лицензией
Материал из энциклопедии Руниверсалис

LZJB — алгоритм сжатия данных без потерь, изобретённый Джефом Бонвиком[англ.] в 1998 году для сжатия аварийных дампов программ и данных в файловой системе ZFS. Основан на методе сжатия с использованием словаря[1]. Этот алгоритм включает множество исправлений к алгоритму LZRW1, который в свою очередь является вариантом LZRW[англ.], являющимся членом семейства алгоритмов сжатия Lempel-Ziv. Этот алгоритм нацелен на увеличение скорости сжатия[2][3].

В 2012—2013 годах в ZFS рассматривалась замена LZJB на байт-ориентированный LZ4, как более быстрый метод с немного лучшим сжатием[4][3].

Сжатый поток в LZJB является байтовым. Для разметки потока используется управляющий байт, описывающий типы следующих 8 последовательностей. Каждый бит управляющего байта определяет тип одного элемента[5]. Бит со значением 0 соответствует литеральному байту: один байт сжатого потока копируется в выходной поток. Бит со значением 1 означает ссылку в словарь («совпадение»). Два следующих за ним байта содержат 6-битное поле длины и 10-битное поле смещения (LLLLLLdd dddddddd). Биты длины декодируются в длину от 3 до 66 байтов (длина равна L+3), затем из выходного буфера выбирается строка, отстоящая на «смещение» (d) байтов назад от текущей позиции.

Примечания

  1. M. A. Basir, M. H. Yousaf. Transparent Compression Scheme for Linux File System (англ.) // The Nucleus. — 2012. — Vol. 49, no. 2. — P. 133. Архивировано 12 февраля 2017 года.
  2. Y. Rathore, M. Ahirwar, R. Pandey. A Brief Study of Data Compression Algorithms (англ.) // Journal of Computer Science IJCSIS. — 2013. — October (vol. 11, no. 10). — P. 90. Архивировано 14 декабря 2018 года.
  3. 3,0 3,1 Архивированная копия. Дата обращения: 17 октября 2018. Архивировано 17 октября 2018 года.
  4. LZ4 Compression - illumos - illumos wiki (недоступная ссылка). Дата обращения: 17 октября 2018. Архивировано 9 октября 2018 года.
  5. LZJB decoder Архивная копия от 17 октября 2018 на Wayback Machine / Wikibooks

Ссылки