In RGB model, each pixel is defined by 3 bytes, for R,G and B respectively. This gives a total of 224 colors, including 256 tones of grey.
It is very common to represent HSV/HSB/HSL models with floats (not bytes). Most descriptions describe hue as the "angle" in a cone, so it’s sensible to treat it as a real number.
But how does this relate to the down-to-earth limit of 224 total colors..? How many distinct hues are available? More over, it seems to me that the number should depend on other parameters – saturation for instance..
Interesting reading: https://web.archive.org/web/20170622125306/http://www.dig.cs.gc.cuny.edu/manuals/Gimp2/Grokking-the-GIMP-v1.0/node52.html
In HSV, the hue is defined as
(link). In each of the six sectors (R-Y, Y-G …), there are equally many hues. Additionally, there are six hues at the boundary between the regions. So,
6 + 6 * huesRY.In the red-yellow sector, R > G > B, so both arguments to atan2 are positive.
since we can apply any linear transformation to the sets of [x,y] and not change the count of its ratios,
x / (x+2y) == x / yif we subtract the same value from all R,G,B, the ratio does not change, so assume B=0
so, there are six times as many hues as there are ratios between two positive integers that are both below 2^8 (assuming 8 bits per channel), and six more. There are as many ratios as there are pairs of coprime positive integers. The number of positive integers below
nthat are coprime withnis called the Euler’s totient function. OEIS lists its partial sums. There are exactly 19948 pairs of coprime positive integers below 256.6 * 19948 + 6 = 119 694
There are exactly 119 694 different hues in the HSV model that correspond to a color in the 8-bit RGB model. Note that they are not spaced evenly.
If 8 bits per channel are used in the HSV model, then there are less colors than in the RGB model with 8 bits per channel simply because some HSV triples map to the same color while every RGB triple defines a different color.