[argyllcms] Re: Calibrate to BT.2100 PQ curve?

  • From: Niklas Haas <argyll@xxxxxxxxx>
  • To: Graeme Gill <graeme@xxxxxxxxxxxxx>
  • Date: Mon, 26 Feb 2018 07:09:08 +0100

On Mon, 26 Feb 2018 13:09:02 +1100, Graeme Gill <graeme@xxxxxxxxxxxxx> wrote:

Niklas Haas wrote:

Hi,

Put another way, what we'd essentially be trying to do is calibrate our
displays to a linear light fp16 response so we can use them with fp16
compositing and get a color correct workflow throughout. (Although for
practical reasons I imagine we'd still throw a simple gamma function in
front of the LUT just to space the values better, if this can be
arranged for by the compositing process. Perhaps even PQ, since it
boasts being the most “optimal” such response)

but how do the signals get to the display ? i.e. it's
highly unlikely in the near future that displays will take
fp16 data across a DVI/HDMI/DP etc. link. Much more likely that
they will support HDR10 or Dolby Vision encoding.

Cheers,
      Graeme Gill.


This is true, but I'm implying that the conversion from linear fp16 to
HDR10/PQ can happen inside the GPU hardware. The only real requirement
here is that the GPU accepts fp16 for scanout before color management
/ compositing, which all three vendors (intel, AMD and nvidia) are
working on.

What happens *between* the GPU and the display is ultimately of no real
concern, since ArgyllCMS's only job is to tune the parameters exposed by
DRM/X11 in order to achieve a desired end-to-end response (scanout
buffer -> displayed light). As an aside, the DRM people are also working
on an API that would expose more of the GPU's capabilities here. Instead
of just the three 1D LUTs, it will be possible to have something more
like 1DLUT -> Shaper Matrix -> 1DLUT, and I believe even a full 3DLUT is
supported by some (recent?) GPUs. With the help of a shaper matrix it
will definitely be possible to even do gamut extension (BT.709 ->
BT.2020) or color conversion (RGB -> YCbCr) during scanout, so whatever
HDR10 formats would be required should be straightforward to support.

The only question is how they end up dealing with fp16 scanout and LUTs
being used at the same time, since indexing a LUT by a float value is
nontrivial, but I think this is not a question ArgyllCMS needs to solve.

Other related posts: