AU2006246477A1 - Line Barcodes - Google Patents
Line Barcodes Download PDFInfo
- Publication number
- AU2006246477A1 AU2006246477A1 AU2006246477A AU2006246477A AU2006246477A1 AU 2006246477 A1 AU2006246477 A1 AU 2006246477A1 AU 2006246477 A AU2006246477 A AU 2006246477A AU 2006246477 A AU2006246477 A AU 2006246477A AU 2006246477 A1 AU2006246477 A1 AU 2006246477A1
- Authority
- AU
- Australia
- Prior art keywords
- line
- virtual
- contour
- marks
- mark
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
Landscapes
- Editing Of Facsimile Originals (AREA)
Description
S&FRef: 786757
AUSTRALIA
PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address of Applicant Actual Inventor(s): Address for Service: Invention Title: Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3-chome, Ohta-ku, Tokyo, 146, Japan Stephen Edward Ecob Michael Chun Tao Chan Andrew James Fields Spruson Ferguson St Martins Tower Level 31 Market Street Sydney NSW 2000 (CCN 3710000177) Line Barcodes The following statement is a full description of this invention, including the best method of performing it known to me/us:- 5845c(589320 1) -1-
\O
LINE BARCODES FIELD OF INVENTION 0 z The current invention relates to storing data in printed or printable documents.
More specifically, the invention relates to ways of adding indicia inconspicuously onto documents containing printed matter or matter intended to be printed.
BACKGROUND
Storing additional data onto printed documents has a range of useful applications, especially in business environments. One common application is to prevent the IO unauthorised copying of a printed document via detecting the presence of indicia on the Sprinted document.
Another common use is not so much the prevention of unauthorised copying but rather a way to trace back to the source in the case of leakage of confidential information, or to recover the identity of the copyright owner in the case of identifying copyright infingement. Typically, this is achieved through encoding a unique identifier in the indicia.
Much effort has been made in the past to satisfy one or more of these requirements.
One approach involves placing relatively large and highly noticeable indicia on a blank portion of the printed document. The main disadvantages to this technique are that the presence of the indicia is obvious and visually distracting. For the purpose of copy prevention, it can be readily defeated. Furthermore, a relatively large portion of the document must be set aside for the indicia. Another approach intersperses small marks such as dots with the printed material of the document. This approach interferes and distorts the printed material on the document. Yet another approach hides data in the yellow channel of the printed document such that the indicia are not noticeable by casual observation. However, it is typically not possible to preserve such indicia on copying of the printed document. Yet another approach applies spatial distortions to repeating line structures which are originally part of the material on the printed document and by doing so, encode additional data. This approach relies on the presence of repeating line structures in the printed material of the document and requires knowledge of the exact arrangement and attributes of these repeating line structures.
589016_1.DOC 786757_final -2-
\O
SUMMARY
It is an object of the present invention to substantially overcome or at least
O
z ameliorate one or more deficiencies of known arrangements. Particularly the present inventors note it is desirable to employ indicia that can store additional data onto a printable or printed document which appears to the human eye as thin line or curve structures.
In accordance with one aspect of the present invention there is disclosed a method of encoding data onto a printable page, the method comprising the steps of: INO calculating a curved virtual contour, the contour representing an area of the page in which the data is to be encoded; determining on the contour a number of unmodulated data positions according to a predetermined function; and placing a plurality of marks along the contour wherein each of the marks are displaced from a corresponding one of said unmodulated positions to encode said data on the printable page.
The method may also further comprise the step of printing the printable page including the marks upon a hard copy medium.
In accordance with another aspect of the present invention there is disclosed an optically readable bar code symbol comprising: a curved virtual contour divided into equal length segments by virtual points; a plurality of marks, each said mark being displaced relative to a corresponding one of said virtual points, where the displacement is one of a set of predetermined relative displacements, to thereby store information based one state associated with the set.
In accordance with one aspect of the present invention there is disclosed an optically readable bar code symbol comprising: a curved virtual contour divided into equal length segments by virtual points separated by a spacing distance; one mark positioned either side of each virtual point along the contour at a constant deviation distance from the virtual point, to thereby record one bit of information using two states associated with each virtual point.
Other aspects are disclosed.
589016_1 .DOC 786757_final -3-
\O
BRIEF DESCRIPTION OF THE DRAWINGS At least one embodiment of the present invention will now be described with 0 z reference to the drawings in which: Fig. 1 shows an example of a line barcode used in place of a table border; Fig. 2 shows a line barcode on a linear virtual contour; Fig. 2 shows a line barcode on an arbitrnearily curved virtual contour; Fig. 3 shows a line barcode on an arbitrarily curved virtual contour; Fig. 4 shows a line barcode on a closed circular virtual contour; Figs. 5A-5D shows the four possible arrangements of three consecutive marks and Sthe choice of mark used for the mark under consideration given the arrangement of adjacent neighbouring marks; Fig. 6 illustrates a line barcode with the extents of the marks adjusted; Fig. 7 is a flowchart of a method to encode a line barcode; Fig. 8 shows a line barcode which employs a solid contour; Fig. 9 shows line barcodes used to encode secondary information onto a one dimensional barcode; Fig. 10 shows an example of an orthogonally modulated line barcode; Fig. 11 shows an example of a two dimensionally modulated line barcode; Fig. 12 shows the line barcode in Fig. 2 with a thin solid contour; Fig. 13 shows the line barcode in Fig. 11 with a thin solid contour which lies between the modulated marks; Fig. 14 shows the line barcode in Fig. 11 with a thick solid contour which joins up with the modulated marks; Fig. 15 shows an example of a differentially modulated line barcode; Fig. 16 illustrates the method of finding chain elements; Fig. 17 illustrates a chain consisting of three chain elements, linking seven coordinates together; Figs. 18A-18D illustrate four possible positions of two adjacent marks and the distances between them; Fig. 19 is a diagram to aid in explaining the calculation of line offset; Fig. 20 is a flowchart summarising the decoding of a line barcode that has been encoded according to the preferred embodiment; and 589016_ .DOC 786757_final -4-
\O
Fig. 21 is a schematic block diagram representation of a computer system in which the described arrangements may be practiced.
0 z DETAILED DESCRIPTION INCLUDING BEST MODE Disclosed is an encoding system for indicia to be added to printable documents ¢€3 which improves on the shortcomings of existing techniques. The encoding system involves producing data encoded indicia by employing a series of small marks that lie on a given spatially traversing path in two-dimensional space, such as a line or a curve. This spatially traversing path is referred to herein as a "virtual contour" and is used as a conceptual entity O which does not inherently possess physical attributes such as colour or solidity. From a distance, the marks appears to the human eye as a thin solid contour. The indicia can be either added to a printable document such as in the form of horizontal lines commonly used to delimit document headers and footers, or as a replacement for any kind of existing line structures present in the printable document such as table borders or heading underlines.
From here onwards, the indicia shall be referred to as "line barcodes". Note that the term 'line' is not intended to be limited to linear virtual contours, as lines may also be curved.
Fig. 1 shows part of an example document 100 in which the top border of a table 120 is replaced or otherwise formed with a line barcode 110, as shown in detail in the magnified part 130. The barcode may also be considered a symbol for the communication or representation of data.
The methods of encoding and decoding line barcodes described herein may be implemented using a computer system 2100, such as that shown in Fig. 21 wherein the processes of Figs. 2 to 20 may be implemented as software, such as one or more application programs executable within the computer system 2100. In particular, the steps of method of line barcoding and decoding are effected by instructions in the software that are carried out within the computer system 2100. The instructions may be formed as one or more code modules, each for performing one or more particular tasks. The software may also be divided into two separate parts, in which a first part and the corresponding code modules performs the barcoding and decoding methods and a second part and the corresponding code modules manage a user interface between the first part and the user.
The software may be stored in a computer readable medium, including the storage devices described below, for example. The software is loaded into the computer system 2100 from the computer readable medium, and then executed by the computer system 2100. A 589016_1.DOC 786757_final
\O
computer readable medium having such software or computer program recorded on it is a computer program product. The use of the computer program product in the computer z system 2100 preferably effects an advantageous apparatus for forming documents having line barcodes and for decoding the same.
As seen in Fig. 21, the computer system2100 is formed by a computer module 2101, input devices such as a keyboard 2102 and a mouse pointer device 2103, and output devices including a printer 2115, a display device 2114 and loudspeakers 2117. An external Modulator-Demodulator (Modem) transceiver device 2116 may be used by the IND computer module 2101 for communicating to and from a communications network 2120 via a connection 2121. The network 2120 may be a wide-area network (WAN), such as the Internet or a private WAN. Where the connection 2121 is a telephone line, the modem 2116 may be a traditional "dial-up" modem. Alternatively, where the connection 2121 is a high capacity (eg: cable) connection, the modem 2116 may be a broadband modem. A wireless modem may also be used for wireless connection to the network 2120.
The computer module 2101 typically includes at least one processor unit 2105, and a memory unit 2106 for example formed from semiconductor random access memory (RAM) and read only memory (ROM). The module 2101 also includes an number of input/output interfaces including an audio-video interface 2107 that couples to the video display 2114 and loudspeakers 2117, an I/O interface 2113 for the keyboard 2102 and mouse 2103 and optionally a joystick (not illustrated), and an interface 2108 for the external modem 2116 and printer 2115. In some implementations, the modem 2116 may be incorporated within the computer module 2101, for example within the interface 2108.
The computer module 2101 also has a local network interface 2111 which, via a connection 2123, permits coupling of the computer system 2100 to a local computer network 2122, known as a Local Area Network (LAN). As also illustrated, the local network 2122 may also couple to the wide network 2120 via a connection 2124, which would typically include a so-called "firewall" device or similar functionality. The interface 2111 may be formed by an EthernetTM circuit card, a wireless Bluetooth T M or an IEEE 802.11 wireless arrangement.
The interfaces 2108 and 2113 may afford both serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards 589016_1.DOC 786757_final -6-
INO
0 and having corresponding USB connectors (not illustrated). Storage devices 2109 are provided and typically include a hard disk drive (HDD) 2110. Other devices such as a
O
z floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 2112 is typically provided to act as a non-volatile source of data. Portable ¢€3 memory devices, such optical disks (eg: CD-ROM, DVD), USB-RAM, and floppy disks for example may then be used as appropriate sources of data to the system 2100.
The components 2105, to 2113 of the computer module 2101 typically communicate via an interconnected bus 2104 and in a manner which results in a conventional mode of operation of the computer system 2100 known to those in the O 10 relevant art. Examples of computers on which the described arrangements can be practised include IBM-PC's and compatibles, Sun Sparcstations, Apple MacTM or alike computer systems evolved therefrom.
Typically, the application programs discussed above are resident on the hard disk drive 2110 and read and controlled in execution by the processor 2105. Intermediate storage of such programs and any data fetched from the networks 2120 and 2122 may be accomplished using the semiconductor memory 2106, possibly in concert with the hard disk drive 2110. In some instances, the application programs may be supplied to the user encoded on one or more CD-ROM and read via the corresponding drive 2112, or alternatively may be read by the user from the networks 2120 or 2122. Still further, the software can also be loaded into the computer system 2100 from other computer readable media. Computer readable media refers to any storage medium that participates in providing instructions and/or data to the computer system 2100 for execution and/or processing. Examples of such media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, a magneto-optical disk, or a computer readable card such as a PCMCIA card and the like, whether or not such devices are internal or external of the computer module 2101. Examples of computer readable transmission media that may also participate in the provision of instructions and/or data include radio or infra-red transmission channels as well as a network connection to another computer or networked device, and the Internet or Intranets including e-mail transmissions and information recorded on Websites and the like.
The second part of the application programs and the corresponding code modules mentioned above may be executed to implement one or more graphical user interfaces 589016_1.DOC 786757_final -7-
\O
(GUIs) to be rendered or otherwise represented upon the display 2114. Through manipulation of the keyboard 2102 and the mouse 2103, a user of the computer 0 z system 2100 and the application may manipulate the interface to provide controlling commands and/or input to the applications associated with the GUI(s).
Encoding A preferred encoding system for a line barcode is described as follows. Firstly, a virtual contour in which the line barcode is intended to traverse is chosen. An example of a zline barcode 200 which uses a linear virtual contour 210 is shown in Fig. 2. An example of INO a line barcode 300 which uses an arbitrarily curved contour 310 is shown in Fig. 3. An example of a line barcode 400 which uses a closed circular contour 410 is shown in Fig. 4.
Regardless of the type, the virtual contour is then divided into segments of known lengths by virtual reference points. The position of the reference points may be determined by any arbitrary parameterisation along the virtual contour. For example, the position of reference points may be defined by a sinusoid. In one preferred implementation, these reference points are separated by a constant segment length referred to as the line spacing L. The reference points represent unmodulated positions for the encoding of data. The unmodulated positions may therefore represent predetermined function, such as the sinusoid mentioned above. In Fig. 2, Fig. 3 and Fig. 4, the line spacing is indicated by 240, 340 and 440, respectively. For each reference point, a mark is placed such that the centroid of the mark is located either before or after the reference point along the virtual contour.
Placement of a mark is typically by printing the mark to a medium such as paper. For example, in Fig. 2, Fig. 3 and Fig. 4, the centroid of the mark 220, 320 and 420 is placed a relative distance from the associated reference point 230, 330 and 430, respectively, along the virtual contour. The centroid of the mark is placed a fixed distance away from the reference point along the virtual contour, where this distance is referred to as the line deviation D. In Fig. 2, Fig. 3 and Fig. 4, the line deviation D is indicated by 250, 350 and 450 respectively. Based on which side the mark is placed provides two distinct states, thus permitting encoding a single bit of information at each reference point. For example, in Fig. 2, the mark 220 is located after its associated reference point 230, where traversal of the virtual contour in this example occurs in a left to right fashion, which may represent a binary digit 1, whereas the mark 260 is located before its associated reference point 270, which may represent a binary digit 0. The relationship between the line spacing and line 589016_1 .DOC 786757_final
\O
deviation must necessarily satisfy the following condition in order to avoid ambiguity: L 2D, where L is the line spacing and D is the line deviation. A value of L 4D would z represent a practical safety margin to prevent joining of marks. Furthermore, so long as the Cabove condition is satisfied, multiple line deviation values may be employed to increase the data density per mark.
In order to increase the robustness of a message data sequence stored in a line barcode, the message data sequence preferably redundantly repeats along the line barcode.
Since line barcodes traverse a one dimensional virtual contour redundancy may be IDprovided through concatenating copies of the message data sequence along the virtual contour. However, when this occurs, it becomes difficult to determine the start position of the message data sequence and/or the length of the message data sequence. To resolve these ambiguities, a preamble to signify the beginning of the message data sequence is provided. This preamble is a known pseudorandom binary sequence q[n] of, say, Q bits long which is prepended to the message data sequence m[n] of, say, M bits long to form an overall message sequence sin] of S Q M bits long. This overall message sequence s[n] can then be repeatedly concatenated along the virtual contour providing the potential of identifying the start positions of message data sequences To further increase the robustness of the message data sequence, some form of error correction coding may be applied to the message data sequence beforehand. Examples of the error correction encoding include Reed Solomon or LDPC codes. Furthermore, it is desirable to perform some form of randomisation operation, an example of which is an XOR operation, with a known pseudorandom sequence beforehand, to aid in the decoding process. This will become apparent in the decoding description described below.
The choice of marks used in a line barcode significantly affects the appearance of the line barcode. For example, in Fig. 2, Fig. 3 and Fig. 4, identical round dots are used and the line barcode appears much like a dotted contour, on close inspection. To reduce this effect, the extent of marks along the virtual contour may be increased to maximise the appearance of a line barcode to resemble a solid contour. On the other hand, the well known phenomenon of dot gain in printing and scanning operations is another consideration when choosing the marks to be used in a line barcode. The extent of each mark along the virtual contour must not be excessive otherwise adjacent marks which are particularly close together tend to join, rendering it impossible to distinguish the presence 589016_1.DOC 786757_final
\O
of two distinct marks. To optimally satisfy these two opposing demands, the extent of a mark along the virtual contour can be variably adjusted depending on a distance between
O
z the mark and the closest adjacent neighbouring marks.
To illustrate with a simple analysis, arrangements 510, 520, 530 and 540 in Figs. 5A-5D respectively show all the possible arrangements for three consecutive marks along the virtual contour. In Figs. 5A-5D, the mark under consideration, being the mark 550, depicted as an open circle, is fixed in the same modulated position for the purpose of this analysis. The mark 550 has two adjacent neighbouring marks 551 and 552.
IDThe line spacing and line deviation are indicated as 554 and 553, respectively. The other O 10 modulated position for the mark under consideration 550 simply produces mirrored versions of these four arrangements. The centroid positions of the adjacent neighbouring marks 551 and 552 are indicated by crosses. For each of the arrangements 510, 520, 530 and 540, the distances between the mark under consideration 550 and its neighbouring mark positions 551 and 552, varies. Final arrangements 511, 521, 531 and 541 show the same respective arrangements 510, 520, 530 and 540, but with suitably chosen marks 560 and 561 for the mark under consideration 550.
Arrangements 510 and 520 both show the mark under consideration 550 at the smallest possible distance away from the closest neighbouring mark position 551. As shown in final arrangements 511 and 521, to prevent the joining of these marks via dot gain effects that can occur during photocopying, the extent along the virtual contour of the mark under consideration 560 is set to a sufficiently small value W o labelled as measurement 570, which must at least satisfy Wo0 IL. By symmetry, the neighbouring mark 562 must be treated identically as for mark 560. This leaves a minimal gap between the two marks 560 and 562 of G, =L-W 0 -2D.
This gap must be sufficiently large to prevent dot gain effects joining the two marks together.
In the two arrangements 530 and 540, the distances to the respective closest neighbouring mark positions from the mark under consideration 550 are both L. It is desirable to maximise the extent of mark 550 without moving its centroid and maintain the minimal gap G between marks. Since this analysis only considers the two closest 589016_1.DOC 786757_final
\O
neighbouring marks, account should be made for the possibility of either or both neighbouring marks to be similarly extended. Therefore the extent of the mark under
O
z consideration 550 in each direction along the virtual contour is chosen to be: S(L Gn)= (L (L Wo- 2D)) W o
D.
Thus the maximally extended mark 561 for both arrangements 530 and 540 has extent set to twice this value giving W, Wo +2D as labelled in measurement 571. This is equivalent to taking mark 560 and extending it by a line deviation distance D at either end.
N 10 To illustrate, consider the line barcode 600 in Fig. 6, with linear virtual contour 610, line spacing 640 and line deviation 650. The modulation of the marks in this line barcode is identical to that of Fig. 2. However, by using the above mark adjustment method, the extent of each mark along the virtual contour 610 is dependent on the distance to the closest adjacent neighbouring mark along the virtual contour. By performing analyses of arrangements involving five rather than three of consecutive marks, and therefore knowing the mark extents of the two neighbouring marks, it is possible to improve the solid contour appearance of the line barcode by exploiting larger mark extents where possible.
The flowchart in Fig. 7 details a method 700 involved in encoding a line barcode according to the preferred implementation as described above. The method 700 starts at step 710 and moves onto a process 711 where error correction codes and/or randomisation operations are performed on the input data that is to be encoded into the line barcode. The output of this process 711 is the message data sequence m[n] which is stored in a circular data buffer, where this circular data buffer is indexed a bit at a time by a data pointer. In process 712, however, a pseudorandom binary sequence q[n] is prepended to the circular data buffer to form the overall message sequence s[n] of S bits long. In process 720, the data pointer is initialised to point to the first bit in the circular data buffer, which is also the first bit of the overall message sequence sin]. In process 730, a cursor, which stores a coordinate location in relation to the document, is set to the desired location where the start of the line barcode is intended to be placed. Then, in process 740, the value of the bit referenced by the data pointer is read. In process 750, the extent of the mark to be placed 589016_1.DOC 786757_final -11-
NO
onto the line barcode is decided upon. This step follows the analysis described above in choosing the extent of the mark to use. Thus, it is necessary to know the value of bits
O
z preceding and after the data pointer, as they correspond to the marks preceding and after the current mark. At decision step 751, depending on what the current bit value is at the C€3 data pointer, the placement of the mark is performed. A current bit value of 0 will execute process 752 and place the mark at one line deviation distance before the cursor position along the virtual contour. A current bit value of 1 will execute process 753 and place the mark at one line deviation distance after the cursor position along the virtual contour.
IO Decision step 760 checks whether the end of the virtual contour has been reached. If so, the encoding process concludes at 780. Otherwise, more marks are to be encoded onto the document. Process 770 is executed to move the cursor position forward along the virtual contour by line spacing distance. Process 771 moves the data pointer to point to the next bit value in the circular data buffer. Execution then returns to process 740.
The above description details different aspects pertaining to a preferred implementation. However, other variations on different aspects of line barcodes are possible. For example, it is possible to use a solid contour rather than a virtual contour. In the line barcode 800 of Fig. 8, 850 indicates the line spacing and 840 indicates the line deviation. The solid contour 810 is assigned a given background colour. The marks, one of which is indicated by 820, is assigned a foreground colour. The reference point that mark 820 is associated with is indicated by 830. Typically, the foreground colour and background colours are chosen such that the line barcode appears like a solid contour yet the marks are sufficiently distinguishable from the solid contour. Although this line barcode better resembles a solid contour than in the preferred implementation, it is more challenging to decode due to dot gain effects. However, this method of encoding line barcodes is particularly suited for encoding onto existing thick line structures, such as on the bars of one dimensional barcodes based on UPC or EAN standards. In the one dimensional barcode 900 of Fig. 9, the bars 910 are individually solid contours of line barcodes. Modulation is identical to line barcodes described earlier, for example, mark 920 is displaced a line deviation amount 950 from its associated reference point 930. The line spacing is shown as 940. Alternative modulation schemes may be employed. The solid appearance of the bars allows standard one dimensional barcode readers to decode it whilst allowing secondary data to be encoded in the line barcodes residing in the bars.
589016_1.DOC 786757_final -12-
NO
Another modulation method is possible by modulating marks in the direction orthogonal to the virtual contour. A line barcode using this modulation method on a linear 0 z virtual contour is illustrated in diagram 1000 of Fig. 10. The virtual contour 1010 is divided into segments of known lengths by reference points. The position of the reference t'q points may be determined by any arbitrary parameterisation along the virtual contour.
Preferably, these reference points are separated by a constant line spacing L as shown in 1040. At each reference point, a virtual axis passes through it which is orthogonal to the tangent to the virtual contour at that reference point. To illustrate, reference point 1050 ISO produces orthogonal axis 1060. At each reference point, a mark is placed such that the centroid of the mark is located on the virtual axis either above or below the virtual contour.
For example, the centroid of the mark 1030 is placed on the virtual axis 1060 below the virtual contour 1010. The centroid of the mark is always placed a fixed orthogonal deviation distance E away from the reference point along the virtual axis, as labelled as 1020. Based on which side of the virtual contour the mark is placed provides two distinct states, thus encoding a single bit of information at each reference point. Multiple line deviation values may be employed to increase the data density per mark but if the value of E becomes too large, the line barcode will appear jagged. Appropriate mark adjustment methods may be employed to improve the appearance of the line barcode to resemble a solid contour.
The combination of both position modulation along the virtual contour and along the orthogonal virtual axes is a natural extension of the above described modulation methods. This two dimensionally position modulated line barcode effectively allows the storage of two independent bits of information per reference point. Diagram 1100 in Fig. 11 shows an example of a two dimensionally modulated line barcode that uses a linear virtual contour 1110. The virtual contour 1110 is divided into segments of known lengths by reference points. The position of the reference points may be determined by any arbitrary parameterisation along the virtual contour. Preferably, these reference points are separated by a constant line spacing L as shown in 1140. The line deviation D is shown in 1170 and the orthogonal deviation E is shown in 1120. The centroid of a mark 1130 is position modulated from its reference point 1150. Along the direction of the virtual contour, the centroid of the mark 1130 is placed a line deviation distance D after the reference point 1150. In the orthogonal direction along the virtual axis 1160, the centroid 589016_1.DOC 786757_final -13-
\O
of the mark is placed a distance E below the virtual contour. Thus, the two dimensionally position modulated line barcode independently stores 1 bit of information in the direction 0 Z of the virtual contour and 1 bit of information in the direction orthogonal to the virtual contour. Multiple line deviation values may be employed to increase the data density per t'q mark but if the value of either D or E becomes too large, the line barcode will appear jagged or discontinuous. Appropriate mark adjustment methods may be employed to improve the appearance of the line barcode to resemble a solid contour.
Further variations on the solid contour aspect are possible. The solid contour 810 INO in Fig. 8 fully encompasses the marks entirely. This requirement can be relaxed. Line barcode 1200 of Fig. 12 is the line barcode 200 in Fig. 2 which employs a thin solid contour 1210. The thickness of the solid contour 1210 is less than that of the marks 1220.
The line barcode 1200 has line spacing 1240 and line deviation 1250. Preferably, the marks 1220 take on the same colour as the solid contour 1210 since this would enhance the solid appearance of the contour yet the distinctness of the marks from the solid contour makes then easily distinguishable. Fig. 13 shows a line barcode 1300 corresponding to the barcode 1100 of Fig. 11, and which also employs a thin solid contour 1310. Similarly, the line barcode 1300 has line spacing 1340, line deviation 1370 and orthogonal deviation 1320. In this case, the thin solid contour 1310 lies between the modulated marks 1330. The thickness of the solid contour can be increased. Diagram 1400 in Fig. 14 is the line barcode as shown in diagram 1300 of Fig. 13 with the thickness 1450 of the solid contour 1410 expanded to twice the orthogonal deviation 1420. This maximally conveys the line barcode as a solid contour whilst still able to discern the marks 1430 from the solid contour 1410.
Up until now, the modulation method described has been position modulating marks relative to associated reference points. Instead it is possible to use differential modulation to encode information. A set of permissible distances is employed which governs the allowed separation distances one mark is placed with respect to the previous mark along the virtual contour. To illustrate, consider diagram 1500 in Fig. 15. The mark 1550 is placed a distance 1530 away from the previous mark 1560 along the virtual contour 1520. In this example, two permissible distances 1530 and 1540 are used. Thus, it is possible to encode one bit of information into the distances between adjacent marks. For example, a binary 1 could be encoded whenever a distance 1530 is used and a binary 0 589016_1.DOC 786757_final -14-
NO
could be encoded whenever a distance 1540 is used. Although this example uses two permissible distances, it is possible to encode more data per mark by using a larger set of 0 z permissible distances.
Decoding Various aspects of encoding line barcodes have been explored above. The decoding method for the preferred implementation is described here. Since the marks are typically formed to a medium such as paper, the marks are therefore able to be optically read, using a scanner for example. The barcodes are therefore able to be scanned, this IO including the symbols of individual marks representing the modulation of the barcode. The methods described below take into account the imperfections that occur when printing documents containing line barcodes, and subsequent scanning of such documents. For example, the methods described are robust against significant levels of transformations such as rotation, scaling and translation as well as distortions including warping and dot gain effects. The scanning of the document provides a digital image representation of the document.
The initial step is to discover the centroids of marks on the digital image representation of the document containing line barcodes. The digital image representation is processed in scan line order by well known techniques to extract the coordinates of the centroid of marks located on the document. The coordinates of the centroid of detected marks are stored in a dot buffer. The contents of this dot buffer form the input to the steps which follow.
Each coordinate in the dot buffer is potentially the centroid of a mark in a line barcode. To determine if this is the case and if so, to determine where it fits in on the line barcode, requires knowledge of the relationships between coordinates. In order to discover these relationships, the approach taken is to find and analyse triad groupings of marks.
Firstly, each coordinate in the dot buffer is considered. In diagram 1600 of Fig. 16 the coordinate 1620 is the coordinate under consideration. Coordinates 1630 and 1640, which are the two closest coordinates to the coordinate 1620, are found to form a triad. However, it is so far unknown whether the three coordinates 1620, 1630 and 1640 actually belong to a line barcode. To go towards verifying this, a localised approximation as to the direction the virtual contour is traversing is required. This direction is referred to as a direction 589016_1.DOC 786757_final
O
0 convention. Having gained significant confidence that the triad grouping is valid, the relationships are recorded in a logical unit, which is referred to as a chain element.
O
0 At least to a 180 degree ambiguity, it is possible to establish a direction convention within a localised region about the coordinate under consideration. This will enable identification of a triad as a chain element and determine which one of the two closest coordinates comes before the coordinate under consideration and which one comes after.
Firstly, to determine the direction convention, the coordinates that lie within a circle, Scentred about coordinate 1620 of radius R indicated by 1610, are considered. The mean IND squared error linear regression is calculated for these coordinates as a first order
O
O 10 approximation to the behaviour of the virtual contour. Higher order approximations may be used to increase the accuracy. A direction with a 180 degree ambiguity results from this calculation and one of the two directions is consistently chosen to be the direction convention.
In Fig. 16, the direction convention is chosen to point according to the vector 1650 based on the linear regression calculation. Now, it is possible to apply checks to the vectors 1670 and 1680 with respect to the direction convention 1650 to upgrade the triad to a chain element. An example check would be that the direction of 1670 and 1680 is within 450 from the direction convention. Generally, the virtual contour is not permitted to follow sharp bends such as right angled contours. Such cases are regarded as the junction of two separate line barcodes, however it is possible to split a message data sequence across two line barcodes. Another example check would be to ensure that the angle 1660 these vectors subtend are larger than a minimum angle. Having been verified, the next step is to determine the relative ordering of the coordinates. With respect to the coordinate under consideration, it is possible to determine the preceding coordinate and the next coordinate based on the relationship between vectors 1670 and 1680 and the direction convention 1650. In Fig. 16, the coordinate 1630 is regarded as the preceding coordinate to the coordinate under consideration 1620, and the coordinate 1640 is regarded as the next coordinate. The relationships between these three coordinates are established as a chain element. The value of radius R for circle 1610 is chosen so to optimally determine a suitable direction convention throughout the virtual contour. One approach is to set the value of R to the smallest radius of curvature permissible for a line barcode.
589016_1.DOC 786757_final -16-
NO
Having found a set of chain element relationships, it is possible to use these to discover the presence of line barcodes. The idea is to join together related chain elements
O
Z to form chains of coordinates which make up whole line barcodes or portions of line barcodes. This is performed by recursively joining together two chain elements at a time, where the next coordinate of the first chain element is the same coordinate as the previous coordinate of a second chain element. For example, in diagram 1700 in Fig. 17, three chain elements 1750, 1760 and 1770 have been identified. Chain element 1750 joins together with chain element 1760 because the next coordinate 1730 of chain element 1750 is in fact the previous coordinate of chain element 1760. Similarly, the chain element 1760 joins together with chain element 1770 because the next coordinate 1740 of chain element 1760 is in fact the previous coordinate of chain element 1770. In this way, it is possible to form a sequence of joining chain elements to form what is referred to as a chain.
A chain provides a set of relationships between coordinates. It is possible to traverse a chain to obtain a rough approximation to the virtual contour by calculating the minimum distances between coordinates. Higher order approximations may be applied to obtain more accurate approximations to the virtual contour. Having obtained an approximation to the virtual contour, the two parameters that need to be recovered from the chain are the line spacing value and the line offset value, which is the offset amount of the reference points with respect to the position of the marks. If it is assumed that the binary sequence encoded onto the line barcode is uniformly randomised, then it is possible to recover the line spacing using statistical techniques. In diagram 1800 of Fig. 18, the four possible arrangements of two adjacent marks are shown. For a uniformly randomised message data sequence, each of the four arrangements would be equally probable. This can be achieved by performing a randomisation operation such as an XOR operation as mentioned previously. Notice, however, that two of the four arrangements have distance 1830 separating the two marks and in fact, this distance is exactly the line spacing L, as shown in 1840. This means that if a histogram of distances between adjacent marks was recorded, in the ideal case, half of the samples will reside in the bin containing the line spacing L. In this way, it is possible to recover the value of line spacing L.
Nevertheless, knowing the line spacing is insufficient in determining where the reference points are located. This requires calculating the line offset and is optimally determined using a Chi-square minimisation calculation. Diagram 1900 of Fig. 19 shows a segment of 589016_1.DOC 786757_final -17-
NO
a chain. For simplicity of explanation, it may be assumed that the chain has a linear virtual contour 1910. An x-axis is established parallel to the virtual contour 1910 and its origin is z set at the coordinate 1980. Since the line spacing L shown as 1920 has already been calculated, it is possible to superimpose a virtual grid of reference points 1990 onto the c' chain. Then the line offset 1970 is the offset of this virtual grid of reference points from the origin. The Chi-square error minimisation function can be formulated as:
N
\O J= Ldi' i=l for a chain with N dots with identical position variances, where for the i dot Slabelled 1930, di Xi gi is the deviation measurement 1940 from its associated reference point 1931, the quantity desired to be minimised. Herex, is the actual distance measurement 1960 of the i h dot from the origin and gi iL G o is the distance measurement 1950 of the i" reference point 1931 from the origin. The line offset 1970 is denoted as G
O
which is the quantity desired to be found. To perform the minimisation, a solution is obtained to
J
=0 aGo which simplifies to
IN
1 LN-1 Go x, -L(N-1) N j=1 Due to potentially harsh distortion effects of printing and scanning operations, both the line spacing and line offset calculations may be re-performed after traversing a given number of reference points to ensure that the location of the reference points are always synchronised with the marks. The above calculation applies to any virtual contour so long as all the distances are measured along the virtual contour. Since it may be difficult to find the virtual contour, an approximation may be appropriate such as the minimum distance approximation discussed above. Re-performing the line spacing and line offset calculations will aid in reducing the error introduced by this approximation.
589016_1.DOC 786757_final -18-
\O
Having found the location of the reference points, it is possible to demodulate the marks. A sequence of bits p[n] obtained from demodulating the marks in the chain may 0 z be obtained. At this point, where the start of the message sequence(s) is/are located within Sp[n] is unknown. The length of the message sequence may or may not be known depending on whether known length message sequences are enforced. However, during encoding, a pseudorandom binary sequence preamble q[n] was prepended onto the "message sequence. The location of the preamble can be found by performing a correlation between the demodulated bits p[n] and the pseudorandom binary sequence q[n] using the following function n+Q-l corr[n] Zp[m]q[m -n] m=n The pseudorandom binary sequence q[n] is considered to exist at values of n where corr[n] is greater than an experimentally determined threshold value. Therefore, the message sequence is known to finish before and also begin after each location that the pseudorandom sequence q[n] was found. Multiple copies of the message sequence are typically encoded onto a document and therefore, multiple instances of the pseudorandom binary message q[n] are likely to be detected. Either the length M in number of bits of the message sequence m[n] is known a priori or it can be found by noting the number of marks between two copies of q[n] found within a chain.
In the process of demodulating the marks, it is possible that missing marks may cause misalignment of the binary sequence. For example, if a particular bit is skipped then the bits that follow are placed in the wrong position, offset by one. In order to detect these occurrences, the deviation distance of a mark is examined against the calculated line spacing. If the deviation value is in excess relative to the line spacing value, then a mark is regarded to have been missed. In this way, skipped marks are noted and the misalignment of the binary sequence is prevented. The case of spurious marks causing misalignment problems is rare and is usually not an issue because dot gain effects will likely cause marks to join together and result in a misread bit value rather than causing misalignment issues.
To aggregate information from redundant copies of the message sequence, a measure of confidence for each bit is obtained by recording a frequency tally for each of the M bits in the message sequence. Whenever a demodulated value of 1 is obtained for a 589016_1.DOC 786757_final -19-
\O
particular bit, the frequency tally for that bit is incremented by 1. Whenever a demodulated value of 0 is obtained for that particular bit, then the frequency tally for that bit is 0 z decremented. The frequency tally for a given bit becomes a confidence measure which provides information about how likely that bit was a 1 or 0. A large positive value t'q provides a high confidence that the demodulated bit was a 1 whereas a large negative value provides a high confidence that the demodulated bit was a 0. When the value is near or equal to zero, then it is uncertain what that bit value was. If used, error correction codes can take these confidences as input to produce an error corrected output of the encoded INO data. Alternatively, a simple thresholding operation on these frequency tally values produces a demodulated message sequence rh[n]. If a randomisation operation was performed during encoding, a further operation which reverses the effects of that operation is required to recover the original encoded data.
The decoding process is summarised in the flowchart 2000 of Fig. 20. Starting at 2010 and moving onto process 2020, the coordinates of the centroids of marks detected in a digital image representation of the document are stored in a dot buffer. In process 2030, each coordinate in the dot buffer are examined and chain element relationships are found and recorded. Chain elements represent independent relationships between three coordinates. Process 2040 takes these chain elements and joins them up into a recursively linked structure, storing long chains of consecutive coordinates, which belong to parts of or entire line barcodes. The demodulation process 2050 takes each chain found in the previous process and by computing the line spacing and line offset, produces a demodulated binary sequence corresponding to the chain. In process 2060, a correlation process is performed with the demodulated binary sequence and the pseudorandom binary sequence to identify the start locations of the message sequence. An aggregated message sequence is constructed through exploiting the redundant copies of the message sequence in process 2070. Finally in process 2080, the input data can be recovered by performing error correction and reversing the randomisation process. On success, 2090 produces decoded output which is identical to the input data provided in the encoding process as shown in Fig. 7.
Industrial Applicability The arrangements described are applicable to the computer and data processing industries and particularly for secure printing.
589016_1.DOC 786757_final
\O
The foregoing describes only some embodiments of the present invention, and modifications and/or changes can be made thereto without departing from the scope and 0 z spirit of the invention, the embodiments being illustrative and not restrictive.
(Australia Only) In the context of this specification, the word "comprising" means "including principally but not necessarily solely" or "having" or "including", and not "consisting only of'. Variations of the word "comprising", such as "comprise" and "comprises" have correspondingly varied meanings.
589016_1.DOC 786757_final
Claims (5)
- 2. A method according to claim 1 further comprising the step of printing the printable page including the marks upon a hard copy medium.
- 3. An optically readable bar code symbol comprising: a curved virtual contour divided into equal length segments by virtual points; a plurality of marks, each said mark being displaced relative to a corresponding one of said virtual points, where the displacement is one of a set of predetermined relative displacements, to thereby store information based one state associated with the set:
- 4. A code symbol according to claim 3 wherein the set of predetermined relative displacement comprises at least two displacements arranged upon said virtual contour.
- 5. An optically readable bar code symbol comprising: a curved virtual contour divided into equal length segments by virtual points separated by a spacing distance; one mark positioned either side of each virtual point along the contour at a constant deviation distance from the virtual point, to thereby record one bit of information using two states associated with each virtual point. 589016_1.DOC 786757_final
- 22- O O 6. A optically readable bar code symbol substantially as described herein with reference to any one of Figs. 3, 4, 16, and 17 of the drawings. O 7. A document comprising at least one optically readable bar code symbol according to any one of claims 3 to 6. 8. A method of encoding a curved linear barcode substantially as described herein with reference to Fig. 7 of the drawings. (N S 10 9. A method of decoding a curved linear barcode substantially as described herein with reference to Fig. 20 of the drawings. Dated this 30th day of November 2006 CANON KABUSHIKI KAISHA Patent Attorneys for the Applicant Spruson&Ferguson 589016_1.DOC 786757_final
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2006246477A AU2006246477A1 (en) | 2006-11-30 | 2006-11-30 | Line Barcodes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2006246477A AU2006246477A1 (en) | 2006-11-30 | 2006-11-30 | Line Barcodes |
Publications (1)
Publication Number | Publication Date |
---|---|
AU2006246477A1 true AU2006246477A1 (en) | 2008-06-19 |
Family
ID=39540204
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
AU2006246477A Abandoned AU2006246477A1 (en) | 2006-11-30 | 2006-11-30 | Line Barcodes |
Country Status (1)
Country | Link |
---|---|
AU (1) | AU2006246477A1 (en) |
-
2006
- 2006-11-30 AU AU2006246477A patent/AU2006246477A1/en not_active Abandoned
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6742708B2 (en) | Fiducial mark patterns for graphical bar codes | |
EP0469864B1 (en) | Method of encoding digital information | |
JP3592545B2 (en) | Image processing apparatus, image processing method, and information recording medium | |
US8594453B2 (en) | Method of robust alignment and payload recovery for data-bearing images | |
US8244067B2 (en) | Constellation detection | |
JP3964390B2 (en) | Graphical barcode generation and decoding | |
US20060255141A1 (en) | Machine readable data | |
US8275168B2 (en) | Orientation free watermarking message decoding from document scans | |
US20090159658A1 (en) | Barcode removal | |
Gou et al. | Data hiding in curves with application to fingerprinting maps | |
Tan et al. | Print-Scan Resilient Text Image Watermarking Based on Stroke Direction Modulation for Chinese Document Authentication. | |
US6655592B2 (en) | Graphically demodulating graphical bar codes without foreknowledge of the original unmodulated base image | |
CN103034830B (en) | Bar code decoding method and device | |
US8544741B2 (en) | Data block offset encoding method for coordinates | |
AU2006246477A1 (en) | Line Barcodes | |
JP2007060417A (en) | Pattern recognition method | |
JP2006261824A (en) | Falsification detecting system and method for detecting falsification | |
JP6164018B2 (en) | Information processing apparatus and information processing program | |
AU2005209709A1 (en) | Two dimensionally phase modulated information symbol | |
US20210377422A1 (en) | Visually significant marking schemes | |
JP4905767B2 (en) | Two-dimensional code detection system and two-dimensional code detection program | |
JP6420840B2 (en) | Simple encoding, authentication and copy detection system for printed documents | |
Suzaki et al. | A watermark embedding and extracting method for printed documents | |
Mehta et al. | Design and Development of QR Code Recognition from Digital Image | |
Safonov et al. | Embedding digital hidden data into hardcopy |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MK1 | Application lapsed section 142(2)(a) - no request for examination in relevant period |