Patent ID: 7139960

Claim:
A method of receiving data transmitted from a source over a communications channel, wherein the data is transmitted as a plurality of output symbols and is generated from at least one symbol in a combined set of input symbols and redundant symbols, wherein at least one output symbol is generated from more than one symbol in the combined set and less than all of the symbols in the combined set, wherein the number of possible valid output symbols for a given set of symbols in the combined set is effectively unbounded relative to the number of input symbols in the input file for any expected size of input file, wherein the input symbols are from an ordered set of input symbols, and wherein the redundant symbols are generated from the input symbols, the method comprising: receiving output symbols from the communications channel, wherein the communications channel might have introduced errors and/or erasures; upon receiving at least a subset of the output symbols, determining at least estimates of output symbol probability distributions, wherein an output symbol probability distribution represents probabilities, given a received output symbol, that a particular output symbol was transmitted; determining, from the estimates of output symbol probability distributions, input symbol probability distributions, wherein an input symbol probability distribution represents probabilities of particular input symbols having been encoded to form the received output symbols; regenerating at least a subset of the symbols in the combined set from the received output symbols, the subset of the symbols in the combined set including a plurality of regenerated input symbols and a plurality of regenerated redundant symbols; and upon receiving at least a subset of the output symbols, regenerating at least a subset of the symbols in the combined set from the output symbols, the subset of the symbols in the combined set including a plurality of regenerated input symbols and a plurality of regenerated redundant symbols, wherein the steps of regenerating use the input symbol probability distributions.