aspose.info
UK

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 байти, формат Little endian. Значення: 0x184D2204

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

Дескриптор кадру складається з 3 t0 15 байтів і є найважливішою частиною специфікації. Разом поля Magic_Number і Frame_Descriptor називаються заголовком кадру LZ4, а його розмір коливається від 7 до 19 байтів. Це так, як показано нижче.

FLGBD(Розмір вмісту)(Ідентифікатор словника)HC
1 байт1 байт0 - 8 байт0 - 4 байти1 байт

Блоки даних

Кожен блок даних дотримується наступного порядку.

Розмір блокудані(Контрольна сума блоку)
4 байти0 - 4 байти

EndMark

Потік блоків завершується, коли за останнім блоком даних слідує 32-розрядне значення 0x00000000.

Контрольна сума вмісту

Content_Checksum перевіряє дійсність вмісту, який правильно декодується, і виконується за допомогою результату алгоритму xxHash-32. Він перевіряє результати успішної передачі всіх блоків у правильному порядку та без помилок.

Список літератури

Див. також