Patent ID: 8190964

Claim:
A method of ranking bits in a data stream comprising: at a bit quality evaluator, defining a binary one bit as a first voltage −V relative to reference voltage and a binary zero bit as a second voltage +V relative to the reference voltage; defining a first low quality region between a first threshold voltage −T 1 and a second threshold voltage +T 1 , wherein the absolute value of −T 1 is less than the absolute value of −V by a first predetermine amount and the second threshold is less than +V by the first predetermined amount; defining a second low quality region relative to a third threshold voltage −T 2 , wherein the absolute value of −T 2 is greater than the absolute value of −V by a second predetermine amount; defining a third low quality region relative to a fourth threshold voltage +T 2 , wherein +T 2 is greater than +V by the second predetermine amount; defining a first high quality region as between and including −T 1 and −T 2 and a second high quality region as between and including +T 1 and +T 2 ; identifying a bit as a poor quality bit if its voltage is within a quality region selected from the group consisting of the first low quality region, the second low quality region, and the third low quality region; tagging the poor quality bits with tagging data, and sending the data stream and the tagging data to an error detector and a first decoder; at the first decoder, receiving the data stream and tagging data, decoding the data stream, and sending the decoded data stream to a second decoder; at the error detector, determining whether a concentration of poor quality bits within a sliding window of bits in the data stream exceeds a concentration threshold based on the tagging data, predicting that the first decoder will fail to correct errors when the concentration of poor quality bits within the sliding window exceeds the concentration threshold, and instructing the second decoder to perform erasure on symbols likely to contain errors based on the tagging data; and at the second decoder, outputting decoded corrected data.