[net.graphics] RGB Color dither, proof

hutch@sdcsvax.UUCP (Jim Hutchison) (04/27/86)

<>
I am probably going to muck it up, but here is a go at it anyway.

I posted a color image displaying program, which used an ordered
dither, to net.sources.  My original proof was wrong, unfortunately
I had to figure this out for myself.

Using a palette of 256 24bit colors, and dithering between a setup of 3
bits of red, 3 bits of green, and 2 bits of blue, I get what seems to
be a rather large number.  The colormap is uniform (with the limitation
that there are only 2 bits of blue), and contains all possible
combinations of 2bit,3bit,3bit patterns.

The idea is to map 24bit colors into this color space, composed of
actual colors and ones synthesized by using a 2x2 ordered dither.  For
any given 24bit color, I allowed that a base color could be found, with
a set value for each component in rgb, this color being one of the 256
in the palette.

By using a 2 by 2 ordered dither, 4 colors can be synthesized from each
base value(rgb) (excepting values at maximum intensity) by dithering it with
the succeeding color, except the greatest of each color.

a palette of 256 colors allow 3bits of red & green, and 2 of blue.

R=choices of red - 1 (3 bits - 1 = 7)
G=choices of green - 1 (3 bits - 1 = 7)
B=choices of blue - 1 (2 bits - 1 = 3)
D=number of intensities in ordered dither (2x2 give 4)

Colors = (D * R + 1) * (D * G + 1) * (D * B + 1)

2^13 = 8192
2x2  = 10933		smallest ordered dither (excepting 1x1)
2^14 = 16384
...
2^19 = 524288
4x4  = 625681		reasonable looking for faces
2^20 = 1048576
...
2^24 = 16777216
8x8  = 38908993		looks great on shaded objects, eats it big on detail.

-- 
/*	Jim Hutchison	UUCP:	{dcdwest,ucbvax}!sdcsvax!hutch
			ARPA:	Hutch@sdcsvax.ucsd.edu
		    [ Disclaimer eaten by a passing kiwi ]	 */