IP Library Granted Patent US 11,917,240
Granted Patent B2
US 11,917,240 · App. 16/534,506 · Granted Feb 27, 2024

Dynamic content serving using automated content recognition (ACR) and digital media watermarks

Inventors: Zeev Neumeier (Berkeley, CA); W. Leo Hoarty (Morgan Hill, CA)
Assignee: INSCAPE DATA, INC.
H04N21/44016H04N21/4334H04N21/4363H04N21/4383H04N21/8358
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,917,240
App. No.
16/534,506
Granted
Feb 27, 2024
Kind
B2
Abstract

Methods, systems, devices, and computer-program products are described herein for providing dynamic content serving. The dynamic content serving technology can identify, in real-time, programming arriving at a client device, identify the specific segment being received, and determine which pre-stored video segment may be used to replace the identified segment. A dynamic content controller component can also identify what devices, in addition to the client device, may also be served with supplemental information either related or unrelated to the program currently displayed on the client device.

Claims (49)

1. A computer-implemented method of performing content substitution, comprising:

sending, by a computing device to a content recognition system, a set of pixel values usable to determine one or more candidate portions of a video channel being displayed by the computing device, each pixel value of the set of pixel values being derived from a set of pixels of a pixel patch of a video frame of the video channel being displayed by the computing device, and wherein the set of pixel values is representative of only a portion of the pixels of the video frame;

sending, by the computing device, one or more requests for a plurality of substitute video segments corresponding to candidate portions of the video channel being displayed by the computing device, the candidate portions of the video channel being determined based at least on the set of pixel values corresponding to the video channel being displayed by the computing device;

receiving, on the computing device, the plurality of substitute video segments corresponding to the candidate portions of the video channel;

storing, in a cache memory of the computing device, the plurality of substitute video segments, wherein the plurality of substitute video segments are pre-cached to reduce a latency occurring during video segment replacement, and wherein each substitute video segment of the plurality of substitute video segments is associated with a respective watermark identifier;

identifying watermark identifiers in video frames of the video channel, each watermark identifier indicating a presence of a candidate portion, of the candidate portions of the video channel, for content substitution, wherein the watermark identifiers include at least one duplicate watermark identifier;

obtaining, from the cache memory of the computing device, a substitute video segment selected from the plurality of substitute video segments based on the watermark identifiers, the substitute video segment corresponding to the candidate portion for content substitution, wherein the substitute video segment is obtained in response to identifying the watermark identifier;

replacing a video segment included in the video channel with the substitute video segment and

terminating a presentation of the substitute video segment upon detection of a change in the video channel being displayed.

2. The method of claim 1 , further comprising:

identifying one or more computing devices connected to a same local area network as the computing device; and

transmitting content related to the video segment to the one or more computing devices.

3. The method of claim 2 , wherein the content includes the video segment.

4. The method of claim 2 , wherein the content includes additional content related to the video segment.

5. The method of claim 1 , wherein the video channel is identified by comparing video data of the video segment with stored video data to find a closest match.

6. The method of claim 5 , wherein the video channel is identified by determining a match between an unknown video data point and one or more candidate video data points, wherein the match is an approximate match based on the candidate video data point being a closest video data point of the one or more candidate video data points to the unknown video data point.

7. A computing device, comprising:

one or more processors; and

a non-transitory machine-readable storage medium containing instructions which when executed on the one or more processors, cause the one or more processors to perform operations including:

sending, to a content recognition system, a set of pixel values usable to determine one or more candidate portions of a video channel being displayed by the computing device, each pixel value of the set of pixel values being derived from a set of pixels of a pixel patch of a video frame of the video channel being displayed by the computing device, and wherein the set of pixel values is representative of only a portion of the pixels of the video frame;

sending one or more requests for a plurality of substitute video segments corresponding to candidate portions of the video channel being displayed by the computing device, the candidate portions of the video channel being determined based at least on the set of pixel values corresponding to the video channel being displayed by the computing device;

receiving the plurality of substitute video segments corresponding to the candidate portions of the video channel;

