IP Library Granted Patent US 11,436,271
Granted Patent B2
US 11,436,271 · App. 16/811,626 · Granted Sep 6, 2022

Indexing fingerprints

Inventor: Matthew James Wilkinson (Emeryville, CA)
Assignee: GRACENOTE, INC.
G06F16/44G06F16/41G06F16/48H04N21/84
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,436,271
App. No.
16/811,626
Granted
Sep 6, 2022
Kind
B2
Abstract

Example methods and systems for indexing fingerprints are described. Fingerprints may be made up of sub-fingerprints, each of which corresponds to a frame of the media, which is a smaller unit of time than the fingerprint. In some example embodiments, multiple passes are performed. For example, a first pass may be performed that compares the sub-fingerprints of the query fingerprint with every thirty-second sub-fingerprint of the reference material to identify likely matches. In this example, a second pass is performed that compares the sub-fingerprints of the query fingerprint with every fourth sub-fingerprint of the likely matches to provide a greater degree of confidence. A third pass may be performed that uses every sub-fingerprint of the most likely matches, to help distinguish between similar references or to identify with greater precision the timing of the match. Each of these passes is amenable to parallelization.

Claims (63)

1. A system comprising:

one or more processors;

a database storing reference fingerprints; and

memory including instructions that, when executed, cause the one or more processors to at least:

obtain a query fingerprint from a media identification query;

perform a first-pass match of the query fingerprint against the reference fingerprints, the query fingerprint sub-sampled by a first factor and the reference fingerprints sub-sampled by a second factor, the first-pass match including:

determine a plurality of matching reference fingerprints from a comparison of the query fingerprint and the reference fingerprints; and

determine a predetermined number of response candidates of reference fingerprints from the plurality of matching reference fingerprints based on first bit error rates corresponding to the plurality of matching reference fingerprints, the predetermined number of response candidates of reference fingerprints corresponding to lowest bit error rates based on the first bit error rates;

in response to determining the predetermined number of response candidates of reference fingerprints corresponding to lowest bit error rates, perform a second-pass match of the query fingerprint against the predetermined number of response candidates of reference fingerprints, the query fingerprint sub-sampled by the first factor and the predetermined number of response candidates of reference fingerprints sub-sampled by the second factor, the second-pass match including determine second bit error rates for each of the predetermined number of response candidates of reference fingerprints; and

in response to performing the second-pass match, provide a selected reference fingerprint from the predetermined number of response candidates of reference fingerprints to the media identification query, the selected reference fingerprint chosen based on a criterion for the second bit error rates determined for the predetermined number of response candidates.

2. The system of claim 1 , wherein the first factor is thirty-two and the second factor is four.

3. The system of claim 1 , wherein the criterion is a threshold, the selected reference fingerprint being below the threshold.

4. The system of claim 1 , wherein the instructions, when executed, cause the one or more processors to at least perform the first-pass match including:

create a plurality of threads, the plurality of threads including a first thread;

access, by the plurality of threads, portions of the query fingerprint sub-sampled by the first factor, the first thread accessing a first portion and a second portion of the query fingerprint, wherein the first portion and the second portion of the query fingerprint are non-contiguous;

compare, by the plurality of threads, the first portion and the second portion of the query fingerprint sub-sampled by the first factor with portions of the reference fingerprints sub-sampled by the second factor; and

determine a first bit error rate for the at least one of the reference fingerprints sub-sampled by the second factor.

5. The system of claim 1 , wherein the instructions, when executed, cause the one or more processors to at least perform the second pass match including:

divide the reference fingerprints into segments, wherein the segments include a plurality of reference sub-fingerprints;

assign the segments to different servers on a network; and

cause the different servers to determine the second bit error rate for the at least one of the predetermined number of response candidates, wherein determining the second bit error rate includes comparing the query fingerprint sub-sampled by the first factor to a corresponding reference fingerprint of the predetermined number of response candidates sub-sampled by the second factor.

6. The system of claim 4 , wherein the instructions, when executed, cause the one or more processors to determine the predetermined number of response candidates of reference fingerprints based on the first bit error rates being below a threshold, wherein the threshold is a percentage value.

7. A method comprising:

one or more processors;

a database storing reference fingerprints; and

memory including instructions that, when executed, cause the one or more processors to at least:

obtaining, by one or more processors, a query fingerprint from a media identification query;

