EEDS TO CHANG

Perceptual Color Volume

Measuring the Distinguishable Colors of HDR and WCG Displays

Jaclyn Pytlarz and Robin Atkins

INTRODUCTIONMetrics exist to describe display capabilities such as contrast, bit depth, and resolution, but none yetexist to describe the range of colors produced by high-dynamic-range and wide-color-gamut displays.
This paper proposes a new metric, millions of distinguishable colors (MDC), to describe the range ofboth colors and luminance levels that a display can reproduce.

This new metric is calculated by these steps:1) Measuring the XYZ values for a sample of colors that lie on the display gamut boundary2) Converting these values into a perceptually-uniform color representation
3) Computing the volume of the 3D solid

The output of this metric is given in millions of distinguishable colors (MDC). Depending on the chosencolor representation, it can relate to the number of just-noticeable differences (JND) that a display(assuming sufficient bit-depth) can produce.

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
MEASURING THE GAMUT BOUNDARY

The goal of this display measurement is to have a uniform sampling of the boundary capabilities ofthe display. If the display cannot be modeled by a linear combination of RGB primaries, then aminimum of 386 measurements are required to sample the input RGB cube (9x9x6). Otherwise, the386 measurements may be simulated through five measurements (Red, Green, Blue, Black, and White).

We recommend the following measuring techniques:-For displaying colors, use a center-box pattern to cover 10% area of the screen-Using a spectroradiometer with a 2-degree aperture, place it one meter from the display-To exclude veiling-glare, use a flat or frustum tube mask that does not touch the screen

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
CONVERTING TO A PERCEPTUALLY-UNIFORM COLOR REPRESENTATION

After the XYZ values of the gamut boundary are collected either by measurement or simulation, thevalues must be converted to a perceptually-uniform representation. This paper describes conversion
to two color representations: CIE L*a*b* [1] and ICTCP [2]. ICTCP is recommended because it is a more
perceptually-uniform color representation (see Appendix A for details). CIE L*a*b*, however, may be
preferred because it is more widely used.

When reporting the final value, specify which representation is used.

XYZ to ICTCP (Recommended)
Calculate LMS
L = 0.3593X + 0.6976Y – 0.0359Z
M = -0.1921X + 1.1005Y + 0.0754Z
S = 0.0071X + 0.0748Y + 0.8433Z
Apply the PQ Function (ST 2084 [3])L’M’S’ = EOTFPQ-1(LMS)
Calculate ICTCPI = 0.5L’ + 0.5M’
CT = ( 6610L’ - 13613M’ + 7003S’ ) / 4096
Cp = ( 17933L’ - 17390M’ - 543S’ ) / 4096

XYZ to CIE L*a*b*
L* = 116 * f(Y/Yn) – 16a* = 500 * [ f(X/Xn) – f(Y/Yn) ]b* = 200 * [ f(Y/Yn) – f(Z/Zn) ]where:f(t) = "t1/3

t > (6/29)3t(1/3)(29/6)2+(16/116)

otherwise( Xn, Yn, Zn ) is the measured white point

Scale to JND’s
ICTCP = [I,CT,CP] * [720,360,720]

Note: Each axis of ICTCP is scaled [4] (from the original in ITU-R BT.2100 [5]) to convert the colorrepresentation from an efficient interchange format to a perceptually-uniform JND space. This axis
scaling is standardized in ITU-R BT.2124 [6] and is known as ITP.

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANGCOMPUTING THE 3D VOLUME

Now that we have measurements of the color-volume boundary and because we know the location ofthe points, it is fairly simple to compute the volume of the solid described by the vertices. (Refer to [7]for further explanation.)

The 3D-volume calculation process is broken down into these steps (see the example Matlab code inAppendix B):
1) Calculating the tessellation
2) For each triangle, computing the signed volume to the origin3) Summing the signed volumes and dividing by one million

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANGMDC REPORTING

After the 3D volume has been computed, the resulting number is typically in units of millions ofdistinguishable colors (MDC). Because the relative volumes are determined by the color
representation used to perform the calculations, specify the color representation with the reported
number. Although reporting the raw MDC number is useful, it may be of interest to compare the MDC
between displays. Below are two examples using the ICTCP MDC calculation:-

Example 1: %HDR (using BT.2100 color primaries and White=10000, Black=0 cd/m2)-

Example 2: %SDR (using BT.709 [8] color primaries and White=100, Black=0.1 cd/m2)

