bzip2 | |
---|---|
Típusú | Adattömörítés |
Fejlesztő | Seward, Julian |
Beírva | Xi |
Operációs rendszer | Többplatformos szoftver |
Első kiadás | 1996. július 18 |
legújabb verzió |
|
Olvasható fájlformátumok | bzip2 |
Generált fájlformátumok | bzip2 |
Engedély | BSD licenc [1] |
Weboldal | sourceware.org/bzip2/ |
A bzip2 egy ingyenes és nyílt forráskódú parancssori segédprogram adattömörítéshez , a Burrows-Wheeler algoritmus megvalósítása .
Julian Seward fejlesztette ki és adta ki először 1996 júliusában ( 0.15-ös verzió). A kompresszor stabilitása és népszerűsége az évek során nőtt, és az 1.0-s verzió 2000 végén jelent meg .
A UNIX hagyományainak megfelelően bzip2egyszerre csak egy műveletet tud végrehajtani: vagy tömöríteni vagy kicsomagolni, és csak egy fájlra. Tömörítéskor a " " kiterjesztéstbzip2 fűzi a fájlnévhez. Több fájl becsomagolásához először egyetlen fájlba archiválja azokat egy segédprogrammal , majd tömöríti a segítségével . Az ilyen archívumok általában " " kiterjesztéssel rendelkeznek . .bz2tarbzip2.tar.bz2
bzip2a legtöbb fájlt hatékonyabban tömöríti, de lassabban, mint a hagyományos segédprogramok gzipvagy zip. Ebből a szempontból hasonló a többi modern tömörítési algoritmushoz.
bzip2adattömörítést végez a CPU jelentős megterhelésével (matematikai apparátusa miatt). bzip2akkor használatosak, ha nincsenek korlátozások a tömörítési időre és a CPU -terhelésre vonatkozóan, például nagy mennyiségű adat egyszeri csomagolásához .
Egyes esetekben bzip2a tömörítési hatékonyság szempontjából rosszabb, mint az archiválók ( LZMA7-Zip tömörítési módszer ) és . A 2005-ös program szerzője szerint a tömörítési módszer tömörítési hatékonyságában 10-15%-kal [3] gyengébb az akkoriban ismert legjobb módszerekhez képest ( PPM ) [4] , ugyanakkor 2-szer gyorsabb a tömörítés és 6-szor gyorsabb kicsomagoláskor. rarbzip2
A tömörítési módszer bzip2a következőképpen működik:
A hozzávetőleges blokkméret parancssori argumentumokkal választható ki (" -1" 100 kilobyte-hoz, " -2" 200 KB-hoz, ..., " -9" 900 KB-hoz). Az egyes blokkok egymástól függetlenül vannak tömörítve, a tömörített blokkok egymás után kerülnek kiírásra, mindegyik elején egy 48 bites szekvencia kerül felhasználásra - a 0x314159265359 mágikus szám (ASCII kódolásban bájthatárhoz igazítva a következőképpen jelenik meg: " 1AY & SY"), azaz a π szám első tizedesjegyeinek beírása BCD formátumban [5] . A fájl végét a 48 bites 0x177245385090 konstans jelöli, amely a pi négyzetgyöke. A bzip2 fájlok elején a következő fejléc használatos: a "BZ" kétbájtos aláírás, majd az entrópiatömörítési módszer jelzése - "h" (Huffman) és a blokkméret (0-tól 9-ig tizedes szám).
Az egyes blokkok független tömörítésével párhuzamos tömörítési vagy kicsomagolási formátumú implementációk is lehetségesek (a kitömörítéshez minden blokkhoz eltolási indexre lehet szükség) [6] .
Használati példák bzip2.
# Parancs a "file" fájl tömörítésére bzip2 fájl # vagy bzip2 -- fájl tömörítése # Parancs a "file.bz2" fájl kicsomagolásához bzip2 -d fájl.bz2 # vagy bzip2 -- a fájl kitömörítése.bz2 # vagy bunzip2 fájl.bz2 # bunzip2 - a bzip2 másolata vagy hivatkozás a bzip2-reA parancssori argumentumok bzip2alapvetően ugyanazok, mint a gzip.
# Parancs a bzip2-vel tömörített tar archívum kicsomagolásához bzip2 -cd file.tar.bz2 | tar -xvf - # vagy bzip2 --stdout --decompress file.tar.bz2 \ | tar --extract --verbose --file- # Parancs a bzip2 tar -cvf - fájlokkal tömörített tar archívum létrehozásához | bzip2 -9 > file.tar.bz2 # vagy tar --create --verbose --file - files \ | bzip2 -9 > file.tar.bz2A GNU tar verzió támogatja a " -j" ( " " ) jelzőt, amely lehetővé teszi a " tar.bz2 " fájlok --bzip2létrehozását és kicsomagolását I/O átirányítások ( pipeline ) használata nélkül . Példa:
# Adatok csomagolása tar archívumba és bzip2 tömörítés GNU tar segítségével tar -cvjf file.tar.bz2 list_of_files # vagy tar --create --verbose --bzip2 --file file.tar.bz2 list_of_files # Csomagolja ki a bzip2-vel tömörített tar archívumot a GNU tar használatával tar -xvjf fájl.tar.bz2 # vagy tar --extract --verbose --bzip2 --file file.tar.bz2A GNU modern verziói tarautomatikusan meg tudják határozni az adattömörítési módszert, így a " -j" (" --bzip2") jelző elhagyható. Példa:
tar -xvf fájl.tar.bz2 # vagy tar --extract --verbose --file file.tar.bz2Ezenkívül van egy sor segédprogram az adatok kereséséhez, megjelenítéséhez, visszaállításához és összehasonlításához a következő formátumban bzip2:
bzip2 | |
---|---|
Kiterjesztés | .bz2 |
Aláírás | BZh |
Fejlesztő | Seward, Julian |
Legutolsó kiadás |
|
Formátum típusa | Adattömörítés |
nyílt formátum ? | Igen: BSD licenc |
Weboldal | sourceware.org/bz… ( angol) |
A " " archívum tömörített adatok .bz2folyamát ( angol stream ) tartalmazza. A "folyam" szót azért használjuk, mert az adatok logikailag nem választhatók szét, és az adatblokkok egymástól függetlenül tömörítésre kerülnek. A tömörített adatok a következő mezőkből állnak:
Mező neve | A mező mérete bitben | Leírás |
---|---|---|
.varázslat | 16 | BZ — állandó , aláírás , bűvös szám . |
.változat | nyolc | A verziószámot kódoló bájt. 0 1-es verzió (bzip1). Elavult, nem használt. h 2. verzió (bzip2). "h" angolból. huffman kódolás . |
.hundred_k_blocksize | nyolc | A tömörítetlen adatblokk mérete több száz kilobájtban . 1 Száz KB (100 KB). 2 Kétszáz KB (200 KB). … Stb 9 Kilencszáz KB (900 KB). |
.compressed_magic | 48 | 0x314159265359 - konstans , a π szám , binárisan kódolt decimális kóddal (BCD) írva . |
.crc | 32 | Az aktuális blokkra számított ellenőrző összeg. |
.véletlenszerűsített | egy | 0 Normál 1 hozzáadott véletlenszerűséggel (elavult) |
.origPtr | 24 | indítsa el a mutatót a BWT tömbhöz a konvertálás után |
.huffman_used_map | 16 | 16 bájtos bitmaszk tartomány, "elérhető" / "hiányzik" |
.huffman_used_bitmaps | 0..256 | használt karakterek bitmaszkja, "elérhető"/"hiányzik" (16-os többszörös) |
.huffman_groups | 3 | 2 és 6 közötti szám, a használatban lévő Huffman -táblák száma . |
.selectors_used | tizenöt | Egy szám, amely azt jelzi, hogy a Huffman -tábla hányszor változott (50 bájtonként). |
*.selector_list | 1...6 | nulla bittel kitömött bitsorozatok (0..62) a Huffman-táblákhoz az MTF után (*selectors_used) |
.start_huffman_length | 5 | 0...20 kezdeti bithossz a Huffman-deltákhoz |
*.delta_bit_length | 1..40 |
0
következő karakter
1
változtassa meg a hosszt
{ 1=> hosszának csökkentése 1-gyel; 0=> hossz növelése 1}-al (*(szimbólumok+2)*csoportok) |
.tartalom | 2...∞ | Huffman táblákkal kódolt adatfolyam. A blokk végéig folytatódik. A maximális hossz 7 372 800 bit . |
.eos_magic | 48 | 0x177245385090 egy konstans , a π négyzetgyöke (sqrt(pi)) binárisan kódolt decimális (BCD) formában. |
.crc | 32 | A teljes adatfolyamra kiszámított ellenőrző összeg . |
.párnázás | 0...7 | Fel nem használt bitek (0-tól 7-ig). Cél: az archívum méretének növelése egy bájt többszörösére (8 bit ) ( adatigazítás ). |
A klasszikus formátum maximális tömörítetlen blokkmérete 900 kilobájt . Ha a blokk egy ismétlődő karakterből áll, akkor az RLE kódolás után a blokk körülbelül 46 megabájt (45 899 236 bájt ) lesz, és minden művelet után a fájl mérete .bz246 bájt lesz . Ha az ismétlődő karakterkód 251, a fájl mérete .bz240 bájt , a tömörítési arány pedig 1 147 480,9:1 lesz.
Archiválók és tömörítők | |
---|---|
nyitott és ingyenes | |
Ingyenes | |
Kereskedelmi | |
Parancs sor |
Archív formátumok | |
---|---|
Csak archiválás | |
Csak tömörítés | |
Archiválás és tömörítés | |
Szoftver csomagolás és forgalmazás |