System, method and apparatus for FEC encoding and decoding
First Claim
1. A method for encoding a source file to be transmitted to a receiver, comprising the steps of:
- (a) dividing the source file into a plurality of shares comprised of a plurality of packets;
(b) generating a bit vector;
(c) for at least one share, generating an FEC packet by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector; and
(d) repeating steps (b) and (c).
4 Assignments
0 Petitions
Accused Products
Abstract
A system, method and apparatus are provided for encoding and decoding a source file. The source file is encoded by dividing it into a plurality of shares comprised of a plurality of packets. A bit vector is generated. For at least one share, an FEC packet is generated by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector. The process of encoding continues until terminated. Once the FEC encoded packets are received, each of the plurality of packets which is not a linear combination of previously received packets is stored into a file. A sequence of XOR operations to perform in-place on the file to reconstruct the source file are generated and performed on the file.
66 Citations
19 Claims
-
1. A method for encoding a source file to be transmitted to a receiver, comprising the steps of:
-
(a) dividing the source file into a plurality of shares comprised of a plurality of packets; (b) generating a bit vector; (c) for at least one share, generating an FEC packet by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector; and (d) repeating steps (b) and (c). - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. An FEC encoder for encoding a source file to be transmitted to a receiver, comprising:
-
a packetizer operable to divide the source file into a plurality of shares comprised of a plurality of packets; a bit vector generator operable to generate a bit vector; and an encoder operable to, for at least one share, generate an FEC packet by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector. - View Dependent Claims (8, 9, 10, 11, 12)
-
-
13. An apparatus for encoding a source file to be transmitted to a receiver, comprising:
-
means for dividing the source file into a plurality of shares comprised of a plurality of packets; means for generating a bit vector; means for generating, from at least one share, an FEC packet by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector; and means for controlling how long FEC packets are generated.
-
-
14. A computer program product comprising a computer usable medium having control logic stored therein for causing a computer to encode a source file to be transmitted to a receiver, said control logic comprising:
-
first computer readable program code for causing the computer to divide the source file into a plurality of shares comprised of a plurality of packets; second computer readable program code for causing the computer to generate a bit vector; third computer readable program code for causing the computer to, for at least one share, generate an FEC packet by XOR'"'"'ing a subset of packets from the plurality of packets in the share in accordance with the bit vector; and fourth computer readable program code for causing the computer to repeat the second and third computer readable program code. - View Dependent Claims (15, 16, 17, 18, 19)
-
Specification