CMRT 26: Worker: Port FingerprintMatcher from PR #15585 POC - #35
Open
Swarnadip-Kar wants to merge 1 commit into
Open
CMRT 26: Worker: Port FingerprintMatcher from PR #15585 POC#35Swarnadip-Kar wants to merge 1 commit into
Swarnadip-Kar wants to merge 1 commit into
Conversation
Coverage Report for CI Build 27872408352Coverage remained the same at 30.438%Details
Uncovered ChangesNo uncovered changes found. Coverage RegressionsNo coverage regressions found. Coverage Stats
💛 - Coveralls |
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.
Turns Daniel's matchFingerprints() POC (PR mixxxdj#15585) into a real,
non-debug-gated class: FingerprintMatcher. This is the comparison engine
CMRT 27's grouping pipeline calls -- nothing wires it up yet, this PR is
just the algorithm itself plus its own constants.
Public API
public constants, since CmrtGroupingService needs the same values
Algorithm, split into two phases (private)
(the sin() correction term), the 2%-of-unique-size uniqueness guard, and
the XOR/popcount bit-error score with diversity correction for
repetitive audio
Ported as-is, not fixed (commented, not silently changed)
the UNIQ_BITS they declare -- kept the same bucket width rather than
changing what "duplicate item" means without a deliberate decision to.
alignment, same as the POC. Works in practice; flagged with TODO(XXX)
rather than adding an aligned-copy step this PR doesn't otherwise need.
Fixed, not ported as-is
array (wrong byte count for a uint16_t[]). QVector::fill(0) here clears
correctly.
Notes for reviewers
No other guidance exists yet for what the production search window
should be -- flagging this as the one constant most likely to need
re-tuning once this runs against a real library.
into scoreFingerprints()) so it can get its own unit test later without
needing fixture fingerprints large enough to exercise the full scoring
pass.
Depends on: cmrt-quality-scoring (#34)