HDR: speed up reading by around 4x #3590
Merged
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.
Description
Most of the cost in HDR file reading was converting from RGBE to floats, inside
ldexpf()
, which at least on Windows/VS2022 spends most of the time inside_ctrlfp()
. But we only have 256 possible exponents in total, so just use a precomputed table.On my PC (Windows 10, VS2022, Ryzen 5950X) with #3588 applied, this change gets file read time for an 8x resolution HDR image from 1.10s down to 0.27s
Tests
No new tests necessary.
Checklist:
have previously submitted a Contributor License Agreement
(individual, and if there is any way my
employers might think my programming belongs to them, then also
corporate).
(adding new test cases if necessary).