IP Library Granted Patent US 8,437,373
Granted Patent B2
US 8,437,373 · App. 13/074,535 · Granted May 7, 2013

Transmitting enhancement data for video

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 8,437,373
App. No.
13/074,535
Granted
May 7, 2013
Kind
B2
Abstract

The invention provides a method and apparatus that addresses and resolves the issues currently affecting the ability to offer Enhanced TV, in particular, those issues concerning timing and synchronization, interaction with other modules in the STB, and distribution.

Claims (75)

1. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream; and

multiplexing the plurality of data substreams into a data stream, wherein one data substream of the plurality of data substreams identifies certain content, in the set of content associated by the one data substream, which must be preloaded by the client device prior to running the enhancement identified by the one data substream.

2. The method of claim 1 , further comprising transmitting the data stream to the client device.

3. The method of claim 2 , further comprising:

receiving each set of content at the computer server;

multiplexing the sets of content into one or more content streams; and

transmitting the one or more content streams to the client device.

4. The method of claim 1 , wherein one set of content of the plurality of sets of content includes machine-readable instructions executable by the client device, that when executed, cause the client device to present the enhancement associated with the one set of content synchronously with the one or more videos.

5. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream; and

multiplexing the plurality of data substreams into a data stream, wherein each set of content is associated with a mutually independent enhancement received from a different provider.

6. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device and each data substream associatin a set of content of a plurality of sets of content with the enhancement identified by the data substreaml;

multiplexing the plurality of data substreams into a data stream;

receiving the plurality of sets of content at the computer server;

multiplexing the plurality of sets of content into one or more content strearns; and

storing the data stream, the one or more content streams, and the one or more videos on a video-on-demand server.

7. The method of claim 6 , further comprising:

transmitting the data stream and the one or more content streams to the client device in response to a request from the client device to the video-on-demand server.

8. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream; and

multiplexing the plurality of data substreams into a data stream, wherein each data substream includes times, relative to the receipt of that data substream by the client device, at which the enhancement identified by that data substream should be presented with the one or more videos.

9. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream;

multiplexing the plurality of data substreams into a data stream;

receiving at the computer server a plurality of trigger data substreams, each trigger data substream indicating a timing state of one of the enhancements, the timing state of each enhancement being relative to a virtual time base unique to that enhancement;

creating timing information enabling the client device to advance each virtual time base independent of every other virtual time base;

multiplexing the plurality of trigger data substreams and the timing information into a trigger stream; and

transmitting the trigger stream to the client device.

10. A method comprising:

receiving at a computer server a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream;

multiplexing the plurality of data substreams into a data stream;

receiving the data stream at the client device;

monitoring the data stream at the client device for the availability of each enhancement; and

launching one or more of the enhancements at the client device based on the monitored availability identified in the data substreams.

11. A system comprising one or more computers storing one or more programs that when executed by the one or more computers cause the system to:

receive a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream,

multiplex the plurality of data substreams into a data stream, wherein one data substream of the plurality of data substreams identifies certain content, in the set of content associated by the one data substream which must be preloaded by the client device prior to running the enhancement identified by the one data substream.

12. A system comprising one or more computers storing one or more programs that when executed by the one or more computers cause the system to:

receive a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream;

multiplexing the plurality of data substreams into a data stream;

receive the plurality of sets of content at the computer server;

multiplex the sets of content into one or more content streams; and

store the data stream, the one or more content streams, and the one or more videos on a video-on-demand server.

13. The system of claim 12 , wherein the one or more programs, when executed by the one or more computers, further cause the system to:

receive a plurality of trigger data substreams, each trigger data substream indicating a timing state of one of the enhancements, the timing state of each enhancement being relative to a virtual time base unique to that enhancement;

create timing information enabling the client device to advance each virtual time base independent of every other virtual time base;

multiplex the plurality of trigger data substreams and the timing information into a trigger stream; and

store the trigger stream on the video on demand server.

