.BZ2 filtillägg

Filer med tillägget .BZ2 komprimeras med BZIP2-algoritmen. Detta gratisverktyg med öppen källkod, utvecklat av Julian Seward, uppnår imponerande komprimeringsförhållanden, vilket gör det idealiskt för att krympa stora filer eller datauppsättningar. Till skillnad från arkivformat som ZIP , komprimerar BZIP2 bara enstaka filer. Tack och lov är det enkelt att skapa och extrahera BZ2-filer med de flesta filarkiverare som stöder formatet. BZIP2s effektivitet i både komprimering och dekompression har gjort det till ett populärt val för distribution av programvara, säkerhetskopiering av data och internetöverföringar.

Om BZIP2 Arkiv

I likhet med GZIP , fungerar BZ2 som en datakompressor, men den saknar mångsidigheten hos en arkiverare som TAR eller ZIP. Till skillnad från dessa format stöder BZIP2 inte komprimering av flera filer till ett enda arkiv, och det erbjuder inte heller kryptering eller arkivdelningsfunktioner. I UNIX-traditionen hanteras arkivering vanligtvis separat, med BZIP2 som endast används för komprimering. Dekompression med BZIP2 är dock särskilt effektiv, särskilt jämfört med dess långsammare kompressionshastighet. För att komma till rätta med denna obalans, dök en modifierad version kallad PBZIP2 fram 2003, som utnyttjade multi-threading för att dramatiskt förbättra komprimeringstiderna på moderna multi-CPU och multi-core system.

.BZ2 Arkiv filformat History Info

Filformatet .BZ2, associerat med BZIP2-komprimering, spårar sitt ursprung tillbaka till Julian Sewards utvecklingsinsatser i slutet av 1990-talet inom UNIX-communityt. Under årens lopp har algoritmen genomgått flera övergångar i underhållet, med Micah Snyder som tog över som underhållare i juni 2021. Parallellt med denna utveckling har modifieringar som PBZIP2 dykt upp, som utnyttjar flertrådsfunktioner för att förbättra komprimeringshastigheterna på moderna, multi-CPU och flerkärniga system. Trots dessa framsteg förblir kärnprinciperna för .BZ2-formatet grundade i dess effektiva användning av Burrows-Wheeler-transform, flytta-till-front-transform och Huffman-kodningstekniker.

BZIP2-arkivets struktur

BZIP2 använder blockbaserad komprimering, vanligtvis komprimerar data i block som sträcker sig från 100 till 900 kB i storlek. Den använder Burrows–Wheeler-transformen för att konvertera repetitiva karaktärssekvenser till strängar med identiska bokstäver, följt av flytta-till-front-transformationen och Huffman-kodning. Noterbart är att dess föregångare, bzip, använde aritmetisk kodning istället för Huffman för komprimering.

BZIP2-komprimeringsmetoder

Tyvärr saknar BZIP2 det mångsidiga utbudet av kompressionstekniker som finns i några av dess motsvarigheter. Istället förlitar den sig på en singulär, noggrant utformad metod för datakomprimering. Denna teknik kännetecknas av:

  • Blocksortering: BZIP2 delar upp data i mindre block för individuell komprimering.
  • Burrows-Wheeler-transformation: Detta steg omordnar data inom varje block för att förbättra komprimeringseffektiviteten genom att identifiera upprepade mönster.
  • Flytta bakåt: Algoritmen itererar sedan genom den transformerade datan bakåt och använder Huffman-kodning för ytterligare komprimering.
  • Körlängdskodning: Denna teknik identifierar och kodar repetitiva tecken i datablocken för ytterligare utrymmesbesparing.

BZIP2-arkivstödda operationer

Aspose.ZIP underlättar en rad operationer på .BZ2-filarkiv, inklusive extrahering, komprimering, filpackning, sammanslagning och arkivkonvertering. Användare kan sömlöst extrahera data från .BZ2-arkiv, komprimera filer, slå samman arkiv och konvertera mellan olika arkivformat med lätthet. Dessutom stöder Aspose.ZIP uppdelning av stora .BZ2-arkiv i flera volymer för förbättrad hanterbarhet och lagringseffektivitet.

BZIP2 - Intern struktur

