feat: adding and enabling HBD-MD user controls through --hbd-mds
Description
Issue
In my previous merge request: !2598 (closed)
I discussed that adding use facing hbd-md user controls was the way to go to respect the default svt-av1 workflow and yet, still allow intermediate users targeting higher fidelity and higher quality encoding a way to jack up quality even further.
In this PR, I've added the user setting --hbd-mds, which stands for High Bit Depth Mode Decision Setting.
It was named --hbd-mds was to not conflict with the internal encoder variable hbd_md.
It has 3 functioning modes:
--hbd-mds 0, which respects preset defaults. Perfect for faster encoding.
--hbd-mds 1, which forces high bit depth mode decision coding at all times, providing visual quality and good coding gains with higher computational overhead over defaults. This is recommended for VOD style encoding when using Preset 5 and slower.
--hbd-mds 2 is the third mode that forces hybrid 8/10b coding. This is good to use on faster presets where CPU cycles aren't as abundant.
These are the metric test results carried over from the other MR. These may seem minor, but in terms of visual quality, the gains offered can sometimes be rather... striking as per my own subjective testing and what some other users seem to corroborate.
NOTE
When --enable-variance-boost 1 and --enable-qm 1 are set, full HBD mode decision becomes much stronger, but I don't have graphs for this.
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
Nothing much really.


