Completely refactor tone mapping, color spaces, everything
Supersedes !210 (closed)
Adds an extra commit to completely overhaul pl_color_space
, merging it with conventional HDR metadata, nuking light
, changing the way SDR curves are handled in libplacebo, and simplifying a lot of stuff.
TODO:
-
Fix 3DLUT inputs (need to ingest black-scaled inputs!)(Edit: Nvm, this already round-trips because we encode in gamma light before feeding the content into the 3DLUT) -
Use direct GLSL for naive black point compensation -
Add fallbacks for the old fields ( sig_peak
etc.) -
Add automatic tone mapping curve selection heuristics -
Investigate possibility of black point shift (with the new ICC BPC changes) -
Add better gamut mapping algorithmsthis MR is large enough -
Parse primaries from ICC profilethis MR is large enough -
Properly respectneeds to be coordinated with downstream firstintent
-
fix PL_GAMUT_DARKEN
black clipping
Edited by Niklas Haas
Merge request reports
Activity
Filter activity
added 1 commit
- f759a261 - colorspace: completely refactor pl_color_space
added 11 commits
- 00c34554 - tone_mapping: add new tone mapping API
- 17d13b80 - shaders: tweak LUT selection logic
- 04839d32 - shaders/colorspace: use new tone mapping API
- e9dce242 - tests/bench: add HDR tone-mapping benchmark
- 432e39ef - demos/plplay: switch to new tone mapping API
- e32353ec - renderer: move peak detection to pl_render_high_quality_params
- b6fa6d53 - demos/plplay: implement target ICC profile loading
- 7deb10fa - demos/plplay: fix the 'disable tone mapping' check box
- ccf9f538 - demos/plplay: enable output color override by default
- 720e89e4 - demos/plplay: improve HDR level slider scaling
- 540cc08e - colorspace: completely refactor pl_color_space
Toggle commit listmentioned in merge request !210 (closed)
Tested with a low nits frame and it seems
plplay
loses some contrast.
Comparison with madVR/master/refactor: https://slow.pics/c/sxx9pMOnIn the refactor image, the clouds are pretty flat.
File: https://0x0.st/orY4.hevc
edit: Fixed the ST2086 metadata, so now BT.2390 is nearly identical and BT.2446 is brighter.Edited by quietvoidadded 9 commits
- c70552e5 - shaders/colorspace: use new tone mapping API
- 8bd3a304 - tests/bench: add HDR tone-mapping benchmark
- 20c007ca - demos/plplay: switch to new tone mapping API
- 0f1a8570 - renderer: move peak detection to pl_render_high_quality_params
- 8aa243ba - demos/plplay: implement target ICC profile loading
- ff6e544b - demos/plplay: fix the 'disable tone mapping' check box
- 3104debd - demos/plplay: enable output color override by default
- bcce21aa - demos/plplay: improve HDR level slider scaling
- 0be1f63c - colorspace: completely refactor pl_color_space
Toggle commit listadded 15 commits
-
0be1f63c...9d506423 - 2 commits from branch
master
- 7d6c8e1c - shaders/colorspace: simplify gamut clipping logic
- 8cd22944 - shaders/colorspace: disable gamut clipping by default
- e58d132d - tone_mapping: add new tone mapping API
- 0c0c51ab - shaders: tweak LUT selection logic
- e1e5c125 - shaders/colorspace: use new tone mapping API
- 4da63a96 - tests/bench: add HDR tone-mapping benchmark
- afce55a5 - demos/plplay: switch to new tone mapping API
- 90dbe03e - renderer: move peak detection to pl_render_high_quality_params
- 5be32a0e - demos/plplay: implement target ICC profile loading
- 38e4b860 - demos/plplay: fix the 'disable tone mapping' check box
- 8edb6196 - demos/plplay: enable output color override by default
- a3c1a011 - demos/plplay: improve HDR level slider scaling
- 6c75a52d - colorspace: completely refactor pl_color_space
Toggle commit list-
0be1f63c...9d506423 - 2 commits from branch
added 11 commits
- b6f8e7e9 - tone_mapping: add new tone mapping API
- 2192dafb - shaders: tweak LUT selection logic
- 73344933 - shaders/colorspace: use new tone mapping API
- e5c598d5 - tests/bench: add HDR tone-mapping benchmark
- 26387ab2 - demos/plplay: switch to new tone mapping API
- b9ae20ca - renderer: move peak detection to pl_render_high_quality_params
- 0845f7cf - demos/plplay: implement target ICC profile loading
- 1622face - demos/plplay: fix the 'disable tone mapping' check box
- 3065c6a9 - demos/plplay: enable output color override by default
- cc9aa1d8 - demos/plplay: improve HDR level slider scaling
- 95217422 - colorspace: completely refactor pl_color_space
Toggle commit listadded 11 commits
- 9c537166 - tone_mapping: add new tone mapping API
- a1f27450 - shaders: tweak LUT selection logic
- ef455ad3 - shaders/colorspace: use new tone mapping API
- 7c022105 - tests/bench: add HDR tone-mapping benchmark
- 7f2c58b8 - demos/plplay: switch to new tone mapping API
- 6a2e5085 - renderer: move peak detection to pl_render_high_quality_params
- 27419e49 - demos/plplay: implement target ICC profile loading
- cd19140c - demos/plplay: fix the 'disable tone mapping' check box
- fc146540 - demos/plplay: enable output color override by default
- 665bbbe5 - demos/plplay: improve HDR level slider scaling
- f1e08e77 - colorspace: completely refactor pl_color_space
Toggle commit listadded 11 commits
- f9a910b5 - tone_mapping: add new tone mapping API
- 396b3349 - shaders: tweak LUT selection logic
- fbadd3f4 - shaders/colorspace: use new tone mapping API
- 2e987400 - tests/bench: add HDR tone-mapping benchmark
- f864ef5d - demos/plplay: switch to new tone mapping API
- 35b80853 - renderer: move peak detection to pl_render_high_quality_params
- da829009 - demos/plplay: implement target ICC profile loading
- 16c110ae - demos/plplay: fix the 'disable tone mapping' check box
- d7f43e86 - demos/plplay: enable output color override by default
- 3d3227ee - demos/plplay: improve HDR level slider scaling
- bcef8159 - colorspace: completely refactor pl_color_space
Toggle commit listadded 10 commits
- 0369eeb3 - shaders/colorspace: use new tone mapping API
- f5a66a56 - tests/bench: add HDR tone-mapping benchmark
- dfc6dd6d - demos/plplay: switch to new tone mapping API
- 9076ed4d - renderer: move peak detection to pl_render_high_quality_params
- ab42ab91 - demos/plplay: implement target ICC profile loading
- 7cdf6876 - demos/plplay: fix the 'disable tone mapping' check box
- 3e87409e - demos/plplay: enable output color override by default
- 030c7cb0 - demos/plplay: improve HDR level slider scaling
- 9cfd789f - colorspace: completely refactor pl_color_space
- d6f3d078 - (WIP) refactor gamut handling options
Toggle commit list
Please register or sign in to reply