BLOCK COLOR QUANTIZATION: A NEW METHOD FOR COLOR HALFTONING zyxw Maya Gupta, Michael Gormish, and David G. Stork Ricoh Silicon Valley, Inc., 2882 Sand HiH Rd, Suite 115, Menlo Park, CA 94025 zyx {guptama,gormish,stork}@rsv.ricoh.com ABSTRACT zyxwvuts An important halftoning problem faced in the design of many color printers and copiers is to represent a 24-bit color image by a small number of preset output colors, generally at a higher spatial resolution. We propose dividing the input and output image into correspond- ing small blocks, calculating each input block’s color average, and then determining a set of the printing col- ors for the corresponding output block to best render the input block’s average color. Our method exploits the higher spatial resolution of the printing process and yields constrained local color optimality. Artifacts common with error diffusion methods do not occur. In an experimental comparison to vector color error diffusion halftoning, Block Color Quantization yields superior rendering of graphics. For natural images, Block Color Quantization may occasionally generate false contours, but due to the lack of texture artifacts, Block Color Quantization halftones may be preferable to error diffusion halftones. 1. INTRODUCTION Color halftoning is an important problem for commer- cial and consumer imaging devices. Often the pixels in the original image are specified by 24-bits of color and must be represented by a small number of preset out- put inks at a higher resolution than the original. Spe- cific goals in color halftoning include consistent color matching, artifact minimization, high color and spa- tial resolution, and computational efficiency. However, judging image quality is difficult due to the subjective nature of the human visual system. Most color halftoning techniques simply extend a black-and-white halftoning technique to each of the three color planes individually [?I, [?I. Such component- wise extensions implicitly assume a mathematical lin- earity of ink colors. However, the subtractive color mixing in printing is nonlinear [?I, and thus such plane- by-plane halftoning methods are suboptimal. There are also successful black-and-white halfton- ing techniques that use perceptual and printer models zy [?, ?I, but such methods require complex extensions for color halftoning. As a simple eye model we use a Haar lowpass in both the input and output domains. Simi- lar to our general approach is Wong’s work [?I, which matches the average gray levels of the input and out- put image at various resolutions. Extending this work, Breaux and Chu [?] calculate wavelet averages and then use dithering to approximate these gray-level averages. Standard error diffusion [?] is a greedy algorithm and thus not locally optimal. Resultant halftones may suffer from structural artifacts including streaks, worms, speckles, and texture effects [?I. Furthermore, error dif- fusion does not lend itself to parallel implementation. Block Color Quantization (BCQ) is a novel approach to color halftoning. BCQ treats each input color as a 3-dimensional vector in color space and generates halftones using the actual output colors obtained in the subtractive printing process. BCQ can be used with any small preset palette of output colors. Unlike er- ror diffusion, BCQ can be locally optimal, and is easily implemented in a parallel architecture. We make ex- perimental comparisons to vector error diffusion using the small output palette as the BCQ algorithm, as we believe this is the version of error diffusion that could best compete with the advantages of BCQ. 2. BLOCK COLOR QUANTIZATION METHOD Block Color Quantization consists of five steps: 1) Choose a block size zyxw d x zyxw d. The block size should be just small enough that the eye will average color over the block. Divide the input image into equal blocks. Divide the output image into corresponding blocks. Let n be the area of each output block. 2) For each block, determine if it contains an edge. If there is an edge, break that block into sub-blocks. Repeat Step 2 until no block contains an edge. 3) Calculate the average color zyxw Ai of each input block. 460 0-7803-6297-7100/$10.00 0 2000 IEEE