bzip2

frá Wikipedia, ókeypis alfræðiorðabókinni
Fara í siglingar Fara í leit
bzip2

merki
Grunngögn

verktaki Julian Seward
Útgáfuár 18. júlí 1996
Núverandi útgáfa 1.0.8
(13. júlí, 2019)
stýrikerfi Linux / Unix , Windows
forritunarmál C.
flokki Pökkunarforrit
Leyfi BSD -líkur
Þýskumælandi nei
sourceware.org/bzip2/
BZip2
Skrá eftirnafn : .bz2
MIME gerð : forrit / x-bzip
Töfra númer : 42 5A 68 hex
BZh

(Strengur)

Þróað af: Julian Seward
Upphafleg útgáfa: 1996
Gerð: Þjöppun gagna

bzip2 er ókeypis þjöppunarforrit fyrir taplausa þjöppun skráa, þróað af Julian Seward . Það er laust við einkaleyfi og er dreift undir BSD-eins leyfi .

Bzip2 þjappar gögnum í þriggja þrepa ferli: Í fyrsta lagi er inntaksgögnum raðað í blokkir með því að snúa við Burrows-Wheeler umbreytingu . Niðurstaðan verður síðan háð breytingu á framfæri . Niðurstaðan er síðan loksins háð Huffman kóðun , sem framkvæmir raunverulega gagnaþjöppun .

Þjöppun með bzip2 er oft áhrifaríkari en venjulega töluvert hægari en þjöppun með gzip eða rar . Hins vegar, síðan 2003 hefur einnig verið til pbzip2 afbrigðið, sem tileinkar sér margs konar þráður og er töluvert hraðvirkara á núverandi margkjarna örgjörvum . Til að gera þetta skiptir pbzip inntaksgagnastraumnum í nokkra einstaka strauma, sem eru þjappaðir sérstaklega. Niðurstaðan er skrá sem inniheldur samtengda Bzip læki.

Skrár þjappaðar með bzip2 eru auðkenndar með viðbótinni .bz2 . tar skrár þjappaðar með bzip2 hafa venjulega eftirnafn .tar.bz2 eða .tbz2 . Einn kostur við slíkar tar skrár þjappaðar með bzip2 er að ef lesvillur eða skemmdir koma fyrir er hægt að afrita allar læsilegar blokkir með því að nota bzip2recover og pakka þeim síðan niður á meðan aðrar þjöppunaraðferðir geta ekki haldið áfram að virka eftir lestrarvillu.

bzip2 er arftaki bzip, sem upphaflega notaði reikningskóðun samkvæmt blokkaröðinni; Af einkaleyfalögum var bzip hins vegar ekki lengur þróað.

libbzip2

Skipanalínan forritið bzip2 notar forritasafn sem kallast libbzip2 fyrir raunverulega þjöppunar- og þjöppunarvinnu, sem einnig er notað af öðrum forritum sem geta lesið og skrifað bz2 skráarsniðið.

Þetta forritasafn býður upp á aðgerðir til að þjappa öllum gögnum í aðalminni og viðmóti svipað og stdio til að lesa og skrifa bz2-þjappaðar skrár.

Skráarsnið

A .bz2 gagnastraumur byrjar með undirskrift (4 bæti), fylgt eftir með núlli eða fleiri þjappuðum kubbum, strax fylgt með endamerki og CRC (32-bita) fyrir upprunalega innihald allrar skrárinnar. Þjappaða kubbarnir eru bitastýrðir (engin bólstrun).

VarName Bitur Lýsing
Haus
.galdur 2 * 8 'BZ' undirskrift / galdranúmer
.version 1 * 8 'h' fyrir Bzip2 ('H'uffman kóðun),' 0 'fyrir Bzip1 (úrelt)
.hundred_k_blocksize 1 * 8 '1' .. '9' blokk stærð 100 kB .. 900 kB (óþjappað)
Blokkir 1..n
.compressed_magic 6 * 8 '1AY & SY' -> 0x314159265359 ( BCD ( Pi ))
.crc 4 * 8 ávísunarsumma fyrir þessa blokk
.heppnuð 1 (! Bit) 0 => venjulegt, 1 => slembiraðað (úrelt)
.origPtr 3 * 8 byrjunarbendill í BWT fyrir eftir óbreytingu
.huffman_used_map 2 * 8 punktamynd fyrir eftirfarandi 'huffman_used_bitmaps', á bilinu 16 bæti, til staðar / ekki til staðar
.huffman_used_bitmaps (0..32) * 8 punktamynd, af táknum sem notuð eru, til staðar / ekki til staðar (margfeldi af 16)
.huffman_hópar 3 2..6 fjöldi mismunandi Huffman borða í notkun
.velgers_used 15. skipti sem skipt er um Huffman töflur (hver 50 bæti)
* .selector_list 1..6 núlllausar bita keyrslur (0..62) af MTF'ed Huffman borðinu (* selectors_used)
.start_huffman_length 5 0..20 lengd byrjunarbita fyrir Huffman deltas
* .delta_bit_length (1..5) * 8 0 => næsta tákn; 1 => skiptislengd
{1 => lækkunarlengd; 0 => lengd stigs} ( * (tákn + 2) * hópar)
. innihald 2..900 KB Huffman kóðaður gagnastraumur til loka blokkar (hámark 900 * 1024 * 8 => 7372800 bita)
.eos_magic 6 * 8 \ x17 'rE8P' \ x90 -> 0x177245385090 (BCD sqrt (pi))
Enda
.crc 4 * 8 ávísunarsumma fyrir allan strauminn
.púði 0..7 samræma við heilan bæti

Sjá einnig

Vefsíðutenglar