A machine-readable record is provided for storing encoded information comprising a record medium, data glyphs written on the media in a two-dimensional array and a sync code interleaved with the data code with the sync code occupying every MA th and MB th glyph position in the X and Y directions, with MA and MB each being integers greater than 1, such that there is a multiple utility of glyphs of the sync code as common parts of first and second code sequences.

Patent
   6296192
Priority
Dec 16 1999
Filed
Dec 16 1999
Issued
Oct 02 2001
Expiry
Dec 16 2019
Assg.orig
Entity
Large
7
22
all paid
1. A machine-readable record for storing encoded information, said record comprising:
a record medium;
a data code comprising data glyphs written on said recording medium in a two-dimensional spatial array; and
a synchronizing code for synchronization of said data code written on said medium interlaced with said data code, said synchronizing code comprising:
a two-dimensional lattice with first code sequences in a first direction of said lattice and second code sequences in a second direction of said lattice, said synchronizing code occupying every Ma th and Mb th glyph position in said first and second directions, with Ma and Mb each being integers greater than 1, and wherein there is a multiple utility of glyphs of said synchronizing code as common parts of said first and second sequences.
2. The record of claim 1 wherein said first and second directions are lines orthogonal to each other.
3. The record of claim 1 wherein said first and second sequences are identical.
4. The record of claim 1, wherein said synchronizing code comprises glyphs having characteristics distinct from said data glyphs.
5. The record of claim 1, wherein said data code is the same sequence in each row shifted one position per row.
6. The record of claim 1, wherein said data code comprises first and second data codes shifted oppositely by one lattice interval per row.

This application is related to a concurrently filed, commonly assigned U.S. patent application Ser. No. 09/464,934, entitled "Exclusive Or Cross-Coupled Framing Codes For Self-Clocking Glyphs," to David L. Hecht.

This invention relates to framing formats for self-clocking glyph codes and, more particularly, to framing formats that include a lattice infrastructure of reference glyphs for encoding overhead information combined with a matrix of data glyphs.

As is known, self-clocking glyph codes are suitable for embedding machine readable data in images of various descriptions, but they are especially advantageous for applications that require or benefit from having the machine readable data embedded in the images in a visually nonobstructive or aesthetically pleasing way. Specifically, to provide a visually homogeneous glyph pattern (a glyph pattern in which the glyphs are substantially indistinguishable from each other when viewed by the naked eye under normal lighting conditions) all of the glyphs of the self-clocking glyph pattern typically are defined by symbols from the same symbol set, such as slash-like symbols that are tilted from vertical at approximately ±45° to encode binary "0s" and "1's," respectively. More generally, however, a "glyph" is any optical character that has at least two graphical states for encoding at least two logic states ("1" and "0") of a single bit.

A self-clocking glyph pattern comprises data glyphs that encode information of user interest and reference glyphs that encode overhead information, such as spatial synchronization, address information, labeling information and authentication. This overhead information facilitates the reading and/or interpretation of the data glyphs. Typically, data glyphs are arranged in a two-dimensional lattice. Reference glyphs may also take on a two-dimensional lattice configuration. For example, U.S. Pat. No. 5,449,895, entitled "Explicit Synchronization For Self-Clocking Glyph Codes," gives a number of examples of data glyphs, reference glyphs, and lattice structures.

In general, many of the applications for two-dimensional reference glyphs codes interleaved with data glyph codes involve synchronization of glyph codes. U.S. Pat. No. 5,449,895 for example, deals with facilitating robust synchronization of glyph codes This patent also cites useful background references on self-clocking codes and related applications. The contents of U.S. Pat. No. 5,449,895 is hereby expressly incorporated herein by reference.

U.S. Pat. No. 5,576,532 entitled, "Interleaved and Interlaced Sync Codes and Address Codes for Self-clocking Glyph Codes," describes self-clocking reference glyphs interleaved or interlaced in two dimensions with data glyphs to facilitate the partitioning and correlation of data embedded in the data glyph codes. Specifically, with respect to FIG. 4 there is disclosed the mapping of interwoven two-dimensional interleaved reference glyph codes with data glyphs into a self-clocking glyph code pattern.

Thus, the '531 patent discloses interleaved self-clocking glyph codes to facilitate the partitioning and/or correlation of data subsets based on local spatial relations of reference glyphs in a data glyph code pattern. This approach can improve the interpretation of the logical relationship among data sets and the data in each data set. Both one-dimensional and two-dimensional linear subarray interleaving is described. The contents of U.S. Pat. No. 5,576,532 is hereby expressly incorporated herein by reference.

