Jim Leonard
2004-02-09 21:25:55 UTC
I've scoured google's archives of usenet, the c.g.a FAQ, and Graphics
Gems I through V and I just can't find an answer to this problem --
hopefully one of the kind souls here can help...
Photoshop 7 (and possibly other versions as well) features a method of
color reduction where you can load a custom palette, then perform an
ordered dither against that palette. This is a neat trick, as I
always assumed that ordered dithering required an ordered palette (2
r,g,b levels per channel = 8 colors, 3^3 = 27 colors, 4^3 = 64 colors,
etc.).
I have a need to do this in my own software (using classic Bayer
crosshatch), and although I understand bitonal ordered dithers, I am
completely at a loss as to how Photoshop is able to do an
ordered/Bayer dither against a completely arbitrary palette. I
thought that maybe PS was performing an ordered dither with an ordered
palette equal to or greater than the specified number of colors and
then remapping to the custom palette with a best match, but when I
perform those steps myself the result is not nearly as good as the
original "custom" ordered dither.
Can anyone shed some light on how to do this? It's driving me nuts!
Is it a basic property of ordered dithering in color that I am
missing? (I have only implemented B&W ordered dithering up until
now.) The examples in Graphics Gems II assume an ordered palette and
the code in ppmdither.c builds its own semi-ordered palette with LUTs;
unless I'm confused, neither of these explain what I'm looking for.
Thanks in advance for anyone who can help straighten me out.
Gems I through V and I just can't find an answer to this problem --
hopefully one of the kind souls here can help...
Photoshop 7 (and possibly other versions as well) features a method of
color reduction where you can load a custom palette, then perform an
ordered dither against that palette. This is a neat trick, as I
always assumed that ordered dithering required an ordered palette (2
r,g,b levels per channel = 8 colors, 3^3 = 27 colors, 4^3 = 64 colors,
etc.).
I have a need to do this in my own software (using classic Bayer
crosshatch), and although I understand bitonal ordered dithers, I am
completely at a loss as to how Photoshop is able to do an
ordered/Bayer dither against a completely arbitrary palette. I
thought that maybe PS was performing an ordered dither with an ordered
palette equal to or greater than the specified number of colors and
then remapping to the custom palette with a best match, but when I
perform those steps myself the result is not nearly as good as the
original "custom" ordered dither.
Can anyone shed some light on how to do this? It's driving me nuts!
Is it a basic property of ordered dithering in color that I am
missing? (I have only implemented B&W ordered dithering up until
now.) The examples in Graphics Gems II assume an ordered palette and
the code in ppmdither.c builds its own semi-ordered palette with LUTs;
unless I'm confused, neither of these explain what I'm looking for.
Thanks in advance for anyone who can help straighten me out.