Systems, methods, apparatus and computer program products for highly reliable file delivery using compound and braided FEC encoding and decoding
AssigneeKencast, Inc.
InventorWeimin Fang
Life of this patent
Estimating the term…
Abstract
Systems, methods, apparatus and computer program products provide highly reliable file delivery using a combination of packet-level FEC on source data packets which are arranged in matrices, where encoding is performed on both rows and columns or on rows, columns and diagonals.
Claims6
A method for encoding a source file to be transmitted to a receiver, comprising the steps of:
- dividing a source file into a plurality of source packets;
- dividing the plurality of source packets into a plurality of groups;
- generating an n-dimensional source packet cube from the plurality of source packets in one of the plurality of groups, wherein the source packet cube has a plurality of directions, each direction including at least two of the source packets, each of the source packets being included in a plurality of non-parallel directions, and wherein n is an integer greater than or equal to 3;
- grouping the plurality of directions into a plurality of sets, wherein directions within each set are parallel;
- calculating a plurality of Forward Error Correction (FEC) packets for each of the plurality of directions of the source packet cube;
- and
- transmitting the source packets in the source packet cube and the plurality of FEC packets.
A non-transitory computer-readable medium having stored thereon sequences of instructions, the sequences of instructions including instructions which, when executed by a computer system, cause the computer system to perform:
- dividing a source file into a plurality of source packets;
- dividing the plurality of source packets into a plurality of groups;
- generating an n-dimensional source packet cube from the plurality of source packets in one of the plurality of groups, wherein the source packet cube has a plurality of directions, each direction including at least two of the source packets, each of the source packets being included in a plurality of non-parallel directions, and wherein n is an integer greater than or equal to 3;
- grouping the plurality of directions into a plurality of sets, wherein directions within each set are parallel;
- calculating a plurality of Forward Error Correction (FEC) packets for each of the plurality of directions of the source packet cube;
- and
- transmitting the source packets in the source packet cube and the plurality of FEC packets.
An apparatus for encoding a source file to be transmitted to a receiver, comprising:
- a processor configured to divide the source file into a plurality of source packets and divide the plurality of source packets into a plurality of groups;
- a memory configured to store an n-dimensional source packet cube including the plurality of source packets in one of the plurality of groups, wherein the source packet cube has a plurality of directions, each direction including at least two of the source packets, each of the source packets being included in a plurality of non-parallel directions, wherein the plurality of directions are grouped into a plurality of sets, wherein directions within each set are parallel, and wherein n is an integer greater than or equal to 3;
- an encoder configured to generate a plurality of Forward Error Correction (FEC) packets for each of the plurality of directions of the source packet cube;
- and
- a transmitter configured to transmit the source packets in the source packet cube and the plurality of FEC packets.
Dependencies are inferred from the claim text.