Methods and apparatus employing FEC codes with permanent inactivation of symbols for encoding and decoding processes
First Claim
1. A method of electronically transmitting data via one or more transmitters capable of outputting an electronic signal, wherein the data to be transmitted is represented by an ordered set of source symbols and the data is transmitted as a sequence of encoded symbols representing at least a portion of the electronic signal, the method comprising:
- determining sets of intermediate symbols from a group of intermediate symbols, the group of intermediate symbols generated from the ordered set of source symbols, wherein the source symbols can be derived from the group of intermediate symbols, such that each intermediate symbol of the group of intermediate symbols is determined as a member of one of the sets of intermediate symbols and there are at least a first set of intermediate symbols and a second set of intermediate symbols, and wherein each set of intermediate symbols has associated with it distinct encoding parameters and has as members at least one intermediate symbol; and
generating a plurality of encoded symbols, wherein an encoded symbol is generated from one or more of the intermediate symbols, wherein at least one encoded symbol is generated, directly or indirectly, from a plurality of intermediate symbols selected from a plurality of the sets of intermediate symbols.
1 Assignment
0 Petitions
Accused Products
Abstract
Encoding of a plurality of encoded symbols is provided wherein an encoded symbol is generated from a combination of a first symbol generated from a first set of intermediate symbols and a second symbol generated from a second set of intermediate symbols, each set having at least one different coding parameter, wherein the intermediate symbols are generated based on the set of source symbols. A method of decoding data is also provided, wherein a set of intermediate symbols is decoded from a set of received encoded symbols, the intermediate symbols organized into a first and second sets of symbols for decoding, wherein intermediate symbols in the second set are permanently inactivated for the purpose of scheduling the decoding process to recover the intermediate symbols from the encoded symbols, wherein at least some of the source symbols are recovered from the decoded set of intermediate symbols.
466 Citations
110 Claims
-
1. A method of electronically transmitting data via one or more transmitters capable of outputting an electronic signal, wherein the data to be transmitted is represented by an ordered set of source symbols and the data is transmitted as a sequence of encoded symbols representing at least a portion of the electronic signal, the method comprising:
-
determining sets of intermediate symbols from a group of intermediate symbols, the group of intermediate symbols generated from the ordered set of source symbols, wherein the source symbols can be derived from the group of intermediate symbols, such that each intermediate symbol of the group of intermediate symbols is determined as a member of one of the sets of intermediate symbols and there are at least a first set of intermediate symbols and a second set of intermediate symbols, and wherein each set of intermediate symbols has associated with it distinct encoding parameters and has as members at least one intermediate symbol; and generating a plurality of encoded symbols, wherein an encoded symbol is generated from one or more of the intermediate symbols, wherein at least one encoded symbol is generated, directly or indirectly, from a plurality of intermediate symbols selected from a plurality of the sets of intermediate symbols. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15)
-
-
16. A method for decoding data a set of received encoded symbols, the set of received encoded symbols derived from an ordered set of source symbols, the method comprising:
-
decoding a set of intermediate symbols from the set of received encoded symbols; associating each of the intermediate symbols with a set of intermediate symbols, wherein the intermediate symbols are associated into at least two sets, and wherein one set is determined as a set of permanently inactive symbols for purposes of scheduling a decoding process to recover the intermediate symbols from the received encoded symbols; and recovering at least some of the source symbols of the ordered set of source symbols from the set of intermediate symbols according to the decoding process. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36)
-
-
37. An apparatus for encoding data to be transmitted via one or more transmitters capable of outputting a signal, the apparatus comprising:
-
memory; and a processor; the memory and processor configured to; determine sets of intermediate symbols from a group of intermediate symbols, the group of intermediate symbols generated from the ordered set of source symbols, wherein the source symbols can be derived from the group of intermediate symbols, such that each intermediate symbol of the group of intermediate symbols is determined as a member of one of the sets of intermediate symbols and there are at least a first set of intermediate symbols and a second set of intermediate symbols, and wherein each set of intermediate symbols has associated with it distinct encoding parameters and has as members at least one intermediate symbol; and generate a plurality of encoded symbols, wherein an encoded symbol is generated from one or more of the intermediate symbols, wherein at least one encoded symbol is generated, directly or indirectly, from a plurality of intermediate symbols selected from a plurality of the sets of intermediate symbols. - View Dependent Claims (38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51)
-
-
52. An apparatus for decoding data a set of received encoded symbols, the set of received encoded symbols derived from an ordered set of source symbols, the apparatus comprising:
-
memory; and a processor; the memory and processor configured to; decode a set of intermediate symbols from the set of received encoded symbols; associate each of the intermediate symbols with a set of intermediate symbols, wherein the intermediate symbols are associated into at least two sets, and wherein one set is determined as a set of permanently inactive symbols for purposes of scheduling a decoding process to recover the intermediate symbols from the received encoded symbols; and recover at least some of the source symbols of the ordered set of source symbols from the set of intermediate symbols according to the decoding process. - View Dependent Claims (53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72)
-
-
73. A non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform operations for encoding data to be transmitted via one or more transmitters capable of outputting a signal, the operations comprising:
-
determining sets of the intermediate symbols from a group of intermediate symbols, the group of intermediate symbols generated from the ordered set of source symbols, wherein the source symbols can be derived from the group of intermediate symbols, such that each intermediate symbol of the group of intermediate symbols is determined as a member of one of the sets of intermediate symbols and there are at least a first set of intermediate symbols and a second set of intermediate symbols, and wherein each set of intermediate symbols has associated with it distinct encoding parameters and has as members at least one intermediate symbol; and generating a plurality of encoded symbols, wherein an encoded symbol is generated from one or more of the intermediate symbols, wherein at least one encoded symbol is generated, directly or indirectly, from a plurality of intermediate symbols selected from a plurality of the sets of intermediate symbols. - View Dependent Claims (74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88)
-
-
89. A non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform operations decoding data a set of received encoded symbols, the set of received encoded symbols derived from an ordered set of source symbols, the operations comprising:
-
decoding a set of intermediate symbols from the set of received encoded symbols; associating each of the intermediate symbols with a set of intermediate symbols, wherein the intermediate symbols are associated into at least two sets, and wherein one set is determined as a set of permanently inactive symbols for purposes of scheduling a decoding process to recover the intermediate symbols from the received encoded symbols; and recovering at least some of the source symbols of the ordered set of source symbols from the set of intermediate symbols according to the decoding process. - View Dependent Claims (90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109)
-
-
110. A non-transitory processor-readable storage medium having stored thereon processor-executable instructions configured to cause a processor of a computing device to perform operations for recovering a block of data from a received plurality of encoded symbols generated from the block, wherein a block includes a grouping of one or more sub-blocks, wherein each encoded symbol includes a plurality of sub-symbols generated from at least one sub-block using a common set of operations, the operations comprising:
-
determining a value, WS, representing a maximum size for a sub-block based on a memory constraint; determining a value SS, wherein SS*AL represents a lower bound for sub-symbol size, in units of a preferred memory unit size, AL; determining which blocks of the integer number of blocks organized into a plurality of sub-blocks, and for each such block, organizing the block into a plurality of sub-blocks having a size determined by a first parameter set by a sender representing available space within packets, a second parameter representing a symbol size used within each packet, the parameters being such that a number of source symbols for source blocks is equal within a threshold and the number is equal to the number, Kt, of source symbols in the file; decoding blocks from received encoded symbols, wherein sub-blocks are decoded from sub-symbols and the sub-blocks form blocks, wherein the sub-symbol size of each sub-block is at most SS*AL and the size of each sub-block is at most WS; and outputting the decoded blocks.
-
Specification