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 high-resolution image data such as scanned documents. This library is available in portable C code and has been widely used in fax products, printer firmware and drivers, and document management systems. The package includes a variant implementation of just the ITU-T T.85 profile, with memory management optimized for embedded and fax applications.
The latest release of JBIG-KIT is
See the revision history for a summary of recent changes. Please subscribe to JBIG-KIT’s freecode.com entry if you are interested in receiving automatic notifications of new releases.
Major new feature in version 2.0:
light-weight, low-memory, streaming T.85-profile implementation
The JBIG-KIT 1.x implementation was designed to be feature-rich. It implemented most facilities of the standard, in particular progressive coding (multiple resolution layers). To offer this flexibility, the library has to keep the entire uncompressed image in memory during processing. Many JBIG1 users use only a much simpler subset of the standard that was defined in ITU-T Recommendation T.85 for use in black/white (1 bit/pixel) fax machines. For those users, the new release 2.0 of JBIG-KIT offers – in addition to the existing full-featured library – also a new light-weight jbig85.c library that supports only the T.85 subset of the standard, that leaves memory allocation entirely to the caller, and that requires only three lines of the image to reside in memory at any time. It is particularly suited for low-memory implementations in embedded systems and for applications that need to process images larger than the available memory. The new jbig85.c library also handles the VLENGTH option and NEWLEN marker segments more easily and in a single pass.
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.
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 Robert Fender at Cambridge Enterprise (firstname.lastname@example.org, +44 1223 765793).
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 ...
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 2012-07-18 – http://www.cl.cam.ac.uk/~mgk25/jbigkit/