Documentation on color spaces
This discussion is connected to the gimp-developer-list.gnome.org mailing list which is provided by the GIMP developers and not related to gimpusers.com.
This is a read-only list on gimpusers.com so this discussion thread is read-only, too.
Documentation on color spaces | Elle Stone | 09 Oct 13:20 |
Documentation on color spaces | scl | 09 Oct 18:31 |
Documentation on color spaces | Rolf Steinort | 09 Oct 19:44 |
Documentation on color spaces | Elle Stone | 09 Oct 20:32 |
Documentation on color spaces | Liam R E Quin | 09 Oct 20:47 |
Documentation on color spaces | Rolf Steinort | 09 Oct 20:57 |
Documentation on color spaces | Øyvind Kolås | 10 Oct 00:00 |
Documentation on color spaces | Elle Stone | 10 Oct 13:07 |
Documentation on color spaces | Sven Claussner | 09 Oct 21:14 |
Documentation on color spaces | Elle Stone | 10 Oct 00:00 |
Documentation on color spaces | Simon Budig | 09 Oct 22:00 |
Documentation on color spaces | Jorge Tijerina | 09 Oct 23:58 |
Documentation on color spaces | Alexandre Prokoudine | 10 Oct 03:50 |
Documentation on color spaces | Elle Stone | 10 Oct 13:10 |
Documentation on color spaces | Simon Budig | 10 Oct 15:50 |
Documentation on color spaces | Burnie West | 10 Oct 19:02 |
Documentation on color spaces
The topic of Documentation came up recently. It occurred to me that existing and future Gimp developers might find documentation on color spaces and ICC profiles helpful. So I wrote up a "Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs", which is posted on my website at http://ninedegreesbelow.com/temp/xyz-rgb.html.
If my Guide seems useful to developers, I'll put the content under an applicable license so it can be hosted elsewhere and modified by other people.
In the meantime, if anyone would like to read it and give feedback, corrections, suggestions, I'll edit the Guide to make it more clear, more useful, etc (if nobody is interested, that's OK too!).
If there's an interest, I'll put together Part 2, which would cover:
* CieLAB (how it relates to XYZ and why it's useful for image editing) * CMY(K) (how it relates to RGB and XYZ) * YCbCr, YUV, HSL, and HSV (how these derivative color spaces are connected to their parent RGB color space) * LCMS2 (how it links working space profiles with monitor, camera, and printer profiles)
Elle
Elle Stone http://ninedegreesbelow.com Just because it's a standard, doesn't mean it's right.
Documentation on color spaces
On 09.10.2013 at 03:20 P.M., Elle Stone wrote:
The topic of Documentation came up recently. It occurred to me that existing and future Gimp developers might find documentation on color spaces and ICC profiles helpful. So I wrote up a "Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs", which is posted on my website at http://ninedegreesbelow.com/temp/xyz-rgb.html.
Indeed, it's very useful. It might surely take me some time to work through it, but thank you very much for your efforts to share your knowledge!
If there's an interest, I'll put together Part 2, which would cover:
* CieLAB (how it relates to XYZ and why it's useful for image editing) * CMY(K) (how it relates to RGB and XYZ) * YCbCr, YUV, HSL, and HSV (how these derivative color spaces are connected to their parent RGB color space) * LCMS2 (how it links working space profiles with monitor, camera, and printer profiles)
Yes, there is interest in it (at least from me).
Kind regards,
Sven
Documentation on color spaces
Hi Elle,
On 09.10.2013 15:20, Elle Stone wrote:
The topic of Documentation came up recently. It occurred to me that existing and future Gimp developers might find documentation on color spaces and ICC profiles helpful. So I wrote up a "Completely Painless Programmer's Guide to XYZ, RGB, ICC, xyY, and TRCs", which is posted on my website at http://ninedegreesbelow.com/temp/xyz-rgb.html.
I am not a developer, but this is the best text I found about this stuff up to now. Very well written.
If my Guide seems useful to developers, I'll put the content under an applicable license so it can be hosted elsewhere and modified by other people.
Please do that! I'll make a video from it (well, parts of it, as usual with the books also.... ;-) )
Documentation on color spaces
On 10/9/13, Rolf Steinort wrote:
On 09.10.2013 15:20, Elle Stone wrote:
If my Guide seems useful to developers, I'll put the content under an applicable license so it can be hosted elsewhere and modified by other people.
Please do that! I'll make a video from it (well, parts of it, as usual with the books also.... ;-) )
Rolf, can you suggest an appropriate license?
Several people have said very kind things about the Guide and a couple of people think there might be a more general audience than just programmers. So perhaps I should move the Guide out of the "temp" folder (which is for temporary posts) and over to the "photography" folder, with appropriate license information at the bottom and with the reference to Gimp from git and Cairo in Figure 6 removed.
I'm sure "adding documentation" is like "adding code" - it doesn't happen automagically. But if anyone wants to put (all or portions) of the Guide somewhere in Gimp documentation, I can supply a PDF or a latex file, or plain text, or whatever is convenient. And if having the Guide also on my website presents a conflict of some sort (I don't know how these things are supposed to work), I can remove the Guide from my website altogether.
Several people have expressed an interest in Part 2, so writing Part 2 in on my "to do" list.
Elle
Documentation on color spaces
On Wed, 2013-10-09 at 16:32 -0400, Elle Stone wrote:
perhaps I should move the Guide out of the "temp" folder (which is for temporary posts) and over to the "photography" folder, with appropriate license information at the bottom and with the reference to Gimp from git and Cairo in Figure 6 removed.
If you do that, please add a redirect, since the URL has now been posted on a public list.
What you've written is incredibly useful, thank you!
A couple of minor suggestions - * make references to figures and tables be links within the document * consider using HTML abbreviation/acronym/initialism markup, or just span elements with title attributes, for the abbreviations and jargon, throughout the document (yay for search and replace) or at least the first occurrence in any paragraph.
Yes, keep up the good work with a part 2 :-)
Liam
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/ Pictures from old books: http://fromoldbooks.org/ Ankh: irc.sorcery.net irc.gnome.org freenode/#xml
Documentation on color spaces
On 09.10.2013 22:32, Elle Stone wrote:
On 10/9/13, Rolf Steinort wrote:
On 09.10.2013 15:20, Elle Stone wrote:
If my Guide seems useful to developers, I'll put the content under an applicable license so it can be hosted elsewhere and modified by other people.
Please do that! I'll make a video from it (well, parts of it, as usual with the books also.... ;-) )
Rolf, can you suggest an appropriate license?
I release all my stuff under Creative Commons.
I think CC is the best suited license for texts and images. Which flavour to take depends on what rights you want to keep for yourself.
CC-0 - the same as public domain in the US, everybody can do what they want with the text.
CC-BY - everybody can do what they want with the text as long they mention the license and your name. I am so full of myself to use that one. ;-)
Then there are the more restrictive licenses with "Share Alike", "No Derivates" and "No Commercial use". http://creativecommons.org/choose/ has a questionaire for making that decision.
CC-BY-SA is about the same as GPL, I think. I used that for some time but dropped the "SA".
Documentation on color spaces
Hi Elle,
I hope you agree that I added a link to your documentation in our
developer wiki:
http://wiki.gimp.org/index.php/Users:Beginner_Developer%27s_FAQ
Kind regards,
Sven
Documentation on color spaces
Elle Stone (l.elle.stone@gmail.com) wrote:
In the meantime, if anyone would like to read it and give feedback, corrections, suggestions, I'll edit the Guide to make it more clear, more useful, etc (if nobody is interested, that's OK too!).
I think it is very helpful. I've been dabbeling with colors some time ago (trying to improve the color reproduction of a network camera) but did not dive into the "profiling" area.
Some remarks:
In section B3 I had trouble following, because having five XYZ coordinates to specify a RGB cube (with - as you claim - additive light) seems over-determined. It is not clear how RGB(1,1,1) - i.e. additive RGB(1,0,0) + RGB(0,1,0) + RGB(0,0,1) results in the specified white point. The same problem is there with the black point. *if* this stuff is additive, then black always will be the absence of R, G, B, i.e. a pitch black XYZ(0,0,0). So there is a dragon lurking when claiming additivety.
Another (slightly philosophical) issue for me is, that you never explain what you mean by color. You write that "every real color (that is, every color out there in the world, that humans can see) has a unique location".
It might be worth noting, that this is different from looking at color
as "a specific intensity-distribution of wavelengths". There are
different intensity-distributions that map to the same XYZ coordinate.
While a person with normal eye-sight perceives these two
"intensity-distributions" as the same color (and for these purposes XYZ
is perfectly OK) a person with a color vision deficiency might be able
to keep them apart -
see e.g. http://en.wikipedia.org/wiki/Colorblindness#cite_note-5
I am not sure if mentioning this helps or if it confuses stuff... :)
Bye, Simon
simon@budig.de http://simon.budig.de/
Documentation on color spaces
Reading through this thread, could this mean that we can see CMYK in GIMP soon? (natively)
On 9 October 2013 23:00, Simon Budig wrote:
Elle Stone (l.elle.stone@gmail.com) wrote:
In the meantime, if anyone would like to read it and give feedback, corrections, suggestions, I'll edit the Guide to make it more clear, more useful, etc (if nobody is interested, that's OK too!).
I think it is very helpful. I've been dabbeling with colors some time ago (trying to improve the color reproduction of a network camera) but did not dive into the "profiling" area.
Some remarks:
In section B3 I had trouble following, because having five XYZ coordinates to specify a RGB cube (with - as you claim - additive light) seems over-determined. It is not clear how RGB(1,1,1) - i.e. additive RGB(1,0,0) + RGB(0,1,0) + RGB(0,0,1) results in the specified white point. The same problem is there with the black point. *if* this stuff is additive, then black always will be the absence of R, G, B, i.e. a pitch black XYZ(0,0,0). So there is a dragon lurking when claiming additivety.
Another (slightly philosophical) issue for me is, that you never explain what you mean by color. You write that "every real color (that is, every color out there in the world, that humans can see) has a unique location".
It might be worth noting, that this is different from looking at color as "a specific intensity-distribution of wavelengths". There are different intensity-distributions that map to the same XYZ coordinate. While a person with normal eye-sight perceives these two "intensity-distributions" as the same color (and for these purposes XYZ is perfectly OK) a person with a color vision deficiency might be able to keep them apart -
see e.g. http://en.wikipedia.org/wiki/Colorblindness#cite_note-5I am not sure if mentioning this helps or if it confuses stuff... :)
Bye, Simon
--
simon@budig.de http://simon.budig.de/ _______________________________________________ gimp-developer-list mailing list
List address: gimp-developer-list@gnome.org List membership:
https://mail.gnome.org/mailman/listinfo/gimp-developer-list
Documentation on color spaces
On Wed, Oct 9, 2013 at 10:32 PM, Elle Stone wrote:
On 10/9/13, Rolf Steinort wrote:
On 09.10.2013 15:20, Elle Stone wrote:
If my Guide seems useful to developers, I'll put the content under an applicable license so it can be hosted elsewhere and modified by other people.
Please do that! I'll make a video from it (well, parts of it, as usual with the books also.... ;-) )
I'm sure "adding documentation" is like "adding code" - it doesn't happen automagically. But if anyone wants to put (all or portions) of the Guide somewhere in Gimp documentation, I can supply a PDF or a latex file, or plain text, or whatever is convenient. And if having the Guide also on my website presents a conflict of some sort (I don't know how these things are supposed to work), I can remove the Guide from my website altogether.
You are a skilled writer; you've got some home turf advantage though. Combined with your color knowledge you are be much more well suited to clarify what the babl format strings we keep using in GIMP mean, as well as how it fits into our overall scheme of things in current and future GIMP. What you do not understand; we might not quite understand ourselves yet either.
The babl README/website, our lowest level of developer documentation relevant to this hasn't seen much improvement during the last half decade or so. This is generated from some static html in the docs directory of the source code in git. One could almost start with a link to your current write-up. I see no problem in the content our alternate versions of the content being used different places.
I haven't considered the license of the documentation of babl/gegl separately from the project code itself before. But do not see a problem with including self-contained bits/chapters under a create-commons license; or some other compatible license on their websites.
yvind --
Documentation on color spaces
On 10/9/13, Liam R E Quin wrote:
On Wed, 2013-10-09 at 16:32 -0400, Elle Stone wrote:
perhaps I should move the Guide out of the "temp" folder (which is for temporary posts) and over to the "photography" folder, with appropriate license information at the bottom and with the reference to Gimp from git and Cairo in Figure 6 removed.
If you do that, please add a redirect, since the URL has now been posted on a public list.
I put a CC-BY-SA license on the "Completely Painless Guide" and moved it to http://ninedegreesbelow.com/photography/xyz-rgb.html. Tomorrow I'll remove the (not CC-BY-SA) copy at http://ninedegreesbelow.com/temp/xyz-rgb.html and replace it with a redirect link. (That "temp" folder has proven to be more trouble than it's worth, so I'm replacing everything there with a redirect.)
On 10/9/13, Sven Claussner wrote:
I hope you agree that I added a link to your documentation in our developer wiki:
http://wiki.gimp.org/index.php/Users:Beginner_Developer%27s_FAQ
Sven, Thanks! I never saw that page before. Can the link on that page be changed to http://ninedegreesbelow.com/photography/xyz-rgb.html?
Thanks very much to everyone who has made suggestions on how to make the Guide better. I'll be working on implementing changes over the next few days.
Documentation on color spaces
On Thu, Oct 10, 2013 at 3:58 AM, Jorge Tijerina wrote:
Reading through this thread, could this mean that we can see CMYK in GIMP soon? (natively)
It's unrelated :)
Alexandre
Documentation on color spaces
On 10/9/13, yvind Kols wrote:
Combined with your color knowledge you are be much more well suited to clarify what the babl format strings we keep using in GIMP mean, as well as how it fits into our overall scheme of things in current and future GIMP. What you do not understand; we might not quite understand ourselves yet either.
The babl README/website, our lowest level of developer documentation relevant to this hasn't seen much improvement during the last half decade or so. This is generated from some static html in the docs directory of the source code in git. One could almost start with a link to your current write-up. I see no problem in the content our alternate versions of the content being used different places.
yvind
Hi Pippin,
The existing babl documentation is mostly a list of formats and bit depths available for different color spaces, yes? If there is a way I can contribute to making the babl documentation more helpful for people who write code that uses babl, perhaps by adding to the babl documentation? I'll give it a try. But I don't have a grasp of what might be unclear to whom, so an example or two would help. Is part of what you mean perhaps issues like choosing the wrong format for ICC profile conversions or for opening tiffs?
Elle
Documentation on color spaces
On 10/9/13, Simon Budig wrote:
Another (slightly philosophical) issue for me is, that you never explain what you mean by color.
I added a one-paragraph summary of color: http://ninedegreesbelow.com/photography/xyz-rgb.html What do you think? Will my one-paragraph summary work?
It might be worth noting, that this is different from looking at color as "a specific intensity-distribution of wavelengths". There are different intensity-distributions that map to the same XYZ coordinate. While a person with normal eye-sight perceives these two "intensity-distributions" as the same color (and for these purposes XYZ is perfectly OK) a person with a color vision deficiency might be able to keep them apart -
see e.g. http://en.wikipedia.org/wiki/Colorblindness#cite_note-5I am not sure if mentioning this helps or if it confuses stuff... :)
Based on your input I rewrote the explanation of imaginary colors, hopefully clarified what a "real" color really is, and touched on the subject of nonstandard color perception. Metamerism, though very important, might be more distracting than helpful?
(I'm working on the other issue you mentioned.)
Elle
Documentation on color spaces
Elle Stone (l.elle.stone@gmail.com) wrote:
On 10/9/13, Simon Budig wrote:
Another (slightly philosophical) issue for me is, that you never explain what you mean by color.
I added a one-paragraph summary of color: http://ninedegreesbelow.com/photography/xyz-rgb.html What do you think? Will my one-paragraph summary work?
Yeah, I like it.
I am not sure if mentioning this helps or if it confuses stuff... :)
Based on your input I rewrote the explanation of imaginary colors, hopefully clarified what a "real" color really is, and touched on the subject of nonstandard color perception. Metamerism, though very important, might be more distracting than helpful?
Yeah, Metamerism probably is distracting.
For my mental model of color the spectral distribution of the light is quite important and I wonder if it would help a color-newbie to have more of this "tangible" stuff in the text. But this certainly also is a question of personal preference and I don't want to impress my views onto your text :)
To look at the weaknesses/hypothetical problems of the XYZ model there are two things worth noting:
a) two distinct spectral distributions might end up at the same XYZ
coordinates.
b) there are XYZ coordinates in the first octant, which can not be
mapped back to a spectral distribution.
(put in mathematical terms: XYZ is neither injective nor surjective)
And I'd explain it by looking at the monochromatic light (visible to the "average human"), which has a very specific position at the border of the horseshoe.
By adding up more wavelengths you'll always end up inside the horseshoe, (and there is more than one way to add up monochromatic light to end up at a certain XYZ coordinate). On the other hand, creating an actual light source with XYZ coordinates *outside* the horseshoe is an impossibility, even for rocket scientists, unless we assign XYZ coordinates for invisible wavelengths or allow for "negative" light sources...
The human aspect of XYZ is visible in two aspects: first the limited spectrum we consider and then the weird shape of the horseshoe, which is determined by the response curves of the "average" cones in the human eye. But only the first one has an effect on the "reality" vs. "imaginarity" of a XYZ coordinate IMHO.
However, adding tons of more diagrams with spectral distributions, X/Y/Z response curves etc. would at some point destroy your intentions with your text, so I won't complain... :)
Bye, Simon
simon@budig.de http://simon.budig.de/
Documentation on color spaces
On 10/10/2013 06:10 AM, Elle Stone wrote:
I added a one-paragraph summary of color: http://ninedegreesbelow.com/photography/xyz-rgb.html What do you think? Will my one-paragraph summary work?
That one paragraph, with its descending tree of links, appears to me to provide a path to a post-graduate color perception/management course.
Beautiful!
-- Burnie