performing a first-pass match of the query fingerprint against the reference fingerprints, the query fingerprint sub-sampled by a first factor and the reference fingerprints sub-sampled by a second factor, the first-pass match including:

determining a plurality of matching reference fingerprints from a comparison of the query fingerprint and the reference fingerprints; and

determining a predetermined number of response candidates of the reference fingerprints from the plurality of matching reference fingerprints based on first bit error rates corresponding to the plurality of matching reference fingerprints, the predetermined number of response candidates of the reference fingerprints corresponding to lowest bit error rates based on the first bit error rates;

in response to determining the predetermined number of response candidates of the reference fingerprints corresponding to lowest bit error rates, performing a second-pass match of the query fingerprint against the predetermined number of response candidates of reference fingerprints, the query fingerprint sub-sampled by the first factor and the predetermined number of response candidates sub-sampled by the second factor, the second-pass match including determining second bit error rates for each of the predetermined number of response candidates of reference fingerprints; and

in response to performing the second-pass match, providing a selected reference fingerprint from the predetermined number of response candidates to a media identification query, the selected reference fingerprint chosen based on a criterion for the second bit error rates determined for the predetermined number of response candidates.

8. The method of claim 7 , wherein the first factor is thirty-two and the second factor is four.

9. The method of claim 7 , wherein the criterion is a threshold, the selected reference fingerprint being below the threshold.

10. The method of claim 7 , wherein the first pass match further includes:

creating a plurality of threads, the plurality of threads including a first thread;

accessing, by the plurality of threads, portions of the query fingerprint sub-sampled by the first factor, the first thread accessing a first portion and a second portion of the query fingerprint, wherein the first portion and the second portion of the query fingerprint are non-contiguous;

comparing, by the plurality of threads, the first portion and the second portion of the query fingerprint sub-sampled by the first factor with portions of the reference fingerprints sub-sampled by the second factor; and

determining a first bit error rate for the at least one of the reference fingerprints sub-sampled by the second factor.

11. The method of claim 7 , wherein the second pass match further includes:

dividing the reference fingerprints into segments, wherein the segments include a plurality of reference sub-fingerprints;

assigning the segments to different servers on a network; and

causing the different servers to determine the second bit error rate for the at least one of the predetermined number of response candidates, wherein determining the second bit error rate includes comparing the query fingerprint sub-sampled by the first factor to a corresponding reference fingerprint of the predetermined number of response candidates sub-sampled by the second factor.

12. The method of claim 10 , wherein the determining the predetermined number of response candidates of reference fingerprints is based on the first bit error rates being below a threshold, wherein the threshold is a percentage value.

13. A non-transitory machine-readable storage medium comprising instructions that, when executed by one or more processors of a machine, cause the machine to at least:

obtain a query fingerprint from a media identification query;

perform a first-pass match of the query fingerprint against reference fingerprints, the query fingerprint sub-sampled by a first factor and the reference fingerprints sub-sampled by a second factor, the first-pass match including:

determine a plurality of matching reference fingerprints from a comparison of the query fingerprint and the reference fingerprints; and

determine a predetermined number of response candidates of reference fingerprints from the plurality of matching reference fingerprints based on first bit error rates corresponding to the plurality of matching reference fingerprints, the predetermined number of response candidates of reference fingerprints corresponding to lowest bit error rates based on the first bit error rates;

in response to determining the predetermined number of response candidates of reference fingerprints corresponding to lowest bit error rates, perform a second-pass match of the query fingerprint against the predetermined number of response candidates of reference fingerprints, the query fingerprint sub-sampled by the first factor and the predetermined number of response candidates of reference fingerprints sub-sampled by the second factor, the second-pass match including determine second bit error rates for each of the predetermined number of response candidates of reference fingerprints; and

in response to performing the second-pass match, provide a selected reference fingerprint from the predetermined number of response candidates of reference fingerprints to the media identification query, the selected reference fingerprint chosen based on a criterion for the second bit error rates determined for the predetermined number of response candidates.

14. The non-transitory machine-readable storage medium of claim 13 , wherein the first factor is thirty-two and the second factor is four.

15. The non-transitory machine-readable storage medium of claim 13 , wherein the criterion is a threshold, the selected reference fingerprint being below the threshold.

16. The non-transitory machine-readable storage medium of claim 13 , wherein the instructions, when executed by one or more processors of a machine, cause the machine to perform the first pass match, wherein the first pass match includes:

