JBIG-KIT

by Markus Kuhn

JBIG-KIT is a software implementation of the JBIG1 data compression standard (ITU-T T.82), which was designed for bi-level image data, such as scanned documents. This library is available in portable C code. It is widely used in fax products, printer firmware, printer drivers, document management systems and imaging software.

The package includes two variant implementations: jbig.c implements nearly all options of the standard, but has to keep the full uncompressed image in memory, whereas jbig85.c implements just the ITU-T T.85 profile, with memory management optimized for embedded and fax applications, buffering only a few lines of the uncompressed image in memory, able to stream images of initially unknown height.

Download

The latest release of JBIG-KIT is

  https://www.cl.cam.ac.uk/~mgk25/jbigkit/download/jbigkit-2.1.tar.gz (2014-04-08)

See the revision history for a summary of recent changes.

You can also download the latest source code and full revision history using git:

  git clone https://www.cl.cam.ac.uk/~mgk25/git/jbigkit

Please subscribe to JBIG-KIT’s freecode.com entry if you are interested in receiving automatic notifications of new releases.

Release announcement: Version 2.1 is a security update that remains API and ABI backwards compatible to version 2.0. Users who process BIE data from untrusted sources should upgrade.

Description

JBIG-KIT provides a portable library of compression and decompression functions with a documented interface that you can include very easily into your image or document processing software. In addition, JBIG-KIT provides ready-to-use compression and decompression programs with a simple command line interface (similar to the converters found in netpbm).

JBIG-KIT implements the specification

International Standard ISO/IEC 11544:1993 and ITU-T Recommendation T.82(1993):
Information technology — Coded representation of picture and audio information — Progressive bi-level image compression

which is commonly referred to as the “JBIG1 standard”. JBIG (Joint Bi-level Image experts Group) is the committee that developed this international standard for the lossless compression of images through arithmetic coding. Like the well-known JPEG and MPEG compression standards, JBIG has been developed and published through the International Organization for Standardization (ISO) and the International Telecommunication Union (ITU).

The JBIG1 compression algorithm offers the following features:

JBIG-KIT is free software under the GNU General Public License (for commercial licenses, see below). JBIG-KIT provides a portable library implemented in ANSI/ISO C for encoding and decoding JBIG1 data streams together with documentation.

Special features of the JBIG-KIT implementation are:

Limitations: The library was not designed for machine architectures with registers smaller than 32 bits (e.g., old MS-DOS C compilers, 8/16-bit microcontrollers or DSPs) on which a number of very efficient optimization techniques used in this software are not effective. For maximum performance, a 32-bit processor is required (64-bit systems work fine, too). On architectures with 16-bit pointer arithmetic, only very small images can be processed.

Applications: Examples of standard data transfer formats that encapsulate JBIG1 streams include Zenographics Zj-stream, TIFF-FX (RFC 2301), and fax.

Licensing

Public licence: You can use JBIG-KIT free of charge under the conditions of the GNU General Public Licence. Linking JBIG-KIT statically or dynamically with other modules is making a combined work based on JBIG-KIT. Thus, the terms and conditions of the GNU General Public License cover the whole combination.

Commercial licence: Alternatively, you can also get a commercial licence for JBIG-KIT for applications that are incompatible with GPL requirements. This software licence will still require you to obtain any necessary patent licences yourself. For details, please contact Christopher Arnot at Cambridge Enterprise (software@enterprise.cam.ac.uk, +44 1223 763752).

Patents: Annex E of the JBIG1 standard lists a number of patents that might once have been applicable to implementations. These have now expired worldwide. More details ...

Support

Feel free to email me questions, problem reports, patches, suggestions, success stories, comments, etc. I will try to provide free support and maintenance for this software for the foreseeable future depending on my available time.

From time to time, I may also be available to do small consulting projects in relation to JBIG1.

created 1995-06-08 – last modified 2014-04-08 – http://www.cl.cam.ac.uk/~mgk25/jbigkit/