Patent ID: 7068729

Claim:
A method of encoding data for transmission from a source to a destination over a communications channel, the method comprising: arranging data to be transmitted into an ordered set of input symbols; generating a plurality of redundant symbols from the input symbols; and generating a plurality of output symbols from a combined set of symbols, the combined set comprising symbols including the input symbols and the redundant symbols, wherein the number of valid output symbols for a given set of input symbols is more than an order of magnitude larger than the number of input symbols, each output symbol having a weight representing the number of symbols from the combined set of symbols used to generate that output symbol, wherein weights of output symbols include at least two distinct values at least one of which is greater than one and less than the number of symbols in the combined set of symbols, such that the ordered set of input symbols can be regenerated to a desired degree of accuracy from N of the output symbols that are determined to be valid output symbols, wherein N is an integer.