Error correction method and apparatus based on two-dimensional code array with reduced redundancy
First Claim
1. A method of reducing redundancy in an error correcting system having a data source, a data sink, and a channel which transfers data from the data source to the data sink, the method comprising:
- encoding columns in a first block of raw data symbols at the data source in an n1 by n2 symbol product code array, into an array of column code checks;
encoding rows of raw data symbols from the first block combined with rows of a second block of raw data symbols and rows of the column code checks into an array of row code checks;
encoding columns for a first portion of the row code checks into an intermediate column code checks;
combining the intermediate column code checks with a second portion of the row code checks thereby forming a reduced row code checks derived from both first and second raw data block and the column code checks;
forming a reduced redundancy product code array including the first and second block of raw data symbols the column code checks for the first raw data block and the reduced row code checks the reduced redundancy product code array having a redundancy of n1 r2 +r1 r2 symbols, whereby up to r2 corrupted rows of the array can be detected and up to r2 erasures in each column corrected, wherein n1, n2, r1, and r2 are positive integers and each symbol is taken from an alphabet having an integer number q of symbols;
transmitting the reduced redundancy product code array on the communications channel to the destination; and
decoding the reduced redundancy product code array at the destination to recover the raw data symbols.
3 Assignments
0 Petitions
Accused Products
Abstract
An error correction system reduces redundancy of a two-dimensional product code array by eliminating an excess redundancy in prior product codes that provides detection of more corrupted rows than can be corrected. The product code array is formed utilizing a row coding, a column coding, and an intermediate coding, which may each be Reed-Solomon codes. The product code array has a total redundancy of n1 r2 +r1 r2 symbols, where r1 is the redundancy of the row coding, r2 is the redundancy of the column coding, and raw data symbols fill a k1 by k2 and a r1 by (k2 -r2) symbol portions of the product code array. A decoder for the product code array is capable of detecting and correcting up to r2 corrupted rows of the product code array.
-
Citations
20 Claims
-
1. A method of reducing redundancy in an error correcting system having a data source, a data sink, and a channel which transfers data from the data source to the data sink, the method comprising:
-
encoding columns in a first block of raw data symbols at the data source in an n1 by n2 symbol product code array, into an array of column code checks; encoding rows of raw data symbols from the first block combined with rows of a second block of raw data symbols and rows of the column code checks into an array of row code checks; encoding columns for a first portion of the row code checks into an intermediate column code checks; combining the intermediate column code checks with a second portion of the row code checks thereby forming a reduced row code checks derived from both first and second raw data block and the column code checks; forming a reduced redundancy product code array including the first and second block of raw data symbols the column code checks for the first raw data block and the reduced row code checks the reduced redundancy product code array having a redundancy of n1 r2 +r1 r2 symbols, whereby up to r2 corrupted rows of the array can be detected and up to r2 erasures in each column corrected, wherein n1, n2, r1, and r2 are positive integers and each symbol is taken from an alphabet having an integer number q of symbols; transmitting the reduced redundancy product code array on the communications channel to the destination; and decoding the reduced redundancy product code array at the destination to recover the raw data symbols. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. An error correction system utilizing a reduced redundancy product code array, the system comprising:
-
an array buffer having n1 columns and n2 rows for storing raw data symbols in columns one through n1 of rows one through (k2 -r2) and in columns one through k1 of rows (k2 -r2 +1) through k2, where n1, n2, k1, k2, r1, and r2 are positive integer numbers satisfying relations n1 =k1 +r1 and n2 =k2 +r2 ; a column encoder for encoding the raw data symbols in columns one through k1 of the array buffer with a column code to form column checks of length r2 symbols, the column checks being associated one to one to the columns and stored in rows (k2 +1) through n2 of their respective associated columns of the array buffer; a row encoder for encoding the raw data in rows one through (k2 -r2) of the array buffer with a row code to form first row checks of length r1 symbols, and for encoding the raw data symbols and column cheek symbols in rows (k2 -r2 +1) through n2 of the array buffer with the row code to form second row checks of length r1 symbols; a column encoder for encoding columns of the first row checks with an intermediate code to form intermediate checks of length 2r2 symbols; an adder for summing the second row checks and the intermediate checks to form a checks array with dimensions r1 symbols by 2r2 symbols derived from the raw data symbols in columns one through n1 of rows one through (k2 -r2), the raw data symbols in columns one through k1 of rows (k2 -r2 +1) through k2 and the column checks in rows (k2 +1) through n2, the checks array being stored in columns (k1 +1) through n1 of rows (k2 -r2 +1) through n2 of the array buffer, thereby forming a product code array with redundancy of n1 r2 +r1 -r1 r2 symbols while maintaining substantially equal error correction capability for a non-reduced redundancy product code array having a redundancy of n1 r2 +n2 r1 -r1 r2. - View Dependent Claims (15, 16)
-
-
17. An error correction system utilizing a product code array of raw data symbols comprising:
-
a column encoder for encoding columns of the product code array with a column code C2 forming check symbols of the column code C2; a row encoder for encoding rows of the product code array and rows of the check symbols of the column code C2 with a row code C1 forming rows of check symbols of the row code C1, the rows of check symbols of the row code C1 associated one to one with the rows of the product code array and the rows of the check symbols of the column codes C2; an intermediate column encoder encoding columns for a first portion of rows of the check symbols of the row code C1 into intermediate check symbols for code C1.5; and a redundancy compressor that combines the intermediate check symbols of the code C1.5 with a remaining second portion of the check symbols of row code C1 into a reduced set of row check symbols having less redundancy than the set of row check symbols while maintaining substantially the same error correction capability for the product code array. - View Dependent Claims (18, 19, 20)
-
Specification