Skip to content

Concepts

mibz2 decodes bzip2 as libbzip2 1.0.8 defines it, byte for byte, with every check libbzip2 makes, and decodes several blocks at once.

  • Why 32 couriers beat one: memory-level parallelism, the decoder's premise. One courier waits at every stop to learn the next address; 32 couriers' waits overlap. The lanes, the prefetch, the per-step cost that binds next, and the measurements.
  • What is checked, and when: block CRCs, stream CRCs, what an error reports, and the four inputs mibz2 refuses where libbzip2 does not.
  • How it works: the one sequential phase (the scanner), the workers, and the inverse BWT walked as 32 interleaved chains.
  • Prior work: libbzip2; Kärkkäinen, Kempa and Puglisi (DCC 2012); lbzip2 and pbzip2.