You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
148 lines
6.1 KiB
148 lines
6.1 KiB
15 years ago
|
|
||
|
JBIG-KIT lossless image compression library
|
||
|
-------------------------------------------
|
||
|
|
||
|
by Markus Kuhn
|
||
|
|
||
|
|
||
|
The latest release of JBIG-KIT can be downloaded from
|
||
|
|
||
|
http://www.cl.cam.ac.uk/~mgk25/jbigkit/
|
||
|
|
||
|
JBIG-KIT implements a highly effective data compression algorithm for
|
||
|
bi-level high-resolution images such as fax pages or scanned
|
||
|
documents.
|
||
|
|
||
|
JBIG-KIT provides a portable library of compression and decompression
|
||
|
functions with a documented interface. You can very easily include
|
||
|
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 Jef
|
||
|
Poskanzer's PBM graphics file conversion package).
|
||
|
|
||
|
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",
|
||
|
<http://www.itu.int/rec/recommendation.asp?type=folders&parent=T-REC-T.82>,
|
||
|
|
||
|
which is commonly referred to as the "JBIG1 standard". JBIG (Joint
|
||
|
Bi-level Image experts Group) is the committee which developed this
|
||
|
international standard for the lossless compression of images using
|
||
|
arithmetic coding. Like the well-known compression algorithms JPEG and
|
||
|
MPEG, JBIG has also been developed and published by the International
|
||
|
Organization for Standardization (ISO) and the International
|
||
|
Telecommunication Union (ITU). See also
|
||
|
|
||
|
http://www.jbig.org/jbighomepage.html
|
||
|
http://www.iso.ch/
|
||
|
http://www.itu.int/
|
||
|
|
||
|
The JBIG compression algorithm offers the following features:
|
||
|
|
||
|
- Close to state-of-the-art lossless compression ratio for high
|
||
|
resolution bi-level images.
|
||
|
|
||
|
- About 1.1 to 1.5 times better compression ratio on typical
|
||
|
scanned documents compared to G4 fax compression (ITU-T T.6),
|
||
|
which has been the best compression algorithm for scanned
|
||
|
documents available prior to JBIG.
|
||
|
|
||
|
- Up to 30 times better compression of scanned images with dithered
|
||
|
images compared to G4 fax compression.
|
||
|
|
||
|
- About 2 times better compression on typical 300 dpi documents
|
||
|
compared to 'gzip -9' on raw bitmaps.
|
||
|
|
||
|
- About 3-4 times better compression than GIF on typical 300 dpi
|
||
|
documents.
|
||
|
|
||
|
- Even much better competitive compression results on computer
|
||
|
generated images which are free of scanning distortions.
|
||
|
|
||
|
- JBIG supports hierarchical "progressive" encoding, that means it is
|
||
|
possible to encode a low resolution image first, followed by
|
||
|
resolution enhancement data. This allows, for instance, a document
|
||
|
browser to display already a good 75 dpi low resolution version of
|
||
|
an image, while the data necessary to reconstruct the full 300 dpi
|
||
|
version for laser printer reproduction is still arriving (say
|
||
|
over a slow network link or mass storage medium).
|
||
|
|
||
|
- The various resolution layers of a JBIG image in progressive
|
||
|
encoding mode together require not much more space than a
|
||
|
normal non-progressive mode encoded image (which JBIG also
|
||
|
supports).
|
||
|
|
||
|
- The progressive encoding mode utilizes a quite sophisticated
|
||
|
resolution reduction algorithm which offers high quality low
|
||
|
resolution versions that preserve the shape of characters as well
|
||
|
as the integrity of thin lines and dithered images.
|
||
|
|
||
|
- JBIG supports multiple bit planes and can this way also be used
|
||
|
for grayscale and color images, although the main field of
|
||
|
application is compression of bi-level images, i.e. images with
|
||
|
only two different pixel values. For grayscale images with up to
|
||
|
6 bit per pixel, JBIG performs superior to JPEG's lossless
|
||
|
mode.
|
||
|
|
||
|
JBIG-KIT is free software under the GNU General Public License. Other
|
||
|
license arrangements suitable for commercial applications are
|
||
|
available as well, please contact the author for details. JBIG-KIT
|
||
|
provides a portable library implemented in ANSI/ISO C for encoding and
|
||
|
decoding JBIG data streams, along with documentation. The library is
|
||
|
not intended for 8-bit or 16-bit machine architectures (e.g., old
|
||
|
MS-DOS C compilers) on which a number of very efficient optimization
|
||
|
techniques used in this software are not possible. For maximum
|
||
|
performance, a 32-bit processor is required (64-bit systems work too,
|
||
|
of course). On architectures with 16-bit pointer arithmetic, only very
|
||
|
small images can be processed.
|
||
|
|
||
|
Special features of the JBIG-KIT implementation are:
|
||
|
|
||
|
- Fully reentrant multithread-capable design (no global or static
|
||
|
variables, isolated malloc()/free() calls, etc.).
|
||
|
|
||
|
- Capable of handling incomplete and growing JBIG data streams in
|
||
|
order to allow earliest display of low resolution versions.
|
||
|
|
||
|
- Capable of handling several incoming data streams simultaneously
|
||
|
in one single process and thread.
|
||
|
|
||
|
- Especially designed with applications in mind that want to display
|
||
|
incoming data as early as possible (e.g., similar to the way in
|
||
|
which Netscape Navigator handles incoming GIF images).
|
||
|
|
||
|
- Implements all JBIG features and options including progressive and
|
||
|
sequential encoding, multiple bit planes, user specified
|
||
|
resolution reduction and deterministic prediction tables, adaptive
|
||
|
template changes for optimal performance on half-tone images,
|
||
|
deterministic prediction, typical prediction in lowest and
|
||
|
differential layers, various stripe orderings, etc. Only the SEQ
|
||
|
and HITOLO options are currently not supported by the decoder
|
||
|
(they are normally never required, but could be added later in
|
||
|
case of user requirements).
|
||
|
|
||
|
- Suitable for fax applications, satisfies ITU-T T.85 profile
|
||
|
|
||
|
- Efficient code, optimized utilization of 32-bit processor
|
||
|
registers.
|
||
|
|
||
|
- Very easy to use documented C library interface.
|
||
|
|
||
|
- Included Gray code conversion routines for efficient encoding
|
||
|
of grayscale images.
|
||
|
|
||
|
- Ready-to-use pbmtojbg and jbgtopbm converters.
|
||
|
|
||
|
I will try to provide free support and maintenance for this software
|
||
|
for the foreseeable future, depending on my available time.
|
||
|
|
||
|
Happy compressing ...
|
||
|
|
||
|
Markus Kuhn
|
||
|
|
||
|
--
|
||
|
Markus Kuhn, Computer Laboratory, University of Cambridge
|
||
|
http://www.cl.cam.ac.uk/~mgk25/ || CB3 0FD, Great Britain
|