Τι είναι ένα αρχείο LZ;
Ένα αρχείο με επέκταση .lz είναι ένα συμπιεσμένο αρχείο αρχειοθέτησης που δημιουργήθηκε με το Lzip, το οποίο είναι ένα δωρεάν εργαλείο γραμμής εντολών για συμπίεση. Υποστηρίζει συνένωση για τη συμπίεση αρχείων υποστήριξης. Τα αρχεία LZ έχουν εφαρμογή τύπου πολυμέσων/lzip και υποστηρίζουν υψηλότερα ποσοστά συμπίεσης από το BZ2. Τα LZ βασίζονται στον αλγόριθμο LZMA (Lempel-Ziv-Markov chain) και περιλαμβάνουν ένα άθροισμα ελέγχου CRC 32-bit και bytes αναγνώρισης για τον έλεγχο της ακεραιότητας του αρχείου.
Συμπιεσμένη μορφή LZMA
Η συμπιεσμένη μορφή LZMA αποτελείται από μια συμπιεσμένη ροή bit που κωδικοποιείται χρησιμοποιώντας προσαρμοστικό δυαδικό κωδικοποιητή εύρους. Η ροή χωρίζεται σε πακέτα. Κάθε πακέτο περιγράφει είτε ένα μεμονωμένο byte είτε μια ακολουθία LZ77. Το μήκος και η απόσταση κάθε πακέτου κωδικοποιείται έμμεσα ή ρητά.
Οι επτά τύποι πακέτων είναι οι εξής (Wikipedia)
Συσκευασμένος κώδικας (ακολουθία bit) | Όνομα πακέτου | Περιγραφή πακέτου |
---|---|---|
0 + byteCode | LIT | Ένα μόνο byte κωδικοποιημένο με χρήση προσαρμοστικού κωδικοποιητή δυαδικού εύρους. |
1+0 + len + dist | ΑΓΩΝΑΣ | Μια τυπική ακολουθία LZ77 που περιγράφει το μήκος και την απόσταση ακολουθίας. |
1+1+0+0 | ΣΥΝΤΟΜΟΣ | Μια ακολουθία LZ77 ενός byte. Η απόσταση είναι ίση με την τελευταία χρησιμοποιημένη απόσταση LZ77. |
1+1+0+1 + len | LONGREP[0] | Μια ακολουθία LZ77. Η απόσταση είναι ίση με την τελευταία χρησιμοποιημένη απόσταση LZ77. |
1+1+1+0 + len | LONGREP[1] | Μια ακολουθία LZ77. Η απόσταση είναι ίση με τη δεύτερη τελευταία χρησιμοποιημένη απόσταση LZ77. |
1+1+1+1+0 + len | LONGREP[2] | Μια ακολουθία LZ77. Η απόσταση είναι ίση με την τρίτη τελευταία χρησιμοποιημένη απόσταση LZ77. |
1+1+1+1+1 + len | LONGREP[3] | Μια ακολουθία LZ77. Η απόσταση είναι ίση με την τέταρτη τελευταία χρησιμοποιημένη απόσταση LZ77. |