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.
- 2. The method recited in claim 1, wherein the T0 and T1 blocks are divided into three of more T0 sub-blocks and three or more T1 sub-blocks, respectively, and wherein each of the three or more T0 and T1 sub-blocks comprise substantially distinct data;
the method further comprising:
receiving a third segment of the live data stream, the third segment S2 containing third segment data; applying a forward error correction algorithm to the third segment data to produce a transmit block T2; dividing the T2 block into three or more T2 sub-blocks, wherein each of the three or more T2 sub-blocks comprises substantially distinct third segment data; transmitting the third of the three or more T0sub-blocks on the first main sub-channel after the second T0 sub-block; transmitting a second of the three or more T1 sub-blocks on the second main sub-channel after the first T1 sub-block; and transmitting a first of the three or more T2 sub-blocks to the receiver on a third main sub-channel, wherein the third T0 sub-block, the second T1 sub-block, and the first T2 sub-block are all transmitted substantially concurrently.
- 3. The method recited in claim 2, further comprising:
transmitting on the first booster sub-channel, the first of the three of more T2 sub-blocks after the first T1 block; transmitting on the second booster sub-channel, the first T1 sub-block after the first T0 sub-block; and transmitting of the third booster sub-channel, the second T1 sub-block after the second T0 sub-block.
- 4. The method recited in claim 1, wherein applying a forward error correction algorithm to two or more subsets of the first and second segment data comprises applying a Luby Transform to the first and second segment data.
- 5. The method recited in claim 1, wherein applying a forward error correction algorithm to two or more subsets of the first and second segment data comprises applying a Reed-Solomon transform to the first and second segment data.
- 6. The method recited in claim 1, further comprising:
receiving the first T0 sub-block via the first main sub-channel; and receiving the second T0 sub-block via the first channel and the first T1 sub-block via the second channel substantially concurrently.
- 7. The method recited in claim 1, wherein the receiver has insufficient bandwidth to receive the transmitted blocks on the main and booster channels simultaneously, the method further comprising:
receiving a least one of the two or more T0 sub-blocks via the booster channel; recovering the first segment data from the at least one received T0 sub-blocks; thereafter, switching receiver reception to the main channel; receiving at least one of the two or more T1 sub-blocks via the second main sub-channel; and recovering the second segment data from the at least one received T1 sub-blocks.
- 8. The method recited in claim 2, wherein the receiver has insufficient bandwidth to receive the transmitted blocks on the main and booster channels simultaneously, the method further comprising:
receiving a least one of the two or more T0 sub-blocks via the booster channel; recovering the first segment data from the at least one received T0 sub-blocks; thereafter, switching receiver reception to the main channel; receiving at least one of the three or more T1 sub-blocks via the second main sub-channel; recovering the second segment data from the at least one received T1 sub-blocks; receiving at least one of the three or more T2 sub-blocks via the third main sub-channel; and recovering the third segment data from the at least one received T2 sub-blocks.
- 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.
- 10. The system recited in claim 9, wherein the encoder means comprises an information additive code generator.
- 11. The system recited in claim 9, further comprising a dual channel receiver operable to receive the one or more T0 data blocks on a first channel and the one or more T1 data blocks on a second channel
- 12. The system recited in claim 9, further comprising a switchable, single-channel receiver configured to switch reception between the first channel to receive the one or more T0, and the second channel to receive the one or more T1 data blocks.
- 13. The system recited in claim 12, further comprising a decoder operable to recover the first segment data from the received one or more T0 data blocks and the second segment.
- 14. The system recited in claim 13, wherein the decoder comprises an information additive code decoder.
- 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.
- 16. The method recited in claim 15, wherein the second packet is transmitted on the second main channel after the first packet on the first main channel, and the third-packet is transmitted on the first alternately-switched main channel after the second packet is transmitted on the second main channel.
- 17. The method recited in claim 16, wherein no packet is transmitted on the second channel during transmission of the first packet on the first channel, and no packet is transmitted on the first channel when the second packet is transmitted on the second channel.
- 18. The method recited in claim 15, wherein the T0 and T1 blocks are divided into three of more T0 sub-blocks and three or more T1 sub-blocks, respectively, and wherein each of the three or more T0 and T1 sub-blocks comprise substantially distinct data;
the method further comprising:
receiving a third segment of the live data stream, the third segment S2 containing third segment data; applying a forward error correction algorithm to the third segment data to produce a corresponding transmit block T2; and dividing the T2 block into three or more T2 sub-blocks, wherein each of the three or more T2 sub-blocks comprises substantially distinct third segment data; wherein transmitting a third packet on the first channel comprises transmitting in the third packet, a third of the three or more T0 sub-blocks, the second T1 sub-block, and a first of the three or more T2 sub-blocks.
- 19. The method recited in claim 18, further comprising:
transmitting a fourth packet on a first booster channel substantially concurrently with the second packet, the fourth packet comprising the first T0 sub-block; transmitting a fifth packet on a second booster channel substantially concurrently with the third packet, the fifth packet comprising the first T1 sub-block; and transmitting a sixth packet on the first booster channel substantially concurrently with the third packet, the sixth packet comprising the first T2 sub-block.
- 20. The method recited in claim 15, further comprising:
switching receiver reception between the first and second channels to receive at least one of the first, second, or third packets; and recovering the first segment data from the at least one received data packets.
- 21. The method recited in claim 15, wherein the receiver has insufficient bandwidth to receive the transmitted blocks on the main and booster channels simultaneously, the method further comprising:
receiving at least one of the two or more T0 sub-blocks via the booster channel; recovering the first segment data from the at least one received T0 sub-blocks; thereafter, switching receiver reception to the main channel; receiving at least one of the two or more T1 sub-blocks via the first or the second main channels; and recovering the second segment data from the at least one received T1 sub-blocks.
- 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.
- 23. The method recited in claim 22 further comprising transmitting on a hopper channel, one of the at least one T1 sub-blocks not transmitted on the first main channel.
- 24. The method recited in claim 23, further comprising thereafter, transmitting on the hopper channel one of the at least one T2 sub-blocks not transmitted on the second main channel.
- 25. The method recited in claim 22, wherein applying a forward error correction algorithm to the first and second segment data comprises applying a Luby transform to the first and second segment data.
- 26. The method recited in claim 22, wherein applying a forward error correction algorithm to the first and second segment data comprises applying a Reed-Solomon transform to the first and second segment data.
- 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.
- 28. The method recited in claim 27, further comprising:
transmitting the first transmit block T0 on a first transmit channel; and transmitting the second transmit block T1 on a second transmit channel.
- 29. The method recited in claim 27, further comprising:
adding into a third transmit block T2, a second 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 fourth transmit block T3, a section cross-section of the FEC-encoded segment data contained within the FEC-encoded blocks resident on the sub-channels in the second encoder channel.
- 30. The method recited in claim 29, further comprising:
transmitting the third transmit block T2 on the first transmit channel after transmission of the first transmit block T0; and transmitting the fourth transmit block T3 on the second transmit channel after transmission of the second transmit block T1.
- 31. The method recited in claim 27, wherein applying a forward error correction algorithm to each of the three or more segments comprises applying a Luby Transform to each of the plurality of segments.
- 32. The method recited in claim 27, wherein applying a forward error correction algorithm to each of the three or more segments comprises applying a Reed-Solomon algorithm to each of the plurality of segments.
- 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.
- 34. The system recited in claim 33, wherein the transmitter comprises a multiple channel receiver configured to transmit the first transmit block T0 on a first transmitter channel and the second transmit block T1 on a second transmitter channel.
- 35. The system recited in claim 34, further comprising a switchable, single-channel receiver configured to switch reception between the first channel to receive the first transmit block T0, and the second channel to receive the second transmit block T1.
- 36. The system recited in claim 35, further comprising a decoder operable to recover the first segment data from the received T0 data block and the second segment data from the received T1 transmit block.
- 37. The system recited in claim 35, wherein the encoder comprises an information additive code encoder and the decoder comprises an information additive code decoder.
CROSS REFERENCE TO RELATED APPLICATIONS
[0001] This application claims the benefit of priority from U.S. Provisional Application serial No. 60/357,443 entitled “System and Method for Live Data Transmission” filed Feb. 15, 2002, the contents of which are herein incorporated by reference in its entirety for all purposes.
Provisional Applications (1)
|
Number |
Date |
Country |
|
60357443 |
Feb 2002 |
US |