.LZ вариант №
Файл с расширением .lz представляет собой сжатый архивный файл, созданный с помощью Lzip, бесплатного инструмента командной строки для сжатия. Он поддерживает конкатенацию для сжатия файлов поддержки. Файлы LZ имеют тип носителя application/lzip и поддерживают более высокие коэффициенты сжатия, чем BZ2. LZ основаны на алгоритме LZMA (цепочка Лемпеля-Зива-Маркова) и включают 32-битную контрольную сумму CRC и идентификационные байты для проверки целостности файла.
Сжатый формат LZMA
Сжатый формат LZMA состоит из сжатого потока битов, который кодируется с помощью адаптивного кодера двоичного диапазона. Поток делится на пакеты. Каждый пакет описывает либо один байт, либо последовательность LZ77. Длина и расстояние каждого пакета явно или неявно закодированы.
Вот семь типов пакетов (Википедия)
Упакованный код (битовая последовательность) | Имя пакета | Описание пакета |
---|---|---|
0 + байт-код | ЛИТ | Один байт, закодированный с помощью адаптивного кодера двоичного диапазона. |
1+0 + длина + расстояние | МАТЧ | Типичная последовательность LZ77, описывающая длину и расстояние последовательности. |
1+1+0+0 | КОРОТКИЙ | Однобайтовая последовательность LZ77. Расстояние равно последнему использованному расстоянию LZ77. |
1+1+0+1 + длина | LONGREP[0] | Последовательность LZ77. Расстояние равно последнему использованному расстоянию LZ77. |
1+1+1+0 + длина | ДЛИННЫЙ РЕП[1] | Последовательность LZ77. Расстояние равно предпоследнему использованному расстоянию LZ77. |
1+1+1+1+0 + длина | ДЛИННЫЙ РЕП[2] | Последовательность LZ77. Расстояние равно третьему последнему использованному расстоянию LZ77. |
1+1+1+1+1 + длина | ДЛИННЫЙ РЕП[3] | Последовательность LZ77. Расстояние равно четвертому последнему использованному расстоянию LZ77. |