[net.graphics] Color dither

skinner@saber.UUCP (04/21/86)

> <I really dislike inclusions>
> 
> In article <396@cit-vax.Caltech.Edu> jon@cit-vax.UUCP (Jonathan P. Leech) writes:
> >In article <1664@sdcsvax.UUCP> hutch@sdcsvax.UUCP (Jim Hutchison) writes:
> >>... By using an ordered color dither, I get a reasonable image, and
> >>maintain a static map configuration.
> >>...
> >>Any suggestions?  What I have now is very pleasantly displaying the 24bit
> >>images we have received from USC (mandrel, milk drop, faces, peppers, park).
> >
> >    You might try Floyd-Steinberg dither (I believe this is also known
> >as 'minmized average error' dither. It works basically like this:
> >...
> >    My implementation of this is ~ 3x as slow  as  ordered  dither  on
> >Suns and HP bobcats - enough to be quite annoying.
> >-- 
> 

I also implemented the Floyd-Steinberg dither, first in true floating point
(quite slow on a workstation), then in integer (not much faster, due
to extra precision to prevent truncation errors).  Then, I finally
realized that the quantization value and the error terms could be
pre-computed and stored in a look-up table.  The resulting program is
about 4x as fast as the floating point version.  

If anyone is interested, I will post the code.  It has some
limitations, such as dithering to a destination of at most 8 bits, but
the 8 can be any combination of red, green, or blue bits.  It also
handles less than 8 bits well, as would be needed with an 8 color
printer.  Of course it still exibits the problems of F-S dither.

------------------------------------------------------------------------------
"You know something people?  I'm not black,
 But there's a whole lots of times I wish I could say I'm not white"

Name:	Robert Skinner
Snail:	Saber Technology, 2381 Bering Drive, San Jose, California 95131
AT&T:	(408) 435-8600 
UUCP:	...{decvax,ucbvax}!decwrl!saber!skinner
	...{amd,ihnp4,ittvax}!saber!skinner