FEC architecture for streaming services including symbol based operations and packet tagging
First Claim
1. A transmission system, comprising one or more transmitter, for use in transmitting a representation of a stream of data, to at least one receiver, in packets over a channel over which packet loss or corruption is possible and the transmission system includes forward error correction (“
- FEC”
) information in the representation, the transmission system comprising;
a stream input for receiving source packets comprising source data to be transported, wherein the transmission system is configured to process the source data as stream data in that it is processed without requiring that all of the source data be available prior to beginning transmission;
an FEC source packet generator configured to generate FEC source packets that include information representing data from the source packets available from the stream input, formatted to allow for identification of lost or corrupted source packets at the at least one receiver;
a symbol generator configured to arrange source data from the source packets into a plurality of source symbols, wherein a first source packet in the source packets is arranged into a first number of source symbols, wherein a second source packet in the source packets is arranged into a second number of source symbols, and wherein the first number of source symbols is different than the second number of source symbols;
a repair symbol generator configured to generate a plurality of repair symbols, wherein each repair symbol is related to source symbols of a block of source symbols generated by the symbol generator and the relation is according to a set of predetermined FEC encoding rules;
a repair packet generator configured to generate one or more FEC repair packets associated with source blocks based on groups of pluralities of the repair symbols generated by the repair symbol generator; and
a packet encoder for encoding the FEC source packets and the FEC repair packets for transmission.
3 Assignments
0 Petitions
Accused Products
Abstract
In a packet communications system stream data is transported over a channel over which packet loss or corruption is possible, with forward error correction (“FEC”) information. A transmitter receives source packets comprising source data, generates FEC source packets formatted to allow for identification of lost or corrupted source packets at a receiver, arranges source data from the source packets into a plurality of source symbols wherein at least one source packet is arranged into more than one source symbol, associates a plurality of source symbols with a source block, generates a plurality of repair symbols from the source block according to a predetermined FEC encoding process and groups the plurality of repair symbols into one or more FEC repair packets associated with the source block. A receiver can use the FEC repair symbols from the FEC repair packets to recover source symbols, as needed.
40 Citations
31 Claims
-
1. A transmission system, comprising one or more transmitter, for use in transmitting a representation of a stream of data, to at least one receiver, in packets over a channel over which packet loss or corruption is possible and the transmission system includes forward error correction (“
- FEC”
) information in the representation, the transmission system comprising;a stream input for receiving source packets comprising source data to be transported, wherein the transmission system is configured to process the source data as stream data in that it is processed without requiring that all of the source data be available prior to beginning transmission; an FEC source packet generator configured to generate FEC source packets that include information representing data from the source packets available from the stream input, formatted to allow for identification of lost or corrupted source packets at the at least one receiver; a symbol generator configured to arrange source data from the source packets into a plurality of source symbols, wherein a first source packet in the source packets is arranged into a first number of source symbols, wherein a second source packet in the source packets is arranged into a second number of source symbols, and wherein the first number of source symbols is different than the second number of source symbols; a repair symbol generator configured to generate a plurality of repair symbols, wherein each repair symbol is related to source symbols of a block of source symbols generated by the symbol generator and the relation is according to a set of predetermined FEC encoding rules; a repair packet generator configured to generate one or more FEC repair packets associated with source blocks based on groups of pluralities of the repair symbols generated by the repair symbol generator; and a packet encoder for encoding the FEC source packets and the FEC repair packets for transmission. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
- FEC”
-
10. A packet receiver that receives packets over a communications system representing source stream data, the received packets including forward error correction (“
- FEC”
) source packets and FEC repair packets, wherein the FEC source packets include information representing data from the source packets, formatted to allow for identification of lost or corrupted source packets at the packet receiver, wherein a first source packet in the source packets comprises a first number of source symbols, wherein a second source packet in the source packets comprises a second number of source symbols, wherein the first number of source symbols is different than the second number of source symbols and wherein a source block for FEC encoding spans a plurality of source packets, FEC encoding comprising repair symbols generated from source symbols of the source block, and wherein the FEC repair packets comprise the repair symbols, the packet receiver comprising;a packet input to receive a plurality of FEC source packets as a result of being transmitted from one or more transmitters or transmission system; an FEC receiver, coupled to the packet input and comprising; a) logic for determining the source symbols of the received FEC source packets; b) logic for mapping the determined source symbols to symbol locations within a source block; c) logic for determining, if any missing source symbols are missing and/or needed, received FEC repair packets corresponding to the source block; and d) logic for determining FEC repair symbols from the received FEC repair packets, using at least the received FEC repair symbols to determine the missing source symbol values; and a receiver application that receives a recovered source block as source packets representing source stream data. - View Dependent Claims (11, 12, 13, 14, 15)
- FEC”
-
16. A non-transitory computer-readable medium, for use with a packet communications system wherein stream data is transported from at least one transmitter to at least one receiver in packets over a channel over which packet loss or corruption is possible, the computer-readable medium comprising program code, executable, directly or indirectly, by an encoding unit, having stored thereon:
-
program code for receiving source packets at the at least one transmitter, source packets comprising source data to be transported, the source data being stream data in that a transmitter transmitting the source data does not require that all of the stream data be available prior to beginning transmission; program code for generating FEC source packets and information representing data from the source packets in a format that allows for identification of lost or corrupted source packets at the one or more receiver; program code for arranging source data from the source packets into a plurality of source symbols such that a first source packet in the source packets is arranged into a first number of source symbols and a second source packet in the source packets is arranged into a second number of source symbols, wherein the first number of source symbols is different than the second number of source symbols; program code for associating a plurality of source symbols with a source block; program code for generating a plurality of repair symbols from the source symbols of the source block according to a predetermined FEC encoding process; program code for grouping the plurality of repair symbols into one or more FEC repair packets associated with the source block; and program code for encoding the FEC source packets and the FEC repair packets for transmission. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23)
-
-
24. A non-transitory computer-readable medium, for use with a packet receiver that receives packets over a communications system representing source stream data, the received packets including forward error correction (“
- FEC”
) source packets and FEC repair packets, wherein the FEC source packets include information representing data from the source packets, formatted to allow for identification of lost or corrupted source packets at the packet receiver, wherein a first source packet in the source packets comprises a first number of source symbols, wherein a second source packet in the source packets comprises a second number of source symbols, wherein the first number of source symbols is different than the second number of source symbols and wherein a source block for FEC encoding spans a plurality of source packets, FEC encoding comprising repair symbols generated from source symbols of the source block, and wherein the FEC repair packets comprise the repair symbols, the computer-readable medium comprising program code, executable, directly or indirectly, by a receiver unit, having stored thereon;program code for receiving a plurality of FEC source packets; program code for determining the source symbols of the received FEC source packets; program code for mapping the determined source symbols to symbol locations within a source block; program code for determining if any source symbols are missing from the source block; program code for determining, if missing source symbols are missing and/or needed, received FEC repair packets corresponding to the source block; program code for determining FEC repair symbols from the received FEC repair packets; program code for using at least the received FEC repair symbols to determine the missing source symbol values; and program code for arranging a recovered source block into source packets representing source stream data. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31)
- FEC”
Specification