Converting HDR to sRGB for Display

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

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