Bzip2 - LinkFang.de





Bzip2


bzip2
Entwickler Julian Seward
Aktuelle Version 1.0.6
(20. September 2010)
Betriebssystem Linux/Unix,Windows
Programmier­sprache C
Kategorie Packprogramm
Lizenz BSD-ähnlich
Deutschsprachig nein
bzip.org (englisch)
BZip2
Dateiendung: .bz2
MIME-Type: application/x-bzip
Magische Zahl:

42 5A 68 hex
BZh (String)

Entwickelt von: Julian Seward
Art: Datenkompression

bzip2 ist ein freies Komprimierungsprogramm zur verlustfreien Kompression von Dateien, entwickelt von Julian Seward. Es ist frei von jeglichen patentierten Algorithmen und wird unter einer BSD-ähnlichen Lizenz vertrieben.

Bzip2 komprimiert Daten in einem dreistufigen Verfahren: Zuerst werden die Eingangsdaten blockweise mit der umkehrbaren Burrows-Wheeler-Transformation sortiert. Das Ergebnis wird dann einer Move-to-Front-Transformation unterzogen. Deren Ergebnis wird dann schließlich einer Huffman-Kodierung unterzogen, die die eigentliche Datenkompression vornimmt.

Die Kompression mit bzip2 ist oft effektiver, aber meist erheblich langsamer als die Kompression mit gzip oder rar. Seit 2003 existiert jedoch auch die Variante pbzip2, die Multi-Threading beherrscht und auf aktuellen Mehrkernprozessoren erheblich schneller ist. pbzip zerlegt hierfür den Eingabedatenstrom in mehrere einzelne Ströme, welche separat komprimiert werden. Das Ergebnis ist eine Datei welche die konkatenierten Bzip-Ströme enthält.

Mit bzip2 komprimierte Dateien werden durch die Dateiendung .bz2 gekennzeichnet. tar-Dateien, die mit bzip2 komprimiert wurden, haben üblicherweise die Erweiterung .tar.bz2 oder .tbz2. Ein Vorteil solcher mit bzip2 komprimierter tar-Dateien ist, dass sich bei Lesefehlern oder Beschädigungen alle noch lesbaren Blöcke mittels bzip2recover herauskopieren und anschließend entpacken lassen, während andere Kompressionsverfahren nach einem Lesefehler nicht weiterarbeiten können.

bzip2 ist der Nachfolger von bzip, das ursprünglich arithmetisches Kodieren nach dem Blocksort benutzte; aus patentrechtlichen Gründen wurde bzip jedoch nicht mehr weiterentwickelt.

libbzip2

Das Kommandozeilenprogramm bzip2 benutzt für die eigentliche Kompressions- und Dekompressionsarbeit eine Programmbibliothek namens libbzip2, welche auch von anderen Programmen, die das bz2-Dateiformat lesen und schreiben können, verwendet wird.

Diese Programmbibliothek bietet Funktionen, um beliebige Daten im Hauptspeicher zu komprimieren, und eine stdio-ähnliche Schnittstelle zum Lesen und Schreiben von bz2-komprimierten Dateien.

Dateiformat

Ein .bz2 Datenstrom beginnt mit einer Signatur (4 Byte), gefolgt von Null oder mehr komprimierten Blöcken, direkt anschließend folgt ein End-of-Stream-Marker und ein CRC (32-Bit) für den Ursprungsinhalt der ganzen Datei. Die komprimierten Blöcke sind Bit-aligned (kein Padding).

VarName Bits Description
.magic 2 *8 'BZ' signature/magic number
.version 1 *8 'h' for Bzip2 ('H'uffman coding), '0' for Bzip1 (deprecated)
.hundred_k_blocksize 1 *8 '1'..'9' block-size 100 kB .. 900 kB (uncompressed)
.compressed_magic 6 *8 '1AY&SY' -> 0x314159265359 (BCD (Pi))
.crc 4 *8 checksum for this block
.randomised 1 (! Bit) 0 => normal, 1 => randomised (deprecated)
.origPtr 3 *8 starting pointer into BWT for after untransform
.huffman_used_map 2 *8 bitmap for following 'huffman_used_bitmaps', of ranges of 16 bytes, present/not present
.huffman_used_bitmaps (0..32) *8 bitmap, of symbols used, present/not present (multiples of 16)
.huffman_groups 3 2..6 number of different Huffman tables in use
.selectors_used 15 number of times that the Huffman tables are swapped (each 50 bytes)
*.selector_list 1..6 zero-terminated bit runs (0..62) of MTF'ed Huffman table (*selectors_used)
.start_huffman_length 5 0..20 starting bit length for Huffman deltas
*.delta_bit_length (1..5) *8 0 => next symbol; 1 => alternated length
{ 1 => decrement length; 0 => increment length } ( *(symbols + 2) * groups )
.contents 2..900 KB Huffman encoded data stream until end of block (max. 900 * 1024 * 8 => 7372800 bit)
.eos_magic 6 *8 \x17 'rE8P' \x90 -> 0x177245385090 (BCD sqrt(pi))
.crc 4 *8 checksum for whole stream
.padding 0..7 align to whole byte

Siehe auch

Weblinks


Kategorien: Freie Datenkompressionssoftware | Solaris-Software | Windows-Software | Unix-Software | Linux-Software

Quelle: Wikipedia - http://de.wikipedia.org/wiki/Bzip2 (Vollständige Liste der Autoren des Textes [Versionsgeschichte])    Lizenz: CC-by-sa-3.0

Änderungen: Alle Bilder mit den meisten Bildunterschriften wurden entfernt. Ebenso alle zu nicht-existierenden Artikeln/Kategorien gehenden internen Wikipedia-Links (Bsp. Portal-Links, Redlinks, Bearbeiten-Links). Entfernung von Navigationsframes, Geo & Normdaten, Mediadateien, gesprochene Versionen, z.T. ID&Class-Namen, Style von Div-Containern, Metadaten, Vorlagen, wie lesenwerte Artikel. Ansonsten sind keine Inhaltsänderungen vorgenommen worden. Weiterhin kann es durch die maschinelle Bearbeitung des Inhalts zu Fehlern gerade in der Darstellung kommen. Darum würden wir jeden Besucher unserer Seite darum bitten uns diese Fehler über den Support mittels einer Nachricht mit Link zu melden. Vielen Dank!

Stand der Informationen: August 201& - Wichtiger Hinweis: Da die Inhalte maschinell von Wikipedia übernommen wurden, ist eine manuelle Überprüfung nicht möglich. Somit garantiert LinkFang.de nicht die Richtigkeit und Aktualität der übernommenen Inhalte. Sollten die Informationen mittlerweile fehlerhaft sein, bitten wir Sie darum uns per Support oder E-Mail zu kontaktieren. Wir werden uns dann innerhalb von spätestens 10 Tagen um Ihr Anliegen kümmern. Auch ohne Anliegen erfolgt mindestens alle drei Monate ein Update der gesamten Inhalte.