Patent ID: 7434138

Claim:
A method for encoding and interleaving data, the method comprising: (a) receiving a set of L 2 original data values in an original sequence; (b) applying structured interleaving and two-dimensional product coding to the set of L 2 original data values to generate a codeword having the L 2 original data values, L row parity values, and L column parity values, wherein: the L 2 original data values correspond to an (L×L) original block of data; each row parity value corresponds to an application of a row parity operation to a different row of the original block; each column parity value corresponds to an application of a column parity operation to a different colunm of the original block; and the codeword comprises the L 2 original data values in the original sequence and interleaved with the L row parity values and the L column parity values; and step (b) comprises: mapping, using row encoding logic, a current location in the codeword to a row index of a corresponding (L+1)×(L+1) augmented block of data; selectively forwarding, using a row demux and based on the row index, a current value of the augmented block to a corresponding row encoder; generating, using L row encoders, the L row parity values; mapping, using column encoding logic, the current codeword location to a column index of the augmented block; selectively forwarding, using a column demux and based on the column index, the current value of the augmented block to a corresponding column encoder; and generating, using L column encoders, the L column parity values.