On Fri, 24 Oct 2008, Sebastian Sylvan wrote:

Another useful predefined space which I didn't see is the YCoCg space, which is 
used in lots of
compression schemes (like H.264 IIRC).

YCoCg, like HLS and HSV, seems to not really be a colour space because it isn't well specified. A transformation is given from some unknown RGB space.

Perhaps I should make a datatype for unknown RGB triple, and create HLS HSV, and YCoCg transforms from this type. I can have toRGB709 and toSRGB take and return this unknown RGB triple type.

This would suggest changing sRGB and rgb709 from the type
sRGB :: a -> a -> a -> Colour a

to

sRGB :: RGB a -> Colour a

so the code "sRGB r g b" becomes "sRGB (RGB r g b)". That doesn't seem very nice.

Also, I could add phantom type annotations to the RGB triple type, allowing it to be labeled as linear, or nonlinear, or other information.

--
Russell O'Connor                                      <http://r6.ca/>
``All talk about `theft,''' the general counsel of the American Graphophone
Company wrote, ``is the merest claptrap, for there exists no property in
ideas musical, literary or artistic, except as defined by statute.''
_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to