Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Conversation

@Tom94
Copy link
Owner

@Tom94 Tom94 commented Dec 3, 2025

Previously, tev implemented HLG's inverse transfer function as just the inverse OETF, which produces scene-referred relative brightnesses that are technically fine to use. OpenEXR also is scene-referred relative. However, HLG mandates a specific extra step (its OOTF) in how scene-referred values should be converted to the colors that are rendered (absolute, display-referred brightness) -- and it would be annoying to weave this extra step later into tev's rendering pipeline. Rather, tev now applies the OOTF on load of HLG images and treats the resulting colors as display-referred (like PQ and other transfers).

This brings tev's rendering of HLG images in line with other software that can display them (e.g. macOS Preview and Chrome).

A little bit of refactoring was needed for this fix, because, unlike all other transfer functions, HLG's OOTF depends on all color channels rather than being per-component.

Worth noting that I have not found a single HLG-formatted image in the wild, other than one in this test image collection.

@Tom94 Tom94 force-pushed the fix-hlg branch 2 times, most recently from 48c2d57 to 5fa35db Compare December 3, 2025 09:54
Tom94 added 3 commits December 3, 2025 10:59
Previously, tev implemented hlg's inverse transfer function as just the
inverse OETF, which produces scene-referred relative brightnesses that
are technically fine to use. OpenEXR also is scene-referred relative.
However, HLG mandates a specific extra step (its OOTF) in how
scene-referred values should be converted to the colors that are
rendered (conversion to absolute, display-referred brightness) -- and it
would be annoying to weave this extra step later into tev's rendering
pipeline. Rather, tev now applies the OOTF on load of HLG images and
treats the resulting colors as display-referred (like PQ and other
transfers).

This brings tev's rendering of HLG images in line with other software
that can display them (e.g. macOS Preview and Chrome).

A little bit of refactoring was needed for this fix, because, unlike all
other transfer functions, HLG's OOTF depends on all color channels
rather than being per-component.
@Tom94 Tom94 merged commit b4a4b82 into master Dec 3, 2025
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants