BZ2 naar GZ omzetten

Hier zet je BZ2 naar GZ om, gratis en zonder account: sleep het bestand hierboven erin en binnen een paar seconden staat het resultaat klaar om te downloaden. Het bestand reist versleuteld naar onze server, wordt daar omgezet en wordt gewist zodra het werk klaar is.

  • Waar het draait Op onze server, omdat een browser het programma dat hiervoor nodig is niet draait.
  • Zonder verlies Er gaat niets weg. GZ bewaart precies wat BZ2 bewaarde.
  • Maximale grootte Tot 25 MB per bestand, gratis en zonder account.
  • Goed om te weten De bestanden komen er byte voor byte hetzelfde uit. Wat het niet overleeft is wat de houder *over* ze wist en niet wat hij *in* zich had: een wachtwoord, en bij sommige formaten de oorspronkelijke rechten en datums.

Tot 100 bestanden tegelijk. Verschillende formaten door elkaar is prima.

Een bzip2-archief dat nog ergens in een pijplijn hangt

Bzip2 had een goede periode: van ongeveer 1998 tot 2010 was het het voor de hand liggende antwoord als gzip niet genoeg comprimeerde, en veel wat toen gepubliceerd werd is nog altijd .tar.bz2 — referentiedatasets, broncode-tarballs, de fixture die een testsuite al jarenlang bij elke run opnieuw downloadt.

Het archief zelf is niet het probleem. Het probleem is dat iets het regelmatig uitpakt, en bzip2-decompressie is traag genoeg om zichtbaar te zijn in een buildlog. Niemand gaat de release opnieuw uitbrengen, dus de praktische stap is lokaal herpakken naar iets dat snel opent en dat cachen.

Waarom een blok-sortering terugdraaien zoveel meer kost

De twee formaten decomprimeren structureel anders, en het verschil is geen kwestie van implementatie. De uitvoer van gzip wordt opgebouwd door letterlijke bytes te kopiëren en eerdere reeksen uit een venster van 32 KB te herhalen — vrijwel geheugenverplaatsing, en moderne hardware is daar extreem goed in.

Bzip2 moet voor elk blok van tot 900 KB een Burrows-Wheeler-transformatie terugdraaien: de oorspronkelijke volgorde reconstrueren uit een gesorteerde permutatie, een verspreide, cache-onvriendelijke bewerking over het hele blok. Dat is echte rekenkracht, geen geheugenverplaatsing, en geen enkele tuning verandert dat.

De grootte die je teruggeeft, en wanneer die er niet is

Verwacht dat de GZ groter wordt, en verwacht dat de marge volledig van de inhoud afhangt. Bzip2 ziet tot 900 KB context tegelijk waar gzip er 32 KB ziet, dus bij proza, logs, CSV, broncode en XML vindt bzip2 herhaling die gzip niet bereikt.

Bij andere inhoud is er nauwelijks verschil. Een bzip2-archief van JPEG’s, PNG’s, MP3’s of MP4’s is al nauwelijks gecomprimeerd, dus herpakken als gzip kost bijna niets en levert het volledige snelheidsvoordeel op.

De naamloze stream, en een bug die dat veroorzaakte

Een gzip-stream bewaart de oorspronkelijke bestandsnaam in de header. Een bzip2-stream bewaart daar niets van — geen naam, geen pad, geen aanwijzing. Die asymmetrie leverde hier ooit een echte fout op.

De herpakstap moet de TAR uitpakken die in het gecomprimeerde archief zit, en de eerste versie van de code herkende die aan de bestandsnaam. Vanaf een BZ2 heette diezelfde tarball «input», de controle miste hem, en het resultaat was één ondoorzichtig bestand in plaats van de dertig die erin gingen. Inmiddels wordt het tar-type afgedwongen in plaats van geraden.

Gzip zit op plekken waar bzip2 nooit kwam

Alomtegenwoordigheid is de tweede helft van dit argument. DEFLATE zit in HTTP Content-Encoding: gzip, in PNG, in een ZIP-bestand en in een Git-object. Elke gangbare taal heeft het in de standaardbibliotheek, zonder extra afhankelijkheid.

Bzip2 is een aparte bibliotheek die aanwezig moet zijn, en in een minimale container, een browser of een cloudfunctie is dat vaak niet zo. Gzip is een geregistreerde HTTP-content-coding, bzip2 nooit geweest.

Wat je opgeeft door bzip2 te verlaten

Bzip2 comprimeert elk blok apart, dus schade aan één blok verwoest niet automatisch alles erna, en herstelprogramma’s kunnen een beschadigd bestand doorlopen en de intacte blokken redden. Een gzip-stream heeft die structuur niet.

Hoe erg dat is, hangt af van waar het bestand staat: op een moderne bestandssysteem met checksums maakt het weinig uit; op één verouderende schijf met de enige kopie van iets onvervangbaars maakt het meer uit — en dan is een echte back-up met integriteitsdata het echte antwoord, niet het archiefformaat.

Wanneer je beter naar XZ springt in plaats van naar gzip

