Skip to content

Conversation

@RunDevelopment
Copy link
Collaborator

This PR implements a minor optimization for Inter4 blocks.

Previously, it picked the starting endpoints (min/max) by ignoring values very close to 0 and 1 and getting the min/max of those. However, the threshold that defines "never" close is intentionally restrictive to ensure correctness, which can lead to some values like 0.999 not being mapped to 1 and picked as the max.

I fixed this in this PR by iteratively trying to pick lower and lower max values for the endpoint (and similarly, higher and higher min values). This successfully improves the quality of certain inter4 blocks.

Unfortunately, the quality gains are meager. base.png gained +0.1 dB, but that's an outliner. Most images gain around +0.01 dB from my testing. This comes at the cost of BC4 High now being +5% slower. Still worth it IMO.

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.

1 participant