IP Library Granted Patent US 10,341,696
Granted Patent B2
US 10,341,696 · App. 15/393,454 · Granted Jul 2, 2019

System and method for seamless switching through buffering

Inventors: Seth Haberman (New York, NY); Alex Jansen (Miami, FL); Gerrit Niemeijer (Maplewood, NJ); Richard L. Booth (Cambridge, OH)
Assignee: Visible World, LLC.
H04N21/23424H04N21/235H04N21/23614H04N21/4348H04N21/44016H04N21/812H04N21/8455
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 10,341,696
App. No.
15/393,454
Granted
Jul 2, 2019
Kind
B2
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 (47)

1. A method comprising:

receiving a first data stream comprising at least a first segment, wherein the first segment comprises a first starting point and a first end point;

receiving a second data stream comprising at least a second segment, wherein the second segment comprises a second starting point and a second end point;

encoding the first segment for transmission at a first data rate;

encoding the second segment;

determining a switch gap size, wherein the switch gap size comprises at least a predetermined amount of time needed to switch from transmitting the first segment of the first data stream to transmitting the second segment of the second data stream;

determining a second data rate such that a difference between a first transmit time of the first segment at the first data rate and a second transmit time of the first segment at the second data rate approximates the switch gap size; and

multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment such that the second starting point of the encoded second segment is synchronized with the first end point of the encoded first segment.

2. The method of claim 1 , wherein determining the second data rate is based on a buffer capacity of a switching device.

3. The method of claim 1 , wherein the multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment further comprises:

multiplexing the first segment and the second segment relative to a same clock.

4. The method of claim 1 , wherein the predetermined amount of time is based on a switching speed of a receiver.

5. The method of claim 1 , wherein the first data stream and the second data stream comprise digital audio, digital video, or combinations thereof.

6. The method of claim 1 , wherein the second data rate is spread out over an entire duration of the first segment.

7. The method of claim 1 , wherein the encoded first segment is multiplexed for transmission at the second data rate for only a portion of the encoded first segment.

8. A system comprising:

one or more processors;

a non-transitory, computer-readable storage medium in operable communication with at least one processor of the one or more processors, wherein the computer-readable storage medium contains one or more programming instructions that, when executed, cause the processor to:

receive a first data stream comprising at least a first segment, wherein the first segment comprises a first starting point and a first end point;

receive a second data stream comprising at least a second segment, wherein the second segment comprises a second starting point and a second end point;

encode the first segment for transmission at a first data rate;

encode the second segment;

determine a switch gap size, wherein the switch gap size comprises at least a predetermined amount of time needed to switch from transmitting the first segment of the first data stream to transmitting the second segment of the second data stream;

determine a second data rate such that a difference between a first transmit time of the first segment at the first data rate and a second transmit time of the first segment at the second data rate approximates the switch gap size; and

multiplex the encoded first segment for transmission at the second data rate and the encoded second segment such that the second starting point of the encoded second segment is synchronized with the first end point of the encoded first segment.

9. The system of claim 8 , wherein determining the second data rate is based on a buffer capacity of a switching device.

10. The system of claim 8 , wherein the multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment further comprises:

multiplexing the encoded first segment and the encoded second segment relative to a same clock.

11. The system of claim 8 , wherein the multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment creates a gap between the encoded first segment and the encoded second segment, the gap comprising substantially no data.

12. The system of claim 8 , wherein the first data stream and the second data stream comprise digital audio, digital video, or combinations thereof.

13. The system of claim 8 , wherein the second data rate is spread out over an entire duration of the first segment.

14. The system of claim 8 , wherein the encoded first segment is multiplexed for transmission at the second data rate for only a portion of the encoded first segment.

15. The system of claim 8 , wherein the instructions, when executed, further cause the at least one processor to:

insert a trigger message at the end of the encoded first segment, wherein the trigger message indicates a switch point between the encoded first segment and the encoded second segment.

16. A method comprising:

determining a switch gap size, wherein the switch gap size comprises at least an amount of time needed for a switching device to switch from transmitting a first segment of a first data stream to transmitting a second segment of a second data stream;

determining, based on a buffer capacity of the switching device, a first data rate;

encoding the first segment for transmission at the first data rate;

encoding the second segment;

determining a second data rate such that a difference between a first transmit time of the first segment at the first data rate and a second transmit time of the first segment at the second data rate approximates the switch gap size and does not exceed the buffer capacity of the switching device; and

multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment such that a second starting point of the encoded second segment is synchronized with a first end point of the encoded first segment.

17. The method of claim 16 , wherein the multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment further comprises:

multiplexing the encoded first segment and the encoded second segment relative to a same clock.

18. The method of claim 16 , wherein the first data stream and the second data stream comprise digital audio, digital video, or combinations thereof.

19. The method of claim 16 , further comprising:

inserting a trigger message at the end of the encoded first segment, wherein the trigger message indicates a switch point between the encoded first segment and the encoded second segment.

20. The method of claim 16 , wherein the multiplexing the encoded first segment for transmission at the second data rate and the encoded second segment creates a gap between the encoded first segment and the encoded second segment, the gap comprising substantially no data.

Assignments (3)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2020
From: HABERMAN, SETH; BOOTH, RICHARD L.; JANSEN, ALEX; NIEMEIJER, GERRIT
To: VISIBLE WORLD, INC.
Reel/Frame 054635/0022 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2020
From: VISIBLE WORLD, LLC
To: TIVO CORPORATION
Reel/Frame 054588/0461 →
CHANGE OF NAME Recorded Feb 27, 2019
From: VISIBLE WORLD, INC.
To: VISIBLE WORLD, LLC
Reel/Frame 048453/0111 →
Continuity (8)
Continuation 14065132 · Oct 28, 2013
Continuation 12911502 · Oct 25, 2010
Continuation 12106825 · Apr 21, 2008
Continuation 10369047 · Feb 19, 2003
Continuation In Part 09735983 · Dec 13, 2000
Provisional Application 60357804 · Feb 15, 2002
Provisional Application 60236624 · Sep 29, 2000
Related Publication 20170111669A1 · Apr 20, 2017