IP Library Granted Patent US 10,509,824
Granted Patent B1
US 10,509,824 · App. 14/736,158 · Granted Dec 17, 2019

Automatic content recognition search optimization

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,509,824
App. No.
14/736,158
Granted
Dec 17, 2019
Kind
B1
Abstract

A processing device and a method are disclosed in which instructions are executed to determine, from a fingerprint of television content being consumed by a user, what program the user is watching so that program information may be sent for use by a smart device streaming the content to the user. The fingerprint may be compared with a database of fingerprints to find a match. The database may include fingerprints of favorite programs or of previously watched programs. The search may be narrowed according to the user's favorite programs or according to a subset of programs most likely to be watched, e.g., from a chronological history of programs the user usually watches and/or those that viewers in general usually watch in chronological order. When narrowed searches fail to find a fingerprint match, larger subsets up to and including the entire database may be searched for a match.

Claims (96)

1. A server comprising:

at least one processing device in communication with a smart device, the smart device configured to:

display a television program to a user, the television program comprising media content;

generate a fingerprint of the content being displayed to the user; and

display overlay content that is based on program information;

computer-readable storage medium storing a database having a set of fingerprints associated with television programs, and storing instructions;

wherein the database comprises:

a first database having a first plurality of fingerprints associated with current programs;

a second database having a second plurality of fingerprints associated with recently consumed programs at the smart device;

a third database having a third plurality of fingerprints associated with all programs; and

a probable-program-changes database having a fourth plurality of fingerprints corresponding to programs the user is most likely watching or about to watch at the smart device;

wherein the at least one processing device is configured to search a plurality of databases of fingerprints until a match to the fingerprint of the content being displayed to the user is found, wherein the at least one processing device is configured to execute the instructions to:

receive, from the smart device, the fingerprint of the content being displayed to the user;

execute a search of the first database to determine whether the fingerprint matches one of the first plurality of fingerprints;

responsive to finding a match in the first database between the fingerprint and the first plurality of fingerprints, send program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the first database, execute a search of the second database to determine whether the fingerprint matches one of the second plurality of fingerprints;

responsive to finding a match in the second database between the fingerprint and the second plurality of fingerprints, send program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the second database, execute a search of the probable-program-changes database to determine whether the fingerprint matches one of the fourth plurality of fingerprints;

responsive to finding a match in the probable-program-changes database between the fingerprint and the fourth plurality of fingerprints, send program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the probable-program-changes database, execute a search of the third database to determine whether the fingerprint matches one of the third plurality of fingerprints;

responsive to finding a match in the third database between the fingerprint and the third plurality of fingerprints, send program information of a program corresponding to the matched fingerprint to the smart device; and

responsive to not finding a match in the third database, send a notification to the smart device indicating no match was found.

2. The server of claim 1 , wherein the program information comprises an identification of the program and starting and ending times of the program.

3. The server of claim 1 , wherein the program information comprises timing of commercials before the commercials are aired during the program.

4. The server of claim 1 , wherein the at least one processing device is further configured to:

track favorite programs watched most often by the user;

narrow the search of the third database to select fingerprints, from among the third plurality of fingerprints, corresponding to the favorite programs;

responsive to finding a match during the narrowed search of the third database, send program information of a program corresponding to the matched fingerprint to the smart device; and

responsive to not finding a match during the narrowed search of the third database, execute another search of the third database to determine whether the fingerprint matches one of the third plurality of fingerprints.

5. The server of claim 1 , wherein the at least one processing device is further configured to:

track a sequence of programs as normally watched chronologically by the user;

determine a subset of the set of fingerprints corresponding to programs the user is most likely watching or about to watch based on the sequence of programs; and

populate the probable-program-changes database with the subset of the set of fingerprints.

6. The server of claim 5 , wherein the at least one processing device is further configured to:

determine a probability that the user is watching or about to watch a program from the sequence of programs; and

populate the probable-program-changes database with the subset of the set of fingerprints when the probability is above a threshold probability.

7. The server of claim 1 , wherein the at least one processing device is further configured to:

