Projects / JBIG-KIT

JBIG-KIT

JBIG-KIT implements a highly effective data compression algorithm for bi-level high-resolution images such as fax pages or scanned documents. It provides a portable C library of compression and decompression functions with a documented interface that can easily be included into 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). It implements the specification ISO 11544 and ITU-T T.82, which is commonly referred to as the "JBIG1 standard".

Tags
Licenses
Operating Systems
Implementation

Last announcement

JBIG1 now patent free 04 Apr 2012 12:25

United States Patent 5,404,140, the last of the JBIG1 patents, expired today. Therefore, from today, using JBIG-KIT no longer requires any patent licence anywhere on the planet. See http://www.lightbluetouchpaper.org/2012/04/04/one-line-software-patent/ for a few thoughts on this curious patent, which covers only a single, simple "if" statement in the encoder and decoder.

Recent releases

  •  08 Apr 2014 11:54

    Release Notes: This is a security-critical bugfix release which remains API and ABI backwards-compatible to version 2.0. Users who decompress JBIG data from untrusted sources should upgrade. It fixes a buffer overflow vulnerability in the jbig.c decoder (CVE-2013-6369), a bug in the way jbig.c processes the option DPPRIV=1 (not usually used in practice), and the ability of a specially-crafted input file to force the jbig85.c decoder into an endless loop.

    •  31 Aug 2008 07:07

      Release Notes: This major release adds a much more lightweight jbig85.c variant of the library that implements only the black/white fax profile (single bit per pixel, no progressive coding with multiple resolution layers) specified in ITU-T T.85. It keeps only 3 lines of the uncompressed image in memory at any time, and only a few bytes of compressed data, and leaves all memory allocation to the caller. This benefits in particular embedded low-memory applications, and those processing extremely large images. (There are also extensions to the original jbig.c library and its command-line tools.)

      •  12 Jun 2004 00:08

        Release Notes: There are various small changes to reduce the risk of 32-bit unsigned integer overflows when dealing with extremely large images; more robust treatment of L0 = 0xffffffff; a minor API modification in jbg_enc_options(): parameter l0 has changed from type long to unsigned long, and the previous value now remains unchanged when l0 == 0 (was: l0 < 0); many type casts have been added such that the C source code is now also compilable as C++.

        •  11 Jun 2003 20:00

          Release Notes: The maximum adaptive template pixel offset was increased to MX=127. A new function jbg_newlen() can now be used to scan an entire in-memory BIE for NEWLEN marker segments, and will update the preliminary image height given in the header accordingly. Applying this preprocessing step enables the decoder to handle even JBIG data streams from fax machines that start transmission before they know the overall height of the image (an arachaic mode of operation permitted by the ITU-T T.85 profile).

          •  09 Apr 2002 10:57

            Release Notes: A typo in the stripe number calculation that caused the encoder and decoder to fail on certain image sizes has been fixed.

            Screenshot

            Project Spotlight

            OpenStack4j

            A Fluent OpenStack client API for Java.

            Screenshot

            Project Spotlight

            TurnKey TWiki Appliance

            A TWiki appliance that is easy to use and lightweight.