The present invention builds on and extends the techniques disclosed in U.S. Pat. Nos. 5,449,895 and 5,576,532.

Consistent with the principles of the present invention, machine-readable record for storing encoded information is provided that comprises a recording medium; a data code comprising data glyphs written on the recording medium in a two-dimensional spatial array, and a code for synchronization of the data code written on the recording medium interleaved with the data code, the synchronization code comprising a two-dimensional lattice with first code sequences extending in a first direction of the lattice and second code sequences extending in a second direction of the lattice, the framing code occupying every Ma th and Mb th of the data code in the first and second directions, with Ma and Mb each being integers greater than 1. As a consequence, there is a multiple utility of glyphs of the framing code at intersections of the first and second sequences. Preferably, the first and second directions are lines orthogonal to each other. It is possible, but not required, that the first and second sequences are identical.

Still further features and advantages of this invention will become apparent when the following detailed description is read in conjunction with the attached drawings in which:

FIG. 1 illustrates a glyph pattern having a sync code interleaved with a data code consistent with the principles of the present invention;

FIG. 2 illustrates an alternative embodiment of a sync code interleaved with a data code, consistent with the principles of the present invention;

FIG. 3 illustrates a still further embodiment of a framing code interleaved with a data code, consistent with the principles of the present invention, wherein all of the values of the synchronization code are redundant with respect to each row of sync code;

FIG. 4 illustrates the interleaving of a sync code with a data code, consistent with the principles of the present invention, wherein all of the glyphs comprising the framing code are made up of the data value 1;

FIG. 5 illustrates the positions of an EXCLUSIVE OR logic value matrix;

FIG. 6 illustrates the content of a matrix of EXCLUSIVE OR logic values;

FIG. 7 illustrates an interleaved mapping of a sync code developed utilizing EXCLUSIVE OR logic values with a data code, consistent with the principles of the present invention;

FIG. 8 illustrates an embodiment of a lattice layout in which the code sequence in each row is shifted one position relative to the code sequence in adjacent rows; and

FIG. 9 illustrates another example where shifting two codes enables them to be read off either horizontal rows or vertical columns.

While the invention is disclosed in some detail below with specific reference to certain illustrated embodiments, it is to be understood that there is no intent to limit the invention to the disclosed embodiments. On the contrary, the goal is to cover all modifications, alternatives and equivalents that fall within the spirit and scope of the invention as defined in the appended claims.

As shown in FIG. 1, a data code comprising data glyphs C may be written on a recording medium in a two-dimensional spatial array. In one embodiment, the data glyphs C are written on the medium on centers spatially distributed in nominal accordance with a two-dimensional spatial formatting rule. As may be seen in FIG. 1, glyphs C are written in an orthogonal array comprising rows and columns at right angles to one another. The creation, encoding and printing of the data code of FIG. 1 is considered conventional and should be well-known to those skilled in the art.

In accordance with the teachings of the present invention, and as an illustration thereof, in FIG. 1 a framing code is represented as interleaved with glyphs C of the data code. Specifically, a periodic subarray of reference glyphs B is shown FIG. 1, with a reference glyph B occupying each Ma th data glyph position along the X direction and a reference glyph B occupying each Mb th data glyph position along the Y direction, where "Ma " and "Mb " are integers greater than 1. The lines of direction of the lattice comprising the sync code are preferably along the X and Y axes of the lattice comprising the data code. However, it should be understood that these lines of direction may be non-orthogonal, as in a hexagonal lattice, for example. Moreover, the sequences along a given direction may be identical.

In general, each glyph in the interleaved periodic framing lattice will be a member of two linear spatial sequences of glyphs, with neighbors at intervals Ma and Mb. Specifically, as shown in FIG. 1, the interval for Ma is 2 and the interval for Mb is 4. Accordingly, the framing code lattice enables the multiple utility of glyphs B read as parts of difference sequences. For example, as shown in FIG. 1 the glyphs B contained in line 14 may comprise a first sequence, whereas the glyphs in line 16 may comprise a second sequence. In this case, there is a multiple utility of glyph 18 as part of both the sequence of line 14 and the sequence of line 16.

Furthermore, it should be understood that the designation C and the designation B in FIG. 1 may stand not just for individual glyphs, but also for glyph patterns or subarrays.

With the teachings of the present invention, a sequence of decoding each Ma and/or MB glyphs in a particular direction will implicitly include either only members of the applicable periodic framing code subset or none. This is particularly important in establishing synchronization.

FIG. 2 illustrates the interleaving of a two-dimensional lattice data code with a lattice reference code comprising reference glyphs An,m. Reference glyphs An,m are located periodically with N and M both equal to 3, thereby resulting in equal spacing of glyphs An,m along both horizontal and vertical directions. This facilitates a very homogeneous distribution of the elements of the lattice framing code among those of the lattice data code. For example, as shown in FIG. 2, eight data glyphs C surround each reference glyph An,m and, thus, could represent a data byte. The shape of the subarray patterns for bytes (such as this square pattern), can be altered to correspondingly alter the bit error encoding characteristics of the result and pattern due to spatial effects. There is no requirement that N equals M. Typically, reference lattice code glyphs An,m could serve to form a two-dimensional sync code for data glyphs C.

Again, dual utility is expressed in the embodiment of FIG. 2 wherein, for example, glyph A3,3 is available for use in encoding the reference lattice code for both column 3 and for row 3. This dual utilization of reference lattice element 3,3 can leverage both the two-dimensional spatial geometry of the resulting self-clocking glyph pattern and the two-dimensional mathematical properties of the reference lattice code. In particular, in reading glyphs, the expected location of an element in the reference lattice code can be estimated from the location of neighbors in the reference lattice code in at least four directions, that is along two lines in each of the vertical and horizontal directions.

FIG. 3 discloses an example of redundant row codes, where AI,J equals aJ, and aJ defines a code that is the same for each row, such as a horizontal addressing code. Thus, each column subarray of AI,J has all the same glyph bit values and can serve as an effective synchronization code.

FIG. 4 illustrates the use of two-dimensional constant synchronization codes wherein each element AI,J equals "1." This case forms a very efficient code for local synchronization since it has maximum distinguishability from random data bits. In addition, the dispersion of the constant glyph representing "1" tends to suppress its visual distinction from surrounding glyph patterns, especially compared to a linear pattern of the same glyph. In FIG. 4, if absolute addressing is required a separate code may be used.

FIGS. 5, 6, and 7 demonstrate an EXCLUSIVE OR methodology for developing cross-coupled codes. In accordance with the teaching of this aspect of the invention, two-dimensional framing codes are interleaved for self-clocking glyph codes which permit intersecting framing lines to be encoded with independent synchronization and addressing code information, while intrinsically managing conflicts of the bit values for glyphs at intersections. This technique thus permits the utilization of framing code subarrays of any size, independent of the frame code. This method encodes all glyphs with the value determined by a logic EXCLUSIVE OR ("XOR") of two code lines. Thus, an entire code line of glyphs is inverted with respect to an input code when the corresponding code for that line in the other input code has a value of "1." Using this technique, parallel sync lines should have the same code with equivalent logical positions (code phase) at every intersection.

As one illustrative example, a first code line bit sequence A may comprise values 011011011 . . . and be used for a vertical direction code line bit sequence. A second code line bit sequence B may have the values 0011101001 . . . and be used for a horizontal code line bit sequence. When first bit line sequence A is EXCLUSIVE OR'd with the second bit line sequence B, a matrix DI,J (i,j) is formed, whereby DI,J (i,j) equals Aj(j) ⊕Bi(i). Thus, the first step in implementing this aspect of the subject invention involves the establishment of first and second code line bit sequences such as, by way of example, code line bit sequences A and B. The second step is to determine the EXCLUSIVE OR (XOR) logic value of the first and second code lines to obtain a two-dimensional matrix of XOR logic values. One such two-dimensional matrix is illustrated in FIG. 5 as showing at the various vertical and horizontal locations a logic value DI,J calculated as indicated above. In FIG. 6, the specific value for each location DI,J is given for the A and B code line bit sequences identified above, namely where A equals 011011011 . . . and B equals 0011101001 . . . Those skilled in the art should understand that, given the above example, the intersection of a row and column code for a given parallel line the resultant logic value is inverted if the corresponding code for that line in the second code bit line sequence has a value of "1." The inherent result of the EXCLUSIVE OR operation thus intrinsically manages conflicts for glyphs at the intersections of the resultant matrix of XOR logic values.

For decoding, all that is necessary is to detect the bits that have been subject to inversion. For synchronization codes, this is typically readily accomplished by comparing a specific DI,J value with the corresponding first and second code line bit sequence values. A typical method for decoding synchronization codes is to correlate the read bit pattern against the predefined sync pattern to find a sharp maximum. If all the read bits are flipped, the correlation will be a sharp negative maximum. Then a code A can be read from any of the columns from the reference lattice and the code B can be read from any of the rows of the reference lattice. Reading a row and a column can provide the XY address of the intersection glyph.

This XOR encoding can be applied to any rectangular or any parallelogram lattice structure, independent of interlace of another glyph pattern array.

