IP Library Granted Patent US 8,635,355
Granted Patent B2
US 8,635,355 · App. 10/137,613 · Granted Jan 21, 2014

Method for pre-caching content to enable true VOD systems from NVOD or stream limited VOD systems

Inventors: Michael Robert Harris (Phoenixville, PA); Ren Egawa (Wayne, PA)
Assignee: STMicroelectronics, Inc.
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,635,355
App. No.
10/137,613
Granted
Jan 21, 2014
Kind
B2
Abstract

Content that is delivered nearly on-demand, in overlapping streams that start in staggered intervals on different channels, is played on-demand for the user using a storage system in conjunction with the receiver. A portion of the content corresponding to the staggering interval of the various streams is pre-cached and employed for playback when the user initiates on-demand playback. Content from the most-recently-started stream at the time of playback initiation is then buffered, and playback switches from the pre-cached content to the buffered content at a preselected alignment point.

Claims (42)

1. A system for on-demand playback of content, comprising:

a receiver configured to selectively receive each of a plurality of channels on which a program is transmitted in overlapping streams with staggered start times;

a storage system containing a pre-cached portion of program data corresponding to playback of the program for a staggering interval between start times for the overlapping streams; and

a controller coupled to the receiver and the storage system, the controller configured, in response to initiation of on-demand playback of the program, to:

begin playback of the program using the pre-cached portion from a buffer starting at a point identified by a read pointer,

select a stream having a most recent start time for the program, and

during the playback of the program, write program data from the selected stream into the buffer starting at a location identified by a write pointer, wherein the write pointer is separated from the read pointer by an amount of program data based on at least one of the staggering interval and a start time of the selected stream, wherein playback using the pre-cached portion terminates at a first storage location in the buffer and playback using program data from the selected stream begins at a point within the program data corresponding to a second storage location in the buffer, wherein the first and second storage locations are successive storage locations in the buffer.

2. The system according to claim 1 , wherein buffered program data from the selected stream begins at a program point immediately following a point corresponding to an end of the pre-cached portion.

3. The system according to claim 1 , wherein the controller is configured to begin playback of buffered program data from the selected stream upon completing playback of the pre-cached portion.

4. The system according to claim 1 , wherein buffered program data from the selected stream begins at a program point prior to a point corresponding to an end of the pre-cached portion.

5. The system according to claim 1 , wherein a set of logically successive storage locations forming the buffer comprises a circular buffer, wherein buffered program data from the selected stream is written over the pre-cached portion.

6. The system according to claim 1 , wherein a set of logically successive storage locations forming the buffer comprises a linear buffer.

7. The system according to claim 1 , wherein the pre-cached portion is refreshed from the selected stream.

8. A system for on-demand playback of content delivered nearly on-demand, the system comprising:

a server configured to transmit a program in overlapping streams with staggered start times on each of a plurality of channels;

a receiver configured to selectively receive each of the plurality of channels;

a storage system containing a pre-cached portion of program data corresponding to playback of the program for a staggering interval between start times for the overlapping streams;

a presentation device configured to selectively present playback of program content from either the receiver or the storage system; and

a controller configured, in response to initiation of on-demand playback of the program, to:

begin playback on the presentation device of the program using the pre-cached portion from a buffer starting at a point identified by a read pointer,

select a channel at the receiver on which a stream having a most recent start time for the program is being transmitted, and

during the playback of the program, write program data from the selected channel into the buffer starting at a location identified by a write pointer, wherein the write pointer is separated from the read pointer by an amount of program data based on at least one of the staggering interval and a start time of the selected stream, wherein playback using the pre-cached portion terminates at a first storage location in the buffer and playback using program data from the selected stream begins at a point within the program data corresponding to a second storage location in the buffer, wherein the first and second storage locations are successive storage locations in the buffer.

9. The system according to claim 8 , wherein buffered program data from the selected stream begins at a program point immediately following a point corresponding to an end of the pre-cached portion.

10. The system according to claim 8 , wherein the controller is configured to begin playback of buffered program data from the selected stream upon completing playback of the pre-cached portion.

11. The system according to claim 8 , wherein buffered program data from the selected stream begins at a program point prior to a point corresponding to the end of the pre-cached portion.

12. The system according to claim 8 , wherein a set of logically successive storage locations forming the buffer comprises a circular buffer, and wherein buffered program data from the selected stream is written over the pre-cached portion.

13. The system according to claim 8 , wherein a set of logically successive storage locations forming the buffer comprises a linear buffer.

14. The system according to claim 8 , wherein the pre-cached portion is refreshed from the selected stream.

15. A method of on-demand playback of content delivered nearly on-demand, the method comprising:

for a program received at a receiver in overlapping streams with staggered start times on each of a plurality of channels, pre-caching, a portion of the program corresponding to playback of the program for a staggering interval between start times for the overlapping streams; and

upon initiation of on-demand playback of the program, causing a controller:

to begin playback of the program from the storage system using the pre-cached portion from a buffer starting at a point identified by a read pointer,

to select a stream having a most recent start time for the program, and

during the playback of the program, to write program data from the selected stream into the buffer starting at a location identified by a write pointer, wherein the write pointer is separated from the read pointer by an amount of program data based on at least one of the staggering interval and a start time of the selected stream, to terminate playback using the pre-cached portion at a first storage location in the buffer and to begin playback using program data from the selected stream a point within the program data corresponding to a second storage location in the buffer, wherein the first and second storage locations are successive storage locations in the buffer.

16. The method according to claim 15 , wherein the buffered program data from the selected stream begins at a program point immediately following a point corresponding to the end of the pre-cached portion.

17. The method according to claim 15 , further comprising:

beginning playback of buffered program data from the selected stream upon completing playback of the pre-cached portion.

18. The method according to claim 15 , wherein the buffered program data from the selected stream begins at a program point prior to a point corresponding to the end of the pre-cached portion.

19. The method according to claim 15 , further comprising:

storing the pre-cached portion and buffered program data from the selected stream within a circular buffer, wherein the buffered program data from the selected stream is written over the pre-cached portion.

20. The method according to claim 15 , further comprising:

storing the pre-cached portion and buffered program data from the selected stream within a linear buffer.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 1, 2002
From: HARRIS, MICHAEL ROBERT; EGAWA, REN
To: STMICROELECTRONICS, INC.
Reel/Frame 012864/0484 →
Continuity (1)
Related Publication 20030208612A1 · Nov 6, 2003