Merge "Update gainmap documentation." into udc-dev

This commit is contained in:
TreeHugger Robot
2023-03-02 17:40:26 +00:00
committed by Android (Google) Code Review

View File

@@ -63,20 +63,20 @@ import libcore.util.NativeAllocationRegistry;
* as follows: * as follows:
* *
* First, let W be a weight parameter determining how much the gainmap will be applied. * First, let W be a weight parameter determining how much the gainmap will be applied.
* W = clamp((log(H) - log(displayRatioHdr)) / * W = clamp((log(H) - log(minDisplayRatioForHdrTransition)) /
* (log(displayRatioHdr) - log(displayRatioSdr), 0, 1) * (log(displayRatioForFullHdr) - log(minDisplayRatioForHdrTransition), 0, 1)
* *
* Next, let L be the gainmap value in log space. We compute this from the value G that was * Next, let L be the gainmap value in log space. We compute this from the value G that was
* sampled from the texture as follows: * sampled from the texture as follows:
* L = mix(log(gainmapRatioMin), log(gainmapRatioMax), pow(G, gainmapGamma)) * L = mix(log(ratioMin), log(ratioMax), pow(G, gamma))
* *
* Finally, apply the gainmap to compute D, the displayed pixel. If the base image is SDR then * Finally, apply the gainmap to compute D, the displayed pixel. If the base image is SDR then
* compute: * compute:
* D = (B + epsilonSdr) * exp(L * W) - epsilonHdr * D = (B + epsilonSdr) * exp(L * W) - epsilonHdr
* If the base image is HDR then compute:
* D = (B + epsilonHdr) * exp(L * (W - 1)) - epsilonSdr
* *
* In the above math, log() is a natural logarithm and exp() is natural exponentiation. * In the above math, log() is a natural logarithm and exp() is natural exponentiation. The base
* for these functions cancels out and does not affect the result, so other bases may be used
* if preferred.
*/ */
public final class Gainmap implements Parcelable { public final class Gainmap implements Parcelable {