[PD] Colour in Digital Video

Andrew Brouse brouse at music.mcgill.ca
Wed Dec 12 22:31:48 CET 2007


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 at 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.





More information about the Pd-list mailing list