fix: move full hbd md from Preset -1 to Preset 2 for increased visual quality and fidelity with minor CPU cycle tradeoff
Description
Issue
In svt-av1 3.1.2, full 10-bit mode decision (hbd_md) was activated starting from Preset 2. Considering that Preset 2 was one of the slower presets and usually the one recommended for maximum quality encoding if you had the time, this was a reasonable choice.
However, in 4.0.0, this was moved from being enabled at Preset 2 to enabled at Preset -1, which is abysmally slow. The problem with this change is that it kneecaps the max visual quality possible on slower presets that were already quite slow, as expected by the user. This is particularly important when using powerful features like variance boost and ac-bias, which aren't enabled by default, depend on higher quality mode decisions to fully unleash their potential; without 10-bit MD, their visual quality boost isn't as powerful, which is how I noticed this issue.
Even metrics like butteraugli, ssimulacra2 and CVVDP agree that this change was not worth the CPU cycles gain.
Author(s)
Performance impact
- quality
- memory
- speed
- 8 bit
- 10 bit
- N/A
Test set
- other
Merge method
- Allow the maintainer to squash and merge when PR is ready to create a 1-commit to the master branch. The maintainer will be able to fix typos / combine commit messages to create a more readable 1-commit message or use whatever is stated in the 'Description' section
- I will clean up my commits and the maintainer shall use 'rebase and merge' to the master branch
Additional notes
To avoid surprises like this in the future, a parameter called --hbd-mds borrowed from svt-av1-hdr that I implemented in svt-av1-psyex a while back should be added to let the user control the visual quality and CPU cycles tradeoff.


