# US 7,908,626 B2 · Network based digital information and entertainment storage and delivery system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,908,626 B2
- Document ID: US7908626B2
- Status: Granted
- Kind: B2
- Application number: 10/263,015
- Filed: 2002-10-02
- Published: 2003-11-06
- Granted: 2011-03-15
- Earliest claimed: 2002-05-03
- Assignees: Time Warner Interactive Video Group, Inc.
- Inventors: Louis D. Williamson; Joseph Buehl; John W. Callahan; John B. Carlucci; James A. Chiddix; Michael T. Hayashi; Kevin J. Leddy
- Web page: https://patentgrep.com/patent/US7908626B2

## CPC

- G06F 3/0482: Interaction with lists of selectable items, e.g. menus
- H04N 5/782: on tape
- H04N 7/17318: {Direct or substantially direct transmission and handling of requests}
- H04N 7/17327: {with deferred transmission or handling of upstream communications}
- H04N 7/17336: {Handling of requests in head-ends}
- H04N 21/2221: {being a cable television head-end (CATV in broadcast systems H04H20/78)}
- H04N 21/235: Processing of additional data, e.g. scrambling of additional data or processing content descriptors
- H04N 21/23614: {Multiplexing of additional data and video streams (arrangements for simultaneous broadcast of plural pieces of information H04H20/28)}
- H04N 21/2407: {Monitoring of transmitted content, e.g. distribution time, number of downloads (arrangements for monitoring programmes for broadcast or for distribution combined with broadcast H04H20/14)}
- H04N 21/2625: {for delaying content or additional data distribution, e.g. because of an extended sport event}
- H04N 21/4316: {for displaying supplemental content in a region of the screen, e.g. an advertisement in a separate window}
- H04N 21/4325: {by playing back content from the storage medium (reproduction of recorded television signals H04N5/76; reproduction of recorded television signals H04N9/79)}
- H04N 21/4331: {Caching operations, e.g. of an advertisement for later insertion during playback}
- H04N 21/4333: {Processing operations in response to a pause request}
- H04N 21/4335: Housekeeping operations, e.g. prioritizing content for deletion because of storage space restrictions {(storage management, e.g. defragmentation G06F3/0604; unloading stored programs G06F9/445; storage management in file systems G06F16/10; buffering arrangements in a network node or in an end terminal in packet networks H04L49/90)}
- H04N 21/435: Processing of additional data, e.g. decrypting of additional data, reconstructing software from modules extracted from the transport stream
- H04N 21/4532: {involving end-user characteristics, e.g. viewer profile, preferences (monitoring of user activities for profile generation for accessing a video database G06F16/739; user profiles in network data switching protocols H04L67/306; processing of user preferences or user profiles in wireless networks H04W8/18)}
- H04N 21/454: Content {or additional data} filtering, e.g. blocking advertisements
- H04N 21/47202: {for requesting content on demand, e.g. video on demand}
- H04N 21/47214: {for content reservation or setting reminders; for requesting event notification, e.g. of sport results or stock market (stock exchange data over packet-switching network H04L12/1804; push services over packet-switching network H04L12/1859; notification of incoming messages in packet switching networks H04L51/224)}
- H04N 21/4722: for requesting additional data associated with the content
- H04N 21/482: End-user interface for programme selection
- H04N 21/4882: {for displaying messages, e.g. warnings, reminders (arrangements for providing short real-time information to substation in data switching networks H04L12/1895)}
- H04N 21/6582: {Data stored in the client, e.g. viewing habits, hardware capabilities, credit card number (arrangements where receivers interact with the broadcast H04H20/38)}
- H04N 21/6587: Control parameters, e.g. trick play commands, viewpoint selection
- H04N 21/8545: for generating interactive applications
- H04H 20/06: among broadcast stations
- H04H 60/46: for recognising users' preferences
- H04N 5/45: Picture in picture {, e.g. displaying simultaneously another television channel in a region of the screen}
- H04N 5/602: {for digital sound signals}
- H04N 21/42204: {User interfaces specially adapted for controlling a client device through a remote control device; Remote control devices therefor (constructive details of casings for the remote control device H01H9/0235; user interfaces for controlling a tuning device of a television receiver through a remote control H03J9/00; remote control of peripheral devices connected to a television receiver through the remote control device of the television receiver H04B1/205)}
- H04N 21/42228: {the reprogrammable keys being displayed on a display screen in order to reduce the number of keys on the remote control device itself}
- H04N 21/426: Internal components of the client {; Characteristics thereof} (H04N5/44 takes precedence)
- H04N 21/47: End-user applications
- H04N 21/478: Supplemental services, e.g. displaying phone caller identification, shopping application
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04H: BROADCAST COMMUNICATION (multiplex communication H04J; pictorial communication aspects of broadcast systems H04N)

