Patent ID: 7840872

Claim:
A method for correcting errors in a dataset read from a storage medium, comprising the steps of: (a) reading a dataset that contains errors from a storage medium; (b) storing the dataset in a memory as a multi-dimensional first memory structure; (c) applying an iterative decoding and error correcting algorithm to said first memory structure in all dimensions until at least one first predetermined stop criterion is satisfied; (d) constructing a multi-dimensional first error map of any remaining errors in said first memory structure said first error map having dimensions corresponding to said multi-dimensional first memory structure and map coordinates defined by said dimensions, said remaining errors in said first memory structure being identified by respective map coordinates thereof in said first error map; (e) re-reading said dataset from said medium and constructing a multi-dimensional second error map representing said errors in said dataset, said second error map having dimensions corresponding to said multi-dimensional second memory structure and map coordinates defined by said dimensions, said remaining errors in said second memory structure being identified by respective map coordinates thereof in said second error map, and storing the re-read dataset as a multi-dimensional second memory structure, together with said second error map; (f) applying said iterative decoding and correcting algorithm to said second memory structure in all dimensions until at least one second predetermined criterion is satisfied; (g) constructing a multi-dimensional new second error map representing any remaining errors in said second memory structure; (h) comparing said new second error map and said first error map to identify map coordinates of transferable data that are correct in said new second error map but are incorrect in said first error map; (i) transferring, into said first error map, said transferable data according to the map coordinates thereof, and updating said first error map to obtain an updated first error map, and updating said first data structure by removing errors therefrom indicated by said updated first error map, to obtain an updated first data structure; (j) applying said iterative decoding and correcting algorithm in all dimensions to said updated first data structure; and (k) repeating steps (e) through (j) until a third predetermined stop criterion is satisfied.