You can edit almost every page by Creating an account. Otherwise, see the FAQ.

bzip3

From EverybodyWiki Bios & Wiki



Bzip3
Original author(s)Kamila Szewczyk
Initial release9 May 2022 (2022-05-09)
Stable release
1.2.0 / 31 October 2022; 17 months ago (2022-10-31)[1]
Repositorygithub.com/kspalaiologos/bzip3
Written inC
Engine
    Operating systemCross-platform
    PlatformPortable
    Size119.6 KB[2]
    TypeData compression
    LicenseLGPLv3

    Search Bzip3 on Amazon.

    bzip3 is a free and open source data compressor developed by Kamila Szewczyk based on the Burrows–Wheeler transform.

    Features[edit]

    bzip3 was designed to outperform bzip2 compression ratio-wise[3]. bzip3 does not consider the compression levels as a metric of its performance, allowing the user to explicitly specify the compression block size instead (with the premise that the bigger the block, the better the compression becomes). The bzip3 package includes parallel (multi-threaded) implementations of both compression and decompression. On text data, bzip3 generally outperforms most common data compressors, including bzip2, zstd, LZMA and RAR[4].

    Like gzip or bzip2, bzip3 is only a data compressor. It is not an archiver like tar; it has no facilities for handling multiple files or encryption.

    Implementation[edit]

    bzip3 uses a combined approach of various data compression algorithms that occur in the following order:

    • A special variant of Run-length encoding (RLE) performed on the initial data, which estimates the savings that collapsing every run of a byte would give and adjusts accordingly before performing the operation.
    • The Lempel Ziv + Prediction algorithm (LZP)[5], a special variant of the Reduced-Offset Lempel Ziv algorithm (ROLZ)[6] with long minimum match length (40 bytes).
    • Burrows–Wheeler transform (BWT). The BWT is computed in linear time by first constructing a suffix array of the text and then deducing the BWT string as [7]. This approach has a linear time complexity[8], as opposed to the approach used by bzip2, which runs in time complexity[9].
    • Arithmetic coding using a context modelling predictor.

    bzip3 performance is generally symmetric, however parallel encoding of blocks as of version 1.1.4[10] gives almost linear speedup on multi-CPU and multi-core computers, because each block is encoded independently.

    The reference implementation is written in C and there exist bindings to Python[11], PHP[12], Racket[13] and Lua[14].

    File format[edit]

    Files produced by bzip3 start with ASCII "BZ3v1"[15], followed by the 32-bit maximum block size[16].

    References[edit]

    1. "Releases - kspalaiologos/bzip3". Retrieved 31 October 2022 – via GitHub.
    2. "Arch Linux - bzip3 1.2.0-1 (x86_64)". archlinux.org. Retrieved 2022-10-31.
    3. Szewczyk, Kamila (2022-10-17), BZip3, retrieved 2022-10-21
    4. "enwik10 benchmark results". encode.su. Retrieved 2022-10-21.
    5. Bloom, C. (1996). "LZP: a new data compression algorithm". Proceedings of Data Compression Conference - DCC '96. Snowbird, UT, USA: IEEE Comput. Soc. Press: 425–. doi:10.1109/DCC.1996.488353. ISBN 978-0-8186-7358-0. Unknown parameter |s2cid= ignored (help)
    6. Belu, Sabin; Coltuc, Daniela (July 2019). "RoLZ - The Reduced Offset LZ Data Compression Algorithm". 2019 International Symposium on Signals, Circuits and Systems (ISSCS). Iasi, Romania: IEEE: 1–4. doi:10.1109/ISSCS.2019.8801741. ISBN 978-1-7281-3896-1. Unknown parameter |s2cid= ignored (help)
    7. "New saca and bwt library (libsais)". encode.su. Retrieved 2022-10-22.
    8. Okanohara, Daisuke; Sadakane, Kunihiko (2009). Karlgren, Jussi; Tarhio, Jorma; Hyyrö, Heikki, eds. "A Linear-Time Burrows-Wheeler Transform Using Induced Sorting". String Processing and Information Retrieval. Berlin, Heidelberg: Springer: 90–101. doi:10.1007/978-3-642-03784-9_9. ISBN 978-3-642-03784-9.
    9. "blocksort.c". opensource.apple.com. Retrieved 2022-11-01.
    10. "Release 1.1.4 · kspalaiologos/bzip3". GitHub. Retrieved 2022-10-21.
    11. synodriver, bzip3: bz3 compress and decompress, retrieved 2022-10-23
    12. kjdev (2022-09-10), Bzip3 Extension for PHP, retrieved 2022-10-23
    13. "libbzip3". pkgs.racket-lang.org. Retrieved 2022-10-23.
    14. synodriver (2022-10-30), simple lua binding for bzip3 's high-level api, retrieved 2022-10-31
    15. "BZip3 - Just Solve the File Format Problem". fileformats.archiveteam.org. Retrieved 2022-10-21.
    16. file/file, Fine Free File Command, 2022-10-19, retrieved 2022-10-21

    See also[edit]

    Some use of "" in your query was not closed by a matching "".Some use of "" in your query was not closed by a matching "".


    This article "Bzip3" is from Wikipedia. The list of its authors can be seen in its historical and/or the page Edithistory:Bzip3. Articles copied from Draft Namespace on Wikipedia could be seen on the Draft Namespace of Wikipedia and not main one.