Repository navigation
Conversation
speed_temporal declares speed_max_val ("maximum value allowed; larger
values will be clipped to this value", default 1000, range 0 to 1000) and
stores it in speed_temporal_max_val, but extract() appends the raw score
and never reads it. speed_chroma applies the same option with
MIN(score, speed_chroma_max_val), so the option works on one extractor and
is ignored on the other.
On src01_hrc00_576x324 against src01_hrc01_576x324,
--feature speed_temporal=speed_max_val=3 scores 24.802658, 23.856455 and
23.384417 for frames 1 to 3 (the same as without the option) on master;
with this change every frame is 3.0. Scores below the bound, which is every
score at the default of 1000 that the shipped models produce, are not
changed.
Add test_speed_temporal: 256x256 noise against weaker noise, scored with
the default bound (above 0.5) and with speed_max_val=0.5 (exactly 0.5). The
second case fails on master and passes with this change.
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
speed_temporaldeclaresspeed_max_val("maximum value allowed; larger values will be clipped to this value", default 1000, range 0 to 1000) and stores it inspeed_temporal_max_val, butextract()appends the raw score and never reads it.speed_chromaapplies the same option withMIN(score, speed_chroma_max_val), so the option works on one extractor and is silently ignored on the other.What breaks today
speed.c:1643-1645on master9e48141b:speed_temporal_max_valhas no other use in the file (grep speed_temporal_max_val speed.c: the struct member and the option offset).Reproducer, GCC 16.2.1 release build, src01 576x324, frames 1 to 3 (identical under
--cpumask -1):speed_max_val=3Fix
MIN(score, s->speed_temporal_max_val)on the appended value, the expressionspeed_chromauses. Scores below the bound are unchanged, which is every score at the default of 1000.Test
test_speed_temporal(new): 256x256 noise against weaker noise through the extractor (vmaf_feature_extractor_context_*), scored with the default bound (the fixture must exceed 0.5) and withspeed_max_val=0.5(the score must be exactly 0.5). The second assertion fails on master ("speed_max_val must clip the score") and passes with this change.Validation
x86-64 Linux, GCC 16.2.1, master
9e48141b, branch head21f913f1;-Denable_float=true -Denable_checkasm=true.meson test: 26/26 here, 25/25 on master (the extra test is the new one).-Db_sanitize=address,undefined -Db_lto=false: 23 pass and 3 fail of 26 here, 22 pass and 3 fail of 25 on master;test_predictandtest_pic_preallocation(SIGABRT from LeakSanitizer) andcheckasm(heap-buffer-overflow inadm_dwt2_16) fail on both and are untouched by this change;test_speed_temporalpasses..engagement/golden_compare.pymaster binary against this branch: ALL IDENTICAL (default dispatch andcpumask=-1).speed_temporal(thevmaf_v1.0.16*models setspeed_max_val=45forspeed_chromaonly).speed_temporal_feature_extractor_test.pyasserts 18.9411808 and 16.721622 with the default bound; they are below it and unchanged. The Python suite itself was not run.Not covered