Error and loss correction in a data base stored on a two dimensional medium and method

Abstract: A digital data base 10 having record data codes representing an initial digital record is printed at predetermined code sites 12 within two dimensional code storage area 14 on the surface of on base medium 10B. The digital data base includes redundant check codes and one or more redundant check-check codes for permitting data error and data loss correction. The two dimensional code storage area has a coordinate system for defining code positions therein. The code sites are physically positioned within the code storage area at predetermined coordinates. A plurality of error checking sets are formed by the code sites, each containing one or more data codes and one or more check codes. The bits in the check codes in each error checking set are determined by the bits in the data codes of the same error checking set, and are in error correcting relationship therewith. Each data code and each check code are included in "L" error checking sets to provide "L" levels of inter-locking error checking and correcting. In addition, a of plurality error checking-checking sets are also formed by the code sites. Each error checking-checking set contains one or more check codes and one or more check-check codes in error correcting relationship therewith. Each check code and each check-check code are also included in "L" error checking-checking.

Description: This invention relates to a data base correctable against error and loss and method of correction; and more particularly to such a data base stored on the surface of a two dimensional base medium. Heretofore, digital data has been stored on IBM punch cards as bit punch-outs within a row and column matrix of bit positions across on the card. The data was entered along the rows of the card from left to right starting with the top row. The matrix included a row of redundant parity bits along the bottom row and a column of parity bits along the right hand column, for detecting and correcting small errors. Processing errors introduced by electronic aberrations such as low signal-to-noise caused single bit errors and multiple bit errors ("burst" errors) in the serial data stream. The parity bits permitted the detection and correction of short electronic burst errors which were limited to a single row of punch-outs. However, larger burst errors extending over several rows could not be corrected with these row and column parity bits. In addition, loss of data due to "blot" impairments in the physical structure of the card extending across several adjacent rows and columns could not be corrected with these parity bits. Printed bar codes arranged in a row-column matrix have been employed with limited error correction; as disclosed in an article entitled "Information Encoding with Two Dimensional Bar Codes" by Theo Pavlidis et al, appearing in June 1992 edition of the IEEE at pages 18 to 28. Figure 9 of this publication shows a row of checksums in code PDF417 format. US-A-4794239 discloses a bar code system in accordance with the preamble of the claims wherein check codes are formed for columns and rows of a multitrack bar code. This technique however cannot correct for blot errors where a significant amount of the bar code is not readable in an area. It is an object of the present invention to provide a digital database which can correct blot errors wherein the code is permuted before recording and inverse permuted when read. The present invention provides a digital data base having record data codes representing an initial digital record, and having redundant check codes and one or more redundant check-code codes, comprising: a base medium a two dimensional code storage area on the surface of the base medium having a coordinate system for defining positions therein; code sites physically positioned within the code storage area at predetermined coordinates for containing the record data codes, the redundant check codes and the redundant check-code codes, and having code bit states defined by the amount of print material deposited on the base medium; a plurality of error checking sets formed by the code sites, each error checking set containing one or more data codes and one or more check codes and one or more check codes in each error checking set being determined by the bits in the data codes of the same error checking set and in error correcting relationship therewith, each data code site and each check code site being included in L error checking sets to provide L levels of inter-locking error checking where L is an integer greater than 1; and a plurality of error checking-checking sets formed by the code sites, each error checking-checking set containing one or more check codes and one or more check-check codes, the bits in the check-check codes in the error checking-checking set being determined by the bits in the check codes thereof and in error correction relationship therewith; characterised in that the record data codes are arranged within the code storage area are permuted generally out of the sequence of the initial record represented by the record data codes for reducing the record continuity between the record data codes within the code storage area and the record. The present invention also provides a method of storing the digital data base, the method comprising the steps of a method of storing the digital data base of any preceding claim, the method comprising the steps of: providing an initial data base of the initial digital record in an initial memory; permuting the sequence of the initial data; and printing the permuted data base onto the base medium. The present invention further provides a method of retrieving and correcting the digital data base, the method comprising the steps of retrieving and correcting the digital database of any one of 1 to 17, the method comprising the steps of: retrieving the codes from the base medium into retrieval memory; inverse permuting the sequence of the data in the retrieval memory to restore the sequence of the initial data; examining the inverse permuted codes in each of the error checking sites to locate errors revealed by inconsistencies in the error correcting relationship within each error checking set and between the inter-locked error checking sets; correcting any errors in the codes of the error checking sets; and iterating the examining and correcting steps until a predetermined error condition has been established in the digital data base. The present invention also provides apparatus for retrieving and correcting the data base, the apparatus comprising retrieving means including a retrieval memory for retrieving the codes from the base medium into the retrieval memory; inverse permuting means for inverse permuting the sequence of data in the retrieval memory to restore the sequence of the initial data; examining means for examining the inverse permuted codes in each of the error checking sets to locate errors revealed by inconsistencies in the error correcting relationship within each error checking set and between L inter-locking error checking set; and correcting means for correcting any errors in the codes of the error checking sets wherein the examining means and the correcting means are adapted to operate iteratively until a predetermined error condition has been established in the digital data base. Embodiments of the present invention will now be described with reference to the accompanying drawings, in which: FIGURE 1 is a diagram of a record data base printed on a paper base medium; FIGURE 2 is a diagram of an embodiment of a code storage area for a record data base having record data codes (Dt) and redundant check codes (Ck); FIGURE 3 is a diagram of another embodiment of a code storage area; FIGURE 4A is a diagram of a single data unit with a serial bit format for storage in a code site; FIGURE 4B is a diagram of a single data unit with an E entries out of L locations format; FIGURE 5 is a flow chart showing the steps of the method of data correction; and FIGURES 6A-F show the stages of the data base during various steps of the method shown in Figure 5. The first digit of each reference numeral in the above Figures indicates the Figure in which that element is shown. The second digit indicates related structural elements, and the final letter indicates a sub-portion of an element. GENERAL DATA BASE EMBODIMENT (Fig 1) A digital data base 10 having record data codes representing an initial digital record is printed at predetermined code sites 12 within two dimensional code storage area 14 on the surface of on base medium 10B. The digital data base includes redundant check codes and one or more redundant check-check codes for permitting data error and data loss correction. The two dimensional code storage area has a coordinate system for defining code positions therein. The code sites are physically positioned within the code storage area at predetermined coordinates. The bit states of the codes are defined by the presence or absence of toner material deposited on the base medium. A plurality of error checking sets are formed by the code sites, each containing one or more data codes and one or more check codes. The bits in the check codes in each error checking set are determined by the bits in the data codes of the same error checking set, and are in error correcting relationship therewith. Each data code and each check code are included in L error checking sets to provide L levels of inter-locking error checking and correcting. In addition, a plurality of error checking-checking sets are also formed by the code sites. Each error checking-checking set contains one or more check codes and one or more check-check codes. The bits in the check-check codes in each error checking-checking set are determined by the bits in the check codes thereof, and are in error correcting relationship therewith. Each check code and each check-check code are also included in L error checking-checking sets to provide L Levels of inter-locking error checking-checking. CODE CHECKING SETS (Figs 2 and 3) In the row-column embodiment shown in Figure 2, each code site 22 within the code storage area 24 is positioned along a row axis and also along a column axis forming a pattern of intersecting rows and columns having R rows and C columns. The coordinate system for defining the position of each code site is a row and column coordinate system. In the embodiment of Figure 2, the number or rows R is equal to the number of columns C . In the embodiment of Figure 3, code sites 32 are arranged in storage area 34 with R and C selected so as not to have a common divider so as to avoid error correction looping. Each error checking set may be contained along a row or column forming (R-1) row error checking sets and (C-1) column error checking sites as shown in Figure 2. Each of the R-1 row error checking sets has C code sites containing C-1 data codes (Dt) and one check code (Ck); and each of the C-1 column error checking sets has R code sites containing R-1 data codes (Dt) and one check code (Ck). Further, the error checking-checking sets may also be contained along a row or column forming one row error checking-checking set and one column error checking-checking set. The one row error checking-checking set has C sites containing (C-1) check codes (Ck) plus one checking-checking code (CC), and the one column error checking-checking set has R sites containing (R-1) check codes (Ck) plus the one checking-checking code (CC). In the embodiments of Figures 2 and 3, L = 2. That is, each data code site (Dt) and each check code site (Ck) are included in two checking sets, a row checking set and an intersecting column checking set. Each check code site (Ck) and each check-check code site (CC) are also included in two checking sets, a row checking-checking set and an intersecting column checking-checking set. As a result of the two level row-column configuration, each of the data codes occupies a code site at the intersection of a row and column. Each data code is in error correcting relationship with the C-2 other data codes plus the one check code along that row, and is also in error correcting relationship with the R-2 other data codes plus the one check code along that column. The check codes also occupy a code site at the intersection of a row and column, and are in error correcting relationship with the C-2 other check codes plus one check-check code along that row, and in error correcting relationship with the R-2 other check codes plus one check-check code along that column. The number of levels L may be greater than 2 even though the data base has only two physical dimensions (one row dimension and one column dimension). Mathematical dimensions may be employed which to not correlate with the row and column dimensions. Mathematical dimensions are manifested by lists of addresses in the data base memory. In the embodiment of Figure 2, the (C-1) row data check sites (Ck) plus the one check-check code site (CC) forming the row checking-checking set are positioned along an exterior row near the bottom edge of code storage area 24. Similarly, the (R-1) column check code sites (Ck) plus the one check-check code site (CC) forming the column checking-checking set are positioned along the right hand exterior column. The one code checking-checking site (CC) is positioned at the intersection site between the exterior row and the exterior column at a corner of code storage area 24. The exterior position of the checking-checking sets to permit fast reading of the interior record data codes by ignoring the exterior row and column. In the embodiment of Figure 3, the row checking set is positioned along an interior row within code storage area 34, and the column checking set is also positioned along an interior column. The one code checking-checking site (CC) is positioned at the intersection site between the interior row and the interior column within code storage area 34. CODE SITES (Figs 4A 4B) Preferably, each code site contains a single data unit such as one symbol or character. Figure 4A shows a conventional code format having N (eight) serial bits forming a single byte, which yields 2-to-the-Nth (or 256) possible codes per byte. Figure 4B shows an "E entries out of L locations" type code format described in US Patent Application SN 07/807,227 entitled "DATA FORMAT FOR RECORDING DIGITAL DATA AND METHOD" filed on December 16, 1991 by the present inventor. Toner is deposited in any four of eight locations within the code site. The remaining four locations remain untoned (empty). The digital format may be binary based, having two code states per bit as shown in Figure 4A employing a single color recording material such as dark toner against a light base medium. One state is represented by the presence of toner material (solid black dot) and the other state is represented by the absence of toner material (clear dot). The base medium may be any suitable two dimensional sheet like structure such as paper with sufficient body to retain the toner recording material in position within the code site. Paper remains two dimensional in the sense of this invention even though the sheets may curl or become folded into the third dimension. The recording material may be any suitable powder or liquid deposited on the base medium. Alternatively, the digital format of the codes may be multinary based, having M code states per bit by employing greyscale or colored ink. The greyscale format employs toner material of a single color. The M code states per bit are determined by M greyscale levels. That is, by the intensity of the deposited toner material. The color format (shown in Figure 4B) is a color based multinary code having employing M colors of toner which provide M code states per bit, yielding M-to-the-Nth possible codes. The embodiment of Figure 4B employs four entries in eight locations with four colors yielding 256 possible codes. Red color toner is indicated by the dot containing the letter "R". Green toner is indicated by the letter "G". Blue is indicated by the letter "B", and yellow by the letter "Y". METHOD OF USE (Figs 5 and 6A-F) The method of storing and retrieving and correcting a digital data base having record data codes representing an initial digital record is shown in Figure 5. The stages of the data base are illustrated in Figure 6A-F. The data base includes redundant check codes and one or more redundant check-check codes which are dependent on the record data codes. The codes are arranged in error checking sets of codes in error correcting relationship. Each code is included in L error checking sets to provide L levels of inter-locked error checking. The steps of the method are summarized in Figure 5 and given in detail below. Providing an initial data base in an initial memory of digital record 66I (Figure 6A). The initial memory is the input mechanism for entering data to be examined and corrected into the system. The initial memory may be any suitable memory device such as a electronic memory or a magnetic memory such as tapes, hard disks or floppy disks. Providing a base medium carrying the codes of the digital data base by printing the initial data base from the initial memory onto a suitable base medium such as paper 60P (Figure 6B). Storing the base medium carrying the codes of the data base (Figure 6C). Preferably the base medium is stored under conditions suitable for years of storage, perhaps as long as ten or twenty years. Such long term storage is common for data which is very bulky or seldom (if ever) accessed. The data may be "off loaded" from crowded magnetic memory storage, and stored on paper in a cool, dry environment free from silverfish and other life forms. Retrieving the codes from the base medium into an retrieval memory forming retrieved data base 66R (Figure 6D). A scanning device of appropriate resolution is a suitable device for retrieving the dots of toner and (absence of toner) into binary "1"s and "0"s. Examining the retrieved codes in each of the error checking sets to locate errors in the data base (Figure 6E). The errors are revealed by inconsistencies in the error correcting relationship within each error checking set and between the L inter-locked error checking sets. The sets of error check codes may extend in rows and columns within an addressable matrix in the retrieval memory. This permits the examining step to proceed along the rows and columns merely by incrementing the row-column access address of the retrieval memory. Correcting the errors in the codes of the error checking sets if any errors exist. Iterating the examination and correction steps until a predetermined condition is established (see next section). Printing the iterated data base onto another base medium 60N (Figure 6F), which provides an error free (or at least error reduced) copy of the data base. This "refreshed" copy may be used in a present application or returned to in storage for future use. PREDETERMINED CONDITIONS The iteration cycles of the examination and correction steps are continued until a desireable predetermined condition is attained. The nature of the predetermined condition depends on the error limitations of the data processing application. The following are some of the predetermined conditions which may stop the iteration cycles and terminate the method. ALL ERRORS CORRECTED CONDITION This preferred predetermined condition is attained when all of the errors have been corrected. The corrected condition is manifested by the elimination of inconsistencies in the checking sets and checking-checking sets. The corrected condition may be attained after a single iteration or several iteration cycles. The initial data base may in fact be error free in which case only one examination is required without correction or iteration. NO CHANGE CONDITION If the errors and lost data in the initial data base are extensive, complete correction may be impossible. The iteration cycles may be terminated when no more changes appear in the iterated codes. That is, the same errors are detected during the examination step of each iteration, but not corrected during the correction step. MAXIMUM ITERATION CYCLES A simple condition to limit the number of iterations to Imax, a predetermined number of cycles. The number Imax is sufficient to eliminate the errors that can be corrected, but small enough to prevent pointless iteration cycles dealing with errors that cannot be corrected. Selection of Imax is a trade-off between speed of operation and degree of correction. RESIDUAL ERROR DENSITY If the data base is sufficiently massive, new errors may be generated during each iteration cycle. These new generated errors (plus any incbrrectable initial errors) establish a residual error density E which cannot be eliminated. The iteration cycles may then be terminated when this residual error density is reduced to below a predetermined acceptable value. PERMUTATION OF THE DATA BASE (Figs 6 ABCDEF) The printed codes are permuted generally out of the sequence of the initial record in order to reduce the record continuity. Each printed code within a permuted data base on the base medium has random neighbors. The data base is later inverse permuted in the retrieval memory to restore the record continuity prior to the examination and correction steps. The permutation and restoration assists in recovering lost data due to "blot" errors resulting from large impairments in the base medium. Figure 6A shows initial record data base 66I in the initial memory, illustrating a typical pair of intersecting code checking sets 67R and 67C of the initial record. Row set 67R has eight codes each indicated by an "r"; and column set 67C has six codes each indicated by a "c". The code site at the intersection of row set 67R and column set 67C is indicated by an "i". Figure 6B shows permuted data base 66P printed on a base medium 60P resulting from the permutation of record data base 66I of Figure 6A. The permutation has distributed the codes of row set 67R and column set 67C throughout the storage area to reduce the record continuity. The distribution may be random but inversable based on random inverse keys with encryption potential. Alternatively, the distribution may be systematic and based on a standard permutation key which is included within the initial record as key data. The standard permutation minimizes (or at least greatly reduces) the record continuity of permuted data base 66P. The subsequent inverse permutation restores the record continuity while producing maximum distribution of the blot impairments. The key data defines the permutation of the initial record and the inverse permutation in the retrieval memory. The embodiment of Figure 1 shows key data 14K carried on the base medium next to storage areas 14. Figure 6C shows blot impaired data base 66B resulting from the extensive use and long storage of printed data base 60P of Figure 6B. Data impairments have many forms including data processing errors caused by insufficient electronic signal-to-noise and printing errors caused by toner deposited in the wrong amount or at the wrong place. However the impairment shown in Figure 6C are blot impairments extending over adjacent rows and adjacent columns. The lost codes within these blot impairments are indicated by an "x" in Figure 6C, and are particularly troublesome because they are clustered together in blots. Some blot impairments may result from accidental spills a harmful substances over the base medium which removes or discolors the toner. Other blot impairments are caused by loss of contrast due between the dark toner and the light base medium to aging. The pigment in the toner may fade and the paper may turn yellow or brown over the years of storage. The resulting physical signal-to-noise may be insufficient to maintain error free scanning. A major cause of blot impairments is holes in the base medium caused by punch holes 68P, staple rips 68R, torn corners 68T or burrows 68E excavated by silverfish and other pests. Figure 6D shows retrieved data base 66R in the retrieval memory resulting by the scanning and inverse permutation of impaired data base 66B of Figure 6C. The codes of typical row checking set 67R and typical column checking set 67C have been restored to their original discrete format of an intersecting row and column. The restored positions of row set 67R and column set 67C correspond to their initial positions in initial record data base 66I. The clusters of lost codes (each indicated by an "x") caused by the blot impairments have been distributed throughout the retrieved data base 66R due to the inverse permutation. Figure 6E shows corrected data base 66C in the retrieval memory resulting from the examination and correction of the retrieved data base of Figure 6D. The lost data has been salvaged by means of the redundant codes and the in error correcting relationship between the code sets. Figure 6F shows new data base 60N printed on a new base medium, which provides an error free (or at least error reduced) copy of the data base. This "refreshed" data base 60N may be used in a present application or returned to in storage for future use. The specific additional steps of the permutation and restoration of the data base as show in Figures 6A 6B 6C 6D 6E and 6F are summarized below. Permuting the sequence of the initial data in initial data base 66I prior to the printing step. Inverse permuting the sequence of the iterated data in retrieval data base 66R after the step of retrieving to restore the sequence of the initial data. Providing a new base medium carrying the codes of the digital data base by printing corrected data base 66C from the retrieval memory onto a suitable new base medium such as paper 60N (Figure 6F). SPECIFIC EMBODIMENT The following particulars of the data base and error correcting method are given as an illustrative example. The data density of the data base may be 1550 codes per cm 2 (10,000 codes per square inch) (4 entries in 8 locations, see Figure 4B) which can be read by at a scanner resolution of 157,48 dpcm (400 dpi). The ratio of record data codes to redundant check codes plus check-check codes may be 4:1. That is, the record data codes may occupy 80% of the toned storage area on the paper, and the error correcting codes (such as Reed-Solomon) may occupy the remaining 20%. Suitable techniques such as Berlekamp's iterative algorithm may be employ in the error correction as described in detail in the text "Error Control Coding: Fundamentals and Applications" (pages 170-177) by Shu Lin and Daniel J. Costello, Jr, and published by Prentice-Hall, Inc, Englewood Cliffs N.J. (copyright 1983). The above specific example is not intended as defining the limitations of the invention. Numerous other applications and configurations are possible. Clearly various changes may be made in the structure and embodiments shown herein without departing from the scope of the invention as claimed. Further, features of the embodiments shown in the various Figures may be employed with the embodiments of the other Figures.

