Patent ID: 8250445

Claim:
A cyclic code decoding method having an error correcting capability associated with an error correcting capability value, comprising the machine-implemented steps of: establishing a lookup table including at least one syndrome pattern and one error pattern corresponding to said syndrome pattern; receiving a codeword; initializing a counter value to an initial value; computing a syndrome of said codeword and a first Hamming weight corresponding to said syndrome; if said first Hamming weight has a non-zero value that is not greater than said error correcting capability value, performing a first error correcting operation upon said codeword with reference to said syndrome; if said first Hamming weight has a non-zero value that is greater than said error correcting capability value, and if said syndrome has a matching syndrome pattern in said lookup table, performing a second error correcting operation upon said codeword with reference to the error pattern that corresponds to the matching syndrome pattern; if said first Hamming weight has a non-zero value that is greater than said error correcting capability value, and if said syndrome does not have a matching syndrome pattern in said lookup table: (g1) choosing a syndrome pattern from said lookup table; (g2) obtaining a syndrome difference by subtracting said syndrome pattern chosen in sub-step (g1) from said syndrome; (g3) computing a second Hamming weight corresponding to said syndrome difference; (g4) if said second Hamming weight is not greater than a predetermined check value, performing a third error correcting operation upon said codeword with reference to said syndrome difference and the error pattern corresponding to said syndrome pattern chosen in sub-step (g1); and (g5) if said second Hamming weight is greater than the predetermined check value, performing a fourth error correcting operation upon said codeword with reference to a predetermined codeword bit length and a predetermined codeword message bit length to result in a new codeword, incrementing the counter value, and going back to step (d); if the counter value is not larger than the initial value after determining that said first hamming weight has a zero value or after any one of the first, second and third error correcting operations, performing decoding of the corrected codeword; and if the counter value is larger than the initial value after determining that said first hamming weight has a zero value or after any one of the first, second and third error correcting operations, performing a fifth error correcting operation upon the corrected codeword with reference to the counter value, the predetermined codeword bit length and the predetermined codeword message bit length to obtain a further corrected codeword, followed by decoding the further corrected codeword.