Halftoning in JBIG2

The halftoning feature in JBIG2 provides very effective compression for bitonal files that contain picture images or greyscale regions. These regions are represented bitonally using halftoning patterns for documents such as newspapers or tax returns.

Conceptually, the idea is to take regions where pixels are not meant to stand alone, but rather convey the intensity of an image region, and have JBIG2 encode the region's intensity rather than specific pixel values. Although the compression rates for such files are often dramatic, there can be artifacts if done incorrectly. For halftoning to be a "safe" JBIG2 procedure, the compression system must have a reliable segmentor for text extraction. Text symbols, either in text zones or picture regions, cannot be halftoned for this process to be categorized as perceptually lossless.

Examples of both proper and improper use of JBIG2 halftoning can be seen in this full-page PDF file. Most of the text information within the picture regions of the image is protected, but the reverse video words at the bottom of the Chanel advertisement are degraded.

Halftoning over text regions, or pictures containing textual elements, will definitely degrade image quality. An example of the proper use of halftoning, applied to picture regions, is shown in the image below. The size reduction in this case is from 1.909.258 bytes as a TIFF G4 down to 241.576 bytes as a halftoned JBIG2.

As can be seen in this case, the text regions are sometimes hard to detect and can include reverse video segments in picture regions. When they are not detected, there is significant information loss, as seen in the figure below. The top row is the original image; the bottom is the compressed version. The halftone on the bottom left looks fine. In contrast, note the degradation of the reverse type on the bottom right:

Figure 14. Sections of the original image are on top with their halftoned counterparts beneath them. The halftoning on the right degraded image quality.

 
Generated in 0.63257 Seconds