Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

crf-search: 2nd iteration 20/80 & disable on small min/max crf ranges #234

Merged
merged 3 commits into from
Nov 8, 2024

Conversation

alexheretic
Copy link
Owner

@alexheretic alexheretic commented Nov 1, 2024

  • crf-search: Tweak 2nd iteration logic that slices the crf range at the 25% or 75% crf point.
    • Widen to 20%/80% to account for searches of the "middle" two subranges being more optimal.
    • Disable when using custom min/max crf ranges under half the default.

The 2nd iter logic is a bit arcane and not at all obvious to the user. In future this should probably be configurable.

Relates to discussions in #227, #232

Example

So for default settings:

  1. Try 32
  2. Assuming 32 failed, try 19 (previously 21)
  • If failed try min-crf = 10
  • If success linear interpolate next crf between in range (19, 32)

The slight widening means more searches will get to linear interpolation on 3rd iter (those that 21 would have failed on). Though those 21 would have passed on will have slightly worse linear interpolated guess for 3rd iter.

The ones that still fail at 19 will continue to next try min-crf=10, but will benefit slightly on 4th iter with slightly tighter range to interpolate inside.

@alexheretic alexheretic merged commit 7afde02 into main Nov 8, 2024
2 checks passed
@alexheretic alexheretic deleted the middle-60 branch November 8, 2024 13:04
@alexheretic alexheretic changed the title crf-search: 2nd iteration 20/80 only on default min/max crf & vmaf>=94 crf-search: 2nd iteration 20/80 & disable on small min/max crf ranges Nov 8, 2024
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