White Level (cd/m2)

Black Level (cd/m2)

Color Primaries

MDC%HDR%SDR

10,0000BT.2100

43100%

882%

1000.1

BT.709

4.9

11%

100%

1000

0.05

DCI P3 [9]

1842%

367%

The percentage may be helpful, but should be reported only in addition to the raw MDC value. Basedon application, other reference displays may also be used for comparison.

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
REFERENCES[1] CIE L*a*b* Color Scale: http://cobra.rdsor.ro/cursuri/cielab.pdf[2] ICtCp Color Space: http://www.dolby.com/us/en/technologies/dolby-vision/ICtCp-whitepaper.pdf[3] Society of Motion Picture & Television Engineers, “High Dynamic Range Electro-OpticalTransfer Function of Mastering Reference Displays”, SMPTE ST 2084:2014, August 2014, 114.
[4] Pytlarz, J., Pieri, E., Atkins, R. 2017. Objectively Evaluating High-Dynamic-Range and WideColor-Gamut Color Differences. SMPTE Motion Imaging Journal. March 2017, pp. 27 to 32.
[5] International Telecommunication Union (ITU), 2017. Image parameter values for highdynamic range television for use in production and international programme exchange,Recommendation ITU-R BT.2100-1.
[6] International Telecommunication Union (ITU), 2019. Objective metric for the assessment of
the potential visibility of colour differences in television, Recommendation ITU-R BT.2124-0.
[7] Zhang, Chen. Efficient Feature Extraction for 2D/3D Objects in Mesh Representation[8] International Telecommunication Union (ITU), 2015. Parameter values for the HDTV
standards for production and international programme exchange, Recommendation ITU-R
BT.709-6, 2015.
[9] Society of Motion Picture & Television Engineers, “SMPTE Standard for D-Cinema Quality –Screen Luminance Level, Chromaticity and Uniformity”, SMPTE 431-2-2006.
[10] MacAdam, D. L.,1942. Visual Sensitivities to Color Difference in Daylight, Journal of theOptical Society of America, 32, May 1942, pp. 247-274.

Version 7.2

Dolby Laboratories, Inc. © 2023EEDS TO CHANGREVISION LIST:
1) In Version 5, the scalars have been changed from [2048,1024,2048] to [720,360,720]. This wasto better reflect subjectively determined JND’s.
2) In Version 6, the MDC values and plots have been changed to reflect the new scalars givenin (1). Compared to Version 5, each MDC value is now scaled by the ratio of (720/2048)3.
3) In Version 7.2, an error where MDC values were over-predicted for displays with a high blacklevel was corrected. Special thanks to Charles Poynton for finding the bug and to Dale
Stolitzka for validation.
4) In Version 7.2, two illustrations were added for clarification (measurement pattern example,and tessellation illustration)

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
APPENDIX A: ICTCP Overview
The ICTCP color representation was designed to describe perceptually-uniform just-noticeable
differences (JNDs) over a wide range of luminance levels and colors. Then, for efficient encoding, it
was stretched to fill the [-0.5, 0.5] and [0, 1] range. Unlike CIE L*a*b*, CIECAM02, or many other color
appearance models, it is not normalized by the peak luminance or an estimate of viewer adaptation.
Instead, it is an absolute color representation used to describe the number of visually-distinguishable
colors that can be presented by a display device.

As shown in the left-hand figure below, the I (or Intensity) channel corresponds closely to luminanceencoded with the perceptual quantizer (PQ). Thus, we consider unique steps along the Intensity axis
to be a JND. The opponent color axes CT and CP are also designed to yield equal JNDs before being
stretched to fill the [-0.5, 0.5] range. This is shown in the right-hand figure below using the MacAdam
ellipse data [10]. A perfectly uniform color representation yields circular and equal size ellipses andthe ICTCP color representation exhibits fairly consistent sizes and shapes.

There is no upper limit to the color volume that can be represented by ICTCP, because it can describe
all the colors within the spectral locus with no limit on the maximum luminance. The MDC scaling iscomputed such that a value of one in ICTCP is roughly a JND. Evaluating the color volume of a display

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
using the ICTCP color representation provides a rough count of the number of visually distinguishable
colors that the display can reproduce.

