.LZMA вариант №
Файл с расширением .lzma представляет собой сжатый архивный файл, созданный с использованием метода сжатия LZMA (цепной алгоритм Лемпеля-Зива-Маркова). Они в основном встречаются/используются в операционной системе Unix и аналогичны другим алгоритмам сжатия, таким как ZIP для минимизации размера файла. LZMA — это устаревший формат файла, который заменяется или был заменен форматом .xz. Тип MIME формата .lzma — «application/x-lzma». Этот формат файла был разработан Игорем Павловым для использования в LZMA SDK.
Формат файла LZMA
Файл LZMA состоит из двух основных частей:
- Заголовок
- Сжатые данные
Заголовок LZMA
Файлы LZMA имеют 13-байтовый заголовок, за которым следуют сжатые данные LZMA. Заголовок LZMA состоит из:
- Характеристики
- Размер словаря
- Размер без сжатия
Свойства заголовка LZMA
Поле «Свойства» содержит три свойства. В скобках указывается аббревиатура, за которой следует диапазон значений свойства. Поле состоит из
- количество литеральных битов контекста (lc, [0, 8]);
- количество битов буквальной позиции (lp, [0, 4]); а также
- количество позиционных битов (pb, [0, 4]).
Размер словаря LZMA
Это хранится как 32-битное целое число без знака с прямым порядком байтов со значениями в диапазоне от 2 ^ n до 2 ^ n + 2 ^ (n-1). LZMA Utils может распаковывать файлы с любым размером словаря.
Несжатый размер
Несжатый размер хранится как 64-битное целое число без знака с прямым порядком байтов. Специальное значение 0xFFFF_FFFF_FFFF_FFFF указывает, что несжатый размер неизвестен. Значение представлено маркером конца полезной нагрузки (*) тогда и только тогда, когда несжатый размер неизвестен.