How does a 3D LUT map color gamuts if all it does is give an Output RGB value for a given RGB Input

Started 2 months ago | Questions thread
OP Mandem Junior Member • Posts: 28
Re: Colorimetric Color Space Mapping

Jack Hogan wrote:

Mandem wrote:

spider-mario wrote:

Mandem wrote:

I'm trying to understand what the term "interpret" means here. Are you saying if I had a rec2020 and a rec709 screen right next to each other the (810,236,75) rec2020 would produce the same color as the (1023,0,0) rec709 which basically means the color shown by both screens has the same chromaticity coordinates on a CIE XYZ/1931 diagram.

Yes. (810, 236, 75) in Rec. 2020, after linearization, becomes (642, 71, 17), which means 642/1023 of the Rec. 2020 “red” primary (which in XYZ with D65 white point is approximately (63.70, 26.27, 0)), plus 71/1023 of its “green” primary (14.46, 67.80, 2.81), plus 17/1023 of its “blue” primary (16.89, 5.93, 106.10). The result is an XYZ triplet of approximately (41.25, 21.29, 1.96), which matches the red primary of Rec. 709 which is what you would get with (1023, 0, 0) on the Rec. 709 display.

Lowercase x and y are computed from the XYZ triplet as respectively X / (X + Y + Z) and Y / (X + Y + Z), here giving the (0.640, 0.330) xy coordinates that you might have been expecting.

Sorry, but what are the coordinates you are using for your rec 2020 primaries? I am only familia with the ones in the image below

No need to be sorry, the answer to your question has to do with mapping between color spaces, here colorimetric ones.

Each of the 3 (R,G,B) components of a colorimetric color space is constrained to the normalized floating point range 0->1 (unnormalized discrete 0->1023 in your example). Every tone in the space can then be represented by a tripled within it, say (0.2,0.3,0.4). Tones outside of the range are either clipped or blocked. The system is ideally linear with energy, meaning that an input that produces the response (0.4,0,0) represents twice the intensity of (0.2,0,0).

Whenever we have a three dimensional linear system it is tempting to put it on three axes. In that case the space can be thought of being a cube, or more generically a parallelepiped . All colorimetric color spaces are parallelepipeds in the normalized range 0->1.

Output devices can also be considered to have operating ranges with inputs normalized from 0->1. But for each what that range represents physically is different, meaning that the relative parallelepiped is stretched or compressed accordingly, as Tom suggests above. Sometimes their response becomes non-linear but we'll ignore that for now.

To make tones from one color space properly fit into another, we stretch or compress them appropriately by linear projection via a 3x3 matrix. You can see samples of matrices to move from space to space here for instance. spider-mario will have used a different one for his example.

Of course the same projection effect can instead be obtained less precisely via a pre-computed discrete LUT.


This is EXACTLY the answer I was looking for. I had read multiple times online that to transform from one space to another a conversion matrix has to be applied to a linearised projection and was wondering how does a LUT accomplish this when it's just giving an Output RGB value. On the other hand, this is exactly what Color Space Transforms do correct?

Now I understand that a LUT just spits out RGB values (at a given sample rate) which have been inserted by manufacturers taken from the converted matrix. That is there is no actual matrix coversion happening in a LUT. The manufacturers just insert the output rgb values that they've derived from a given conversion matrix(In a way mimicking the end result of an actual Perfect color space transform). Furthermore, since it's at a given sample rate, error is introduced due to interpolation between the sample rates.

Post (hide subjects) Posted by
Keyboard shortcuts:
FForum PPrevious NNext WNext unread UUpvote SSubscribe RReply QQuote BBookmark MMy threads
Color scheme? Blue / Yellow