Below is an example of computing MDC using ICTCP and CIE L*a*b*. Using ICTCP (an absolute colorrepresentation), the display with a 600 cd/m2 white level (matched black level and color primaries), asexpected, has roughly twice the MDC of the 100 cd/m2 display. Using CIE L*a*b* (a relative colorrepresentation), due to the normalization by peak white, the display with a 600 cd/m2 white level has
nearly the same MDC as the 100 cd/m2 display. This is the reason why we recommend computing
MDC in ICTCP. By using an absolute color space, the color reproduction capabilities of different
displays can be compared against each other, which is a critical task for marketing, reviewing, anddesigning display devices.

Version 7.2

Dolby Laboratories, Inc. © 2023

EEDS TO CHANG
APPENDIX B: Matlab code for calculating MDC% Define EOTF functions
EOTF = @(PQ) (max(PQ.^(32/2523)-(3424/4096),0) ./ ...
((2413/128)-(2392/128)*PQ.^(32/2523))).^(16384/2610)*10000;
invEOTF = @(Lin) (((3424/4096)+(2413/128)*(max(0,Lin)/10000).^(2610/16384)) ./ ...
(1+(2392/128)*(max(0,Lin)/10000).^(2610/16384))).^(2523/32);% Define lattice points
N = 9;
Nodes = linspace(0,1,N);[C1,C2] = meshgrid(Nodes,Nodes);zz = zeros(N,N);oo = ones(N,N);
RGB = [ C1(:)
C2(:)
zz(:);...
C1(:)
1-C2(:) oo(:);...
C2(:)
zz(:)
C1(:);...
1-C2(:) oo(:)C1(:);...
zz(:)
C1(:)
C2(:);...
oo(:)
C1(:)
1-C2(:)];% Simulate XYZ measurements
Black = 0.1;
White = 100;
M = [3.2410 -0.9692 0.0556; -1.5374 1.8760 -0.2040; -0.4986 0.0416 1.0570];
XYZ = EOTF(RGB * (invEOTF(White) - invEOTF(Black)) + invEOTF(Black)) / M;
% Convert to JND scaled ICtCp
XYZ2LMSmat = [0.3593 -0.1921 0.0071; 0.6976 1.1005 0.0748; -0.0359 0.0754 0.8433];
LMS2ICTCPmat = [2048 2048 0; 6610 -13613 7003; 17933 -17390 -543]'/4096;
ICTCP = bsxfun(@times, invEOTF(XYZ * XYZ2LMSmat) * LMS2ICTCPmat, [720, 360, 720]);% Create tessellation of the surface[i,j,f] = meshgrid(0:N-2, 0:N-2, 0:5);
startidx = f*N*N + i*N + j + 1;
tri = [[startidx(:), startidx(:)+1, startidx(:) + N+1]; ...
[startidx(:), startidx(:)+N+1, startidx(:) + N]];% Calculate the volume of the tessellation
v321 = ICTCP (tri(:,3),1) .* ICTCP (tri(:,2),2) .* ICTCP (tri(:,1),3);v231 = ICTCP (tri(:,2),1) .* ICTCP (tri(:,3),2) .* ICTCP (tri(:,1),3);v312 = ICTCP (tri(:,3),1) .* ICTCP (tri(:,1),2) .* ICTCP (tri(:,2),3);v132 = ICTCP (tri(:,1),1) .* ICTCP (tri(:,3),2) .* ICTCP (tri(:,2),3);
v213 = ICTCP (tri(:,2),1) .* ICTCP (tri(:,1),2) .* ICTCP (tri(:,3),3);v123 = ICTCP (tri(:,1),1) .* ICTCP (tri(:,2),2) .* ICTCP (tri(:,3),3);v = (1/6)*(-v321 + v231 + v312 - v132 - v213 + v123);
MDC = round(sum(v)/1000000,1);
percHDR = round(MDC/43*100);percSDR = round(MDC/4.9*100);% Optional PLOT THE VOLUME
figure(1), clf; view([-37.5 15]);
patch('faces',tri,'vertices', ICTCP(:,[2 3 1]),...
'facevertexcdata',(EOTF(RGB)/10000).^(1/3),...
'facecolor','interp','edgealpha',0.1);
xlabel('C_T'),ylabel('C_P'),zlabel('I'); title(sprintf('Color Volume: %.2g MDC',MDC));xlim([-720/4 720/4]), ylim([-720/2 720/2]), zlim([0 720]), grid on; box on;

Version 7.2

Dolby Laboratories, Inc. © 2023