The DjVu Reference Library 3.0
Code and more information are available at:
http://lizardtech.com/products/djvu/referencelibrary/DjVuRefLib_3.0.html.
Click here to register for the DjVu Open Source List Serve.
The DjVu Reference Library 3.0 contains the complete source code
of decoders, simple versions of the encoder, and several utilities.
A complete C++ class hierarchy is provided.
"With this source code release, developers around the world have permanent
access to the DjVu specification, as well as critical parts of the
technology. (...) LizardTech's Open Source release of the DjVu
Reference Libraries should
address any reservations DjVu users or potential users might have about
committing to a proprietary file format to archive, display or use their
documents on the Internet or internal networks because it guarantees that
users will always be able to access their DjVu files, protecting their
investment in the technology and systems that use it."
The DjVu Reference Library 3.0 contains the complete source code
of the decoder. It also contains simple encoders, and many
utilities including:
- djvutopnm: decodes a DjVu image to a PBM/PGM/PPM file
- d44: decodes an IW44 wavelet image to a PGM/PPM file
- c44: encodes a PGM/PPM file to an IW44 wavelet image
- cjb2: simple lossless and quasi-lossless encoding of a
bitonal PBM file to DjVu. Compresses single pages only.
this program is much slower and produces larger files
than the commercial compressor (bitonaltodjvu), but
it is adequate for clean or digitally produced documents.
- cpaldjvu: simple lossless DjVu compressor for images with low
color content (that would otherwise be compressed with GIF).
This compressor is apropriate for screen dumps, icons,
or digitally produced documents with no photos.
- cdjvu: a simple Unix shell script that combines cjb2, c44 and
various public open source programs to separate an image
into layers (using simple thresholding) and generate
a 3-layer DjVu image. This is merely provided as an example
and cannot be used for any serious application of DjVu.
- bzz: general purpose compressor/decompressor (like gzip)
based on the Burrows-Wheeler transform and arithmetic coding
(like bzip2, but slightly better).
- djthumb: adds thumbnails to a multipage DjVu file
- djvm: composes multipage DjVu files from single page files.
- djvmcvt: converts 2.0 multipage documents to 3.0 multipage documents
or converts bundled DjVu files to indirect DjVu documents
and vice versa.
- djvudump: displays the structure (list the chunks) of a DjVu file
- djvuextract: extracts chunks from a single page DjVu file.
- djvumake: assembles chunks into a DjVu file
- ppmcoco: simple program for applying gamma correction to PPM files.
The release contains a complete C++ class hierarchy with useful
components such as the ZP-coder (binary adaptive arithmetic coder),
a portable multi-thread library, a mechanism for semi-automatic
garbage-collection of C++ objects, etc.
The release does not contain the sophisticated encoding strategies
necessary for reaching the highest compression ratios. It does not
contain the sophisticated code for separating document images into
foreground and background layers, nor does it contain the code that
achieves the highest compression ratios on bitonal images.