To create EXCLUSIVE OR sync code, in accordance with the teachings of the present invention, attention is directed toward FIG. 7, wherein an interleave methodology is disclosed such that the sync codes of FIG. 6 are now interleaved with data glyphs C, as has previously been described. In the embodiment of FIG. 7, Ma equals 3 and Mb equals 3. As a general rule, Ma and Mb must each be integers greater than 1, but they need not equal each other. Thus, there is provided a sync code comprising a two-dimensional lattice in that the frame code extends in both the horizontal and vertical directions. A first code sequence, for example 001110, extends horizontally in a first, horizontal line direction 30 while, for example, a second code sequence 100100 extends in a second, vertical line direction of the lattice. As a consequence of the present technique, there is multiple utility of glyphs, such as glyph 34 of the framing code, as a common part of both the first sequence in row 30 and the second sequence in row 32.

One utility of the XOR method of the present invention is that the framing code sequences A and B to be XOR'd need not have a predefined length to avoid intrinsic conflicts in the resultant framing code matrix. For decoding, all that is necessary is the identification of the inverted bits. Once those bits have been reverted to their original condition, the A code can be read from any of the columns of the framing code lattice and the B code can be read from any of the rows of the framing code lattice.

With respect to the present invention, it is advantageous to enable the resultant interleaved glyph lattice to appear visually homogeneous under ordinary viewing conditions. For this purpose, glyphs and different interlaced subpatterns are preferably members of the same glyph set, and the glyph cell center spacings between neighboring glyphs are preferably consistent across the interleaved subpatterns. It is possible to have the same glyphs represent different data values and different subpatterns, or even represent different numbers of bits, for example, where some subpatterns incorporate more distinct glyphs, such as a slash with four possible rotation positions versus the more typical two rotational positions.

On the other hand, distinct patterns may be purposefully obtained by interleaving subpatterns with distinct glyph orientations, glyph shapes, glyph sizes, glyph color, or glyph tiling patterns. Incorporating these distinct features naturally facilitates distinguishing interleaved lattice glyphs during a read and decoding process.

FIG. 8 illustrates an embodiment of a lattice layout in which the code sequence in each row is shifted one position relative to the code sequence in adjacent rows. The same code sequence can be read off either a horizontal line or column of lattice glyphs. This embodiment includes two lattice codes, u and v, which have shifts in opposite directions. The lattice has integer position intervals Mua =4, Mva =4, Mub =4, and Mvb =4. In the particular case where u and v are address codes, this enables reading a local address from either a row or column of lattice glyphs, either of which contains both sequences of the u and v codes. In one embodiment, the d codes may be absent, leaving only the address code comprised of lattice codes.

FIG. 9 illustrates another example where shifting two codes enables them to be read off either horizontal rows or vertical columns. In this case, since the u and v are not interleaved horizontally, two rows must be captured to read both u and v codes. This configuration of codes may also be used as an address carpet where u and v are address codes.

The foregoing description of an implementation of the invention has been presented for purposes of illustration and description. It is not exhaustive and does not limit the invention to the precise form disclosed. Modifications and variations are possible in light of the above teachings or may be acquired from practicing of the invention.

Hecht, David L.

