aspose.info
PL

Format pliku skompresowanego LZ4 - LZ4

Zaktualizowano

Czym jest plik LZ4?

Plik z rozszerzeniem .lz4 to skompresowany plik archiwum utworzony za pomocą aplikacji/narzędzi obsługujących kompresję LZ4. Algorytm LZ4 koncentruje się na kompromisie między szybkością a współczynnikiem kompresji. Skompresowane archiwa LZ4 można tworzyć za pomocą narzędzia wiersza poleceń LZ4 i dekompresować za pomocą tego samego narzędzia.

Format pliku LZ4

Format pliku LZ4, oparty na algorytmie kompresji LZ4, jest niezależny od typu procesora, systemu operacyjnego, systemu plików i zestawu znaków. Nadaje się do kompresji plików i kompresji strumieniowej przy użyciu algorytmu LZ4. Wstępna implementacja formatu LZ4 została przeprowadzona w języku C przez Yanna Colleta w 2011 roku i jest dostępna do wglądu dla programistów na Github .

Format ramki LZ4

Ogólna struktura formatu pliku LZ4 jest pokazana poniżej.

MagiaNbF. deskryptorBlok(…)Znacznik końcaC. suma kontrolna
4 bajty3-15 bajtów4 bajty0-4 bajtów

Magiczny numer

4 bajty, format Little Endian. Wartość : 0x184D2204

Deskryptor ramki

Deskryptor ramki składa się z 3 do 15 bajtów i jest najważniejszą częścią specyfikacji. Razem pola Magic_Number i Frame_Descriptor są określane jako nagłówek ramki LZ4, a ich rozmiar waha się od 7 do 19 bajtów. Jest tak, jak pokazano poniżej.

FLGBD(Rozmiar zawartości)(identyfikator słownika)HC
1 bajt1 bajt0 - 8 bajtów0 - 4 bajty1 bajt

Bloki danych

Każdy blok danych ma następującą kolejność.

Rozmiar blokudane(Suma kontrolna bloku)
4 bajty0 - 4 bajty

Znak końca

Przepływ bloków kończy się, gdy po ostatnim bloku danych następuje 32-bitowa wartość 0x00000000.

Suma kontrolna zawartości

Content_Checksum weryfikuje poprawność dekodowania treści i jest przeprowadzany z wykorzystaniem wyniku algorytmu xxHash-32. Sprawdza wyniki pomyślnej transmisji wszystkich bloków we właściwej kolejności i bez żadnych błędów.

Bibliografia

Zobacz też