Patent ID: 8230316

Claim:
A method for communication of multi-media data comprising the steps of: arranging multi-media data packets at a transmitter into a two-dimensional block A wherein block A has D horizontal rows and L vertical columns, one (1) is less than D is less than or equal to L, i and j are indices indicating rows and columns respectively of block A, A[i,j] indicates the entry at the ith row and jth column of the block, zero (0) is less than or equal to i is less than D, zero (0) is less than or equal to j is less than L, block A has a set of diagonals, each with a slant S, one (1) is less than or equal to S is less than L, each diagonal includes D entries in block A at A[i, (L−1−k−S×i) mod L] where zero (0) is less than or equal to i is less than D, and the set of diagonals consists of L diagonals; generating one or more of row parity packets wherein one packet is generated for each row of block A; generating one or more column parity packets wherein one packet is generated for each column of block A; generating one or more diagonal parity packets wherein one packet is generated for each diagonal in the set of diagonals; calculating each parity packet as an exclusive or (XOR) of the packets in the row, column or diagonal for which the parity packet is being calculated; communicating the data and related parity information from the transmitter to the receiver in a plurality of packets; the receiver arranging received data packets into a block having the same dimensions D×L as the block A used by the transmitter; the receiver identifying missing packets and corrupted packets; the receiver recovering missing packets and corrupted packets by processing the rows, columns and diagonals with a single missing data packet and iterating until no more missing packets can be recovered selecting the values of D, L and S to provide recovery of both individual random missing packets and bursts of consecutive missing packets; selecting the values of D and L such that the multi-media data to be communicated, such as a video or audio frame, can be accommodated in D×L packets; selecting the values of L and S such that the maximum anticipated length of a burst of missing packets is less than or equal to 2×L−S; selecting the values of D, L and S such that D×S and L are relatively prime, i.e., D×S and L have no common divisor other than 1; and, selecting the values of D, L and S such that, for all n, where one (1) is less than or equal to n is less than or equal to D−1, the value 2×n×S is not a multiple of L.