Boost logo

Boost :

From: Fernando Cacciola (fernando_cacciola_at_[hidden])
Date: 2006-11-01 06:40:43

Joel de Guzman wrote:
> Joel de Guzman wrote:
>>Matt Gruenke wrote:
>>>Joel de Guzman wrote:
>>>>I disagree. A color space is a tuple of numbers. It is concerned with
>>>>data and layout as far as I can see. That is the very definition of
>>>That's a color (or pixel value).
>>>A color space provides the semantics of these numbers, possibly
>>>including how they are converted to other color spaces. This may
>>>include its basis, CIE primaries, transfer function, gamut, etc. (For
>>>more information, here's a good starting point:
>>> )
>>>A pixel format establishes the mapping between channels of an image
>>>(i.e. color, pixel value, etc.) and components of a color space.
>>Now I see the confusion. There are overlaps in the definition of
>>colors and color-spaces of course. Did you think they were orthogonal?
>>See: for the definition of color-spaces.
> tinyurl mistake again! One more try:
> Regards,

That very same wikipedia article may be used to explain why Matt and I
are against using the term "color space" for the GIL element under
If you read it carefully you can see that the "tuple of numbers" is a
"color model", not a "color space" (a mapping function binds the model
with the space)
Reading further down you see that it refers to "RGB", "CYMK", etc as
color models, not color spaces.

So at most I would say that the correct term is color model. It
certainly isn't color space and that article shows why quite well.

But is not even that. You are probably missing the fact that the "GIL
element under discussion", which I suggested not to be documented as a
color space, isn't a tuple of numbers at all. It's a tag.
That is, the tuple of number which holds the component values is the
pixel<> class.
Incidentally, if one were to follow that wikipedia article, would
conclude that pixel<> (being a tuple of color component values) would
have to be renamed color_model<>, or just color<>, since model is
implied in computer programs. And that's what I suggested (but I can see
that the class is used in certain contexts were calling it color<> is

The thing that is documented as being a color space is the a tag class
that is used inside pixel<>. That tag is just there to bind each tuple
element to the corresponding component in a given color model so that
the resulting thing, the "tagged pixel" can be considered as an instance
of a color model.
So IMO that tag class is representing a format.


Fernando Cacciola

Boost list run by bdawes at, david.abrahams at, gregod at, cpdaniel at, john at