Generating and reading optical codes with variable density to adapt for visual quality and reliability
The parameters of an optical code are optimized to achieve improved signal robustness, reliability, capacity and/or visual quality. An optimization program can determine spatial density, dot distance, dot size and signal component priority to optimize robustness. An optical code generator employs these parameters to produce an optical code at the desired spatial density and robustness. The optical code is merged into a host image, such as imagery, text and graphics of a package or label, or it may be printed by itself, e.g., on an otherwise blank label or carton. A great number of other features and arrangements are also detailed.
1 . A method of decoding an M-bit payload represented by an optical code depicted in an image, including the acts:
determining geometric registration of the optical code in the image, by reference to a reference signal represented by dots within the optical code, said dots corresponding to extrema in a summed ensemble of plural spatial domain sine waves;
processing data from N locations in the image to determine whether a dot is present at each of said locations, while not similarly processing data from locations between said N locations, where N>M;
producing a P-bit string by reference to presence or absence of the dot at each of said N locations; and
applying said P-bit string to an error-correcting decoder to yield M decoded bits;
wherein by ignoring data from locations between said N locations, misinterpretation of blank areas as data is reduced.
2 . The method of claim 1 in which said processing includes processing data from the N locations in the image to determine whether a dot is present at each of said locations, while not similarly processing data from all locations between said N locations.
3 . The method of claim 1 in which P equals N.
4 . The method of claim 1 in which P equals half of N.
5 . The method of claim 1 in which P equals 1024 and N equals 1024 or 2048.
6 . The method of claim 1 in which M is less than 200.
7 . A non-transitory computer readable medium comprising instructions stored therein that, when executed by one or more processor cores, cause said one or more processor cores to perform the following:
determining geometric registration of an optical code depicted in an image, by reference to a reference signal represented by dots within the optical code, said dots corresponding to extrema in a summed ensemble of plural spatial domain sine waves, in which the optical code represents an M-bit payload, where M is a positive integer;
processing data from N locations in the image to determine whether a dot is present at each of said N locations, while not similarly processing data from locations between said N locations, where N>M and N is a positive integer;
producing a P-bit string by reference to presence or absence of the dot at each of said N locations; and
applying the P-bit string to an error-correcting decoder to yield M decoded bits; wherein by ignoring data from locations between said N locations, misinterpretation of blank areas as data is reduced.
8 . The non-transitory computer readable medium of claim 7 in which said processing includes processing data from the N locations in the image to determine whether a dot is present at each of the N locations, while not similarly processing data from all locations between the N locations.
9 . The non-transitory computer readable medium of claim 7 in which P equals N.
10 . The non-transitory computer readable medium of claim 7 in which P equals half of N.
11 . The non-transitory computer readable medium of claim 7 in which P equals 1024 and N equals 1024 or 2048.
12 . The non-transitory computer readable medium of claim 7 in which M is less than 200.
13 . A system comprising:
an input to receive an image depicting an optical code, the optical code representing an M-bit payload, where M is a positive integer;
one or more processor cores configured for:
determining geometric registration of the optical code in the image, by reference to a reference signal represented by dots within the optical code, said dots corresponding to extrema in a summed ensemble of plural spatial domain sine waves;
processing data from N locations in the image to determine whether a dot is present at each of the N locations, while not similarly processing data from locations between the N locations, where N>M and N is a positive integer;
producing a P-bit string by reference to presence or absence of the dot at each of the N locations; and
applying the P-bit string to an error-correcting decoder to yield M decoded bits;
wherein by ignoring data from locations between said N locations, misinterpretation of blank areas as data is reduced; and
an output for outputting the M decoded bits.
14 . The system of claim 13 in which said processing includes processing data from the N locations in the image to determine whether a dot is present at each of the N locations, while not similarly processing data from all locations between the N locations.
15 . The system of claim 13 in which P equals N.
16 . The system of claim 13 in which P equals half of N.
17 . The system of claim 13 in which P equals 1024 and N equals 1024 or 2048.
18 . The system of claim 13 in which M is less than 200.