aspose.info
LT

LZ4 – LZ4 suspausto failo formatas

Atnaujinta

Kas yra LZ4 failas?

Failas su plėtiniu .lz4 yra suglaudintas archyvo failas, sukurtas naudojant programas/paslaugas, kurios palaiko LZ4 glaudinimą. LZ4 algoritmas sutelkia dėmesį į greičio ir suspaudimo laipsnio kompromisą. Suspaustus LZ4 archyvus galima sukurti naudojant LZ4 komandų eilutės įrankį ir išskleisti naudojant tą patį.

LZ4 failo formatas

LZ4 failo formatas, pagrįstas LZ4 glaudinimo algoritmu, nepriklauso nuo procesoriaus tipo, operacinės sistemos, failų sistemos ir simbolių rinkinio. Jis tinka failų glaudinimui ir srautinio perdavimo glaudinimui naudojant LZ4 algoritmą. Pradinį LZ4 formato diegimą C kalba atliko Yann Collet 2011 m., o kūrėjas gali susipažinti su juo Github.

LZ4 rėmelio formatas

Bendra LZ4 failo formato struktūra yra tokia, kaip parodyta toliau.

MagicNbF. DeskriptoriusBlokas(…)Pabaigos žymėjimasC. Kontrolinė suma
4 baitai3-15 baitų4 baitai0-4 baitai

Magiškas skaičius

4 baitai, Little endian formatas. Vertė: 0x184D2204

Rėmelio aprašas

Kadro aprašas susideda iš 3 t0 15 baitų ir yra svarbiausia specifikacijų dalis. Kartu laukai Magic_Number ir Frame_Descriptor vadinami LZ4 rėmelio antrašte, o jo dydis svyruoja nuo 7 iki 19 baitų. Tai yra taip, kaip parodyta žemiau.

FLGBD(Turinio dydis)(Žodyno ID)HC
1 baitas1 baitas0–8 baitai0–4 baitai1 baitas

Duomenų blokai

Kiekvienas duomenų blokas seka tokia tvarka.

Bloko dydisduomenys(Blokuoti kontrolinę sumą)
4 baitai0–4 baitai

Pabaiga

Blokų srautas baigiasi, kai po paskutinio duomenų bloko yra 32 bitų reikšmė 0x00000000.

Turinio kontrolinė suma

Content_Checksum patikrina teisingai iššifruoto turinio pagrįstumą ir atliekama naudojant xxHash-32 algoritmo rezultatą. Jis patvirtina sėkmingo visų blokų perdavimo rezultatus teisinga tvarka ir be klaidų.

Nuorodos

Taip pat žiūrėkite