track a sequence of programs as normally watched chronologically by most viewers;

determine a subset of the set of fingerprints corresponding to programs the viewers are most likely watching or about to watch based on the sequence of programs; and

populate the probable-program-changes database with the subset of the set of fingerprints.

8. The server of claim 1 , wherein the at least one processing device is further configured to:

determine a subset of the set of fingerprints corresponding to programs the user is most likely watching or about to watch based on a time of day; and

populate the probable-program-changes database with the subset of the set of fingerprints.

9. A method comprising:

receiving, by at least one processing device and from a smart device, a fingerprint of media content being displayed to a user, wherein the least one processing device is in communication with the smart device and has access to a computer-readable storage medium, wherein the computer-readable storage medium stores a database having a set of fingerprints associated with television programs, wherein the database comprises: (i) a first database having a first plurality of fingerprints associated with current programs, (ii) a second database having a second plurality of fingerprints associated with recently consumed programs at the smart device, (iii) a third database having a third plurality of fingerprints associated with all programs, and (iv) a probable-program-changes database having a fourth plurality of fingerprints corresponding to programs the user is most likely watching or about to watch at the smart device;

executing, by the at least one processing device, a search of a plurality of databases of fingerprints until a match to the fingerprint of content being displayed to the user is found, wherein the at least one processing device is configured to perform a search of the first database to determine whether the fingerprint matches one of the first plurality of fingerprints;

responsive to finding a match in the first database between the fingerprint and the first plurality of fingerprints, sending, by the at least one processing device, program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the first database, executing, by the at least one processing device, a search of the second database to determine whether the fingerprint matches one of the second plurality of fingerprints;

responsive to finding a match in the second database between the fingerprint and the second plurality of fingerprints, sending, by the at least one processing device, program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the second database, executing, by the at least one processing device, a search of the probable-program-changes database to determine whether the fingerprint matches one of the fourth plurality of fingerprints;

responsive to finding a match in the probable-program-changes database between the fingerprint and the fourth plurality of fingerprints, sending, by the at least one processing device, program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the probable-program-changes database, executing, by the at least one processing device, a search of the third database to determine whether the fingerprint matches one of the third plurality of fingerprints;

responsive to finding a match in the third database between the fingerprint and the third plurality of fingerprints, sending, by the at least one processing device, program information of a program corresponding to the matched fingerprint to the smart device; and

responsive to not finding a match in the third database, sending, by the at least one processing device, a notification to the smart device indicating no match was found.

10. The method of claim 9 , wherein the smart device is configured to (i) display a television program to the user, the television program comprising the media content, (ii) generate the fingerprint of the media content being displayed to the user and (iii) display overlay content that is based on program information.

11. The method of claim 9 , wherein the program information comprises an identification of the program and starting and ending times of the program.

12. The method of claim 9 , wherein the program information comprises timing of commercials before the commercials are aired during the program.

13. The method of claim 9 , further comprising:

tracking, by the at least one processing device, favorite programs watched most often by the user;

narrowing, by the at least one processing device, the search of the third database to select fingerprints, from among the third plurality of fingerprints, corresponding to the favorite programs;

responsive to finding a match during the narrowed search of the third database, sending, by the at least one processing device, program information of a program corresponding to the matched fingerprint to the smart device; and

responsive to not finding a match during the narrowed search of the third database, executing, by the at least one processing device, another search of the third database to determine whether the fingerprint matches one of the third plurality of fingerprints.

14. The method of claim 9 , further comprising:

tracking, by the at least one processing device, a sequence of programs as normally watched chronologically by the user;

determining, by the at least one processing device, a subset of the set of fingerprints corresponding to programs the user is most likely watching or about to watch based on the sequence of programs; and

populating, by the at least one processing device, the probable-program-changes database with the subset of the set of fingerprints.

15. The method of claim 14 , further comprising:

determining, by the at least one processing device, a probability that the user is watching or about to watch a program from the sequence of programs; and

