Encoded cells and cell arrays
Summary by NHIP
Encoded Cell Array Article
The article of manufacture includes a surface with a readable cell array containing alignment cells and encoded cells. Each encoded cell features a perimeter, an alignment mark, and a radial line pattern representing at least two bits of a binary identifier.
Claim Score by NHIP
Abstract
Methods pertaining to encoding and decoding binary identifiers within a cell array are described. A binary identifier received by computing device can be encoded according to an encoding scheme. The cell array can include multiple encoded cells, each of which indicates a predetermined sequence of two or more bits, and which includes a perimeter, and both an alignment mark and a line pattern within the perimeter. The line pattern can be one of an empty-cell line pattern, a pattern including one or more asymmetrical radial vectors, one or more diametrical vectors, a symmetric cross, or a symmetrical star, or some other line pattern. The encoding scheme can define a plurality of cell colors that correspond to a predetermined sequence of two or more bits. The bits corresponding to a cell color can be redundant to bits corresponding to a line pattern for confirming accuracy of decoding a cell.

Term
8.6 yearsleft in the term
Expires 27 April 2035.
- Priority
- Filed
- Granted
- Today
- Expires
20 claims: 1 independent, 19 dependent
- 1Broadest claimClaim Score 36, narrow(NHIP)An article of manufacture comprising:a surface;and a cell array, readable by a computing device, at the surface, wherein: the cell array at the surface includes one or more alignment cells and two or more encoded cells, the one or more alignment cells include at least one alignment cell that indicates for decoding the cell array a start point within cell array, an end point within the cell array, or an end point of a row within the cell array, the two or more encoded cells encode, in accordance with an encoding scheme, a binary identifier that represents information pertaining to the article of manufacture, the binary identifier comprises a plurality of bits in a predetermined sequence, each encoded cell represents a respective portion of the plurality of bits in the predetermined sequence, the respective portion includes two or more bits of the plurality of bits in the predetermined sequence, each encoded cell at the surface includes a perimeter and an alignment mark and a line pattern within the perimeter, and the line pattern within the perimeter for at least one encoded cell at the surface includes a line positioned radially with respect to the alignment mark of the at least one encoded cell to represent at least two bits in the predetermined sequence of the at least one encoded cell at the surface.
198 paragraphs in 4 sections, as filed
REFERENCE TO RELATED APPLICATION
This application is a continuation application of U.S. patent application Ser. No. 15/304,112, which is a 35 U.S.C. § 371 filing of International Application No. PCT/GB2015/051217 filed Apr. 27, 2015. International Application No. PCT/GB2015/051217 claims priority to United Kingdom Patent Application GB 1407432.2 filed Apr. 28, 2014. This application incorporates U.S. patent application Ser. No. 15/304,112 by reference in its entirety.
BACKGROUND
Barcodes are, in general, optical representations of binary data encoded by means of positional or dimensional attributes. Such barcodes can be scanned by optical scanners that, together with interpretive software, allow the encoded binary data to be recovered.
A one-dimensional (“1-D”) or linear barcode consists of bars (i.e., black lines) and spaces (i.e., white spaces) of various widths and employs width encoding only. Such 1-D barcodes are scanned from side-to-side and information is relevant in one dimension only. A single-wide bar represents a binary one. A single-wide space represents a zero.
A two-dimensional (“2-D”) or matrix barcode consists of an arrangement of dark and light squares and uses both width and height encoding. In a 2-D matrix code, the matrix code consists of modules. A dark module is a binary one and a light module is a binary zero. 2-D barcodes are scanned both from side-to-side and top-to-bottom and information is relevant in two dimensions. An example of such a 2-D barcode is the well-known and widely-used QR code.
The applicant has appreciated that it is possible to provide an encoded cell that represents more than a single bit of information, thereby enabling the provision of encoded cells (e.g., a cell array) that represent greater quantities of information than prior art barcodes. Furthermore, the applicant has appreciated that it is possible to include, within a cell array, cells that identify an encoding scheme used to encode other cells in the cell array. Such identity can reduce an amount of time needed to decode a cell array. Furthermore still, the applicant has appreciated that a cell within a cell array can include redundant aspects for confirming accuracy of decoding the cell array. Furthermore still, the applicant has appreciated that encoded cells with different noise level tolerances can be defined to accommodate different means for outputting a cell or cell array and to accommodate different means of capturing a cell or cell array.
Example embodiments are described herein. In one respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array
In another respect, an example embodiment takes the form of a machine comprising: a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array.
In another respect, an example embodiment takes the form of a non-transitory computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a binary identifier comprising a plurality of bits, determining, by the computing device, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, generating, by the computing device, a cell array that includes the one or more encoded cells, and outputting, by the computing device, data for producing a graphical representation of the cell array.
In another respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment, takes the form of a machine comprising: a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment takes the form of a non-transitory computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, decoding, by the computing device, each encoded cell in the captured cell array in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell, recovering, by the computing device, the binary identifier by combining the recovered bits, and outputting, by the computing device, the recovered binary identifier.
In another respect, an example embodiment takes the form of a method comprising: receiving, by a computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by a display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of a machine comprising: a display, a computing device, and a computer-readable medium storing program instructions, that when executed by the computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by the display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of a computer-readable medium storing program instructions, that when executed by a computing device, cause a set of functions to be performed, the set of functions comprising: receiving, by the computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter, and displaying, by a display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In another respect, an example embodiment takes the form of an article of manufacture comprising: a surface, and a cell array, readable by a computing device, on the surface, wherein the cell array includes one or more encoded cells that encode, in accordance with an encoding scheme, a binary identifier that represents information pertaining to the article of manufacture, wherein the binary identifier comprises a plurality of bits, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
In embodiments of the disclosure comprising a non-transitory computer-readable medium or a program executable on a computer-readable medium, the computer-readable medium may store instructions on physical media such as a DVD, or a solid state drive, or a hard drive. Alternatively, in any of these embodiments, a transitory computer-readable medium may be used instead of the non-transitory computer-readable medium. For example, a program may be provided in the form of instructions provided over a connection such as a network connection which is linked to a network such as the Internet.
These as well as other aspects and advantages will become apparent to those of ordinary skill in the art by reading the following detailed description, with reference where appropriate to the accompanying drawings. The embodiments described herein are intended to be examples only and do not necessarily limit the scope of the invention as recited in the claims.
DESCRIPTION OF THE FIGURES
Example embodiments are described herein with reference to the drawings.
<figref idref="DRAWINGS">FIG. 1</figref> is a schematic representation of an encoded cell in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 2</figref> illustrates a plurality of states or line patterns of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 3</figref> illustrates additional states or line patterns of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 4</figref> illustrates additional states or line patterns of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 5</figref> illustrates another state or line pattern of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 6</figref> illustrates an alignment node for use in a cell array in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 7</figref> illustrates another alignment node for use in a cell array in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 8</figref> illustrates additional states or line patterns of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 9</figref> is a schematic representation of an encoded cell with an alternative alignment mark in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 10</figref> illustrates a cell array in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 11</figref> illustrates a schematic representation of encoded cells with an alternative perimeter in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 12</figref> illustrates a schematic representation of additional encoded cells in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 13</figref> is a block diagram showing an example system in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 14</figref> is a block diagram showing an example machine in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 15</figref> is a flowchart depicting a set of functions that can be carried out in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 16</figref> is a flowchart depicting another set of functions that can be carried out in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 17</figref> is a flowchart depicting another set of functions that can be carried out in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 18</figref> illustrates additional states or line patterns of the encoded cell of <figref idref="DRAWINGS">FIG. 1</figref> in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 19</figref> illustrates a schematic representation of additional encoded cells in accordance with one or more example embodiments.
<figref idref="DRAWINGS">FIG. 20</figref> illustrates features of a cell array in accordance with one or more example embodiments.
DETAILED DESCRIPTION
I. Introduction
This description describes example embodiments, at least some of which pertain to encoded cells and cell arrays. In general, an encoded cell can include a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter. A cell array can include two or more cells. A cell array can be referred to as an “encoded cell array.” A cell array can include cells that encode bits of a binary identifier and other cells.
Throughout this description, the articles “a” or “an” are used to introduce elements of the example embodiments. Any reference to “a” or “an” refers to “at least one,” and any reference to “the” refers to “the at least one,” unless otherwise specified, or unless the context clearly dictates otherwise. The intent of using the conjunction “or” within a described list of at least two terms is to indicate any of the listed terms or any combination of the listed terms. The use of ordinal numbers such as “first,” “second,” “third” and so on is to distinguish respective elements rather than to denote a particular order of those elements unless the context clearly dictates otherwise. Throughout this description, the terms “multiple” and a “plurality of” refer to “two or more” or “more than one.”
The diagrams, depictions, and flow charts shown in the figures are provided merely as examples and are not intended to be limiting. Many of the elements illustrated in the figures or described herein are functional elements that can be implemented as discrete or distributed components or in conjunction with other components, and in any suitable combination and location. Those skilled in the art will appreciate that other arrangements and elements (e.g., machines, interfaces, functions, orders, or groupings of functions or operations) can be used instead. Each element, or components of an element, shown in the figures or described in this description, alone or in combination with one or more other elements or components thereof, can be referred to as a system or a machine. Furthermore, various functions or operations described as being performed by one or more elements can be carried out by a processor executing computer-readable program instructions or by any combination of hardware, firmware, or software.
II. Encoded Cell
<figref idref="DRAWINGS">FIG. 1</figref> illustrates an example cell <b>10</b>. Cell <b>10</b> includes a perimeter <b>12</b>, an alignment mark <b>14</b> within perimeter <b>12</b>, and a line pattern <b>16</b> within perimeter <b>12</b>. Aspects of cell <b>10</b>, such as line pattern <b>16</b>, can represent data, such as a single predetermined bit of binary data (or more simply, a bit), a predetermined sequence of two or more bits of binary data (or more simply, bits), or other data as described herein. In such cases, cell <b>10</b> can be referred to as encoded cell <b>10</b>. “Within the perimeter” refers to inside the perimeter (e.g., inside an area defined by perimeter <b>12</b>). The area defined by perimeter <b>12</b> can be referred to as a cell body <b>11</b>. As shown in <figref idref="DRAWINGS">FIG. 1</figref>, perimeter <b>12</b> and cell body <b>11</b> are hexagonal-shaped, but are not so limited. Geometrically speaking, cell <b>10</b> can have one or more lines of symmetry. A cell <b>10</b> can include a centre, such as a location within the perimeter at which two or more of the cell's lines of symmetry intersect.
Line pattern <b>16</b> can be referred to as an empty-cell line pattern, which is a cell line pattern that lacks any lines within perimeter <b>12</b>. Examples of line patterns with at least one line within perimeter <b>12</b> are shown in <figref idref="DRAWINGS">FIG. 2</figref> to <figref idref="DRAWINGS">FIG. 5</figref>, <figref idref="DRAWINGS">FIG. 12</figref>, <figref idref="DRAWINGS">FIG. 13</figref>, and <figref idref="DRAWINGS">FIG. 18</figref>. Each line pattern of an encoded cell can correspond to distinct cell state. For example, an empty-cell line pattern, such as line pattern <b>16</b>, can correspond to a first state (e.g., state #1) of encoded cell <b>10</b>.
Perimeter <b>12</b> defines a continuous border of cell <b>10</b>. Perimeter <b>12</b> can be black or another color, such as a color identified in Table 6 below. Perimeter <b>12</b> can be a polygon such as, but not limited to, a triangle, a quadrilateral, a pentagon, a hexagon, or a dodecagon. A perimeter of a cell is not so limited, however, as at least a portion of a perimeter can be curved. As an example, a perimeter can comprise a circular perimeter, an oval perimeter or an elliptical perimeter.
Alignment mark <b>14</b> can include or be represented as a circle (e.g., a dot), but is not so limited. Perimeter <b>12</b> and alignment mark <b>14</b> can each include a respective centre. Alignment mark <b>14</b> can be centrally located (i.e., a centre of alignment mark <b>14</b> can be located at a centre of cell <b>10</b>). Alternatively, a centre of alignment mark <b>14</b> can be offset from a centre of cell <b>10</b>.
A cell array can include multiple encoded cells. A cell array can encode a binary identifier. A line pattern in each encoded cell can correspond to one of a plurality of predefined line patterns. Each predefined line pattern and each cell including that line pattern within its perimeter <b>12</b> can correspond to a cell state. A line pattern or cell state can correspond to a predetermined sequence of two or more bits. Other line patterns or cell state can correspond to other data, such as a decoding instruction. A cell with such line pattern can be referred to as a “decoding cell.”
A plurality of predefined line patterns can include the empty-cell line pattern <b>16</b>. Each of one or more of the predefined line patterns can include one or more asymmetrical radial vectors, such as an asymmetrical radial vector line pattern shown in <figref idref="DRAWINGS">FIG. 2</figref>. Each of the one or more plurality of predefined line patterns can include one or more diametric vectors, such as a diametric vector line pattern shown in <figref idref="DRAWINGS">FIG. 3</figref>. Each of the one or more of the plurality of predefined line patterns can include a symmetrical cross, such as a symmetrical cross line pattern shown in <figref idref="DRAWINGS">FIG. 4</figref>. Each of the one or more of the plurality of predefined line patterns can include a symmetric star, such as the symmetric star line pattern shown in <figref idref="DRAWINGS">FIG. 5</figref>. Each of the one or more of the plurality of predefined line patterns can include a curved line pattern as shown in <figref idref="DRAWINGS">FIG. 18</figref>.
A decoding cell can indicate an encoding scheme used to encode a binary identifier. For example, a decoding cell can indicate an encoding scheme that uses eight cell states to represent a predetermined sequence of three bits. As another example, a decoding cell can indicate an encoding scheme that uses colored cells to represent a predetermined sequence of two or more bits.
A decoding cell can indicate a variety of decoding instructions. As an example, a decoding instruction can include a start-of-row instruction that indicates a cell is the first cell in a cell array row (i.e., a row of the cell array). A computing device can determine that an encoded cell adjacent to the decoding cell in that row is the first cell of the cell array that can be decoded in order to recover a binary identifier. As another example, a decoding instruction can include an end-of-row instruction that indicates a cell is the last cell in a cell array row. A computing device can determine that an encoded cell adjacent to the decoding cell including the end-of-row instruction is the last cell in that row to decode in order to recover the binary identifier. As another example, a decoding instruction can include an end-of-array instruction that a computing device can use to determine there are no additional cells in the cell array to scan or decode.
Next, <figref idref="DRAWINGS">FIG. 2</figref> shows eight instances of encoded cell <b>10</b> including a perimeter <b>12</b>, an alignment mark <b>14</b> within perimeter <b>12</b>, and a line pattern <b>17</b> within perimeter <b>12</b>. The perimeters and alignment marks in these encoded cells can be identical. Each line pattern <b>17</b> shown in <figref idref="DRAWINGS">FIG. 2</figref> is located at a different number of degrees from a given reference angle.
Each encoded cell <b>10</b> shown in <figref idref="DRAWINGS">FIG. 2</figref> includes a distinct line pattern <b>17</b> extending from an alignment mark to perimeter. The line patterns <b>17</b> are examples of asymmetrical radial lines, which can be referred to as “asymmetrical radial vectors” or “asymmetrical line patterns.” Additionally, an asymmetrical radial line within a cell can be configured within one of the following example arrangements: (i) the asymmetrical radial line extends away from an alignment mark to a point short of perimeter, (ii) the asymmetrical radial line extends away from a perimeter to a point short of an alignment mark, and (iii) the asymmetrical radial line extends between a perimeter and an alignment mark without contacting either of the perimeter and the alignment mark.
In accordance with an example embodiment, an asymmetrical line pattern (e.g., an asymmetrical radial line) of a cell can be aligned in any one of eight possible directions in angular increments of 45° from a given reference direction, namely at angular positions of 0°, 45°, 90°, 135°, 180°, 225°, 270° and 315° from the reference direction, as shown in <figref idref="DRAWINGS">FIG. 2</figref>. The asymmetrical line patterns <b>17</b>, as an attribute of cell <b>10</b>, define an additional eight states (e.g., states #2 to #9) of cell <b>10</b>. On their own, these additional eight states can represent three bits of embedded binary data, as illustrated in Table 1.
<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="70pt" align="center" /><colspec colname="2" colwidth="56pt" align="center" /><colspec colname="3" colwidth="91pt" align="center" /><thead><row><entry namest="1" nameend="3" rowsep="1">TABLE 1</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>State</entry><entry>Angular Position</entry><entry>Binary Data</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>#2</entry><entry> 0°</entry><entry>000</entry></row><row><entry>#3</entry><entry> 45°</entry><entry>001</entry></row><row><entry>#4</entry><entry> 90°</entry><entry>010</entry></row><row><entry>#5</entry><entry>135°</entry><entry>011</entry></row><row><entry>#6</entry><entry>180°</entry><entry>100</entry></row><row><entry>#7</entry><entry>225°</entry><entry>101</entry></row><row><entry>#8</entry><entry>270°</entry><entry>110</entry></row><row><entry>#9</entry><entry>315°</entry><entry>111</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Cell <b>10</b> can include another type of line pattern in the form of a diametrical (i.e. symmetrically opposing) vector <b>18</b> passing through alignment mark <b>14</b>, as illustrated in <figref idref="DRAWINGS">FIG. 3</figref>. A diametrical vector can be referred to as a “diametrical line pattern.” In accordance with one or more example embodiments, diametrical vectors <b>18</b> may be aligned in any one of four possible directions in angular increments of 45° from a given reference direction, namely at angular positions of 0°, 45°, 90°, and 135° from the reference direction, as shown in <figref idref="DRAWINGS">FIG. 3</figref>. The addition of the diametrical vectors <b>18</b> as a further attribute of cell <b>10</b> defines an additional four states (e.g., states #10 to #13) of cell <b>10</b>, which, on their own, can represent two bits of embedded information, as illustrated in Table 2.
<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="70pt" align="center" /><colspec colname="2" colwidth="56pt" align="center" /><colspec colname="3" colwidth="91pt" align="center" /><thead><row><entry namest="1" nameend="3" rowsep="1">TABLE 2</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>State</entry><entry>Angular Position</entry><entry>Binary Data</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>#10</entry><entry> 0°</entry><entry>00</entry></row><row><entry>#11</entry><entry>45°</entry><entry>01</entry></row><row><entry>#12</entry><entry>90°</entry><entry>10</entry></row><row><entry>#13</entry><entry>135° </entry><entry>11</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables><br /> In accordance with other example embodiments, the angular increments from a given reference direction for diametrical vectors can be other than 45° so as to provide a different number of cell states corresponding to a set of diametrical vectors. Diametrical vectors <b>68</b> passing through an alignment mark are also shown in <figref idref="DRAWINGS">FIG. 11</figref>.
Cell <b>10</b> can include another type of line pattern in the form of a symmetric cross <b>20</b> centered at alignment mark <b>14</b>, as illustrated in <figref idref="DRAWINGS">FIG. 4</figref>. A symmetric cross can be referred to a “symmetric cross line pattern.” In accordance with an example embodiment, symmetric cross <b>20</b> may be aligned in either of two possible directions in angular increments of 45° from a given reference direction, at angular positions of 00 or 45° from the reference direction. The addition of the symmetric cross <b>20</b> as another attribute of cell <b>10</b> defines another two states (e.g., states #14 and #15) of cell <b>10</b> which, on their own, can represent a single bit of embedded information, as illustrated in Table 3.
<tables id="TABLE-US-00003" num="00003"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="70pt" align="center" /><colspec colname="2" colwidth="56pt" align="center" /><colspec colname="3" colwidth="91pt" align="center" /><thead><row><entry namest="1" nameend="3" rowsep="1">TABLE 3</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>State</entry><entry>Angular Position</entry><entry>Binary Data</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>#14</entry><entry> 0°</entry><entry>0</entry></row><row><entry>#15</entry><entry>45°</entry><entry>1</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables><br /> In accordance with other example embodiments, an angular increment from a given reference direction for symmetric crosses can be other than 45° so as to provide a different number of cell states using a set of symmetric crosses. Symmetric crosses <b>59</b> passing through an alignment mark are also shown in <figref idref="DRAWINGS">FIG. 11</figref>.
Cell <b>10</b> can include another type of line pattern in the form of a symmetrical star <b>22</b> centered on the alignment mark <b>14</b>, as illustrated in <figref idref="DRAWINGS">FIG. 5</figref>. A symmetric star <b>55</b> passing through an alignment mark is also shown in <figref idref="DRAWINGS">FIG. 11</figref>. The use of symmetrical star <b>22</b> as another attribute of cell <b>10</b> defines an additional state (e.g., state #16) which, together with the empty-cell line <b>16</b> can represent a single bit of embedded information, as illustrated in Table 4.
<tables id="TABLE-US-00004" num="00004"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="77pt" align="center" /><colspec colname="2" colwidth="42pt" align="left" /><colspec colname="3" colwidth="98pt" align="center" /><thead><row><entry namest="1" nameend="3" rowsep="1">TABLE 4</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>State</entry><entry>Line Pattern</entry><entry>Binary Data</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>#14</entry><entry>Empty-cell</entry><entry>0</entry></row><row><entry>#15</entry><entry>Star</entry><entry>1</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
The different types of line patterns shown in <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref> do not have to be used in isolation from each other or other line patterns. For example, it will be appreciated that the empty-cell line pattern <b>16</b> and corresponding cell state #1, the eight additional line patterns and corresponding cell states #2 to #9 defined by the asymmetric line patterns <b>17</b> of <figref idref="DRAWINGS">FIG. 2</figref>, the four additional line patterns and corresponding cell states #10 to #13 defined by the diametrical line patterns <b>18</b> of <figref idref="DRAWINGS">FIG. 3</figref>, the two additional line patterns and corresponding cell states #14 and #15 defined by the symmetric cross line pattern <b>20</b> of <figref idref="DRAWINGS">FIG. 4</figref>, and the line pattern and corresponding cell state #16 defined by the symmetrical star <b>22</b> of <figref idref="DRAWINGS">FIG. 5</figref>, in combination, result in 16 distinct line patterns and corresponding cell states. These 16 distinct line patterns can be used to encode a total of four bits of binary data, two octal digits, or one hexadecimal digit, as illustrated in Table 5.
<tables id="TABLE-US-00005" num="00005"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="14pt" align="left" /><colspec colname="1" colwidth="21pt" align="center" /><colspec colname="2" colwidth="63pt" align="center" /><colspec colname="3" colwidth="35pt" align="center" /><colspec colname="4" colwidth="84pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="4" rowsep="1">TABLE 5</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row><row><entry /><entry>State</entry><entry>Binary Data</entry><entry>Octal Data</entry><entry>Hexadecimal Data</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>#1</entry><entry>0000</entry><entry>00</entry><entry>0</entry></row><row><entry /><entry>#2</entry><entry>0001</entry><entry>01</entry><entry>1</entry></row><row><entry /><entry>#3</entry><entry>0010</entry><entry>02</entry><entry>2</entry></row><row><entry /><entry>#4</entry><entry>0011</entry><entry>03</entry><entry>3</entry></row><row><entry /><entry>#5</entry><entry>0100</entry><entry>04</entry><entry>4</entry></row><row><entry /><entry>#6</entry><entry>0101</entry><entry>05</entry><entry>5</entry></row><row><entry /><entry>#7</entry><entry>0110</entry><entry>06</entry><entry>6</entry></row><row><entry /><entry>#8</entry><entry>0111</entry><entry>07</entry><entry>7</entry></row><row><entry /><entry>#9</entry><entry>1000</entry><entry>10</entry><entry>8</entry></row><row><entry /><entry>#10 </entry><entry>1001</entry><entry>11</entry><entry>9</entry></row><row><entry /><entry>#11 </entry><entry>1010</entry><entry>12</entry><entry>A</entry></row><row><entry /><entry>#12 </entry><entry>1011</entry><entry>13</entry><entry>B</entry></row><row><entry /><entry>#13 </entry><entry>1100</entry><entry>14</entry><entry>C</entry></row><row><entry /><entry>#14 </entry><entry>1101</entry><entry>15</entry><entry>D</entry></row><row><entry /><entry>#15 </entry><entry>1110</entry><entry>16</entry><entry>E</entry></row><row><entry /><entry>#16 </entry><entry>1111</entry><entry>17</entry><entry>F</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Each example line pattern illustrated in <figref idref="DRAWINGS">FIG. 2</figref> to <figref idref="DRAWINGS">FIG. 5</figref> includes at least one line within perimeter <b>12</b>. A line is a continuous mark. The line patterns shown in <figref idref="DRAWINGS">FIG. 2</figref> to <figref idref="DRAWINGS">FIG. 5</figref> are straight lines, but the example embodiments are not so limited. <figref idref="DRAWINGS">FIG. 18</figref> illustrates twelve example line patterns using curved lines. In particular, <figref idref="DRAWINGS">FIG. 18</figref> shows twelve cells <b>10</b> including perimeter <b>12</b>, alignment mark <b>14</b> within perimeter <b>12</b>, and one of line patterns <b>91</b>, <b>93</b>, <b>95</b> and <b>97</b> within perimeter <b>12</b>. Each of the line patterns shown in <figref idref="DRAWINGS">FIG. 18</figref> can correspond to a distinct cell state.
Each line pattern <b>91</b> extends between two distinct locations (separated by N<sub>1 </sub>degrees) on perimeter <b>12</b> and is tangential to alignment mark <b>14</b>. Line pattern <b>91</b> can be referred to as a “single curved tangential line pattern.”
Each line pattern <b>93</b> includes two curved lines that extend between two distinct locations (separated by N<sub>2 </sub>degrees) on perimeter <b>12</b> and that are tangential to alignment mark <b>14</b>. Line pattern <b>93</b> can be referred to as a “dual curved tangential line pattern.” A person skilled in the art will understand that three or more curved lines tangential to alignment mark <b>14</b> and extending between two distinct locations on perimeter <b>12</b> could be included within a cell to provide additional cell states. In general, a line pattern with two more curved lines tangential to alignment mark <b>14</b> and extending between two distinct locations on perimeter <b>12</b> can be referred to as a “multiple curved tangential line pattern.”
Each line pattern <b>95</b> includes a single curved line that extends between two distinct locations (separated by N<sub>3 </sub>degrees) on perimeter <b>12</b> and that passes through alignment mark <b>14</b>. Similarly, each line pattern <b>97</b> includes a single curved line that extends between two distinct locations (separated by N<sub>4 </sub>degrees) on perimeter <b>12</b> and that passes through alignment mark <b>14</b>. Line patterns <b>95</b> and <b>97</b> can be referred to as a “single curved pass-through line pattern.” A person skilled in the will understand that two or more curved lines passing through alignment mark <b>14</b> and extending between two distinct locations on perimeter <b>12</b> could be included within a cell to provide additional cell states. In general, a line pattern with two more curved lines passing through alignment mark <b>14</b> and extending between two distinct locations on perimeter <b>12</b> can be referred to as a “multiple curved pass-through line pattern.” One or more of N<sub>1</sub>, N<sub>2</sub>, N<sub>3</sub>, and N<sub>4 </sub>can be 90°, 120°, 180° or another number of degrees.
For this description, a line, whether it is straight or curved is a continuous mark. A broken line is a non-continuous line, and is commonly referred to as a “dashed line.” Any line pattern described herein or shown in the figures can be used with a broken line instead of a line (i.e., a continuous mark).
A perimeter of a cell, such as perimeter <b>12</b>, can be configured to have a predetermined width referred to herein as a “perimeter width.” A line of a line pattern can be configured to have a predetermined width referred to herein as a “line width.”
In accordance with any embodiment described herein, the perimeter width for one or more cells in a cell array can be equal to the line width for those same one or more cells. As an example, the perimeter width and line width for a given cell can each equal 1 unit, 1.5 units, 2 units, 2.4 units, 3 units, or some other number of units. Units can, for example, be millimeters, centimeters, inches or some other units appropriate for measuring the width of an object.
In accordance with any embodiment described herein, the perimeter width for one or more cells in a cell array can be equal to the line width times a first width multiplier (i.e., a positive decimal greater than 1.0 or less than 1.0). Accordingly, the line width for those one or more cells in a cell array can be equal to the perimeter width times a second width multiplier that equals 1 divided by the first width multiplier. In accordance with these example embodiments, the perimeter width for a given cell can equal 1 unit, 1.5 units, 2 units, 2.4 units, 3 units, or some other number of units, and the line width for the given cell can equal the 1 unit, 1.5 units, 2 units, 2.4 units, 3 units, or some other number of units times the second width multiplier.
III. Color Coding
An encoded cell, such as cell <b>10</b>, can also include a color attribute. For example, against a white background, the cell colors may comprise Black and the primary detectable colors of the visible spectrum, namely Red, Yellow, Green, Cyan, Blue, Magenta and Orange, i.e. a total of eight colors. These eight color attributes can define an additional eight states of the encoded cell. On their own, these additional eight states can encode three bits of binary data, as illustrated in Table 6. A color in Table 6 can be replaced by another color. For example, Magenta can be replaced with Violet or another color.
<tables id="TABLE-US-00006" num="00006"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="1" colwidth="91pt" align="center" /><colspec colname="2" colwidth="28pt" align="left" /><colspec colname="3" colwidth="98pt" align="center" /><thead><row><entry namest="1" nameend="3" rowsep="1">TABLE 6</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row><row><entry>Color #</entry><entry>Color</entry><entry>Binary Data</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>1</entry><entry>Black</entry><entry>000</entry></row><row><entry>2</entry><entry>Red</entry><entry>001</entry></row><row><entry>3</entry><entry>Yellow</entry><entry>010</entry></row><row><entry>4</entry><entry>Green</entry><entry>011</entry></row><row><entry>5</entry><entry>Cyan</entry><entry>100</entry></row><row><entry>6</entry><entry>Blue</entry><entry>101</entry></row><row><entry>7</entry><entry>Magenta</entry><entry>110</entry></row><row><entry>8</entry><entry>Orange</entry><entry>111</entry></row><row><entry namest="1" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
The color attribute of an encoded cell, such as cell <b>10</b>, can be used to augment the data capacity of the cell. In one example, the color of an encoded cell may be used to represent precursor data to the binary data represented by the line pattern of the cell. In particular, the color of encoded cell <b>10</b> may be used to represent the most significant bits of a concatenation with the binary data represented by the line pattern. As an illustration, in the above example where encoded cell <b>10</b> can be presented in any one of 8 different colors, a blue encoded cell with cell state #5 representing binary data 011 (as illustrated by data in Table 1) will yield a concatenated bit pattern of the binary data 101011.
In an alternative arrangement, the binary data represented by the line pattern can be used to represent the most significant bits of a concatenation with the binary data represented by the cell color. In the case of a blue encoded cell representing binary data 101 with cell state #5 representing binary data 011, a concatenated bit pattern of for this alternative arrangement would be the binary data 011101.
The color attribute can also be used with a number of cell states other than the eight cell states identified in Table 2. For example, each of the 16 possible states of encoded cell <b>10</b> illustrated in <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref> can be displayed or printed in any of the 8 colors identified in Table 6. The 16 cell states (i.e., states #1 to #16) of encoded cell <b>10</b> and the cell colors (colors #1 to #8) of encoded cell <b>10</b> can be used to encode 7 bits of binary data, which is equivalent to octal (base <b>8</b>) numbers ranging from the octal data 000 to the octal data 177, inclusive. This encoding scheme can, for example, be used to represent characters in a typical ASCII table with 128 characters. Table 7 shows an example in which the color of each encoded cell can represent three most significant bits of the binary data and the cell states #1 to #16 can represent the least significant bits of the binary data. Other examples of using the cell states and cell colors to represent binary data or a range of octal numbers are also possible.
<tables id="TABLE-US-00007" num="00007"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="28pt" align="left" /><colspec colname="1" colwidth="21pt" align="center" /><colspec colname="2" colwidth="63pt" align="center" /><colspec colname="3" colwidth="35pt" align="center" /><colspec colname="4" colwidth="70pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="4" rowsep="1">TABLE 7</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row><row><entry /><entry>Color</entry><entry>Cell</entry><entry>Binary</entry><entry>Octal</entry></row><row><entry /><entry>#</entry><entry>State</entry><entry>Data</entry><entry>Number</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="offset" colwidth="28pt" align="left" /><colspec colname="1" colwidth="21pt" align="center" /><colspec colname="2" colwidth="63pt" align="char" char="." /><colspec colname="3" colwidth="35pt" align="center" /><colspec colname="4" colwidth="70pt" align="center" /><tbody valign="top"><row><entry /><entry>1</entry><entry>1</entry><entry>000 0000</entry><entry>000</entry></row><row><entry /><entry>1</entry><entry>2</entry><entry>000 0001</entry><entry>001</entry></row><row><entry /><entry>1</entry><entry>3</entry><entry>000 0010</entry><entry>002</entry></row><row><entry /><entry>1</entry><entry>4</entry><entry>000 0011</entry><entry>003</entry></row><row><entry /><entry>1</entry><entry>5</entry><entry>000 0100</entry><entry>004</entry></row><row><entry /><entry>1</entry><entry>6</entry><entry>000 0101</entry><entry>005</entry></row><row><entry /><entry>1</entry><entry>7</entry><entry>000 0110</entry><entry>006</entry></row><row><entry /><entry>1</entry><entry>8</entry><entry>000 0111</entry><entry>007</entry></row><row><entry /><entry>1</entry><entry>9</entry><entry>000 1000</entry><entry>010</entry></row><row><entry /><entry>1</entry><entry>10</entry><entry>000 1001</entry><entry>011</entry></row><row><entry /><entry>1</entry><entry>11</entry><entry>000 1010</entry><entry>012</entry></row><row><entry /><entry>1</entry><entry>12</entry><entry>000 1011</entry><entry>013</entry></row><row><entry /><entry>1</entry><entry>13</entry><entry>000 1100</entry><entry>014</entry></row><row><entry /><entry>1</entry><entry>14</entry><entry>000 1101</entry><entry>015</entry></row><row><entry /><entry>1</entry><entry>15</entry><entry>000 1110</entry><entry>016</entry></row><row><entry /><entry>1</entry><entry>16</entry><entry>000 1111</entry><entry>017</entry></row><row><entry /><entry>2</entry><entry>1</entry><entry>001 0000</entry><entry>020</entry></row><row><entry /><entry>2</entry><entry>2</entry><entry>001 0001</entry><entry>021</entry></row><row><entry /><entry>2</entry><entry>3</entry><entry>001 0010</entry><entry>022</entry></row><row><entry /><entry>2</entry><entry>4</entry><entry>001 0011</entry><entry>023</entry></row><row><entry /><entry>2</entry><entry>5</entry><entry>001 0100</entry><entry>024</entry></row><row><entry /><entry>2</entry><entry>6</entry><entry>001 0101</entry><entry>025</entry></row><row><entry /><entry>2</entry><entry>7</entry><entry>001 0110</entry><entry>026</entry></row><row><entry /><entry>2</entry><entry>8</entry><entry>001 0111</entry><entry>027</entry></row><row><entry /><entry>2</entry><entry>9</entry><entry>001 1000</entry><entry>030</entry></row><row><entry /><entry>2</entry><entry>10</entry><entry>001 1001</entry><entry>031</entry></row><row><entry /><entry>2</entry><entry>11</entry><entry>001 1010</entry><entry>032</entry></row><row><entry /><entry>2</entry><entry>12</entry><entry>001 1011</entry><entry>033</entry></row><row><entry /><entry>2</entry><entry>13</entry><entry>001 1100</entry><entry>034</entry></row><row><entry /><entry>2</entry><entry>14</entry><entry>001 1101</entry><entry>035</entry></row><row><entry /><entry>2</entry><entry>15</entry><entry>001 1110</entry><entry>036</entry></row><row><entry /><entry>2</entry><entry>16</entry><entry>001 1111</entry><entry>037</entry></row><row><entry /><entry>3</entry><entry>1</entry><entry>010 0000</entry><entry>040</entry></row><row><entry /><entry>3</entry><entry>2</entry><entry>010 0001</entry><entry>041</entry></row><row><entry /><entry>3</entry><entry>3</entry><entry>010 0010</entry><entry>042</entry></row><row><entry /><entry>3</entry><entry>4</entry><entry>010 0011</entry><entry>043</entry></row><row><entry /><entry>3</entry><entry>5</entry><entry>010 0100</entry><entry>044</entry></row><row><entry /><entry>3</entry><entry>6</entry><entry>010 0101</entry><entry>045</entry></row><row><entry /><entry>3</entry><entry>7</entry><entry>010 0110</entry><entry>046</entry></row><row><entry /><entry>3</entry><entry>8</entry><entry>010 0111</entry><entry>047</entry></row><row><entry /><entry>3</entry><entry>9</entry><entry>010 1000</entry><entry>050</entry></row><row><entry /><entry>3</entry><entry>10</entry><entry>010 1001</entry><entry>051</entry></row><row><entry /><entry>3</entry><entry>11</entry><entry>010 1010</entry><entry>052</entry></row><row><entry /><entry>3</entry><entry>12</entry><entry>010 1011</entry><entry>053</entry></row><row><entry /><entry>3</entry><entry>13</entry><entry>010 1100</entry><entry>054</entry></row><row><entry /><entry>3</entry><entry>14</entry><entry>010 1101</entry><entry>055</entry></row><row><entry /><entry>3</entry><entry>15</entry><entry>010 1110</entry><entry>056</entry></row><row><entry /><entry>3</entry><entry>16</entry><entry>010 1111</entry><entry>057</entry></row><row><entry /><entry>4</entry><entry>1</entry><entry>011 0000</entry><entry>060</entry></row><row><entry /><entry>4</entry><entry>2</entry><entry>011 0001</entry><entry>061</entry></row><row><entry /><entry>4</entry><entry>3</entry><entry>011 0010</entry><entry>062</entry></row><row><entry /><entry>4</entry><entry>4</entry><entry>011 0011</entry><entry>063</entry></row><row><entry /><entry>4</entry><entry>5</entry><entry>011 0100</entry><entry>064</entry></row><row><entry /><entry>4</entry><entry>6</entry><entry>011 0101</entry><entry>065</entry></row><row><entry /><entry>4</entry><entry>7</entry><entry>011 0110</entry><entry>066</entry></row><row><entry /><entry>4</entry><entry>8</entry><entry>011 0111</entry><entry>067</entry></row><row><entry /><entry>4</entry><entry>9</entry><entry>011 1000</entry><entry>070</entry></row><row><entry /><entry>4</entry><entry>10</entry><entry>011 1001</entry><entry>071</entry></row><row><entry /><entry>4</entry><entry>11</entry><entry>011 1010</entry><entry>072</entry></row><row><entry /><entry>4</entry><entry>12</entry><entry>011 1011</entry><entry>073</entry></row><row><entry /><entry>4</entry><entry>13</entry><entry>011 1100</entry><entry>074</entry></row><row><entry /><entry>4</entry><entry>14</entry><entry>011 1101</entry><entry>075</entry></row><row><entry /><entry>4</entry><entry>15</entry><entry>011 1110</entry><entry>076</entry></row><row><entry /><entry>4</entry><entry>16</entry><entry>011 1111</entry><entry>077</entry></row><row><entry /><entry>5</entry><entry>1</entry><entry>100 0000</entry><entry>100</entry></row><row><entry /><entry>5</entry><entry>2</entry><entry>100 0001</entry><entry>101</entry></row><row><entry /><entry>5</entry><entry>3</entry><entry>100 0010</entry><entry>102</entry></row><row><entry /><entry>5</entry><entry>4</entry><entry>100 0011</entry><entry>103</entry></row><row><entry /><entry>5</entry><entry>5</entry><entry>100 0100</entry><entry>104</entry></row><row><entry /><entry>5</entry><entry>6</entry><entry>100 0101</entry><entry>105</entry></row><row><entry /><entry>5</entry><entry>7</entry><entry>100 0110</entry><entry>106</entry></row><row><entry /><entry>5</entry><entry>8</entry><entry>100 0111</entry><entry>107</entry></row><row><entry /><entry>5</entry><entry>9</entry><entry>100 1000</entry><entry>110</entry></row><row><entry /><entry>5</entry><entry>10</entry><entry>100 1001</entry><entry>111</entry></row><row><entry /><entry>5</entry><entry>11</entry><entry>100 1010</entry><entry>112</entry></row><row><entry /><entry>5</entry><entry>12</entry><entry>100 1011</entry><entry>113</entry></row><row><entry /><entry>5</entry><entry>13</entry><entry>100 1100</entry><entry>114</entry></row><row><entry /><entry>5</entry><entry>14</entry><entry>100 1101</entry><entry>115</entry></row><row><entry /><entry>5</entry><entry>15</entry><entry>100 1110</entry><entry>116</entry></row><row><entry /><entry>5</entry><entry>16</entry><entry>100 1111</entry><entry>117</entry></row><row><entry /><entry>6</entry><entry>1</entry><entry>101 0000</entry><entry>120</entry></row><row><entry /><entry>6</entry><entry>2</entry><entry>101 0001</entry><entry>121</entry></row><row><entry /><entry>6</entry><entry>3</entry><entry>101 0010</entry><entry>122</entry></row><row><entry /><entry>6</entry><entry>4</entry><entry>101 0011</entry><entry>123</entry></row><row><entry /><entry>6</entry><entry>5</entry><entry>101 0100</entry><entry>124</entry></row><row><entry /><entry>6</entry><entry>6</entry><entry>101 0101</entry><entry>125</entry></row><row><entry /><entry>6</entry><entry>7</entry><entry>101 0110</entry><entry>126</entry></row><row><entry /><entry>6</entry><entry>8</entry><entry>101 0111</entry><entry>127</entry></row><row><entry /><entry>6</entry><entry>9</entry><entry>101 1000</entry><entry>130</entry></row><row><entry /><entry>6</entry><entry>10</entry><entry>101 1001</entry><entry>131</entry></row><row><entry /><entry>6</entry><entry>11</entry><entry>101 1010</entry><entry>132</entry></row><row><entry /><entry>6</entry><entry>12</entry><entry>101 1011</entry><entry>133</entry></row><row><entry /><entry>6</entry><entry>13</entry><entry>101 1100</entry><entry>134</entry></row><row><entry /><entry>6</entry><entry>14</entry><entry>101 1101</entry><entry>135</entry></row><row><entry /><entry>6</entry><entry>15</entry><entry>101 1110</entry><entry>136</entry></row><row><entry /><entry>6</entry><entry>16</entry><entry>101 1111</entry><entry>137</entry></row><row><entry /><entry>7</entry><entry>1</entry><entry>110 0000</entry><entry>140</entry></row><row><entry /><entry>7</entry><entry>2</entry><entry>110 0001</entry><entry>141</entry></row><row><entry /><entry>7</entry><entry>3</entry><entry>110 0010</entry><entry>142</entry></row><row><entry /><entry>7</entry><entry>4</entry><entry>110 0011</entry><entry>143</entry></row><row><entry /><entry>7</entry><entry>5</entry><entry>110 0100</entry><entry>144</entry></row><row><entry /><entry>7</entry><entry>6</entry><entry>110 0101</entry><entry>145</entry></row><row><entry /><entry>7</entry><entry>7</entry><entry>110 0110</entry><entry>146</entry></row><row><entry /><entry>7</entry><entry>8</entry><entry>110 0111</entry><entry>147</entry></row><row><entry /><entry>7</entry><entry>9</entry><entry>110 1000</entry><entry>150</entry></row><row><entry /><entry>7</entry><entry>10</entry><entry>110 1001</entry><entry>151</entry></row><row><entry /><entry>7</entry><entry>11</entry><entry>110 1010</entry><entry>152</entry></row><row><entry /><entry>7</entry><entry>12</entry><entry>110 1011</entry><entry>153</entry></row><row><entry /><entry>7</entry><entry>13</entry><entry>110 1100</entry><entry>154</entry></row><row><entry /><entry>7</entry><entry>14</entry><entry>110 1101</entry><entry>155</entry></row><row><entry /><entry>7</entry><entry>15</entry><entry>110 1110</entry><entry>156</entry></row><row><entry /><entry>7</entry><entry>16</entry><entry>110 1111</entry><entry>157</entry></row><row><entry /><entry>8</entry><entry>1</entry><entry>111 0000</entry><entry>160</entry></row><row><entry /><entry>8</entry><entry>2</entry><entry>111 0001</entry><entry>161</entry></row><row><entry /><entry>8</entry><entry>3</entry><entry>111 0010</entry><entry>162</entry></row><row><entry /><entry>8</entry><entry>4</entry><entry>111 0011</entry><entry>163</entry></row><row><entry /><entry>8</entry><entry>5</entry><entry>111 0100</entry><entry>164</entry></row><row><entry /><entry>8</entry><entry>6</entry><entry>111 0101</entry><entry>165</entry></row><row><entry /><entry>8</entry><entry>7</entry><entry>111 0110</entry><entry>166</entry></row><row><entry /><entry>8</entry><entry>8</entry><entry>111 0111</entry><entry>167</entry></row><row><entry /><entry>8</entry><entry>9</entry><entry>111 1000</entry><entry>170</entry></row><row><entry /><entry>8</entry><entry>10</entry><entry>111 1001</entry><entry>171</entry></row><row><entry /><entry>8</entry><entry>11</entry><entry>111 1010</entry><entry>172</entry></row><row><entry /><entry>8</entry><entry>12</entry><entry>111 1011</entry><entry>173</entry></row><row><entry /><entry>8</entry><entry>13</entry><entry>111 1100</entry><entry>174</entry></row><row><entry /><entry>8</entry><entry>14</entry><entry>111 1101</entry><entry>175</entry></row><row><entry /><entry>8</entry><entry>15</entry><entry>111 1110</entry><entry>176</entry></row><row><entry /><entry>8</entry><entry>16</entry><entry>111 1111</entry><entry>177</entry></row><row><entry /><entry namest="offset" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
IV. Fault Tolerance
In order for an encoded cell <b>10</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref> to be used successfully in a cell array, it can be important for the encoded cell to be scanned (i.e. “read”) and decoded successfully and reliably. If encoded cell <b>10</b> is noisy, the possibility of erroneous scanning and decoding increases. A noisy cell can arise, for example, if it is printed by a poor quality printer or displayed on a low-resolution display device.
The various states of encoded cells <b>10</b> shown in <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref> exhibit different degrees of fault tolerance (or “noise tolerance”), i.e. the ability to be reliably scanned and decoded in the presence of noise. The most fault tolerant set of encoded cell states can be the set of eight cell states #2 to #9 illustrated in <figref idref="DRAWINGS">FIG. 2</figref>. For convenience, this level of noise tolerance will be referred to as Level I noise tolerance. The line pattern <b>17</b> in each of these Level I states is asymmetric in nature and, as a result, a noisy cell in each one of these states can be read or decoded with least probability of error.
The next most noise tolerant set of encoded cell states can be the set of four cell states #10 to #13 illustrated in <figref idref="DRAWINGS">FIG. 3</figref>, in which the diametrical line pattern <b>18</b> in each of these states is symmetrical. This level of noise tolerance will be referred to as Level II noise tolerance. Thus, it can be possible for a noisy Level I cell state to be erroneously scanned and decoded as a Level II cell state.
Less fault tolerance still can be the set of two encoded cell states #14 and #15 illustrated in <figref idref="DRAWINGS">FIG. 4</figref> (referred to as level III noise tolerance), and least fault tolerant of all (for the 16 cell states of <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref>) can be the set comprising the cell state #16 of <figref idref="DRAWINGS">FIG. 5</figref> and the empty cell (state #1) of <figref idref="DRAWINGS">FIG. 1</figref> (referred to as level IV noise tolerance).
Consequently, a “high definition” encoded cell that contains little or no noise may use all 16 possible cell states (i.e., states #1 to #16, which are the Level I, II, III and IV sets of encoded cell states). As previously described, without considering cell color, an encoded cell <b>10</b> that can use 16 states can encode 4 bits of binary data, as shown in Table 5. On the other hand, if an encoded cell is noisy, it may use only the 8 line patterns for cell states #2 to #9 with Level I noise tolerance. In so doing, without consideration of cell color, each encoded cell <b>10</b> would be able to encode three bits of binary data, as shown in Table 1. Thus, there can be a trade-off between encoded cell capacity and encoded cell noise.
V. Alternative Cell Line Patterns
<figref idref="DRAWINGS">FIG. 1</figref> and <figref idref="DRAWINGS">FIG. 3</figref> to <figref idref="DRAWINGS">FIG. 5</figref> illustrate instances of encoded cell <b>10</b> that have symmetrical line patterns. <figref idref="DRAWINGS">FIG. 2</figref> illustrates use of a single asymmetrical line pattern <b>17</b> in each instance of encoded cell <b>10</b>. Encoded cell <b>10</b>, however, is not limited to the instances of asymmetrical line patterns shown in <figref idref="DRAWINGS">FIG. 2</figref>. For example, encoded cell <b>10</b> can include a line pattern with two or more lines arranged asymmetrically.
<figref idref="DRAWINGS">FIG. 8</figref> illustrates a cell array <b>80</b> including twelve instances of cell <b>10</b> including asymmetrical line patterns <b>82</b>. In <figref idref="DRAWINGS">FIG. 8</figref>, each cell <b>10</b> includes an asymmetrical line pattern <b>82</b> with a pair of lines separated by 90 degrees, when considering the least amount of degrees separating the pair of lines. The lines of asymmetrical line patterns <b>82</b> of cell array <b>80</b> may be aligned in any one of twelve pairs of possible directions in angular increments of 30° from a given reference direction, namely at angular positions of 0° and 90°, 30° and 120°, 60° and 150°, 90° and 180°, 120° and 210°, 150° and 240°, 180° and 270°, 210° and 300°, 240° and 330°, 270° and 0°, 300° and 30°, and 330° and 60° from the reference direction, as shown in <figref idref="DRAWINGS">FIG. 8</figref> (starting with the left most top cell and moving left to right in each row). An encoded cell <b>10</b> with an asymmetrical line pattern, such as asymmetrical line patterns <b>82</b>, can be Level II noise tolerant.
The encoded cells <b>10</b> shown in <figref idref="DRAWINGS">FIG. 8</figref> can be defined as additional states of encoded cell <b>10</b>. Staring in the top row, moving from left to right in each row in <figref idref="DRAWINGS">FIG. 8</figref>, the encoded cells can be defined to have cell states #17 to #28. Various attributes can be associated with cell states #17 to #28. For example, Table 8 shows cell states #17 to #24 can be associated with 3 bits of binary data, and cell states #25 to #28 can be associated with decoding instructions for use by a computing device (e.g., a scanner or decoder) scanning a cell array. In an alternative arrangement, one or more of cell states #17 to #28 can be associated with a decoding instruction indicating a start of a cell array row or a start of a cell array. Such decoding cells can be used with a cell array using different cell colors or with an encoded cell using a single cell color.
<tables id="TABLE-US-00008" num="00008"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="offset" colwidth="21pt" align="left" /><colspec colname="1" colwidth="28pt" align="center" /><colspec colname="2" colwidth="84pt" align="center" /><colspec colname="3" colwidth="84pt" align="left" /><thead><row><entry /><entry namest="offset" nameend="3" rowsep="1">TABLE 8</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row><row><entry /><entry>State #</entry><entry>Binary Data</entry><entry>Decoding instruction</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>#17</entry><entry>000</entry><entry>N.A.</entry></row><row><entry /><entry>#18</entry><entry>001</entry><entry>N.A.</entry></row><row><entry /><entry>#19</entry><entry>010</entry><entry>N.A.</entry></row><row><entry /><entry>#20</entry><entry>011</entry><entry>N.A.</entry></row><row><entry /><entry>#21</entry><entry>100</entry><entry>N.A.</entry></row><row><entry /><entry>#22</entry><entry>101</entry><entry>N.A.</entry></row><row><entry /><entry>#23</entry><entry>110</entry><entry>N.A.</entry></row><row><entry /><entry>#24</entry><entry>111</entry><entry>N.A.</entry></row><row><entry /><entry>#25</entry><entry>N.A.</entry><entry>End of row</entry></row><row><entry /><entry>#26</entry><entry>N.A.</entry><entry>End of array</entry></row><row><entry /><entry>#27</entry><entry>N.A.</entry><entry>Pitch #1</entry></row><row><entry /><entry>#28</entry><entry>N.A.</entry><entry>Pitch #2</entry></row><row><entry /><entry namest="offset" nameend="3" align="center" rowsep="1" /></row></tbody></tgroup></table></tables><br /> Eight cell states within cell states #17 to #28 (e.g., cell states #17 to #24) can be combined with cell states #2 to #9 to be able to encode four bits of binary data as shown in Table 9. These cells states shown in Table 9 are Level II noise tolerant. It will be appreciated that various sets of sixteen encoded cells can be defined to encode four bits of binary data.
<tables id="TABLE-US-00009" num="00009"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="3"><colspec colname="offset" colwidth="56pt" align="left" /><colspec colname="1" colwidth="21pt" align="center" /><colspec colname="2" colwidth="140pt" align="center" /><thead><row><entry /><entry namest="offset" nameend="2" rowsep="1">TABLE 9</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row><row><entry /><entry>State</entry><entry>Binary Data</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /><entry>#2</entry><entry>0000</entry></row><row><entry /><entry>#3</entry><entry>0001</entry></row><row><entry /><entry>#4</entry><entry>0010</entry></row><row><entry /><entry>#5</entry><entry>0011</entry></row><row><entry /><entry>#6</entry><entry>0100</entry></row><row><entry /><entry>#7</entry><entry>0101</entry></row><row><entry /><entry>#8</entry><entry>0110</entry></row><row><entry /><entry>#9</entry><entry>0111</entry></row><row><entry /><entry>#17 </entry><entry>1000</entry></row><row><entry /><entry>#18 </entry><entry>1001</entry></row><row><entry /><entry>#19 </entry><entry>1010</entry></row><row><entry /><entry>#20 </entry><entry>1011</entry></row><row><entry /><entry>#21 </entry><entry>1100</entry></row><row><entry /><entry>#22 </entry><entry>1101</entry></row><row><entry /><entry>#23 </entry><entry>1110</entry></row><row><entry /><entry>#24 </entry><entry>1111</entry></row><row><entry /><entry namest="offset" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
VI. Alternative Alignment Marks
Next, <figref idref="DRAWINGS">FIG. 9</figref> illustrates an alternative version of an encoded cell <b>15</b> with an empty-cell line pattern. As shown in <figref idref="DRAWINGS">FIG. 9</figref>, encoded cell <b>15</b> includes a perimeter <b>19</b>, an alignment mark <b>17</b> within perimeter <b>19</b>, and a line pattern <b>13</b> within perimeter <b>19</b>. Alignment mark <b>17</b> is an offset alignment mark that can be offset from a centre of encoded cell <b>15</b> or that is within an encoded cell that does not include a defined centre. Alignment mark <b>17</b> may be represented as a quadrilateral (e.g., a rectangle), as shown in <figref idref="DRAWINGS">FIG. 2</figref>, but is not so limited.
Alignment marks <b>14</b> and <b>17</b>, shown in <figref idref="DRAWINGS">FIG. 1</figref> and <figref idref="DRAWINGS">FIG. 9</figref>, respectively, are shown as filled alignment marks, but an alignment mark of an encoded cell can, alternatively, be an unfilled alignment mark or a partially-filled mark. Furthermore, an alignment mark can be represented as a shape other than a circle or a quadrilateral, such as a triangle, a pentagon, a hexagon, an octagon, or some other shape.
VII. Cell Arrays
Cell arrays can be arranged in a variety of configurations. In one respect, a cell array can be arranged in a configuration in which all of the cells (and the cell perimeters) are the same shape. Cell array <b>30</b> shown in <figref idref="DRAWINGS">FIG. 10</figref> is an example of a cell array in which all of the cells are the same shape. Alternatively, a cell array can be arranged in a configuration in which the cell array includes at least two different shaped cells (and perimeters). <figref idref="DRAWINGS">FIG. 20</figref> shows a cell array <b>101</b> or a portion of cell array that includes triangle shaped cells <b>105</b> and square shaped cells <b>107</b>. Triangle shaped cells <b>105</b> can be configured like triangle shaped cells <b>77</b> discussed with respect to <figref idref="DRAWINGS">FIG. 12</figref>, and square shaped cells <b>107</b> can be configured like rectangular shaped cells discussed with respect to <figref idref="DRAWINGS">FIG. 11</figref>. Other examples of a cell array including at least two different shaped cells are also possible.
In another respect, a cell array can include non-cellular space between multiple cells that abut one another. <figref idref="DRAWINGS">FIG. 20</figref> illustrates non-cellular spaces <b>103</b> between multiple cells of cell array <b>101</b>. If a cell array with non-cellular space between adjacent cells in the cell array is acceptable or preferred, then the cell array can include cells with perimeters having curved lines, such as, but not limited to a circular perimeter, an oval perimeter, or an elliptical perimeter.
In another respect, a cell array can include multiple cells that are closely packed together without any non-cellular spaces and without any gaps. <figref idref="DRAWINGS">FIG. 19</figref> illustrates a cell array <b>113</b> including multiple cross-shaped cells <b>115</b> that are closely packed together without any non-cellular spaces and without any gaps.
In yet another respect, a cell array can include a set of closely-packed cells arranged in a specific pattern depicting a desired shape, logo, configuration or the like. <figref idref="DRAWINGS">FIG. 10</figref> illustrates a cell array <b>30</b>. Cell array <b>30</b> includes a plurality of cells <b>10</b> grouped together in a closely-packed arrangement, similar to that of a honeycomb. Cell array <b>30</b> includes a plurality of hexagonal-shaped cells arranged as the letter “Z”. Non-hexagonal shaped encoded cells can also be grouped together closely-packed, or otherwise, to form a cell array arranged as the letter “Z” or otherwise.
Cell array <b>30</b> includes an alignment node <b>31</b>, and <b>191</b> instances of cell <b>10</b>. For clarity of <figref idref="DRAWINGS">FIG. 10</figref>, only one instance of cell <b>10</b> is labeled and each instance of cell <b>10</b> is shown with the empty-cell line pattern <b>16</b>. A person skilled in the art will understand that each cell <b>10</b> within cell array <b>30</b> can include any of the described line patterns or another line pattern. Alignment node <b>31</b> includes two adjacent null cells <b>32</b>. In an alternative arrangement, cell array <b>30</b> could be configured with alignment node <b>38</b> as shown in <figref idref="DRAWINGS">FIG. 7</figref>.
Cell array <b>30</b> includes a first portion <b>35</b>, a second portion <b>37</b>, and a gap <b>39</b> separating first portion <b>35</b> and second portion <b>37</b>. Alignment node <b>31</b> and encoded cells <b>10</b> of first portion <b>35</b> can be a first color, such as cyan. The encoded cells <b>10</b> of second portion <b>37</b> can be a second color, such as navy blue. A cell array can include more or fewer gaps separating distinct portions of the cell array. Each separate portion of a cell array can include an alignment node for that portion of the cell array. Alternatively, a separate portion, such as second portion <b>37</b>, may not include an alignment node.
A machine, such as machine <b>212</b> shown in <figref idref="DRAWINGS">FIG. 13</figref>, can be configured to generate gap <b>39</b> with a known dimension (e.g., a known width, such as a width of cell <b>10</b> within cell array <b>30</b>) so that a machine (e.g., a machine configured to decode cells and cell arrays) can detect adjacent nodes of two portions of cell array. For example, a distance between distinct portions (e.g., the alignment marks <b>14</b>) of two cells may be defined for a cell array. This distance may be referred to as a “pitch.” A cell array may be defined to have a standard pitch for adjacent encoded cells that abut one another and a maximum pitch for adjacent cells separated by a gap. The maximum pitch, for example, could equal the pitch times a pitch variable, such as 2. A machine (e.g., a machine configured to scan or decode cells or a cell array) can be configured to detect an end of a cell array row or an end of the encoded cell array if the machine does not detect any encoded cells within a distance equal to the maximum pitch relative to a previously scanned encoded cell.
An input including one or more encoding scheme selections can be provided to a machine for generating a cell array, such as cell array <b>30</b>. As an example, the encoding scheme selections can include, but are not limited to, a color selection for one or more encoded cells, a size of one or more encoded cells, one or more dimensions of the cell array (e.g., a height, length, or width), a shape of the cell array, a gap selection, and the data to be encoded within the encoded cells.
A machine that generates a cell array, such as machine <b>212</b> shown in <figref idref="DRAWINGS">FIG. 13</figref>, can be configured to generate cell arrangement data, such as the example cell arrangement data shown in Table 10. The example cell arrangement data can indicate, for each cell in a cell array, one or more of the following items: a cell number, a cell position, a cell type, a cell state, and a cell color. In Table 10, the indicator “***” indicates cell arrangement data for cell array <b>30</b> not included in Table 10. The cell positions can, for example, be specified by a row indicator and a position indicator. As an example the left-most position in a row can be position 1, 1L or 1R. Position 1L indicates a position to the left of the first position in a preceding row. Position 1R indicates a position to the right of the first position in a preceding row. Table 10 indicates example cells types, cell states, and cell colors of cells that can be included within cell array <b>30</b>. The cell type of cell number <b>9</b> is indicated as a gap for including gap <b>39</b> of cell array <b>30</b>. Table 10 shows cell array <b>30</b> includes 198 cells. Those cells include 2 null cells <b>32</b>, 191 cells <b>10</b>, and 5 gap cells (i.e., 1 gap cell in each row of the top 5 rows.
<tables id="TABLE-US-00010" num="00010"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="28pt" align="center" /><colspec colname="2" colwidth="63pt" align="left" /><colspec colname="3" colwidth="42pt" align="left" /><colspec colname="4" colwidth="42pt" align="left" /><colspec colname="5" colwidth="42pt" align="center" /><thead><row><entry namest="1" nameend="5" rowsep="1">TABLE 10</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row><row><entry>Cell #</entry><entry>Cell Position</entry><entry>Cell Type</entry><entry>Cell State</entry><entry>Cell Color</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry /></row></tbody></tgroup><tgroup align="left" colsep="0" rowsep="0" cols="5"><colspec colname="1" colwidth="28pt" align="char" char="." /><colspec colname="2" colwidth="63pt" align="left" /><colspec colname="3" colwidth="42pt" align="left" /><colspec colname="4" colwidth="42pt" align="left" /><colspec colname="5" colwidth="42pt" align="center" /><tbody valign="top"><row><entry>1</entry><entry>Row 1, Position 1</entry><entry>Alignment</entry><entry>N.A.</entry><entry>#5</entry></row><row><entry /><entry /><entry>#1</entry><entry /><entry /></row><row><entry>2</entry><entry>Row 1, Position 2</entry><entry>Alignment</entry><entry>N.A.</entry><entry>#5</entry></row><row><entry /><entry /><entry>#2</entry><entry /><entry /></row><row><entry>3</entry><entry>Row 1, Position 3</entry><entry>Encoded</entry><entry>#2</entry><entry>#5</entry></row><row><entry>4</entry><entry>Row 1, Position 4</entry><entry>Encoded</entry><entry>#4</entry><entry>#5</entry></row><row><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry></row><row><entry>9</entry><entry>Row 1, Position 9</entry><entry>Gap</entry><entry>N.A.</entry><entry>N.A.</entry></row><row><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry></row><row><entry>12</entry><entry>Row 1, Position 12</entry><entry>Decoding</entry><entry>End of Row</entry><entry>#6</entry></row><row><entry>13</entry><entry>Row 2, Position 1L</entry><entry>Encoded</entry><entry>#6</entry><entry>#6</entry></row><row><entry>14</entry><entry>Row 2, Position 2</entry><entry>Encoded</entry><entry>#8</entry><entry>#6</entry></row><row><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry><entry>* * *</entry></row><row><entry>197</entry><entry>Row 22, Position 13</entry><entry>Layout</entry><entry>N.A.</entry><entry>#6</entry></row><row><entry>198</entry><entry>Row 22, Position 14</entry><entry>Decoding</entry><entry>End of Array</entry><entry>#6</entry></row><row><entry namest="1" nameend="5" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
VIII. Alignment Node
Alignment node <b>31</b> of cell array <b>30</b> can indicate a first portion of cell array <b>30</b> to be scanned or a first portion of cell array <b>30</b> to be decoded. With cell array <b>30</b> arranged as shown in <figref idref="DRAWINGS">FIG. 10</figref>, alignment node <b>31</b> is at a top and left side of cell array <b>30</b>. Cell array <b>30</b> can, however, be rotated a number of degrees greater than 0° and a machine, such as machine <b>230</b>, can still use alignment node <b>31</b> to determine a start point for scanning and decoding cell array <b>30</b>.
Next, <figref idref="DRAWINGS">FIG. 6</figref> illustrates an alignment node <b>34</b> that may be used in conjunction with a cell array composed of cells without a color attribute. Alignment node <b>34</b> can be a starting node or an ending node. Alignment node <b>34</b> can include two identical, adjacent alignment cells <b>36</b><i>a </i>and <b>36</b><i>b</i>. A cell body of alignment cells <b>36</b><i>a </i>and <b>36</b><i>b </i>can be the inverse of the cell body of a cell <b>10</b> with an empty-cell line pattern <b>16</b>, as shown in <figref idref="DRAWINGS">FIG. 1</figref>. In other words, alignment marks <b>14</b><i>a</i>, <b>14</b><i>b </i>at the centre of alignment cells <b>36</b><i>a </i>and <b>36</b><i>b </i>are white instead of black, and the other portions of the cell body within the perimeter of alignment cells <b>36</b><i>a </i>and <b>36</b><i>b </i>are totally black instead of white. At least one of the cell bodies within alignment cells <b>36</b><i>a </i>and <b>36</b><i>b </i>can be a color other than black or white. For convenience, an alignment cell, such as alignment cells <b>36</b><i>a </i>and <b>36</b><i>b</i>, can be referred to as a null cell. When alignment node <b>34</b> is scanned by a machine, such as machine <b>230</b>, the machine can use alignment mark <b>14</b><i>a </i>to locate a centre of the first alignment cell <b>36</b><i>a</i>, and the distance between alignment marks <b>14</b><i>a </i>and <b>14</b><i>b </i>of the adjacent alignment cells to determine the pitch between adjacent encoded cells of a cell array, such as cell array <b>30</b>, or to determine a maximum pitch by multiplying the detected pitch by a pitch variable.
Next, <figref idref="DRAWINGS">FIG. 7</figref> illustrates an alignment node <b>38</b> for a cell array including a color attribute. The alignment node <b>38</b> includes an ordered string of adjacent null cells, one in each permissible color of encoded cell <b>10</b>, with two adjacent instances of the leading null cell. Thus, as illustrated in <figref idref="DRAWINGS">FIG. 7</figref>, where permissible colors of encoded cell <b>10</b> are as previously described, the alignment node <b>38</b> includes a string of nine adjacent null cells in the following order: two black null cells <b>40</b><i>a </i>and <b>40</b><i>b </i>followed by one null cell in each of the following colors—Red <b>42</b>, Yellow <b>44</b>, Green <b>44</b>, Cyan <b>46</b>, Blue <b>50</b>, Magenta <b>52</b> and Orange <b>54</b>. As previously described, when the alignment node <b>38</b> is scanned, the scanner may use the distance between the alignment marks of the black null cells <b>40</b><i>a </i>and <b>40</b><i>b </i>to determine the pitch between adjacent cells of a cell array. Furthermore, the scanner may use the predetermined order of the colored null cells <b>42</b> to <b>54</b> to perform a color calibration of the machine itself.
A machine <b>230</b> (e.g., a scanning machine (i.e., a scanner)) may analyze a scanned alignment node to determine whether the cell array to which it applies is a monochrome encoded cell or whether it is composed of encoded cells <b>10</b> that have a color attribute. For example, if the first two scanned encoded cells are null cells and the third cell is not a null cell, then the alignment node is as indicated by reference numeral <b>34</b> of <figref idref="DRAWINGS">FIG. 6</figref> and the cell array to which the alignment node <b>34</b> pertains is to be treated as a monochrome encoded cell, irrespective of the color or colors in which it is displayed. If, on the other hand the first two scanned encoded cells are null cells and so is the third, then the alignment node can be as indicated by reference numeral <b>38</b> of <figref idref="DRAWINGS">FIG. 7</figref> and the cell array <b>30</b> can be composed of cells <b>10</b> that have a color attribute.
IX. Encoded Cell Capacity
As previously described, a set of encoded cells <b>10</b> at Level I noise tolerance that use only cell states #2 to #9, as illustrated in <figref idref="DRAWINGS">FIG. 2</figref>, in monochrome, can encode 3 bits of binary data, as illustrated in Table 1.
The use of cell states #1 to #16, as illustrated in <figref idref="DRAWINGS">FIG. 1</figref> to <figref idref="DRAWINGS">FIG. 5</figref>, in monochrome, can increase the encoded cell capacity to 4 bits of digital data, as illustrated in Table 5.
The addition of a color attribute, as described with 8 distinct colors, can increase the encoded cell capacity by 3 bits, to 6 bits at Level I noise tolerance, and to 7 bits per cell using the lower noise tolerance levels, as illustrated in Table 7.
X. Example Machines and System Architectures
Next, <figref idref="DRAWINGS">FIG. 13</figref> is a block diagram showing an example system <b>200</b> in accordance with an example embodiment. In general, system <b>200</b> includes an encoding stage <b>202</b>, an outputting stage <b>204</b>, a displaying stage <b>206</b>, and a scanning or decoding stage <b>208</b>. System <b>200</b> can include a machine, such as a machine <b>212</b> or <b>230</b>, a machine including a printer <b>216</b>, or a machine including display <b>226</b>. Each element shown in <figref idref="DRAWINGS">FIG. 13</figref> is not restricted to operating within the stage <b>202</b>, <b>204</b>, <b>206</b>, or <b>208</b> that includes that element. In encoding stage <b>202</b>, input <b>210</b> is provided to machine <b>212</b>.
Input <b>210</b> can include data to be encoded by machine <b>212</b>. As an example, input <b>210</b> can include a binary identifier, such as the binary data “0100 0010 to 0010 0001” shown in <figref idref="DRAWINGS">FIG. 13</figref>. The example binary identifier shown in <figref idref="DRAWINGS">FIG. 13</figref> represents the ASCII values for the text “Buy ACME!” Receiving a binary identifier can include receiving data that machine <b>212</b> can convert to binary data. For instance, machine <b>212</b> can receive hexadecimal equivalents for the binary data shown in <figref idref="DRAWINGS">FIG. 13</figref> (i.e., the hexadecimal data 42, 75, 79, 20, 41, 43, 4D, 45, and 21) and convert the hexadecimal values to equivalent binary values. As another example, machine <b>212</b> can receive text, such as “Buy ACME!” convert the text to ASCII values, and then convert the ASCII values to equivalent binary values.
Input <b>210</b> can include one or more encoding scheme selections. An encoding scheme selection can, for example, include a cell shape selection, a cell color selection, a cell array color selection, or a layout selection for generating a cell array. Other examples of an encoding scheme selection are also possible.
Machine <b>212</b> can encode a portion of input data 210 (e.g., the binary identifier portion of input data 210) as a cell array. Encoding a portion of input data 210 can include converting a portion of input data 210 based on an ASCII table. Converting the portion of input data 210 can include converting text, such as “Buy ACME!,” to the binary values equivalent to ASCII values representing the “Buy ACME!” text. Machine <b>212</b> can encode the binary values obtained by converting the portion of input data 210 into a cell array based on an encoding scheme selection.
Machine <b>212</b> can output (e.g., provide or transmit) a cell array to an element of outputting stage <b>204</b>. Outputting a cell array can include outputting encoded cells of the cell array one at a time or two or more at a time. Outputting a cell array or an encoded cell can include outputting data indicating the cell array or encoded cell, respectively. Outputting stage <b>204</b> can include elements such as network <b>214</b> and printer <b>216</b>. Outputting the data indicating the cell array can include transmitting an encoding scheme <b>268</b> or encoding scheme data. Outputting the data indicating the cell array can include transmitting a data representation of a cell of the cell array. Machine <b>212</b> can provide the cell array (or the data indicating the cell array) to network <b>214</b> and printer <b>216</b> over a wireless communication link <b>218</b> or a wired communication link <b>220</b>.
Wireless communication link <b>218</b> can be configured according to any of a variety of wireless communication protocols, such as an IEEE 802.11 protocol, such as the protocol commonly referred to as Wi-Fi. Wired communication link <b>220</b> can be configured according to any of a variety of wired communication protocols, such as the protocol commonly referred to as Ethernet. A communication link (not shown) can include both a wireless communication link and a wired communication link.
Network <b>214</b> can include a local area network or a wide area network, such as the Internet. Network <b>214</b> can include wireless communication links <b>218</b> and wired communication links <b>220</b>. Printer <b>216</b> can include a laser printer, a dot matrix printer, an inkjet printer, but is not so limited. Printer <b>216</b> can be configured to print an instance of an encoded cell or cell array on a surface of an article of manufacture.
Displaying stage <b>206</b> can include an electronic segment <b>222</b> and a tangible segment <b>224</b>. Electronic segment <b>222</b> can include a display <b>226</b>. Network <b>214</b> can transport an encoded cell or a cell array (or the data indicating the encoded cell or cell array) to display <b>226</b> over a communication link, such as wireless communication link <b>218</b> or wired communication link <b>220</b>. Display <b>226</b> can include any of a variety of electronic displays, such as, but not limited to, a light emitting diode (LED) display, a plasma display, a cathode ray tube (CRT) display, or a liquid crystal display (LCD). Display <b>226</b> can include a display within a kiosk, such as a kiosk at a shopping mall, airport, or a museum. Display <b>226</b>, which can be referred to as a “display device,” can be embodied within a machine, such as a machine <b>248</b> shown in <figref idref="DRAWINGS">FIG. 14</figref>.
Displaying an encoded cell or a cell array within displaying segment <b>206</b> can include providing a tangible instance of the encoded cell or a tangible instance of the cell array. The tangible instances of the encoded cell or cell array can be generated by printer <b>216</b> printing the encoded cell or cell array, or by another means, such as but not limited to painting, engraving, etching, dyeing, or silk printing. A tangible instance of an encoded cell or a cell array can be generated on a surface of an article of manufacture including any of a variety of media, such as but not limited to, paper, plastic, clothing, a metal, a ceramic material, or cardboard.
Scanning or decoding stage <b>208</b> can include a machine <b>230</b> configured to scan an encoded cell or a cell array provided within displaying stage <b>206</b>. Machine <b>230</b> can decode the cell or the cell array to recover the input data encoded into the encoded cell or the cell array, respectively. For example, machine <b>230</b> can recover the input text “Buy ACME!” and provide the recovered data to a display <b>232</b> for displaying the recovered data. Additional details regarding aspects shown in <figref idref="DRAWINGS">FIG. 13</figref> are described elsewhere in this description.
Next, <figref idref="DRAWINGS">FIG. 14</figref> is a block diagram of an example machine <b>248</b>. One or more of machines <b>212</b> and <b>230</b> can be arranged like machine <b>248</b> or a portion thereof. As shown in <figref idref="DRAWINGS">FIG. 14</figref>, machine <b>248</b> can include a processor <b>250</b>, a data transceiver <b>252</b>, a user interface <b>254</b>, a computer-readable medium <b>256</b>, and a capture device <b>266</b>, all of which may be coupled together by a system bus, network, or other connection mechanism <b>258</b>. Machine <b>248</b> can comprise a smartphone or a tablet device, but is not so limited.
A processor, such as processor <b>250</b>, can comprise one or more general purpose processors (e.g., INTEL single core microprocessors or INTEL multicore microprocessors) or one or more special purpose processors (e.g., digital signal processors). A processor can be configured to execute computer-readable program instructions (CRPI) stored in a data storage device (e.g., a memory). A processor can be referred to as a computing device or a computer-readable processor.
Data transceiver <b>252</b> can include one or more transmitters (e.g., a wireless communication link transmitter or a wired communication link transmitter). A wireless communication link transmitter can be configured to transmit data to or over a wireless communication link. A wired communication link transmitter can be configured to transmit data to or over a wired communication link. Data transceiver <b>252</b> can include one or more receivers (e.g., a wireless communication link receiver or a wired communication link receiver). A wireless communication link receiver can be configured to receive data transmitted over or by a wireless communication link. A wired communication link receiver can be configured to receive data transmitted over or by a wired communication link. Data transceiver <b>252</b> can include one or more antennas, such as one or more antennas connected to a wireless communication link transmitter or a wireless communication link receiver. Data transceiver <b>252</b> can include a network interface card configure to interface with a wired communication link, such as wired communication link <b>220</b>.
Data transceiver <b>252</b> can be configured to receive an input, such as input data 210. Data transceiver <b>252</b> can be configured to transmit an encoded cell or a cell array (or data indicating the encoded cell or cell array) to an element in outputting stage <b>204</b>, such as network <b>214</b> or printer <b>216</b>.
User interface <b>254</b> can include one or more input components for inputting data, such as input data 210, into machine <b>248</b>. As another example, user interface <b>254</b> can be configured to receive an input request to cause the computing device to scan or decode a cell array. The input request can be a scan request, a decode request or another request. The one or more input components can include, but is not limited to, a computer keyboard, a touch screen display, a computer mouse or other pointing device, or an audio microphone.
User interface <b>254</b> can include one or more output components for presenting data, such as a cell array, to a user. The one or more output components can include, but is not limited to, a display (such as an LED, an LCD, a CRT display, or plasma display) or an audio speaker. One or more components, such as the touch screen display, can function as an input component and an output component.
Capture device <b>266</b> comprises one or more components configured to capture a cell array, such as cell array <b>30</b>. As an example, a component configured to capture a cell array includes a digital camera configured to capture an image of the cell array or to scan an image of the cell array. Capture device <b>266</b> can use a quantity of dots per inch (DPI) to store a representation of the cell array (i.e., the captured cell array). The specified DPI can indicate the noise level of encoded cells that can be accurately decoded by machine <b>248</b>. In capturing a cell array, capture device <b>266</b> can capture individual cells of the cell array. Capture device <b>266</b> can comprise a camera within a smartphone or tablet device, but is not so limited.
Computer-readable medium <b>256</b> can comprise a non-transitory computer-readable storage medium readable by a processor, such as processor <b>250</b>. The computer-readable storage medium can comprise volatile and/or non-volatile storage components, such as optical, magnetic, organic or other memory or disc storage, which can be integrated in whole or in part with a processor. Computer-readable medium <b>256</b> may also or alternatively be provided separately, as a non-transitory machine readable medium.
Additionally or alternatively, computer-readable medium <b>256</b> can comprise a transitory computer-readable medium. The transitory computer-readable medium can include, but is not limited to, a communications medium such as a digital or analogue communications medium (e.g., a fiber optic cable, a waveguide, a wired communication link, or a wireless communication line).
Computer-readable medium <b>256</b> can store various data for use by machine <b>248</b> to carry out any functions described herein as being performed or performable by machine <b>212</b>, <b>230</b>, or <b>248</b>. As an example, computer-readable medium <b>256</b> can store computer-readable program instructions (CRPI) <b>260</b>, input data 262, a cell array <b>264</b>, an encoding scheme <b>268</b>, a set of line patterns <b>270</b>, and a color array <b>272</b>. CRPI <b>260</b> can be written according to any of a variety of computer programming languages such as, but not limited to, the C and C++ programming languages. Input data 262 can include input data 210, including input data to be encoded into an encoded cell or a cell array. Input data 262 can include one or more encoding scheme selections.
Cell array <b>264</b> can include one or more cell arrays as described herein. In accordance with an example embodiment in which machine <b>248</b> is used to encode a binary identifier, such as machine <b>212</b>, cell array <b>264</b> can include one or more cell arrays encoded by processor <b>250</b>. In accordance with an example embodiment in which machine <b>248</b> is used to decode a cell array, cell array <b>264</b> can include one or more cell arrays captured by capture device <b>266</b>. Cell array <b>264</b> can include one or more cell arrays encoded by processor <b>250</b> and one or more cells captured by capture device <b>266</b>.
Encoding scheme <b>268</b> can include one or more encoding schemes usable by processor <b>250</b> to encode a binary identifier or to decode a captured cell array. Encoding scheme <b>268</b> can include an encoding scheme that including encoding scheme data (ESD) that defines a cell array. The ESD can include data defining the cell shape(s) available for encoding cells in the cell array. The ESD can include data defining a pitch dimension. The ESD can include data defining a reference angle position. The ESD can include data defining which line patterns are available for encoding cells in the cell array. That ESD can include data defining how many line patterns are available for encoding cells in the cell array. The ESD can include data that represents a cell color. The ESD can include data defining a predetermined sequence of bits corresponding to each available line pattern. The ESD can include data defining which cell colors are available for encoding cells in the cell array. The ESD can include data defining how many cell colors are available for encoding cells in the cell array. The ESD can include data defining a predetermined sequence of bits for each available cell color. The ESD can include data defining a bit order for any cell encoding more than one predetermined sequence of bits. The ESD can include data defining one or more decoding cells available for placement in the cell array. The ESD can include data defining whether gaps cells are available for placement in the cell array. The ESD can include a data representation of a cell corresponding to each of the state numbers. The ESD can include data representation of a cell can include data that represents a line pattern of the cell to distinguish the cell from other cells. The ESD can define an alignment mark available for placement in a cell. The ESD can define an alignment mark position within a cell. Other examples of the ESD that can be included within an encoding scheme <b>268</b> are also possible.
Line patterns <b>270</b> can comprise one or more sets of line patterns. Each set of line patterns can correspond to one or more encoding schemes. Computing device <b>250</b> can use a set of line patterns for comparing to a line pattern of a cell being decoded. A data representation used by encoding scheme <b>258</b> can be within line patterns <b>270</b>.
Color array <b>272</b> can comprise one or more color arrays. Each color array <b>272</b> can correspond to one or more encoding schemes. Computing device <b>250</b> can use a color array for comparing to a cell color of a cell being decoded. The data representation used by encoding scheme <b>258</b> can be within color array <b>272</b>.
Computer-readable medium <b>256</b> can comprise a computer-readable medium storing program instructions, that when executed by a computing device, such as processor <b>250</b>, cause a set of functions to be performed. As an example, the set of functions can include the set of functions <b>150</b> described with respect to <figref idref="DRAWINGS">FIG. 15</figref>, the set of functions <b>160</b> described with respect to <figref idref="DRAWINGS">FIG. 16</figref>, or the set of functions <b>170</b> described with respect to <figref idref="DRAWINGS">FIG. 17</figref>. As another example, the set of functions can describe any combination of functions described in the additional example embodiments numbered 1 to 36, 110 to 143, and 213 to 246.
Machine <b>248</b>, or elements thereof (e.g., processor <b>250</b> and computer-readable medium) that form a machine, can be configured to cause a set of functions to be performed. Computer-readable medium <b>256</b> can store program instructions, such as CRPI <b>260</b>, that when executed by processor <b>250</b>, cause the set of functions to be performed. As an example, the functions can include the set of functions <b>150</b> described with respect to <figref idref="DRAWINGS">FIG. 15</figref>, the set of functions <b>160</b> described with respect to <figref idref="DRAWINGS">FIG. 16</figref>, or the set of functions <b>170</b> described with respect to <figref idref="DRAWINGS">FIG. 17</figref>. As another example, the set of functions can describe any combination of functions described in the additional example embodiments numbered 1 to 36, 110 to 143, and 213 to 246.
XI. Example Operation
Next, <figref idref="DRAWINGS">FIG. 15</figref> depicts a flowchart showing a set of functions (e.g., operations) <b>150</b> (or more simply, “the set <b>150</b>”) that can be carried out in accordance with one or more of the example embodiments described herein. The functions of the set <b>150</b> are shown within blocks labeled with even integers between <b>152</b> and <b>158</b>, inclusive. Any other function(s) described herein can be performed prior to, while, or after performing any one or more of the functions of the set <b>150</b>. Those other function(s) can be performed in combination with or separately from any one or more of the functions of the set <b>150</b>. Reference numbers from the figures are included with the following description of <figref idref="DRAWINGS">FIG. 15</figref> for purposes of example rather than for limiting the description to any particular embodiment. Set <b>150</b> can include one or more additional functions. Examples of such additional functions are provided after the description of block <b>158</b>. Other examples of such additional functions are also possible. CRPI <b>260</b> can include program instructions to perform any of the additional functions described with respect to at least one of set <b>150</b>, set <b>160</b>, and set <b>170</b>.
Block <b>152</b> includes receiving, by a computing device <b>250</b>, a binary identifier comprising a plurality of bits. Receiving the binary identifier can include receiving data (e.g., input <b>210</b>) that indicates each bit of the plurality of bits in a predetermined sequence. Computing device <b>250</b> can also receive a non-binary input and convert the non-binary input to the binary identifier. Receiving the binary identifier can include receiving the non-binary identifier and converting the non-binary identifier to an equivalent binary identifier. For example, a non-binary identifier such as the hexadecimal data 45 is equivalent to the binary identifier comprising the binary data 0100 0101. The binary identifier or the non-binary identifier can, for example, include data representing a set of ASCII characters that indicate a string of text, such as “Buy ACME!”
Next, block <b>154</b> includes determining, by computing device <b>250</b>, one or more encoded cells that encode the binary identifier in accordance with an encoding scheme <b>268</b>, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter. The perimeter can be configured as any perimeter described herein, but is not so limited. The alignment mark within the perimeter can be configured like any alignment mark described herein, but is not so limited. The line pattern within the perimeter can be configured as any line pattern described herein, but is not so limited.
Determining the one or more encoded cells in accordance with an encoding scheme <b>268</b> can include determining, for each of the one or more encoded cells, a cell color, such as a cell color from a plurality of cell (e.g., the colors identified in Table 6 or a different plurality of colors). As shown in Table 6, each cell color can represent a distinct sequence of binary data, such as two or more bits of data. In accordance with the example embodiments in which the encoding scheme <b>268</b> is based on a cell color and a line pattern, two or more data bits represented by the cell color can be a precursor to any data bit(s) represented by the line pattern. Alternatively, two or more data bits represented by a line pattern can be a precursor to any data bit(s) represented by a cell color. In accordance with other embodiments, determining a cell color can include determining a cell color associated with a predetermined sequence of two or more bits that matches the predetermined sequence of two or more bits indicated by the line pattern of the cell so as to encode redundant sequences of two or more bits in the encoded cell that can be compared during decoding of the encoded cell to confirm proper decoding.
As another example, encoding scheme <b>268</b> can include an encoding scheme based on the data shown in Table 5 and the binary identifier can include the binary data of input <b>210</b> shown in <figref idref="DRAWINGS">FIG. 13</figref> (i.e., 0100, 0010, 0111, 0101, 0111, 1001, 0010, 0000, 0100, 0001, 0100, 0011, 0100, 1101, 0100, 0101, 0010, and 0001). Encoding that binary identifier using the encoding scheme of Table 5 can include computing device <b>250</b> identifying each set of four data bits and determining the cell state number that corresponds to the four data bits. In accordance with this example, computing device <b>250</b> can determine the following cell state numbers: 5, 3, 8, 6, 8, 10, 3, 1, 5, 2, 5, 4, 5, 14, 5, 6, 3, and 2. Computing device <b>250</b> can select data (e.g., a line pattern or color) representing a cell corresponding to each of the determined state numbers for use in generating a cell array. For other encoding schemes <b>268</b>, computing device <b>250</b> can determine a cell state number that corresponds to a different number of data bits (e.g., 2, 3, 5, 6, 7, 8, or 16 bits).
Next, block <b>156</b> includes generating, by the computing device <b>250</b>, a cell array <b>30</b> that includes the one or more encoded cells. Generating the cell array <b>30</b> can include the computing device <b>250</b> generating cell arrangement data for indicating a position for each cell in the cell array relative to a position of at least one other cell in the cell array. Computing device <b>250</b> can therefore determine a position for each cell (e.g., an encoded cell, an alignment cell, a gap, a decoding cell, or a layout cell) within the cell array. Computing device <b>250</b> can determine cells other than the encoded cells to include in the cell array based, at least in part, on the selected encoding scheme <b>268</b>. The generated cell arrangement data can also identify one or more pitch dimensions to specify a pitch between two or more alignment marks in adjacent cells. The cell arrangement data can be stored in within computer-readable medium <b>256</b> as a cell array <b>264</b>.
Next, block <b>158</b> includes outputting, by computing device <b>250</b>, data for producing a graphical representation of the cell array. Outputting the data referenced in block <b>158</b> can include transmitting the data from computing device <b>250</b> to network <b>214</b> for transmission, in turn, to another machine. As an example, the other machine can include printer <b>216</b>, which can, in turn, print an instance of the graphical representation of the cell array on the surface of an article of manufacture. As another example, the other machine can include an engraving machine (e.g., a laser engraving machine) which can, in turn, engrave an instance of the graphical representation of the cell array on the surface of an article of manufacture. As yet another example, the other machine can include a machine comprising display <b>226</b>, which can, in turn, display that data as a graphical representation of the cell array.
Since a computing device (e.g., processor <b>250</b>) can be embodied within a machine, such as machine <b>248</b>, receiving the binary identifier at block <b>152</b>, determining the one or more cell arrays at block <b>154</b>, generating the cell array at block <b>156</b>, and outputting the data at block <b>156</b> can be carried out by the machine (i.e., a machine that embodies the computing device).
Another function that can be performed as part of the set <b>150</b> includes determining, by computing device <b>250</b>, one or more alignment cells, wherein the generated cell array includes the one or more alignment cells. The determined one or more alignment cells can include any one or more of the following: (i) at least one alignment cell that indicates a start point within the cell array, (ii) two or more adjacent cells (e.g., cells <b>36</b><i>a </i>and <b>36</b><i>b</i>) that collectively identify a starting node (e.g., starting node <b>34</b>) in the cell array, (iii) at least one alignment cell that indicates an end point within the cell array, (iv) at least one alignment cell that indicates an end point of a row within the cell array, (v) a plurality of colored alignment cells, and (vi) at least one alignment cell that is an inverse of an empty-cell line pattern, such as the empty-cell line pattern of encoded cell <b>10</b> shown in <figref idref="DRAWINGS">FIG. 1</figref>. A colored alignment cell can be colored to match a corresponding color of a plurality of colors, such as the plurality of colors identified in Table 6 or another plurality of colors.
Another function that can be performed as part of the set <b>150</b> includes determining, by computing device <b>250</b>, a layout selection for generating the cell array <b>30</b>, and determining, by computing device <b>250</b>, a layout in accordance with the determined layout selection. Generating the cell array <b>30</b> can include positioning the one or more encoded cells in the layout in accordance with the determined layout selection. Generating cell array <b>30</b> can include positioning one or more layout cells. The one or more layout cells can form a portion of the layout but do not encode any portion of the binary identifier.
Another function that can be performed as part of the set <b>150</b> includes determining, by computing device <b>250</b>, a selected noise tolerance level. The noise tolerance level can be selected from among the noise tolerance levels described herein (i.e. Noise Tolerance Levels I, II, III, and IV) or from among another set of noise tolerance levels that can be defined. The one or more encoded cells in the cell array can have a noise tolerance level that is more noise tolerant or that matches the selected noise tolerance level.
Next, <figref idref="DRAWINGS">FIG. 16</figref> depicts a flowchart showing a set of functions (e.g., operations) <b>160</b> (or more simply, “the set <b>160</b>”) that can be carried out in accordance with one or more of the example embodiments described herein. The functions of the set <b>160</b> are shown within blocks labeled with even integers between <b>162</b> and <b>168</b>, inclusive. Any other function(s) described herein can be performed prior to, while, or after performing any one or more of the functions of the set <b>160</b>. Those other function(s) can be performed in combination with or separately from any one or more of the functions of the set <b>160</b>. Reference numbers from the figures are included within the following description of <figref idref="DRAWINGS">FIG. 16</figref> for purposes of example rather than for limiting the description to any particular embodiment. Set <b>160</b> can include one or more additional functions. Examples of such additional functions are provided after the description of block <b>168</b>. Other examples of such additional functions are also possible.
Block <b>162</b> includes receiving, by a computing device <b>250</b>, a captured cell array including one or more encoded cells that encode a binary identifier in accordance with an encoding scheme <b>268</b>, wherein each encoded cell <b>10</b> indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter. The perimeter can be configured as any perimeter described herein, but is not so limited. The alignment mark within the perimeter can be configured like any alignment mark described herein, but is not so limited. The line pattern within the perimeter can be configured as any line pattern described herein, but is not so limited.
The computing device <b>250</b> can receive the captured cell array from various components, such as data transceiver <b>252</b>, computer-readable medium <b>256</b>, capture device <b>266</b>, or another component configured to provide the captured cell array to the computing device. Receiving the captured cell array can include receiving a captured image of the cell array or receiving a scanned image of the cell array. The captured cell array can include at least one decoding cell that includes a decoding instruction (e.g., a decoding instruction that indicates the encoding scheme <b>268</b> used to encode the binary identifier).
Next, block <b>164</b> includes decoding, by computing device <b>250</b>, each encoded cell <b>10</b> in the captured cell array <b>30</b> in accordance with a decoding scheme corresponding to the encoding scheme to recover the bits indicated by the encoded cell. Decoding each encoded cell in the capture cell array can include, but is not limited to, performing any one or more of following functions: (i) detecting, by the computing device, each encoded cell in the captured cell array, and (ii) decoding, by the computing device, a cell color for each cell of the one or more encoded cells in the cell array. The decoded color can be one of the colors identified in Table 6. Each color of the plurality of colors can represent a distinct sequence of two or more bits.
Decoding an encoded cell can also include computing device <b>250</b> identifying the line pattern within the encoded cell <b>10</b>. Computing device <b>250</b> can identify an alignment node <b>31</b> of cell array <b>30</b> regardless of where alignment node <b>31</b> is positioned within the capture cell array. For example, alignment node <b>31</b> within the capture cell array <b>30</b> could be located at a top left portion of cell array <b>30</b> as shown in <figref idref="DRAWINGS">FIG. 10</figref>. As another example, alignment node <b>31</b> within the captured cell array could be located at a top right position of cell array <b>30</b> with one null cell <b>32</b> above the other null cell <b>32</b>. This can be visualized by rotating <figref idref="DRAWINGS">FIG. 10</figref> clockwise 90 degrees. As yet another example, alignment node <b>31</b> within the captured cell array could be located at a lower right position of cell array <b>30</b>. This can be visualized by rotating <figref idref="DRAWINGS">FIG. 10</figref> clockwise 180 degrees.
Computing device <b>250</b> can determine the pitch between alignment marks in the first two cells of an alignment node. Computing device <b>250</b> can use the determined pitch to locate an alignment mark in a cell to be decoded (e.g., a cell adjacent to an alignment cell or a cell adjacent to a previously decoded cell). Computing device <b>250</b> can use the determined pitch to determine the perimeter of the cell to be decoded. Computing device <b>250</b> can compare a line pattern within the determined perimeter of the cell being decoded to a set of line patterns <b>270</b>. Computing device <b>250</b> can determine a line pattern within the set of line patterns <b>270</b> that matches the line pattern of the cell being decoded in order to determine the state number or bit sequence encoded by the cell being decoded.
Next, block <b>166</b> includes recovering, by computing device <b>250</b>, the binary identifier by combining the recovered bits. Combining the recovered bits can include combining the bits recovered for each cell into a predetermined sequence of bits and then combining the predetermined sequence of bits for each cell according to an order that the cells occur in the cell array. If the cell encodes a color and a line pattern, the predetermined sequence can include two or more bits including two or more bits based on the line pattern within the perimeter of the cell and two or more bits represented by the cell color. In one respect, the two or more bits represented by the cell color can be a precursor to the two or more bits based on the line pattern. In another respect, the two or more bits based on the line pattern can be a precursor to the two or more bits represented by the cell color.
Next, block <b>168</b> includes outputting, by computing device <b>250</b>, the recovered binary identifier. Outputting the recovered binary identifier can include a machine, including the computing device and a display, displaying the recovered binary identifier on the display. Outputting the recovered binary identifier can include transmitting the recovered binary identifier from the computing device to a display device, such as a display device of user interface <b>254</b>.
Another function that can be performed as part of the set <b>160</b> includes identifying, by the computing device, one or more alignment cells within the captured cell array. Identifying each alignment cell can include identifying a null cell, such as null cell <b>36</b><i>a </i>or <b>36</b><i>b</i>. Identifying the null cell can include identifying, by the computing device within the captured image, a perimeter and an alignment mark within the perimeter. The identified one or more alignment cells can include any one or more of the following: (i) at least one alignment cells that indicates a start point within the cell array, (ii) an alignment node including two or more adjacent alignment cells that collectively identify a start point within the cell array, (iii) at least one alignment cell that indicates an end point within the cell array, (iv) at least one alignment cell that indicates an end point of a row within the cell array, (v) a plurality of colored alignment cells, each colored alignment cell comprises an alignment cell colored to match a corresponding color of a plurality of colors, and (vi) at least one alignment cell that is an inverse of an empty-cell line pattern.
Another function that can be performed as part of the set <b>160</b> includes determining, by the computing device, a dimension of distance from a portion of the perimeter, such as an outer edge of the perimeter, of the null cell to some portion of the alignment mark, such as the centre of the alignment mark. Computing device <b>250</b> can use the dimension to determine a pitch between adjacent cells in the cell array. As an example, computing device <b>250</b> can multiply the dimension by two to determine the pitch. Identifying the one or more alignment cells can include computing device <b>250</b> determining whether any other alignment cell is adjacent to an identified alignment cell by searching for another alignment mark located within a distance equal to the determined pitch relative to a location of the identified alignment cell. Upon locating another alignment cell, computing device <b>250</b> can determine whether the cell including the located alignment cell is a null cell.
Another function that can be performed as part of the set <b>160</b> includes determining, by the computing device, a distance between alignment marks within two adjacent alignment cells, and determining, by the computing device, presence of an encoded cell in the captured cell array by detecting an alignment mark of the encoded cell in the captured cell array and an alignment mark of another captured cell array being separated by a distance equal to the distance between alignment marks within two adjacent cells.
Another function that can be performed as part of the set <b>160</b> includes converting, by the computing device, the recovered binary identifier to an alphanumeric representation of the recovered binary identifier. In such a case, outputting the recovered binary identifier can include transmitting the alpha-numeric representation to a printer or display device. The alpha-numeric representation for input <b>210</b> can be “Buy ACME!” as shown in <figref idref="DRAWINGS">FIG. 13</figref>.
Next, <figref idref="DRAWINGS">FIG. 17</figref> depicts a flowchart showing a set of functions (e.g., operations) <b>170</b> (or more simply, “the set <b>170</b>”) that can be carried out in accordance with one or more of the example embodiments described herein. The functions of the set <b>170</b> are shown within blocks labeled with even integers between <b>172</b> and <b>174</b>, inclusive. Any other function(s) described herein can be performed prior to, while, or after performing any one or more of the functions of the set <b>170</b>. Those other function(s) can be performed in combination with or separately from any one or more of the functions of the set <b>170</b>. Reference numbers from the figures are included within the following description of <figref idref="DRAWINGS">FIG. 17</figref> for purposes of example rather than for limiting the description to any particular embodiment. Set <b>170</b> can include one or more additional functions. Examples of such additional functions are provided after the description of block <b>174</b>. Other examples of such additional functions are also possible.
Block <b>172</b> includes receiving, by a computing device, data specifying a cell array, wherein the cell array includes one or more encoded cells that encode a binary identifier in accordance with an encoding scheme, wherein each encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
The received data can indicate a cell color for each of the one or more encoded cells. Each cell color can represent a distinct sequence of two or more bits. The received data can indicate a cell color for any other cells within the specified cell array. The perimeter can be configured as any perimeter described herein, but is not so limited. The alignment mark within the perimeter can be configured like any alignment mark described herein, but is not so limited. The line pattern within the perimeter can be configured as any line pattern described herein, but is not so limited.
Next, block <b>174</b> includes displaying, by a display connected to the computing device, a graphical representation of the cell array, wherein the displayed cell array includes the one or more encoded cells that encode the binary identifier in accordance with the encoding scheme, wherein each displayed encoded cell indicates a predetermined sequence of two or more bits, and wherein each encoded cell includes a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter.
The display can be connected to computing device <b>250</b> by at least one of a wireless communication link, a wired communication link, and a wired and wireless communication link.
The predetermined sequence of two or more bits can include two or more bits based on the line pattern within the perimeter and two or more bits based on a cell color. The two or more bits represented by the cell color can be a precursor to the two or more bits based on the line pattern. The two or more bits represented by the line pattern can be a precursor to the two or more bits based on the cell color. For each of the one or more encoded cells, the distinct sequence of two or more bits represented by the cell color indicated for the cell can match the predetermined sequence of two or more bits indicated by the line pattern of the cell so as to encode redundant sequences of two or more bits in the encoded cell that can be compared during decoding of the encoded cell to confirm proper decoding.
The cell array can include one or more alignment cells. The received data can indicate the one or more alignment cells within the cell array. The one or more alignment cells can include any of the following: (i) a plurality of colored alignment cells, (ii) at least one alignment cell that indicates a start point within the cell array, (iii) an alignment node including two or more adjacent alignment cells that collectively identify a start point within the cell array, (iv) at least one alignment cell that indicates an end point within the cell array, (v) at least one alignment cell that indicates an end point of a row within the cell array, and (vi) at least one alignment cell that is an inverse of an empty-cell line pattern.
The plurality of colors can include a predetermined number of colors. The two or more adjacent cells can include a predetermined number of cells equal to the predetermined number of colors. Each cell of the two or more adjacent cells can correspond to a distinct color of the predetermined number of colors.
Another function that can be performed as part of the set <b>170</b> includes receiving, by computing device <b>250</b>, a non-binary identifier equivalent to the binary identifier, and converting, by computing device <b>250</b>, the non-binary identifier to the binary identifier. Accordingly, receiving the binary identifier can include receiving the binary identifier converted by computing device <b>250</b> from the non-binary identifier.
The descriptions of <figref idref="DRAWINGS">FIG. 15</figref> to <figref idref="DRAWINGS">FIG. 17</figref> refer to computing device <b>250</b> and machine <b>248</b>. A separate instance of computing device <b>250</b> and machine <b>248</b> can be used to carry out one or more of the functions of the sets <b>150</b>, <b>160</b>, and <b>170</b>, but is not necessary, as a single instance of computing device <b>250</b> or machine <b>248</b> can carry out one or more of the functions of the sets <b>150</b>, <b>160</b>, and <b>170</b>.
XII. Alternative Encoded Cells
Next, <figref idref="DRAWINGS">FIG. 11</figref> illustrates an example cell array <b>60</b> including alignment node <b>61</b> and encoded cells <b>62</b>. Alignment node <b>61</b> and encoded cells <b>62</b> are rectangular, and can be square. Alignment node <b>61</b> may include adjacent null cells <b>57</b>, as shown in <figref idref="DRAWINGS">FIG. 11</figref>. Encoded cells <b>62</b> include a rectangular perimeter (e.g., a square perimeter) <b>63</b>, an alignment mark <b>65</b> within perimeter <b>63</b>, and a line pattern <b>66</b> within perimeter <b>63</b>. Perimeter <b>63</b> can define a rectangular cell body <b>64</b>. Perimeter <b>63</b> can be black or another color, such as a color identified in Table 6. Alignment mark <b>65</b> is centrally located within cell <b>62</b>, but alternatively, may be offset from a centre of cell <b>62</b>. Alignment mark <b>65</b> is represented as a circle (e.g., a dot) in <figref idref="DRAWINGS">FIG. 11</figref>, but is not so limited. As shown in <figref idref="DRAWINGS">FIG. 11</figref>, a cell array can include closely-packed rectangular-shaped cells. Cell arrays using rectangular-shaped cells can be created in any of a variety of shapes, such as the letter Z or another shape.
<figref idref="DRAWINGS">FIG. 11</figref> shows encoded cells <b>62</b> with 22 different line patterns (or states). Each cell has one of the defined noise tolerant levels, as shown in Table 11. Each of the 22 line patterns can be associated with up to 4 bits of binary data or a decoding instruction as shown in Table 11. Cell states #17 to #19 can identify a tolerance level of one or more cells within a cell array, such as one or more cells that follow a cell with cell state #17, #18, or #19. Another tolerance level, such as tolerance level I, of one or more cells can be implied for a number of encoded cells within a cell array, such as one or more cells located at the beginning of a row or one or more cells following occurrence of two cells identifying a tolerance level other than the implied tolerance level. Cell state #22 can correspond to an empty-cell line pattern <b>67</b>.
<tables id="TABLE-US-00011" num="00011"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="4"><colspec colname="1" colwidth="35pt" align="center" /><colspec colname="2" colwidth="56pt" align="center" /><colspec colname="3" colwidth="70pt" align="left" /><colspec colname="4" colwidth="56pt" align="left" /><thead><row><entry namest="1" nameend="4" rowsep="1">TABLE 11</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row><row><entry>Cell State</entry><entry>Binary Data</entry><entry>Decoding instruction</entry><entry>Noise Tolerance</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry> #1</entry><entry>0000</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #2</entry><entry>0001</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #3</entry><entry>0010</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #4</entry><entry>0011</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #5</entry><entry>0100</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #6</entry><entry>0101</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #7</entry><entry>0110</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #8</entry><entry>0111</entry><entry>N.A.</entry><entry>Level I</entry></row><row><entry> #9</entry><entry>1000</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#10</entry><entry>1001</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#11</entry><entry>1010</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#12</entry><entry>1011</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#13</entry><entry>1100</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#14</entry><entry>1101</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#15</entry><entry>1110</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#16</entry><entry>1111</entry><entry>N.A.</entry><entry>Level II</entry></row><row><entry>#17</entry><entry>N.A.</entry><entry>Tolerance Level 2</entry><entry>Level III</entry></row><row><entry>#18</entry><entry>N.A.</entry><entry>Tolerance Level 3</entry><entry>Level III</entry></row><row><entry>#19</entry><entry>N.A.</entry><entry>Tolerance Level 4</entry><entry>Level II</entry></row><row><entry>#20</entry><entry>N.A.</entry><entry>Start of row</entry><entry>Level II</entry></row><row><entry>#21</entry><entry>N.A.</entry><entry>End of row</entry><entry>Level IV</entry></row><row><entry>#22</entry><entry>N.A.</entry><entry>End of array</entry><entry>Level IV</entry></row><row><entry namest="1" nameend="4" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Next <figref idref="DRAWINGS">FIG. 12</figref> illustrates an example cell array <b>70</b> including an alignment node <b>78</b> and <b>14</b> instances of a triangle shaped (or more simply, “triangular”) encoded cell <b>77</b> (only one of which is labeled for clarity of the figure). Alignment node <b>78</b> can include two triangular null cells <b>71</b>. Encoded cells <b>77</b> includes a triangular perimeter <b>72</b>, an alignment mark <b>73</b> within perimeter <b>72</b>, and a line pattern <b>74</b> within perimeter <b>72</b>. Perimeter <b>72</b> can define a triangular cell body <b>79</b>. Perimeter <b>72</b> can be black or another color, such as a color identified in Table 6. Alignment mark <b>73</b> can be centrally located within cell <b>72</b>, but alternatively, can be offset from a centre of cell <b>72</b>. Alignment mark <b>73</b> is represented as a circle (e.g., a dot) in <figref idref="DRAWINGS">FIG. 12</figref>, but is not so limited. As shown in <figref idref="DRAWINGS">FIG. 12</figref>, a cell array can include closely-packed triangle-shaped cells. Cell arrays using triangular-shaped cells can be created in any of a variety of shapes. <figref idref="DRAWINGS">FIG. 12</figref> shows encoded cells <b>72</b> with 14 different line patterns including an empty-cell line pattern <b>75</b>. Those 14 different line patterns can, for example, encode 3 bits, and be associated with 6 decoding instructions. Alternatively, two or more additional and different line patterns can be defined for a triangle-shaped cell such that 4 bits of binary data can be encoded by 16 different line patterns within triangle-shaped cells.
Next, <figref idref="DRAWINGS">FIG. 19</figref> illustrates an example cell array <b>113</b> including an alignment node <b>115</b> and <b>14</b> instances of a cross-shaped encoded cells <b>119</b> (only one of which is labeled for clarity of the figure). Alignment node <b>115</b> can include two cross-shaped null cells <b>117</b>. Encoded cells <b>119</b> includes a cross-shaped perimeter <b>123</b>, an alignment mark <b>125</b> within perimeter <b>123</b>, and a line pattern <b>121</b> within perimeter <b>123</b>. Perimeter <b>123</b> can define a cross-shaped cell body <b>127</b>. Perimeter <b>123</b> can be black or another color, such as a color identified in Table 6. Alignment mark <b>125</b> can be centrally located within cell <b>123</b>, but alternatively, can be offset from a centre of cell <b>123</b>. Alignment mark <b>125</b> is represented as a circle (e.g., a dot) in <figref idref="DRAWINGS">FIG. 19</figref>, but is not so limited. As shown in <figref idref="DRAWINGS">FIG. 19</figref>, a cell array can include closely-packed cross-shaped cells <b>119</b>. Cell arrays using cross-shaped cells can be created in any of a variety of shapes. <figref idref="DRAWINGS">FIG. 19</figref> shows encoded cells <b>119</b> with fourteen different line patterns including an empty-cell line pattern <b>129</b>. Those fourteen different line patterns can, for example, encode three bits, and be associated with six decoding instructions. Alternatively, two or more additional and different line patterns can be defined for a cross-shaped cell such that four bits of binary data can be encoded by sixteen different line patterns within cross-shaped cells.
XIII. Article of Manufacture
The example embodiments can also include or pertain to an article of manufacture. In accordance with the example embodiments, an article of manufacture can include a surface and a cell array at the surface. The cell array can be readable by computing device <b>250</b>. The surface can comprise a metal surface, a plastic surface, a glass surface, or a wooden surface. The surface can be made of metal, plastic, glass, wood, or some other material on which a cell array can be positioned at the surface.
The cell array at the surface can be configured like any cell array described herein or like a cell array including any of the cell array features described herein. As an example, the cell array can include one or more encoded cells that encode, in accordance with an encoding scheme, a binary identifier that represents information pertaining to the article of manufacture. The binary identifier can comprise a plurality of bits. Each encoded cell can indicate a predetermined sequence of two or more bits. The predetermined sequence of two or more bits can include two or more bits based on the line pattern within the perimeter and two or more bits represented by the cell color. Either of those predetermined sequence of two or more bits can be a precursor to the other predetermined sequence of two or more bits. The predetermined sequence of two or more bits for one or more of the encoded cells can be based on an angular position of the line pattern from a predetermined reference direction.
Each encoded cell can include a perimeter, an alignment mark within the perimeter, and a line pattern within the perimeter. The article of manufacture can comprise a magazine or a newspaper. The information pertaining to the article of manufacture can include at least one of an advertisement, a uniform resource locator (URL), and a telephone number.
The cell array at the surface can comprise a cell array on the surface. The cell array on the surface can comprise a cell array printed on the surface. The cell array on the surface can comprise a cell array affixed to the surface using an adhesive.
The cell array at the surface can comprise a cell array within the surface. The cell array within the surface can comprise a cell array engraved within the surface. The cell array within the surface can comprise a cell array etched within the surface.
The perimeter can be configured as any perimeter described herein, but is not so limited. The alignment mark within the perimeter can be configured like any alignment mark described herein, but is not so limited. The line pattern within the perimeter can be configured as any line pattern described herein, but is not so limited.
The cell array at the surface can include an alignment cell. The alignment cell can be configured as any alignment cell described herein, but is not so limited. The cell array at the surface can include a decoding cell. The decoding cell can be configured as any decoding cell described herein, but is not so limited. The cell array at the surface can include one or more layout cells that form a portion of the cell array but to not encode any portion of the binary identifier.
Each of the one or more encoded cells can be a colored cell color. That cell color can be one of plurality of colors such as the plurality of colors shown in Table 6. The cell color can be associated with a predetermined sequence of two or more bits that matches the predetermined sequence of two or more bits indicated by the line pattern of the cell so as to encode redundant sequences of two or more bits in the encoded cell that can be compared during decoding of the encoded cell to confirm proper decoding.
XIV. Additional Aspects of Example Embodiments
Clearly, numerous variations and permutations are possible to the embodiments without departing from the scope of this disclosure: Some of these variations and permutations are described below.
In accordance with one or more of the disclosed embodiments, an encoded cell may be a dodecagon (i.e. 12-sided) instead of a hexagon or the other shapes as described. In such an arrangement, an asymmetric line pattern may be aligned in any one of sixteen possible directions, at angular increments of 22.5° from the reference direction. Such an arrangement will increase the quantity of data that can be encoded by encoded cell relative to the line patterns of encoded cell spaced at 45° intervals. A cell array including dodecagon shaped encoded cells can include other dodecagon shaped cells that are configured as an alignment cell, a decoding cell, or a cell used for another feature described herein.
In accordance with one or more of the disclosed embodiments, instead of the color attribute of encoded cell <b>10</b> being used as precursor to the binary data represented by the state of the cell, the color attribute may be used as a successor to the binary data represented by the line pattern of the cell. In particular, the color of encoded cell <b>10</b> may be used to represent the least significant bits of a concatenation with the binary data represented by the line pattern (or cell state). As an illustration, in the above example where encoded cell <b>10</b> can be presented in any one of 8 different colors, a blue encoded cell with level I fault tolerance representing binary data 011 (as indicated by reference numeral <b>24</b> in <figref idref="DRAWINGS">FIG. 2</figref>) will yield a concatenated bit pattern of <b>011101</b>.
In accordance with one or more of the disclosed embodiments, instead of the color attribute with 8 permissible colors, the number of permissible colors may be doubled to 16, thereby increasing the data capacity of the encoded cell by one bit. In this example, the alignment cell of an encoded cell can include an ordered string of <b>17</b> adjacent null cells, one in each of the 16 permissible colors of the encoded cell, with the two adjacent instances of the leading null cell.
XV. Conclusion
Example aspects and embodiments have been described above for purposes of illustration and are not intended to be limiting. Those skilled in the art will understand that changes and modifications can be made to the described aspects and embodiments without departing from the true scope and spirit of the present invention, which is defined by the claims.
Alternative embodiments are included within the scope of these example embodiments. In these alternative embodiments, for example, functions described as steps, blocks, transmissions, communications, requests, responses, and/or messages can be executed out of order from that shown or discussed, including in substantially concurrent or in reverse order, depending on the functionality involved.
Finally, the description includes words using British English spellings, such as color, colored, colors, analogue, centre, millimeters, and centimeters rather than the equivalent American English spellings color, colored, colors, analog, center, millimeters, and centimeters, respectively.
Contents4
13 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13
Every citation, both waysCites: the store holds 43 of 44
| Document | Relation | Office | Cited during |
|---|---|---|---|
| WO0073983A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0126032A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0171643A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0171653A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO0186582A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO02082366A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO02084473A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO03001440A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US10157301B2 | Cites | United States of America | Applicant |
| CN1434957A | Cites | China | Applicant |
| CN1465003A | Cites | China | Applicant |
| EP1656633B1 | Cites | European Patent Office (EPO) | Applicant |
| US2003066896A1 | Cites | United States of America | Applicant |
| WO2005001754A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2005139686A1 | Cites | United States of America | Search report |
| US2008133629A1 | Cites | United States of America | Search report |
| US2009274298A1 | Cites | United States of America | Search report |
| WO2013027234A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US2013161396A1 | Cites | United States of America | Applicant |
| US2017046549A1 | Cites | United States of America | Applicant |
| US5301238A | Cites | United States of America | Search report |
| US5369261A | Cites | United States of America | Applicant |
| US6000613A | Cites | United States of America | Applicant |
| US6000621A | Cites | United States of America | Applicant |
| US6208771B1 | Cites | United States of America | Applicant |
| US7204428B2 | Cites | United States of America | Search report |
| WO9217859A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| US20030066896A1 | Cites | United States of America | Applicant |
| US20050139686A1 | Cites | United States of America | Search report |
| US20080133629A1 | Cites | United States of America | Search report |
| US20090274298A1 | Cites | United States of America | Search report |
| US20130161396A1 | Cites | United States of America | Applicant |
| US20170046549A1 | Cites | United States of America | Applicant |
| EP1656633A0 | Cites | European Patent Office (EPO) | Applicant |
| WO9217859 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO73983A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO126032A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO171643A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO171653A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO186582A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO2082366A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO2084473A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| WO3001440A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| State Intellectual Property Office (SIPO) of the People's Republic of China, Notification of the 2nd Office Action for Chinese Patent Application No. 201580023602.1, date of notification Apr. 14, 2019. | Non-patent | – | Applicant |
| Office action dated Jan. 18, 2019 for Japanese Patent Application No. 2016-561617. | Non-patent | – | Applicant |
| European Patent Office, Summons to attend oral proceedings to Rule 115(1) EPC for European Patent Application No. 15720763.0, dated Jul. 10, 2019, 15 pages. | Non-patent | – | Applicant |
| Home Box Office, Inc.; screen shots of thirty-four second video segment of The Wire, season 5, episode 9; aired on Mar. 2, 2008; includes English translation of subtitles; screen shots provided in two PDF files. | Non-patent | – | Applicant |
| Wikipedia, “Late Editions”, The Wire episode, Season 5, Episode 9, Air date Mar. 2, 2008; downloaded from the world wide web at https://en.wikipedia.org/wiki/Late_Editions on Jan. 9, 2020; 4 pages. | Non-patent | – | Applicant |
| European Patent Office; EPO Communication for European Patent Application No. 15720763.0, dated Jan. 6, 2020, 14 pages. | Non-patent | – | Applicant |
| TV Eskimo, Posted by Athony Ventre; The Wire Late Editions Recap Season 5, Episode 9; downloaded from the world wide web at http://www.tveskimo.com/2018/03/11/wire-late-editions-recap-season-5-episode-9/ on Jan. 9, 2020; 8 pages. | Non-patent | – | Applicant |
| U.S. Appl. No. 16/210,014, filed Dec. 5, 2018, inventor: John Adam Ulyate. | Non-patent | – | Applicant |
| U.S. Appl. No. 16/210,015, filed Dec. 5, 2018, inventor: John Adam Ulyate. | Non-patent | – | Applicant |
| European Patent Office; Extended European Search Report for European Application No. 20170695.9-1203 dated Jul. 20, 2020. | Non-patent | – | Applicant |
| European Patent Office: Bibliographic data for European Patent Application No. EP1656633A1 published on May 17, 2006 with indication that abstract for EP 165633A1 is not available. | Non-patent | – | Applicant |
| Intellectual Property Corporation of Malaysia; Substantive Examination Adverse Report (Section 30 (1)/ 30(2)) for Maylasia patent application No. PI 2016001834 dated Jan. 30, 2020. | Non-patent | – | Applicant |
| European Patent Office; Communication regarding European patent application No. 15 720 763.0., dated Jan. 13, 2020. | Non-patent | – | Applicant |
| State Intellectual Property Office (SIPO) of the People's Republic of China, Notification of the 2nd Office Action for Chinese Patent Application No. 201580023602.1, date of notification Apr. 14, 2019. | Non-patent | – | Applicant |
| Office action dated Jan. 18, 2019 for Japanese Patent Application No. 2016-561617. | Non-patent | – | Applicant |
| European Patent Office, Summons to attend oral proceedings to Rule 115(1) EPC for European Patent Application No. 15720763.0, dated Jul. 10, 2019, 15 pages. | Non-patent | – | Applicant |
| Home Box Office, Inc.; screen shots of thirty-four second video segment of The Wire, season 5, episode 9; aired on Mar. 2, 2008; includes English translation of subtitles; screen shots provided in two PDF files. | Non-patent | – | Applicant |
| Wikipedia, “Late Editions”, The Wire episode, Season 5, Episode 9, Air date Mar. 2, 2008; downloaded from the world wide web at https://en.wikipedia.org/wiki/Late_Editions on Jan. 9, 2020; 4 pages. | Non-patent | – | Applicant |
| European Patent Office; EPO Communication for European Patent Application No. 15720763.0, dated Jan. 6, 2020, 14 pages. | Non-patent | – | Applicant |
| TV Eskimo, Posted by Athony Ventre; The Wire Late Editions Recap Season 5, Episode 9; downloaded from the world wide web at http://www.tveskimo.com/2018/03/11/wire-late-editions-recap-season-5-episode-9/ on Jan. 9, 2020; 8 pages. | Non-patent | – | Applicant |
| U.S. Appl. No. 16/210,014, filed Dec. 5, 2018, inventor: John Adam Ulyate. | Non-patent | – | Applicant |
| U.S. Appl. No. 16/210,015, filed Dec. 5, 2018, inventor: John Adam Ulyate. | Non-patent | – | Applicant |
| European Patent Office; Extended European Search Report for European Application No. 20170695.9-1203 dated Jul. 20, 2020. | Non-patent | – | Applicant |
| European Patent Office: Bibliographic data for European Patent Application No. EP1656633A1 published on May 17, 2006 with indication that abstract for EP 165633A1 is not available. | Non-patent | – | Applicant |
| Intellectual Property Corporation of Malaysia; Substantive Examination Adverse Report (Section 30 (1)/ 30(2)) for Maylasia patent application No. PI 2016001834 dated Jan. 30, 2020. | Non-patent | – | Applicant |
| European Patent Office; Communication regarding European patent application No. 15 720 763.0., dated Jan. 13, 2020. | Non-patent | – | Applicant |
43 members in 19 offices
Priority claims15
| Document | Office | Kind | Date |
|---|---|---|---|
| 1407432 | United Kingdom | – | |
| 201407432 | United Kingdom | A | |
| 201407432 | United Kingdom | A | |
| 2015051217 | United Kingdom | W | |
| 2015051217 | United Kingdom | W | |
| 201615304112 | United States of America | A | |
| 201615304112 | United States of America | A | |
| 201816210019 | United States of America | A | |
| 1407432 | – | – | – |
| 15304112 | – | – | – |
| GB20140007432 | – | – | – |
| PCTGB2015051217 | – | – | – |
| US201615304112 | – | – | – |
| US201816210019 | – | – | – |
| WO2015GB51217 | – | – | – |
Members43
| Document | Office | Kind | |
|---|---|---|---|
| GB201407432D0 | United Kingdom | D0 | |
| CA2946244A1 | Canada | A1 | |
| WO2015166221A1 | World Intellectual Property Organization (WIPO) | A1 | |
| GB2526261A | United Kingdom | A | |
| AU2015255047A1 | Australia | A1 | |
| SG11201608971VA | Singapore | A | |
| KR20160147004A | Republic of Korea | A | |
| PH12016502106A1 | Philippines | A1 | |
| PH12016502106B1 | Philippines | B1 | |
| MX2016014058A | Mexico | A | |
| US2017046549A1 | United States of America | A1 | |
| CN106462784A | China | A | |
| EP3138048A1 | European Patent Office (EPO) | A1 | |
| AU2015255047B2 | Australia | B2 | |
| GB2526261B | United Kingdom | B | |
| JP2017521740A | Japan | A | |
| BR112016024899A2 | Brazil | A2 | |
| AU2017225025A1 | Australia | A1 | |
| NZ724612A | New Zealand | A | |
| AU2017225025B2 | Australia | B2 | |
| US10157301B2 | United States of America | B2 | |
| IL248294A | Israel | A | |
| IL248294B | Israel | B | |
| US2019108428A1 | United States of America | A1 | |
| US2019156168A1 | United States of America | A1 | |
| JP6527528B2 | Japan | B2 | |
| MX367800B | Mexico | B | |
| US10460223B2 | United States of America | B2 | |
| US10482362B2 | United States of America | B2 | |
| CN106462784B | China | B | |
| US2020117968A1 | United States of America | A1 | |
| EP3702970A1 | European Patent Office (EPO) | A1 | |
| EP3138048B1 | European Patent Office (EPO) | B1 | |
| MY181941A | Malaysia | A | |
| US10936924B2This record | United States of America | B2 | |
| DK3138048T3 | Denmark | T3 | |
| ES2862133T3 | Spain | T3 | |
| ZA201607022B | South Africa | B | |
| CA2946244C | Canada | C | |
| BR112016024899B1 | Brazil | B1 | |
| EP3702970B1 | European Patent Office (EPO) | B1 | |
| EP3702970C0 | European Patent Office (EPO) | C0 | |
| ES2947177T3 | Spain | T3 |
100 transactions on the USPTO file
Allowed after 2 non-final rejections and 1 RCE.
- Non-final rejections
- 2
- Final rejections
- 0
- RCEs
- 1
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Payment of Maintenance Fee, 4th Yr, Small EntityM2551 | M2551 | |
| Applicant Has Filed a Verified Statement of Small Entity Status in Compliance with 37 CFR 1.27SMAL | SMAL | |
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic request for Examiner InterviewM865E | M865E | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Disposal for a RCE / CPA / R129AbandonedABN9 | ABN9 | |
| Mail Pet Dec Routed to Tech CenterMPDRT | MPDRT | |
| Mail-Record Petition Decision of Granted to Withdraw from Issue - with assigned Patent NO.MP015 | MP015 | |
| Record Petition Decision of Granted to Withdraw from Issue - with assigned Patent NO.P015 | P015 | |
| Withdrawal Patent Case from IssueWFIS | WFIS | |
| Pet Dec Routed to Tech CenterPDRT | PDRT | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Request for Continued Examination (RCE)RCEX | RCEX | |
| Petition EnteredPET. | PET. | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Workflow - Request for RCE - BeginBRCE | BRCE | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Dispatch to FDCD1935 | D1935 | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Response to Amendment under Rule 312N271 | N271 | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Mail PUB other miscellaneous communication to applicantMM327-D | MM327-D | |
| PUB Other miscellaneous communication to applicantM327-D | M327-D | |
| Response to Reasons for AllowanceREAS | REAS | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Printer Rush- No mailingTCPB | TCPB | |
| Printer Rush- No mailingTCPB | TCPB | |
| Pubs Case Remand to TCPUBTC | PUBTC | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Reasons for AllowanceEX.R | EX.R | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Electronic Information Disclosure StatementEIDS. | EIDS. | |
| Response after Non-Final ActionA... | A... | |
| Request for Extension of Time - GrantedXT/G | XT/G | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Mail Interview Summary - Applicant Initiated - TelephonicMEXAT | MEXAT | |
| Filing Receipt - CorrectedFLRCPT.C | FLRCPT.C | |
| Interview Summary - Applicant Initiated - TelephonicEXAT | EXAT | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Application ready for PDX access by participating foreign officesCCRDY | CCRDY | |
| Mail Pre-Exam NoticeMPEN | MPEN | |
| Sent to Classification ContractorPGPC | PGPC | |
| FITF set to YES - revise initial settingFTFS | FTFS | |
| Application Is Now CompleteCOMP | COMP | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Oath or Declaration Filed (Including Supplemental)C602 | C602 | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Patent Term Adjustment - Ready for ExaminationPTA.RFE | PTA.RFE | |
| PTO/SB/69-Authorize EPO Access to Search ResultsSREXR141 | SREXR141 | |
| Applicants have given acceptable permission for participating foreignAPPERMS | APPERMS | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Entity Status Set To Undiscounted (Initial Default Setting or Status Change)BIG. | BIG. | |
| Initial Exam Team nnIEXX | IEXX |
8 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Fee payment procedureENTITY STATUS SET TO SMALL (ORIGINAL EVENT CODE: SMAL); ENTITY STATUS OF PATENT OWNER: SMALL ENTITYFEPP | FEPP | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF | |
| Information on status: patent application and granting procedure in generalNON FINAL ACTION MAILEDSTPP | STPP | |
| Information on status: patent application and granting procedure in generalDOCKETED NEW CASE - READY FOR EXAMINATIONSTPP | STPP | |
| Information on status: patent application and granting procedure in generalPUBLICATIONS -- ISSUE FEE PAYMENT VERIFIEDSTPP | STPP | |
| AssignmentAS | AS | |
| Fee payment procedureENTITY STATUS SET TO UNDISCOUNTED (ORIGINAL EVENT CODE: BIG.); ENTITY STATUS OF PATENT OWNER: LARGE ENTITYFEPP | FEPP |
Numbers
- Publication
- 10936924
- Publication, DOCDB
- 10936924
- Publication, EPODOC
- US10936924
- Application
- 16210019
- Application, DOCDB
- 201816210019
- Application, EPODOC
- US201816210019
Titles
- English
- Encoded cells and cell arrays
Patent term adjustment
- A delay
- +3 daysthe office missed an examination deadline
- Applicant delay
- −172 days
- Net adjustment
- 0 days
Classification
- CPC, 7
- G06K19/06056
- G06K19/06037
- G06K19/06093
- G06K7/1417
- G06K7/1404
- G06K7/1413
- G06K19/06018
- IPC, 3
- G06K19 00
- G06K19 06
- G06K7 14
- USPC, 1
- 382142000