markh@csd4.csd.uwm.edu (Mark William Hopkins) (04/19/91)
I have a particular algorithm in mind for coding images. You win a free
trip to the Bahamas with me if you can name it. If you can supply information
on anything resembling it you win a consolation prize. It does the following:
(1) A sampling of points is taken on the image. The average value of the
color vectors and total square deviation are calculated.
(2) If the deviation lies under a certain threshold, the image is colored
by the average color value, else it is subdivided and the process (1) is
recursively applied to each sub-region (in a predetermined order!)
(3) One bit is generated for each decision made in (2), and one color
value for each region colored. The resulting bit and color streams
represent the output of the image coder.
(4) Optionally: these streams may be compressed with your favorite data
compression algorithm. Intuitively, I think that would be killing a dead
horse. :)
(5) Optionally: a clustering algorithm may be used to group color values
into clusters and then replace those values by their cluster index.
It has the following properties:
(a) Coding points are generated on the original image with an average
spacing inversely proprotional to the color vector gradient. Uniformly
colored areas are sparsely coded and detailed areas have a more dense coding.
(b) A single area of uniform color is encoded in about one byte (assuming
(5) is used to convert colors to color indices), regardless of its size.
(c) The image coding is approximately invariant with respect to size-scaling.
(This is a consequence if (a), actually)
(d) The color variation threshold allows you to trade off detail vs. coded
image size.
------------------------------------------------------------
Disclaimer: Applicant must be a qualified female to win the Bahamas cruise
with me. Airfare, port entry fees, hotel taxes not included >:)
The consolation prize is a free thank you from me :)