AU2008261178A1 - Method of updating printed barcode content and detecting multiple barcode layers - Google Patents

Method of updating printed barcode content and detecting multiple barcode layers Download PDF

Info

Publication number
AU2008261178A1
AU2008261178A1 AU2008261178A AU2008261178A AU2008261178A1 AU 2008261178 A1 AU2008261178 A1 AU 2008261178A1 AU 2008261178 A AU2008261178 A AU 2008261178A AU 2008261178 A AU2008261178 A AU 2008261178A AU 2008261178 A1 AU2008261178 A1 AU 2008261178A1
Authority
AU
Australia
Prior art keywords
grid
dot
dots
parameter values
dot code
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
Application number
AU2008261178A
Inventor
Nicolas Rowland De Courcy Bingham
Andrew James Fields
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Canon Inc filed Critical Canon Inc
Priority to AU2008261178A priority Critical patent/AU2008261178A1/en
Publication of AU2008261178A1 publication Critical patent/AU2008261178A1/en
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/06009Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking
    • G06K19/06037Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code with optically detectable marking multi-dimensional coding

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Editing Of Facsimile Originals (AREA)

Description

S&F Ref: 888240 AUSTRALIA PATENTS ACT 1990 COMPLETE SPECIFICATION FOR A STANDARD PATENT Name and Address Canon Kabushiki Kaisha, of 30-2, Shimomaruko 3 of Applicant: chome, Ohta-ku, Tokyo, 146, Japan Actual Inventor(s): Nicolas Rowland de Courcy Bingham Andrew James Fields Address for Service: Spruson & Ferguson St Martins Tower Level 35 31 Market Street Sydney NSW 2000 (CCN 3710000177) Invention Title: Method of updating printed barcode content and detecting multiple barcode layers The following statement is a full description of this invention, including the best method of performing it known to me/us: 5845c(1 903718_1) -1 METHOD OF UPDATING PRINTED BARCODE CONTENT AND DETECTING MULTIPLE BARCODE LAYERS TECHNICAL FIELD OF INVENTION The present invention relates generally to dot codes and, in particular, to a 5 method of updating printed dot code content and detecting multiple dot code layers. BACKGROUND Digital information can be recorded on a physical or electronic document using a dot code which encodes a data message. It may be necessary to update digital auditing, workflow or other information associated with a document, for example when the io document is processed through a photocopier. One technique for updating digital information associated with a physical document is to store an unchanging key on the physical document which references an electronic database, which can be changed at will. This technique has the disadvantage that the associated digital information is not transferred with the physical document and is cannot be retrieved or updated without a connection to the electronic database. Another technique is to digitally remove the dot code after scanning and digitally insert a new dot code before printing. This technique has the disadvantages that it may be computationally expensive to remove or insert the dot code, inconsistent with retention of the original dot code for auditing purposes, and difficult to reuse the same physical 20 document. SUMMARY It is an object of the present invention to substantially overcome, or at least ameliorate, one or more disadvantages of existing arrangements. Disclosed are arrangements (referred to as Grid Based Encoding/Decoding or 25 GBED arrangements) which seek to address the above problems by arranging dot codes on a document in association with respective grids each grid being defined by a corresponding grid orientation (also referred to as grid angle) parameter, and a grid pitch parameter. Judicious use of these grid parameters enables multiple dot codes to be encoded onto, and decoded from, a single document. Although knowledge of the dot 30 codes already encoded onto a document enables most efficient encoding of further dot codes, additional dot codes can be encoded onto a document without knowledge of the already encoded dot codes on the document. The GBED arrangement enables updating of printed dot code content by digitally superimposing or physically overprinting additional dot code layers over dot code layers 35 that are already present. The term "dot code layer" is used to denote a particular dot code.
-2 Additional dot code layers can be added in this way with or without regard for existing dot code layers, though to guarantee subsequent decidability, any existing dot code layers should be identified and suitable parameters should be chosen for the additional dot code layer so as to avoid collisions in the parameter space. It is generally advantageous for all 5 dot code layers to occupy the whole page for reasons of security and robustness, and also to maintain uniform perceptual visibility over the whole page. In the preferred GBED arrangement, existing dot code layers are identified and further dot code layers are added using different grid angles (ie different grid orientations relative to a coordinate system associated with the page) from any existing dot code layers. Detection of multiple dot to code layers using other differentiating parameters such as the grid pitch, grid shape, grid aspect ratio, and periodic grid alterations is also feasible. According to a first aspect of the present invention, there is provided a method of encoding a second dot code into a document having encoded therein a first dot code comprising first dots modulated with respect to a first grid characterised by a set of grid is parameters having corresponding first grid parameter values, said method comprising: determining a second set of grid parameter values; and encoding into the document the second dot code comprising second dots modulated with respect to a second grid characterised by said second set of grid parameter values. 20 According to another aspect of the present invention, there is provided a method of decoding a plurality of dot codes encoded in a document, each dot code comprising dots modulated with respect to a corresponding grid characterised by a set of grid parameters having corresponding grid parameter values, the method comprising the steps of: 25 detecting locations of the dots in said plurality of dot codes; synthesising a frequency domain representation of the dots based on said detected locations; determining, from the frequency domain representation, grid parameter values for the grid associated with each of said multiple dot codes; and 30 decoding said multiple dot codes using the determined grid parameter values. According to another aspect of the present invention, there is provided an apparatus for implementing any one of the aforementioned methods. According to another aspect of the present invention, there is provided a computer program product including a computer readable medium having recorded 3s thereon a computer program for implementing any one of the aforementioned methods.
-3 Other aspects of the invention are also disclosed. BRIEF DESCRIPTION OF THE DRAWINGS At least one embodiment of the present invention will now be described with reference to the drawings in which: 5 Figs. IA and I B form a schematic block diagram of a general purpose computer system upon which the arrangements described can be practiced; Fig. 2 is depicts a single dot code layer; Fig. 3 depicts four superimposed dot code layers such as that shown in Fig. 2; Fig. 4 is directed to a spatial domain detection technique; 10 Figs. 5a and 5b are flow chart fragments of a process for performing the spatial domain detection technique of Fig. 4; Fig. 6 is directed to a frequency domain detection technique; Figs. 7a and 7B are flow chart fragments of a process for performing the frequency domain detection technique of Fig. 6; is Fig. 8 depicts the hybrid spatial-frequency detection technique; Figs. 9a and 9b are flow chart fragments of a process for performing the hybrid spatial-frequency detection technique of Fig. 8; Fig. 10 is a functional block and data flow diagram depicting operation of an example of the disclosed GBED arrangement; 20 Fig. 11 is a functional block and data flow diagram depicting operation of another example of the disclosed GBED arrangement; Fig. 12 shows a modulated grid of dots used for encoding data in our dot code; Fig. 13 shows how the modulated grid of dots is viewed conceptually for decoding purposes; 25 Fig. 14 shows how data is encoded into the modulation of a single dot; Fig. 15 is a detailed view of the encoding scheme used to encode data into the modulation of a single dot; Fig. 16 shows the decoding order of the data dots; Fig. 17 is a schematic flow diagram of the intermediate stages for dot code 30 decoding; DESCRIPTION INCLUDING BEST MODE Where reference is made in any one or more of the accompanying drawings to steps and/or features, which have the same reference numerals, those steps and/or features have for the purposes of this description the same function(s) or operation(s), unless the 35 contrary intention appears.
-4 It is to be noted that the discussions contained in the "Background" section and that above relating to prior art arrangements relate to discussions of arrangements which may form public knowledge through their use. Such discussions should not be interpreted as a representation by the present inventor(s) or the patent applicant that such documents 5 or devices in any way form part of the common general knowledge in the art. Fig. 10 is a functional block and data flow diagram depicting an example 1000 of the disclosed GBED arrangement. Given an input document 1006 with information already encoded in a first dot code layer, further information 1003 is to be added to the document 1006. The further information 1003 to be encoded is provided 1004 to a PC 101 io that runs a GBED software application 133 comprising a GBED encoding module 1001 and a GBED decoding module 1002. The input document 1006 is provided 1007 to a scanner 125. The scanner 125 captures an image of the information on the document 1007, including the actual information content of the document (referred to as document information) and the is information encoded in the first dot code layer. The scanner 125 provides 1009 this image information to the PC 101. The PC 101 processes the received image data representing the input document 1006 according to the GBED software application 133, to thereby add the further information 1003 in a second dot code layer. 20 In one arrangement the GBED software application has regard for the encoded first dot code layer, and thus detects the first dot code layer including the grid parameter values of the grid parameters characterising the grid in relation to which the first dot code layer has been encoded. The second dot code layer is then encoded in relation to a grid having at least one grid parameter having a different value from the grid parameter value 25 associated with the grid of the first dot code layer. In another arrangement the GBED software application has no regard for the encoded first dot code layer, and thus does not detect the first dot code layer including the grid parameter values of the grid parameters characterising the grid in relation to which the first dot code layer has been encoded. The second dot code layer is, in this case, 30 encoded in relation to a grid using grid parameters having a grid parameter values determined using a random or pseudo random process. This approach does not guarantee that the grid for the second dot code layer has different grid parameter values from those associated with the first dot code layer, however depending upon the details of the grid parameter value space and the pseudo random process used, the probability of a collision -5 between the grid parameter values of the second grid and those of the first grid can be made arbitrarily small. This produces augmented image information, which represents the document information and the information in the first dot code layer from the input document 1006, 5 as well as the further information 1003 in a second dot code layer. The PC 101 provides 1005 the augmented image information to a printer 115 which prints an output document 1006'. The output document 1006' contains (a) the document information and the information in the first dot code layer from the input document 1006, as well as (b) the information 1003 now encoded in a second dot code layer in the output document 1006'. 1o Fig. 11 is a functional block and data flow diagram depicting operation of another example 1100 of the disclosed GBED arrangement. A person 1101 takes an input document 1103 and places the input document 1103, as depicted by arrows 1102 and 1104, into the feeder (not shown) of a photocopier 1107. The person 1101 enters, as depicted by an arrow 1104, an ID number into a control keypad 1105 of the photocopier is 1107, and activates the copy function of the copier 1107. The photocopier 1107 incorporates, in addition to the normal copying function, the GBED application 1108 implemented in hardware, software or a combination of hardware and software. The photocopier thus copies the information in the input document 1103, referred to as the document content, into the output document 1112, and 20 also incorporates into the output document 1112 a dot code layer encoding desired information. This desired information is, in the described example, ID information for the person 1101 as well as the time and date that the copying operation took place. The photocopier 1107 thus outputs, as depicted by an arrow 1109, an output document 1112 which is a copy of the input document 1103 and includes the content of the input 25 document as well as the aforementioned information in a first dot code layer. The output document 1112 is given, as depicted by an arrow 1111, to a second person 1110. The person 1110 takes the document 1112 and places the document 1112, as depicted by an arrow 1113, into the feeder (not shown) of another photocopier 1116. The person 1110 enters, as depicted by an arrow 1115, an ID number into a control keypad 30 1114 of the photocopier 1116, and activates the copy function of the copier 1116. The photocopier 1116 incorporates, in addition to the normal copying function, the GBED application 1117 implemented in hardware, software or a combination of hardware and software. The photocopier 1116 thus copies the information in the document 1112, referred to as the document content, into an output document 1119, and 35 also incorporates into the output document 1119, a further dot code layer encoding desired -6 information. This desired information is, in the described example, ID information for the person 1110 as well as the time and date that the copying operation took place. The photocopier 1116 thus outputs, as depicted by an arrow 1118, the output document 1119 which is a copy of the input document 1112 and includes the content of the input 5 document 1112 as well as the aforementioned information in a first dot code layer and the subsequent dot code layer. The document 1119 thus includes (a) the document content of the input document 1103, (b) the first dot code layer encoding the ID of the person 1101 and the date and time that the person 1101 copied the document 1103, and (c) the second dot code io layer encoding the ID of the person 1110 and the date and time that the person 1110 copied the document 1112. Figs. IA and lB collectively form a schematic block diagram of a general purpose computer system 100, upon which the various GBED arrangements described can be practiced. is As seen in Fig. IA, the computer system 100 is formed by the computer module 101, input devices such as a keyboard 102, a mouse pointer device 103, the scanner 126, a camera 127, and a microphone 180, and output devices including the printer 115, a display device 114 and loudspeakers 117. An external Modulator Demodulator (Modem) transceiver device 116 may be used by the computer module 101 20 for communicating to and from a communications network 120 via a connection 121. The network 120 may be a wide-area network (WAN), such as the Internet or a private WAN. Where the connection 121 is a telephone line, the modem 116 may be a traditional "dial-up" modem. Alternatively, where the connection 121 is a high capacity (eg: cable) connection, the modem 116 may be a broadband modem. A wireless modem may also be 25 used for wireless connection to the network 120. The computer module 101 typically includes at least one processor unit 105, and a memory unit 106 for example formed from semiconductor random access memory (RAM) and semiconductor read only memory (ROM). The module 101 also includes an number of input/output (1/0) interfaces including an audio-video interface 107 that 30 couples to the video display 114, loudspeakers 117 and microphone 180, an I/O interface 113 for the keyboard 102, mouse 103, scanner 126, camera 127 and optionally a joystick (not illustrated), and an interface 108 for the external modem 116 and printer 115. In some implementations, the modem 116 may be incorporated within the computer module 101, for example within the interface 108. The computer module 101 also has a 3s local network interface 111 which, via a connection 123, permits coupling of the -7 computer system 100 to a local computer network 122, known as a Local Area Network (LAN). As also illustrated, the local network 122 may also couple to the wide network 120 via a connection 124, which would typically include a so-called "firewall" device or device of similar functionality. The interface 111 may be formed by an EthernetTm circuit 5 card, a BluetoothTM wireless arrangement or an IEEE 802.11 wireless arrangement. The interfaces 108 and 113 may afford either or both of serial and parallel connectivity, the former typically being implemented according to the Universal Serial Bus (USB) standards and having corresponding USB connectors (not illustrated). Storage devices 109 are provided and typically include a hard disk drive (HDD) 110. Other 10 storage devices such as a floppy disk drive and a magnetic tape drive (not illustrated) may also be used. An optical disk drive 112 is typically provided to act as a non-volatile source of data. Portable 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 100. 15 The components 105 to 113 of the computer module 101 typically communicate via an interconnected bus 104 and in a manner which results in a conventional mode of operation of the computer system 100 known to those in the 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 20 therefrom. The GBED method may be implemented using the computer system 100 wherein the processes of Figs. 5a, 5b, 7a, 7b, 9a, 9b to be described, and Fig. 10, may be implemented as one or more software application programs 133 executable within the computer system 100. In particular, the steps of the GBED method are effected by 25 instructions 131 in the software 133 that are carried out within the computer system 100. The software instructions 131 may be formed as one or more code modules such as 1001 and 1002, 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 GBED methods and a second part and the corresponding code modules 30 manage a user interface between the first part and the user. The software 133 is generally loaded into the computer system 100 from a computer readable medium, and is then typically stored in the HDD 110, as illustrated in Fig. 1A, or the memory 106, after which the software 133 can be executed by the computer system 100. In some instances, the application programs 133 may be supplied 35 to the user encoded on one or more CD-ROM 125 and read via the corresponding -8 drive 112 prior to storage in the memory 110 or 106. Alternatively the software 133 may be read by the computer system 100 from the networks 120 or 122 or loaded into the computer system 100 from other computer readable media. Computer readable storage media refers to any storage medium that participates in providing instructions and/or data 5 to the computer system 100 for execution and/or processing. Examples of such storage media include floppy disks, magnetic tape, CD-ROM, a hard disk drive, a ROM or integrated circuit, USB memory, 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 101. Examples of computer readable transmission media that may also 10 participate in the provision of software, application programs, instructions and/or data to the computer module 101 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 GBED application programs 133 and the corresponding is code modules mentioned above may be executed to implement one or more graphical user interfaces (GUIs) to be rendered or otherwise represented upon the display 114. Through manipulation of typically the keyboard 102 and the mouse 103, a user of the computer system 100 and the GBED application may manipulate the interface in a functionally adaptable manner to provide controlling commands and/or input to the applications 20 associated with the GUI(s). Other forms of functionally adaptable user interfaces may also be implemented, such as an audio interface utilizing speech prompts output via the loudspeakers 117 and user voice commands input via the microphone 180. Fig. 1B is a detailed schematic block diagram of the processor 105 and a "memory" 134. The memory 134 represents a logical aggregation of all the memory 25 devices (including the HDD 110 and semiconductor memory 106) that can be accessed by the computer module 101 in Fig. IA. When the computer module 101 is initially powered up, a power-on self-test (POST) program 150 executes. The POST program 150 is typically stored in a ROM 149 of the semiconductor memory 106. A program permanently stored in a hardware device 30 such as the ROM 149 is sometimes referred to as firmware. The POST program 150 examines hardware within the computer module 101 to ensure proper functioning, and typically checks the processor 105, the memory (109, 106), and a basic input-output systems software (BIOS) module 151, also typically stored in the ROM 149, for correct operation. Once the POST program 150 has run successfully, the BIOS 151 activates the 35 hard disk drive 110. Activation of the hard disk drive 110 causes a bootstrap loader -9 program 152 that is resident on the hard disk drive 110 to execute via the processor 105. This loads an operating system 153 into the RAM memory 106 upon which the operating system 153 commences operation. The operating system 153 is a system level application, executable by the processor 105, to fulfil various high level functions, 5 including processor management, memory management, device management, storage management, software application interface, and generic user interface. The operating system 153 manages the memory (109, 106) in order to ensure that each process or application running on the computer module 101 has sufficient memory in which to execute without colliding with memory allocated to another process. 10 Furthermore, the different types of memory available in the system 100 must be used properly so that each process can run effectively. Accordingly, the aggregated memory 134 is not intended to illustrate how particular segments of memory are allocated (unless otherwise stated), but rather to provide a general view of the memory accessible by the computer system 100 and how such is used. 15 The processor 105 includes a number of functional modules including a control unit 139, an arithmetic logic unit (ALU) 140, and a local or internal memory 148, sometimes called a cache memory. The cache memory 148 typically includes a number of storage registers 144 - 146 in a register section. One or more internal buses 141 functionally interconnect these functional modules. The processor 105 typically also has 20 one or more interfaces 142 for communicating with external devices via the system bus 104, using a connection 118. The GBED application program 133 includes a sequence of instructions 131 that may include conditional branch and loop instructions. The program 133 may also include data 132 which is used in execution of the program 133. The instructions 131 and the 25 data 132 are stored in memory locations 128-130 and 135-137 respectively. Depending upon the relative size of the instructions 131 and the memory locations 128-130, a particular instruction may be stored in a single memory location as depicted by the instruction shown in the memory location 130. Alternately, an instruction may be segmented into a number of parts each of which is stored in a separate memory location, 30 as depicted by the instruction segments shown in the memory locations 128-129. In general, the processor 105 is given a set of instructions which are executed therein. The processor 105 then waits for a subsequent input, to which it reacts to by executing another set of instructions. Each input may be provided from one or more of a number of sources, including data generated by one or more of the input devices 102, 103, 35 data received from an external source across one of the networks 120, 122, data retrieved -10 from one of the storage devices 106, 109 or data retrieved from a storage medium 125 inserted into the corresponding reader 112. The execution of a set of the instructions may in some cases result in output of data. Execution may also involve storing data or variables to the memory 134. 5 The disclosed GBED arrangements use input variables 154, that are stored in the memory 134 in corresponding memory locations 155-158. The GBED arrangements produce output variables 161, that are stored in the memory 134 in corresponding memory locations 162-165. Intermediate variables may be stored in memory locations 159, 160, 166 and 167. 10 The register section 144-146, the arithmetic logic unit (ALU) 140, and the control unit 139 of the processor 105 work together to perform sequences of micro operations needed to perform "fetch, decode, and execute" cycles for every instruction in the instruction set making up the program 133. Each fetch, decode, and execute cycle comprises: 15 (a) a fetch operation, which fetches or reads an instruction 131 from a memory location 128; (b) a decode operation in which the control unit 139 determines which instruction has been fetched; and (c) an execute operation in which the control unit 139 and/or the ALU 140 20 execute the instruction. Thereafter, a further fetch, decode, and execute cycle for the next instruction may be executed. Similarly, a store cycle may be performed by which the control unit 139 stores or writes a value to a memory location 132. Each step or sub-process in the processes of Figs. 5a, 5b, 7a, 7b, 9a, 9b and 10 is 25 associated with one or more segments of the program 133, and is performed by the register section 144-147, the ALU 140, and the control unit 139 in the processor 105 working together to perform the fetch, decode, and execute cycles for every instruction in the instruction set for the noted segments of the program 133. The GBED method may alternatively be implemented in dedicated hardware 30 such as one or more integrated circuits performing the GBED functions or sub functions. Such dedicated hardware may include graphic processors, digital signal processors, or one or more microprocessors and associated memories. Figs. 12-17 provide a brief background description of dot encoding and decoding. Fig. 12 shows a modulated grid of dots used for encoding data in a dot code. 35 Data is stored in the dot code using a modulated grid. Fig. 12 shows an enlarged view of -11 the appearance of a modulated grid. A modulated grid is formed of a large number of dots 1202 and 1204 that lie close to the intersection points 1203 of a square grid 1201. Note that it is only the dots 1202 and 1204 that form the visible modulated grid, and the grid 1203 is illustrated purely for explanation of the location of the dots 1202 and 1204. 5 The modulated grid consists of two types of dots. The dot 1202 is an example of a 'data' dot - this dot is modulated around an intersection point 1203. The dot 1204 is an example of an 'alignment' dot - this dot lies exactly on an intersection point 1203. Data dots and alignment dots are shown with different shading in Fig. 12, but they are actually identical except for their modulation; the shading is for illustrative purposes. In one 1o arrangement, the dot code consists of 50% data dots and 50% alignment dots in the arrangement shown in Fig. 12. Other arrangements are possible with minimal change. Fig. 13 shows how the modulated grid of dots is viewed conceptually for decoding purposes. Fig. 13 shows the grid discovered from dot code decoding. 1301 is the discovered grid, 1302 is a data dot and 1304 is an alignment dot. The alignment dots are is used to build 1301, and appear on each grid intersection point. As the alignment dots are located at every second dot, the discovered grid is 45 degrees offset from the original square grid with a grid spacing a factor of square-root-two larger. This discovered grid divides the page into many square grid cells shown by 1303, where each grid cell contains exactly one data dot. Grid cells are the basic unit used for dot code data storage and 20 decoding. Fig. 14 shows how data is encoded into the modulation of a single dot, ie how information is stored in the data dot in a grid cell. The dots 1402 lie close to the grid cell centres 1405 of the grid cells in grid 1401, and each dot is modulated to one of eight possible positions 1403. The eight possible positions for each dot are arranged in a circle 25 centred on the relevant grid intersection. The eight modulation positions are offset from the grid centre horizontally, vertically or diagonally. The horizontal and vertical distance by which they are offset is the modulation quantum 1404 that is chosen to be a fixed percentage of the side length of the grid cell. A typical choice for the modulation quantum is 40% of the original square grid spacing. 30 Fig. 15 is a detailed view of the encoding scheme used to encode data into the modulation of a single dot. Fig. 15 shows the dot modulation positions 1403 in even greater detail. They are centred on the grid cell centre 1503, and each modulation position such as 1501 has a digital code value such as 1502 associated with it. The eight modulation positions (including 1501) allow each dot to encode one of eight possible 3s digital code values (including 1502 for 1501). This allows a modulated grid to act as a -12 digital data store, with each dot of the modulated grid storing one base-eight digit of data. Ideally, each dot encodes a code value such that the dots are arranged in a Gray code in the circle. This facilitates error correction during decoding. Fig. 15 shows the digital code value of each dot in binary. Thus, starting clockwise from 1502, the dots encode the 5 values: 5, 7, 6, 2, 3, 1, 0 and 4. Other modulation techniques can used without departing from the scope of the invention, for example sixteen modulation positions can be used to encode one of sixteen possible digital code values. Fig. 16 shows the decoding order of the data dots. One preferred ordering of the digits of the digital data store is the ordering provided by using a rectangular array of dots 1o as shown in Fig. 16. This ordering starts at the topmost, leftmost grid cell 1601 and proceeds left to right and then from top to bottom until the bottommost, rightmost grid cell 1602 is reached. It is of course possible to use other orderings. Fig. 17 is a schematic flow diagram for one process for dot code decoding. Decoding starts at a step 1701. The first stage 'Scan dot code', 1702, is where the paper is dot code is converted into a digital scanned image using an optical scanner 126. Note that the paper dot code can contain multiple dot codes, and this is correctly handled by the later decoding stages. The output of the step 1702 is a scanned image. The second stage 'Detect dots', 1703, uses heuristics to locate all dots that look like dot code dots in the scanned image. The output of 1703 is a list of (x, y) pixel 20 coordinates of the centre of mass of located dots. The third stage 'Constellation detection', 1704, uses a heuristic algorithm to identify the local grid spacing and orientation. The fourth stage, 'Flood filling', 1705, uses a priority-based flood-fill algorithm to fit suitable grids over the list of located dots. In the typical case the output of 1704 will 25 be a single grid that covers the scanned image. In special cases, multiple grids of different spacing and orientation will be found covering the scanned image. For example, if the scanned image contains two or more dot codes that are disjoint, have different spacings or different orientations, a separate grid will be output for each dot code detected. The fifth stage 'Region finding', 1706, operates on each grid from stage 1705 30 and divides it into separate regions based on data similarity using a segmentation algorithm. Typically the output for 1706 will be a single region covering the grid. In special cases multiple regions can be found. For example, if the grid contains two dot codes that were not successfully separated by 'grid navigation', they will be correctly separated into two regions at this stage and two regions will be output.
-13 The sixth stage 'ECC decoding', 1707 corrects any errors using the error correcting code, and extracts the dot code data. The output of 1707 is the original data. The process finishes at 1708. The preferred GBED arrangement describes the detection of multiple dot code 5 layers differentiated by grid angle, which is the orientation of the dot code layer grid with respect to a virtual coordinate system associated with the page upon which the dot code layers are printed. The same detection methods could also be used without alteration for detecting multiple dot code layers differentiated by grid pitch, which is the pitch of the dot code layer grid. 10 Fig. 2 depicts a single dot code layer 200, where the dot code is a two dimensional grid of dots comprised of two types of dots, namely 'alignment' dots such as 201, and 'data' dots such as 202. The alignment dots such as 201 are positioned on the intersection points of a square grid 203, forming an array of grid cells such as 204 which are each bounded by four alignment dots, while the positions of the data dots such as 202 is are spatially modulated within the grid cells. Data is stored in the dot code by modulating the position of the data dots. In the preferred GBED arrangement, 50% of the dots are alignment dots and 50% of the dots are data dots. Data dots and alignment dots are shown with different shading in Fig. 2, but in practice they are identical except for their modulation. Further, the square grid 203 is not part of a physical dot code, it is only 20 shown for illustrative purposes. Fig. 3 depicts four superimposed dot code layers 300 such as that shown in Fig. 2, each having the same grid pitch and grid offset, but having a different grid angle relative to a virtual coordinate system associated with the page upon which the dot code layers are printed. This pattern of dots 300 is a typical result observed after digitally 25 superimposing or physically overprinting four dot code layers 301-304 such as shown in Fig. 2 on a document. Detecting the dot code layers typically involves detecting the presence of one or more dot code layers and identifying corresponding sets of grid parameters necessary for decoding (i.e. grid pitch, grid angle and grid offset). Other properties of the grid which may be detected include the aspect ratio of rectangular grids. 30 Detecting the dot code layers and corresponding sets of grid parameters necessary for decoding is typically performed at many locations on the document, designated as grid nodes and using the information from the area surrounding each grid node. Grid nodes have no physical representation on the document. A grid node merely represents a location on the document, which aids understanding and implementation of the decoding 35 process.
-14 To assist the reader in understanding the preferred GBED arrangement, which is hybrid spatial-frequency detection, spatial and frequency domain detection methods are described individually first, before elements of each are combined to form the preferred hybrid method. The GBED approach can be implemented using spatial or frequency 5 domain detection methods or the hybrid method. Spatial domain detection Spatial domain detection is relatively easy to understand and optimise, but it is difficult to define a detector which is robust to missing or spurious dots. Also, the computational complexity of a naive implementation of this method is O(N!) relative to 10 the number of dots analysed, though the algorithm described here includes some optimisations. It is possible to detect a single dot code by analysing as few as ten dots, however, to detect multiple dot code layers it is necessary to analyse many more dots. Fig. 4 is directed to a spatial domain detection technique. A region 400 is a region of the page surrounding an individual grid node 401, marked with a cross. A dot is 402 is an example of a dot designated as 'Dl'. A dot 403 is an example of a dot designated 'D2'. A dot 404 is an example of a dot designated 'D3'. A circle 405 marks a search radius around the grid node 401, and an annular ring 406 marks an adjacent grid dot band around the dot 'D1' (ie 402). A line 407 marks the search path for the dot 'D3' (ie 404) extrapolated from the dots 'D1' (ie 402) and 'D2' (ie 20 403), and a ring 408 marks a search location for the dot 'D3' (ie 404). Only the dots are physically present on the page, and all the other marks are only shown to assist the reader to understand the GBED technique. The grid pitch 410 is equal to the polar radius of the dot 'D2' (ie 403) measured with respect to the dot 'DI' (ie 402). The grid angle 409 is equal to the polar angle of the dot 'D2' (ie 403) measured with respect to the dot 'D1' (ie 25 402). The grid offset 410 is equal to the displacement of the dot 'Dl' (ie 402) measured with respect to the grid node (ie 401). The grid angle and pitch parameters may also be calculated from the average of the normalised parameters of several complementary 'D2' dots corresponding to the same 'D1' dot. Multiple grid angle parameters may be normalised by rotating them in to the same Cartesian quadrant before averaging them. 30 Multiple grid pitch parameters may be averaged directly. Figs. 5a and 5b are flow chart fragments (referred to as 500 and 500' respectively) of a process 500 for performing the spatial domain detection technique depicted in Fig. 4. The process 500 in Fig. 5a commences with input of information 516 relating to 35 the parameters of the grid to be used to encode the dot code, and parameters used to -15 establish the grid nodes. In a step 501, grid nodes are allocated, by the processor 105 as directed by the GBED software application 133, over the whole page. The placement of the grid nodes is not critical, however, for best results they should be distributed evenly over the whole page. In the GBED arrangement, the grid nodes are arranged in a square 5 grid perpendicular to the page with a pitch of approximately one inch in both directions. Other distributions such as staggered, random, or pseudorandom distributions of grid nodes would work similarly. In a following step 502, spatial domain dot detection is performed, by the processor 105 as directed by the GBED software application 133, over the whole page. In this step, the dot locations are recoded so that subsequent operations 10 can be performed using dot location data rather than complete image data. In a following step 503, an individual grid node such as 401 is considered. In a following step 504, the dot 'Dl' (ie 402) within the search radius 405 of the grid node 401, is considered. In a following step 505, a dot 'D2' within the adjacent grid dot band of dot 'D1', such as 403, is considered. In a following decision step 506, a search location 408 for the dot 'D3' is is determined by extrapolating the search path 407 from the dots 'D1' and 'D2'. If a dot 'D3' is found at the determined search location 408, it is assumed that the dots 'Dl', 'D2', and 'D3' form part of a grid, the process 500 follows a YES arrow to a step 515 and the polar coordinates of the dot 'D2' with respect to the dot 'Dl' are recorded in the step 515. The process 500 is then directed to a step 507. Returning to the step 506, if the step 506 20 returns a logical FALSE value, then the process 500 follows a "NO" arrow to the step 507. In the step 507, if there are more dots such as 'D2' within the adjacent grid dot band 406 of the dot 'D1', then the process 500 follows a "YES" arrow from the step 507 to the step 505 thus repeating the process from the step 505. If the step 507 returns a 25 logical FALSE value, then the process 500 follows a "NO" arrow from the step 507 to a step 508. In the step 508, if there are more dots 'Dl' within the search radius 405 of the grid node 401, then the process 500 follows a "YES" arrow from the step 508 to the step 504 and the process 500 repeats from the step 504. If the step 508 returns a logical FALSE 30 value, then the process 500 follows a "NO" arrow via a connector symbol "A" on Fig. 5a, to an equivalent connector symbol "A" on Fig. 5b, to a step 509 which is associated with the process fragment 500'. In the step 509, complementary 'D2' parameters that were recorded in the step 515 of the process 500 in Fig. 5a are angle-normalised, then associated into sets 35 corresponding to individual grids, then averaged to determine the grid parameters Grid -16 angle parameters are normalised by rotating them into the first Cartesian quadrant (that is, subtract 90 degrees from grid angles in the second quadrant, subtract 180 degrees from grid angles in the third quadrant, and subtract 270 degrees from grid angles in the fourth quadrant). In the GBED arrangement, a dynamic histogram clustering method is used to 5 associate sets of 'D2' parameters with similar values of grid pitch and normalised grid angle, which correspond to the same grid. Other heuristic methods may also be used In a following step 510, an individual set of complementary 'D2' parameters is considered. In a following step 511, the potential dot code layer grid pitch, angle and offset, and optionally a confidence measure are calculated, The grid pitch is calculated using the 10 average 'D2' polar radius. The grid angle is calculated using the average of the normalised 'D2' polar angle. The grid offset is calculated using the 'D2' displacement relative to 'D1'. The size of the histogram bins, representing the range of similar 'D2' parameters provides a confidence measure for the dot code layer detection.. These calculations are performed by the processor 105 as directed by the GBED software application 133, from is the set of complementary 'D2' parameters. In a following decision step 512, if there are more sets of complementary 'D2' parameters, the process 500' follows a "YES" arrow and repeats from the step 510. If the step 512 returns a logical FALSE value, the process 500' follows a "NO" arrow to a step 513. In the step 513, if there are more grid nodes on the page, the process 500' follows a "YES" arrow and repeats from the step 504 in the 20 process 500 on Fig. 5a. If the step 513 returns a logical FALSE value, the process 500' follows a "NO" arrow to a step 514. In the step 514, detected grids are demodulated and dot codes are decoded, this generating the information. The main limitations of the spatial domain detection technique are that the computational complexity of such a detector is very high, and the detector may not be 25 robust to missing or spurious dots, even with many optimisations. Frequency domain detection Frequency domain detection has the advantages that every pixel in the analysis region contributes to the calculated grid parameters, so dots are inherently weighted by their intensity and the effects of missing or spurious dots are minimised. Also, the grid 30 offset (calculated from the phase information) is easily separated from the grid pitch and grid angle (calculated from the magnitude information), which simplifies the detection of multiple grids. The computational complexity of this method is O(N 2 logN) relative to the number of pixels in the analysis region, and by the nature of the fast Fourier transform (FFT), optimisations are generally impossible.
-17 Fig. 6 is directed to a frequency domain detection technique 600. An image 601 is a spatial domain representation of a region of the page surrounding an individual grid node 603, marked with a cross. An image 602 is a frequency domain representation of the region 601, calculated using an FFT. A frequency magnitude peak 605 is a central peak 5 corresponding to the DC component of the signal, and peaks 606 and 607 are two of four fundamental peaks corresponding to the frequency domain representation of a dot code. The peaks 606 and 607 are designated the 'A' and 'B' peaks respectively, while the other two of four fundamental peaks represent redundant information due to frequency domain symmetry of real information, and so they are ignored. An arrow 608 represents a vector 10 corresponding to the 'A' peak 606, and an arrow 609 represents the vector corresponding to the 'B' peak 607. By the nature of the dot code in the present example which uses a square grid, the 'A' and 'B' vectors are nominally orthogonal. The grid pitch 610 is inversely proportional to the length of the vectors 608 and 609, and the grid angle 611 is directly related to the direction of the vectors. 15 Grid offsets (that is, the displacement of the nearest grid dot, relative to the grid node) in the 'A' and 'B' vector directions are given by the value of the phase information at the 'A' and 'B' peaks (that is, the tip of the 'A' and 'B' vectors) divided by 27r. Hence, the grid offset orthogonal to the page dimensions can be calculated using a linear transformation. The grid offset calculation including the linear transformation is described 20 mathematically next. The grid offset is determined using the phase information of the 'A' and 'B' vectors. The 'A' and 'B' vectors are hereafter referred to as A' and B', and the value of the phase at points 'A' and 'B' are hereafter referred to as #A and #B. When the grid node falls exactly on an alignment dot, #A and #B are both zero. #A and #B change their value according to the grid dot misalignment in the directions of A' and B' 25 respectively. In any direction, the grid offset as a fraction of the grid pitch is equivalent to the phase as the same fraction of 27r. Hence, the grid offset in the A' direction, tA, and the grid offset in the B' direction, tB, are given by tA = (|A'| -OA) / 27r 30 tB =(IB'| B) / 2r and the translation vectors T'A and T'B are given by T'A = tA A' T'B= tB B' -18 Because T'A and T'B are approximately orthogonal, the translation vector T'xy is approximated by the vector sum of T'A and T'B, T'xy is the grid offset in terms of x and y, which is the required form to use in the GBED arrangement. Figs. 7a and 7B are flow chart fragments 700 and 700' of a process for 5 performing the frequency domain detection technique of Fig. 6. . The process 700 in Fig. 7a commences with input of information 720 relating to the parameters of the grid to be used to encode the dot code, and parameters used to establish the grid nodes. In a step 701, grid nodes are allocated over the whole page. The placement of the grid nodes is not critical, however, for best results they should be distributed evenly over the whole page. In 1o the GBED arrangement, the grid nodes are arranged in a square grid perpendicular to the page with a pitch of approximately one inch in both directions. Other distributions such as staggered, random, or pseudorandom distributions of grid nodes would work similarly. In a step 702, an individual grid node such as 603 is considered. In a following step 703, an FFT of the rectangular region surrounding the grid node is calculated, by the processor is 105 as directed by the GBED software application 133. In a following step 704, magnitude peaks in the frequency domain representation of the region are detected. The peaks are typically detected by filtering for local maximums in the magnitude image of the frequency space in two directions, then selecting the N highest peaks. If higher resolution is required, local maximums in the magnitude image may be fitted in the real 20 and imaginary images using a linear system in two or four directions. In a following step 705, associated pairs of 'A' and 'B' fundamental peaks are detected using a heuristic algorithm. Specifically, for each peak, if a corresponding peak is found within a tolerance of the same polar radius and 7E minus the polar angle, the peaks are labelled as 'A' and 'B' fundamental peaks respectively. 25 The process 700 is then directed, via respective connector symbols "A" in Figs. 7a and 7b to a step 706 in the process fragment 700'. In the step 706, a single pair of 'A' and 'B' fundamental peaks is considered. In a following step 707, the potential dot code grid pitch, grid angle, grid offset, and optionally a confidence measure are calculated. The grid parameters can be calculated from the polar coordinates of the 'A' and 'B' peaks 606 30 and 607 with respect to the DC peak 605, and the value of the phase at these locations. In a following decision step 708, if there are more pairs of 'A' and 'B' fundamental peaks, the process 700' follows a "YES" arrow and repeats from the step 706. If the step 708 returns a logical FALSE value, then the process 700' follows a "NO" arrow to a step 709. In the decision step 709, performed by the processor 105 as directed by the GBED 35 software application 133, if there are more grid nodes, the process 700' follows a "YES" -19 arrow, via respective connector symbols "B" in Fig. 7B and 7A, and repeats from the step 702 in the process 700 in Fig. 7a. If the step 709 returns a logical FALSE value, then the process 700' follows a "NO" arrow to a step 710. In the step 710, performed by the processor 105 as directed by the GBED software application 133, spatial domain dot s detection is performed over the whole page. In a following step 711, detected grids are demodulated and dot codes are decoded, thereby generating the information that was encoded in the dot code layer in question. The main limitation of the frequency domain detection technique is that the computational complexity of such a detector is high and cannot be readily optimised. It is 10 possible to compute a rectangular subset of the FFT, but even in this case the computational complexity is not reduced proportionally to the size of the subset of the FFT. Hybrid spatial-frequency detection Though this method is more complicated than either spatial or frequency domain 15 detection methods alone, it can produce more reliable detection results. Also, optimisations may be used to achieve a lower computational complexity than either of the spatial or frequency domain detection methods alone. The computational complexity of this method is O(N) with respect to the number of dots analysed and the number of locations computed in the frequency domain representation, which means it scales well, 20 and both the number of dots analysed and the number of locations computed can be adjusted dynamically to suit the type of page being decoded or to trade-off detection reliability against computational complexity. Rather than calculating the frequency domain representation of the image using a conventional fast Fourier transform (FFT), a different type of discrete Fourier transform 25 (DFT) is used. In this case, the locations and intensities of the dots are detected in the spatial domain. Each dot is considered to be an impulse, of which the Fourier transform is a pure cosine wave with frequency, magnitude and phase related to the location and intensity of the impulse. To calculate the contribution of a dot to the frequency domain representation, the value of the cosine for a particular dot is as follows: 30 value = (0.5 x (1 - cos(27nx))) x (0.5 x (1 - cos(21ty))) where x and y are the coordinates of the dot in the spatial domain, measured with respect to the grid node. Hence its contribution to the real and imaginary components of the frequency domain representation are given by the following: real = value x cos(27n(ux + vy)) 35 imag = value x sin(27t(ux + vy)) -20 where x and y are the coordinates of the dot in the spatial domain, measured with respect to the grid node, and u and v are the coordinates of the corresponding sample location in the frequency domain. Because the ranges of allowable dot code pitch and dot code angle are predefined 5 by the input information 920, it is only necessary to calculate a 'rainbow' shaped region of the frequency domain representation. The representation must include the inverse grid pitch band from the smallest to the largest supported grids, but only the top half of this band needs to be computed because the bottom half is identical due to the symmetry of the real data input to the Fourier transform. 10 Fig. 8 depicts the hybrid spatial-frequency detection technique. The arc 809 marks the lower bound (corresponding to the smallest supported grids) of the inverse grid pitch band. The arc 810 marks the upper bound (corresponding to the largest supported grids) of the inverse grid pitch band. The reference numeral 800 is a frequency domain representation of the region surrounding the grid node. A peak 801 is a central frequency is magnitude peak corresponding to the DC component of the signal, comparable to 605 in Fig. 6. Peaks 802 and 803 are two of four fundamental peaks corresponding to the frequency domain representation of the signal, being the information in the dot code layer(s) in question. The other two of four fundamental peaks fall outside the sampling range and are not shown. Radial lines 806 represent the sampling boundaries in the vector 20 direction range, and semicircular arcs 807 represent the sampling boundaries in the vector length range. Sampling locations e.g. 808 are defined where the sampling boundaries 806 and 807 intersect. By decreasing/increasing the frequency of the sampling boundaries in the vector direction range or vector length range, it is possible to decrease/increase the computational complexity of the algorithm, at the expense of detection reliability. The 25 locations of the fundamental peaks 802 and 803 can be determined by approximating the direction/length system to a linear system and searching for local maximums, then using e.g. parabolic fitting to determine the exact locations of the peaks. Only this method of generating the frequency domain representation and detecting the peaks is unique to the hybrid spatial-frequency detection technique. The grid parameters are calculated from the 30 peak locations using exactly the same technique described previously for frequency domain detection, Figs. 9a and 9b are flow chart fragments of a process for performing the hybrid spatial-frequency detection technique of Fig. 8. The process 700 in Fig. 7a commences with input of information 720 relating to the parameters of the grid to be used to encode 35 the dot code, and parameters used to establish the grid nodes. In a step 901, grid nodes are -21 allocated over the whole page. The placement of the grid nodes is not critical, however, for best results they should be distributed evenly over the whole page. In the GBED arrangement, the grid nodes are arranged in a square grid perpendicular to the page with a pitch of approximately one inch in both directions. Other distributions such as staggered, 5 random, or pseudorandom distributions of grid nodes would work similarly. In a following step 902, spatial domain dot detection is performed over the whole page, by the processor 105 as directed by the GBED software application 133. In a following step 903, an individual grid node is considered. In a subsequent step 904, the DFT of selected locations in the frequency domain representation, corresponding to the region surrounding 10 the grid node is computed. In a following step 905, magnitude peaks in the frequency domain representation of the region are detected. The peaks are typically detected by filtering for local maximums in the magnitude image of the frequency space in the vector length and vector direction dimensions, then selecting the N highest peaks. If higher resolution is required, local maximums in the magnitude image may be fitted in the real 15 and imaginary images by approximating the vector length and vector direction dimensions with a linear system and using a conventional parametric fitting technique. In a subsequent step 906, pairs of fundamental peaks are associated in to 'A' and 'B' pairs. Specifically, for each peak, if a corresponding peak is found within a tolerance of the same vector length and n minus the vector angle, the peaks are labelled as 'A' and 'B' 20 fundamental peaks respectively. The process 900 then proceeds, via respective connector symbols "A" in Figs. 9a and 9b to a step 907 in the process 900' in Fig. 9b. The step 907 considers a pair of 'A' and 'B' fundamental peaks. In a following step 908, the potential dot code grid pitch, grid angle, grid offset, and optionally a confidence measure are calculated by the processor 105 25 directed by the GBED software 133. The grid parameters can be calculated from the polar coordinates of the 'A' and 'B' peaks 606 and 607 with respect to the DC peak 605, and the value of the phase at these locations. In a following step 909, if there are more pairs of 'A' and 'B' fundamental peaks, then the process 900' follows a "YES" arrow and repeats from the step 907. If the step 909 returns a logical FALSE value, then the process 900' 30 follows a "NO" arrow to a step 910, In the step 910, if there are more grid nodes, the process 900' follows a "YES" arrow via respective connector symbols "B" in Figs. 9b and 9a repeats from the step 903 in Fig. 9a. If the step 910 returns a logical FALSE value, then the process 900' follows a "NO" arrow to the step 911. In the step 911, detected grids are demodulated and dot codes are decoded, thereby generating the information that was 35 encoded in the dot code layer in question.
-22 INDUSTRIAL APPLICABILITY The arrangements described are applicable to the computer and data processing industries and particularly for the publishing segments of such industries. The foregoing describes only some embodiments of the present invention, and 5 modifications and/or changes can be made thereto without departing from the scope and spirit of the invention, the embodiments being illustrative and not restrictive. Accordingly, although the description is primarily concerned with dot codes using spatial modulation of dots, other types of modulation such as intensity or size modulation can also be used. In the context of this specification, the word "comprising" means "including 10 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.

Claims (6)

  1. 2. A method according to claim 1 wherein the grid parameters include grid angle and grid pitch. is 3. A method according to claim 1, wherein the step of determining the second set of grid parameter values comprises the steps of: determining said first grid parameter values; and subsequently determining the second set of grid parameter values, these being different to said first grid parameter values. 20
  2. 4. A method according to claim 1, wherein the step of determining the second set of grid parameter values comprises the steps of: generating a set of randomly determined grid parameter values; and defining the second set of grid parameter values dependent upon the set of 25 randomly determined grid parameter values.
  3. 5. A method of decoding a plurality of dot codes encoded in a document, each dot code comprising dots modulated with respect to a corresponding grid characterised by a set of grid parameters having corresponding grid parameter values, the method comprising 30 the steps of: detecting locations of the dots in said plurality of dot codes; synthesising a frequency domain representation of the dots based on said detected locations; determining, from the frequency domain representation, grid parameter values for 35 the grid associated with each of said multiple dot codes; and -24 decoding said multiple dot codes using the determined grid parameter values.
  4. 6. A method according to claim 5 wherein the grid parameters include grid angle, grid pitch and grid offset. 5
  5. 7. A method according to claim 5, wherein the step of synthesising a frequency domain representation of the dots comprises: determining within a predetermined range of grid pitch, grid angle and grid aspect ratio, the contribution of each of said dots at the detected locations. 10
  6. 8. A method according to claim 7, wherein the synthesising step further comprises: synthesising the frequency domain representation of the dots based on the intensity or confidence of the dots. 1s Dated 22 December, 2008 Canon Kabushiki Kaisha Patent Attorneys for the Applicant/Nominated Person SPRUSON & FERGUSON
AU2008261178A 2008-12-22 2008-12-22 Method of updating printed barcode content and detecting multiple barcode layers Abandoned AU2008261178A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2008261178A AU2008261178A1 (en) 2008-12-22 2008-12-22 Method of updating printed barcode content and detecting multiple barcode layers

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
AU2008261178A AU2008261178A1 (en) 2008-12-22 2008-12-22 Method of updating printed barcode content and detecting multiple barcode layers

Publications (1)

Publication Number Publication Date
AU2008261178A1 true AU2008261178A1 (en) 2010-07-08

Family

ID=42313402

Family Applications (1)

Application Number Title Priority Date Filing Date
AU2008261178A Abandoned AU2008261178A1 (en) 2008-12-22 2008-12-22 Method of updating printed barcode content and detecting multiple barcode layers

Country Status (1)

Country Link
AU (1) AU2008261178A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012050570A1 (en) 2010-10-12 2012-04-19 Hewlett-Packard Development Company, L.P. A system for generating an incrementally completed 2d security mark
EP2628131A4 (en) * 2010-10-12 2018-01-17 Hewlett-Packard Development Company, L.P. A system for generating an incrementally completed security mark

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2012050570A1 (en) 2010-10-12 2012-04-19 Hewlett-Packard Development Company, L.P. A system for generating an incrementally completed 2d security mark
EP2628131A4 (en) * 2010-10-12 2018-01-17 Hewlett-Packard Development Company, L.P. A system for generating an incrementally completed security mark
EP2628132A4 (en) * 2010-10-12 2018-01-17 Hewlett-Packard Development Company, L.P. A system for generating an incrementally completed 2d security mark

Similar Documents

Publication Publication Date Title
JP4721469B2 (en) Printing and authentication of security documents on substrates
Guo et al. Duplication forgery detection using improved DAISY descriptor
Otori et al. Data-embeddable texture synthesis
US7158653B2 (en) Encoding information in a watermark
US20100142756A1 (en) Document security method
Feng et al. Steganalysis of content-adaptive binary image data hiding
Gou et al. Data hiding in curves with application to fingerprinting maps
CN110766594A (en) Information hiding method and device, detection method and device and anti-counterfeiting tracing method
Yang et al. Polygonal mesh watermarking using Laplacian coordinates
Tan et al. Print-Scan Resilient Text Image Watermarking Based on Stroke Direction Modulation for Chinese Document Authentication.
US6522766B1 (en) Watermarking with random zero-mean patches for copyright protection
US7878401B2 (en) Multiple barcode detection
AU2005209703B2 (en) Grid orientation, scale, translation and modulation estimation
Soni et al. Keypoints based enhanced multiple copy‐move forgeries detection system using density‐based spatial clustering of application with noise clustering algorithm
US20100201114A1 (en) Page mark-up using printed dot barcodes
Ouyang et al. A semi-fragile watermarking tamper localization method based on QDFT and multi-view fusion
US8934660B2 (en) Two dimensional information symbol
JP4426617B2 (en) Document falsification detection method using encoded dots
JP4587181B2 (en) Information processing apparatus operating method, storage medium, and information processing apparatus
Ahmad et al. Detection and localization of image tampering in digital images with fused features
AU2008261178A1 (en) Method of updating printed barcode content and detecting multiple barcode layers
Yang et al. Robust digital watermarking based on local invariant radial harmonic fourier moments
US11954756B1 (en) Anti-leak digital document marking system and method using distributed ledger
JP2003244427A (en) Image processing apparatus and method
JP4172586B2 (en) Digital watermark insertion method, digital watermark insertion apparatus, digital watermark insertion program, digital watermark detection method, digital watermark detection apparatus, and digital watermark detection program

Legal Events

Date Code Title Description
MK4 Application lapsed section 142(2)(d) - no continuation fee paid for the application