IP Library Granted Patent US 10,116,987
Granted Patent B2
US 10,116,987 · App. 15/886,848 · Granted Oct 30, 2018

Fingerprinting media content using hashing

Inventor: Juikun Chen (West Jordan, UT)
Assignee: Sorenson Media, Inc.
H04N21/4345G06F17/3002G06F17/30038G06F17/3053G06F17/30097H04N21/44008H04N21/4722H04N21/6582H04N21/8358H04N21/84G06F17/30109G06F17/30256G06K9/6215H04N2201/3233
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 10,116,987
App. No.
15/886,848
Granted
Oct 30, 2018
Kind
B2
Abstract

A server device includes memory to store: a database of frame fingerprints ordered sequentially by media item number and frame number for media items, and a hash table containing (key, value) entries each including a hashed frame fingerprint and index number(s) to the database. A processor coupled to the memory is to, for an input set of hashed frame fingerprints, select a most recent hashed frame fingerprint. The processor performs a lookup with the most recent hashed frame fingerprint to identify a plurality of index numbers from a matching entry. The processor retrieves a target plurality of frame fingerprints from the database using each of the plurality of index numbers as a starting point; calculates a rank distance between the input set and each respective target plurality of frame fingerprints; and selects the target plurality of frame fingerprints for which the rank distance is shortest, to identify a media item.

Claims (47)

1. A system comprising:

non-transitory memory storing instructions; and

data processing hardware in communication with the non-transitory memory and configured to execute the instructions, the executed instructions causing the data processing hardware to perform operations comprising:

receiving an input set of hashed frame fingerprints of an unidentified media item from a media device, the hashed frame fingerprints ordered chronologically by frame number in the input set, and the input set of hashed frame fingerprints comprising a most recent hashed frame fingerprint;

identifying an index number from a hash table that matches the most recent hashed fingerprint and a target frame fingerprint corresponding to the identified index number;

identifying a target block of frame fingerprints corresponding to the target frame fingerprint, the target block of frame fingerprints ordered chronologically sequentially backwards by frame number from the target frame fingerprint;

determining a rank distance corresponding to a distance between the input set of hashed frame fingerprints and the target block of frame fingerprints;

identifying a media item identifier corresponding to the target block of frame fingerprints associated with a shortest rank distance from the input set of hashed frame fingerprints, the identified media item identifier identifying the media item associated with the input set of hashed frame fingerprints; and

sending the identified media item identifier to the media device.

2. The system of claim 1 , wherein the media device is configured to request overlay content from an overlay decision engine for display on a viewer in communication with the media device based on the media item identifier.

3. The system of claim 1 , wherein the operations further comprise:

identifying a plurality of index numbers from the hash table that matches the most recent hashed fingerprint and the target frame fingerprint corresponding to each identified index number;

for each identified index number, determining the target block of frame fingerprints corresponding to the target frame fingerprint; and

determining the rank distance corresponding to the distance between the input set of hashed frame fingerprints and each determined target block of frame fingerprints.

4. The system of claim 1 , wherein a number of frame fingerprints within the target block of frame fingerprints corresponds to a number of the frame fingerprints in the input set of hashed frame fingerprints.

5. The system of claim 1 , wherein determining the rank distance from the input set of hashed frame fingerprints and the target block of frame fingerprints comprises calculating a sum of an absolute difference between ordinal values of respective hashed frame fingerprints of the input set and the frame fingerprints for the target block.

6. The system of claim 1 , wherein the operations further comprise:

when identifying the media item identifier, retrieving a frame number for the target frame fingerprint from the target block of frame fingerprints associated with the shortest rank distance; and

when sending the identified media item identifier, sending the frame number for the target frame fingerprint to the media device.

7. The system of claim 1 , wherein the operations further comprise storing frame fingerprints ordered sequentially by media and frame number for a plurality of media items in a database.

8. The system of claim 7 , wherein the plurality of media items comprise videos or television programs.

9. The system of claim 1 , wherein the operations further comprise storing a hash table containing a plurality of (key, value) pair entries, each entry comprising a hashed frame fingerprint and one or more index numbers, each index number mapping the hashed frame fingerprint to a corresponding slot in a database.

10. The system of claim 9 , wherein the operation of identifying the index number from the hash table further comprises identifying the index number from the plurality of (key, value) pair entries.

11. A method comprising:

