aspose.info
RU

LZ4 - формат сжатого файла LZ4

Обновлено

.LZ4 вариант №

Файл с расширением .lz4 представляет собой сжатый архивный файл, созданный с помощью приложений/утилит, поддерживающих сжатие LZ4. Алгоритм LZ4 фокусируется на компромиссе между скоростью и степенью сжатия. Сжатые архивы LZ4 можно создавать с помощью утилиты командной строки LZ4 и распаковывать с ее помощью.

Формат файла LZ4

Формат файла LZ4, основанный на алгоритме сжатия LZ4, не зависит от типа процессора, операционной системы, файловой системы и набора символов. Он подходит для сжатия файлов и потокового сжатия с использованием алгоритма LZ4. Первоначальная реализация формата LZ4 была выполнена на языке C Яном Колле в 2011 году и доступна для справки разработчика на Github. .

Формат кадра LZ4

Общая структура формата файла LZ4 показана ниже.

МагияNbФ. ДескрипторБлок(…)Конечная меткаC. Контрольная сумма
4 байта3-15 байт4 байта0-4 байта

Магическое число

4 байта, формат с прямым порядком байтов. Значение: 0x184D2204

Дескриптор кадра

Дескриптор кадра состоит из 3–15 байтов и является наиболее важной частью спецификации. Вместе поля Magic_Number и Frame_Descriptor называются заголовком кадра LZ4, и его размер варьируется от 7 до 19 байтов. Как показано ниже.

ФЛГБД(Размер содержимого)(ID словаря)ХК
1 байт1 байт0 - 8 байт0 - 4 байта1 байт

Блоки данных

Каждый блок данных следует следующему порядку.

Размер блокаданные(контрольная сумма блока)
4 байта0 - 4 байта

EndMark

Поток блоков заканчивается, когда за последним блоком данных следует 32-битное значение 0x00000000.

Контрольная сумма содержимого

Content_Checksum проверяет правильность декодируемого контента и выполняется с использованием результата алгоритма xxHash-32. Он проверяет результаты успешной передачи всех блоков в правильном порядке и без ошибок.

использованная литература

См. также