Title: An Algorithm for Compression of Bilevel Images
1An Algorithm for Compression of Bilevel Images
Authors Maire D. Reavy and Charles G. Boncelet
Source IEEE Transactions on Image Processing,
Vol. 10, No. 5, May 2001 Speaker Guu-In Chen
Date 2001/9/13
2INTRODUCTION
- Algorithm for lossless bilevel image compression
- G3
- 1980
- Run length?modified Huffman encoder
- Suitable for business documents
- Not for halftone images
- JBIG (JBIG1)
- 1993
- An arithmetic coder (IBM QM-coder)
- Suitable for business documents
- halftone images
- Not been implemented commercially
-
More than 24 patents
3INTRODUCTION (cont.)
- BACIC (Block Arithmetic Coding for Image
Compression) - 1997
- Block arithmetic coder (BAC)
- Suitable for business documents
- halftone images
- Compression ratio
- DocumentsJBIG, 2.4xG3
- halftone imagesgtJBIG, 6.1xG3
4Documents
5Halftone Image - by Floyd-Steinberg error
diffusion
Grayscale Image
6Halftone Image - by dispersed-dot ordered dither
7Halftone Image - by clustered-dot ordered dither
8BAC
- predeterminiate the number of codewords K
- K is as large as possible to maximize BACs
coding efficiency. - calculate the overall p0 (p11- p0)
- p0 the probability of a bit equaling zero
- build BAC coding tree? BAC codebook
- raster-scan the image
- From the root of BAC coding tree, one bit one
node moves forward till a leaf and outputs its
number (ie, codeword). - The coding tree is small and constant, the
encoder and decoder can each store a copy of this
tree.
9For example K16 (0-15 or 0000-1111)
p0 0.8
BAC coding tree K0p0K K1K-K0 rounded to
the nearest integer unless p0KK?K0 K-1 ,
K11 or p0K1 ?K0 1, K1 K-1
10BAC coding tree K16 (0-15), p0 0.8
11Bitstream 11 0011 101 00011 010 Code 15
9 14 7 10 or 11 (with the size of
image in the header)
12BACIC
- BASIC propose an adaptive BAC coding tree
- p0 (p11- p0) is no longer constant
- using a three-line or five-line template to
estimate p0 (p1) - constructing only that portion of the tree that
is needed to generate a codeword. -
13The template used by BACIC
For documents error diffusion halftone
- The essences
- ri counts the previously coded pixels equaling
one. - si counts all the previously coded pixels.
- For a context, the estamate of p1
For ordered dither halftone
14The template used by BACIC (cont.)
- For every context
- ri (0)1.0 ri (n1) px 0.985 ri (n)
- si (0)2.0 si (n1) 1.0 0.985 si (n)
- n the sequence no. px the value of the
current pixel - 0.985 the weight to make the recent pixels have
greater influence on the probability estimate of
the current pixel than earlier pixels do. - 0.006 to correct the overestimate p1 when si
(n) reach its upper limit
15The example for adaptive BAC coding tree
p00.80, 0.90, 0.25, 0.90 ., K16 Input
stream 0 0 0 1. Output 2
16- Decoding
- p0 of the first pixel is 0.80 and K16. The
according index is 2. - 160.8013, (13-1)gt2, so go down the lower path
from the root of BAC coding tree. - p0 of the second pixel is 0.90, 130.9012,
(12-1)gt2, so go down the lower path . - p0 of the third pixel is 0.25, 120.253,
(3-1)gt2, so go down the lower path . - p0 of the forth pixel is 0.90, 30.902, (2-1)lt2,
so go down the upper path, and the node is a
leaf, so this index 2 decoded to be 0001.
17Experimental results
18ordered dither halftone