Error-correcting multi-stage code generator and decoder for communication systems having single transmitters or multiple transmitters
First Claim
1. 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 of an input file and redundant symbols, wherein the number of possible valid output symbols for a given set of symbols in the combined set is independent of the number of input symbols in the input file, 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; and
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, the regenerating using input symbol probability distributions determined from estimates of output symbol probability distributions, wherein an input symbol probability distribution represents probabilities of particular input symbols having been encoded to form the received output symbols, and wherein the estimates of output symbol probability distributions are determined from probabilities, given a received output symbol, that a particular output symbol was transmitted.
3 Assignments
0 Petitions
Accused Products
Abstract
A communications system includes an encoder that produces a plurality of redundant symbols. For a given key, an output symbol is generated from a combined set of symbols including the input symbols and the redundant symbols. The output symbols are generally independent of each other, and an effectively unbounded number of output symbols (subject to the resolution of the key used) can be generated, if needed. The output symbols are information additive such that a received output symbol is likely to provide additional information for decoding even when many symbols are already received. The output symbols are such that a collection of received output symbols can provide probabilistic information to support error correction. A decoder calculates check symbols from the output symbols received, wherein each check symbol is associated with one or more input symbols and redundant symbols For each received output symbol, the decoder updates a running total of estimated information content and, in one or more rounds, generates a probability distribution for each input symbol over all or some of the possible values of input symbols. This process may be repeated until, for all of the input symbols, one of the many possible values is much more probable than others, or the process may be repeated a predetermined number of rounds, or other criteria is met. The updating can take into account already decoded symbols, additional output symbols and the check symbols.
431 Citations
42 Claims
-
1. 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 of an input file and redundant symbols, wherein the number of possible valid output symbols for a given set of symbols in the combined set is independent of the number of input symbols in the input file, 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; and 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, the regenerating using input symbol probability distributions determined from estimates of output symbol probability distributions, wherein an input symbol probability distribution represents probabilities of particular input symbols having been encoded to form the received output symbols, and wherein the estimates of output symbol probability distributions are determined from probabilities, given a received output symbol, that a particular output symbol was transmitted. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
-
-
15. Computer-readable program code embedded in non-transitory computer storage medium for processing data received over a communications channel, the data having been transmitted as a plurality of output symbols generated from a combined set of input symbols of an input file and redundant symbols, wherein the number of possible valid output symbols for a given set of symbols in the combined set is independent of the number of input symbols in the input file, and wherein the redundant symbols are generated from the input symbols, the program code comprising:
-
program code for receiving output symbols, possibly including errors and/or erasures; and program code for regenerating at least a subset of the symbols in the combined set from the received output symbols taking into account the possibility of errors and/or erasures, the subset of the symbols in the combined set including a plurality of regenerated input symbols and a plurality of regenerated redundant symbols, the program code for regenerating also including program code for (i) determining input symbol probability distributions from estimates of output symbol probability distributions, wherein an input symbol probability distribution represents probabilities of particular input symbols having been encoded to form the received output symbols, and (ii) determining the estimates of output symbol probability distributions from probabilities, given a received output symbol, that a particular output symbol was transmitted. - View Dependent Claims (16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28)
-
-
29. A decoder for decoding input symbols from a plurality of received output symbols, the plurality of received output symbols having been transmitted over a communications channel that might have introduced errors and/or erasures, and the output symbols having been generated from at least one symbol in a combined set of input symbols of an input file and redundant symbols, wherein the number of possible valid output symbols for a given set of symbols in the combined set is independent of the number of input symbols in the input file, and wherein the redundant symbols are generated from the input symbols, the decoder comprising:
-
a receive module for receiving output symbols from the communications channel and for storing output symbols as data units; and a decoding unit for 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, the regenerating using input symbol probability distributions determined from estimates of output symbol probability distributions, wherein an input symbol probability distribution represents probabilities of particular input symbols having been encoded to form the received output symbols, and wherein the estimates of output symbol probability distributions are determined from probabilities, given a received output symbol, that a particular output symbol was transmitted. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42)
-
Specification