Decoding data from patterned color modulated image regions in a color image
First Claim
1. A method for operating a processor-controlled machine to decode a plurality of message values encoded in an acquired color image;
- the machine including a processor and a memory device for storing data;
the data stored in the memory device including instruction data the processor executes to operate the machine;
the processor being connected to the memory device for accessing and executing the instruction data stored therein;
the method comprising;
receiving an acquired color image including a plurality of image regions therein;
each image region, referred to as a received signal cell, encoding a message value included in a set of valid unique message values in a predetermined coding scheme;
each received signal cell including a plurality of subregions having at least two different colors spatially arranged in a pattern therein;
the at least two different colors of the received signal cell having an average color value thereof;
determining an image location in the acquired image of each received signal cell using a set of valid signal block data structures;
each signal block data structure representing and being uniquely paired with one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of a received signal cell and including variable data indicating a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in a received signal cell of scaled color difference quantities produced by applying the scaling data to the color difference quantity; and
for each received signal cell identified by location in the acquired image, decoding the received signal cell including,computing the average color value of the received signal cell;
computing a color difference quantity for the average color value and updating the variable data indicating the color difference quantity in each valid signal block data structure to produce updated valid signal block data structures;
subtracting the average color value from the received signal cell to produce a received signal block data structure;
the received signal block data structure indicating color difference quantities between each of the at least two different colors and the average color value;
determining which one of the plurality of updated valid signal block data structures is substantially identical to the received signal block data structure; and
storing the message value paired with the updated signal block data structure determined to be substantially identical to the received signal block data structure.
4 Assignments
0 Petitions
Accused Products
Abstract
A technique for decoding message data that has been encoded into a printed color image locates small image regions called signal cells that carry the encoded message. Each signal cell is composed of a spatial pattern of colored subregions that collectively have an overall average color. The colors of the subregions are defined as changes (modulations) to the average color in one or more directions in a multi-dimensional color space. The decoding technique uses a set of valid signal blocks, each of which is a unique pattern of color modulated subregions. There is a valid signal block for each valid message value defined in the coding scheme. The decoding operation first locates the positions of the signal cells in the acquired image and then subtracts the local average color of each signal cell from the cell to produce a received signal block. Then the decoding operation determines which valid signal block each received signal block is by comparing each valid signal block to a received signal block. One implementation of the decoding technique decodes signal cells that have been arranged in the acquired image in a 2D array by synchronizing an imaginary grid-like structure with the most likely position of all of the signal cells. In one embodiment, a color space direction is selected for the color modulations that results in the differently colored subregions of a signal cell being substantially imperceptible to a human viewer, thus making the pattern that carries the message substantially imperceptible in an encoded image.
198 Citations
13 Claims
-
1. A method for operating a processor-controlled machine to decode a plurality of message values encoded in an acquired color image;
- the machine including a processor and a memory device for storing data;
the data stored in the memory device including instruction data the processor executes to operate the machine;
the processor being connected to the memory device for accessing and executing the instruction data stored therein;
the method comprising;receiving an acquired color image including a plurality of image regions therein;
each image region, referred to as a received signal cell, encoding a message value included in a set of valid unique message values in a predetermined coding scheme;
each received signal cell including a plurality of subregions having at least two different colors spatially arranged in a pattern therein;
the at least two different colors of the received signal cell having an average color value thereof;determining an image location in the acquired image of each received signal cell using a set of valid signal block data structures;
each signal block data structure representing and being uniquely paired with one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of a received signal cell and including variable data indicating a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in a received signal cell of scaled color difference quantities produced by applying the scaling data to the color difference quantity; andfor each received signal cell identified by location in the acquired image, decoding the received signal cell including, computing the average color value of the received signal cell; computing a color difference quantity for the average color value and updating the variable data indicating the color difference quantity in each valid signal block data structure to produce updated valid signal block data structures; subtracting the average color value from the received signal cell to produce a received signal block data structure;
the received signal block data structure indicating color difference quantities between each of the at least two different colors and the average color value;determining which one of the plurality of updated valid signal block data structures is substantially identical to the received signal block data structure; and storing the message value paired with the updated signal block data structure determined to be substantially identical to the received signal block data structure. - View Dependent Claims (2, 3, 4, 5, 6)
- the machine including a processor and a memory device for storing data;
-
7. A method for operating a processor-controlled machine to decode a plurality of message values encoded in an acquired color image;
- the machine including a processor and a memory device for storing data;
the data stored in the memory device including instruction data the processor executes to operate the machine;
the processor being connected to the memory device for accessing and executing the instruction data stored therein;
the method comprising;receiving an acquired color image including a plurality of image regions therein;
each image region, referred to as a received signal cell, encoding a message value included in a set of valid unique message values in a predetermined coding scheme;
each received signal cell including a plurality of subregions having at least two different colors spatially arranged in a pattern therein;
the at least two different colors of the received signal cell having an average color value thereof;determining an image location in the acquired image of each received signal cell using a plurality of valid modulation pattern data structures;
each modulation pattern data structure representing and being uniquely paired with one of the valid message values in the coding scheme;
each modulation pattern data structure defining size dimensions of a received signal cell and including scaling data indicating a spatially arranged modulation pattern specifying image locations in a received signal cell of scaled color difference quantities produced by applying the scaling data to the color difference quantity; andfor each received signal cell identified by location in the acquired image, decoding the received signal cell including, computing the average color value of the received signal cell; computing a color difference quantity for the average color value; subtracting the average color value from the received signal cell to produce a received signal block data structure indicating color difference quantities between each of the at least two different colors and the average color value; determining which one of the plurality of valid modulation pattern data structures is substantially identical to the received signal block data structure after adjusting one of either the received signal block or the plurality of valid modulation pattern data structures by the color difference quantity; and storing the message value paired with the modulation pattern data structure determined to be substantially identical to the received signal block data structure. - View Dependent Claims (8)
- the machine including a processor and a memory device for storing data;
-
9. A method for operating a processor-controlled machine to decode a plurality of message values encoded in an acquired color image;
- the machine including a processor and a memory device for storing data;
the data stored in the memory device including instruction data the processor executes to operate the machine;
the processor being connected to the memory device for accessing and executing the instruction data stored therein;
the method comprising;receiving an acquired color image including a plurality of image regions therein;
each image region, referred to as a received signal cell, encoding a message value included in a set of valid unique message values in a predetermined coding scheme;
each received signal cell including a plurality of subregions having at least two different colors spatially arranged in a pattern therein;
the at least two different colors of the received signal cell having an average color value thereof;determining an image location in the acquired image of each received signal cell using a set of valid signal block data structures;
each signal block data structure representing and being uniquely paired with one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of a received signal cell and including data indicating a predetermined color space direction and associated color modulation magnitude in a multi-dimensional color space collectively indicating a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in a received signal cell of scaled color difference quantities produced by applying the scaling data to the color difference quantity; andfor each received signal cell identified by location in the acquired image, decoding the received signal cell including, computing the average color value of the received signal cell and subtracting the average color value from the received signal cell to produce a received signal block data structure;
the received signal block data structure indicating color difference quantities between each of the at least two different colors and the average color value;determining which one of the plurality of valid signal block data structures is substantially identical to the received signal block data structure; and storing the message value paired with the signal block data structure determined to be substantially identical to the received signal block data structure. - View Dependent Claims (10, 11, 12)
- the machine including a processor and a memory device for storing data;
-
13. An article of manufacture for use in a machine that includes a memory device for storing data;
- a storage medium access device for accessing a medium that stores data; and
a processor connected for accessing the data stored in the memory device and for receiving data from the storage medium access device;
the article comprising;a data storage medium that can be accessed by the storage medium access device when the article is used in the machine; and data stored in the data storage medium so that the storage medium access device can provide the stored data to the processor when the article is used in the machine;
the stored data comprising instruction data indicating instructions the processor can execute;the processor, in executing the instructions, receiving an acquired color image including a plurality of image regions therein;
each image region, referred to as a received signal cell, encoding a message value included in a set of valid unique message values in a predetermined coding scheme;
each received signal cell including a plurality of subregions having at least two different colors spatially arranged in a pattern therein;
the at least two different colors of the received signal cell having an average color value thereof;the processor, further in executing the instructions, determining an image location in the acquired image of each received signal cell using a plurality of signal block data structures;
each signal block data structure representing and being uniquely paired with one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of a received signal cell and including variable data indicating a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in a received signal cell of scaled color difference quantities produced by applying the scaling data to the color difference quantity; andthe processor, still further in executing the instructions, for each received signal cell identified by location in the acquired image, decoding the received signal cell including, computing the average color value of the received signal cell; computing a color difference quantity for the average color value and updating the variable data indicating the color difference quantity in each valid signal block data structure to produce updated valid signal block data structures; subtracting the average color value from the received signal cell to produce a received signal block data structure;
the received signal block data structure indicating color difference quantities between each of the at least two different colors and the average color value;determining which one of the plurality of updated signal block data structures is substantially identical to the received signal block data structure; and storing the message value paired with the updated signal block data structure determined to be substantially identical to the received signal block data structure.
- a storage medium access device for accessing a medium that stores data; and
Specification