Ano ang isang LZMA file?
Ang file na may .lzma extension ay isang naka-compress na archive file na ginawa gamit ang LZMA (Lempel-Ziv-Markov chain Algorithm) compression method. Ang mga ito ay pangunahing matatagpuan/ginagamit sa Unix operating system at katulad ng iba pang mga compression algorithm gaya ng ZIP para sa pagliit ng laki ng file. Ang LZMA ay isang legacy na format ng file, na pinapalitan o pinapalitan ng .xz na format. Ang uri ng MIME ng .lzma na format ay `application/x-lzma’. Ang format ng file na ito ay idinisenyo ni Igor Pavlov para gamitin sa LZMA SDK.
LZMA File Format
Ang LZMA file ay binubuo ng dalawang pangunahing bahagi:
- Header
- Naka-compress na Data
LZMA Header
Ang mga LZMA file ay may 13-byte na header na sinusundan ng LZMA compressed data. Ang header ng LZMA ay binubuo ng:
- Mga Katangian
- Sukat ng Diksyunaryo
- Hindi naka-compress na Sukat
LZMA Header Properties
Ang field ng Properties ay naglalaman ng tatlong katangian. Ang pagdadaglat ay ibinibigay sa mga panaklong, na sinusundan ng hanay ng halaga ng property. Ang patlang ay binubuo ng
- the number of literal context bits (lc, [0, 8]);
- the number of literal position bits (lp, [0, 4]); and
- the number of position bits (pb, [0, 4]).
Laki ng Diksyunaryo ng LZMA
Ito ay naka-imbak bilang isang unsigned na 32-bit na maliit na endian integer na may mga halaga mula sa 2^n at 2^n + 2^(n-1). Maaaring i-decompress ng LZMA Utils ang mga file na may anumang sukat ng diksyunaryo.
Hindi Naka-compress na Sukat
Ang Uncompressed Size ay naka-store bilang unsigned 64-bit little endian integer. Ang isang espesyal na halaga ng 0xFFFF_FFFF_FFFF_FFFF ay nagpapahiwatig na ang Uncompressed Size ay hindi alam. Ang value ay kinakatawan ng End of Payload Marker (*) kung at kung hindi alam ang Uncompressed Size.