## Abstract

Live television broadcast and other information and entertainment programs, e.g., videos-on-demand (VOD), are provided to a user through a communications network, e.g., a cable network. A processing unit is employed at an headend of the communications network to respond to user requests for PVR-like functions, e.g., pausing, rewinding and fast-forwarding, to be performed on the program content being viewed. The processing unit in accordance with the invention causes a delivery of an appropriate version of the program content to meet such user requests.

## Claims

### Claim 1

A system for delivering, through a communications network, program content to a terminal at a user location, the system comprising:
a processor remote from the user location for recording the program content during a broadcast of the program content according to a broadcast schedule and storing the recorded program content in storage, the recorded program content comprising, at least in part, I-frames defining the program content, each I-frame being identified by a respective I-frame identifier;
the processor further creating, at least in part during the broadcast of the program content according to the broadcast schedule, at least one file separate from the recorded program content, the at least one file comprising an array of selected I-frame identifiers identifying respective I-frames of the recorded program content without the respective I-frames, for delivering manipulated recorded program content during at least the broadcast of the program content according to the broadcast schedule, wherein the selected I-frame identifiers identify fewer than all of the I-frames of the recorded program content, the at least one file being stored in storage separate from the recorded program content;
a mechanism for delivering, through the communications network, the program content to the terminal according to the broadcast schedule;
an interface for receiving, from the terminal, a request for performing an action on the recorded program content at least during the broadcast of the program content; and
a control unit responsive to the request for manipulating the recorded program content to meet the request, based, at least in part, on at least one of the at least one files.

### Claim 2 (depends on 1)

The system of claim 1 being connected to the communications network which includes a cable network.

### Claim 3 (depends on 1)

The system of claim 1 wherein the action causes a perception of at least one of rewinding or fast-forwarding a delivery of the program content.

### Claim 4 (depends on 1)

The system of claim 1 wherein the request includes data identifying the terminal.

### Claim 5 (depends on 4)

The system of claim 4 wherein the data concerns an Internet protocol (IP) address of the terminal.

### Claim 6 (depends on 4)

The system of claim 4 wherein the data concerns a media access control (MAC) address of the terminal.

### Claim 7 (depends on 1)

The system of claim 1 further comprising a cache for storing the recorded program content.

### Claim 8 (depends on 1)

The system of claim 1 wherein the program content delivered to the terminal includes the recorded program content.

### Claim 9 (depends on 1)

The system of claim 1, wherein the system is configured to:
select a transport stream for delivering the program content to the terminal; and
identify a carrier frequency for carrying the selected transport stream;
wherein the control unit causes delivery of the manipulated recorded program content to the terminal, via the transport stream.

### Claim 10 (depends on 9)

The system of claim 9, wherein:
the system is configured to select the transport stream from among transport streams detected by the terminal.

### Claim 11 (depends on 10)

The system of claim 10, configured to:
determine a capacity required to transmit the program content; and
determine the transport stream based, at least in part, on the required capacity.

### Claim 12 (depends on 11)

The system of claim 11, configured to multiplex the program content with other program streams in the selected transport stream.

### Claim 13 (depends on 1)

The system of claim 1, wherein the program content of complete programs is recorded, the system further comprising:
memory to store the recorded program content of the complete programs for delivery to a second terminal, upon a request for the complete program content from the second terminal received after completion of broadcast of the program content according to the broadcast schedule;
wherein the processor records all program content during broadcast of the respective program content according to the program schedule.

### Claim 14 (depends on 1)

The system of claim 1, wherein:
the program content is recorded by the processor during broadcast of the program content to the terminal according to the broadcast schedule; and
the program content delivered by the mechanism is the recorded program content.

### Claim 15 (depends on 1)

The system of claim 1, wherein the at least one file is created as the program content is received.

### Claim 16 (depends on 1)

The system of claim 1, wherein:
the processor receives the program content in compressed form; and
the at least one second file is based, at least in part, on the compressed program content.

### Claim 17 (depends on 1)

The system of claim 1, further comprising:
memory to store the recorded program content;
wherein the control unit manipulates the recorded program content by retrieving the respective I-frames identified by the I-frame identifiers in the at least file, from the recorded program content; and
the mechanism delivers the retrieved I-frames through the communications network.

### Claim 18

A system for providing program content to a terminal through a communications network, the system comprising:
a first interface for receiving content of an in-progress program from a source via broadcast, the in-progress program content comprising, at least in part, I-frames defining the program content, each I-frame being identified by a respective I-frame identifier;
a memory for storing the in-progress program content during the broadcast of the in-progress program content according to a broadcast schedule, the stored in-progress program content comprising, at least in part, the I-frames defining the program content;
the memory further storing, during the broadcast of the in-progress program content according to the broadcast schedule, separate from the recorded program content, at least one file based on the content of the in-progress program content for manipulating recorded program content during at least the broadcast of the program content according to the broadcast schedule, the at least one file comprising an array of selected I-frame identifiers identifying respective I-frames of the recorded program content without the respective I-frames, wherein the selected I-frame identifiers identify fewer than all of the I-frames of the recorded program content;
a mechanism for providing first signals containing the in-progress program content onto the communications network, the terminal in response to the first signals helping recover the in-progress program content in perceivable form;
a second interface for receiving from the terminal through the communications network a request for performing an action on the stored in-progress program content at least during the broadcast of the in-progress program content; and
a control unit responsive to the request for providing second signals containing at least part of the stored in-progress program content to the terminal through the communications network to realize the action on the stored in-progress program content based, at least in part, on at least one of the at least one files.

### Claim 19 (depends on 18)

The system of claim 18 wherein the program content is formatted pursuant to an MPEG standard.

### Claim 20 (depends on 18)

The system of claim 18 wherein the first signals include quadrature amplitude modulated (QAM) signals.

### Claim 21 (depends on 18)

The system of claim 18 wherein the memory includes a cache.

### Claim 22 (depends on 18)

The system of claim 18 wherein the perceivable form includes at least one of a viewable form and an audible form.

### Claim 23 (depends on 18)

The system of claim 18 being connected to the communications network which includes a cable network.

### Claim 24 (depends on 18)

The system of claim 18 wherein the action causes a perception of at least one of rewinding or fast-forwarding a provision of the program content.

### Claim 25 (depends on 18)

The system of claim 18 wherein the request includes data identifying the terminal.

### Claim 26 (depends on 25)

The system of claim 25 wherein the data concerns an IP address of the terminal.

### Claim 27 (depends on 25)

The system of claim 25 wherein the data concerns a MAC address of the terminal.

### Claim 28 (depends on 18)

The system of claim 18 wherein the program content contained in the first signals includes the recorded program content.

### Claim 29 (depends on 18)

The system of claim 18, wherein the at least one file comprises at least one rewind file for rewinding the in-progress program content.

### Claim 30 (depends on 29)

The system of claim 29, wherein the at least one rewind file comprises an array of selected I-frame identifiers corresponding to the in-progress program content, in a reverse direction.

### Claim 31 (depends on 29)

The system of claim 29, wherein the at least one file further comprises at least one fast forward file adapted to fast forward the in-progress program content.

### Claim 32 (depends on 31)

The system of claim 31, wherein the at least one fast forward file comprises an array of selected I-frame identifiers corresponding to the program content, in a forward direction.

### Claim 33 (depends on 18)

The system of claim 18, wherein the at least one file comprises at least one fast forward file for fast forwarding the in-progress program content.

### Claim 34 (depends on 33)

The system of claim 33, wherein the at least one fast forward file comprises an array of selected I-frame identifiers corresponding to the program content, in a forward direction.

### Claim 35 (depends on 18)

The system of claim 18, wherein the first processor creates a metadata file to associate with the recorded program content.

### Claim 36 (depends on 18)

The system of claim 18, wherein:
the control unit provides the second signals by retrieving the respective I-frames identified by the I-frame identifiers in the at least file, from the recorded program content; and
the mechanism provides the second signals onto the communications network.

### Claim 37 (depends on 18)

The system of claim 18, wherein the in-progress program is received by the first interface in compressed form.

### Claim 38

A method for delivering, through a communications network, program content to a terminal at a user location, the method comprising:
recording the program content at a location remote from the user location during a broadcast of the program content according to a broadcast schedule, the recorded program content comprising, at least in part, I-frames defining the program content, each I-frame being identified by a respective I-frame identifier;
creating, at least in part during the broadcast of the program content according to the broadcast schedule, at least one file separate from the recorded program content, the at least one file comprising an array of selected I-frame identifiers identifying respective I-frames of the recorded program content without the respective I-frames, for manipulating recorded program content, wherein the selected I-frame identifiers identify fewer than all of the I-frames of the recorded program content;
storing the at least one file separate from the recorded program content;
delivering, through the communications network, the program content to the terminal according to the broadcast schedule;
receiving, from the terminal, a request for performing an action on the recorded program content at least during the broadcast of the program content;
in response to the request, manipulating the recorded program content to meet the request based, at least in part, on at least one of the at least one files.

### Claim 39 (depends on 38)

The method of claim 38 wherein the communications network includes a cable network.

### Claim 40 (depends on 38)

The method of claim 38 wherein the action causes a perception of at least one of rewinding or fast-forwarding a delivery of the program content.

### Claim 41 (depends on 38)

The method of claim 38 wherein the request includes data identifying the terminal.

### Claim 42 (depends on 41)

The method of claim 41 wherein the data concerns an IP address of the terminal.

### Claim 43 (depends on 41)

The method of claim 41 wherein the data concerns a MAC address of the terminal.

### Claim 44 (depends on 38)

The method of claim 38 further comprising storing the recorded program content.

### Claim 45 (depends on 38)

The method of claim 38 wherein the program content delivered to the terminal includes the recorded program content.

### Claim 46 (depends on 38)

The method of claim 38, further comprising:
selecting a transport stream from among the identified transport streams for delivering the program content to the terminal based, at least in part, on a capacity required to transmit the recorded program content;
identifying a carrier frequency for carrying the selected transport stream; and
delivering the program content via the selected transport stream.

### Claim 47 (depends on 46)

The method of claim 46, further comprising:
multiplexing the program content with other program streams in the selected transport stream; and
delivering the program content via the selected transport stream.

### Claim 48 (depends on 38)

The method of claim 38, comprising manipulating the recorded program content to meet the request by:
retrieving the respective I-frames identified by the I-frame identifiers in the at least one of the at least one files, from the recorded program content; and
delivering, through the communications network, the retrieved I-frames.

### Claim 49

A method for providing program content to a terminal through a communications network, the method comprising:
receiving content of an in-progress program, the in-progress program content comprising, at least in part, I-frames defining the program content, each I-frame being identified by a respective I-frame identifier;
storing the in-progress program content during a broadcast of the in-progress program content according to a broadcast schedule, wherein the stored in-progress program content comprises, at least in part, the I-frames defining the program content;
storing, during the broadcast of the in-progress program content according to the broadcast schedule, separate from the recorded program content, at least one file based on the content of the in-progress program content for manipulating recorded program content during at least the broadcast of the program content according to the broadcast schedule, the at least one file comprising an array of selected I-frame identifiers identifying respective I-frames of the recorded program content without the respective I-frames, wherein the selected I-frame identifiers identify fewer than all of the I-frames of the recorded program content;
providing first signals containing the in-progress program content onto the communications network, the terminal in response to the first signals helping recover the in-progress program content in perceivable form;
receiving from the terminal through the communications network a request for performing an action on the stored in-progress program content at least during the broadcast of the in-progress program content;
in response to the request, providing second signals containing at least part of the stored in-progress program content to the terminal through the communications network to realize the action on the stored in-progress program content, based, at least in part, on the at least one file.

### Claim 50 (depends on 49)

The method of claim 49 wherein the program content is formatted pursuant to an MPEG standard.

### Claim 51 (depends on 48)

The method of claim 48 wherein the first signals include QAM signals.

### Claim 52 (depends on 49)

The method of claim 49 wherein the perceivable form includes at least one of a viewable form and an audible form.

### Claim 53 (depends on 49)

The method of claim 49 wherein the communications network includes a cable network.

### Claim 54 (depends on 49)

The method of claim 49 wherein the action causes a perception of at least one of rewinding or fast-forwarding a provision of the program content.

### Claim 55 (depends on 49)

The method of claim 49 wherein the request includes data identifying the terminal.

### Claim 56 (depends on 55)

The method of claim 55 wherein the data concerns an IP address of the terminal.

### Claim 57 (depends on 55)

The method of claim 55 wherein the data concerns a MAC address of the terminal.

### Claim 58 (depends on 49)

The method of claim 49 wherein the program content contained in the first signals includes the recorded program content.

### Claim 59 (depends on 49)

The method of claim 49, comprising storing at least one rewind file for rewinding the in-progress program content.

### Claim 60 (depends on 59)

The method of claim 59, wherein the at least one rewind file comprises an array of selected I-frame identifiers corresponding to the in-progress program content, in a reverse direction.

### Claim 61 (depends on 59)

The method of claim 59, wherein the at least one file further comprises at least one fast forward file for fast forwarding the in-progress program content.

### Claim 62 (depends on 61)

The method of claim 61, wherein the fast forward file comprises an array of selected I-frame identifiers corresponding to the program content, in a forward direction.

### Claim 63 (depends on 49)

The method of claim 49, wherein storing the in-progress program content comprises storing at least one fast forward file for fast forwarding the in-progress program content.

### Claim 64 (depends on 63)

The method of claim 63, wherein the at least one fast forward file comprises an array of selected I-frame identifiers corresponding to the program content, in a forward direction.

### Claim 65 (depends on 49)

The method of claim 49, comprising:
providing the second signals by retrieving the respective I-frames identified by the I-frame identifiers in the at least file, from the recorded program content.

### Claim 66 (depends on 49)

The method of claim 49, comprising:
receiving the content in compressed form.
