The present invention is comprised in the technical field corresponding to information encoding and decoding technologies and particularly in the field of massage transmission. More specifically, the invention relates to a device for storing information based on codes with error correction capacity, in which the information stored therein may vary dynamically, according to different physical/chemical parameters.
The invention is applicable in all those sectors where it is necessary to encode information that can vary dynamically (after encoding) for generating variations on the original message which can be identified as information, regardless the conditions in which it transmits the message.
In recent years, the widespread adoption of communication technologies by society has led to an important breakthrough in mobile and sensor-based communications. More specifically, within sensor technologies it is common to use cameras for obtaining information in the form of images and/or video, as well as in the form of systems for viewing or for the computerised analysis of said information, provided under different visual information processing technologies (for example, in the form of matrix codes, 2D codes, text, photography/video analysis, etc.), and this is also currently highly integrated in society.
Within visual analysis technologies, the information in the form of data acquired by sensors (for example, cameras) must be processed by information encoding and decoding systems, wherein a plurality of devices are in charge of reading said encoding automatically. In the specific case of visual codes (for example, barcodes or QR or “Quick Response” codes), the information is encoded with visual patterns typically forming a matrix code. The visual information stored in said matrix code is captured by a camera and then stored in digital storage means, wherein said information corresponds with the reading of the visual information. In this situation, wherein there is no human intervention, it must be ensured that the information that is encoded is consistent with the information that is decoded, without losses being generated or distortion of information. In this context, if the decoding process is altered (for example, if the message has been corrupted), then the information that is decoded will not be truthful or correct.
There are also a number of lines of research that are extensively dedicated to error detection and correction for preserving the integrity of the decoded information and in recent years have provided various technical solutions for assuring the quality of the processed information, even when errors are produced in the visual information (for example, text corrections or corrections of images captured by the cameras). Therefore, in said technologies, decoding processes also capable of correcting the detected errors, re-establishing the information to a recognisable state. As an example, a word with no meaning in a particular text character recognition process can be “translated” to a word with meaning, close to the received word.
In general, visual information correction systems are fundamentally based on the concept of “distance” between the processed information with errors and the corresponding information without errors. Therefore, by means of the mentioned use of distances between information sequences, different protocols for acting on the information analysed by the system, such as detecting the errors occurred (for example, when the distance is greater than or equal to a preestablished threshold value), or correcting the mentioned errors (for example, by correcting the identified errors if the minimum distance is less than said threshold), can be established on a processed code.
In general, the probability of many errors occurring in a given information sequence (or “word”) in a code is much less than the probability of few errors occurring in the same word. This fact is generally used as an argument for using error detection and/or correction (for example, Reed-Solomon algorithms in the case of QR codes) for encoding new information, instead of for correcting the potential errors detected. In processes of this type, a number of documents mostly related to the use of matrix codes in error detection and/or correction systems, such as the patent applications ES 2257480 T3, US 7373581 B2, US 20120188442 A1, US 6685095 B2 or ES 2355423 T3, must be mentioned.
Although the mentioned visual information error correction technologies are generally aimed at replacing said errors with an encoding with meaning, no alternative techniques which provide enhanced information by utilising the presence of said errors in the processed information are known at present in the technical field. In this sense, it is desirable to find new methods for encoding which allow improved messages to be generated with respect to the known alternatives, based on the generation of errors in a controlled and interpretable manner on the encoded visual information. The present invention provides a solution to this need by means of a novel method for visual encoding information, as well as a system implementing said method.
As described in the preceding section, the present invention is mainly based on utilising the information associated with errors dynamically caused on a code, said errors being considered useful information, such that are utilised the capacities for detecting and/or correcting said errors in a code for extending the valid words thereof, for encoding additional information. That is, the invention essentially proposes a method and a system for encoding information, incorporating same on a visual code, and decoding same, wherein instead of using error detection and correction for restoring the message to its original state, it is used at first for extending the set of valid words and thus being able to extend the interpretation of the message according to the errors which have deliberately damaged it. Enhanced information is thereby generated in said message, thereby enhancing the capacities and functionalities of the code used.
In this context, a first aspect of the present invention relates to a device for storing encoded visual information with error detection capacity, comprising at least two physical layers, one of which is permanent or invariable (for example, printed through unalterable (particularly, unerasable) means, such as for example permanent ink) and contains a visual code with error correction capacity, and at least one layer that is variable according to particular physical or chemical conditions and is superimposed on the permanent layer. The device thereby provides enhanced information coming from the decoding the information comprised in the two layers and encoded in a cooperative manner.
In a preferred embodiment of the invention, the static layer of the device can comprise any type of visual encoding registered on means in a permanent manner, such as printed text or QR code, a data matrix code or BIDI code, among others, such that the device is capable of storing information (which may or may not be encrypted) both in the static layer and through the interpretation of the errors generated on the static layer by the dynamic layer or layers.
Likewise, in a second aspect, the present invention relates to a method for manufacturing the mentioned device, and particularly to a method for creating the dynamic layers that are superimposed on the permanent or invariable layers.
A third aspect of the invention further relates to a method for reading or decoding the information contained in the device for storing encoded visual information corresponding to the first aspect of the invention. Said method for decoding can be applied as a rapid information reading/decoding system which is furthermore independent of light conditions, the reading position, etc., capable of revealing the information that may appear dynamically in the device of the first aspect of the invention.
In a fourth aspect, the invention relates to computer programs implementing either the method for creating dynamic layers or else the method for decoding of the second aspect of the invention.
A fifth aspect relates to the system capable of carrying out the method for decoding of the second aspect of the invention.
The preceding aspects of the invention are more specifically summarised in the set of claims attached to the present document.
The methods for encoding and decoding of the invention, as well as the device and system carrying out said methods, represent an improvement with respect to the systems and methods of the state of the art, by using the errors present in a visual code as useful information that can also be generated and encoded for subsequent decoding thereof. In practice, the invention, therefore, provides, among others, the following improvements:
Throughout the present description, there is provided a series of terms which will be interpreted as follows in the scope of the invention:
“Alphabet” is understood to mean a finite set of symbols = {a1, ... , aq} wherein the number q is referred to as “root of
A “word” of length n is understood as a juxtaposition of n symbols: a = ai1ai2 ... ain, aik ∈ The set of all the chains of length n (or “n-chains”) and by the set of all the words that can be formed with the symbols of the alphabet
is referred to as i.e., = ∪n∈ℕ
Given an alphabet with root q, a “q-ary code” on is referred to as a subset, of
The elements of C are called codewords (or datawords) or simply “words”. The “size”, M, of the code indicates the number of elements it contains, M = |C|.
If all the words of the code have fixed length n, C will be referred to as “block code” with parameters (n,M) or C is an “(n,M)-code”. If C is not a block code, then it is a code of variable length.
In the present invention, the term “code” refers to a set C, formed by words of length n, such that from q symbols, it is possible to obtain qn different words. That is, given a code C, the quantity of words the code contains is denoted as M or |C|, and M ≤ qn always.
When establishing communication between an emitter and a receiver, the purpose of any code is to allow the emission and reception of messages. In the context of the invention, the term “message” refers to a set of words of a code.
After emitting a word, it can be said that the word received “contains an error” when it differs by at least one symbol of the emitted word. Therefore, if two codewords differ by a distance d, d errors are needed to convert one to the other. A valid metric for measuring the distance between two words is the so-called “Hamming distance”.
“Error correction” is understood to mean any method capable of converting a sequence of symbols not forming a codeword into the closest codeword. In that sense, “distance” between two words will be understood to mean any metric which allows the differences between two words to be measured. Therefore, the word closest to a word c0 will be that word having the smallest distance to c0.
The “minimum distance” of a code will be the minimum difference between any two words thereof.
The most well-known example of codes that allow error correction are the codes obtained by the simple parity method, whereby an additional bit is added to each group of bits (word), which will be 0 or 1 depending on whether the number of 1 contained in the word is even or uneven. In that sense, it can be said that a code “allows error correction” or that it “has error detection capacity” when it is possible to transform the received word into the correct word of the code with the detection and correction system upon emitting a (valid) word and receiving another different (invalid) word. By way of example, a code Callows k errors to be correct if any two words c1 and c2 having a Hamming distance less than k coincide. In other words, in that case, a code allows k errors to be corrected if and only if the Hamming minimum distance, dm, between any two words therein is at least k+1 (dm2≥ 2k+1). An example code which allows error correction is formed by the Reed-Solomon codes commonly used in QR codes.
The “error generation” or “error injection” concepts will be used to refer to any method by means of which are intentionally added sequences of symbols that do not form a valid word (or equivalently do not belong to the code) of a message. These sequences of symbols do not necessarily have to have a length equal to n.
Particularly, the “dynamic error generation” concept refers to the technique capable of generating errors in controlled or predefined positions under dynamic conditions.
“Error condition” will be understood to mean the interpretation given to an error generated or injected in a particular position, particularly as a result of the occurrence of errors as a result of the changes occurring in a dynamic layer. That is, if any type of change occurs in the dynamic layer (for example, after a reagent reacting upon contact with a chemical compound), then the information that would be detected by the error correction algorithm appears, giving rise to an error condition causing the method for decoding of the invention to activate the reinterpretation of said error.
The graphic depiction of a message can be defined as a “visual code”. If that message is encoded in a code with error correction capacity, it will be referred to as “visual code with error correction capacity”. Examples of visual codes with error correction capacity are barcodes, BIDI codes, a QR code or codes. In the context of the present invention, “visual code”, or where appropriate “visual code with error correction capacity”, will be understood to mean an element or device comprising the graphic depiction of an encoded message, particularly the printed graphic depiction.
A brief description of each of the figures used to complete the following description of the invention is provided below. Said figures expressly relate to preferred embodiments of the invention which are presented as non-limiting examples thereof.
In a first aspect, the present invention relates to a device for storing encoded visual information with error detection capacity, comprising at least two superimposed physical layers:
In this context, the dynamic layers represent an “extended code”, with an extension of the encoded information in the static layer being understood as such, wherein said extended code can be read by corresponding reading means (preferably, computerised optical recognition means for recognising the information present in said layers). Therefore, if the error induced by a change in the dynamic layer causes the word of the code (for example, 01001001110) to become a word that is not in the code (for example, 01001001111), when the error is detected, the word is reinterpreted with two meanings: on one hand, 01001001110 (correction of 01001001111 in the code) will be interpreted. And on the other hand, if 01001001111 belongs to the extended code, it will be interpreted as the word of the extended code or, otherwise, as the word of the extended code that corrects (the closest one) to 01001001111. This extension becomes effective during the method for decoding, which recognises this additional information which is interpreted, therefore enhancing the information that was encoded in the static layer. Therefore, in a preferred embodiment of the invention, the device always comprises a static layer and at least one dynamic layer.
In a preferred embodiment of the invention, at least one of the dynamic layers of information of the device comprises one or more chemical and/or biochemical components, which can modify the optical properties or opacity thereof according to the environmental conditions to which they are subjected and/or to the addition of external reagents. The information provided by the dynamic layer could thereby be read and interpreted by the optical recognition means.
In a more preferred embodiment of the invention, at least one of the dynamic layers of information is formed by enzymes, antibodies or by colorimetric substrates, understanding as such chemical and/or biochemical components selected for the development of colorimetric sensors on paper, in solution or on any polymeric support which allows the viewing or reading of the colorimetric change. As an example of said support, can be considered any analyte used in “screening” type test strips or the analytes used in immunochromatographic strips, particularly peptides or polymers.
In another preferred embodiment of the invention, the information contained in the layers making up the device can be encrypted, in order to ensure that it could only be extracted if there is a corresponding decryption code.
In a second aspect, the present invention relates to a method of manufacturing the device of the invention and its dynamic layers, configured for generating errors on the visual code contained in the static layer, thereby enhancing the information providing the device. In the mentioned method, from a visual code comprising static metainformation (i.e., of the static layer), the method for creating dynamic layers of the invention comprises generating a graphic depiction from what will be referred to as encoding the “erroneous information”, in which an extended code is generated by means of which the error information is associated with a particular meaning, which allows words with errors (defined in the error condition) and the different positions of the visual code in which the material that is dynamically altered should be located to be interpreted.
Preferably, the method for encoding of the invention comprises the following steps (
Each of the steps of the method is described in greater detail below:
In a third aspect, the present invention also relates to a method of decoding information contained in the device of the invention, comprising the identification of words marked with error and their correction, by first using a word of the code and then a word of the extended code. More specifically, said method comprises the following steps:
The method of decoding is fundamentally based on the analysis of the message when said message is read, as well as in the extraction of the words encoding same (see
In a particular embodiment, the algorithm used for error correction is a Reed-Solomon type algorithm. Likewise, in another particular embodiment in which the information contained in the device of the invention is encrypted, the method of decoding also comprises the decryption of that information.
A fourth object of the invention relates to a computer program comprising instructions for carrying out the method for creating dynamic layers of the invention and/or the method for decoding of the invention. Said object can thereby be performed in the form of source code, object code or in an intermediate code between source code and object code, such as in a partially compiled form or in any other form suitable for use in the implementation of the processes according to the invention. Particularly, computer programs also comprise cloud applications implementing the method for creating dynamic layers of the invention and/or the method for decoding of the invention. Said programs can be arranged on or within a support suitable for reading, referred to as “carrier means” or simply, “carrier”. The carrier means can be any entity or device capable of carrying the program. When the program is incorporated in a signal that can be transported directly by a cable or other device or means, the carrier means can consist of said cable or other device or means. As a variant, the carrier means may be an integrated circuit in which the program is included, with the integrated circuit being adapted for executing or for being used in the execution of the corresponding processes.
By way of example, the programs can be incorporated in storage means, such as a ROM memory, a CD ROM memory or a ROM semiconductor memory, a USB memory, or a magnetic recording medium, for example, a floppy disk or a hard disk. Alternatively, the programs could be supported in a transmittable carrier signal. For example, it could be an electrical or optical signal that may be transported through an electric or optical cable, by radio or by any other means.
A fifth aspect of the present invention relates to a system for reading encoded visual information with error detection capacity, which allows the information contained in the devices of the invention, particularly the devices created by superimposing one or more dynamic layers created with the method for creating dynamic layers of the invention on a visual code with error correction capacity, to be decoded, and comprising the means needed for carrying out the method for decoding of the invention.
More specifically, the system of the invention preferably comprises:
Examples of means for capturing images may vary between a digital camera, CCD sensors or infrared code readers. In a preferred embodiment, the system for reading codes of the invention comprises a CCD sensor.
As an example of information processing means, can be used any processor with capacity to execute the program instructions implementing the method for decoding of the invention.
The system can perform processing of decoding without having to exchange information with any other external computational element (such as data servers, for example). However, in other particular embodiments of the invention, the system can also comprise one or more servers and communication means between same. Examples of said communication means are communication devices using WIFI or Bluetooth, or USB connections, among others. In another particular embodiment, the system comprises a communication antenna that allows access to other computing environments (networks) through research or commercial protocols for data exchange in communication networks, including the Internet.
Lastly, in another optional embodiment, the system further comprises data output means on which information can be shown, such as a display, for example.
Another object of the invention relates to computer-readable storage means, comprising program instructions capable of causing a computer to carry out the method for creating dynamic layers of the invention and/or the method for decoding of the invention.
Lastly, a final object of the invention relates to transmittable signals comprising program instructions capable of causing a computer to carry out the method for creating dynamic layers of the invention and/or the method for decoding of the invention.
According to the objects of the invention described above, several examples of applying said objects are described below:
In this case, a QR code printed on a test strip is used, with some biochemically modified bits with the anti-hCG monoclonal and polyclonal antibodies, together with the colorimetric indicator and produced by a sandwich type assay, an agglutination inhibition assay or a lateral flow immunoassay. If the immunological reaction occurs, the test is positive and there is a colour code to inform the person of the result.
Number | Date | Country | Kind |
---|---|---|---|
P201931128 | Dec 2019 | ES | national |
Filing Document | Filing Date | Country | Kind |
---|---|---|---|
PCT/ES2020/070800 | 12/17/2020 | WO |