W3C home > Mailing lists > Public > public-colorweb@w3.org > February 2022

Converting HDR to sRGB for Display

From: Simon Thompson - NM <Simon.Thompson2@bbc.co.uk>
Date: Mon, 7 Feb 2022 16:26:40 +0000
To: "public-colorweb@w3.org" <public-colorweb@w3.org>
Message-ID: <AS8PR01MB82582B289829248EB6ED2585FD2C9@AS8PR01MB8258.eurprd01.prod.exchangelabs.com>
Hi all,

Iíve been giving some more thought to the issues highlighted in the last call.

It would be preferable if the connection space contained only data within the sRGB range to just map it directly to sRGB.  However, if the connection space has values outside sRGB (i.e. outside the range 0-1) it would be preferable to map the connection space to sRGB.

Is it possible to test the max and min values of the RGB data?

To connect the connection space with HDR data to an sRGB monitor, one can convert to HLG then apply:

function tonemapREC2100HLGtoSRGBdisplay(r, g, b) {
  const systemGamma = 2.2;
  const r1 = simpleTransform(r, systemGamma);
  const g1 = simpleTransform(g, systemGamma);
  const b1 = simpleTransform(b, systemGamma);
  const [r2, g2, b2] = matrixXYZtoSRGB(matrixBT2020toXYZ(r1, g1, b1));
  const r3 = simpleInverseTransform(r2, systemGamma);
  const g3 = simpleInverseTransform(g2, systemGamma);
  const b3 = simpleInverseTransform(b2, systemGamma);
  const [r4, g4, b4] = limitTosRGBGamut(r3, g3, b3);
  return [r4, g4, b4];

Secondly, if the Operating System requires the diffuse white level to be scaled to a user defined value, do we need to:

  *   create a method to scale the luminance, and
  *   ensure that the highlights arenít clipped when displayed on a monitor which can not manage the matching peak luminance value?

Best Regards


Simon Thompson MEng CEng MIET
Senior R&D Engineer
BBC Research and Development South Laboratory
Received on Monday, 7 February 2022 16:30:53 UTC

This archive was generated by hypermail 2.4.0 : Monday, 7 February 2022 16:30:55 UTC