Bzip2
Bzip2 | |
![]() | |
Fejlesztő | Julian Seward |
Legfrissebb stabil kiadás | 1.0.8 (stabil verzió, 2019. július 13.)[1] |
Programozási nyelv | C |
Operációs rendszer | platformfüggetlen |
Kategória | tömörítőprogram |
Licenc | BSD licenc |
A Bzip2 weboldala |
bzip2 egy nyílt forráskódú szabad szoftver, amely a fájlok tömörítéséhez Burrows–Wheeler algoritmust és Huffman-kódolást használ. Kizárólag egy adatállományt képes tömörít be, nem képes több fájlt egybe csomagolni. A szoftver fejlesztését Julian Seward kezdte el, aminek első hivatalos kiadása 1996 júliusában került ki az internetre 0.15-ös verziószámmal.
A fájlformátum
bzip2 | |
![]() | |
MIME-típus | application/x-bzip2 |
Fejlesztő | Julian Seward |
Formátum típusa | adattömörítés |
Uniform | public.archive.bzip2 |
Bűvös szám | BZh |
Weboldal | https://sourceware.org/bzip2/ |
A szoftver működésének eredményeként a létrejövő tömörített adatállomány .bz2
fájlformátumban jön létre.
A .bz2
fájlformátumhoz nincs hivatalos specifikáció, viszont készült egy leírás – kvázi specifikáció, a szoftver működésének visszafejtéséből.[2]
Röviden a .bz2
adatfájl egy 4 bájtos fejléccel kezdődik, ezt követi 0 vagy tetszőleges darab meghatározott hosszúságú tömörített blokk, majd pedig lezárásnak egy 32 bites CRC ellenőrzőösszeg a megelőzőleg feldolgozott teljes adathalmazra. A vázlatos felépítés részletesebben:
.magic:16 = 'BZ' azonosító/bűvös szám .version:8 = 'h' a Bzip2 esetében ('H'uffman kódolást jelzi), '0' a Bzip1 esetében (nem használt) .hundred_k_blocksize:8 = '1'..'9' a blokkméret 100 kB és 900 kB között (tömörítetlen) .compressed_magic:48 = 0x314159265359 (BCD (pi)) .crc:32 = 32bites CRC ellenőrzőösszeg .randomised:1 = 0=>normál, 1=>véletlenszerű (nem használt) .origPtr:24 = kiinduló mutató a transzformáció utáni BWT-hez .huffman_used_map:16 = bitmap, of ranges of 16 bytes, present/not present .huffman_used_bitmaps:0..256 = bitmap, of symbols used, present/not present (multiples of 16) .huffman_groups:3 = 2..6 number of different Huffman tables in use .selectors_used:15 = number of times that the Huffman tables are swapped (each 50 symbols) *.selector_list:1..6 = zero-terminated bit runs (0..62) of MTF'ed Huffman table (*selectors_used) .start_huffman_length:5 = 0..20 starting bit length for Huffman deltas *.delta_bit_length:1..40 = 0=>next symbol; 1=>alter length { 1=>decrement length; 0=>increment length } (*(symbols+2)*groups) .contents:2..∞ = Huffman kódolt tartalom a blokk végéig (max. 7372800 bit) .eos_magic:48 = 0x177245385090 (BCD sqrt(pi)) .crc:32 = 32bites CRC ellenőrzőösszeg a teljes fájlra .padding:0..7 = kiegészítés hogy teljes bájt legyen
A bzip2 szoftverrel tömörített blokkok önmagukban külön is kitömöríthetőek, anélkül hogy szükség lenne a korábbi blokkokra. Ez a tulajdonsága lehetővé teszi az adatok párhuzamos feldolgozását, ami hasznos a big data (hatalmas adatállományokkal dolgozó) alkalmazásoknál.
Jegyzetek
Fordítás
Ez a szócikk részben vagy egészben a bzip2 című angol Wikipédia-szócikk fordításán alapul. Az eredeti cikk szerkesztőit annak laptörténete sorolja fel. Ez a jelzés csupán a megfogalmazás eredetét és a szerzői jogokat jelzi, nem szolgál a cikkben szereplő információk forrásmegjelöléseként.
Informatikai portál • összefoglaló, színes tartalomajánló lap