Även om det inte finns någon officiell specifikation för bzip2, har en informell specifikation tagits fram genom omvänd konstruktion av referensimplementeringen. I huvudsak börjar en .bz2-ström med en kortfattad 4-byte-rubrik, efterföljd av ett valfritt antal komprimerade block, sömlöst avslutat med en strömslutsmarkör med en 32-bitars CRC-kontrollsumma för hela den bearbetade klartextströmmen. Noterbart är att de komprimerade blocken är inriktade på bitnivån, utan något behov av ytterligare utfyllnad. Denna strömlinjeformade struktur understryker effektiviteten och enkelheten i bzip2-komprimeringsformatet.
Efter att ha genomgått RLE-komprimering i det inledande skedet (se ovan) uppgår den maximala längden av okomprimerad text som kan passa in i ett enda 900 KB-block i bzip2 till ungefär 46 MB (45 899 236 byte). Det här scenariot inträffar när hela den okomprimerade texten består helt av upprepade värden (vilket resulterar i en .bz2-fil på bara 46 byte). Även mindre filer, så små som 40 byte, kan uppnås genom att använda indata som helt och hållet består av värdet 251, vilket resulterar i ett häpnadsväckande komprimeringsförhållande på 1 147 480,9:1. Denna anmärkningsvärda bedrift visar den otroliga effektiviteten och mångsidigheten hos bzip2-komprimeringsalgoritmen.

BZIP2 - Intern struktur

Populariteten för BZIP2-arkiv och support

.BZ2-arkiv, även om de inte är lika vanliga som .ZIP- eller .7z -format, kan fortfarande användas i specifika applikationer, särskilt i Unix- och Linux-miljöer. De erbjuder starka komprimeringsmöjligheter och stöds väl av olika operativsystem och mjukvaruverktyg. Trots sin nischstatus förblir BZIP2-arkiv ett pålitligt val för paketering av programvarudistributioner och säkerhetskopiering av data. Stöd för .BZ2-filer är utbrett, med många arkiveringsverktyg och skriptspråk som erbjuder inbyggd funktionalitet för att skapa och extrahera dem. När nyare komprimeringsalgoritmer dyker upp kan populariteten och användningen av BZIP2-arkiv fortsätta att utvecklas.

Exempel på användning av BZIP2

Aspose.ZIP tar Bzip2-komprimering till nästa nivå. Genom att utnyttja den parallella processorkraften hos din CPU kan Aspose.ZIP dela upp komprimeringsbelastningen över flera kärnor. Detta leder till betydligt snabbare komprimeringstider, särskilt för stora datamängder. Att aktivera parallell komprimering med Aspose.ZIP är lika enkelt som att ställa in egenskapen CompressionThreads till ett värde större än 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; }

Aspose.Zip offers individual archive processing APIs for popular development environments, listed below:

Aspose.Zip for .NETAspose.Zip via JavaAspose.Zip via Python.NET

Ytterligare information om BZIP2-arkiv

Folk har frågat

1. Är BZIP2 säkert? Kan den kryptera filer?

Detta löser ett vanligt problem kring datasäkerhet. Det är viktigt att klargöra att BZIP2 i sig inte erbjuder kryptering. Användare kan behöva ett separat verktyg för att kryptera sina filer innan de komprimeras med BZIP2. Till exempel kan starka lösenord genereras för tidigare skapade arkiv med hjälp av separata krypteringsverktyg.

2. Vilka är fördelarna och begränsningarna med att använda BZIP2-komprimering?

Den största fördelen med BZIP2 är dess förmåga att uppnå höga kompressionsförhållanden, men det kan kräva mer beräkningsresurser och tid jämfört med andra algoritmer. Dessutom stöder BZIP2-arkiv inte lagring av flera filer i en enkel komprimerad fil .

3. Vad är skillnaden mellan BZIP2 och arkivformat som ZIP eller TAR?

Detta är avgörande eftersom BZIP2 bara komprimerar enstaka filer, till skillnad från ZIP och TAR som kan arkivera flera filer i ett enda paket. För att åtgärda denna begränsning kan du använda Aspose.ZIP API:er för att lägga till filer till ZIP-arkiv utan komprimering .