IP Library Granted Patent US 10,623,800
Granted Patent B2
US 10,623,800 · App. 16/166,948 · Granted Apr 14, 2020

Dynamic control of fingerprinting rate to facilitate time-accurate revision of media content

Inventors: Kurt R. Thielen (Maple Grove, MN); Shashank C. Merchant (Sunnyvale, CA); Peter Dunker (Thuringia, DE); Markus K. Cremer (Orinda, CA); Steven D. Scherf (Oakland, CA)
Assignee: Gracenote, Inc.
H04N21/4305H04N21/23424H04N21/440281H04N21/4307H04N21/44016
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,623,800
App. No.
16/166,948
Granted
Apr 14, 2020
Kind
B2
Abstract

A computing system identifies a media stream being received by a client, based on fingerprint matching conducted with query fingerprints generated by the client at a frame rate. The computing system then causes the client to increase the frame rate, in order to facilitate establishment by the computing system of synchronous lock between true time within the media stream and client time according to a clock of the client. The computing system then uses the established synchronous lock as a basis to map a true-time point at which a content revision should be performed in the media stream to a client-time point at which the client should perform the content revision. And the computing system causes the client to perform the content revision at the determined client-time point.

Claims (49)

1. A method comprising:

generating query fingerprints representing a media stream being received by a client, wherein the query fingerprints are generated at a frame rate;

providing the generated query fingerprints for use to identify the media stream being received by the client based on comparison with reference fingerprints representing a known media stream;

after identification of the media stream being received by the client, increasing the frame rate of generating the query fingerprints;

providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between (i) true-time defined along a timeline within the known media stream and (ii) client-time defined according to a clock of the client; and

performing, at a specific client-time point, a content revision of the media stream being received by the client, wherein the specific client-time point is determined based on the established synchronous lock.

2. The method of claim 1 , implemented by the client.

3. The method of claim 1 , wherein providing the generated query fingerprints for use to identify the media stream being received by the client based on comparison with reference fingerprints representing the known media stream comprises transmitting the generated query fingerprints to a server for use by the server to identify the media stream being received by the client based on comparison with reference fingerprints representing the known media stream.

4. The method of claim 3 , wherein increasing the frame rate of generating the query fingerprints after identification of the media stream being received by the client comprises:

after the server has identified the media stream being received by the client, receiving from the server a directive to increase the frame rate of generating the query fingerprints, and responsively increasing the frame rate of generating the query fingerprints.

5. The method of claim 1 , wherein providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between true-time and client-time, comprises transmitting to a server the query fingerprints generated at the increased frame rate, for use by the server to establish the synchronous lock.

6. The method of claim 5 , wherein performing, at the specific client-time point determined based on the established synchronous lock, the content revision of the media stream being received by the client comprises:

receiving by the client from the server a content-revision directive directing the client to revise the media stream at the particular client-time point determined based on the established synchronous lock; and

carrying out by the client the revision of the media stream at the particular client-time point.

7. The method of claim 1 , wherein providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between true-time and client-time, comprises providing the query fingerprints to a program module at the client for use by the program module at the client to establish the synchronous lock.

8. The method of claim 1 , further comprising using the query fingerprints generated at the increased frame rate as a basis to establish the synchronous lock between true-time and client-time.

9. The method of claim 8 , wherein using the query fingerprints generated at the increased frame rate as a basis to establish the synchronous lock between true-time and client-time comprises:

comparing the query fingerprints generated at the increased frame rate with reference fingerprints of the known media stream;

based on the comparing of the query fingerprints generated at the increased frame rate with the reference fingerprints of the known media stream, identifying at least one matching point defining a match between a query fingerprint and a reference fingerprint; and

establishing the synchronous lock based on a mapping between a client-time timestamp of the query fingerprint and a true-time timestamp of the reference fingerprint.

10. The method of claim 9 , implemented by the client, the method further comprising receiving by the client the reference fingerprints of the known media stream, to facilitate establishing the synchronous lock.

11. A computing system comprising:

a processing unit;

non-transitory data storage; and

program instructions stored in the non-transitory data storage and executable by the processing unit to cause the computing system to carry out operations including:

generating query fingerprints representing a media stream being received by a client, wherein the query fingerprints are generated at a frame rate,

providing the generated query fingerprints for use to identify the media stream being received by the client based on comparison with reference fingerprints representing a known media stream,

after identification of the media stream being received by the client, increasing the frame rate of generating the query fingerprints,

providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between (i) true-time defined along a timeline within the known media stream and (ii) client-time defined according to a clock of the client, and

performing, at a specific client-time point, a content revision of the media stream being received by the client, wherein the specific client-time point is determined based on the established synchronous lock.

12. The computing system of claim 11 , disposed at the client.

13. The computing system of claim 11 , wherein providing the generated query fingerprints for use to identify the media stream being received by the client based on comparison with reference fingerprints representing a known media stream comprises transmitting the generated query fingerprints to a server for use by the server to identify the media stream being received by the client based on comparison with reference fingerprints representing the known media stream.

14. The computing system of claim 11 , wherein providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between true-time and client-time, comprises transmitting to a server the query fingerprints generated at the increased frame rate, for use by the server to establish the synchronous lock.

15. The computing system of claim 14 , disposed at the client, wherein performing, at the specific client-time point determined based on the established synchronous lock, the content revision of the media stream being received by the client comprises:

receiving from the server a content-revision directive directing the client to revise the media stream at the particular client-time point determined based on the established synchronous lock; and

carrying out the revision of the media stream at the particular client time point.

16. The computing system of claim 11 , wherein the operations further include using the query fingerprints generated at the increased frame rate as a basis to establish the synchronous lock between true-time and client-time.

17. The computing system of claim 16 , wherein using the query fingerprints generated at the increased frame rate as a basis to establish the synchronous lock between true-time and client-time comprises:

comparing the query fingerprints generated at the increased frame rate with reference fingerprints of the known media stream;

based on the comparing of the query fingerprints generated at the increased frame rate with the reference fingerprints of the known media stream, identifying at least one matching point defining a match between a query fingerprint and a reference fingerprint; and

establishing the synchronous lock based on a mapping between a client-time timestamp of the query fingerprint and a true-time timestamp of the reference fingerprint.

18. The computing system of claim 17 , disposed at the client, wherein the operations further comprise receiving the reference fingerprints of the known media stream, to facilitate establishing the synchronous lock.

19. A non-transitory computer readable medium storing instructions executable by a processing unit to carry out operations comprising:

generating query fingerprints representing a media stream being received by a client, wherein the query fingerprints are generated at a frame rate;

providing the generated query fingerprints for use to identify the media stream being received by the client based on comparison with reference fingerprints representing a known media stream;

after identification of the media stream being received by the client, increasing the frame rate of generating the query fingerprints,

providing the query fingerprints generated at the increased frame rate, for use to establish synchronous lock between (i) true-time defined along a timeline within the known media stream and (ii) client-time defined according to a clock of the client; and

performing, at a specific client-time point, a content revision of the media stream being received by the client, wherein the specific client-time point is determined based on the established synchronous lock.

20. The non-transitory computer-readable medium of claim 19 , disposed at the client.

Assignments (10)
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: A. C. NIELSEN COMPANY, LLC; EXELATE, INC.; GRACENOTE, 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: GRACENOTE, INC.
To: ROKU, INC.
Reel/Frame 056103/0786 →
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 Nov 2, 2018
From: THIELEN, KURT R.; MERCHANT, SHASHANK C.; DUNKER, PETER; CREMER, MARKUS K.; SCHERF, STEVEN D.
To: GRACENOTE, INC.
Reel/Frame 047394/0097 →