[comp.graphics] Dithering

allanh@netcom.UUCP (Allan N. Hessenflow) (09/27/90)

I'm looking for any references on dithering algorithms that work for an output
device with higher addressable resolution than dot-size.  Specifically, the
dots are round and larger than 1/300 inch in diameter.  The addressable
resolution is 300dpi vertically, and several times that horizontally.

I can pretend the dots are square with 1/300 inch sides and only use 1/300 inch
horizontal resolution with reasonable results, although they aren't very linear
because adjacent dots overlap.  I'm hoping to find a method which can take
advantage of the high horizontal resolution and deal with the fact that the
dots overlap.

allan

-- 
Allan N. Hessenflow   {apple|claris}!netcom!allanh    allanh@netcom.uucp

jbm@eos.UUCP (Jeffrey Mulligan) (09/28/90)

allanh@netcom.UUCP (Allan N. Hessenflow) writes:

>I'm looking for any references on dithering algorithms that work for an output
>device with higher addressable resolution than dot-size.  Specifically, the
>dots are round and larger than 1/300 inch in diameter.  The addressable
>resolution is 300dpi vertically, and several times that horizontally.

>I can pretend the dots are square with 1/300 inch sides and only use 1/300 inch
>horizontal resolution with reasonable results, although they aren't very linear
>because adjacent dots overlap.  I'm hoping to find a method which can take
>advantage of the high horizontal resolution and deal with the fact that the
>dots overlap.

A "clustered dot" algorithm is generally indicated when you have overlapping
printer dots, because it at least does a pretty good job of insuring
monotonicity.  As you point out, the main problem is linearity.
My suggestion would be to dither a gray scale ramp, measure the
resulting non-linearity, invert this function and use it to
transform your input imagery prior to dithering.  The fact that your
device has anisotropic resolution means that you will want to
design a non-square dithering matrix.

-- 

	Jeff Mulligan (jbm@eos.arc.nasa.gov)
	NASA/Ames Research Ctr., Mail Stop 262-2, Moffet Field CA, 94035
	(415) 604-3745

spencer@eecs.umich.edu (Spencer W. Thomas) (10/02/90)

> allanh@netcom.UUCP (Allan N. Hessenflow) writes:
>I'm looking for any references on dithering algorithms that work for an output
>device with higher addressable resolution than dot-size.

jbm>In article <7312@eos.UUCP> jbm@eos.UUCP (Jeffrey Mulligan) writes:
jbm> A "clustered dot" algorithm is generally indicated when you have overlapping
jbm> printer dots, because it at least does a pretty good job of insuring
jbm> monotonicity.

Two useful references are:

D. E. Knuth, "Digital halftones by dot diffusion", ACM Transactions on
Graphics, Vol 6, No 4, Oct, 1987, pp 245-273.
	He discusses an interesting algorithm that produces clustered
	dot halftones.  

R. Ulichney, _Digital Halftoning_, MIT Press, 1987.
	This book is a comprehensive discussion of bitonal dithering
	and halftoning algorithms.

--
=Spencer W. Thomas 		EECS Dept, U of Michigan, Ann Arbor, MI 48109
spencer@eecs.umich.edu		313-936-2616 (8-6 E[SD]T M-F)

dkb@nrtc.nrtc.northrop.com (David K. Bainbridge <dbainbridge>) (03/30/91)

I've been looking for a good dithering algorithm, something that gives
a smoother output than a standard matrix dither.  Iv'e heard about
something called the Floyd-Steinburg algorithm but have'nt been able
to find a description of it.  If anybody knows about this algorithm,
or possible a better algorithm any pointer would be appreciated.


Thanks
David

spencer@eecs.umich.edu (Spencer W. Thomas) (04/02/91)

The best reference I have found on bi-level dithering techniques is

Ulichney, Robert, _Digital Halftoning_, MIT Press, 1987.

--
=Spencer W. Thomas 		EECS Dept, U of Michigan, Ann Arbor, MI 48109
spencer@eecs.umich.edu		313-936-2616 (8-6 E[SD]T M-F)

danderso@magrethea.matrox.com (Daniel Anderson) (04/03/91)

In article <20865@gremlin.nrtc.northrop.com> dkb@nrtc.nrtc.northrop.com (David K. Bainbridge <dbainbridge>) writes:
>I've been looking for a good dithering algorithm, something that gives
>a smoother output than a standard matrix dither.  Iv'e heard about
>something called the Floyd-Steinburg algorithm but have'nt been able
>to find a description of it.  If anybody knows about this algorithm,
>or possible a better algorithm any pointer would be appreciated.
>
>
>Thanks
>David

  Look in Computer Graphics: Principles and Practice, second edition

 The Floyd-Steinberg is explained very simply, there is of course
 other algorithms for error diffusion, but you'll have to look in more
 specialized books (the ones that talk about halftoning). Sorry
 if i've got no references on those, my book was "burrowed" few months
 ago.

**************************************************************
*                                                            *
* If you're born a bun, don't try to make sandwiches         *
* for everybody                                              *
**************************************************************

tecot@momenta.com (Ed Tecot) (04/27/91)

Try "Digital Halftoning", by Robert Ulichney.