Patent Priority Assignee Title
7042372, Oct 31 2002 HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Encoding information in codes identifying beginning of regions of data
7066395, Feb 04 2002 Baumer Optronic GmbH Redundant two-dimensional code and a decoding method
7240849, Aug 27 2004 Hewlett-Packard Development Company, L.P.; HEWLETT-PACKARD DEVELOPMENT COMPANY, L P Glyph pattern generation and glyph pattern decoding
7278585, Feb 04 2002 Baumer Optronic GmbH Redundant two-dimensional code and a decoding method
7412089, May 23 2005 Nextcode Corporation Efficient finder patterns and methods for application to 2D machine vision problems
7991153, Aug 26 2008 Nanoglyph, LLC Glyph encryption system and related methods
9665813, Jan 30 2013 Hewlett-Packard Development Company, L.P. Data-bearing media
Patent Priority Assignee Title
5128525, Jul 31 1990 XEROX CORPORATION, STAMFORD, CT A CORP OF NY Convolution filtering for decoding self-clocking glyph shape codes
5221833, Dec 27 1991 Xerox Corporation; XEROX CORPORATION A CORPORATION OF NY Methods and means for reducing bit error rates in reading self-clocking glyph codes
5245165, Dec 27 1991 Xerox Corporation Self-clocking glyph code for encoding dual bit digital values robustly
5449895, Dec 22 1993 Xerox Corporation Explicit synchronization for self-clocking glyph codes
5449896, Dec 22 1993 Xerox Corporation Random access techniques for use with self-clocking glyph codes
5453605, Dec 22 1993 Xerox Corporation Global addressability for self-clocking glyph codes
5521372, Dec 22 1993 Xerox Corporation Framing codes for robust synchronization and addressing of self-clocking glyph codes
5572010, Jan 03 1995 Xerox Corporation Distributed type labeling for embedded data blocks
5576532, Jan 03 1995 Xerox Corporation Interleaved and interlaced sync codes and address codes for self-clocking glyph codes
5611575, Jan 03 1995 Xerox Corporation Distributed state flags or other unordered information for embedded data blocks
5694102, Dec 21 1995 Xerox Corporation Vector reconstruction of asynchronously captured tiled embedded data blocks
5717197, Dec 21 1995 Xerox Corporation Tiled embedded data block-types for generic embedded data block systems
5825933, Dec 20 1996 Xerox Corporation Parallel propagating embedded binary sequence for parameterizing two dimensional image domain code patterns in two dimensional address space
5862271, Dec 20 1996 Xerox Corporation Parallel propagating embedded binary sequences for characterizing and parameterizing two dimensional image domain code patterns in N-dimensional address space
5870510, Dec 20 1996 Xerox Corporation Parallel propagating embedded binary sequences for parameterizing two dimensional image domain code patterns in N-dimensional address space
5929429, Jan 03 1995 Xerox Corporation Distributed dimensional labeling for dimensional characterization of border-type embedded data blocks
5937110, Dec 20 1996 Xerox Corporation Parallel propagating embedded binary sequences for characterizing objects in N-dimensional address space
5939703, Jan 03 1995 Xerox Corporation Distributed dimensional labeling for dimensional characterization of embedded data blocks
6000621, Dec 21 1995 Xerox Corporation Tilings of mono-code and dual-code embedded data pattern strips for robust asynchronous capture
6092732, Jan 29 1998 Xerox Corporation Selectively accented serpentine halftone patterns for embedding human readable information in images
6182901, Dec 22 1993 Xerox Corporation Orientational disambiguation for self-clocking glyph codes
6208771, Dec 20 1996 Xerox PARC Methods and apparatus for robust decoding of glyph address carpets
///////
Executed onAssignorAssigneeConveyanceFrameReelDoc
Dec 16 1999Xerox Corporation(assignment on the face of the patent)
Dec 16 1999HECHT, DAVID L Xerox CorporationASSIGNMENT OF ASSIGNORS INTEREST SEE DOCUMENT FOR DETAILS 0104730736 pdf
Jun 21 2002Xerox CorporationBank One, NA, as Administrative AgentSECURITY INTEREST SEE DOCUMENT FOR DETAILS 0131530001 pdf
Jun 25 2003Xerox CorporationJPMorgan Chase Bank, as Collateral AgentSECURITY AGREEMENT0151340476 pdf
Jun 25 2003BANK ONE, NAXerox CorporationRELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0347170200 pdf
Dec 04 2006JPMORGAN CHASE BANK, N A Xerox CorporationRELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0347150792 pdf
Aug 22 2022JPMORGAN CHASE BANK, N A AS SUCCESSOR-IN-INTEREST ADMINISTRATIVE AGENT AND COLLATERAL AGENT TO JPMORGAN CHASE BANKXerox CorporationRELEASE BY SECURED PARTY SEE DOCUMENT FOR DETAILS 0667280193 pdf
Date Maintenance Fee Events
Mar 20 2002ASPN: Payor Number Assigned.
Feb 15 2005M1551: Payment of Maintenance Fee, 4th Year, Large Entity.
Feb 10 2009M1552: Payment of Maintenance Fee, 8th Year, Large Entity.
Mar 08 2013M1553: Payment of Maintenance Fee, 12th Year, Large Entity.


Date Maintenance Schedule
Oct 02 20044 years fee payment window open
Apr 02 20056 months grace period start (w surcharge)
Oct 02 2005patent expiry (for year 4)
Oct 02 20072 years to revive unintentionally abandoned end. (for year 4)
Oct 02 20088 years fee payment window open
Apr 02 20096 months grace period start (w surcharge)
Oct 02 2009patent expiry (for year 8)
Oct 02 20112 years to revive unintentionally abandoned end. (for year 8)
Oct 02 201212 years fee payment window open
Apr 02 20136 months grace period start (w surcharge)
Oct 02 2013patent expiry (for year 12)
Oct 02 20152 years to revive unintentionally abandoned end. (for year 12)