receiving, at data processing hardware, an input set of hashed frame fingerprints of an unidentified media item from a media device, the hashed frame fingerprints ordered chronologically by frame number in the input set, and the input set of hashed frame fingerprints comprising a most recent hashed frame fingerprint

identifying, by the data processing hardware, an index number from a hash table that matches the most recent hashed fingerprint and a target frame fingerprint corresponding to the identified index number;

identifying, by the data processing hardware, a target block of frame fingerprints corresponding to the target frame fingerprint, the frame fingerprints ordered chronologically sequentially backwards by frame number from the target frame fingerprint;

determining, by the data processing hardware, a rank distance corresponding to a distance between the input set of hashed frame fingerprints and the target block of frame fingerprints;

identifying, by the data processing hardware, a media item identifier corresponding to the target block of frame fingerprints associated with a shortest rank distance from the input set of hashed frame fingerprints, the identified media item identifier identifying the media item associated with the input set of hashed frame fingerprints; and

sending, by the data processing hardware, the identified media item identifier to the media device.

12. The method of claim 11 , wherein the media device is configured to request overlay content from an overlay decision engine for display on a viewer in communication with the media device based on the media item identifier.

13. The method of claim 11 further comprising:

identifying, by the data processing hardware, a plurality of index numbers from the hash table that matches the most recent hashed fingerprint and the target frame fingerprint corresponding to each identified index number;

for each identified index number, determining, by the processing, the target block of frame fingerprints corresponding to the target frame fingerprint; and

determining, by the data processing hardware, the rank distance corresponding to the distance between the input set of hashed frame fingerprints and each determined target block of frame fingerprints.

14. The method of claim 11 , wherein a number of frame fingerprints within the target block of frame fingerprints corresponds to a number of the frame fingerprints in the input set of hashed frame fingerprints.

15. The method of claim 11 , wherein determining the rank distance from the input set of hashed frame fingerprints and the target block of frame fingerprints comprises calculating a sum of an absolute difference between ordinal values of respective hashed frame fingerprints of the input set and the frame fingerprints for the target block.

16. The method of claim 11 , further comprising:

when identifying the media item identifier, retrieving, by the data processing hardware, a frame number for the target frame fingerprint from the target block of frame fingerprints associated with the shortest rank distance; and

when sending the identified media item identifier, sending, from the data processing hardware, the frame number for the target frame fingerprint to the media device.

17. The method of claim 11 , wherein the frame fingerprints correspond to media items comprising a video or television program.

18. The method of claim 11 , wherein receiving the input set of hashed frame fingerprints further comprises receiving the input set of hashed frame fingerprints from an automatic content recognition (ACR) device, the ACR device configured to:

receive a media feed, the media feed comprising the unidentified media item from the media device;

fingerprint the unidentified media item; and

apply a hash function to the fingerprinted unidentified media item.

19. The method of claim 11 , wherein receiving the input set of hashed frame fingerprints further comprises receiving the input set of hashed frame fingerprints from an automatic content recognition (ACR) device, the ACR device configured to generate hashed frame fingerprints by applying a hash function to frame fingerprints of the unidentified media item from the media device.

20. The method of claim 11 , wherein receiving the input set of hashed frame fingerprints further comprises receiving the input set of hashed frame fingerprints from an automatic content recognition (ACR) device, the ACR device configured to fingerprint a frame of the unidentified media item by discrete cosine transform.

Assignments (11)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
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 →
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT (REEL/FRAME 056982/0194) Recorded Feb 22, 2023
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: ROKU, INC.; ROKU DX HOLDINGS, INC.
Reel/Frame 062826/0664 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jun 29, 2021
From: ROKU, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 056982/0194 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 30, 2021
From: THE NIELSEN COMPANY (US), LLC
To: ROKU, INC.
Reel/Frame 056106/0376 →
PARTIAL RELEASE OF SECURITY INTEREST Recorded Apr 20, 2021
From: CITIBANK, N.A.
To: THE NIELSEN COMPANY (US), LLC; GRACENOTE, INC.
Reel/Frame 056973/0280 →
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 Feb 15, 2019
From: SORENSON MEDIA, INC.
To: THE NIELSEN COMPANY (US), LLC
Reel/Frame 048355/0949 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 10, 2018
From: CHEN, JUIKUN
To: SORENSON MEDIA, INC.
Reel/Frame 047121/0625 →
Continuity (3)
Continuation 15138678 · Apr 26, 2016
Provisional Application 62299455 · Feb 24, 2016
Related Publication 20180160169A1 · Jun 7, 2018