Wordt het archief bewaard in plaats van gelezen, dan is gzip het verkeerde doel en XZ het juiste: het comprimeert aanzienlijk beter dan bzip2 en pakt nog steeds sneller uit.

De test is simpel: tel hoe vaak het archief wordt uitgepakt. Vaak, door machines, in een stap waar iemand op wacht — gzip. Zelden, door een mens, uit opslag die per gigabyte-maand rekent — XZ. Bzip2 blijft alleen zinvol op een machine met heel weinig geheugen.

Waar het bzip2-archief wordt uitgepakt onderweg naar gzip

Op onze server, niet op je eigen apparaat. De meeste tools op deze site zetten lokaal om; archieven zijn een van de uitzonderingen, omdat het werk echte programma’s als 7-Zip en gzip vereist. De container heeft zelf geen toegang tot het internet.

De taak krijgt een tijdelijke map op een geheugengebaseerd bestandssysteem, die na afloop altijd wordt verwijderd, en wordt na zestig seconden afgebroken — bij bzip2 een reële beperking, want decompressie is traag. Het gratis niveau accepteert 25 MB per bestand, en een opgave van meer dan 2 GB uitgepakt wordt vooraf geweigerd.

Voor en na timen, en het origineel bewaren

Deze omzetting loont alleen als de cijfers dat bevestigen: meet de uitpaktijd van het bzip2-archief, meet die van het gzip-archief, en zet de twee bestandsgroottes ernaast. Is het archief klein of wordt het maar één keer per maand uitgepakt, dan is de winst ruis.

Bewaar het bzip2-origineel tot iets het nieuwe bestand echt succesvol heeft gebruikt. Niet omdat de omzetting lossy is — dat is ze niet — maar omdat de tarball opnieuw wordt opgebouwd, waardoor volgorde, tijdstempels en rechten kunnen verschuiven. Vergelijk eerst tar tjf met tar tzf voor je het origineel wegdoet.

Zo zet je BZ2 naar GZ om

  1. Sleep je BZ2-bestand op deze pagina, of klik om er een te kiezen.
  2. Kies GZ als doel en start de omzetting.
  3. Download het klare GZ-bestand.

BZ2 of GZ: wat er verandert

BZ2 vergeleken met GZ
BZ2GZ
Volledige naamBzip2-archiefGzip-archief
Bestandsextensie.bz2.gz, .tgz
Mediatypeapplication/x-bzip2application/gzip
CompressieZonder verlies — er gaat niets wegZonder verlies — er gaat niets weg
Voor het eerst gepubliceerd19961992
SpecificatieRFC 1952
LicentieOpen standaardOpen standaard
Stand van zakenOud, wordt overal nog gelezenActueel
Opent in een browserGeen browserGeen browser
In plaats daarvan overwogenXZXZ, ZIP

Wat behouden blijft

Er gaat niets verloren. BZ2 en GZ bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Het resultaat openen

BZ2 stamt uit 1996 en wordt nauwelijks nog gebruikt. GZ is wat actuele programma’s schrijven, dus omzetten gaat ook over leesbaar blijven.

7-Zip en Keka lezen zowel BZ2 als GZ, dus je kunt het resultaat naast het origineel leggen zonder een tweede programma.

Bestandsgrootte en kwaliteit

GZ werkt met 32 KB tegelijk, BZ2 met 900 KB: binnen dat stuk moet een herhaling vallen voordat ze weggerekend kan worden. Daar komt het verschil in compressie vandaan, en daarom is het de snelste van de twee.

Waarvoor elk formaat bedoeld is

GZ stamt uit 1992, vastgelegd in RFC 1952. gzip, 7-Zip en Keka lezen het formaat.

Van BZ2 naar GZ: veelgestelde vragen

Wordt mijn BZ2-bestand ergens heen geüpload?

Ja: deze omzetting heeft software nodig die niet in een browser draait. Het bestand reist versleuteld naar onze server, wordt gewist zodra het werk klaar is en het resultaat na 60 minuten. Het werk wordt gedaan door 7-Zip, de archiveerder, in zijn opdrachtregelvorm.

Is BZ2 naar GZ omzetten gratis?

Ja, tot 100 omzettingen per dag voor bestanden tot 25 MB. Die ene grens bestaat omdat deze omzetting op een server draait die wij betalen. Verder is er hier niets begrensd, en een watermerk komt er in geen geval op. De limiet bestaat omdat 7-Zip een machine van ons nodig heeft om te draaien.

Gaat er kwaliteit verloren bij het omzetten van BZ2 naar GZ?

Nee. GZ bewaart dezelfde inhoud zonder iets weg te gooien: het resultaat is in kwaliteit identiek aan het origineel. De bestanden komen er byte voor byte hetzelfde uit. Wat het niet overleeft is wat de houder *over* ze wist en niet wat hij *in* zich had: een wachtwoord, en bij sommige formaten de oorspronkelijke rechten en datums.

Is BZ2 naar GZ verliesvrij?

Er gaat niets verloren. BZ2 en GZ bewaren hun inhoud verliesvrij: de omzetting wisselt de verpakking, niet de kwaliteit, en je kunt haar herhalen zonder dat schade zich opstapelt.

Meer over deze formaten