populating, by the at least one processing device, the probable-program-changes database with the subset of the set of fingerprints when the probability is above a threshold probability.

16. The method of claim 9 , further comprising:

tracking, by the at least one processing device, a sequence of programs as normally watched chronologically by most viewers;

determining, by the at least one processing device, a subset of the set of fingerprints corresponding to programs the viewers are most likely watching or about to watch based on the sequence of programs; and

populating, by the at least one processing device, the probable-program-changes database with the subset of the set of fingerprints.

17. The method of claim 9 , further comprising:

determining, by the at least one processing device, a subset of the set of fingerprints corresponding to programs the user is most likely watching or about to watch based on a time of day; and

populating, by the at least one processing device, the probable-program-changes database with the subset of the set of fingerprints.

18. A non-transitory computer readable medium having stored thereon instructions executable by at least one processing device to cause the at least one processing device to perform operations comprising:

receiving, from a smart device, a fingerprint of media content being displayed to a user, wherein the least one processing device is in communication with the smart device and has access to the non-transitory computer-readable storage medium, wherein the non-transitory computer-readable storage medium stores a database having a set of fingerprints associated with television programs, wherein the database comprises: (i) a first database having a first plurality of fingerprints associated with current programs, (ii) a second database having a second plurality of fingerprints associated with recently consumed programs at the smart device, (iii) a third database having a third plurality of fingerprints associated with all programs, and (iv) a probable-program-changes database having a fourth plurality of fingerprints corresponding to programs the user is most likely watching or about to watch at the smart device;

executing a search of a plurality of databases of fingerprints until a match to the fingerprint of content being displayed to the user is found, wherein the search comprises a search of the first database to determine whether the fingerprint matches one of the first plurality of fingerprints;

responsive to finding a match in the first database between the fingerprint and the first plurality of fingerprints, sending program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the first database, executing a search of the second database to determine whether the fingerprint matches one of the second plurality of fingerprints;

responsive to finding a match in the second database between the fingerprint and the second plurality of fingerprints, sending program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the second database, executing a search of the probable-program-changes database to determine whether the fingerprint matches one of the fourth plurality of fingerprints;

responsive to finding a match in the probable-program-changes database between the fingerprint and the fourth plurality of fingerprints, sending program information of a program corresponding to the matched fingerprint to the smart device;

responsive to not finding a match in the probable-program-changes database, executing a search of the third database to determine whether the fingerprint matches one of the third plurality of fingerprints;

responsive to finding a match in the third database between the fingerprint and the third plurality of fingerprints, sending program information of a program corresponding to the matched fingerprint to the smart device; and

responsive to not finding a match in the third database, sending a notification to the smart device indicating no match was found.

19. The non-transitory computer readable medium of claim 18 , wherein the smart device is configured to (i) display a television program to the user, the television program comprising the media content, (ii) generate the fingerprint of the media content being displayed to the user and (iii) display overlay content that is based on program information.

20. The non-transitory computer readable medium of claim 18 , the operations further comprising:

tracking a sequence of programs as normally watched chronologically by the user;

determining a subset of the set of fingerprints corresponding to programs the user is most likely watching or about to watch based on the sequence of programs; and

populating the probable-program-changes database with the subset of the set of fingerprints.

21. The non-transitory computer readable medium of claim 18 , the operations further comprising:

tracking a sequence of programs as normally watched chronologically by most viewers;

determining a subset of the set of fingerprints corresponding to programs the viewers are most likely watching or about to watch based on the sequence of programs; and

populating the probable-program-changes database with the subset of the set of fingerprints.

Assignments (11)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
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 →
RELEASE (REEL 054066 / FRAME 0064) Recorded May 11, 2023
From: CITIBANK, N.A.
To: GRACENOTE, INC.; A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE MEDIA SERVICES, LLC; THE NIELSEN COMPANY (US), LLC; NETRATINGS, LLC
Reel/Frame 063605/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 Jun 10, 2015
From: BRIMLEY, WILLIAM
To: SORENSON MEDIA, INC.
Reel/Frame 035819/0310 →