Claims: A digital data base having record data codes (Dt) representing an initial digital record, and having redundant check codes (Ck) and one or more redundant check-check codes (CC), comprising: a base medium (10B) a two dimensional code storage area (14) on the surface of the base medium (10B) having a coordinate system for defining positions therein; code sites (12) physically positioned within the code storage area (14) at predetermined coordinates for containing the record data codes, the redundant check codes and the redundant check-check codes, and having code bit states defined by the amount of print material deposited on the base medium (10B); a plurality of error checking sets formed by the code sites (12), each error checking set containing one or more data codes (Dt) and one or more check codes (Ck), the bits in the check code (Ck) in each error checking set being determined by the bits in the data codes (Dt) of the same error checking set and in error correcting relationship therewith, each data code site (Dt) and each check code site (Ck) being included in L error checking sets to provide L levels of inter-locking error checking, where L is an integer greater than 1; and a plurality of error checking-checking sets formed by the code sites (12), each error checking-checking set containing one or more check codes (Ck) and one or more check-check codes (CC), the bits in the check-check codes (CC) in the error checking-checking set being determined by the bits in the check codes (Ck) thereof and in error correction relationship therewith; characterised in that the record data codes (Dt) arranged within the code storage area (14) are permuted generally out of the sequence of the initial record represented by the record data codes (Dt) for reducing the record continuity between the record data codes (Dt) within the code storage area (14) and the record. The digital data base of claim 1, wherein each code site (12) containing a check code (Ck) and each code site (12) containing a check-check code are included in L error checking-checking sets to provide L levels of inter-locking error checking-checking. The digital data base of claim 1, wherein each code site (12) within the code storage area (14) is positioned along a row axis and along a column axis forming a pattern of intersecting rows and columns having R rows and C columns, where R and C are integers greater than 1, and the coordinate system for defining the position of each code site (12) is a row and column coordinate system. The digital data base of claim 3, wherein the number of rows R is equal to the number of columns C. The digital data base of claim 3, wherein the number of rows R and the number of columns C do not have a common divisor. The digital data base of claim 3, wherein each of the error checking sets is contained along a row or column forming (R-1) row error checking sets and (C-1) column error checking sets, and each of the error checking-checking sets being contained along a row or column forming one row error checking-checking set and one column error checking-checking set. The digital data base of claim 6, wherein each of the (R-1) row error checking sets has C code sites (12) containing (C-1) data codes (Dt) and one check code (Ck), and each of the (C-1) column error checking sets has R code sites containing (R-1) data codes Dt and one check code (Ck), and the one row error checking-checking set has C code sites (12) containing (C-1) check codes (Ck) plus one check-check code (CC), and the one column error checking-checking set has R code sites (12) containing (R-1) check codes (Ck) plus one check-check code (CC). The digital data base of claim 7, wherein L = 2, and each data code (Dt) and each check code (Ck) are included in one row checking set and in one intersecting column checking set, and each check code (Ck) and each check-check code (CC) are included in one row checking-checking set and in one intersecting column checking-checking set. The digital data base of claim 8, wherein each of the data codes (Dt) occupies a code site (12) at the intersection of a row and column, and is in error correcting relationship with the (C-2) other data codes (Dt) plus the one check code (Ck) along that row, and is also in error correcting relationship with the (R-2) other data codes (Dt) plus the one check code (Ck) along that column. The digital data base of claim 9, wherein each of the check codes (Ck) occupies a code site (12) at the intersection of a row and column, and is in error correcting relationship with the (C-2) other check codes (Ck) plus one check-check code (CC) along that row, and is also in error correcting relationship with the (R-2) other check codes (Ck) plus one check-check code (CC) along that column. The digital data base of claim 7, wherein the (C-1) row data code sites with one check code are positioned along an exterior row along the edge of the code storage area (14), and the (R-1) column data code sites with one check code site are positioned along an exterior column along the edge of the code storage area (14), and the one code check-check site is positioned at the intersection site at a corner of the code storage area (14) between the exterior row and the exterior column. The digital data base of claim 7, wherein the (C-1) row check code sites with one check-check code site are positioned along an interior row within the code storage area (14), and the (R-1) column check code sites with one check-check code site are positioned along an interior column within the code storage area (14), and the one code check-check site is positioned at the intersection site within the code storage area (14) between the interior row and the interior column. The digital data base of any preceding claim, further comprising key data (14K) for defining the permuting of the initial record. The digital data base of claim 1, wherein the digital format of the codes is binary based having two code states per bit, one state represented by the presence of toner material and the other state represented by the absence of toner material. The digital data base of claim 1, wherein the digital format of the codes is multinary based having M code states per bit. The digital data base of claim 15, wherein the toner material is a single color and the deposition thereof is in greyscale and the M code states per bit are determined by the intensity of toner material deposited. The digital data base of claim 15, wherein the toner material has M colors and the M code states per bit are determined by the selection of the toner material deposited to form each bit. A method of storing the digital data base of any preceding claim, the method comprising the steps of: providing an initial data base of the initial digital record in an initial memory; permuting the sequence of the initial data; and printing the permuted data base onto the base medium (10B). The method of claim 18, wherein the step of permuting the sequence of the initial data reduces the record continuity of the initial data base. The method of claim 19, wherein the step of permuting the initial data is performed using a standard permutation key. A method of retrieving and correcting the digital database of any one of claims 1 to 17, the method comprising the steps of: retrieving the codes from the base medium (10B) into retrieval memory; inverse permuting the sequence of the data in the retrieval memory to restore the sequence of the initial data; examining the inverse permuted codes in each of the error checking sites to locate errors revealed by inconsistencies in the error correcting relationship within each error checking set and between the inter-locked error checking sets; correcting any errors in the codes of the error checking sets; and iterating the examining and correcting steps until a predetermined error condition has been established in the digital data base. The method of claim 21, wherein the examining and correcting steps are iterated until all errors have been corrected. The method of claim 21, wherein the examining and correcting steps are iterated until no changes appear in the iterated codes. The method of claim 21, wherein the examining and correcting steps are iterated a maximum of Imax times. The method of claim 21, wherein the examining and correcting steps are iterated until the number of errors E in the iterated codes is less than a predetermined value. The method of any one of claims 21 to 25, including the further step of printing the iterated data base onto another base medium. The method of any one of claims 21 to 26, wherein the sets of error check codes extend in rows and columns within an addressable matrix in the retrieval memory, and the examining step proceeds along the rows and columns by incrementing the access address of the retrieval memory. The method of any one of claims 21 to 27, wherein the step of inverse permuting the sequence of the iterated data distributes storage impairments throughout the printed data base. Apparatus for retrieving and correcting the digital data base of any one of claims 1 to 17, the apparatus comprising: retrieving means including a retrieval memory for retrieving the codes from the base medium (10B) into the retrieval memory; inverse permuting means for inverse permuting the sequence of data in the retrieval memory to restore the sequence of the initial data; examining means for examining the inverse permuted codes in each of the error checking sets to locate errors revealed by inconsistencies in the error correcting relationship within each error checking set and between L inter-locking error checking sets; and correcting means for correcting any errors in the codes of the error checking sets wherein the examining means and the correcting means are adapted to operate iteratively until a predetermined error condition has been established in the digital data base. The apparatus of claim 29 wherein the examining means and the correcting means are adapted to operate iteratively until all errors have been corrected. The apparatus of claim 29 wherein the examining means and the correcting means are adapted to operate iteratively until no changes appear in the iterated codes. The apparatus of claim 29 wherein the examining means and the correcting means are adapted to operate iteratively a maximum of Imax times. The apparatus of claim 29 wherein the examining means and the correcting means are adapted to operate iteratively until the number of errors E in the iterated codes is less than a predetermined value. The apparatus of any one of claims 29 to 33 including printing means for printing the iterated data base onto another base medium. The apparatus of any one of claims 29 to 34 wherein the sets of error check codes extend in rows and columns within an addressable matrix in the retrieval memory, said examining means being adapted to proceed along the rows and columns by incrementing the access address of the retrieval memory.

Inventors: HUGHES-HARTOGS DIRK, HUGHES-HARTOGS, DIRK
Applicants: CANON KK, CANON KABUSHIKI KAISHA
Application year: 1993
Main classification: G06K19
IPC codes: G06F12, G06K7, G06K19