System and method for reliably communicating the content of a live data stream
First Claim
1. A method for communicating the content of a live data stream to a receiver using a plurality of channels comprising one or more main channels and one or more booster channels, each of the main and booster channels having at least two sub-channels, the method comprising:
- receiving a first segment of a live data stream, the first segment S0 containing first segment data;
applying a forward error correction algorithm the first segment data to produce a corresponding transmit block T0;
dividing the T0 block into two or more T0 sub-blocks, wherein each of the two or more T0 sub-blocks comprise substantially distinct FEC-encoded first segment data;
transmitting a first of the two or more T0 sub-blocks to a receiver on a first main sub-channel;
receiving a second segment of the live data stream, the second segment S1 containing second segment data;
applying a forward error correction algorithm to the second segment data to produce a transmit block T1;
dividing the T1 block into two or more T1 blocks, wherein each of the two or more T1 blocks comprise substantially distinct FEC-encoded second segment data;
transmitting substantially concurrently, the second of the two or more T0 sub-blocks on the first main sub-channel and a first of the two or more T1 sub-blocks on a second main sub-channel; and
transmitting substantially concurrently, the first T0 sub-block on a first booster sub-channel, and the first T1 sub-block on a second booster sub-channel, wherein the second T0 sub-block, the first T1 sub-block, the first T0 sub-block, and the first T1 sub-block are all transmitted substantially-concurrently.
3 Assignments
0 Petitions
Accused Products
Abstract
A method for communicating the content of a live data stream to a receiver using a plurality of channels comprising two encoder channels used to encode the live data content prior to transmission. Initially a plurality of segments of a live data stream are received, wherein each segment contains segment data. A forward error correction algorithm is applied to each segment'"'"'s data, thereby producing FEC-encoded segment data. The FEC-encoded segment data is contained within an FEC-encoded block, resulting in a corresponding plurality of FEC-encoded blocks being generated. Each FEC-encoded block is copied to a sub-channel on both a first encoder channel and a second encoder channel, resulting in a plurality of FEC-encoder blocks residing on the first and second encoder channels. The first and second encoder channels differ in the number of sub-channels they contain (interleaving depth), and accordingly the arrangement of the FEC-encoded blocks in the first and second encoder channels are different. A first cross-section of the FEC-encoded segment data contained within the FEC-encoded blocks resident in the first encoder channel is added to a first transmit block T0. Similarly, A first cross-section of the FEC-encoded segment data contained within the FEC-encoded blocks resident in the second encoder channel is added to a second transmit block T1. The first and second transmit blocks are then communicated to the receiver.
-
Citations
37 Claims
-
1. A method for communicating the content of a live data stream to a receiver using a plurality of channels comprising one or more main channels and one or more booster channels, each of the main and booster channels having at least two sub-channels, the method comprising:
-
receiving a first segment of a live data stream, the first segment S0 containing first segment data;
applying a forward error correction algorithm the first segment data to produce a corresponding transmit block T0;
dividing the T0 block into two or more T0 sub-blocks, wherein each of the two or more T0 sub-blocks comprise substantially distinct FEC-encoded first segment data;
transmitting a first of the two or more T0 sub-blocks to a receiver on a first main sub-channel;
receiving a second segment of the live data stream, the second segment S1 containing second segment data;
applying a forward error correction algorithm to the second segment data to produce a transmit block T1;
dividing the T1 block into two or more T1 blocks, wherein each of the two or more T1 blocks comprise substantially distinct FEC-encoded second segment data;
transmitting substantially concurrently, the second of the two or more T0 sub-blocks on the first main sub-channel and a first of the two or more T1 sub-blocks on a second main sub-channel; and
transmitting substantially concurrently, the first T0 sub-block on a first booster sub-channel, and the first T1 sub-block on a second booster sub-channel, wherein the second T0 sub-block, the first T1 sub-block, the first T0 sub-block, and the first T1 sub-block are all transmitted substantially-concurrently. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A system operable to communicate the content of a live data stream to a receiver via a plurality of channels, the system comprising:
-
a receiver operable to receive first and second segments of a live data stream, the first and second segments containing first and second segment data, respectively;
an encoder operable to apply a forward error correction algorithm to the first segment data and to the second segment data to produce a corresponding first transmit block T0 and a second transmit block T1;
a block partitioner operable to divide each of the first and second transmit blocks T0 and T1 into a plurality of sub-blocks; and
a transmitter operable to transmit the T0 sub-blocks on a first channel and the plurality of T1 sub-blocks on a second channel. - View Dependent Claims (10, 11, 12, 13, 14)
-
-
15. A method for communicating the content of a live data stream to a receiver on a plurality of channels, the plurality of channels comprising at least two alternately-switched main channels, the method comprising:
-
receiving a first segment of a live data stream, the first segment S0 containing first segment data;
applying a forward error correction algorithm to the first segment data to produce a corresponding transmit block T0;
dividing the T0 block into two or more T0 sub-blocks, wherein each of the two or more T0 sub-blocks comprises substantially distinct first segment data;
transmitting a first of the two or more T0 sub-blocks in a first packet on a first alternately-switched main channel;
receiving a second segment of a live data stream, the second segment S1 containing second segment data;
applying a forward error correction algorithm to the second segment data to produce a corresponding transmit block T1;
dividing the T1 block into two or more T1 sub-blocks, wherein each of the two or more T1 sub-blocks comprises substantially distinct second segment data;
transmitting in a second packet and on a second alternately-switched main channel, a second of the two or more T0 sub-blocks and a first of the two or more T1 sub-blocks; and
transmitting in a third packet and on the first alternately-switched main channel, a second of the two or more T1 sub-blocks. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
-
22. A method for communicating the content of a live data stream to a receiver via a plurality of channels, the plurality of channels comprising at least one main channel, at least one long protection channel, and at least one hopper channel, the method comprising:
-
receiving a first segment of a live data stream, the first segment S1 containing first segment data;
applying a forward error correction algorithm to the first segment data to produce a transmit block T1;
dividing the T1 block into two or more T1 sub-blocks, wherein each of the two or more T1 sub-blocks comprises substantially distinct first segment data;
transmitting on a first main channel, at least one fewer T1 sub-blocks than the total two or more T1 sub-blocks;
receiving a second segment of the live data stream, the second segment S2 containing second segment data;
applying a forward error correction algorithm to the second segment data to produce a transmit block T2;
dividing the T2 block into two or more T2 sub-blocks, wherein each of the two or more T2 sub-blocks comprises substantially distinct second segment data;
transmitting on a second main channel, at least one fewer T2 sub-blocks than the total two or more T2 sub-blocks;
combining the transmitted T1 and T2 sub-blocks to produce a T1+2 block; and
transmitting the T1+2 block on a first long protection channel. - View Dependent Claims (23, 24, 25, 26)
-
-
27. A method for communicating the content of a live data stream to a receiver via a plurality of channels, the method comprising:
-
receiving a plurality of segments of a live data stream, each segment comprising segment data;
for each of the plurality of segments, applying a forward error correction algorithm to the segment data to produce FEC-encoded segment data, whereby a respective plurality of FEC-encoded blocks containing the FEC-encoded segment data are created;
assigning each of the plurality of FEC-encoded blocks to a sub-channel with a first encoder channel, and to a sub-channel within a second encoder channel, wherein the first encoder channel and the second encoder channel each have a different number of sub-channels;
adding into a first transmit block T0, a first cross-section of the FEC-encoded segment data contained within the FEC-encoded blocks resident on the sub-channels in the first encoder channel; and
adding into a second transmit block T1, a first cross-section of the FEC-encoded segment data contained within the FEC-encoded blocks resident on the sub-channels in the second encoder channel. - View Dependent Claims (28, 29, 30, 31, 32)
-
-
33. A system operable to communicate the content of a live data stream to a receiver via a plurality of channels, the plurality of channels comprising encoder channels, the system comprising:
-
a receiver operable to receive a plurality of segments of a live data stream, wherein each segment Si comprise segment data;
an encoder operable to apply a forward error correction algorithm to the segment data with each segment Si'"'"'s data to produce a corresponding plurality of FEC-encoded blocks Ei comprising corresponding FEC-encoded segment data;
means for assigning each FEC-encoded block Ei to to at least two encoder channels, wherein the assignment results in at least one encoder channel having a different interleaving depth than the second of the at least two encoder channels;
a transmitter configured to transmit a;
first cross-sectional portion of the FEC-encoded data contained within the first encoder channel in a first transmit block T0, and a first cross-sectional portion of the FEC-encoded data contained within the second encoder channel in a second transmit block T1. - View Dependent Claims (34, 35, 36, 37)
-
Specification