storing, in a cache memory of the computing device, the plurality of substitute video segments, wherein the plurality of substitute video segments are pre-cached to reduce a latency occurring during video segment replacement, and wherein each substitute video segment of the plurality of substitute video segments is associated with a respective watermark identifier;

identifying watermark identifiers in video frames of the video channel, each watermark identifier indicating a presence of a candidate portion, of the candidate portions of the video channel, for content substitution, wherein the watermark identifiers include at least one duplicate watermark identifier;

obtaining, from the cache memory, a substitute video segment selected from the plurality of substitute video segments based on the watermark identifiers, the substitute video segment corresponding to the candidate portion for content substitution, wherein the substitute video segment is obtained in response to identifying the watermark identifier;

replacing a video segment included in the video channel with the substitute video segment and

terminating a presentation of the substitute video segment upon detection of a change in the video channel being displayed.

8. The computing device of claim 7 , further comprising instructions which when executed on the one or more processors, cause the one or more processors to perform operations including:

identifying one or more computing devices connected to a same local area network as the computing device; and

transmitting content related to the video segment to the one or more computing devices.

9. The computing device of claim 8 , wherein the content includes the video segment.

10. The computing device of claim 8 , wherein the content includes additional content related to the video segment.

11. The computing device of claim 7 , wherein the video channel is identified by comparing video data of the video segment with stored video data to find a closest match.

12. The computing device of claim 11 , wherein the video channel is identified by determining a match between an unknown video data point and one or more candidate video data points, wherein the match is an approximate match based on the candidate video data point being a closest video data point of the one or more candidate video data points to the unknown video data point.

13. A computer-program product tangibly embodied in a non-transitory machine-readable storage medium of a computing device, including instructions configured to cause one or more data processors to:

send, to a content recognition system, a set of pixel values usable to determine one or more candidate portions of a video channel being displayed by the computing device, each pixel value of the set of pixel values being derived from set of pixels of a pixel patch of a video frame of the video channel being displayed by the computing device, and wherein the set of pixel values is representative of only a portion of the pixels of the video frame;

send one or more requests for a plurality of substitute video segments corresponding to candidate portions of the video channel being displayed by the computing device, the candidate portions of the video channel being determined based at least on the set of pixel values corresponding to the video channel being displayed by the computing device;

receive the plurality of substitute video segments corresponding to the candidate portions of the video channel;

store, in a cache memory, the plurality of substitute video segments, wherein the plurality of substitute video segments are pre-cached to reduce a latency occurring during video segment replacement, and wherein each substitute video segment of the plurality of substitute video segments is associated with a respective watermark identifier;

identify watermark identifiers in video frames of the video channel, each watermark identifier indicating a presence of a candidate portion, of the candidate portions of the video channel, for content substitution, wherein the watermark identifiers include at least one duplicate watermark identifier;

obtain, from the cache memory, a substitute video segment selected from the plurality of substitute video segments based on the watermark identifiers, the substitute video segment corresponding to the candidate portion for content substitution, wherein the substitute video segment is obtained in response to identifying the watermark identifier;

replace a video segment included in the video channel with the substitute video segment and

terminating a presentation of the substitute video segment upon detection of a change in the video channel being displayed.

14. The computer-program product of claim 13 , further including instructions configured to cause the one or more data processors to:

identify one or more computing devices connected to a same local area network as the computing device; and

transmit content related to the video segment to the one or more computing devices.

15. The computer-program product of claim 14 , wherein the content includes the video segment.

16. The computer-program product of claim 14 , wherein the content includes additional content related to the video segment.

17. The computer-program product of claim 13 , wherein the video channel is identified by determining a match between an unknown video data point and one or more candidate video data points, wherein the match is an approximate match based on the candidate video data point being a closest video data point of the one or more candidate video data points to the unknown video data point.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 4, 2019
From: NEUMEIER, ZEEV; HOARTY, W. LEO
To: INSCAPE DATA, INC.
Reel/Frame 050268/0512 →
Continuity (2)
Provisional Application 62718879 · Aug 14, 2018
Related Publication 20200059693A1 · Feb 20, 2020
Cited By (1)
US 12,445,678