ampas / idt-calculator

ACES Input Device Transform Calculator Apps
Other
10 stars 3 forks source link

Prosumer IDTs are clamped at 1.0 #75

Closed nick-shaw closed 7 months ago

nick-shaw commented 9 months ago

https://github.com/ampas/idt-calculator/blob/55c59d74149c2d32c3604e7d11cbb93a95849a54/aces/idt/prosumer_camera.py#L1404

The range element at the end of the prosumer CLF IDT is unnecessary, and is fact in set to clamp the output to a maximum value of 1.0, which is clearly undesirable in an ACES IDT.

KelSolaar commented 9 months ago

I'm trying to remember the reason why we did put that but I cannot. It is consistent with the P-2013-001 generator and its CLF output. @aforsythe : Any reason why we would have clamped the output? The CLT and DCTL are not for example.

nick-shaw commented 9 months ago

I didn't previously notice there was a clamp in a CLF generated by the P-2013-001 generator. But there is one. Oddly it is between the white balance gain matrix and the IDT matrix.

At least there is a Range node with a maxOutValue, but it is not set to clamp mode like the prosumer version.

Prosumer:

  <Range inBitDepth="32f" outBitDepth="32f" style="clamp">
    <maxInValue>1</maxInValue>
    <maxOutValue>1</maxOutValue>
  </Range>

P-2013-001:

  <Range inBitDepth="32f" outBitDepth="32f">
    <maxOutValue>1</maxOutValue>
  </Range>

But checking the CLF documentation, Range nodes clamp by default unless noClamp is specified.

The CLFs generated by the P-2013-001 version are also different in that the matrix process nodes have no descriptions.

KelSolaar commented 7 months ago

This was fixed in #76.