Hello Claude, Matju et al,
Colour perception is probably as complicated as auditory perception and the accurate representation of colour on digital video systems is probably more difficult that the accurate representation of audio. We can perceive a much wider range of colour and brightness (chrominance and luminance) than the majority of digital video systems can represent, so this wide-gamut information has to be mapped to the narrow-gamut of the systems which we have.
To further complicate things, our response to brightness and colour is not linear and so those perceptual curves have to be taken into account during that mapping into video signals (chroma and luma). There are also many other non-linearities in how video displays work so that all has to be taken into account. Add the complexities of PAL, NTSC and SECAM to that and you're set for a party!
Most video digitisation systems also use 'chroma sub-sampling' which is a way of reducing the amount of information which needs to be stored (this is a first level of compression or coding which occurs before anything else like MPEG compression is applied). This uses that fact that we are more sensitive to differences in brightness than variations in colour. The YCbCr (corresponds the YUV colour space of our perception) video representation uses this technique which makes it more compact while giving approximately equal quality to an larger RGB representation.
Anyone working with colour video systems should know and read Charles Poynton's writing on this subject - he is the acknowledged expert. If you only have one book on your shelf it should be his "Digital Video and HDTV". He does have much useful information also on his web site: http://poynton.com/
For example, he has a guided tour of colour space here: http://poynton.com/papers/Guided_tour/abstract.html
[you can also be amazed, amused or angered by the way he vacillates between 'color' and 'colour' in his writing...]
hope that helps, Andrew
p.s. other notable datum: Poynton taught the very first ever microprocessor course given at an art school. (In the 1970s at the Ontario College of Art in Toronto)
On Wed, 12 Dec 2007, pd-list-request@iem.at wrote:
Hi,
Redirecting from GEM-dev as it's not about GEM development...
Mathieu Bouchard wrote:
if you do a polar transform on YUV, you have something easier, faster and more correct all at once. I usually just skip the polar transform: if you apply rotations directly on YUV values, you can make very believable hue shifts.
Interesting, I'm in the process of experimenting a bit with different colour spaces, got in a real headache with XYZ and CIE L*a*b and so on, but YUV's simplicity may win.
HSV is dubious in part because the apparent brightness at maximum so-called value is very variable and seems to peak high or low at secondaries or primaries: compare yellow (brightness 89%) and blue (brightness 11%). this really makes HSV suck sometimes. YUV does not have this problem.
I tried a hybrid approach:
"$1 1 1" | [hsv2rgb] | [rgb2yuv] | "0.5 $2 $3" | [yuv2rgb]
and that seems to eliminate the bad brightness mismatches, at the cost of some colours seeming a bit washed out (blue) or muddy (yellow).
Attached image demonstrates the difference.
Wondering if there's some set of "perceptual brightness curves" similar to the "isophonic curves" [1] there are for perceived loudness of different frequencies and levels led me to [2], which seems very complicated again.