Encoding data in color images using patterned color modulated image regions
First Claim
1. A method for operating a processor-controlled machine to produce an output color image having at least one message data item indicating data encoded therein;
- 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;
obtaining a message data item indicating a message value;
the message value being one of an expected set of valid message values in a predetermined coding scheme;
selecting a modulation pattern data structure representing the message value of the message data item;
a selected modulation pattern data structure being one of a plurality of modulation pattern data structures each uniquely representing one of the valid message values in the coding scheme;
each modulation pattern data structure defining size dimensions of an output signal block color image and including at least two different data values spatially arranged in a pattern indicating image locations in the output signal block color image of at least two colors produced by applying a color difference quantity to an unspecified reference color;
obtaining an output color value as the unspecified reference color;
obtaining the color difference quantity using the output color value;
producing an output signal block color image using the output color value, the color difference quantity and the selected modulation pattern data structure;
the output signal block color image having size dimensions indicated by the modulation pattern data structure and including a spatially arranged pattern of color modulated image regions having color values produced by modulating the output color value by the color difference quantity subject to a requirement that the output color value be an average color of all of the color values of the color modulated image regions; and
producing an output color image including the output signal block color image as an image region therein.
4 Assignments
0 Petitions
Accused Products
Abstract
Message values included in a set of valid message values that constitute a coding scheme are each encoded in an image region, called an encoded signal block, composed of a spatially arranged pattern of colored sub-regions. The colored sub-regions have color values produced by modulating a reference color value by a color change quantity expressed as a color space direction in a multi-dimensional color space such that the average color of all of the sub-region colors is the reference color. There is a unique pattern of color-modulated sub-regions for each valid message value in the coding scheme. In one embodiment, the color space direction is computed to be simultaneously detectable by a digital image capture device such as a scanner and substantially imperceptible to a human viewer, so that the embedded data represented by the pattern of color modulations are visually imperceptible in the encoded signal block. When the reference color is determined to be the average color of an image region in an original color image, the encoded signal block may replace the image region in the original image, producing an encoded image version of the original image having little or no image degradation. In this case, the original image colors become carriers of the encoded data. Signal blocks may be arranged to encode data in only one dimension in an image, which allows for less complex decoding algorithms, or in a two dimensional array or grid-like structure, which allows for a high encoded data density rate.
308 Citations
20 Claims
-
1. A method for operating a processor-controlled machine to produce an output color image having at least one message data item indicating data encoded therein;
- 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;obtaining a message data item indicating a message value;
the message value being one of an expected set of valid message values in a predetermined coding scheme;selecting a modulation pattern data structure representing the message value of the message data item;
a selected modulation pattern data structure being one of a plurality of modulation pattern data structures each uniquely representing one of the valid message values in the coding scheme;
each modulation pattern data structure defining size dimensions of an output signal block color image and including at least two different data values spatially arranged in a pattern indicating image locations in the output signal block color image of at least two colors produced by applying a color difference quantity to an unspecified reference color;obtaining an output color value as the unspecified reference color; obtaining the color difference quantity using the output color value; producing an output signal block color image using the output color value, the color difference quantity and the selected modulation pattern data structure;
the output signal block color image having size dimensions indicated by the modulation pattern data structure and including a spatially arranged pattern of color modulated image regions having color values produced by modulating the output color value by the color difference quantity subject to a requirement that the output color value be an average color of all of the color values of the color modulated image regions; andproducing an output color image including the output signal block color image as an image region therein. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14)
- the machine including a processor and a memory device for storing data;
-
15. A method for operating a processor-controlled machine to produce an output color image having at least one message data item indicating data encoded therein;
- 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;obtaining a message data item indicating a message value;
the message value being one of an expected set of valid message values in a predetermined coding scheme;selecting a signal block data structure representing the message value of the message data item;
a selected signal block data structure being one of a plurality of signal block data structures each uniquely representing one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of an output signal block color image and including data indicating a predetermined color space direction and associated color modulation magnitude in a multi-dimensional color space specifying a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in the output signal block color image of scaled color difference quantities produced by applying the scaling data to the predetermined color space direction and associated color modulation magnitude;obtaining an output color value; producing an output signal block color image using the output color value and the selected signal block data structure indicating the predetermined color space direction and the modulation pattern;
the output signal block color image having a spatially arranged pattern of color modulated image regions each having a color value produced by modulating the output color value by the color space direction and the associated color modulation magnitude according to the scaling data indicating the modulation pattern, subject to a requirement that the output color value be an average color of all of the color values of the color modulated image regions; andproducing an output color image including the output signal block color image as an image region therein.
- the machine including a processor and a memory device for storing data;
-
16. A method for operating a processor-controlled machine to encode a plurality of message data items in an encoded color image version of an input color image so that the message data items are visually substantially imperceptible to a human viewer;
- 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 input color image data structure including a plurality of subregions; obtaining a plurality of ordered message data items having a predetermined order and each indicating a message value;
the message value being one of an expected set of valid message values in a predetermined coding scheme;for each ordered message data item, in the predetermined order thereof, producing an output signal block color image, including selecting a signal block data structure representing the message value of the message data item;
a selected signal block data structure being one of a plurality of signal block data structures each uniquely representing one of the valid message values in the coding scheme;
each signal block data structure defining size dimensions of an output signal block color image and including variable data a color difference quantity;
each signal block data structure further including scaling data indicating a spatially arranged modulation pattern specifying image locations in the output signal block color image of scaled color difference quantities produced by applying the scaling data to the color difference quantity;determining an input color value of one of the subregions of the input color image; obtaining the color difference quantity using the input color value; producing an output signal block color image using the input color value, the color difference quantity and the selected signal block data structure;
the output signal block color image having a spatially arranged pattern of color modulated image regions each having a color value produced by modulating the input color value by the color difference quantity according to the scaling data indicating the modulation pattern, subject to a requirement that the input color value be an average color of all of the color values of the color modulated image regions; andreplacing the subregion in the input color image with the output signal block color image; the encoded color image version of the input color image being produced by replacing the subregions of the input color image with the output signal block color images in the predetermined order of the ordered message data items;
the encoded color image being perceived by a human viewer to be substantially identical in appearance to the original color image. - View Dependent Claims (17, 18, 19)
- the machine including a processor and a memory device for storing data;
-
20. 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, obtaining at least one message data item indicating a message value;
the message value being one of an expected set of valid message values in a predetermined coding scheme;the processor, further in executing the instructions, selecting a modulation pattern data structure representing the message value of the at least one message data item;
a selected modulation pattern data structure being one of a plurality of modulation pattern data structures each uniquely representing one of the valid message values in the coding scheme;
each modulation pattern data structure defining size dimensions of an output signal block color image and including at least two different data values spatially arranged in a pattern indicating image locations of at least two colors produced by applying a color difference quantity to an unspecified reference color in the output signal block color image;the processor, further in executing the instructions, obtaining an output color value as the unspecified reference color; the processor, still further in executing the instructions, obtaining the color difference quantity using the output color value; the processor, further in executing the instructions, producing an output signal block color image using the output color value, the color difference quantity and the selected modulation pattern data structure;
the output signal block color image having a spatially arranged pattern of image regions having color values produced by modulating the output color value by the color difference quantity subject to a requirement that the output color value be an average color of all of the color values of the color modulated image regions;the processor, still further in executing the instructions, producing an encoded color image including the output signal block color image as an image region therein.
- a storage medium access device for accessing a medium that stores data; and
Specification