Přípona souboru .BZ2
Soubory s příponou .BZ2 jsou komprimovány pomocí algoritmu BZIP2. Tento bezplatný a open source nástroj vyvinutý Julianem Sewardem dosahuje působivých kompresních poměrů, takže je ideální pro zmenšování velkých souborů nebo datových sad. Na rozdíl od archivních formátů, jako je ZIP , BZIP2 komprimuje pouze jednotlivé soubory. Naštěstí je vytváření a extrahování souborů BZ2 jednoduché u většiny archivátorů souborů, které tento formát podporují. Efektivita BZIP2 v kompresi i dekompresi z něj učinila oblíbenou volbu pro distribuci softwaru, zálohování dat a internetové přenosy.
O archivu BZIP2
Podobně jako GZIP slouží BZ2 jako datový kompresor, ale postrádá univerzálnost archivátoru, jako je TAR nebo ZIP. Na rozdíl od těchto formátů nepodporuje BZIP2 komprimaci více souborů do jednoho archivu ani nenabízí funkce šifrování nebo dělení archivů. V tradici UNIXu je archivace obvykle řešena odděleně, přičemž BZIP2 se používá výhradně pro kompresi. Dekomprese pomocí BZIP2 je však pozoruhodně účinná, zejména ve srovnání s její pomalejší rychlostí komprese. Aby se tato nerovnováha vyřešila, v roce 2003 se objevila upravená verze nazvaná PBZIP2, která využívá vícevláknové zpracování k dramatickému zkrácení doby komprese na moderních systémech s více CPU a vícejádrovými systémy.
.BZ2 Informace o historii formátu archivního souboru
Souborový formát .BZ2, spojený s kompresí BZIP2, má svůj původ v úsilí o vývoj Juliana Sewarda na konci 90. let v komunitě UNIX. V průběhu let prošel algoritmus několika přechody v údržbě, přičemž Micah Snyder převzal funkci správce v červnu 2021. Spolu s tímto vývojem se objevily modifikace jako PBZIP2, které využívají vícevláknové schopnosti ke zvýšení rychlosti komprese na moderních více CPU. a vícejádrové systémy. Navzdory těmto pokrokům zůstávají základní principy formátu .BZ2 založeny na jeho efektivním využití Burrows-Wheelerovy transformace, přesunu dopředu transformace a technik Huffmanova kódování.
Struktura archivu BZIP2
BZIP2 využívá blokovou kompresi, typicky komprimuje data v blocích o velikosti od 100 do 900 kB. Využívá transformaci Burrows–Wheeler k převodu opakujících se sekvencí znaků na řetězce identických písmen, po nichž následuje transformace přesunu dopředu a Huffmanovo kódování. Je pozoruhodné, že jeho předchůdce, bzip, využíval pro kompresi aritmetické kódování namísto Huffmana.
BZIP2 kompresní metody
Bohužel BZIP2 postrádá rozmanitou škálu kompresních technik, které se vyskytují u některých jeho protějšků. Místo toho se spoléhá na jedinečný, pečlivě vytvořený přístup ke kompresi dat. Tato technika se vyznačuje:
- Třídění bloků: BZIP2 rozděluje data do menších bloků pro individuální kompresi.
- Burrows-Wheelerova transformace: Tento krok přeskupí data v každém bloku, aby se zlepšila účinnost komprese identifikací opakujících se vzorů.
- Moving Backward: Algoritmus poté iteruje transformovaná data zpět a pro další kompresi použije Huffmanovo kódování.
- Kódování délky běhu: Tato technika identifikuje a kóduje opakující se znaky v datových blocích pro další úsporu místa.
Operace podporované archivem BZIP2
Aspose.ZIP usnadňuje řadu operací s archivy souborů .BZ2, včetně extrakce, komprese, sbalení souborů, sloučení a konverze archivu. Uživatelé mohou bez problémů extrahovat data z archivů .BZ2, komprimovat soubory, slučovat archivy a snadno převádět mezi různými archivními formáty. Aspose.ZIP navíc podporuje rozdělení velkých archivů .BZ2 do několika svazků pro lepší správu a efektivitu úložiště.
BZIP2 - Vnitřní struktura
I když neexistuje žádná oficiální specifikace pro bzip2, neformální specifikace byla odvozena reverzním inženýrstvím referenční implementace. V podstatě tok .bz2 začíná stručnou 4bajtovou hlavičkou, následovanou libovolným počtem komprimovaných bloků, plynule zakončenou značkou konce toku s 32bitovým kontrolním součtem CRC pro celý zpracovaný tok prostého textu. Je pozoruhodné, že komprimované bloky jsou zarovnány na bitovou úroveň, aniž by bylo potřeba další vyplnění. Tato zjednodušená struktura podtrhuje efektivitu a jednoduchost kompresního formátu bzip2.
Po provedení komprese RLE v počáteční fázi (viz výše) je maximální délka nekomprimovaného textu, která se vejde do jednoho 900 KB bloku v bzip2, přibližně 46 MB (45 899 236 bajtů). K tomuto scénáři dochází, když se celý nekomprimovaný text skládá výhradně z opakovaných hodnot (výsledkem je soubor .bz2 o velikosti pouhých 46 bajtů). Ještě menší soubory, pouhých 40 bajtů, jsou dosažitelné využitím vstupních dat složených výhradně z hodnoty 251, což má za následek ohromující kompresní poměr 1 147 480,9:1. Tento pozoruhodný počin ukazuje neuvěřitelnou efektivitu a všestrannost kompresního algoritmu bzip2.
Popularita archivu a podpory BZIP2
Archivy .BZ2, i když nejsou tak rozšířené jako formáty .ZIP nebo .7z , stále nacházejí využití ve specifických aplikacích, zejména v prostředí Unix a Linux. Nabízejí silné možnosti komprese a jsou dobře podporovány v různých operačních systémech a softwarových nástrojích. Navzdory svému specifickému postavení zůstávají archivy BZIP2 spolehlivou volbou pro distribuci balícího softwaru a zálohování dat. Podpora pro soubory .BZ2 je rozšířená a mnoho archivačních nástrojů a skriptovacích jazyků nabízí vestavěné funkce pro jejich vytváření a extrahování. Jak se však objevují novější kompresní algoritmy, popularita a používání archivů BZIP2 se může nadále vyvíjet.
Příklady použití BZIP2
Aspose.ZIP posouvá kompresi Bzip2 na další úroveň. Využitím výkonu paralelního zpracování vašeho CPU může Aspose.ZIP rozdělit pracovní zátěž komprese mezi více jader. To se promítá do výrazně rychlejších časů komprese, zejména u velkých datových sad. Aktivace paralelní komprese pomocí Aspose.ZIP je stejně snadná jako nastavení vlastnosti CompressionThreads na hodnotu větší než 1
Parallel Compression for BZ2 Files
This simple configuration unlocks the full potential of your multi-core processor, dramatically accelerating your Bzip2 compression tasks.
using (Bzip2Archive archive = new Bzip2Archive())
{
archive.SetSource("data.bin");
archive.Save("result.bz2", new Bzip2SaveOptions() { CompressionThreads = Environment.ProcessorCount });
}
Bzip2SaveOptions.CompressionThreads property
This setting controls the number of compression threads. When set to a value greater than 1, multithreading compression is activated. Read more .
public int CompressionThreads { get; set; }
Další informace o archivech BZIP2
- organizace BZIP
- Bzip2Archive metody, třídy a konstruktory
- Vytvořit Tar.BZ2 online
Lidé se ptali
1. Je BZIP2 bezpečný? Umí šifrovat soubory?
To řeší společný problém zabezpečení dat. Je důležité objasnit, že samotný BZIP2 nenabízí šifrování. Uživatelé mohou potřebovat samostatný nástroj k šifrování souborů před jejich komprimací pomocí BZIP2. Například silná hesla lze vygenerovat pro dříve vytvořené archivy pomocí samostatných šifrovacích nástrojů.
2. Jaké jsou výhody a omezení použití komprese BZIP2?
Hlavní výhodou BZIP2 je jeho schopnost dosahovat vysokých kompresních poměrů, ale ve srovnání s jinými algoritmy může vyžadovat více výpočetních zdrojů a času. Archivy BZIP2 navíc nepodporují ukládání více souborů do jediného komprimovaného souboru .
3. Jaký je rozdíl mezi BZIP2 a archivními formáty jako ZIP nebo TAR?
To je zásadní, protože BZIP2 komprimuje pouze jednotlivé soubory, na rozdíl od ZIP a TAR, které mohou archivovat více souborů do jednoho balíčku. K vyřešení tohoto omezení můžete použít rozhraní API Aspose.ZIP k přidávání souborů do archivů ZIP bez komprese .