Information additive code generator and decoder for communication systems
3 Assignments
0 Petitions
Accused Products
Abstract
An encoder uses an input file of data and a key to produce an output symbol. An output symbol with key I is generated by determining a weight, W(I), for the output symbol to be generated, selecting W(I) of the input symbols associated with the output symbol according to a function of I, and generating the output symbol'"'"'s value B(I) from a predetermined value function F(I) of the selected W(I) input symbols. An encoder can be called repeatedly to generate multiple output symbols. The output symbols are generally independent of each other, and an unbounded number (subject to the resolution of I) can be generated, if needed. A decoder receives some or all of the output symbols generated. The number of output symbols needed to decode an input file is equal to, or slightly greater than, the number of input symbols comprising the file, assuming that input symbols and output symbols represent the same number of bits of data.
-
Citations
52 Claims
-
1-20. -20. (canceled)
-
21. A method of storing data on a storage medium, the storage medium being such that it is possible that portions of data stored on the storage medium at one time are not recoverable from the storage medium at a later time, the method comprising:
-
reading input data to be stored;
arranging the input data into an ordered set of input symbols;
generating a plurality of output symbols from the input symbols, wherein the number of possible output symbols is much larger than the number of input symbols, wherein at least one output symbol is generated from more than one input symbol and from less than all of the input symbols in the set of input symbols; and
storing the plurality of output symbols on the storage medium in association with an identifier of the input data, such the ordered set of input symbols can be regenerated from any N of the stored output symbols, where N is an integer greater than one and much less than the number of possible output symbols. - View Dependent Claims (22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32)
-
-
33. A system for generating an output file including output symbols generated from an input file, wherein the output symbols are used to regenerate the input file, the system comprising:
an encoder capable of receiving a plurality of input symbols generated from an input file, the encoder including an output symbol generator capable of generating a plurality of output symbols from the input symbols, wherein the number of possible output symbols is much larger than the number of input symbols, wherein at least one output symbol is generated from more than one input symbol and from less than all of the input symbols in a set of input symbols, and wherein the output symbols are stored in at least one output file, wherein the at least one output file includes a number of output symbols greater than the number of input symbols, wherein the number of output symbols is sufficient to recover the input file. - View Dependent Claims (34, 35, 36, 37, 38, 39)
-
40. A system for reading data transmitted via a storage channel, the system comprising:
-
a receive module coupled to the storage channel for receiving output symbols transmitted via the storage channel, wherein each output symbol is generated from at least one input symbol in an ordered set of input symbols, wherein each input symbol is generated from an input file, wherein at least one output symbol is generated from more than one input symbol and less than all of the input symbols in the set of input symbols, wherein the number of possible output symbols is much larger than the number of input symbols in the set of input symbols;
a decoder coupled to the receive module, the decoder configured to allow storing an number N of the output symbols received in at least one output file, wherein N is an integer greater than one and much less than the number of possible output symbols, wherein the decoder is capable of regenerating the ordered set of input symbols from the N number of output symbols; and
an input file reassembler coupled to the decoder, wherein the reassembler is capable of regenerating the input file from the regenerated ordered set of input symbols. - View Dependent Claims (41, 42, 43)
-
-
44. A method of processing encoded data stored on a storage medium to generate an input file associated with the encoded data, the method comprising:
-
reading an N number of output symbols from a storage medium, wherein the output symbols are generated from an ordered set of input symbols derived from an input file, wherein the number of possible output symbols is much larger than the number of input symbols, wherein at least one output symbol is generated from more than one input symbol and from less than all of the input symbols in the ordered set of input symbols;
reading a plurality of keys I from the storage medium corresponding to the output symbols;
upon reading any N number of the output symbols and corresponding keys I, regenerating the ordered set of input symbols from the N output symbols and respective keys I, wherein N is an integer greater than 1 and much less than the number of possible output symbols; and
regenerating the input file from the ordered set of input symbols. - View Dependent Claims (45, 46, 47, 48, 49, 50)
-
-
51. A computer data signal stored in a computer readable medium, the computer data signal comprising:
a plurality of output symbols, wherein the plurality of output symbols represent symbols generated from input symbols, wherein the number of possible output symbols is much larger than the number of input symbols, wherein at least one output symbol represents a symbol generated from more than one input symbol and less than all of the input symbols in the set of input symbols, wherein a reader of the data signal can regenerate the ordered set of input symbols from any N of the output symbols, wherein N is an integer greater than one and much less than the number of possible output symbols.
-
52. A rateless encoder, comprising:
an encoder that generates output symbols selected from a set of possible output symbols wherein the number of possible output symbols is independent of the number of input symbols.
Specification