IP Library Granted Patent US 11,044,499
Granted Patent B2
US 11,044,499 · App. 16/890,592 · Granted Jun 22, 2021

Establishment and use of time mapping based on interpolation using low-rate fingerprinting, to help facilitate frame-accurate content revision

Inventors: Peter Dunker (Thuringia, DE); Markus K. Cremer (Orinda, CA); Shashank C. Merchant (Sunnyvale, CA); Kurt R. Thielen (Maple Grove, MN)
Assignee: Roku, Inc.
H04N21/23424G06F17/18H04N21/4305
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,044,499
App. No.
16/890,592
Granted
Jun 22, 2021
Kind
B2
Abstract

A media client ascertains a plurality of matching points between (i) query fingerprints representing a media stream being received by the client and (ii) reference fingerprints, each identified matching point defining a respective match between a query fingerprint that is timestamped with client time defined according to a clock of the client and a reference fingerprint that is timestamped with true time defined according to a timeline within a known media stream. Further, the client performs linear regression based on the timestamps of the ascertained plurality of matching points, to establish a mapping between true time and client time. The client then uses the established mapping as a basis to determine a client-time point at which the client should perform an action with respect to media stream being received by the client. And the client performs the action at the determined client-time point.

Claims (41)

1. A method comprising:

ascertaining a plurality of matching points between (i) query fingerprints representing a media stream being received by a client and (ii) reference fingerprints, wherein each identified matching point defines a respective match between (i) a query fingerprint that is timestamped with client time defined according to a clock of the client and (ii) a reference fingerprint that is timestamped with true time according to a timeline within a known media stream;

performing linear regression based on the timestamps of the ascertained plurality of matching points, the linear regression establishing a mapping defining a time offset between true time and client time, wherein performing the linear regression includes performing the linear regression until detecting that the mapping defining the time offset does not change more than a threshold amount for each additional matching point factored into the linear regression;

using the established mapping as a basis to determine a client-time point at which the client should perform an action with respect to media stream being received by the client; and

performing, at the determined client-time point, the action with respect to the media stream being received by the client.

2. The method of claim 1 , wherein each matching point is based on analysis of a respective bundle of fingerprints, the method further comprising excluding a given bundle of fingerprints from use to establish a matching point, the excluding being based on a determination that the fingerprints of the given bundle match each other.

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

4. The method of claim 3 , wherein the ascertaining of the plurality of matching points comprises receiving by the client a set of data indicating the plurality of matching points.

5. The method of claim 4 , wherein the ascertaining of the plurality of matching points comprises:

generating by the client the query fingerprints;

receiving by the client the reference fingerprints; and

comparing by the client the generated query fingerprints with the received reference fingerprints, and ascertaining the plurality of matching points based on the comparing.

6. The method of claim 1 , wherein the action with respect to the media stream being received by the client comprises a content revision.

7. The method of claim 6 , wherein the content revision comprises replacing playout of an ad in the media stream with playout of a replacement ad.

8. The method of claim 1 , wherein the action with respect to the media stream being received by the client comprises preparation for a content revision.

9. The method of claim 1 , wherein using the established mapping as a basis to determine a client-time point at which the client should perform the action with respect to the media stream being received by the client comprises using the established mapping as a basis to map a predefined true-time point at which the action should be performed with respect to the known media stream to a corresponding client-time point at which the client should perform the action with respect to the media stream being received by the client.

10. A media client 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 media client to carry out operations including:

ascertaining a plurality of matching points between (i) query fingerprints representing a media stream being received by the media client and (ii) reference fingerprints, wherein each identified matching point defines a respective match between (i) a query fingerprint that is timestamped with client time defined according to a clock of the media client and (ii) a reference fingerprint that is timestamped with true time according to a timeline within a known media stream,

performing linear regression based on the timestamps of the ascertained plurality of matching points, the linear regression establishing a mapping defining a time offset between true time and client time, wherein performing the linear regression includes performing the linear regression until detecting that the mapping defining the time offset does not change more than a threshold amount for each additional matching point factored into the linear regression,

using the established mapping as a basis to determine a client-time point at which the media client should perform an action with respect to media stream being received by the media client, and

performing, at the determined client-time point, the action with respect to the media stream being received by the media client.

11. The media client of claim 10 , wherein each matching point is based on analysis of a respective bundle of fingerprints, the operations further comprising excluding a given bundle of fingerprints from use to establish a matching point, the excluding being based on a determination that the fingerprints of the given bundle match each other.

12. The media client of claim 10 , wherein the ascertaining of the plurality of matching points comprises receiving a set of data indicating the plurality of matching points.

13. The media client of claim 10 , wherein the ascertaining of the plurality of matching points comprises:

generating the query fingerprints;

receiving the reference fingerprints; and

comparing the generated query fingerprints with the received reference fingerprints, and ascertaining the plurality of matching points based on the comparing.

14. The media client of claim 10 , wherein the action with respect to the media stream being received by the media client comprises a content revision.

15. The media client of claim 14 , wherein the content revision comprises replacing playout of an ad in the media stream with playout of a replacement ad.

16. The media client of claim 10 , wherein the action with respect to the media stream being received by the media client comprises preparation for a content revision.

17. The media client of claim 10 , wherein using the established mapping as a basis to determine a client-time point at which the media client should perform the action with respect to the media stream being received by the media client comprises using the established mapping as a basis to map a predefined true-time point at which the action should be performed with respect to the known media stream to a corresponding client-time point at which the media client should perform the action with respect to the media stream being received by the media client.

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

ascertaining a plurality of matching points between (i) query fingerprints representing a media stream being received by a client and (ii) reference fingerprints, wherein each identified matching point defines a respective match between (i) a query fingerprint that is timestamped with client time defined according to a clock of the client and (ii) a reference fingerprint that is timestamped with true time according to a timeline within a known media stream,

performing linear regression based on the timestamps of the ascertained plurality of matching points, the linear regression establishing a mapping defining a time offset between true time and client time, wherein performing the linear regression includes performing the linear regression until detecting that the mapping defining the time offset does not change more than a threshold amount for each additional matching point factored into the linear regression;

using the established mapping as a basis to determine a client-time point at which the client should perform an action with respect to media stream being received by the client, and

performing, at the determined client-time point, the action with respect to the media stream being received by the client.

19. The non-transitory computer-readable medium of claim 18 , wherein each matching point is based on analysis of a respective bundle of fingerprints, the operations further comprising excluding a given bundle of fingerprints from use to establish a matching point, the excluding being based on a determination that the fingerprints of the given bundle match each other.

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

Assignments (5)
SECURITY INTEREST Recorded Sep 18, 2024
From: ROKU, INC.
To: CITIBANK, N.A.
Reel/Frame 068982/0377 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 4, 2020
From: DUNKER, PETER; CREMER, MARKUS K.; MERCHANT, SHASHANK C.; THIELEN, KURT R.
To: GRACENOTE, INC.
Reel/Frame 052836/0341 →