Coding method
First Claim
1. A method of encoding and transmitting data over a communication medium, comprising:
- providing a file;
dividing said file into a plurality of buckets;
segmenting each bucket into a set of blocks;
selecting a subset of blocks from a bucket;
generating a packet by combining said selected blocks, such that an individual block cannot be reconstructed from a single packet;
repeating said selecting and said generating for a plurality of buckets and a plurality of packets;
generating at least one cross-bucket packet by combining blocks from different buckets; and
transmitting said generated packets and said generated cross-packets, said packets and said cross-packets being marked as such.
1 Assignment
0 Petitions
Accused Products
Abstract
A method of encoding and transmitting data over a communication medium, comprising, providing a file; dividing said file into a plurality of buckets; segmenting each bucket into a et of blocks; selecting a subset of blocks from a bucket; generating a packet by combining said selected blocks, such that an individual block cannot be reconstructed from a single packet; repeating said selecting and said generating for a plurality of buckets and a plurality of packets; generating at last one cross-bucket packet by combining blocks from different buckets and transmitting said generated packets and said generated cross-packets, said packets and said cross-packets being marked as such
-
Citations
46 Claims
-
1. A method of encoding and transmitting data over a communication medium, comprising:
-
providing a file;
dividing said file into a plurality of buckets;
segmenting each bucket into a set of blocks;
selecting a subset of blocks from a bucket;
generating a packet by combining said selected blocks, such that an individual block cannot be reconstructed from a single packet;
repeating said selecting and said generating for a plurality of buckets and a plurality of packets;
generating at least one cross-bucket packet by combining blocks from different buckets; and
transmitting said generated packets and said generated cross-packets, said packets and said cross-packets being marked as such. - View Dependent Claims (2, 3, 4, 41, 42, 43, 44, 46)
-
-
5. A method of differential-decoding, comprising:
-
receiving and reconstructing at least a first part of a data file from a transmitter; and
determining data missing relative to said file;
receiving from a data stream transmitted independently of said missing data, substantially only enough data packets required to decode said missing data; and
reconstructing said missing data from said data packets, using said previously received first part of the file, wherein an identification of at least one of said received at least part of a file and said missing data is not known to said transmitter. - View Dependent Claims (6, 7, 8, 9, 10)
-
-
11. A method of preferential encoding of data for transmission over a communication medium, comprising:
-
providing at least a portion of a file as a plurality of blocks;
selecting a subset of blocks from said file;
generating a packet by combining said blocks, such that an individual block cannot be reconstructed from a single packet; and
repeating said selecting and said generating for a plurality of packets, wherein said blocks are selected in an uneven selection distribution, such that blocks with a higher priority are selected more often to take part in a packet. - View Dependent Claims (12, 13, 15, 16, 17, 18, 19, 20)
-
-
14. A method of encoding data for transmission over a communication medium, comprising:
-
providing at least a portion of a file as a plurality of blocks;
selecting a subset of said blocks;
generating a packet by combining said blocks, such that an individual block cannot be reconstructed from a single packet;
transmitting said packet over an open channel;
repeating said selecting, said generating and said transmitting as long as said channel is open and after at least twice as many packets as required for reconstructing the file are transmitted.
-
-
21. A method of encoding data for transmission over a communication medium, comprising:
-
providing at least a portion of a file as a plurality of blocks;
randomly selecting a subset of said blocks, said selecting comprising selecting a block at a probability of other than 50%;
generating a packet by combining said blocks, such that an individual block cannot be reconstructed from a single packet; and
repeating said selecting and said generating for a plurality of packets. - View Dependent Claims (22, 23, 24, 25, 26, 27, 29, 30, 31, 32, 33, 34, 36, 37, 38, 39, 40)
-
-
28. A method of decoding, comprising:
-
receiving a plurality of packets encoding a data file;
setting up, in a memory, a set of equations whose solution represents the data file, based on a content of said packets; and
solving only some of said equations before receiving sufficient packets for setting up all the equations required to determine said data file, to reconstruct a portion of said data file.
-
-
35. A method of transmitting information, comprising:
-
providing at least a portion of a file as a plurality of blocks;
selecting a subset of said blocks;
generating a packet by combining said blocks, such that an individual block cannot be reconstructed from a single packet, said packets varying in an a-priori probability of a block being selected for inclusion in a packet. transmitting said packet;
repeating said selecting, said generating and said transmitting for a plurality of packets;
receiving at least some of said packets; and
reconstructing said at least a portion of the file from said received packets.
-
-
45. A method of storing information on a storage media, comprising:
-
determining an expected error rate on said storage media;
encoding a data file to be stored as a plurality of FEC (forward error correction) coded packets, including;
selecting a number of packets required to overcome said error rate; and
generating said number of packets;
writing said packets to said storage media.
-
Specification