The present invention relates to storing digital data on surfaces of data carriers, for example on optical microfilms.
Storing digital data, in particular binary data, as visible patterns at surfaces of data carriers has become widespread. QR codes are a popular example, where individual bits are encoded as small black or white squares on any kind of visible surface. While this is intended for storing a few bytes only, a similar approach can also be used for storing a much bigger amount of digital data on or at surfaces of materials like paper or film, as presented in Voges et al., “Applications of Data Storage on Cinematographic Film for Long-Term Preservation of Digital Productions”, SMPTE Motion Imaging Journal, Vol 121(1), January/February 2012, pp. 39-42.
For increasing areal density, the physical size of individual recording elements on the data carrier must decrease. The smaller the recording elements are, the more often will strongly localized damages of the data carrier, like dirt or scratches, lead to difficulties when, during read back, it must be decided whether a single recording element is “white” or “black”. The same holds for recorded multilevel data, where read back comprises a decision about which value out of a known finite set of values a recording element has. Such decision is also affected by local damages.
In an approach to deal with “linear”—in the sense of line-shaped—defects on a data carrier, U.S. Pat. No. 6,456,798 says it discloses a method of placing a two-dimensional barcode symbol on a photographic element exhibiting linear defects in a predominant direction. By purposely distorting the symbol in a writing step, it is said that one can prevent the defects from affecting an entire row of symbol elements.
However, the problem still remains that, for direct recording of information elements as recording elements on a data carrier, isolated distortions or defects on the data carrier, having a size in the same order of magnitude as the information-bearing squares or recording elements, will lead to individual bits or information elements being wrongly read back. With other words, if digital data are directly stored at 2D surfaces or data carriers like microfilm, any impulse noise on the storage medium will directly and irreversibly destroy small parts of the recorded data.
It is thus desirable to find ways to overcome these detrimental effects.
For storing digital data, the invention proposes, among others, to group the digital data as information elements into blocks of information elements; to transform the blocks of information elements into blocks of transform domain elements, and to use these transform domain elements as recording elements to be subsequently stored or written to at a surface of a data carrier instead of the information elements themselves.
Correspondingly, for reading back the digital data from at the surface of the data carrier, the invention proposes, among others, to read, from the data carrier, blocks of recovered recording elements, to inverse transform the blocks of recovered recording elements into blocks of original domain elements, and to quantize and deblock the blocks of original domain elements into recovered information elements.
In this approach, the transform used in storing has the property that each transform domain element at the output of the transform depends on all information elements at the input of the transform. Also, the inverse transform used in reading has the property that each original domain element at the output of the inverse transform depends on all recovered recording elements at the input of the inverse transform.
As a consequence of this, an isolated distortion or defect affecting only one of the recording elements at the surface of the data carrier will not damage a single information element strongly, but will instead lead to small errors on all original domain elements within a block as obtained at the output of the inverse transform. Having a thus reduced error amplitude, and exploiting the fact that the recovered information elements to be reconstructed are assumed to be binary or of a few distinct levels, the quantization and deblocking for converting the blocks of original domain elements into recovered information elements will quantize away the small errors so that the digital data are read back correctly. The recovered information elements are in this case identical to the information elements.
Accordingly, a method for storing digital information elements at a surface of a data carrier according to the invention comprises but is not limited to arranging the information elements into blocks; transforming the blocks of information elements with a transform having an inverse transform into blocks of recording elements; and storing the blocks of recording elements at the surface of the data carrier.
In this, it helps to understand the advantages of the proposed method, if the transform is assumed to be an Inverse Discrete Cosine Transform or IDCT-like transform. Formally, a transform of a sequence or vector of values can be described as a multiplication of the vector with a transform matrix, and the column vectors of the transform matrix are also denoted as basis functions of the transform. Of course, as widely known, with proper scaling DCT and IDCT can be made to be identical. Assuming an IDCT-like transform, for the case of binary information elements, each information element governs the presence or absence of one of the basis functions of the transform in the transform output.
A method for reading back digital recovered information elements from at a surface of a data carrier according to the invention comprises but is not limited to reading, from the data carrier, blocks of recovered recording elements; inverse transforming the blocks of recovered recording elements into blocks of original domain elements; and quantizing and deblocking the blocks of original domain elements into the recovered information elements.
If the transform is assumed to be IDCT-like, the inverse transform must be assumed to be DCT-like. Additionally assuming, just for the sake of illustration, that the information elements are binary, i.e. have one of two possible values, the act of inverse transforming the blocks of recovered recording elements amounts to analyzing, for all basis functions of the transform, whether or in which amplitude they are present or absent in the block of recovered recording elements.
A system for storage of digital information elements at a surface of a data carrier in accordance with the present disclosure comprises but is not limited to a storing apparatus equipped and configured to implement a storing method according to the invention; a reading back apparatus equipped and configured to implement a reading back method according to the invention; and a data carrier capable of holding, at its surface, continuous-valued data.
Exemplary embodiments of the invention are illustrated in the drawings and are explained in more detail in the following description.
In the Figures,
The way how the methods proposed here work, and how defects on the data carrier affect the decoding result, will in the following be explained using an examplary embodiment. In this embodiment, the information elements to be stored are assumed to be binary, i.e. bi-level data. However, the principle of the invention can also be achieved with information elements that are multi-level. More than that, it will become apparent that the present principles do not require that the number of levels were a power of two.
The terminology of recording, writing or storing “at” a surface of a data carrier, and correspondingly reading “from at” a surface of a data carrier, as used herein, shall be understood to comprise and describe the writing and reading irrespective of the precise physical and geometrical details, which depend on the underlying technologies. In ink based printing on non-absorbant material, the print can be truly said to be “on” the surface of the material. For ink print on more porous material, the print will rather be situated within a certain volume of the material, close to, parallel to and including its surface. A “print” created using photographic recording will be situated in a certain volume that is parallel to but may not comprise the surface. Even more so, colorizations created using color photographic print are situated in several distinct stacked layers or lamina parallel to the surface of the carrier, one for each primary color. Yet a different storage technology, namely stamper produced recordings on optical data carriers like CD or DVD, are manifest as a totally reflective layer at a varying depth within a certain volume parallel to but considerably away from the surface of the transparent carrier material. The terminology shall encompass all these.
A square block size of 8 lines by 8 columns is used in the example embodiment. However, the principle of the invention can also be achieved with other block sizes. Blocks can be two-dimensional, but also one-dimensional, three-dimensional or of any other dimension.
The known Inverse Discrete Cosine Transform IDCT is used as the transform for this example embodiment, and the known Discrete
Cosine Transform DCT is used as its inverse transform. However, the principle of the invention can also be achieved with other transforms like Discrete Sine Transform DST or Hadamard Transform, and their respective inverses.
With other words: The data bits that shall be stored are used as amplitudes in the frequency domain, which are transformed by an inverse DCT into a spatial domain pattern. It is this spatial domain pattern that is being stored on the two dimensional medium or data carrier. The pattern is read back later and is then transformed back into the frequency domain, so that from the recovered basis function amplitudes the data bits can be retrieved.
In the embodiment considered here, the information elements are assumed to be binary i.e. bi-level and are represented as values of either −1 or +1. In the transform used to derive
Now the effect of an isolated defect at the surface of the data carrier is compared, on one hand in a prior art system where the information elements are directly stored, versus on the other hand in a system according to the methods proposed here, where there is a transform/inverse transform pair between the information elements and the recording elements. To see the influence of an isolated random defect, it is arbitrarily assumed in the following that a distortion affects the element in the sixth line and the sixth column of the 8×8 block of the example. The amplitude of the distortion is assumed to be 60% of the signal amplitude.
For the prior art case of directly storing the information elements as recording elements,
Next the effect of the same defect will be considered in a system using the methods as proposed here. If the same distortion is applied to the transformed signal, the situation is different:
Inspecting the original domain elements at those positions within the block which originally had a value of 0, one sees that the errors caused by the defect on the sixth coefficient 701 of the sixth row 702 range between −0.37 as seen at the fourth element 801 of the eighth row 805, and +0.41 as seen at the seventh element 802 of the fourth row 806. Inspecting the original domain elements at those positions which originally had a value of 1, one sees that the errors caused by the defect range between −0.37 as seen at the eighth element 803 of the fourth row 806 and +0.43 as seen at the fourth element 804 of the fourth row 806. Given these error ranges, it is easy to see that under quantization with a threshold of 0.5, all errors are quantized away.
So, under the inverse transform being used in converting recording elements back into information elements, the singular distortion on the data carrier was spread, in the original domain, over all values of the block. This has the effect that the amplitude of the distortion on each individual element is reduced in such a way as to enable error free decoding with a threshold quantizer.
In the example a block size of 8×8 is chosen. Of course other block sizes, larger or smaller, two-dimensional or other-dimensional, can be used as well. Using larger blocks of e.g. 16×16 or 32×32 elements is advantageous if the storage medium is known to have defects with high amplitude but very low probability. In this case it can be assumed that, even for a larger block, no more than a single defect falls within one block. A high amplitude distortion on a single coefficient will then be inverse transformed to many but small distortions on each of the numerous block elements.
Note that the scaling operations 1004, 1007 are optional: Depending on the chosen transform, scaling is not necessary at all or can be built into the transform or into the writing, respectively.
The storing apparatus 1216 comprises but is not limited to a block formatter 1202, a transformer 1204, and a writer 1206.
The block formatter 1202 is equipped and configured to receive information elements 1201 and to format them into blocks of information elements 1203. The transformer 1204 is equipped and configured to receive blocks of information elements 1203 and to transform them into blocks of recording elements 1205. The writer 1206 is equipped and configured to receive blocks of recording elements 1205, and to write them onto the data carrier 1208 in the form of writing data 1207.
The reading back apparatus 1217 comprises but is not limited to a reader 1210, an inverse transformer 1212, and a block unformatter 1214.
The reader 1210 is equipped and configured to derive, from readout data 1209 coming from the data carrier 1208, recovered recording elements 1211. The inverse transformer 1212 is equipped and configured to receive blocks of recovered recording elements 1211 and to inverse transform them into blocks of original domain elements 1213. The block unformatter 1214 is equipped and configured to receive blocks of original domain elements 1213, and to quantize and unblock them into recovered information elements 1215.
In an embodiment for storing four level information elements each representing 2 bits, the value of the information element may determine whether the associated basis function of the transform is contained in the transform output with a weight or amplitude of −3, −1, +1, or +3. In another embodiment for storing the same kind of information elements, the basis function weights to choose from may be the set comprising 0, 1, 2, and 3.
In any case, due to the general concept of transforms, the data to be recorded, denoted as recording elements herein, are superpositions of basis functions of a block. As such, they are conceptually continuous-valued.
It is worth noting, that it is technically not necessary to use the same set of weight values for all basis functions. One advantageous use of this is as follows: If the storage channel of writing at the surface of the data carrier and reading back from at the surface of the data carrier is known to have, overall, a spatial low pass characteristic as is often the case, it may be advantageous to choose bigger amplitudes for basis functions that are more high frequency, such as to anticipate and neutralize, at least partially, their stronger attenuation by the storage channel. This is equivalent to using, on at least some information elements, a scaling factor whose value depends on the position of the information element within the block of information elements. In the corresponding readback method, then, the inverse transform must scale the corresponding output values with a scaling factor that depends on a frequency index to which they are allocated. This is equivalent to a scaling of at least some original domain elements with a scaling factor whose value depends on the position of the original domain element within the block of original domain elements.
With recording transform values instead of data themselves, any impulse noise on the medium will be inverse transformed to small errors on all samples of the data block. As long as there are not too many impulse noises in a block, the resulting errors will all be “quantized away” in the final threshold detection of the digital data. If there are sporadic distortions on the data carrier having a size similar to the size of the individual recording elements, due to the inverse transform, a single such distortion is transformed to several small distortions on the information elements, which after quantization don't harm the signal.
It is worthwhile to note, that the methods for storing and retrieving described so far do not preclude that additionally, Error Correcting Coding is used on the information elements to be stored. This means that, onto an assumed sequence of payload elements, redundancy may be added according to one of known ECC schemes. Depending on what is known as the “rate” of the employed Error Correcting Code, the data volume of the information elements will then be somewhat bigger than the data volume of the payload elements.
Further improvements are possible by departing from the principle that all information elements shall be error correction coded by the same ECC code. Assume that, for whatever reason, a certain one of the basis functions of the transform is known to be less well decodable than others. A stronger ECC may then be used on all those information elements that are associated with that basis function. A frequency dependent decodability of basis function amplitudes may for example occur due to impairments in the manufacturing process of the data carrier.
An embodiment of this approach may contain deriving, from the payload data, information elements associated with a specific position within the block by Error Correcting Coding with a code whose rate depends on the specific position within the block. Correspondingly, in the readback method, from the original domain elements associated with a specific position within the block, payload data are derived using ECC decoding where the underlying ECC code has a rate that depends on the position within the block.
For a very simple but illustrative example, a 1×4 block size is assumed in the following, and that the basis function associated to the fourth information element within each block is known to be less well decodable. A trivial ECC of repeating every payload bit three times is assumed to be used on the information elements at the fourth position within each block. No ECC is assumed to be used on the information elements at the first, second, and third positions within each block. An 1×4 IDCT is assumed to be used as the transform, where the first information element in each block steers the amplitude of the lowest frequency basis function, and the fourth information element in each block steers the amplitude of the highest frequency basis function. Denoting consecutive payload bits as p1, p2, p3, etc, the sequence of information elements derived therefrom will then be (p1, p2, p3, p4), (p5, p6, p7, p4), (p8, p9, p10, p4), (p11, p12, p13, p14), (p15, p16, p17, p14), etc. With other words, the lowest frequency basis function in consecutive blocks will convey the information elements p1, p5, p8, p11, p15 etc; and the highest frequency basis function in consecutive blocks—assumed to be less well decodable—will convey the information elements p4, p4, p4, p14, p14, etc. It is clearly visible that the triple repetition of the information elements to be detected from the highest frequency basis function allows ECC decoding by majority decision that counteracts the supposed worse decodability of the highest frequency basis function.
Note that the concepts of using ECC with a block position dependent code rate and using block position dependent basis function weights can be employed independently or in combination.
As yet another alternative embodiment, no information element may be associated to a specific one or to several specific ones of the transform basis functions, if that specific basis function or these specific basis functions, for example because of its or their frequency content, is or are known to be badly decodable. For the example of an 8×8 transform, if one of the 64 basis functions is known to be very badly decodable, 63 information elements each are associated with the other 63 of the 64 basis functions of the transform, leaving out the badly decodable basis function. Of course this entails that for storing a specific amount of information elements, around 64/63 times more recording element blocks are needed than in a system where all basis functions are employed.
With other words, for storing digital data at a surface of a data carrier 1208, it is proposed to use a block-wise transform pair 1204, 1212 between a spatial domain and a frequency domain to convert between information elements 1203, 1213 and recording elements 1205, 1211 at the surface of the data carrier 1208. This enables that isolated strong data carrier defects affecting a single recording element in a block are converted to smaller amplitude errors on all information elements of a block. For non-continuous-valued information elements 1203, these errors can be removed by quantization 1214.
Number | Date | Country | Kind |
---|---|---|---|
14306721.3 | Oct 2014 | EP | regional |