This diagram shows module dependency relation. Used to design lbzip2 version 2.2 (2012). Current module dependencies may differ slightly.
This diagram shows data flow during decompression, as of lbzip2 version 2.2 (2012).
Data flow diagram for pre-2.0 versions of lbzip2 (unreleased). Created in years 2009 and 2010. This design is flawed – scalability is uncertain and memory consumption can’t be easily controlled.
Thick arrows mean transfers of data being processed, thin arrows mean transfer of internal metadata structures or semaphore operations.
Data flow diagram for lbzip2, version 0.23. Good scalability, but high worst-case memory consumption.
FS– free slot,
LS– loaded slot,
RS– reconstructed stream,
DB– decompressed block.
sw2w_q– splitter and workers to workers queue,
w2m_q– workers to muxer queue.
State transition diagram for deterministic finite automaton (DFA) used to parse stream headers. Created during initial design in 2007. Actual state names used in current code are different.
S_BEG– begin of file,
S_MAG– stream magic,
S_HDR– stream header,
S_BH0– block header, part 1,
S_BH1– block header, part 2,
S_BC0– block CRC, part 1,
S_BC1– block CRC, part 1,
S_BLK– block data,
S_EH0– end of stream header, part 1,
S_EH1– end of stream header, part 2,
S_EC0– stream CRC, part 1,
S_EC1– stream CRC, part 2,
S_END– end of stream,
S_GAR– trailing garbage,
S_EMA– concatenated stream magic,
S_EHD– concatenated stream header.