Ugrás a tartalomhoz

bzip2

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából
Bzip2

FejlesztőJulian Seward
Legfrissebb stabil kiadás1.0.8 (stabil verzió, 2019. július 13.)[1]
Programozási nyelvC
Operációs rendszerplatformfüggetlen
Kategóriatömörítőprogram
LicencBSD 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

[szerkesztés]
bzip2
MIME-típusapplication/x-bzip2
FejlesztőJulian Seward
Formátum típusaadattömörítés
Uniformpublic.archive.bzip2
Bűvös számBZh
Weboldalhttps://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

[szerkesztés]
  1. bzip2-1.0.8.tar.gz 2019-07-13, 2019. július 13. (Hozzáférés: 2019. augusztus 31.)
  2. BZIP2 Format Specification (angol nyelven)

Fordítás

[szerkeszté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.