create a plurality of threads, the plurality of threads including a first thread;

access, by the plurality of threads, portions of the query fingerprint sub-sampled by the first factor, the first thread accessing a first portion and a second portion of the query fingerprint, wherein the first portion and the second portion of the query fingerprint are non-contiguous;

compare, by the plurality of threads, the first portion and the second portion of the query fingerprint sub-sampled by the first factor with portions of the reference fingerprints sub-sampled by the second factor; and

determine a first bit error rate for the at least one of the reference fingerprints sub-sampled by the second factor.

17. The non-transitory machine-readable storage medium of claim 13 , wherein the instructions, when executed by one or more processors of a machine, cause the machine to perform the second pass match, wherein the second pass match includes:

divide the reference fingerprints into segments, wherein the segments include a plurality of reference sub-fingerprints;

assign the segments to different servers on a network; and

cause the different servers to determine the second bit error rate for the at least one of the predetermined number of response candidates, wherein determining the second bit error rate includes comparing the query fingerprint sub-sampled by the first factor to a corresponding reference fingerprint of the predetermined number of response candidates sub-sampled by the second factor.

18. The non-transitory machine-readable storage medium of claim 16 , wherein the instructions, when executed by one or more processors of a machine, cause the machine to determine the predetermined number of response candidates of reference fingerprints based on the first bit error rates being below a threshold, wherein the threshold is a percentage value.

Assignments (8)
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/0001 →
RELEASE (REEL 053473 / FRAME 0001) Recorded May 11, 2023
From: CITIBANK, N.A.
To: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063603/0001 →
SECURITY INTEREST Recorded May 8, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: ARES CAPITAL CORPORATION
Reel/Frame 063574/0632 →
SECURITY INTEREST Recorded Apr 28, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: CITIBANK, N.A.
Reel/Frame 063561/0381 →
SECURITY AGREEMENT Recorded Jan 31, 2023
From: GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; GRACENOTE, INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 063560/0547 →
CORRECTIVE ASSIGNMENT TO CORRECT THE PATENTS LISTED ON SCHEDULE 1 RECORDED ON 6-9-2020 PREVIOUSLY RECORDED ON REEL 053473 FRAME 0001. ASSIGNOR(S) HEREBY CONFIRMS THE SUPPLEMENTAL IP SECURITY AGREEMENT. Recorded Oct 7, 2020
From: A.C. NIELSEN (ARGENTINA) S.A.; A.C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A
Reel/Frame 054066/0064 →
SUPPLEMENTAL SECURITY AGREEMENT Recorded Jun 9, 2020
From: A. C. NIELSEN COMPANY, LLC; ACN HOLDINGS INC.; ACNIELSEN CORPORATION; ACNIELSEN ERATINGS.COM; AFFINNOVA, INC.; ART HOLDING, L.L.C.; ATHENIAN LEASING CORPORATION; CZT/ACN TRADEMARKS, L.L.C.; EXELATE, INC.; GRACENOTE, INC.; GRACENOTE DIGITAL VENTURES, LLC; GRACENOTE MEDIA SERVICES, LLC; NETRATINGS, LLC; NIELSEN AUDIO, INC.; NIELSEN CONSUMER INSIGHTS, INC.; NIELSEN CONSUMER NEUROSCIENCE, INC.; NIELSEN FINANCE CO.; NIELSEN FINANCE LLC; NIELSEN INTERNATIONAL HOLDINGS, INC.; NIELSEN MOBILE, LLC; NIELSEN UK FINANCE I, LLC; NMR INVESTING I, INC.; TCG DIVESTITURE INC.; TNC (US) HOLDINGS, INC.; THE NIELSEN COMPANY (US), LLC; VIZU CORPORATION; VNU MARKETING INFORMATION, INC.; NMR LICENSING ASSOCIATES, L.P.; NIELSEN HOLDING AND FINANCE B.V.; THE NIELSEN COMPANY B.V.; VNU INTERNATIONAL B.V.
To: CITIBANK, N.A.
Reel/Frame 053473/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 8, 2020
From: WILKINSON, MATTHEW JAMES
To: GRACENOTE, INC.
Reel/Frame 052614/0472 →
Continuity (3)
Continuation 15445615 · Feb 28, 2017
Provisional Application 62301372 · Feb 29, 2016
Related Publication 20200210470A1 · Jul 2, 2020