File download and streaming system
First Claim
1. A method of encoding data for transmission from a source to a destination over a communications channel, wherein the data for transmission is representable by an ordered set of input symbols, the method comprising:
- generating a plurality of redundant symbols from the ordered set of input symbols, wherein each redundant symbol in the plurality of redundant symbols is calculated using one or more of the ordered set of input symbols; and
generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols,wherein the generating of the plurality of redundant symbols is done using a deterministic process that ensures low common membership among redundant symbols,wherein common membership between two redundant symbols is the set of input symbols that both redundant symbols depend upon and wherein low common membership between two redundant symbols is present when the number of input symbols that both redundant symbols depend upon is less than a threshold as given by said process andwherein for each input symbol there is a predetermined number of redundant symbols that depend upon said input symbol.
2 Assignments
0 Petitions
Accused Products
Abstract
A method of encoding data operates on an ordered set of input symbols and includes generating redundant symbols from the input symbols, and includes generating output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols. The redundant symbols are generated from an ordered set of input symbols in a deterministic process such that a first set of static symbols calculated using a first input symbol has a low common membership with a second set of static symbols calculated using a second input symbol distinct from the first input symbol.
435 Citations
27 Claims
-
1. A method of encoding data for transmission from a source to a destination over a communications channel, wherein the data for transmission is representable by an ordered set of input symbols, the method comprising:
-
generating a plurality of redundant symbols from the ordered set of input symbols, wherein each redundant symbol in the plurality of redundant symbols is calculated using one or more of the ordered set of input symbols; and generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, wherein the generating of the plurality of redundant symbols is done using a deterministic process that ensures low common membership among redundant symbols, wherein common membership between two redundant symbols is the set of input symbols that both redundant symbols depend upon and wherein low common membership between two redundant symbols is present when the number of input symbols that both redundant symbols depend upon is less than a threshold as given by said process and wherein for each input symbol there is a predetermined number of redundant symbols that depend upon said input symbol. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A system for encoding data for transmission from a source to a destination over a communications channel, wherein the data for transmission is representable by an ordered set of input symbols, the system comprising:
-
a static encoder configured to generate a plurality of redundant symbols from the ordered set of input symbols, wherein each redundant symbol in the plurality of redundant symbols is calculated using one or more of the ordered set of input symbols; and a dynamic encoder communicatively coupled to the static encoder and configured to generate a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, wherein the static encoder is configured to generate the plurality of redundant symbols using a deterministic process that ensures low common membership among redundant symbols, wherein common membership between two redundant symbols is the set of input symbols that both redundant symbols depend upon and wherein low common membership between two redundant symbols is present when the number of input symbols that both redundant symbols depend upon is less than a threshold as given by said process and wherein for each input symbol there is a predetermined number of redundant symbols that depend upon said input symbol. - View Dependent Claims (17, 18, 19)
-
-
20. A non-transitory computer-readable medium for use with electronics capable of executing instructions read from the computer-readable medium in order to implement encoding data for transmission from a source to a destination over a communications channel, wherein the data for transmission is representable by an ordered set of input symbols, the computer-readable medium having stored thereon:
-
program code for generating a plurality of redundant symbols from the ordered set of input symbols, wherein each redundant symbol in the plurality of redundant symbols is calculated using one or more of the ordered set of input symbols; and program code for generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, wherein the program code for generating the plurality of redundant symbols uses a deterministic process that ensures low common membership among redundant symbols, wherein common membership between two redundant symbols is the set of input symbols that both redundant symbols depend upon and wherein low common membership between two redundant symbols is present when the number of input symbols that both redundant symbols depend upon is less than a threshold as given by said process and wherein for each input symbol there is a predetermined number of redundant symbols that depend upon said input symbol.
-
-
21. A system for encoding data for transmission from a source to a destination over a communications channel, wherein the data for transmission is representable by an ordered set of input symbols, the system comprising:
-
means for generating a plurality of redundant symbols from the ordered set of input symbols, wherein each redundant symbol in the plurality of redundant symbols is calculated using one or more of the ordered set of input symbols; and means for generating a plurality of output symbols from a combined set of symbols including the input symbols and the redundant symbols, wherein the number of possible output symbols is much larger than the number of symbols in the combined set of symbols, wherein at least one output symbol is generated from more than one symbol in the combined set of symbols and from less than all of the symbols in the combined set of symbols, wherein the means for generating the plurality of redundant symbols includes means for using a deterministic process that ensures low common membership among redundant symbols, wherein common membership between two redundant symbols is the set of input symbols that both redundant symbols depend upon and wherein low common membership between two redundant symbols is present when the number of input symbols that both redundant symbols depend upon is less than a threshold as given by said process and wherein for each input symbol there is a predetermined number of redundant symbols that depend upon said input symbol.
-
-
22. A system for decoding encoded data received over a communications channel transmitted from a source to a destination, the system comprising:
-
a receive module configured to receive a predetermined number, N, of symbols, wherein the received symbols comprise a combination of received source symbols and received repair symbols generated from a plurality of an ordered set of K source symbols; and a decoder communicatively coupled to the receive module and configured to generate to a desired degree of accuracy one or more unreceived source symbols of the ordered set of K source symbols, wherein each received symbol has an associated symbol relation that is determined by a systematic index, J(K), where J(K) is determined by K, wherein the value of each unreceived source symbol is determined by the associated symbol relation and a plurality of L intermediate symbol values, wherein L is at least K, wherein the L intermediate symbol values are determined by the K source symbol values and by the K symbol relations associated with the K source symbols and by a set of L-K pre-coding relations, and wherein the L intermediate symbol values can be generated to a desired degree of accuracy from the N received source and repair symbols. - View Dependent Claims (23, 24, 25)
-
-
26. A non-transitory computer-readable medium for use with electronics capable of executing instructions read from the computer-readable medium in order to implement decoding encoded data received over a communications channel transmitted from a source to a destination, the computer-readable medium having stored thereon:
-
program code for receiving a predetermined number, N, of symbols, wherein the received symbols comprise a combination of received source symbols and received repair symbols generated from a plurality of an ordered set of K source symbols; and program code for generating to a desired degree of accuracy one or more unreceived source symbols of the ordered set of K source symbols, wherein each received symbol has an associated symbol relation that is determined by a systematic index, J(K), where J(K) is determined by K, wherein the value of each unreceived source symbol is determined by the associated symbol relation and a plurality of L intermediate symbol values, wherein L is at least K, wherein the L intermediate symbol values are determined by the K source symbol values and by the K symbol relations associated with the K source symbols and by a set of L-K pre-coding relations, and wherein the L intermediate symbol values can be generated to a desired degree of accuracy from the N received source and repair symbols.
-
-
27. A system for decoding encoded data received over a communications channel transmitted from a source to a destination, the system comprising:
-
means for receiving a predetermined number, N, of symbols, wherein the received symbols comprise a combination of received source symbols and received repair symbols generated from a plurality of an ordered set of K source symbols; and means for generating to a desired degree of accuracy one or more unreceived source symbols of the ordered set of K source symbols, wherein each received symbol has an associated symbol relation that is determined by a systematic index, J(K), where J(K) is determined by K, wherein the value of each unreceived source symbol is determined by the associated symbol relation and a plurality of L intermediate symbol values, wherein L is at least K, wherein the L intermediate symbol values are determined by the K source symbol values and by the K symbol relations associated with the K source symbols and by a set of L-K pre-coding relations, and wherein the L intermediate symbol values can be generated to a desired degree of accuracy from the N received source and repair symbols.
-
Specification