A barcode is an optical machine-readable representation of data. A two-dimensional (2D) barcode (e.g., Data Matrix or QR Code), is a two-dimensional way to represent information in a bar code. Black and white 2D barcodes can represent more data per unit area than one-dimensional (i.e., linear) barcodes (e.g., Code 39 or Code 128). Barcodes have many uses, including documenting inventory, tracking deliveries, matching a product against a pricing file, and providing information to the user. For some systems, data recovery from barcodes may be system critical. Many 2D barcode technologies provide robust error correction capabilities, and typically, using multiple linked barcodes or larger sized barcodes may increase data recovery capabilities. However, space available for barcodes may be limited in many aspects. Moreover, the current barcode technology may be improved upon as presently disclosed.
The present disclosure provides a new and innovative system, methods and apparatus for providing and reading 2D barcodes that include dynamic environmental data, where modules of the barcode may continuously (as contrasted with step-wise) change color state in response to environmental conditions. In an exemplary aspect of the present disclosure, a sensor-augmented two-dimensional barcode includes a substrate, a first layer provided on the substrate, and a second layer provided on the substrate. The first layer includes a sensor dye region, which includes a sensor dye having a chemistry that is configured, responsive to the occurrence of an environmental condition, to undergo a continuous chemical or physical state change between an initial state and an end state, causing a change in the color state of the sensor dye. The color state indicates exposure to the environmental condition. The second layer includes a two-dimensional error-correcting barcode symbol, which includes a plurality of modules in a permanent color state. The modules are optionally square, rectangular, or circular.
In accordance with another exemplary aspect of the present disclosure, an article of manufacture includes pharmaceutical, biological, food product, chemotherapeutic or vaccine; a container holding said pharmaceutical, biological, food product, chemotherapeutic or vaccine product; and a sensor-augmented two-dimensional barcode symbol provided on or in the container, preferably being applied to the outside surface of the container.
In accordance with another exemplary aspect of the present disclosure, a method of reading of a sensor-augmented two-dimensional barcode symbol includes optically scanning an image of the sensor-augmented two-dimensional barcode symbol to obtain color values for pixels in the image. Then, a scanned pixel map containing the color values in the sensor-augmented two-dimensional barcode symbol is constructed, and the pixels in the scanned pixel map are processed to assign a binary color value to each pixel and to form a binarised pixel map. The two-dimensional barcode symbol is identified and decoded in the binarised pixel map to recover a symbol codeword sequence. Next, underlying data codewords are recovered from the symbol codeword sequence, preferably by utilizing error correction process on the symbol codeword sequence. The data codewords are processed for identification of barcode modules in a sensor dye region, and an average color value of the barcode modules in the sensor dye region is determined. The average color value of the sensor dye region is processed to determine a reflectance percentage of incident light at a time of scanning.
In accordance with another exemplary aspect of the present disclosure, a method of reading of a sensor-augmented two-dimensional barcode symbol includes a sensor-augmented two-dimensional barcode symbol includes optically scanning an image of the sensor-augmented two-dimensional barcode symbol to obtain a greyscale value for each pixel in the image. Then, a greyscale pixel map of the pixels in the sensor-augmented two-dimensional barcode symbol is constructed. Next, the method includes processing the pixels in the greyscale pixel map to assign a binary color value to each pixel and to form a binarised pixel map. Additionally, identifying the two-dimensional barcode symbol in the binarised pixel map is identified and decoded to recover a symbol codeword sequence. Then, underlying data codewords from the symbol codeword sequence are recovered utilizing an error-correction process on the symbol codewords. The data codewords are processed for identification of the barcode modules in a sensor dye region. Then, an average greyscale value of the barcode modules in the senor dye region is determined, and the average greyscale values of the sensor dye region are processed to determine a reflectance percentage of incident light at a time of scanning.
Additional features and advantages of the disclosed system, method, and apparatus are described in, and will be apparent from, the following Detailed Description and the Figures.
Prior approaches have been with one-dimensional (linear or 1D) barcodes that either become unreadable or change with stimuli. Noteworthy, are the FreshCode smart barcode labels supplied by Varcode Ltd. See: http://www.varcode.com/portfolio_item/freshcode/).
There have been a plurality of 1D barcode patent applications including Nemet et al., US20140252096 A1. While combining environmental measurements into data value of 1D barcodes has been generally described, the techniques applicable to 1D barcodes do not appear to be applicable to two-dimensional (2D) barcodes with environmental monitoring.
The area taken by 1D barcodes limit their practicality in applications were space is critical, e.g., unit of use applications, vials, etc. Two-dimensional barcodes with high density encoding technologies, for example Data Matrix, could have an encoded area approximately 30 times or more smaller in practice than a 1D barcode representing the same data.
Prior applications involving 2D barcodes have not addressed environmental monitoring and focus on high density of information stored that is static and not sensitive to environmental factors such as temperature, time, time-temperature product, freezing, nuclear radiation, toxic chemicals, or the like.
Some solutions have addressed having two sets of data, primary/secondary or covert/overt data, whereby the second set of information is stored into the redundant space of the barcode and can be read with a conventional reader or independently using a second reader or other decrypting methods. While these solutions including the secondary/covert data have addressed matters such as security and authenticity, none have addressed environmental monitoring where data is dynamic. A pending US Patent Application by Porter et al. US 20130015236 A1 High-value document authentication system and method and references contained therein describe primary and secondary information sets and the application to document authentication.
Other solutions have addressed multiple sets of data, primary/secondary/tertiary etc., whereby different data sets (secondary, tertiary, etc.) are progressively stored over the prior set. Multiple information sets are incrementally added, for example, by printing over the prior set with different color modules and then decrypting the data utilizing readers configured to interpret various color modules. See for example Simske et al., US20140339312 A1. These solutions are progressively introducing static data one layer at a time and address matters pertaining to tracking, tracing, inspection, quality assurance and not dynamic environmental data.
Some example embodiments described in this disclosure provide a unique way of combining preprinted data together with coded sensor information in a two-dimensional barcode on a media. The preprinted data and coded sensor information may be combined in a single step, or the coded sensor information may be added dynamically to the preprinted data in a secondary step depending on the actual planned sensor usage.
A sensor dye chemistry may be employed where the sensed property is an environmental, physical, or biological property. A specified condition of the sensed property causes activation of a chemical or physical state change resulting in a change in the color state of the sensor dye. The change in the color state results in sensor digital information being revealed in the pattern of sensor dye modules within the sensor-augmented two-dimensional barcode. Sensor digital information is recovered when the barcode is read using an extension of the standard reading and error correction algorithms for the two-dimensional barcode symbology in use.
In another example, the sensor dye may have a chemistry that is configured to undergo a continuous chemical or physical state change. For example, the sensor dye may continuously change between an initial state and an end state causing a change in the color state of the sensor dye. In an example, the sensor dye may have a chemical composition that continuously changes color based on exposure to both time and temperature (e.g., the current color state of the sensor dye patch is a result of the cumulative exposure to environmental conditions). For example, for a product that spoils rapidly at temperatures above 15° C., the sensor dye patch color change may indicate a short exposure to such a temperature even if the product is currently at a temperature well below 15° C. Due to the cumulative nature of the sensor dye chemistry, the sensor dye continuously changes color from an initial state to an end state such that product properties, such as remaining product life, can be obtained at any point in the supply chain.
Examples of environmental sensors include temperature monitors, measuring either cumulative heat exposure or passing beyond a set high or low temperature threshold value(s); time, time-temperature product, nuclear radiation exposure monitors; gas or humidity exposure monitors each passing above a cumulative exposure threshold or an instantaneous threshold value. Examples of medical sensors include recording patient thermometers; assays measuring levels to biological toxins such as aflatoxin or botulism toxin; and includes colorimetric immunoassays for sensing of the presence of biological agents such as prions or biological organisms such as infectious bacteria.
Block diagrams of an example data structure 100 of a two dimensional (2D) barcode, an example data structure of the encoded data of a 2D barcode, an example data structure of the content data of a 2D barcode, and an example data structure of the reference data of a 2D barcode are shown in
Example 2D barcodes are shown in
A representation of a 2D barcode 156 is shown in
Some examples described herein employ Data Matrix, although it will be appreciated that similar approaches may be employed with other two dimensional bar codes schemes by varying the approach to conform with the applicable 2D barcode standard. Data Matrix is a two-dimensional error-correcting barcode symbol formed in compliance with ISO/IEC 16022 Information technology—automatic identification and data capture techniques Data Matrix barcode symbology specification. The ECC 200 Data Matrix symbology utilizes Reed-Solomon error correction to recover the encoded data from symbols which have suffered a limited amount of accidental damage or deliberate alternation. All Data Matrix referred to herein are of the ECC 200 symbol type, and may be either square or rectangular in shape, and are identified by the number of rows and columns respectively.
Data is encoded in a Data Matrix as a sequence of 8-bit codewords, or symbol character values. Codewords may either contain data or Reed-Solomon error correction (RSEC) check character values. It will be appreciated that the general approach described herein may use other codeword sizes, other data layouts, and other forms of error correcting codes, and that this common Data Matrix is only described as an example.
Each module is a visual cell in matrix comprising the Data Matrix symbol that is used to encode one bit of data. Each module is colored either nominally black or nominally white. The module matrix is the visual manifestation of the binary bitmap matrix contained with the area of the symbol bounded by the Finder Pattern. The Finder Pattern may be an ‘L’ formed by connected solid lines along two edges of the symbol module matrix, with an alternating pattern of white and black modules along the opposite edges of the symbol. See
The detailed structure of the 12×12 module matrix 330 of the 14×14 Data Matrix 320 is shown as the bitmap matrix 200 in
A “utah” is an arrangement of 8 modules to encode 1 codeword. It may be arranged either as a single connected group with a pattern frequently in the shape of the State of Utah, or formed as two subgroups of connected modules split across two patterns. The contiguous utah 270 encoding codeword 9 shows the typical arrangement of bits within a contiguous utah. Conversely, the utah for codeword 4 consists of two smaller subgroups: Subgroup 272a at the top of the bitmap matrix 200 encoding bits 4.3 through 4.8, and subgroup 272b at the bottom of the bitmap matrix encoding bits 4.1 and 4.2.
The general layout of codeword utah placement within a 10×10 Data Matrix bitmap matrix 300 is shown in
All bits of utah 2
Utah 3 bits 3.6-3.8
Utah 4 bits 4.3-4.8
All bits of utahs 5 and 6
These bit positions in identical positions relative to the upper left-hand corner (ULC) of the Data Matrix symbol. In accordance with ISO/IEC 16022 standard Annex F.3, all square Data Matrix symbols up to size 26×26 and all rectangular Data Matrix symbols, these bit positions are invariant in their placement relative to the ULC of each Data Matrix symbol. These bit positions define an “invariant bitmap” for Data Matrix symbols. It will be appreciated that other barcode standards may have different invariant bitmaps. In
The example process 400 may begin with determining a set of payload data 112 which includes a set of static data 134 and a set of dynamic data 136 (block 402). For example, the set of static data 134 may include a serial number, a lot number, a batch number, and a threshold exposure temperature for a product (e.g., 30° C.). Additionally, the set of dynamic data 136 may include information that when decoded by a reader informs a user whether the product exceeded the threshold exposure temperature. Next, a 2D barcode which includes an encoded version of the set of static data is generated, and the 2D barcode includes redundant space (block 404). In an example embodiment, the redundant space may include a plurality of unused bits, a padding region, and/or error detection and correction region (e.g., remainder space 118). Additionally, the redundant space may include a format information region, a version information region, and/or a reference data region. Furthermore, the redundant space may include all of the remainder space and/or all of the plurality of unused bits. Additionally, the redundant space may include a portion of the padding data, or may include all of the padding data. The redundant space may also include a portion of the content data, a portion of the reference data, or a combination of various portions and/or all of data included in the content data and the reference data. Next, at least part of the redundant space is designated as a dynamic region which is adapted to store the set of dynamic data 136 (block 406). Next, the 2D barcode is printed using a static ink and an encoded version of the set of the dynamic data on the dynamic region using a dynamic ink which changes states responsive to at least one environmental change, such that the set of dynamic data 136 is in one of a plurality of states (block 408). In an example embodiment, the set of dynamic data 136 is readable by a reader of the 2D barcode and the set of static data 134 is readable by the reader of the 2D barcode when the set of dynamic data 136 is in each one of the plurality of states. In an example embodiment, the dynamic ink may be sensitive to an environmental factor such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of such factors, or the like. In an example embodiment, the ink may be a thermochromic ink. For example, the dynamic ink may be a water-based irreversible thermochromic ink designed to change permanently from white to black at 40° C. Additionally, the thermochromic ink may be reversible. For example, the reversible thermochromic ink may be a liquid crystal ink or a leuco dye ink (examples include QCR Solutions Reversible Thermochromic Inks and H.W. Sands Corporation inks). In an example embodiment, the ink may be a photochromic ink which may be either reversible or irreversible. For example, the dynamic ink may change states based upon exposure to UV light. Additionally, the ink may be an ink sensitive to time and temperature (an example includes the OnVu indicator). The dynamic ink may change from a darker color to a lighter color, a lighter color to a darker color, may change levels of transparency or opacity, and/or may change levels of reflectivity or absorptivity, or may change any other suitable characteristic allowing the barcode to be readable in one or more states by a reader. Additionally, the dynamic ink may continuously change between a range of an initial color state to an end color state. For example, a dynamic ink may change from a lighter color to a dark blue, which may be alternatively transformed by a reader to values on continuous “greyscale”. Said greyscale (which is not necessary truly grey but is a continuous tone of some hue) is determined reducing the R, G and B values of each pixel to a single greyscale value by a formula of form:
Greyscale value=(aR+bG+cB)/K
Where {a, b, c} represent the relative contribution of each sRGB color in the pixel, and K is scaling factor. Additionally, a dynamic ink or sensor dye patch may continuously change from a white or clear color to a dark red or blue (e.g., changing from white, to a faint red, become less and less opaque until it reaches a solid red color at the end color state). Moreover, any suitable combination of colors may be used for the states of one or more dynamic inks.
In an example embodiment, the dynamic ink may permanently change or irreversibly change in response to an environmental factor. For example, a certain drug may experience chemical decomposition when it is exposed to a certain temperature. A supplier may want to know if the drug ever reached a temperature above 30° C. threshold during transportation and storage. If the dynamic ink irreversibly changes, the set of dynamic data 136 may be decoded to inform the supplier that the chemical was exposed to a temperature above 30° C. and that the contents of the container may have experienced thermal degradation. Providing a 2D barcode with the set of dynamic data 136 in the redundant space advantageously allows an individual to use a reader to read the 2D barcode both before the dynamic ink has activated and after the dynamic ink has activated from the set of dynamic data 136 in a first state to represent a set of dynamic data 136 in a second state. For example, the original 2D barcode is still readable and allows a reader to obtain the set of static data 134, such as serial number, lot number, and batch number even after the set of dynamic data 136 is in a second state, this advantageously allows both the set of static data 134 and the set of dynamic data 136 to be printed on the same 2D barcode without losing the static data 134 upon the set of dynamic data 136 changing from the first state to the second state.
In another example embodiment, the dynamic ink may continuously change in response to an environmental factor. For example, the sensor dye may change colors responsive to the occurrence of an environmental condition, such as time, temperature, or time-temperature product. For example, it may be advantageous for a product user to know the remaining product life instead of just whether or not the product has already expired. For example, products closer to expiration may have their product life extended if kept at a lower condition or by reducing exposure to a specific environmental condition. Additionally, consumption or use of products that are near expiration may be prioritized, thereby advantageously reducing waste. By having a sensor dye that continuously changes color, product life can be determined throughout the products lifetime and throughout the supply chain.
A sensor dye chemistry is utilized to detect the change in condition of a sensed environmental or medical property. Since Data Matrix modules are nominally either black or white, 6 types of sensor dye chemistries may be utilized as shown in Table 1. Here “B” refers to black color state; “W” refers to white color state; and “X” refers to the dye being in a transparent color state.
It is assumed that black and white dye color states are opaque and thus hide the underlying color when in either the black or white state. However, when a dye is in the transparent color state (X), the underlying color is now visible.
Since sensor dye module patterns can be either overprinted on either black or white modules of the Data Matrix symbol, or printed in place of Data Matrix modules, the color state of the sensor dye modules in the Data Matrix symbol changes upon sensor dye chemistry activation. Different sensor dye chemistry systems have different properties with respect to encoding sensor data.
The sensor dye systems which go from the colored to transparent state are typically used with an underlying bit pattern that is printed in the Data Matrix, and all of the bits in that pattern are covered with sensor dye creating a uniform black or white color state covering those modules until activated. Once activated, the sensor dye turns transparent and the underlying bit pattern in the Data Matrix barcode is visible. Alternately dye systems which go from transparent color state to a black or white color state may selectively cover modules of a uniform black or white pattern printed in the Data Matrix symbol, and upon activation, the data encoded in the sensor dye module pattern is now visible. This latter system has the advantage that the sensor dye encoded data may be determined at the time of printing of the sensor dye modules which may be at a different time and location than the pre-printing of the Data Matrix symbol.
In the example, the sensor dye chemistry in use can be accurately printed on a module by module basis over a preprinted Data Matrix module, or printed in place of Data Matrix module. For example, this may be done on a multi-station printing press. Another method of doing this is on-demand through the use of a 2-channel piezoelectric inkjet printer, where one channel contains black ink for printing the Data Matrix and the other channel contains sensor dye to be printed either on top of or in place of Data Matrix modules. The final Data Matrix symbol, augmented by the addition of sensor modules, is one example of a “sensor-augmented two-dimensional barcode symbol”.
If a 2-channel inkjet printer is used, then the sensor dye chemistry in use should be known at the time of printing, especially if sensor modules are printed in place of normally-printed Data Matrix symbol modules.
In the case of overprinted sensor modules where the sensor dye chemistry is known at the time of printing the underlying Data Matrix, it is possible to encode indicator bits itself which specify the dye system in use. Indicator bits in the underlying Data Matrix are over printed with sensor dye modules. Use of these indicator bits will enable the Data Matrix reader to know what dye system is in use and its activation state and thus how to interpret a scanned Data Matrix symbol.
Note that in Table 2, 0=white and 1=black for each indicator bit. Only the 4 most common dye chemistries, where one of the states is transparent and the other is either black or white, are coded by the indicator bits.
The value of the printed indicator bits may be recovered from the scanned image regardless of whether it is before or after sensor activation, and may be compared with the indicator bits read from the underlying Data Matrix. Then both the dye system and activation state are determined according to Table 3.
The colors values of sensor dye modules themselves may be used to encode sensor data which either only becomes visible or changes due to module color state change upon sensor dye activation.
encoding this sensor data itself in an error correcting code is useful when the sensor color change activation threshold is not precise for each sensor dye module; where the entire sensor-augmented two-dimensional barcode may not have been exposed uniformly to the condition activating each sensor dye module; or when sensor modules may be missing or damaged.
Here it is assumed that the sensor module colors may be binarised to 0 or 1. For, example 5 bits of sensor module color data may encode two useful pieces of data: The sensor product type and the activation condition. The associated parameters may encoded using internal tables indexed by the 5-bit data value.
Many types of error correcting codes may be used to encode sensor digital information. Typically encoded is a sensor dye bit pattern of binary-encoded sensor data. Useful error correcting codes include Hamming Codes, Bose-Chaudhuri-Hocquenghem Codes, Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes.
As an example, Bose-Chaudhuri-Hocquenghem BCH (n,k,t) binary error correcting codes are well known for encoding a string of binary data; here a string of k bits are within an n-bit length code with T error correction bits. Up to (t div 2) bits may be error corrected. For example, the QR Code and Ultracode 2-dimensional barcode symbologies use a BCH(15,5,7) code which can encode k=5 bits in n=15 bits and correct up to (7 div 2)=3 bit errors. There are standard decoding and error correction techniques for decoding and error correcting these codes. Table C.1 in Annex C of ISO/IEC 18004 Information technology—Automatic identification and data capture techniques QR Code 2005 barcode symbology specification gives the complete 15 bit code sequences for data values 0, 1 . . . 31. ISO/IEC 18004 Table C.1 is summarized in Table 4. Data Values 0 and 31 are reserved and not to be encoded, as they represent unactivated dye module states: Data value 0 (all BCH bits=0) for W→X and W→B Sensor dye chemistries; data value 31 (all BCH bits=1) for B→X and B→W sensor dye chemistries.
Recovery of the sensor bit data when BCH(15,5,7) is encoded in a Data Matrix symbol (whether the sensor bits have been activated or not) may be done by first recovering the sensor digital information from scanning and decoding on the sensor-augmented two-dimensional barcode symbol. From the particular sensor dye module pattern, extract the 15-bit BCH-encoded binary number. Note that there are many standard methods for decoding and error-correcting BCH encoded data. The classic Peterson-Gorenstein Zierler Decoder is discussed in R. E. Blahut, “Theory and Practice of Error Control Codes (corr. edition)”, 1983 (ISBN-10: 0-201-10102-5), p. 166. A useful and practical algorithm for a BCH(15,5,7) decoding is given by S. A Vanstone and P. C. van Oorschot, “An Introduction to Error Correcting Codes with Applications”, 1989 (ISBN-10: 0-7923-9017-2), p. 219. Using any method for decoding and error-correcting BCH(15,5,7) encoded data, extract the 5-bit sensor data.
Other types of sensor digital information may be encoded in the sensor dye module pattern. This includes visual patterns and images of any type, such as ISO or ANSI or ISO warning signs and symbols, or any other type of designed graphic. The number of bits which are encoded and the number of utahs deliberately damaged in the process (which is affected by the physical extent of the visual pattern on the underlying Data Matrix symbol) as well as the size of the underlying Data Matrix and its available number of RSEC codewords all affect the visual pattern and image encoding capability.
Sensor dye module patterns may also be encoded after the underlying Data Matrix symbol has been preprinted. This allows different technologies to be used for printing the underlying Data Matrix and later printing the sensor dye module pattern. This also allows different kinds of sensor dye chemistries to be used on a previously printed Data Matrix without that sensor dye chemistry being known at the time that the underlying Data Matrix itself was printed.
In an example embodiment, a non-privileged reader may be capable of reading the static data 134 and may not be capable of reading the dynamic data 136 of the 2D barcode. In another example embodiment, only privileged readers may be capable of reading the static data 134 and the dynamic data 136 of the 2D barcode. In some cases, having dynamic data 136 on a barcode that cannot be read by non-privileged readers may advantageously allow a manufacturer or supplier to include information on a 2D barcode that they may not want to provide to the public or a customer. Additionally, having a privileged reader that may read both the static data 134 and the dynamic data 136 advantageously allows an individual using the privileged reader to obtain both the static data 134 and the dynamic data 136 without having to use multiple readers.
The example process 420 may begin with determining a set of static data 134 (block 422). For example, the set of static data 134 may be a serial number, a batch number, and/or a lot number, etc. Next, a set of dynamic data 136 is determined (block 424). In an example embodiment, the set of dynamic data 136 may have a first state 210 and a second state 212. For example, dynamic data 136 in a first state may be unexposed to UV light while the dynamic data 136 in a second state may be exposed to UV light. Additionally, dynamic data 136 in a first state may be a temperature less than 30° C. while the dynamic data 136 in a second state may be a temperature greater than 30° C. Then, a first 2D barcode is generated (block 426). For example, a computer may generate the first 2D barcode based on inputs of the set of static data 134 and the set of dynamic data 136 in the first state 210. In an example embodiment, the first 2D barcode may include an encoded version of the set of static data and the encoded version of the set of dynamic data 196 in the first state 210. Additionally, the set of static data 134 and the set of dynamic data 136 in the first state 210 may include a first plurality of information modules 218 and a second plurality of information modules 220. For example, the first plurality of information modules 218 may be black modules and the second plurality of information modules 220 may be white information modules. Then, a second 2D barcode is generated (block 428). For example, a computer may generate the second 2D barcode based on inputs of the set of static data 134 and the set of dynamic data 136 in the second state 212. In an example embodiment, the second 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the second state 212. Additionally, the set of static data 134 and the set of dynamic data 136 in the second state 212 may include a third plurality of information modules 224 and a fourth plurality of information modules 226. For example, the third plurality of information modules 224 may be black modules and the fourth plurality of information modules 226 may be white information modules. It should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 may be white while the second plurality of information modules 220 and the fourth plurality of information modules 226 may be black. Furthermore, it should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 and/or the second plurality of information modules 220 and the fourth plurality of information modules 226 may be various colors, levels of transparency, and/or levels of reflectivity, or may have any other suitable characteristic allowing the 2D barcode to be readable by a reader. In an example embodiment, the third plurality of information modules 224 may include all of the first plurality of information modules 218 plus a set of one or more information modules 228. Additionally, the second plurality of information modules 220 may include all of the fourth plurality of information modules 226 plus the set of one ore more information modules 228. Then, compare the first 2D barcode and the second 2D barcode (block 430). For example, the first 2D barcode and the second 2D barcode may include binary data having values of zero (0) or one (1), which may correspond to each information module being colored white for a binary value of zero (0) and black for a binary value of one (1). Then, categorize the information modules 214 into a first group 230 and a second group 232 (block 432). In an example embodiment, the first group 230 may include common information modules between the first plurality of information modules 218 of the first 2D barcode and the third plurality of information modules 224 of the second 2D barcode. Additionally, the second group 232 may include unique information modules of the third plurality of information modules 224 of the second 2D barcode. For example, a computer may categorize all the black information modules that are common to the first 2D barcode and the second 2D barcode into the first group 230. Additionally, the computer may categorize all the black information modules that are unique to the second 2D barcode (i.e., the information modules that were white in the first 2D barcode and are black in the second 2D barcode) into the second group 232. Then, print the 2D barcode using a static ink 194 and a dynamic ink 198 (block 434). In an example embodiment, the first group 230 may be printed in the static ink 194, and the second group 232 may be printed in the dynamic ink 198. Additionally, the dynamic ink 198 may be adapted to activate in response to the occurrence of a specific environmental factor. In an example embodiment, the dynamic ink 198 may be sensitive to an environmental factor such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of such factors, or the like.
In an example embodiment, the first plurality of information modules 218 and the third plurality of information modules 224 may be adapted to be visually distinguishable from a printing surface 234 and the third plurality of information modules 224 and the fourth plurality of information modules 226 may be visually indistinguishable from the printing surface 234. It should be appreciated that various printing techniques may be used that involve printing with ink, dye, paint, and/or any other suitable material, or the like. Additionally, various other techniques may be used to change the visual appearance of the printing surface 234 of the 2D barcode such as etching, burning, melting, removing material, and/or any other process adapted to print a 2D barcode. For example, a printing surface 234 may include a white substrate covered with a black top layer which is etched away to reveal the white substrate underneath. Additionally, a printing surface 234 may include a blue substrate covered with a yellow top layer, along with various other color combinations.
The example process 440 may begin with determining a set of static data 134 (block 442). For example, the set of static data 134 may be a serial number, a batch number, and/or a lot number, etc. Next, a set of dynamic data 136 is determined (block 444). In an example embodiment, the set of dynamic data 136 may have a first state 210 and a second state 212. The set of dynamic data 136 may have more than two states. For example, the set of dynamic data 136 may have a first state 210, a second state 212 (e.g., activated by going above 25° C.), and a third state (e.g., activated by going above 40° C.). Then, a first 2D barcode is generated (block 446). For example, a computer may generate the first 2D barcode based on inputs of the set of static data 134 and the set of dynamic data 136 in the first state 210. In an example embodiment, the first 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the first state 210. Additionally, the set of static data 134 and the set of dynamic data 136 in the first state 210 may include a first plurality of information modules 218 and a second plurality of information modules 220. For example, the first plurality of information modules 218 may be black modules and the second plurality of information modules 220 may be white information modules. Then, a second 2D barcode is generated (block 448). For example, a computer may generate the second 2D barcode based on inputs of the set of static data 134 and set of dynamic data 136 in the second state 212. In an example embodiment, the second 2D barcode may include an encoded version of the set of static data and an encoded version of the set of dynamic data 196 in the second state 212. Additionally, the set of static data 134 and the set of dynamic data 136 in the second state 212 may include a third plurality of information modules 224 and a fourth plurality of information modules 226. For example, the third plurality of information modules 224 may be black modules and the fourth plurality of information modules 226 may be white information modules. It should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 may be white while the second plurality of information modules 220 and the fourth plurality of information modules 226 may be black. Furthermore, it should be appreciated that the first plurality of information modules 218 and the third plurality of information modules 224 and/or the second plurality of information modules 220 and the fourth plurality of information modules 226 may be various colors, levels of transparency or opacity, and/or levels of reflectivity or absorptivity, or may have any other suitable characteristic allowing the barcode to be readable by a reader. Then, the first 2D barcode is compared to the second 2D barcode (block 450). For example, the first 2D barcode and the second 2D barcode may include binary data having values of zero (0) or one (1), which may correspond to each information module being colored white for a binary value of zero (0) and black for a binary value of one (1). Then, the information modules are categorized into a first group 230, a second group 232, and a third group (block 452). In an example embodiment, the first group 230 may include common information modules between the first plurality of information modules 218 of the first 2D barcode and the third plurality of information modules 224 of the second 2D barcode. Additionally, the second group 232 may include unique information modules of the third plurality of information modules 224 of the second 2D barcode. In an example embodiment, the third group may include unique information modules of the first plurality of information modules 218 of the first 2D barcode. For example, a computer may categorize all the black information modules that are common to the first 2D barcode and the second 2D barcode into the first group 230. Additionally, the computer may categorize all the black information modules that are unique to the first 2D barcode into a third group (i.e. the information modules that are black in the first 2D barcode, but white in the second 2D barcode). Also, the computer may categorize all the black information modules that are unique to the second 2D barcode into a second group 232 (i.e., the information modules that were white in the first 2D barcode, but are black in the second 2D barcode). Then, the 2D barcode is printed using a static ink 194, a first dynamic ink, and a second dynamic ink (block 454). In an example embodiment, the first group 230 may be printed in the static ink 194. Additionally, the second group 232 may be printed in the first dynamic ink. The first dynamic ink may be adapted to activate in response to the occurrence of a specific environmental factor. Furthermore, the third group may be printed in a second dynamic ink, and the second dynamic ink may be adapted to activate in response to the occurrence of the specific environmental factor. For example, the first dynamic ink may be printed in white and active to black upon reaching 30° C. and the second dynamic ink may be printed in black and activate to white upon reaching 30° C. It should be appreciated that the first and second dynamic ink may be printed in several color combinations. In an example embodiment, the first dynamic ink and the second dynamic ink may be sensitive to an environmental factor such as temperature, time, time and temperature, freezing, radiation, toxic chemicals, or a combination of such factors, or the like. Additionally, in an example embodiment, the first dynamic ink and the second dynamic ink may activate simultaneously. For example, the first dynamic ink and the second dynamic ink may both activate 72 hours after printing such that the first dynamic ink changes from white to black and the second dynamic ink simultaneously changes from black to white. Additionally, the first dynamic ink and the second dynamic ink may both simultaneously activate after a temperature threshold is met (e.g., precision within 0.1° C. temperature range). Having the first dynamic ink and second dynamic ink active simultaneously advantageously allows the 2D barcode to be readable at all times because the 2D barcode will either be in a first state (i.e., the first 2D barcode) or a second state (i.e., the second 2D barcode).
In an example, modules of the barcode may continuously (as contrasted with step-wise) change color state in response to environmental conditions. For example, a sensor-augmented two-dimensional barcode includes a substrate with two overlayers, a first layer and a second layer (e.g., sensor layer and barcode layer). The sensor layer and the barcode layers may be printed in either order on top of the other on the substrate, so that either the sensor layer or the barcode layer may be the first layer printed on the substrate, the other being the second (top) layer. In the barcode layer, a two-dimensional error-correcting barcode symbol may be provided provided in a permanent light (nominally “white”) or dark (nominally “black”) color state. The barcode further includes a plurality of white and black modules, the modules optionally being square, rectangular, or circular. The sensor layer comprises a sensor dye may have a chemistry that is predictably responsive to a specified environmental condition, undergoing continuous chemical or physical state change between an initial state and an end state, causing a continuous color change in the color state of the sensor dye. The sensor layer may optionally include one or more color calibration patches of known reflectivity to be used in autocalibration of the barcode scanner at the reading color of interest. The calibration patches may be preprinted as part of the sensor layer and may appear either adjacent to or at specific module positions within the sensor-augmented two-dimensional barcode.
As described above, both the sensory dye patch and the barcode may be provided on the substrate. Depending on the order of printing, all or part of a layer may be provided on a substrate without being in contact with the substrate. For example, if a sensor dye patch is overprinted onto a barcode, portions of the sensor dye patch may not be in direct contact with the substrate. A sensor dye patch may be printed on a substrate and a GS1 Data Matrix barcode may be overprinted on the sensor dye patch. Additionally, a GS1 Data Matrix barcode may be printed on the substrate and the sensor dye patch may be printed over the barcode. As illustrated in
The time-temperature indicator (TTI) may be scanned at any point in the supply chain (e.g., using a smartphone carrying a TTI reader App, or other special barcode reader) to ensure that the TTI labeled product has not yet expired. Once the 2D barcode is scanned, and the reflectivity percentage of the sensor dye modules determined, the barcode reader device may determine the remaining labeled product life, expended product life, or an expected expiration date. For example, given the remaining product life and the current temperature, the barcode reader may estimate the expiration date of the product if continuously stored at the reference temperature, and additionally if stored at another lower temperature.
An example method of reading of a sensor-augmented two-dimensional barcode symbol includes scanning and optically processing an image of the sensor-augmented two-dimensional barcode symbol using a barcode imager or color camera using a pixel color identification system such as preferably sRGB, including construction of a scanned pixel map containing the preferably sRGB color value of the pixels in the scanned modules of the sensor-augmented two-dimensional barcode symbol. The sRGB value of the pixels in the scanned modules contain color contributions from both the barcode layer and the underlying or overprinted sensor layer.
Optionally, the scanning process may include reading of one or more preprinted color calibration patches containing adjacent to or within the sensor-augmented two-dimensional barcode symbol as part of the scanned pixel map. Optionally, these calibration patches may be preprinted as part of the sensor layer and may appear either adjacent to or at specific module positions within the sensor-augmented two-dimensional barcode.
The pixels of the modules in the scanned pixel map are then processed using thresholding algorithm and/or voting algorithms to assigned a binary color value to each pixel, to form an equal-sized binarised pixel map. The 2D barcode symbol may be identified from other graphical objects in the binarised pixel map and then identified 2D barcode may be decoded to construct a symbol codeword sequence from the binarised pixel map. In an example, the color value assignment may utilize the IEC 61966-2-1:1999 standard RGB color space (sRGB).
Then, underlying data codewords may be recovered from the symbol codeword sequence, preferably by utilizing error correction process on the symbol codeword sequence. In an example, the error correction process is Reed-Solomon Error Correction.
Processing the data codewords then determines the location, size, and product life equation parameters of the sensor dye region, and additionally whether calibration patches are present, and if so their relative location and their reference reflectance value. The data codewords are processed for identification of the pixels of the barcode modules in the sensor dye region, and the average sRGB color is determined. Additionally, processing the sRGB color information may optionally include all or some of the steps of: capturing the incident light reflectance of pixels included in the sensor dye region, including both environmentally-sensitive pixels and color calibration patches; creating a colored digital light filter effect on reflectance data from the pixels to generate filtered colored image sRGB values; reducing the filtered colored image values to greyscale values and creating a greyscale pixel map; correcting the relationship between greyscale and reflection percentage based on the color calibration patch values; and determining a reflectance percentage of the incident light at the scanning sample time. As used herein, a pixel map may be a map of binary bits (e.g., a bitmap), ternary bits, etc. For example a pixel map may include greyscale values or RGB color values.
In order to obtain the product life data an image sensor such as a smartphone carrying a TTI App reader, may be used to scan the 2D barcode with the embedded sensor dye patch 3210. For example, the image may be captured from an image sensor, such as the smartphone camera, using a flash such as a smartphone white flash. The nominally white flash intensity may overwhelm the ambient light and set the color temperature for image capture by the sRGB sensor of the camera. The image sensor may capture the white incident light reflectance of the pixels, including those modules (typically but not necessarily in the Invariant Area) containing the sensor dye. In lieu of the incident light being a specified color a physical color filter may be positioned over the camera lens when the sRGB image is captured. Alternatively, a digital filter may be applied over the sRGB image pixel map to creates a colored light filter effect on the reflectance data. As an example the digital filter may programmed to process the sRGB image based on an appropriate center wavelength and range, as in a bandpass filter. Then, the filtered color image RGB values may be reduced to a greyscale value (e.g., range 0 to 255) and a greyscale pixel map for the Data Matrix barcode may be created. In an example, the 2D barcode may include encoded data to provide the appropriate inputs and may be used to program a barcode reader for reading color saturation and/or density of the sensor dye patch 3210. For example, through encoded data and/or Application Identifiers (AIs), the barcode can automatically program the barcode reader to properly sense color reflectivity of the sensor dye patch 3210. The encoded data in the Application Identifiers may also include the appropriate lifetime equation parameters such that the reader can estimate the used and/or remaining product life at a specified temperature for the scanned product.
The greyscale pixel map of the Data Matrix barcode may then be processed, e.g., using a standard Data Matrix procedure, such as ISO 16022 Data Matrix with modifications such as replacing the ISO 15415 Global Threshold algorithm with the Ultracode Color barcode Symbology dual-threshold ternary algorithm to the separate pixels into black pixels, white pixels, and color pixels (i.e., pixels neither black nor white). Once the color pixels are separated from the black and white pixels, the remaining black pixels and white pixels may be processed according to the methods of ISO 16022. For example, this processing method identifies the square module positions and the module centers in the Data Matrix pixel map using only the black and white pixels. The ISO 16022 method then decodes the Data Matrix and recovers the GS1 AI data.
As discussed above, an Application Identifier may identify the size, shape and/or location of the sensor dye modules. Next, as an example, a group of pixels in each identified sensor dye module in the Invariant Area may be sampled; for example, a 3×3 or larger number of pixels at the center of each module may be sampled. As a widely-used example, each pixel value may serve as a vote and the module is categorized as black, white, or color based on a majority vote. In a 3×3 sample, 2 pixels may be voted as black, 6 pixels voted as color, and 1 pixel voted as white. Since 6 is a majority of the 9 total pixels, the module is categorized as color, and the average sRGB color for that module determined by averaging separately the R, G, B values of the 9 pixels voting. The average sensor area sRGB value is formed by averaging separately the R, G, B values of all the identified dye sensor modules. Any color modules found other than the identified sensor modules may be ignored, and Reed-Solomon Error Correction process will recover their underlying data bit value.
It should be appreciated that by using error correction, a sensor dye patch 3210 can advantageously be used within a 2D barcode, such as in the Invariant Area, without affecting the readability of the overlying (or optionally underlying) 2D barcode. Through the use of error correction, such as ISO 16022 Reed-Solomon Error Correction process, which corrects any erroneously identified modules, including the colored modules and unknown modules in the Invariant area, the underlying GS1 Data Matrix is recovered. Thus, data from the underlying GS1 Data Matrix is advantageously processed in the standard manner without being corrupted by the continuously changing color of the sensor dye patch 3210. Therefore, static product data can be read from the overprinted 2D barcode while dynamic product data, such as remaining product life, embedded within the barcode continuously changes due to environmental exposure.
The remaining color modules (e.g., modules that have not been overprinted with black modules) are processed to determine the current reflectance percentage R(t) at the time of barcode capture (t). As illustrated in
By encoding the 2D barcode with an AI containing parameters to automatically program the image processing and provide product equation parameters for pre-stored algorithms, the barcode reader can determine product characteristics that are specific to each 2D barcode labeled product utilizing the same barcode reader. For example, use a reader, the remaining product life for a food product may be determined using the image sensor processing and equation parameters indicated by reading the sensor enhanced 2D barcode on that food product; different parameters may be stored in an AI in the 2D barcode on a vaccine vial and which the same barcode reader may read and use to program the image processing and equation parameters to calculate the remaining life of vaccine in the vial.
After scanning the barcode and obtaining the appropriate life data, the barcode reader may display information about the marked product and the remaining life. For example, the barcode in
The sensor dye patch 3210 may transition between an initial state and an end state.
Additionally, the barcode data may be utilized to check on product authenticity as an anti-counterfeiting measure. For example, all or part of the encoded AI (01) for a GTIN, AI(10) batch number, and AI (21) data may used as validation data form this product instance. This validation data is sent by the reader as a query to the manufacturer's database to see if that validation data is associated there, meaning that the product carrying that barcode has already been registered. If the validation data is not matched in manufacturer's database, or is marked there previously seen, already used or expired, then the authenticity of this product instance just scanned is questionable. A warning code may be placed in the manufacturer's database that multiple instances of the same barcode have been seen, to warn others who may receive another identical product instance that at least one of the products instances is counterfeit.
As discussed above, the remaining product life may be temperature dependent. Therefore, at a new storage temperature different from the reference temperature, a new predicted expiration date may be calculated by using barcode data and the scanner's currently measured equivalent exposure time (te) at the reference temperature.
The example process 460 may begin with determining a set of payload data 112 (block 462). In an example embodiment, the set of payload data 112 may include a set of static data 134 and a set of dynamic data 136. Additionally, the set of dynamic data 136 may have a first state 210 and a second state 212. Next, a computer may generate a 2D barcode (block 464). In an example embodiment, the 2D barcode may include an encoded version of the set of static data, a dynamic region 192 which is adapted to store an encoded version of the set of dynamic data, and error detection and correction data 116. Then, a printer may print the 2D barcode using a static ink 194 and the encoded set of the dynamic data on the dynamic region 192 using a dynamic ink 198 (block 466). In an example embodiment, the 2D barcode may be attached to various products such as food product, pharmaceutical products, etc. In an example embodiment, the dynamic ink 198 may change states responsive to at least one environmental change, such that the set of dynamic data 136 is in either the first state 210 or the second state 212. Additionally, in an example embodiment, the error detection and correction data 116 may accommodate for changes in the set of dynamic data 136 in the dynamic region 192 such that the 2D barcode may be readable by a reader and may produce a first output when the set of dynamic data 136 is in the first state 210 and the 2D barcode may be readable by a reader and may produce a second output when the set of dynamic data 136 is in the second state 212. In an example embodiment, the dynamic region 192 may be provided in a padding region. Additionally, the dynamic region 192 may be provided at an end of a data region. Providing a 2D barcode that includes error detection and correction data 116 that accommodates for changes in the set of dynamic data 136 advantageously allows an individual to use a non-privileged reader and also advantageously allows an individual to obtain two different output readings using the non-privileged reader. For example, without generating a 2D barcode with error detection and correction data 116 that accommodates for changes in the set of dynamic data 136 in the dynamic region 192, a non-privileged reader may only produce the first output regardless of whether the 2D barcode included a set of dynamic data 136 in the first state 210 or a set of dynamic data 136 in the second state 212.
The example process 470 may begin with a reader reading a set of static data 134 included in the 2D barcode (block 472). In an example embodiment, the 2D barcode may be printed in static ink 194 and dynamic ink 198. Additionally, an encoded version of the set of static data may be printed in the static ink 194. Next, a reader may read a set of dynamic data 136 included in the 2D barcode (block 474). In an example embodiment, an encoded version of the set of dynamic data 196 may be printed in the dynamic ink 198. Additionally, the set of dynamic data 136 may be printed in a redundant space on the 2D barcode. Next, the reader may generate a first output of the set of static data 134 (block 476). Then, the reader may generate a second output of the set of dynamic data 136 (block 478). In an example embodiment, the second output may depend on which state of the one of a plurality of states the dynamic data is in, such as greater than 30° C. or less than 30° C.
The example process 490 may begin with a reader reading a set of static data 134 included in the 2D barcode (block 492). In an example embodiment, the 2D barcode may be printed in static ink 194 and dynamic ink 198. Additionally, an encoded version of the set of static data may be printed in the static ink 194. Next, a reader may read a set of dynamic data 136 included in the 2D barcode (block 494). In an example embodiment, an encoded version of the set of dynamic data 196 may be printed in the dynamic ink 198. Additionally, the set of dynamic data 136 may be printed in a dynamic region 192 of the 2D barcode. Next, the reader may generate an output of the set of static data 134 and the set of dynamic data 136 (block 496). In an example embodiment, the output may be a first output when the set of dynamic data 136 is in a first state 210, and the output may be a second output when the set of dynamic data 136 is in a second state 212.
The computer 292 may include one or more processors electrically coupled by an address/data bus to one or more memory devices, other computer circuitry, and one or more interface circuits. The processor may be any suitable processor, such as a microprocessor. The memory preferably includes volatile memory and non-volatile memory. Additionally, the memory may store a software program that interacts with the other devices in the barcode providing system. This program may be executed by the processor in any suitable manner. The memory may also store digital data indicative of documents, files, programs, barcodes, etc. received from a computer or a barcode reader. Other computer circuitry may include a wide variety of hardware components including ASICs, or other specialized circuitry for manipulating data in a specific format, such as barcode data.
One or more displays, printers 290, and/or other output devices may also be connected to the computer 292 via interface circuits. The display may be a liquid crystal display or any other type of display. The printer 290 may print a barcode that is generated and received from the computer 292. Additionally, one or more storage devices may also be connected to the computer 292 via the interface circuits. For example, a hard drive, CD drive, DVD drive, and/or other storage devices may be connected to the computer 292. The storage devices may store any type of data, such as barcode data 100, image data, historical access or usage data, etc.
The method of reading of a sensor-augmented two-dimensional barcode symbol has a number of requirements. Reading a sensor-augmented Data Matrix symbol is possible
then the RSEC process may be utilized to recover the underlying codeword data in the underlying Data Matrix prior to the color state changes of modules caused by sensor activation.
Table 5 shows the data and RSEC codeword capacities of all square Data Matrix symbols up to 26×26 and all rectangular Data Matrix symbols.
Each data codeword normally requires two RSEC codewords to recover the underlying data. As an example, a 16×16 square Data Matrix which has a capacity for 12 data codewords (12 data utahs) and has 12 RSEC codewords (12 RSEC utahs). Thus if activated sensor modules change 4 data utahs in that 16×16 symbol, then eight RSEC codewords are utilized to recover the data in those for altered utahs. This leaves 4 additional RSEC codewords available for correction of any other symbol damage.
Two types of reading processes for the sensor-augmented two-dimensional barcode are utilized, depending on whether or not the structure of sensor dye module pattern has been encoded in the underlying Data Matrix. In the first case, where the the structure of sensor dye module pattern has not been encoded in the underlying Data Matrix of the sensor-augmented two-dimensional barcode:
In the case where the the structure of sensor dye module pattern has been encoded in the underlying Data Matrix of the sensor-augmented two-dimensional barcode:
Additionally, where a continuously changing sensor dye is used, for example, to indicate cumulative exposure to an environmental condition, then a barcode reader may:
An embodiment utilizes a sensor dye that is configured to undergo a continuous chemical or physical state change between an initial state and an end state causing a change in the color state of the sensor dye. The current color state may indicate exposure (e.g., cumulative exposure) to the environmental condition. For example, a sensor dye patch, such as a cumulative time-temperature sensor may be embedded within or associated within a 2D barcode. The cumulative time-temperature sensor may continuously change color as the product is exposed to temperature over time.
An embodiment utilizes a temperature threshold-sensitive sensor dye chemistry. The sensor dye chemistry is W→X; white dye elements overprinted on black modules of the printed underlying Data Matrix on a white printing media. It is assumed the sensor dye chemistry used is known at the time of printing the Data Matrix symbol.
It is assumed that the data structure encoded in the Data Matrix symbol utilizes GS1 Application Identifiers (AIs) and conforms to the GS1 General Specifications, V15 Issue 2 (January 2015) (http://www.gs1.org/docs/barcodes/GS1_General_Specifications.pdf) and later.
Here 15-bit BCH(15,5,7) error correction used to encode 5 bits of sensor data. Since the overprinted sensor dye modules are white, the black modules corresponding to ‘1’ bits of the 15-bit BCH encoding needs to be printed in underlying Data Matrix.
The sensor data BCH encoding along with 2 indicator bits to indicate the sensor dye chemistry in use utilizes only utahs 3, 5 and 6 of the 16×16 ECC 200 Data Matrix symbol shown in
The indicator utah bits 3.6 and 3.7 indicate which of the sensor dye chemistries in Table 1 is in use. It is assumed that the sensor dye chemistry to be used is known at the time of printing of the Data Matrix.
Modules of the selected sensor chemistry overprint both utah bits 3.6 and 3.7. Depending upon the sensor dye chemistry selected, bits 3.6 and 3.7 will appear as in Table 4 when the sensor dye is in either the unactivated or activated state.
In keeping with the GS1 System as defined in the GS1 General Specifications, the most widely used system for encoding information in Data Matrix, the GS1 Application Identifier AI (90) may be used. AI (90) is reserved for information mutually agreed upon between trading partners, such as the presence of a sensor-enabled Data Matrix. Since the Application Identifiers may appear within any sequence in a GS1 Data Matrix, AI (90) will appear immediately after the FNC1 to ensure that the 15 BCH-encoded sensor bits B1-B15 are in the invariant bitmap 410. Since only 7-bit characters can be encoded in a GS1 application identifier, the most significant bit 5.1 of utah 5 at 520 and bit 6.1 of utah 6 at 530 and their color state both before and after activation are unimportant here.
As shown in
The most significant bit B15 will be encoded in 630a utah bit 3.8 at 630a. Utah 5 at 650 bits 5.2 through 5.8 will encode B14 through B7 of the BCH encoded sensor bits. Utah 6 at 660 bits 6.2 through 6.8 will encode bits B7 through B1 of the BCH encoded sensor bits.
Since a white to transparent sensor dye chemistry is utilized in the first preferred embodiment, the encoded sensor data bit black and white pattern B15-B1 should be preprinted in the Data Matrix. The W→X sensor dye is then overprinted on these encoded bits; her either all of the bits B1-15 or at least those of the black bits B15-B1 in the underlying Data Matrix.
Consider an example when the sensor data value is ‘4’. From Table 2, the BCH encoding B15-B1 is 001000111101011. Thus in the Data Matrix size 14 bitmap in
Bits 3.1-3.5 of utah 3 at 630b are not in the invariant bitmap 410 as they are on the bottom edge of the Data Matrix symbol for all sizes of Data Matrix. However data may be encoded here which is useful in communicating specific information about the properties of the sensor dye in use, and the sensor dye pattern which is encoded in the augmented Data Matrix.
Since only part 640a of utah 4 appears in the invariant bitmap portion 410, utah 4 is used as a spacer to ensure that bits B14-B1 are printed in utahs 5 and 6 at 650 and 660 respectively. Any 7-bit ASCII character may be encoded in utah 4. It is typically used for product-related information.
A 16×16 Data Matrix 700 printed only with the information in Table 6 is shown in
The visual image of the unactivated sensor-augmented Data Matrix 900 is shown in
Once activated, all sensor modules become transparent and the visual image reverts to
The second preferred embodiment utilizes a temperature threshold sensitive sensor dye chemistry X→B as is frequently represented by the thermally-activated leuco dye systems used to make thermal paper. Here transparent dye modules are overprinted on white (unprinted) modules of the underlying Data Matrix printed on a white media.
Here also 15-bit BCH(15,5,7) error correction used to encode 5 bits of sensor data which are also encoded by overprinting sensor dye modules on an underlying printed Data Matrix symbol only at bit map locations where a black module is to appear upon sensor dye activation. It is also assumed here that the sensor dye chemistry used is known at the time of printing the Data Matrix symbol.
With any sensor dye chemistry that is initially transparent, different printers may be used to print the underlying Data Matrix symbol and later overprint it with the sensor dye modules as a separate process, thus augmenting the Data Matrix information be known at time the sensor modules are overprinted. In an example embodiment, the two-dimensional barcode may be attached to various products such as food products, pharmaceutical products, biologics, or any other product that may benefit from environmental, physical, or biological monitoring. For example, the bar code may be printed on or applied to a container for such a product.
The sensor data 15-bit BCH encoding pattern, along with 2 indicator bits, is identical to that of the first preferred embodiment. From Table 2, for an X→B sensor dye chemistry the printed indicator bits 3.6 and 3.7 will be “10”. As in the first preferred embodiment, the upper 5 bits of utah 3, bits 3.1-3.5 may be used to encode additional information about the sensor dye chemistry in use and/or the sensor dye bit pattern.
In keeping with the most broadly used system for encoding information in a Data Matrix, the GS1 Application Identifier AI (90) is used. AI (90) is reserved for information mutually agreed upon between trading partners, such as the presence of a sensor-enabled Data Matrix. AI (90) is used in utah 1-7 data structure format as in the first preferred embodiment, with the specific data here encoded in Table 7.
Consider the same example as in the first preferred embodiment when the sensor data value is 4. From Table 4, the BCH encoding B15-B1 is 001000111101011. Since a transparent-to-black sensor dye chemistry is utilized in this second preferred embodiment, the BCH-encoded sensor dye modules for what will become black modules in B15-B1 once active must be selectively overprinted on B15-B1 white modules in the underlying Data Matrix. The indicator bits 3.6 and 3.7 are also overprinted with sensor dye modules.
Table 7 shows the AI (90) data string that is printed for this second preferred embodiment example in the first 7 utahs of the 16×16 underlying Data Matrix 1000 in
Referring to the ULC detail 1100 in
The white modules of the underlying Data Matrix will be visible when the sensor-augmented Data Matrix barcode symbol is in the unactivated state, showing a BCH encoding for B15-B1 of 00000000000000, or sensor data value 0 as in the sensor-augmented Data Matrix 1000 in
Once the sensor modules are activated, the visual sensor-augmented Data Matrix 1200 ideally will appear, as shown in in
The third preferred embodiment also utilizes a temperature-sensitive sensor dye chemistry. Here sensor dye modules in the unactivated color state are overprinted as a single sensor dye patch in the invariant bitmap of an underlying Data Matrix printed on a white media.
Any sensor dye chemistry R→S may be used, provided the arbitrary color states R and S both have 1) sufficient visual color state change and 2) sufficient contrast under 660 nm reader illumination that the R color state scans as W or B and the S color state scans as the complementary color, B or W. This enables the sensor dye patch, in either the unactivated or activated color state, to be both visually discriminable and machine readable to using the aforementioned Data Matrix reading techniques to recover the sensor dye modules as an image and further process it to determine the activation state of the sensor dye patch.
Different printers, or different stations of the same printing press, may be used: First to print the underlying Data Matrix symbol and later to overprint it with the sensor dye patch in a separate process.
In this example, an X→B sensor dye chemistry is illustrated. The sensor dye patch is a square approximately 2×2 sensor dye modules in size. It is framed by and centered in a white area 4×4 modules in size. This 4×4 white frame is positioned in the invariant bitmap of a 16×16 Data Matrix, to ensure that the 4×4 white frame and its enclosed sensor dye patch will always be in the same position relative to ULC over broad range of Data Matrix symbol sizes.
Note that in this third preferred embodiment, bits 3.6 and 3.7 are not used as indicator bits, as in the first and second preferred embodiments but are rather here they are part of the 4×4 white frame.
A naive approach would be to create the underlying printed Data Matrix symbol without data restriction and simply overprint white modules on the 16 underlying Data Matrix modules in the 4×4 white frame 1310. Depending on the data encoded, and whether any black modules in 1310 were deliberately overprinted, up to 5 utahs and their encoded codewords could be deliberately damaged by overprinting. A conventional approach to the use of Reed-Solomon error correction to recover up to 5 damaged codewords during reading a Data Matrix would require the use of up to 10 of the 12 available RSEC codewords in a 16×16 Data Matrix symbol. This would leave few RSEC codewords available for other accidental symbol damage.
As in the examples shown in the first and second preferred embodiments, in this example symbol data encoding is also performed using the GS1 Application Identifier AI (90) and the utah 1-7 data structure format. Symbol data specific to the third preferred embodiment is encoded in Table 8. For convenience the contents of utahs 8-24 are shown in grey in Data Matrix 1300, since they are not relevant to the encoding of AI (90).
Utahs 1 and 7 are unaffected by the creation of the 4×4 white frame 1310, as they have no bits within 1310. Utah bits 2.5 and 2.8 are within 1310. In the AI(90) data encoding bit 2.5=‘1’, and therefore utah 2 will be deliberately damaged when overwritten by a white module. Utah 5 is entirely within the 4×4 white frame 1310. Since by the way data is encoded with ISO/IEC 16022 Data Matrix there will always be at least 1 black module in any valid utah; therefore no matter what 7-bit ASCII data character is encoded in utah 5 it and its codeword will be deliberately damaged by overprinting all utah 5 modules with white modules.
However, is possible to avoid deliberate damage to bit positions in utahs 3, 4 and 6 which are within the 4×4 white frame merely by restricting the data allowed to be encoded in these codewords so that there are no black modules (1′ bits) in utah bits 3.6-3.8, 4.3, 4.6 and 6.2. Assuming than ‘x’ represents a “don't care” bit position in each specific bit position within a utah, the allowable 8-bit Data Matrix codeword forms are:
Table 8 shows the AI (90) data string for this 3rd preferred embodiment example in the first 7 utahs of the 16×16 underlying Data Matrix 1400 in
In
In
As in the second preferred embodiment, in the third preferred embodiment a secondary printing step is used to print an approximately 2×2 sensor dye patch 1620 within the 4×4 white frame 1510, as shown in
One of the objectives of the third preferred embodiment that there is a visible change of the sensor dye patch 1520 color state within the 4×4 white frame 1510 upon sensor dye activation. The second objective is that a sensor dye chemistry is employed that has adequate contrast to the Data Matrix reader as described above so that the sensor dye patch 1620 is read as W or B modules when unactivated and read as the complementary color B or W modules when activated. Then the presence of both the unactivated and activated sensor dye patch can be machine readable to a Data Matrix reader using reading methods described above.
A further improvement to the third preferred embodiment is in the Data Matrix reading process: It is to apply the knowledge that the codewords of utahs 2 and 5 have been deliberately damaged to improve the efficiency of the Reed-Solomon error correction process in the symbol codeword sequence recovery. Detection and correction of an erroneous codeword at an unknown location in the combined data plus RSEC codeword sequence requires the use of 2 RSEC characters per damaged codeword. But, if the location of the damaged codewords are known prior to applying the Reed-Solomon error correction process (in this case in codewords 2 and 5) then only 1 RSEC codeword is required to recover the correct codeword value of each identified damaged codeword. This leaves additional unused RSEC codewords available for other accidental Data Matrix symbol damage correction.
Alternative embodiments include use of one or more of
In an exemplary aspect of the present disclosure, a sensor-augmented two-dimensional barcode includes a substrate, a first layer provided on the substrate, and a second layer provided on the substrate. The first layer includes a sensor dye region, which includes a sensor dye having a chemistry that is configured, responsive to the occurrence of an environmental condition, to undergo a continuous chemical or physical state change between an initial state and an end state, causing a change in the color state of the sensor dye. The color state indicates exposure to the environmental condition. The second layer includes a two-dimensional error-correcting barcode symbol, which includes a plurality of modules in a permanent color state. The modules are optionally square, rectangular, or circular.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the second layer is aligned with a feature of the first layer, and wherein, preferably, the sensor dye region is positioned in an invariant area of the two dimensional barcode such that an upper left corner of the second layer is aligned with an upper left corner of the first layer.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the environmental condition is selected from the group consisting of time, temperature, and time-temperature product, and wherein, preferably, the sensor dye continuously changes color state between the initial state and the end state when exposed to the environmental condition.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the second layer is printed over the first layer.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first layer is printed over the second layer.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the second layer forms a readable barcode symbol in the symbology of a two-dimensional barcode.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the two-dimensional error-correcting barcode symbol is from the symbology group consisting of Data Matrix, QR Code, Aztec Code, MaxiCode, PDF417 and Dot Code symbologies.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the two-dimensional error-correcting barcode symbol utilizes Reed-Solomon error correction.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye is initially in a first color state when unactivated and dynamically changes to a plurality of different color states within a range between the initial state and the end state before reaching the end state.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye reaches a predetermined intermediate state between the initial state and the end state when the specified condition of the sensed property is beyond a threshold value, wherein the threshold value is preferably a labeled product life.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye dynamically changes to a plurality of different color states related to one of expended product life and remaining labeled product life.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first layer optionally may provide sensor digital information, the sensor digital information preferably encoded in an invariant pixel map of the two-dimensional symbol, and more preferably encoded as binary encoded sensor data, and more preferably the binary encoded sensor data is in an error correcting code, preferably chosen from the group consisting of Hamming Codes, Bose-Chaudhuri-Hocquenghem Codes, Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the two-dimensional error-correcting barcode includes encoded application identifiers, and wherein, preferably, a first application identifier indicates the size and location of the sensor dye region and a second application identifier indicates product life equation parameters, wherein, preferably, the product life equation parameters are Arrhenius equation parameters.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, pharmaceutical, biological, or food product, preferably a vaccine; a container holding the pharmaceutical, biological, or food product, preferably a vaccine vial; and a sensor-augmented two-dimensional barcode symbol provided on or in the container, preferably being applied to the outside surface of the container.
In an exemplary aspect of the present disclosure, method of reading of a sensor-augmented two-dimensional barcode symbol includes optically scanning an image of the sensor-augmented two-dimensional barcode symbol to obtain color values for pixels in the image. Then, a scanned pixel map containing the color values in the sensor-augmented two-dimensional barcode symbol is constructed, and the pixels in the scanned pixel map are processed to assign a binary color value to each pixel and to form a binarised pixel map. The two-dimensional barcode symbol is identified and decoded in the binarised pixel map to recover a symbol codeword sequence. Next, underlying data codewords are recovered from the symbol codeword sequence, preferably by utilizing error correction process on the symbol codeword sequence. The data codewords are processed for identification of barcode modules in a sensor dye region, and an average color value of the barcode modules in the sensor dye region is determined. The average color value of the sensor dye region is processed to determine a reflectance percentage of incident light at a time of scanning.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method includes processing sensor digital information pixel map to identify the sensor dye region and determine from a color state of the sensor dye region product life information.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, processing color information includes capturing white light reflectance of pixels included in the sensor dye region, and creating a colored light filter effect on reflectance data from the scanned pixels utilizing a filter to generate filtered colored image values of the pixels in a scanned pixel map.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method further includes reducing the filtered colored image values to greyscale values creating a greyscale pixel map.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, processing color information includes capturing white light reflectance of pixels included in the sensor dye region, and creating a colored light filter effect on reflectance data from the scanned pixels utilizing a filter to generate filtered colored image values of the pixels in a scanned pixel map.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, processing color information includes reducing the filtered colored image values in the scanned pixel map to greyscale values, determining an average greyscale value of the average color value of the barcode modules, and processing the average grey value to determine the incident light reflectance percentage at the time of scanning.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, processing the pixels in the scanned pixel map includes classifying each pixel as one of a black pixel, a white pixel, and a color pixel.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the black pixels, the white pixels, and the color pixels are used to form a ternarised pixel map, and the black and white pixels in the ternarised pixel map are used to identify the two-dimensional barcode symbol in the ternarised pixel map.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method includes classifying each pixel in the invariant area as one of a black pixel, a white pixel, and a color pixel. Additionally, the method optionally includes determining the average grey value of the color pixels, and processing the average grey value to determine the current reflectance percentage at the sampling time.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye region is located in an invariant area of a Data Matrix barcode symbol.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method further includes recovering a visual pattern or image from the sensor digital information.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye region includes a sensor dye that is responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye region includes a sensor dye that is responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals.
In an exemplary aspect of the present disclosure, a method of reading a sensor-augmented two-dimensional barcode symbol includes optically scanning an image of the sensor-augmented two-dimensional barcode symbol to obtain a greyscale value for each pixel in the image. Then, a greyscale pixel map of the pixels in the sensor-augmented two-dimensional barcode symbol is constructed. Next, the method includes processing the pixels in the greyscale pixel map to assign a binary color value to each pixel and to form a binarised pixel map. Additionally, identifying the two-dimensional barcode symbol in the binarised pixel map is identified and decoded to recover a symbol codeword sequence. Then, underlying data codewords from the symbol codeword sequence are recovered utilizing an error-correction process on the symbol codewords. The data codewords are processed for identification of the barcode modules in a sensor dye region. Then, an average greyscale value of the barcode modules in the senor dye region is determined, and the average greyscale values of the sensor dye region are processed to determine a reflectance percentage of incident light at a time of scanning.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, a bandpass filter is utilized when optically scanning the image to create the effect of monochrome illumination.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, a light source is used to optically scan the image, the light source being a monochrome light source, wherein preferably, the monochrome light source is a monochrome laser.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, a barcode imager is used to optically scan the image, and wherein the barcode imager is responsive only to greyscale values.
In an exemplary aspect of the present disclosure, a sensor-augmented two-dimensional barcode includes a substrate; a two-dimensional error-correcting barcode symbol provided on the substrate; a first layer provided on the substrate in a permanent color state; and a second layer provided on the substrate. The bar code symbol further includes a plurality of modules, the modules optionally being square, rectangular, or circular, each module having one of a first color state or a second color state. The second layer is optionally provided by overprinting the first layer, in a sensor dye module pattern, the sensor dye module pattern containing sensor digital information. The second layer further includes a sensor dye having a chemistry that is configured, responsive to the occurrence of an environmental, physical or biological condition, to undergo a chemical or physical state change causing a change in the color state of the sensor dye, thereby changing the color state of a subset of the plurality of modules.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the environmental condition is selected from the group consisting of time, temperature, time-temperature product, light, humidity, gas vapor and nuclear radiation, and wherein, preferably, the sensor dye permanently changes color state when the environmental condition crosses a threshold value.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first layer forms a readable barcode symbol in the symbology of the two-dimensional barcode.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the two-dimensional error-correcting barcode symbol is from the symbology group consisting of Data Matrix, QR Code, Aztec Code, MaxiCode, PDF417 and Dot Code symbologies.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the two-dimensional error-correcting barcode symbol utilizes Reed-Solomon error correction.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye is initially in a black, white or transparent color state when unactivated and changes to a different color state upon activation.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye permanently changes color state when the specified condition of the sensed property is above or below a threshold value.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the specified condition of the sensed property is the detection of the presence of a biological organism, biological agent or biological toxin, preferably by utilizing a colorimetric immunoassay.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the second layer provides sensor digital information, the sensor digital information preferably encoded in an invariant bitmap of the two-dimensional symbol, and more preferably encoded as binary encoded sensor data, and more preferably the binary encoded sensor data is in an error correcting code, preferably chosen from the group consisting of Hamming Codes, Bose-Chaudhuri-Hocquenghem Codes, Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor digital information encoded in the sensor dye module pattern is a visual pattern or image.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an article of manufacture includes pharmaceutical, biological, or food product, preferably a vaccine; a container holding the pharmaceutical, biological, or food product, preferably a vaccine vial; and a sensor-augmented two-dimensional barcode symbol provided on or in the container, preferably being applied to the outside surface of the container.
In accordance with another exemplary aspect of the present disclosure, a method of reading of a sensor-augmented two-dimensional barcode symbol includes scanning and optically processing an image of the sensor-augmented two-dimensional barcode symbol, including construction of a scan binary bitmap from scanned modules of the sensor-augmented two-dimensional barcode symbol. The method further includes constructing a symbol codeword sequence from the scan binary bitmap. Then, underlying data codewords are recovered from the symbol codeword sequence, preferably by utilizing error correction process on the symbol codeword sequence, the error correction process preferably being a Reed-Solomon code. Next, the underlying data codewords are processed to form the underlying symbol codeword sequence. The method further includes constructing an underlying binary bitmap from the scan binary bitmap from the underlying symbol codeword sequence, the underlying binary bitmap preferably equal in size to the scan binary bitmap. At each bit position an exclusive-OR of the scan binary bitmap and the underlying binary bitmap may be performed to form a sensor digital information bitmap. Optionally, the method includes, processing the sensor digital information bitmap to recover a binary information sequence that incorporates binary encoded sensor data, preferably by processing the binary information sequence as an error-correcting code sequence and utilizing an error correction process to recover binary-encoded sensor data. The error-correcting code preferably is selected from the group consisting of Hamming Codes, Bose-Chaudhuri-Hocquenghem Codes, Golay Codes, Simplex Codes, Reed-Muller Codes, Fire Codes, Convolutional Codes, and Reed-Solomon Codes.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method includes processing the sensor digital information bitmap to identify a sensor dye patch and determine from a color state of the sensor dye patch whether or not activation of a sensor dye has occurred in response to an environmental condition.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the sensor dye patch is located in an invariant area of a Data Matrix barcode symbol.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the method includes recovering a visual pattern or image from the sensor digital information bitmap.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of generating a 2D barcode, includes determining a set of payload data including a set of static data and a set of dynamic data, generating a 2D barcode which includes an encoded version of the set of static data and includes redundant space, designating at least part of the redundant space as a dynamic region which is adapted to store the set of dynamic data, and printing the 2D barcode using a static ink and an encoded version of the set of the dynamic data on the dynamic region using a dynamic ink which changes states responsive to at least one environmental change, such that the set of dynamic data is in one of a plurality of states. The set of dynamic data is readable by a reader of the 2D barcode and the set of static data is readable by the reader of the 2D barcode when the set of dynamic data is in each one of the plurality of states.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with the preceding aspect, the dynamic ink is responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic ink is responsive to time and temperature.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic ink is responsive to freezing.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic ink permanently changes in response to an environmental factor.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic ink transitions from a first state to a second state in response to the occurrence of a specific environmental factor and returns to the first state when the specific environmental factor is no longer occurring.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the redundant space includes at least one of a plurality of unused bits, a padding region, and an error detection and correction region.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, wherein the redundant space includes at least one of a format information region, a version information region, and a reference data region.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, a non-privileged reader is capable of reading the static data and cannot read the dynamic data of the 2D barcode.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, only privileged readers are capable of reading the static data and cannot read the dynamic data of the 2D barcode.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of providing a 2D barcode, includes determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode and categorizing the information modules into a first group and a second group, and printing the 2D barcode in static ink and dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state include a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state include a third plurality of information modules and a fourth plurality of information modules. The third plurality of information modules includes all of the first plurality of information modules plus a set of one or more information modules. The second plurality of information modules includes all of the fourth plurality of information modules plus the set of one or more information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode. The first group is printed in the static ink, and the second group is printed in the dynamic ink. The dynamic ink is adapted to activate in response to the occurrence of a specific environmental factor.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first plurality of information modules and the third plurality of information modules are black modules and the second plurality of information modules and the fourth plurality of information modules are white modules.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first plurality of information modules and the third plurality of information modules are adapted to be visually distinguishable from a printing surface and the third plurality of information modules and the fourth plurality of information modules are visually indistinguishable from the printing surface.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of providing a 2D barcode, includes determining a set of static data, determining a set of dynamic data, generating a first 2D barcode, generating a second 2D barcode, comparing the first 2D barcode and the second 2D barcode and categorizing the information modules into a first group, a second group, and a third group, and printing the 2D barcode using a static ink, a first dynamic ink, and a second dynamic ink. The set of dynamic data has a first state and a second state. The first 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the first state. The set of static data and the set of dynamic data in the first state include a first plurality of information modules and a second plurality of information modules. The second 2D barcode includes an encoded version of the set of static data and the set of dynamic data in the second state. The set of static data and the set of dynamic data in the second state include a third plurality of information modules and a fourth plurality of information modules. The first group includes common information modules between the first plurality of information modules of the first 2D barcode and the third plurality of information modules of the second 2D barcode. The second group includes unique information modules of the third plurality of information modules of the second 2D barcode, and the third group includes unique information modules of the first plurality of information modules of the first 2D barcode. The first group is printed in the static ink, the second group is printed in a first dynamic ink, and the third group is printed in a second dynamic ink. The first dynamic ink is adapted to deactivate in response to the occurrence of a specific environmental factor, and the second dynamic ink is adapted to activate in response to the occurrence of the specific environmental factor.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink are responsive to environmental factors including at least one of temperature, time, radiation, light, and toxic chemicals.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink are responsive to time and temperature.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink are responsive to freezing.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the first dynamic ink and the second dynamic ink activate simultaneously.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of providing a 2D barcode, includes determining a set of payload data including a set of static data and a set of dynamic data having a first state and a second state, generating a 2D barcode which includes an encoded version of the set of static data, a dynamic region which is adapted to store the set of dynamic data, and error detection and correction data, and printing the 2D barcode using a static ink and an encoded set of the dynamic data on the dynamic region using a dynamic ink which changes states responsive to at least one environmental change, such that the set of dynamic data is in the first state or the second state, and the error detection and correction data accommodates for changes in the set of dynamic data in the dynamic region such that the 2D barcode is readable by a reader and produces a first output when the set of dynamic data is in the first state and the 2D barcode is readable by a reader and produces a second output when the set of dynamic data is in the second state.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic region is provided in a padding region.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, the dynamic region is provided at an end of a data region.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of reading a 2D barcode includes scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, generating a first output of the set of static data, and generating a second output of the set of dynamic data. The 2D barcode is printed in static ink and dynamic ink, and an encoded version of the set of static data is printed in the static ink. An encoded version of the set of dynamic data is printed in the dynamic ink which changes states responsive to at least one environmental change, such that the dynamic data is in one of the plurality of states. The set of dynamic data is printed in a redundant space on the 2D barcode. The second output indicates on which state of the plurality of states the dynamic data is in.
In accordance with another exemplary aspect of the present disclosure, which may be used in combination with any one or more of the preceding aspects, an apparatus may perform a method of reading a two dimensional (2D) includes scanning a set of static data included in the 2D barcode, scanning a set of dynamic data included in the 2D barcode, and generating an output based on the set of static data and the set of dynamic data. The 2D barcode includes static ink and dynamic ink. An encoded version of the set of static data is printed in the static ink. An encoded version of the set of dynamic data is printed in the dynamic ink, which changes states responsive to at least one environmental change, such that the dynamic data is in one of a plurality of states. The set of dynamic data is printed in the dynamic region. The output is a first output when the set of dynamic data is in a first state of the plurality of states, and the output is a second output when the set of dynamic data is in a second state of the plurality of states.
It should be understood that various changes and modifications to the example embodiments described herein will be apparent to those skilled in the art. Such changes and modifications can be made without departing from the spirit and scope of the present subject matter and without diminishing its intended advantages. It is therefore intended that such changes and modifications be covered by the appended claims. Also, it should be appreciated that the features of the dependent claims may be embodied in the systems, methods, and apparatus of each of the independent claims.
Many modifications to and other embodiments of the invention set forth herein will come to mind to one skilled in the art to which these inventions pertain, once having the benefit of the teachings in the foregoing descriptions and associated drawings. Therefore, it is understood that the inventions are not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purpose of limitation.
The present application is a continuation-in-part of U.S. application Ser. No. 15/084,987, filed on Mar. 30, 2016, which is incorporated herein by reference in its entirety and which claims the benefit of U.S. Provisional Application 62/140,258, filed on Mar. 30, 2015, the entire contents of each of which are hereby incorporated herein by reference.
Number | Name | Date | Kind |
---|---|---|---|
4646066 | Baughman et al. | Feb 1987 | A |
4729671 | Asano et al. | Mar 1988 | A |
4935206 | Heim | Jun 1990 | A |
5053339 | Patel | Oct 1991 | A |
5109864 | Lu | May 1992 | A |
6642016 | Sjoholm et al. | Nov 2003 | B1 |
6685094 | Cameron | Feb 2004 | B2 |
7209042 | Martin et al. | Apr 2007 | B2 |
7490575 | Taylor et al. | Feb 2009 | B2 |
7604398 | Akers et al. | Oct 2009 | B1 |
7691634 | Vaillant | Apr 2010 | B2 |
7719404 | Makela et al. | May 2010 | B2 |
7878410 | Norrby et al. | Feb 2011 | B2 |
8267576 | Haarer et al. | Sep 2012 | B2 |
8395521 | Kauffman et al. | Mar 2013 | B2 |
8579193 | Nemet et al. | Nov 2013 | B2 |
8629081 | Azizian | Jan 2014 | B2 |
8757503 | Conzelmann | Jun 2014 | B2 |
8870082 | Cattaneo et al. | Oct 2014 | B2 |
8899829 | Butera et al. | Dec 2014 | B1 |
8957780 | Cooperman | Feb 2015 | B2 |
8968662 | Haarer et al. | Mar 2015 | B2 |
9011794 | Haarer et al. | Apr 2015 | B2 |
9606140 | Burghardt et al. | Mar 2017 | B2 |
20040092023 | Wright | May 2004 | A1 |
20040212509 | Zweig | Oct 2004 | A1 |
20060083657 | McDonnell et al. | Apr 2006 | A1 |
20060227669 | Pennaz et al. | Oct 2006 | A1 |
20070058493 | Kuczynski et al. | Mar 2007 | A1 |
20080063575 | Rakow et al. | Mar 2008 | A1 |
20080173712 | Nemet et al. | Jul 2008 | A1 |
20080232427 | Leute et al. | Sep 2008 | A1 |
20090010304 | Skinner et al. | Jan 2009 | A1 |
20090020609 | Cohen | Jan 2009 | A1 |
20110006109 | Nemet | Jan 2011 | A1 |
20110084128 | Haarer et al. | Apr 2011 | A1 |
20110258130 | Grabiner et al. | Oct 2011 | A1 |
20110312096 | Whitman et al. | Dec 2011 | A1 |
20120079981 | Huffman et al. | Apr 2012 | A1 |
20120172825 | Ales et al. | Jul 2012 | A1 |
20120175412 | Grabiner et al. | Jul 2012 | A1 |
20120286028 | Simske et al. | Nov 2012 | A1 |
20120326878 | Viguie et al. | Dec 2012 | A1 |
20130015236 | Porter | Jan 2013 | A1 |
20130215004 | Nordlinder | Aug 2013 | A1 |
20130224875 | Haarer et al. | Aug 2013 | A1 |
20140009605 | Lane | Jan 2014 | A1 |
20140023264 | Branch et al. | Jan 2014 | A1 |
20140127738 | Lee et al. | May 2014 | A1 |
20140154808 | Patel | Jun 2014 | A1 |
20140252096 | Nemet | Sep 2014 | A1 |
20140334723 | Chatow et al. | Nov 2014 | A1 |
20140339312 | Simske | Nov 2014 | A1 |
20150116093 | Swager et al. | Apr 2015 | A1 |
20150193677 | Nemet | Jul 2015 | A1 |
20150332135 | Dixit et al. | Nov 2015 | A1 |
20160292486 | Prusik et al. | Oct 2016 | A1 |
Number | Date | Country |
---|---|---|
101769884 | Jul 2010 | CN |
103543146 | Jan 2014 | CN |
104250715 | Dec 2014 | CN |
204155296 | Feb 2015 | CN |
19912529 | Sep 2000 | DE |
10325714 | Oct 2004 | DE |
202005006301 | Jun 2005 | DE |
102006004974 | Aug 2007 | DE |
1319928 | Jun 2003 | EP |
1645856 | Apr 2006 | EP |
200300299 | Feb 2003 | FI |
1280CHENP2004 | May 2006 | IN |
2007285838 | Nov 2007 | JP |
2013122341 | Jun 2013 | JP |
5723474 | May 2015 | JP |
101519317 | May 2015 | KR |
WO200550192 | Apr 2006 | WO |
WO200756752 | May 2007 | WO |
WO200806154 | Jan 2008 | WO |
WO200961831 | May 2009 | WO |
WO201061134 | Jun 2010 | WO |
WO201078422 | Jul 2010 | WO |
WO201085755 | Jul 2010 | WO |
WO201302552 | Jan 2013 | WO |
WO201390407 | Jun 2013 | WO |
WO2014102556 | Jul 2014 | WO |
WO2014153476 | Sep 2014 | WO |
WO2015113086 | Aug 2015 | WO |
Entry |
---|
R. E. Blahut, “Theory and Practice of Error Control Codes (corr. Edition)”, 1983, p. 166. |
S.A. Vanstone et al, “An Introduction to Error Correcting Codes with Applications”, 1989, p. 219. |
FreshCode TTI Labels—Varcode. |
GSI General Specifications, V15, Issue 2, Jan. 2015, http://www.gs1.org/docs/barcodes/GS1_General_Specifications.pdf. |
Tanguy, et al., “Enhanced Radio Frequency Biosensor for Food Quality Detection Using Functionalized Carbon . . . ”, ACS Appl. Mater. Interfaces, 2015, 7 (22), pp. 11939-11947. |
Wu, et al., “3D-printed microelectronics for integrated circuitry and passive wireless sensors”, Microsystems & Nanoengineering 1, Article No. 15013 (2015). |
Yang, “3D-printed ‘smart cap’ uses electronics to sense spoiled food”, Jul. 20, 2015, UC Berkeley, http://news.berkeley.edu/2015/07/20/3d-printed-electronic-smart-cap/. |
Wan, A new type of TTI based on an electrochemical pseudo transistor, Journal of Food Engineering, vol. 168, Jan. 2016, pp. 79-83. |
News: New 3D technique . . . Aug. 15, 2015,AIPIA Active & Intelligent Packaging Industry Assoc., http://www.aipia.info/news-New-3D-technique-Prints-Embedded-Smart-Cap--Sensor-444.php. |
http://www.businesswire.com/news/home/20151013005396/en/3615067/Palladio-Group-Ink-Introduce-PhutureMed%E2%84%A2-Advanced-Packaging. |
Search Report and Written Opinion dated Jul. 26, 2018 issued for International PCT Application No. PCT/US18/23068. |
Search Report and Written Opinion dated Aug. 5, 2016 issued for International PCT Application No. PCT/US16/24884 filed: Mar. 30, 2016. |
Windl, et al., “Reactivable passive radio-frequency identification temperature indicator” J. Appl. Phys. 117, 17C125 (2015). |
Number | Date | Country | |
---|---|---|---|
20170193260 A1 | Jul 2017 | US |
Number | Date | Country | |
---|---|---|---|
62140258 | Mar 2015 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 15084987 | Mar 2016 | US |
Child | 15464207 | US |