Post by hydrophilic on Aug 22, 2014 9:26:40 GMT
This is another topic in my series of colors, COLORS, COLORS! It is a bit lengthy and abstract, so if you are in hurry or want real-world examples, then look elsewhere...
As pointed out in a Wikipedia article (discussed below), several image-editing applications will lie to you in their "color pickers"... in essance, the terms "chroma" and "saturation" are often mangled...
It is extremely difficult (impossible?) to describe in the English language (also other languages like French or German). So below I give concrete (but not real-world) examples of the differences between chroma and saturation. (My examples are "concrete" because I show actual images, but not "real-world" because they are simple color wheels, but not real-life images).
I post this because I think it is important for anyone wanting to convert "true color" (24-bit RGB) into a "CBM" image (usually a 4-bit color "chip code"). However, the diffference between chroma and saturation is universal... it applies to all color models (CBM or not).
After moderate thought, I decided to present the HSV versus HCV color comparison first. This is because the HSV color model is "perfect" (no illegal colors). If you want more details, see this wikipedia article (the title is HSV, but most of the images are HCV). Anyway, I hope you can see from the images below that chroma and saturation are two simular, yet different, meaures of "color intesnsity".
Hopefully it is obvious that HSV (Hue, Saturation, Value) is quite different from HCV. In particular, all HSV values are legal, but many HCV (Hue, Chrominance, Value) values are "illegal" (shown in gray).
I decided to show HSV (HCV) first because it (one of them) is often used in modern image editors... as pointed out in the Wikipedia article, an application may lie to you and say "saturation" when really it refers to "chrominanace". Play with your favorvite application and see if it uses HSV or HCV (could be something else).
The two color models above are based on "brightness" = "value". Simply stated, Value equals the maximum of the R,G,B components (in symbols, V = Max(R,G,B)). This concept of "brightness" works out well for either chroma or saturation. (Later [another post] I will talk about color models where this is not true).
Next I present a generic pair of color models called HSY and HCY by me (I've seen them named differently by others), which reperesent "Hue, Saturation, Luma" and (respectively) "Hue, Chrominance, Luma". I don't know of any software that uses either directly, but I will say that HCY is almost identical to my made-up YHCh (which is simply a generic/polar form of YIQ/YPbPr/YUV... see this topic if you're curious). HSY and HCY have been documented elsewhere (I did not make them up) although info about them is hard to find (but here is a short/simple one for you)... well my software extraplates one into the other (although now I can't remember which came first). ANYWAY, it should be obvious that chroma and saturation are different in the following images:
As you can see, it doesn't matter if you choose HSY or HCY, the resulting color wheels are quite "bizarre" when rendered in an RGB color space (your PC monitor). Although I think the "saturation" version is more bizarre than the "chroma" version. This is mainly because "saturation" is relative while "chroma" is absolute.
Oh yeah, I almost forgot (silly me)!! The "chroma" versions (HCY) shown in the right half of the above diagram are almost exatcly the same as YHCh/YPbPr (already mentioned above), but the only(?) differene is that hue is calculated a bit differently: "arcCos" is used for HCY [or HSY] but "arcTan2" is used for YHCh/YPbPr... this results in a (minor) hue difference of up to 2 degrees (often less).
So here is my conclusion, which hopefully you will find helpful. The "chroma" color wheels are absolute (or, you could say, relative to "black"), while the saturation color wheels are relative to "gray of the same brightness". The "saturation" seems more natural to me (a human) while the "chroma" model seems better for computer image processing... note I only have limited experience in this field... my CBM Encoder (video) and ImageWork (photo) are the only apps I've programmed which are largely concerned with color (I've made several other apps which [not surprisingly] use color, but only in a generic "who cares" fashion).
Well here is a simple equation that governs all my "chroma" versus "saturation" color models of ImageWork. It is simply S = C / B. Or in English, Saturation equals the Chrominance divided by the Brightness. Just remember that "brightness" is calculated differently in the various color models (see this post which describes "brightness" in terms of RGB "whiteness" versus YUV "luma"). Note the same equation is "officially" quoted in other sources you can find on the web... but just in case you find something different, I wanted to point out that all my "saturation"-based color models (shown as color wheels in forum posts) use exactly that formula.
Sorry if that is all to "theoretical" for you... I really just wanted to show (with images) the difference between Chroma and Saturation. After reviewing the images you should see there is clearly a difference, although it is quite hard to describe with words! I also provided some links that hopefully will be helpful if you wish to investigate further. But it seems all is not well-defined... so please post any comments/questions about the topic, and I'll do my best to address them... hopefully the result will benefit all CBM programmers