14. The system of claim 13 , wherein each data substream associates one of the trigger substreams with the enhancement identified by that data substream.

15. The system of claim 12 , wherein the one or more programs, when executed by the one or more computers, further cause the system to:

transmit the data stream, the one or more content streams, and the one or more videos to the client device in response to a request from the client device to the video-on-demand server.

16. A system comprising one or more computers storing one or more programs that when executed by the one or more computers cause the system to:

receive a plurality of data substreams each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream; and

multiplex the plurality of data substreams into a data stream, wherein each data substream includes times, relative to the receipt of that data substream by the client device, at which the enhancement identified by that data substream should be presented with the one or more videos.

17. A system comprising:

a server including one or more computers storm one or more programs that when executed by the one or more computers cause the server to:

receive a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream, and

multiplex the plurality of data substreams into a data stream; and

a client device, wherein the client device includes a client computer storing one or more client programs that when executed by the client computer, cause the client device to:

receive the data stream from the server,

monitor the data stream for the information identifying the availability of each enhancement, and

launch one or more of the enhancements based on the monitored availability identified in the data substreams.

18. One or more non-transitory computer readable memory having one or more programs stored thereon, that when executed by one or more computers, cause a system to:

receive a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substrearn associating a set of content of a plurality of sets of content with the enhancement identified by the data substream, wherein at least one of the data substreams identifies client resources required to run the enhancement identified by the at least one data substream; and

multiplex the plurality of data substreams into a data stream.

19. One or more non-transitory computer readable memory having one or more programs stored thereon, that when executed by one or more computers, further cause a system to:

receive a plurality of data substreams, each data substream identifying the availability of an enhancement of a plurality of enhancements presentable with one or more videos by a client device, and each data substream associating a set of content of a plurality of sets of content with the enhancement identified by the data substream;

multiplex the plurality of data substreams into a data stream;

receive a plurality of trigger data substreams, each trigger data substream indicating a timing state of one of the enhancements, the timing state of each enhancement being relative to a virtual time base unique to that enhancement;

create timing information enabling the client device to advance each virtual time base independent of every other virtual time base;

multiplex the plurality of trigger data substreams and the timing information into a trigger stream; and

transmit the data stream and the trigger stream to the client device.

20. The one or more non-transitory computer readable memory of claim 19 , wherein each data substream associates one of the trigger substreams with the enhancement identified by that data substream.

Assignments (6)
SECURITY INTEREST Recorded May 3, 2023
From: ADEIA GUIDES INC.; ADEIA IMAGING LLC; ADEIA MEDIA HOLDINGS LLC; ADEIA MEDIA SOLUTIONS INC.; ADEIA SEMICONDUCTOR ADVANCED TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR BONDING TECHNOLOGIES INC.; ADEIA SEMICONDUCTOR INC.; ADEIA SEMICONDUCTOR SOLUTIONS LLC; ADEIA SEMICONDUCTOR TECHNOLOGIES LLC; ADEIA SOLUTIONS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 063529/0272 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: COMCAST CABLE COMMUNICATIONS MANAGEMENT, LLC
To: TIVO CORPORATION
Reel/Frame 054540/0059 →
MERGER Recorded Apr 17, 2017
From: TVWORKS, LLC
To: COMCAST CABLE COMMUNICATIONS MANAGEMENT, LLC
Reel/Frame 042269/0069 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2011
From: BULKOWSKI, BRIAN; WALES, CAROLYN; HSU, SAM; HELMAN, JAMES; DECKER, JOSEPH; WAGENAAR, BROCK; VICKERS, MARK
To: LIBERATE TECHNOLOGIES
Reel/Frame 026046/0673 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 30, 2011
From: LIBERATE TECHNOLOGIES
To: DOUBLE C TECHNOLOGIES, LLC
Reel/Frame 026046/0959 →
CHANGE OF NAME Recorded Mar 30, 2011
From: DOUBLE C TECHNOLOGIES, LLC
To: TVWORKS, LLC
Reel/Frame 026047/0386 →