Patent ID: 7356752

Claim:
A method of encoding a block of data having n-dimensions received from an input source, the block containing a plurality of information bits, the method comprising the steps of: receiving a row of the block and immediately outputting the row; encoding the information bits in the row by an X-axis encoder, thereby forming a first set of encoded data including a first parity data, wherein the first set of encoded data is generated according to a first encoding scheme and stored in a row encode storage array having a plurality of row array bits; outputting the first set of encoded data; resetting the row encode storage array after the first set of encoded data is output, wherein all row array bits are set to zero; encoding the information bits in a column by a Y-axis encoder according to a second encoding scheme, thereby forming a second set of encoded data including a second parity data, wherein the second set of encoded data is generated and iteratively updated according to the information bits in the row, and the Y-axis encoder is separate from the X-axis encoder; hyper-diagonally encoding the information bits in the block by a hyper-axis encoder according to a parity type encoding scheme, thereby forming a hyper set of encoded data comprising a plurality of hyper parity data values, each hyper parity data value is generated according to: the information bits in the row, the information bits in the column, the first parity data, and the second parity data, wherein at least one information bit in the row is located in a different row for the hyper set of encoded data than in the block, and the hyper-axis encoder is separate from the X-axis encoder and the Y-axis encoder; outputting the second set of encoded data after all the information bits and all subsequent first sets of encoded data are outputted; and outputting the hyper set of encoded data.