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.
70 Citations
32 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. A method for reconstructing a source file, comprising the steps of:
-
receiving a plurality of packets;
storing each of the plurality of packets which is not a linear combination of previously received packets into a file;
generating a sequence of XOR operations; and
performing the sequence of XOR operations in-place on the file to reconstruct the source file. - View Dependent Claims (8, 9, 10)
-
-
11. 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 (12, 13, 14, 15, 16)
-
-
17. An FEC decoder for reconstructing a source file, comprising:
-
a packet receiver operable to receive a plurality of packets and store each of the plurality of packets which is not a linear combination of previously received packets into a file; and
a decoder operable to generate a sequence of XOR operations to perform in-place on the file to reconstruct the source file. - View Dependent Claims (18, 19, 20)
-
-
21. 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.
-
-
22. An apparatus for reconstructing a source file, comprising:
-
means for receiving a plurality of packets;
means for storing each of the plurality of packets which is not a linear combination of previously received packets into a file;
means for generating a sequence of XOR operations; and
means for performing the sequence of XOR operations in-place on the file to reconstruct the source file.
-
-
23. 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 (24, 25, 26, 27, 28)
-
-
29. A computer program product comprising a computer usable medium having control logic stored therein for causing a computer to reconstruct a source file, said control logic comprising:
-
first computer readable program code for causing the computer to receive a plurality of packets;
second computer readable program code for causing the computer to store each of the plurality of packets which is not a linear combination of previously received packets into a file;
third computer readable program code for causing the computer to generate a sequence of XOR operations; and
fourth computer readable program code for causing the computer to perform the sequence of XOR operations in-place on the file to reconstruct the source file. - View Dependent Claims (30, 31, 32)
-
Specification