Adds Perceptual Quantizer (PQ) transfer functions #218
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds the Perceptual Quantizer EOTF / EOTF-1 transfer functions.
They are defined on
[0, 1]
and[0, 10000]
domains respectively, and excursions outside these intervals may cause undefined results. We add a guard clause in each to protect against negative input values (which would breakMath.pow()
with a fractional exponent), while maintaining the monotonicity of the functions. This protects against the occasional value outside the expected domain, that is expected from usual usage of the API.A rough sketch of how these functions look (excuse the lack of axes):
Also clarified Jzazbz’s transfer functions in relationship with PQ — not exactly PQ but close.