In this post, I opined that the gamut of an RGB color space did not depend on its gamma, or nonlinearity, subject to some constraints on the nature of the nonlinearity and the precision of the specification of the values.

Thanks to a discussion with a DPR poster who I only know as JDin Oregon, I think I can prove it.

How’s this?

Visualization of the gamut of an RGB color space, say sRGB, involves mapping the envelope of RGB color space into a device-independent color space. Such a color space is most useful for gamut visualization if it attempts to be perceptually uniform. Two such color spaces are CIELab and CIELuv. In order for a RGB color space to be mapped to either Lab or Luv, it must first be converted to XYZ, which is a linear RGB color space.

If the three nonlinearities associated with the original color space map 0 to 0 and 1 to 1. The values of the six vertices of the gamut cube in the subject color space form a hexahedron when transformed to XYZ. The location of the vertices in XYZ can be computed from the chromaticities of the three primaries and from that of the white point. The faces of the hexahedron in XYZ, when transformed into the device independent perceptually uniform space like Lab or Luv, define the gamut of the input RGB color space.

Assuming that the nonlinearity of the input color space is everywhere defined, continuous, and monotonic between 0 and 1, any rational value between 0 and 1 can be specified, given sufficient precision.

The six faces of the hexahedron in XYZ may thus be specified independent of the input nonlinearity by linear interpolation among the corners.

To summarize, the nonlinearity does not affect zero or full scale values. Thus the planes of the hexahedron are not changed. Only the distribution of colors within the plane are changed.

## Leave a Reply