BZZ(1)
π BZZ β DjVu general purpose compression utility π
ok so bestie, this is bzz, the general purpose compression utility from DjVuLibre-3.5 (yes that's the manual name, we're in section 1, the cool section). sit down, hydrate, and let's talk about squeezing files π«Ά
β¨ SYNOPSIS β¨
Encoding:
bzz -e[blocksize] inputfile outputfile
Decoding:
bzz -d inputfile outputfile
πΈ DESCRIPTION πΈ
okay so there's two whole forms of the command line and they're giving very different energy.
the first form, with option -e, compresses the data from file inputfile and writes the compressed data into outputfile. that's it, that's the whole job, no cap.
the second form, with option -d, decompressed file inputfile and writes the output to outputfile. (yes, the manpage really says "decompressed", we love a verb era π
)
π OPTIONS π
-dβ Decoding mode. we're un-squishing. iconic.-e[blocksize] β Encoding mode. the optional argument blocksize specifies the size of the input file blocks processed by the Burrows-Wheeler transform, expressed in kilobytes. default block size is 2048 KB. the maximal block size is 4096 KB. specifying a larger block size usually produces higher compression ratios and increases the memory requirements of both the encoder and decoder π₯ (so like, bigger = better ratio but also bigger = hungrier, choose your fighter). and it is useless to specify a block size that is larger than the input file β literally pointless, don't do it, waste of your time bestie π
π§ ALGORITHMS π§
so the Burrows-Wheeler transform is performed using a combination of the Karp-Miller-Rosenberg and the Bentley-Sedgewick algorithms. that's comparable to (Sadakane, DCC 98) with a slightly more flexible ranking scheme. symbols are then ordered according to a running estimate of their occurrence frequencies. the symbol ranks are then coded using a simple fixed tree and the ZP binary adaptive coder (Bottou, DCC 98). β¨
the Burrows-Wheeler transform is also used in the well known compressor bzip2. the originality of bzz is the use of the ZP adaptive coder. the adaptation noise can cost up to 5 percent in file size, but this penalty is usually offset by the benefits of adaptation. so like, small tax, big glow-up π
π₯ PERFORMANCE π₯
here's the comparative results table, in bits per character, on the Canterbury Corpus ( http://corpus.canterbury.ac.nz ). the very good bzz performance on the spreadsheet file excl puts the weighted average ahead of much more sophisticated compressors such as fsmx. not us being competitive π
Compression performance
text fax csrc excl sprc tech poem html lisp man play Weighted Average
compress 3.27 0.97 3.56 2.41 4.21 3.06 3.38 3.68 3.90 4.43 3.51 2.55 3.31
gzip -9 2.85 0.82 2.24 1.63 2.67 2.71 3.23 2.59 2.65 3.31 3.12 2.08 2.53
bzip2 -9 2.27 0.78 2.18 1.01 2.70 2.02 2.42 2.48 2.79 3.33 2.53 1.54 2.23
ppmd 2.31 0.99 2.11 1.08 2.68 2.19 2.48 2.38 2.43 3.00 2.53 1.65 2.20
fsmx 2.10 0.79 1.89 1.48 2.52 1.84 2.21 2.24 2.29 2.91 2.35 1.63 2.06
bzz 2.25 0.76 2.13 0.78 2.67 2.00 2.40 2.52 2.60 3.19 2.52 1.44 2.16
note that DjVu contributors have several entries in this table. program compress was written some time ago by Joe Orost. program ppmd is an improvement of the PPM-C method invented by Paul Howard. look at us, we're everywhere π
π CREDITS π
program bzz was written by LΓ©on Bottou <leonb@users.sourceforge.net> and was then improved by Andrei Erofeev <andrew_erofeev@yahoo.com>, Bill Riemers <docbill@sourceforge.net> and many others. group project, but it ate. π
π SEE ALSO π
djvu(1), compress(1), gzip(1), bzip2(1)
and that's the whole page bestie, brought to you by DjVuLibre-3.5, dated 10/11/2001 β vintage but make it slay. go compress something πβ¨π¦
π¦ where this page comes from
- alpine 3.24: djvulibre-doc 3.5.30-r0 Β· GPL-2.0-only
- arch rolling: djvulibre 3.5.30.1-1 Β· GPL-2.0-or-later
- debian bookworm: djvulibre-bin 3.5.28-2.1~deb12u1
- debian bookworm: djvulibre-bin 3.5.28-2.2~deb12u1
- debian trixie: djvulibre-bin 3.5.28-2.2
- epel 10: djvulibre 3.5.28-13.el10_0 Β· GPL-2.0-or-later
- epel 9: djvulibre 3.5.28-4.el9 Β· GPLv2+
- fedora 43: djvulibre 3.5.28-14.fc43 Β· GPL-2.0-or-later
- fedora 43: djvulibre 3.5.30-1.fc43 Β· GPL-2.0-or-later
- fedora 44: djvulibre 3.5.28-16.fc44 Β· GPL-2.0-or-later
- fedora 44: djvulibre 3.5.30-1.fc44 Β· GPL-2.0-or-later
- nixos 26.05: djvulibre 3.5.29
- nixpkgs unstable: djvulibre 3.5.30
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- opensuse-leap 16.0: djvulibre 3.5.28-160000.2.2 Β· GPL-2.0-or-later
- ubuntu jammy: djvulibre-bin 3.5.28-2build2
- ubuntu jammy: djvulibre-bin 3.5.28-2ubuntu0.22.04.2
- ubuntu noble: djvulibre-bin 3.5.28-2build4
- ubuntu noble: djvulibre-bin 3.5.28-2ubuntu0.24.04.2
- ubuntu questing: djvulibre-bin 3.5.28-2.2
- ubuntu resolute: djvulibre-bin 3.5.29-1
- ubuntu stonking: djvulibre-bin 3.5.30-1
- Copyright (c) 2001-2003 Leon Bottou, Yann Le Cun, Patrick Haffner
- Copyright (c) 2001 AT&T Corp., and Lizardtech, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms