# US 8,571,051 B2 · System and method for seamless switching through buffering

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

- Number: US 8,571,051 B2
- Document ID: US8571051B2
- Status: Granted
- Kind: B2
- Application number: 12/911,502
- Filed: 2010-10-25
- Published: 2011-07-21
- Granted: 2013-10-29
- Earliest claimed: 2000-09-29
- Assignees: Visible World, Inc.
- Applicants: Seth Haberman; Alex Jansen; Gerrit Niemeijer; Richard L. Booth
- Inventors: Seth Haberman; Alex Jansen; Gerrit Niemeijer; Richard L. Booth
- Web page: https://patentgrep.com/patent/US8571051B2

## CPC

- H04N 21/23424: {involving splicing one content stream with another content stream, e.g. for inserting or substituting an advertisement}
- 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/4348: {Demultiplexing of additional data and video streams}
- H04N 21/44016: {involving splicing one content stream with another content stream, e.g. for substituting a video clip}
- H04N 21/812: {involving advertisement data (advertising per se G06Q30/02)}
- H04N 21/8455: {involving pointers to the content, e.g. pointers to the I-frames of the video stream}
- H04N: PICTORIAL COMMUNICATION, e.g. TELEVISION

## Abstract

A method of preparing data streams to facilitate seamless switching between such streams by a switching device to produce an output data stream without any switching artifacts. Bi-directional switching between any plurality of data streams is supported. The data streams are divided into segments, wherein the segments include synchronized starting points and end points. The data rate is increased before an end point of a segment, to create switch gaps between the segments. Increasing the data rate can include increasing a bandwidth of the plurality of data streams, for example by multiplexing, or compressing the data. The present invention can be used, for example, with MPEG or AC-3 encoded audio and MPEG encoded video segments that are multiplexed into MPEG-2 transport streams. Also included are specific methods for preparing MPEG video streams and multiplexing MPEG video with MPEG or AC-3 audio streams to allow a receiver to create seamless transitions between individually encoded segments.

## Claims

### Claim 1

A method for generating a personalized data stream from a plurality of data streams, the method comprising:
receiving the plurality of data streams at a switching device comprising a buffer, the plurality of data streams comprising a plurality of segments having synchronized start points and end points;
generating switch gaps comprising substantially no data between successive end points and start points, the switch gaps being configured to provide seamless switching between the plurality of data streams; and
generating a personalized data stream by:
transmitting at least one segment of one of the plurality of data streams to the buffer,
seamlessly switching to another of the plurality of data streams during a switch gap, and
transmitting at least one other segment from the another of the plurality of data streams to the buffer following the at least one segment of one of the plurality of data streams.

### Claim 2 (depends on 1)

The method of claim 1, wherein each of said plurality of data streams is an MPEG data stream.

### Claim 3 (depends on 1)

The method of claim 1, wherein the switch gap has a duration that is same or longer than a switching time of the switching device.

### Claim 4 (depends on 1)

The method of claim 1, wherein a transmission rate of the plurality of segments is selected to reduce buffer overflow in the buffer of the switching device.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of segments comprise From segments and To segments configured for seamless presentation of any of the From segments followed by any one of the To segments by a data consumer.

### Claim 6 (depends on 5)

The method of claim 5, wherein the switch gaps are generated between the From segments and the To segments by transmitting at least a portion of the From segments to the buffer at a faster transmission rate than a normal transmission rate.

### Claim 7 (depends on 6)

The method of claim 6, wherein the faster transmission rate is spread out over an entire duration of each From segment.

### Claim 8 (depends on 1)

The method of claim 1, further comprising providing a switch signal configured to signal the switching element to seamlessly switch to another of the plurality of data streams during a switch gap.

### Claim 9 (depends on 1)

The method of claim 1, wherein the switching device is configured to receive the plurality of data streams over a computer network.

### Claim 10 (depends on 9)

The method of claim 9, wherein the computer network comprises an Internet network.

### Claim 11 (depends on 10)

The method of claim 10, wherein the plurality of data streams are transmitted using an Internet Protocol communication protocol.

### Claim 12 (depends on 1)

The method of claim 1, wherein the personalized data stream is configured to be consumed by a computing device.

### Claim 13 (depends on 1)

The method of claim 1, wherein seamlessly switching to another of the plurality of data streams during a switch gap comprises switching without generating switching artifacts in the personalized data stream.

### Claim 14 (depends on 1)

The method of claim 1, wherein the switch gap comprises a multi-directional seamless switch gap.

### Claim 15

A system configured to generate a personalized data stream from a plurality of data streams, the method comprising:
a multiplexer configured to multiplex the plurality of data streams to comprise a plurality of segments having synchronized start points and end points; and
a switching device comprising a buffer, the switching device being configured to receive the plurality of data streams and to generate switch gaps comprising substantially no data between successive end points and start points, the switch gaps being configured to provide seamless switching between the plurality of data streams,
wherein the personalized data stream is generated by the switching device by:
transmitting at least one segment of one of the plurality of data streams to the buffer,
seamlessly switching to another of the plurality of data streams during a switch gap, and
transmitting at least one other segment from the another of the plurality of data streams to the buffer following the at least one segment of one of the plurality of data streams.

### Claim 16 (depends on 15)

The system of claim 15, wherein the plurality of segments comprise From segments and To segments configured for seamless presentation of any of the From segments followed by any one of the To segments by a data consumer.

### Claim 17 (depends on 16)

The system of claim 16, wherein the switch gaps are generated between the From segments and the To segments by transmitting at least a portion of the From segments to the buffer at a faster transmission rate than a normal transmission rate.

### Claim 18 (depends on 15)

The system of claim 15, wherein the switching device is configured to receive the plurality of data streams over a computer network.

### Claim 19 (depends on 18)

The system of claim 18, wherein the computer network comprises an Internet network.

### Claim 20

A non-transitory computer-readable storage medium having computer-readable program code configured to generate a personalized data stream from a plurality of data streams embodied therewith, the computer-readable program code comprising:
computer-readable program code configured to receive the plurality of data streams at a switching device comprising a buffer and operatively coupled with the computer-readable storage medium, the plurality of data streams comprising a plurality of segments having synchronized start points and end points;
computer-readable program code configured to generate switch gaps comprising substantially no data between successive end points and start points, the switch gaps being configured to provide seamless switching between the plurality of data streams; and
computer-readable program code configured to generate a personalized data stream by:
transmitting at least one segment of one of the plurality of data streams to the buffer,
seamlessly switching to another of the plurality of data streams during a switch gap, and
transmitting at least one other segment from the another of the plurality of data streams to the buffer following the at least one segment of one of the plurality of data streams.

### Claim 21 (depends on 20)

The computer-readable storage medium of claim 20, wherein the plurality of segments comprise From segments and To segments configured for seamless presentation of any of the From segments followed by any one of the To segments by a data consumer.
