CA2247924C - Variable formatting of digital data into a pattern - Google Patents

Variable formatting of digital data into a pattern Download PDF

Info

Publication number
CA2247924C
CA2247924C CA2247924A CA2247924A CA2247924C CA 2247924 C CA2247924 C CA 2247924C CA 2247924 A CA2247924 A CA 2247924A CA 2247924 A CA2247924 A CA 2247924A CA 2247924 C CA2247924 C CA 2247924C
Authority
CA
Canada
Prior art keywords
marker
cells
spot
digital data
pixels
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.)
Expired - Lifetime
Application number
CA2247924A
Other languages
French (fr)
Other versions
CA2247924A1 (en
Inventor
Thomas Antognini
Walter Antognini
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.)
Cobblestone Software Inc
Original Assignee
Cobblestone Software 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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=24441255&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=CA2247924(C) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Cobblestone Software Inc filed Critical Cobblestone Software Inc
Publication of CA2247924A1 publication Critical patent/CA2247924A1/en
Application granted granted Critical
Publication of CA2247924C publication Critical patent/CA2247924C/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1491Methods for optical code recognition the method including quality enhancement steps the method including a reconstruction step, e.g. stitching two pieces of bar code together to derive the full bar code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/121Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks
    • G06K1/123Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by printing code marks for colour code marks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K1/00Methods or arrangements for marking the record carrier in digital fashion
    • G06K1/12Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching
    • G06K1/126Methods or arrangements for marking the record carrier in digital fashion otherwise than by punching by photographic or thermographic registration
    • 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
    • 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/06046Constructional details
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/01Details
    • G06K7/016Synchronisation of sensing process
    • G06K7/0166Synchronisation of sensing process by means of clock-signals derived from the code marks, e.g. self-clocking code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1408Methods for optical code recognition the method being specifically adapted for the type of code
    • G06K7/14172D bar codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1443Methods for optical code recognition including a method step for retrieval of the optical code locating of the code in an image
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K7/00Methods or arrangements for sensing record carriers, e.g. for reading patterns
    • G06K7/10Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation
    • G06K7/14Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation using light without selection of wavelength, e.g. sensing reflected white light
    • G06K7/1404Methods for optical code recognition
    • G06K7/146Methods for optical code recognition the method including quality enhancement steps
    • G06K7/1473Methods for optical code recognition the method including quality enhancement steps error correction
    • 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
    • G06K2019/06215Aspects not covered by other subgroups
    • G06K2019/06225Aspects not covered by other subgroups using wavelength selection, e.g. colour code

Abstract

A method of formatting digital data and a method of decoding the formatted digital data. User selectable format parameters (201) vary the dimensions and other attributes of spots and the cells containing those spots as well as other features which the formatting process formats into a pattern. Computer files or files are selected to be printed as spots on paper (202). Compression and error correction processings (203, 204) are used to increase capacity and produce an error-free stream of data. The degree of redundancy selected is information conveyed in the metasector (802), which contains information about the encoding process used to encode the main body of data (803), which the decoding process decodes to recover the original data. Further embodiments include encryption, transmission by facsimile, inclusion of human readable information, and automatic launches of computer files.

Description

V~P-~Rl.F. FORMATTING OF DIGITAL DATA INTO A PATTERN

~ S C'tr~ o' Notice A portion of the ~ i of this patent Jr contains material which is subject to cc 1" .igl.l 1"~ The copyright owner has no objection to the facsimile ~ l~Lcuo~ by anyone of the patent cii~lu~ , as it appears in the Patent and T ' ' Office patent files or records, but . ' ~..s~ reserves all cvy, ~,' rights whab Bs~bo. . ' of the L.. '-This i.,.~..lion relates to the ru. ~ g of digital data into a pattern, encoding that pattern onto asubstrate where a~ ~,.o~ and decoding that pattern to ~~cor.ai~u ,l the digit al data.
While - . ~ have b~ ~y ' ' the manner in which society conveys and works with 15 r n~ion paper remains the favored manner of ~u~ h~g r lndeed, the p~ol;f~ "-uo" of personal ~ has resulted in a p.~ - - of paper. Yet, no i ' ~ to date has ~,~;,.;r. - ~-iy - ~ the digital e~vi~ ~ of the computer with the visual c....l~ of written media. Instead, computers primarily dircct human readable ~ ~ to be placed on paper.
It would be greatly a.lv g :~ to have digital data placed on paper and other media currently 20 used for human readable ' ... -~un. Such a method would link the largely separate env.-u.~...,,lb of paper and t ~ r a. The method could store and convey digital data with greater C~l-,;CI~, ease, speed, and lesser cost than any other available method. The method would have the further advantage of being the only v ~ method to integrate digital data with visual media.
As ~le~ d below, the prior art discloses methods for placing machine readable ;~.r ~ io.~ on 25 media such as paper. However, none of these prior art methods, and, to the best of the i..~. ' h.o..~led6~"
no other t~hno'cgy currently available to personal ,a n, - users allows for the pl ~ of a civPnifir~nt amount of machine readable i~lrul - on the media. Other practical li~i~ of these prior art methods forestall ~;~;,.;r. ~ ~ co..u..~,c.al success.
One ex~rnple of digital i~rul .. alion being stored on paper is the u~ of bar codes. Because standard 30 bar codes are one dim~ -l they are severely limited in the number of bars that may be used to store digital ~.c l..dtiOll. The limits are sc ....,.. hàl greater in the case of two~' - ' bar codes but these limits are still far more restrictive than the i' ~,ti~dl limits of any pal li~ làl printer, and bar codes are designedforuse vith C~i~1i7~ scanners. Formore ~ ~ onbarcodes, see ~ r - Fnrn~ gwith Two-D ~n~l Bar Codes," authored by T. Pavlidis, J. Schwartz and Y. Wang, COMPUTEE~, June 35 1992.
U.S. Pat. No. 5,245,165, issued to Zhang, discloses a self-clocking glyph code for: ~ g dual bit digital values of a logically ordered sequence of ~._d6~ a ~ glyphs that are written or oil~,.wise recorded on a ha~O~ L~.g medium in accorJancc with a plc~ spatial ~( g rule. The dual bit values are encoded in the relative rotations of the glyphs. The glyphs are decoded by (I~ e a ~ ~

SUBSTITUTE SHEET tRULE 263 WO 9?/32262 PCTtUS97/03330 box for each glyph and A~t~ e either which quadrant of the box contains its center of mass or by co--~p~. iue the relative locations of the shortest and longest runs of ON pixels. To reliably present a single bit of data, each glyph s ~ . a large number of pixels, and thus this l~ ' ~ ~' .O~r requires c--- * -' 'o space on the l~,COl ling medium. The L~ C O ~ does not optimize the use of spaoe or c- ~- ul;
5 l~ s by ~l~a~.llil.g a bit in the most compact fashion.
U.S. Pat. No. S,337,362, issued to Gormish, discloses a method for i ' g digital i f~ io~
to and from plain paper. The method involves storing data in at least one box on the paper, the box - ~ e a frame or border having -' ,, pixels along the left and right edges for use in d ~ g the current location of a hu- i~,U~ Iine of pixels when reading the data and having pixels in corners of the 10 frame to ~ - hn. ;," t~l spacing between pixels v.~ithin the box. Binary data is rulllldLI~d in rows within the box, wherein a bit of digital data is depicted by the presence or absence of an ink dot. The method Aicrlr~Sed by Gormish provides the ability to represent 60 kilobytes of data on a single page.
Although Gormish allows for the St0Mge of more data on a page than can currently be stored in text form, it has seveMI p,.' ' ~ which prevent it from being useful in a ~ For example, lS Gormish requires a thick fMme to be placed around the entire data box in order to locate the box, which limits the ability to place the data in coll.~ shapes and sizes on a: ' Also, Gormish requires pl~c ~- of pixels in a rigid fashion, without ~"u. of O ' . to ,A,~ where to search for the presence or lack of a dot other than on the borders of the boxes. Further, Gormish provides ink F": in an ink dot that covers an entire SQuare and that square covers an area 16 times larger than the finest optical 20 ,~ ' of any given scdnner (e.g., Gormish discloses printing dots at 50 dpi while sr~nnine is p~. r~,....
at 200 dpi), thereby limiting the density of data which can be l~les ~ i on each page. In addition, although the method Aicrlosr~d in Gormish mav be suited for cer~ain printers and scanners of great p,~
it does not - '-; ly . x- -~ for d~,viauon_ from F~ rr~ in printing and scanning found in off-the-shelf printers and scanners designed for use with personal . Operating in an e~lVil~ of 25 personal r ~ ~ and their ~ phr~ 's, this rigidity ~ ' ~y ~,;-- l ,t- c into loss of data density, higher error rates, slower plU ,ci,ahlg spced, all of these dlofi- - or, worse yet, complete inability to use the method in given co~ ~ c..vll~
Other known methods disclose manners in which a single cell contains more than one bit of ~ ~ through the use of gray scales. One such method is Aicrlosed in U.S. Pat. No. 5,278,400, issued 30 to J. Appel (1994). This patent discloses the encoding of multiple bits in a single cell by rn~-kin~ ,f~,ldJl r by binary marking, a ~ t 'f -' number of pixels in a cell hl~ of the location of the pixels within the cell. The number of pixels marked coll~,J~Illa to the data to be encoded. The In~rkinec on the substrate are decoded by det~tine the gray scale level at each pixel of the cell,; .~.lhlg that gray scale level to a co..,~l~r.i;.\e digital signal and ~ E all of the digital signals co--~ to all of the pixels in the 35 cell. This method requires discrete d, ~ ;o.\ of where the cell begins and ends. The gains from ~ ' g multiple values in a single cell are lost by requiring larger cells, relative to ctr~ r~d binary printing. Gormish also discloses the encoding of multiple values in one cell through the use of gray scale inks. This method employs rigid r.... ~ ..g and printing d~,il~ above and similarly relies on rigid d~oAine . .~ that may be ~~ -; ,d for a p~li.,l.lar c~ of a printer and a scanner, but not SUBSTITUTE SHEET (RULE 26) W O 97/32262 rCTtUS97/03330 for all such con~ ;n~ These methods give back the data density and savings in ~ , ~~inn-~ .,.,s that the use of multiple colors should provide.
U.S. Pat. Doc. No. 5,329,107, issued to D. Priddy and R. Cymbalski (1994), discloses a method to d~ 'ly vary the size, format, and density of machine readable binaly code. The method ~icrl~ in 5 that J~ ~ provides a code for ned of a nnatrix and allows variation in the amount of data in the matrix by printing on two sides of the p~ of the matrix broken line panerns of ~ g ~ and ' areas. The method ~t the amount of data in the matrix from the product of the number of light ~ d areas and ~1 ~rlrenP~d areas of the first side and the number of lightPnPd areas and ~ areas of the second. The method d~ ~ - size of the matrix by .- f ~ g the other tw o sides of the 10 formed of two solid black lines. While the method allows the encoder of ~ ~ some n~,~l,;lil~ in a~c~ g the different p ' of higher and lower l~ ' ~ the method is rigid in d ~ -;ng entire square cells. The method also lacks regular lefu.~n~,e markers and generally limits ;.~f~ about the encoAing, conveyed in the matrix, to size and density. The method therefore lacks the flexibility needed to address the pec~~ rS of every ' - of printer and scanner. Hence the method 15 can not produce the greatest density of data or the most efficient manner of decoding for every c~
of printer and scanner.
There is a need to !5 'S~ 'Iy increase the amount of data that can be stored within a given amount of paper in order to compete with other channels of storage and r,r-~~~~~~ ~~ such as floppy disks and digita I e by i ~ "~ - F n~ ~, ;,,g binary printing (i.e., storing one bit per cell), the most basic 20 and least dense printing process, the i..~ I~iùll is capable of storing data at densities several times as great as any other paper based method known to the i-~.. Utilizing printing methods which store more than one bit per cell, such as color printing, the IhcOI~,ti~,al density limits increase ' ~~nti~lly, While Gormish discloses the ability to store 60 kilobytes on a single page using a 400 dpi scaMer, the i..~. is capable of s : ~ ' g and decoding over 160 kilobytes of data error free (i.e., by utilizing error 25 coll~tiùn) using just a 300 dpi scaMer. With the aid of cu...~ n, this single page can contain over S00 kilobytes of text. With a 600 dpi printer and a 600 dpi flatbed scanner, the in~,,.tio.l can encode data in cells lt200 inch square (i.e., .005 inch x .005 inch), ~ r,~lly encoding and decoding over 300 kilobytes of data before the benefit of any compression, in excess of 1 lae~d~ of text with the aid of ~,UIIIIJlI,aaiU.~. Utilizing more precise printing IJIUCe~il~5 and a 600 dpi flatbed scanner, the il~ encodes and decodes over 7,000 30 bytes per square inch (over 1,100 I.yt~,Jc,.l2), over 20,û00 bytes of text using C(JIII~ ' Utilizing an ordinary thermal fax machine as a scaMer (a.,t.,e~ g a binary scan of ~ 200 dpi), the h.~.
encodes and decodes over 50 kilobytes of data, over 150 kilobytes of text with the aid of col~.pleaaiùn All of the above densities are ,~'C~ hpd utilizing binary printing.
The i,... - also conveys a~ ~ for any ~ i.,.J~ printer. For example, using an ordinary 35 thermal fax machine the i"~ ti~ can print over 230 kilobytes of data, over 675 kilobytes of text with 'r)n, on an 8.5 by 11 in. piece of thermal fax paper. The i,.~. can then, ~ r~lly decode that data error free.

S_ ~ ofthe 1 SU~ 111 ~)TE SHEET (RULE 26) It is an object of the present i~ lion to solve the p..~ ~ - A;~ C~'~ above present in prior art systems for l~..,~..ling digital data on a ' ~
It is another object of the present il.~ iùn to great,'y increase the density at which digital data can 5 be f~.. ' on a It is another object of this i,.~_ntion to u. ~...e the limit ~tj- - - of prior art through a method that writes and reads digital data on paper and other media using off-the-shelf personal . ~ . and Fh ~ c, and achieves the full carrying capaciq these off-the-shelf u~ .~p,~n ..t~ can sustain.
It is another object of the in~ ~iun to ' I ~ and enable the features and F that 10 ~ ' to density of i.. r.. - ~ on a printed ' and to enable full generality in r~ g and ~: ~- ' C along the ~ - iA~ ;rir~l This satisfies in turn the ultimate, practical goal: ae' ing the density possible for any F~li-,ular _ ' of printer and scanner. This comes about because that point of density can always be found in the multi-d ~ ' space so defined.
It is another object of the present i..~. to provide n~"~ib;lily in printing digital data onto a l 5 substrate along with other i- ~ rl" .. . -, ;AI, These and other objects of the i~ tiùn are achieved by a method of fo.,..allin~ digital data into a panern where the panern c~ r s a number of cells (i.e., ~.~d~ t~ ~ spaces in the panern) with known ~ - where each cell conveys at least one bit of data by ~_At~ g one of at least two logical states where one logical state is e,~ ~d by the presence of spot with a given set of: ' in the cell and a 20 second logical state is e,.~ ~d by the absence of a spot with those a ' from the cell, and where the size of spots may be different from the size of cells c~ n~e the spots.
Generally ~F ~ ~' ~g in - - ~ ~ e with the i-.~ tiol., a method of r....-- ~ Ii..g data into a pattern in an optimal fashion is provided. The preferred; ' ' of the i,.~ fion provides for the pl~ of ink on paper. The preferred c ~l~o-~ allows the person pluviding data to format the ~ of digital 25 data. This flexibility in ru. .-~ g the p'2 of digital data allows the person p.u. .lil.g data to optimize for any particular ~ of encoding device and scanner. The method of e ~ ng allows the person ~uvi~Lng data to format the p'a of ink in a fashion that best reflects the printer's c ~p ~1 .il;l ;~s to place ink in a ~k ,;~ ~1 area. The method of - ' g also allows for ru~ u;--g designed to consider the r.~h~ and limit~-i- of the target audience of scanners.
The features that support encoding ~ on the printed ~ ~ ~ and its effective decoding via a scanner, fall under two heads. First, there are dark regions on the ' which the current i,.~. - terms "spots," whose presence or absence in a specified region l~ ,t~ digital bits. Second, there are ~iAe~psst~ which the present il.~ fion terms "markers," that serve to identify the location of spots on the printed substrate -- a function known in the art as "clocking." The present i"~. e ,~
35 d~ ~ . ler these two features, allowing them to be varied ' Z l~r '~ SO that each may be optimally configured for its distinct purpose. The current i~ .;iù.. also permits each to be varied across all the (e.g., those defining size, spacing, and fi~uu~,l,~) that affect the density of i~ru. .. ~;o - on the - printed r ~ , while suppo,~ g its effective ~IP~ing This full g - ' ~, allows the optimum match for a particular printer and scanner always to be selected, r~ A, and decoded.

SU~ 111 ulTE SHEFT (RULE 26) W O 97/32262 PCT~US97/03330 The method of the present i~ 60ll allows the person or , _ c- - ud;-~g data to select the size, in pixels, of both the cell co~ g a bit of; 'f " ' ~ ;U'' and the size of the printed spot where a spot is required. The p..,f~ d c..-b. ' of the method of encoding provides a bit of one value by placing a spot of the chosen size in the cell of the chosen size. The method provides a bit of the opposite value by leaving 5 the cell of the chosen size blank. In acco,ddnce with the i~ ..6On, the size of the spots and of the cells can be varied in both the width and height Ji..
The method of the present h.~.,livn also allows the person or computer system ~ -cc, l;r~e data to select the size and locations of markers. In ac~,w~ with the in~ tivn~ the size and location of the markers can be flexibly altered to achieve reliable clocking with the amount of space and 10 . time.
The method of the p-~,f~ d emb~- ' provides r r~ n about the ~ I e process through use of a "~ tl, ", a header physically separate from the main body of data. The purpo~ of providing a is to facilitate fPrOtline the main body of data. In this: X "n~qnt~ the ~.( is itself an instance of the general panern by which ;,.rO.... ~iOl~ is stored in the in~ This ... l _ ~t u is ~.~,f~,.dbl~
15 printed at a ~ rJi..l..~.t which can be easily and reliably scanned and i..~.~ l~,t~d. It is also given a p~ " ' 'q and l~ldti~_ly rigid format, which makes it cl r,~ r~ ,, d tO decode in the absence of detailed infr about the printing process and e..~ which ~ ' the encoded data. This contains r '~ about the printing process and e--~ that is then used to decode the main body of data.
The ..hal rigid fonnat of the .~ r~... frees the main body of the data from rigidity in its own format, 20 allowing it the greatest flexibility in - ' ~i..g density. The ...- ~ " encoded at a leldli~
IOW 1~ ;o~ ;vn, contains i- fv-l. alio~ to the 1. ' of the method in order to decode at a higher 1~ ~' The ;~-r,.... -~io~ included in the . l--~ r includes, inter alia, the size of the data spots printed, the size of the cells i g data spots, the printing process used to print spots and the size and relative location of markers, if any.
2S Allowing flexibility in the size and F'- of data spots in cells greatly increa~s density of data and illllJlV..,5 the speed and accuracy of d~ e whether a bit is on or off. The f.~ l purpose behind defining spot size n~ ~ ' ly is twofold - first, to ~ ~m~ -- for printer ~if r~:f ~---;f S and, second, to compen~sate for scanner ~I~.fi. :.... :. c.
Within types of printers, such as 300 dot-per-inch ("dpi") laser printers, there is variation in both 30 the ability to place ink at a given location and the ability to keep ink within the spot dqsi ~ ' by that location. For example, printers have varying degrees of "dot gain" - the ~,..d.,..~ of most printers to place ink beyond the ~ ,d I ou ~-ri - ;- C of the pixel. Dot gain, and the ~,., ' ' - it causes, can be e~.
when the printing process . p' ,_d goes through multiple steps. If, for example, the printing process involves ~,-vdu.iing film from a print, a plate from film, and copies from the plate, hl~,~sing a nounts of dot 35 gain can occur in each step. A spot is pl~f.,.dbl~ allowed to be defined to be smaller than its cell (i.e., the space that is . . ~ ~ to contain the spot) simply to prevent spots from spilling over to adjacent cells.
Even with perfect printing, however, it would be pc kull to allow smaller spots than cells, because of a second phl Scanners ~ h --~ ~t~ lly "leak" dark ;~lt ~ ,s from one pixel to a directly adjacent pixel. That is, if a pixel is directly over a dark region on the printed s~hstrA~P. and an adjacent pixel s SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 is not, the intensity of the adjacent pixel is ~ tU~tl~_e;l to a darker value. When spots . ' - 'y fill in their cells, the cells must be made larger to compensate for this tendency of scanners. If they are not made larger, the nrighborin~ cell when blank may not differ enough in intensity from the dark cell to be ted as blank. Making it possible to fiv ~ spots to oe smaller than cells generally allows cells 5 to be smaller while . r ~ Ling correct (l;~ between dark and white cells.Of course, it is possible in principle that a given printer (or a like device) may ~ h ~ y print smaller spots than defined, or a given scanner (or a like device) may "leak" bright ---in which case it would be useful to define spots to be marginally larger than the cells they occupy (or, ~LC.~ , to print spots in reverse video.) Between types of scanners or types of printers, such as between a 360 dpi inkjet printer and a 600 dpi laser, the degree of v - expands g ~ l~u Laser printers have a greater p.~;;.lO" in the F ~ of ink, and 600 dpi printers place ink more ~ than a 360 dpi printer. The i.l~_.~on provides a method critical to ~ ';o~ of ink F'a based on these ~, The ability to vary the dilr Pn~ - of spots and cells in both ~ - ' and vertical lil~ - also 15 serves to the density of r ~..aLion. For example, with a 200 dpi thermal fax printer, and a 400 dpi scanner, the i,.~_ntiG.. can encode and decode a panern with cells of lx2 pixels . ~ spots of lx2 pixels, thus E - - " Ig over l00 kilobytes of data on a single page. However, a 400 dpi scanner cannot reliably decode a pattern with spots of lxl pixels printed at 200dpi. Since the next step up from lxl is lx2 (or, e~ulv~ v, 2xl), the most compact ~ li is ~ o the lx2 cells. If the t ' - 'cO~ could 20 allow for only square cells, the next step up would be 2x2 cells, which would be only hal~f as compact.
A powerful use of the i,.~ . beyond its ability to - and store ' ~
(docuunents, software, graphics, etc.), is as an enabling l ~ ' ~c ~ ~O~ for other i ' ~ ' v One of the great limiting factors in ~ ~ most ç ~ to fully exploit their PCs is that the PC p~ c simply too many distinct r... ~iO~ C that must be learned. This is indeed a problem that promises to get only worse 25 as the PC itself develops greater ~ c Even today, a PC user may have fax and data s-software on the user's PC, and access to the Internet, and the ability to use the PC as a ~ ph ~e, and many other r ~ '-- Yet it is a rare user who will know how to utilize all of these r ' ~ iPC The present hl~ ioll can be used to encode on paper an arbitrarily ~ r ~ batch file, script file, ~M~
file, or o ' '~ file that can ~,Lf~ navigate the user through all the: . ' - involved in each 30 function the PC can perform. By a simple scan of a datatile, for instance --as easy as running a copier -- all such r " ~ ~ can be invoked. A datatile can contain both the identity of the r~lir~~inn to be invoked --e.g., data ~, - fax Internet access -- and the sequence of actions and data that that function requires--e.g., the phone number that must be dialed, the account number of the user, the p~t .. Jld that must be entered, the p~ li.,ulal address on the Internet sought, and/or a flag for the pa~ Ii.,.llal 35 function that should be ~ fi~ ' when access is granted. In effect, the datatile enables paper to become the user r h~l~u~;ling the user as to the r ' '~ that will be p ~ f~ - .- ~1 -- e.g., a bill will be p~ud over the Internet, or a fax back will be initiated. The scan becomes the single thing that the user must learn to do:
all other r~ C can be p - r~ Iy. This spares the l ~p~ c~ted user the perhaps SUBSTITUTE SHEET (RULE 26) WO 97132262 ~CT/US97103330 o . _. .. heln~ task of learning how to invoke these fi ~ ;on 5~ and saves the sopl~ti-,Oted user from the tedium of entering the point clicks and detailed ~ any of these fi~nctinnc demand.
Several features of the i,.~ - - 's methods of encoding and drc~ine make practical for the first time the enabling of many further, ~ ."g, 1~ logi~ The ability to ~ increase density of 5 data allows far more ~,~ p' ~.~ s~ t u~lio..s to be placed in any given amount of space. The ability to aeco.. h-late a wide audience of printers and scanners allows access to the greatest number of potential users. The ability to vary the shape, ~ s, and location of the encoded digital data on the substrate allows the greatest n~bili~ in ~ ~~~~ 'Ig the digital data I lgc;,i,o other ii~fu~ (such as text or graphics) on the Further objects and a~ ~ of the ill~. will become apparent from a cu~ -v~;o of the dlo~ ;.7 and ensuing d~ ript Brief De~. p~ of the D, ~. ~ g~

The present hl~,.li.Jn will be ~--~A- ~ùod more fully from the detailed ,Af_ 1 ;P1;-~A given below and from the P : . ~i.,g drawings of the preferred ~ t- ' of the in~. - - which, however, should not be taken to limit the i~ to the specific c ~1~1;,....~t~, but are for ~ and ..~lA~ g only.

FIG.l is a block diagram df ~- ~ih;.~g the overall process for ~ ...;lli.,g digital data pursuant to one 2û ; ~c~
FIG.2 is a block diagram df ,. . ih;ng the method of encoding digital data onto a ' ~ a.,cc,. Iing to the ,f~...~ ( ~' 1~l;"" ~l FIG.3 is an enlarged portion of a digitally encoded substrate ill' ~ ne how the method ~f P''~ &
converts a series of digital data values into a pattern.
25 FIG.4 is an enlarged portion of a digitally encoded substrate ill.. ~ line an ~.. ~i~l;.. - ~ of the method of e ~ccrl;~g where markers are light areas inside dark bars.
FIG.5 is a dialog box for f ~ e shapes for spots and cells.
FIG.6 is a dialog box for d~,t~,. ng how cell shapes fit together and the sçqn~nr~ in which cells are created and each bit in the series of digital data values encoded.
30 FIG.7 is a block diagrarn d~ 71~ g one impler of the process for selecting format p~
FIG.8is an enlarged digitally encoded substrate produced by the method of ~ e where the ' in this instance, is paper encoded with the pla:: of ink.
FIG.9ill ~.esasubstrateproducedbyafurther~ r~ ofthei,.~c.~onin which bothrnachine readable encoded digital data and human readable text and graphics is placed on the ~ ' l ~l 35 FIG.lOill~lctl~tes a substrate produced by an ( " t~l;. ~ of the i"~ llion in which parts of a datatile are placed in n~ ig - regions of the substrate instead of being placed as a whole in one region of the FIG.11 ill - - a digitally encoded substrate ~o ~ e multiple datatiles, each of which has been enlarged for i~ ctrrti~n purposes.

SUBSTITUTE SHE~:T (~U~ E 26) W 0 97t32262 PCTtUS97tO3330 FIG.12ill a digitally encoded substrate ~c ~ multiple datatiles, shown at their actual sizes.
-FIG.13 is an enlarged view of a portion of a digitally encoded substrate ill : ~, an i bc ' in which each cell contains one bit of digital data e.~l,r, i,s~i by spots with dfflerent ' where the dil'f."~ ~ in d~ is a d~lf~,.en~,c in spot size.
5 FIG.14 is an enlarged digitally encoded substrate 1~ by a further .. .1~;~ ~ of the i,,~ in which each cell l~ a plulality of bits where spots of different sizes and colors express different logical states.
FIG.15 is an enlarged view of a portion of a digitally encoded substrate il~ g an X ' ~ of the method of e ~coAii~g in which one spot size and two cell sizes are defined.
10 FIG.16 is a block diagram des~ g the method of decoding for decoding digital data ~ ~ on a digitally encoded s ~ d~)ldlng to the preferred; ' - ' FIG.17 is a block diagram dc s -~ ib;~e the decoding process for deriving a series of digital data values from an image of a digitally encoded b~
FIG.18 is a block diagram d~, ~ il.;l~E the recovery process for deriving a series of digital data values from 15 the image of that portion of a digitally encoded substrate that lies between markers.
FIG.19 is an enlarged view of a portion of a digitally encoded substrate ill~ one ~ bc ' of the recovery process used to recover digital data.
FIG.20is a block diagram ill ' ,, a further ~ L " of the method of encoding in which the digital data is b, d to c.l~ ion prior to enr~ine 20 FIG.-21 is a block diagram illl~ctri~tine the addition of dc~ ,~ioll to the method of decoding where the method of "~ e included e..~ ion prior to ~ ~ec~ e FIG.22 is a block diagram ~ e a method of ~ g digital data.
FIG.23is a block diagram d~ -~ ~ il .; ..,~ a method of I ~ E digital data il,~ olvil.g - ' use of the digital data t. -~itted on the 25 FIG.24is a block diagram d~ c~ a further embodiment of a method of ~ e digital data, of a digitally encoded ' that method being by facsimile i - -FIG.25ill - - a further ' --' of the i,.~ ~ in which both machine readable encoded digital data and human readable text and graphics are placed on the substrate and in which the encoded digital data is designed to cau~ a ~ to ,~,~..ud~c on the ~ display the human readable text and graphics 30 placed on the substrate as well as allow context sensitive ..-~ -I;nll with the ~

Detailed De~ - ofthe ~.~r~...d F hc The ~ f~ .d L~ 1 operates on a personal Cul~ el having an 80386 model ~ JIu~,essu 35 or higher, at least 4 MB RAM, using the Wi..du..~ o~ system available from Microsoft CO.~ .l.ùn of E2f ~ d, W~ nn and available hard disk space of at least lOMB. The preferred e~
supports inkjet and laser printers, grayscale flatbed, hqn~hPI~ and sheetfed scanners, and thermal, inkjet, and laser fax r~~ ' ~ ~ Of course, one skilled in the art will ~~.,u~;...~., that the method and system of the present il.~"P~oll can be . ' ~r' on any c~ system using any a~",.ul - o~-; ';~e system.

SU~a ~ ITE SHE}T (RULE 26) W O 97/32262 PCTrUS97/03330 FIG.I ill ' ~ the overall process of llr~ g digital data, acco.L.I~ to one ~ of the i..~. - n, it being ~ o~l that the details of the i.,~. : s - itself are d~ il,A below. The data source ç ~ . i~s digital data. The source, pl~ dbly being ,_ files stored on a personal .~ ,ut~ ~'s fixed disk, may also be from a floppy drive, visual images input by a scanner, digital data input by a scanner, files 5 stored in memory, as might be the case, for example, of a word IJIO~,C~aillg ~ ~ input through a keyboard, or any other source capable of plu~lu.,ill~ digital data. The program encodes this digital data on a '~ step 101, p.vdu.,i.lg a substrate with the digitally encoded data. The program then places the digitally encoded substrate in the hands of the ultimate user of the digital data, step 102. The ultimate user scans and decodes the digitally encoded a~all. e, step 103, which results in the n,~,ull~llu~,lion of the original 10 c ~ files or other digital data. The overall result of the process d~ d in FIG.l is the i or storage of digital data, with a substrate such as paper being the medium for that storage or i - -Each of these steps will now be df ~ il~ in greater detail.

ENCODING
FIG. 2 ill the method of encoding of the preferred ~ of the i.,~ tion. Selectionstep 201 requires selection of various format ~ : values. The I ~: include the height and width in printer pixels of each printed data spot, the height and width in printer pixels of each cell, the height and width in printer pixels of the markers, and Marker to Spot, the distance in printer pixels between markers and the data spots. Markers, the function of which is d~ I more fully below as part of the decoding 20 process, are ~ Cf~ ed in the preferred e ~1~1; - - ~1 that allow for more precise fh ~ of the oenter of rows and columns of data spots. The person encoding data may also vary the number of cells between markers. The Spots per Segment r~ e ~ ~ r the number of cells (and thereby the - number of possible spots) located ~ ~Iy between columns of markers while Rows Per Marker ~ : ~ ' ' ' the number of cells located vertically between markers. Hence, the preferred c 25 allows the person ~ .~,u l;,~g data complete flexibility in ~ g spots, cells and markers.
The preferred; ~c ' contains further I ~ allowing flexibility in the f~ t~ g Of d -~ u-.~ and allowing the person encoding data to indicate the type of printer to be used. A fl ~t ~ f~ of the i~ n is a ~.lbviv of a datatile and a datatile is an overall pattern of digital data complete with all components needed by the method of ~Prot1ing A d '~ Se-ll ~ the smallest ar.~~~-~-~ irTI of data 30 cells which, when decoded, can leco...,~u~;l a stream of digital data without errors, by ~ , ' , ing error co..~clivn. That is, a stream of data of a oertain length is first i ~ ~ d into a sequence of ~ - ' .. Jld ~
with I~ for error cvll~ L The bits composing this sequenoe of cod~ o~ds may, in ~ , be disL-i~ ~ ' a..~ f .~ in a ~ -3e~ r but they must all, by convention, be located so...~ h~,.e within one f~ f ~ . The original stream can be .eco..J~ only after the entire .l~t~ lO r has been .. -' The person P ~ data may establish the p~ e, Data SP~ a measure of the number of data ~.... .......t~C located across each f~ . A data segment is a row of cells located between columns of markers with the number of cells in the row dov~ by the SPOB per Segment parameter. Hence, the r~ - Data Se~ . varies the number of columns of markers within a ~ c~ " . The person --~rl;~g data may also establish the number of D~ A ~ Across and the number of D/~if ~ ~0~ S Down the SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 datatile. In the ~ f~ " t, the person encoding data must e,~lh,illy override the n,~
Down I , that value being otl,~ lly.
The Printer Type p ~ t~- does not directly ~ the rV-. ~lii.e process in the ~.~,f~ ;d c-- ~ and, in that sense, may be ~ ~,d sc ' g other than a format p, . The Printer 5 Type p= ~ - ~ allows the person encoding data to l j"f." ". ~;~n ~l~c ~ .l~;ne the printing process used to print the datatile. This ~( - is ~ f~,.dbly ~ ly by ~~,f~.~ e to the printer .,"tL~ selected in the . . '~ o~ system. but may be overridden by the user.
The Ink Colors and Ink Types l are set in the preferred L l- ' to black and normal, l" but may be varied in other ~ L - - using diflferent colors or types of ink.
A cell l~ a part of the area covered by a datatile. A cell should be ~ -~i as being a space that should contain no more than one spot and a cell should be ~ t.~od as ordinarily being a space large enough to contain an entire spot. In the p.~,f~ ,d; ' ~ ' t, defining a cell size d~,t,... ines the size of the space that may contain no more than one spot, while defining a spot size d~ ;. c the size of any spot in the cell. It should be ~ ' ~lood that a cell of the preferred e ~ ~ is a co~r~ pn ~l Co..~
15 with no physical ...~i;r. ~ other than the space it occupies. The preferred e ~1~1;.. ~~l applies the concepts of cell and spot by d- ---- - lg an array of pixels, with ~l;..,..i- :O~c equal to the cell size, and d~ t~ 'e within that array a subarray with d - - equal to the spot size. If a spot is called for, the ~"~,f~"" d e ~ prints dots (i.e., the p~ of ink at a given printer pixel location) at each of the pixels within the subarray. The preferred ~ does not print dots at any n - ~ pixels in the 20 array ~ ,xin~ g the cell. Hence, a cell differs physically from a spot -' in the cell only by virtue of pixels that the printer skips over and only then if the cell has ~ . larger than the spot.

Thus, if a cell is defined with ' M pixels wide by N pixels high, and a spot is defined with - X pixels wide by Y pixels high, X should ordinarily be smaller than, or equal to M and Y should 25 ordinarily be smaller than, or equal to N. It should be ...-~ ~t that M, N, X, and Y are labels for where M is intended to express the width of a cell, N the height of a cell, X the width of a spot and Y the height of a spot. Of course, because they are labels, M, N, X, and Y could be replaced by any other labels, or the ull~.lying ~ ' - could be ~ cd without labels, to ~ ~plich the same effect.

If at least one of the ~' X or Y is defined as being less than the C(JI~ . o ';ne M or N, the spot will be smaller than its co..~ r ~' g cell. If the ~;" ~ :0 ~r X and Y are t fined with different values, the spot will not be square. If the ~l;".~ s M and N are defined with dif~e. ent values, the cell will not be square. The~ poccibili~i~s allow greater flexibility to acc~, -- - ~l -~.e pa~lh,uldl printers and _ In step 202 of the preferred P -~l~l;.--- ~ the person encoding data would select the C~ r ' file or files to be printed as spots on paper. The . . files would p.~f.,.dl)l~ reside on the e - ~ e -- . 's hard disk. In other ~,. .h~1;" ,..-c the digital data to encode would come from other sources, such sources being limited only by the requisite ability to produce digital data. For example, digital data can be a stream SUBSTITUTE SHEET (RULE 26) of data that comes from an on-line source, such as might exist on the Internet, and be directly r ~ A by the method of P .~ o~ g without the ~ - ' step of saving data from that stream of data as a file on the of the person ~ ~~rv l;~g data.

The digital data from step 202 then passes cv.. ~ "o.,c~ .g 203, if any~ It should be noted that in the present i.. ~ on, . ~ ,.on may or may not be ~ . r .. --~A If CO.~ is p . f..... ..A
various forms may be utilized, i..~l...l;.~C both lossy and lossless CO~ t~ C on whether the co..llJ~ cd data must be recreated in the exact form as the original. In the preferred c l~l;~ the invention will decode the printed pattern to produce an error frce stream of data. This 10 allows co,..~,n - If ~k..:4..~s to be; . ', d that do not require ~,.,O~ u~.liv~ from sv,..~,..l~t COIll .
data of as much of the original ;~rO",~ as feasible. In the preferred e n~ ~ ' t, standard .~
into ZIP files is employed. In some j-~C-q--cPs~ the impact of . ~ ~ such as in.,l~l data density, is so minimal that co.,.~,~ is not ~.. ' A further ~ " allows a user to ci Once any desired co...l,.ess.on of the digital data has taken place (p.l ~ lg block 203), error co-,~,cLion encoding (p,vcc;.s-ng block 204) may be ~ ~ I Since the substrate is used (along with the target scanner) as a digital channel, the error co"~lion of the present h.~_nlio.. can be viewed as just another box wi~h digital input and digital output. Error .;o"~,un encoding ~ adding co"~Lon or 20 "parity" bits to the digital ~ - The method of error COIl~ ir f" I ~~ f)d; i~g can be any one of rnany methods known to those skilled in theory. The tf~hniqUe of error COI~ ~,lion: . ~ yed in the plef~ ,d e ~ " is a v' ~r ~.. ,nl and standard ti- 1- m ~ that derives from the IT.. -.:.. g distance theorem in ~ ~ theory. In the preferred ~ ' t, the coding tf ( h , ~ allows for the cv~ iOn of at least two bit errors in any given cod~..J,d. The precise amount of If l ~ is user or 25 system r~,l~ ' ~~ It is useful to allow for the correc~ion of at least two bit errors, since a given cst' ~ . Jld mighl be subject to more than one bit error even if its bits are Ji~l. bu~ ~ dll~ ,,' a ~ c~ to reduce the effects of localized defects. If only one bit error could be corrected, even a single case of a cod~.~.J,d with two bit errors in the entirety of a printed pattern would erf~li~_ly corrupt the entire pattern.

The ~ ,f~,.l.,d ~ .ly~ uses one method of error detection and CO".,~,liO.. (with user 5~1~ b'~
degrees of ,~ ) and one method of ~ . ~ In the preferred e ~ ' the degree ofredundancy selected is i .. r.. ~ conveyed in the ~ / .. In other L - ' other methods are used. Some of these further ~ allow the user to select the methods of error detection and co"~io.. and co""".,;,~iv.. from a variety of rr~i~ iliti.o~ In one ~ t, for example, the user can 35 choose, as a further format p~ , between lossy (e.g., MPEG) and lossless methods of co...p.~,s~.v.. In one such c.,.v. ' ~, the user can choose, also a further forrnat ~ , between various methods of error detection and ~,v"~i~lion, il.~h l~g one that requires perfect digital accuracy, one that allows up to a selected degree of errors, and one that requires perfect digital accuracv for some data but allows up to a SUBSTITUTE SHEET (RULE 26) selected degree of errors for other data. The methods of error d~ ni~n and ~,u,-~ and ~ , ~Da,oll of these further ~ ' are widely known to those skilled in the an.

It should be ~ that cu~ alon can occur before any of the steps in FIG. 2. If so desired, 5 the user can choose to employ any available: . ~ h . h.~ to conven one: . file or data stream into a co...~ ,d . . file. For example, a stream of audio from a ~ r~ ~ ~ C/!~ t~ to a computer's sound card can be stored as an Adaptive Di~ I Pulse Code M~YI .1 fi ~ ("ADPCM"?
compressed file. This already ~_O~yl~ d file can then be selected in step 2û2. In a funher ~ the user can choose whether to skip step 203 which would employ a second ~ process.
Note that there is an ad al~t~6_ to using information about the Ço, 3 p= . ~ to set the for error co"~tion. The ~1, - of cod~..J,J bits on the printed page can be op~i...;,~
using this ' to reduce certain common types of defects hlLIudU~ in printing, faxing, and g In the present f l~bt~ , the bits are ~ :l ' within a A~ In this manner, error 15 coll~,.Lo.. results where the plain paper starts with defects, sustains da nage or the printing or scanning p,~esses udu-,e defects. The preferred _ 'x - allows the user to vary the degree of error COIl~,~liG~l to reflect the quality of the target scanner or other ci,.,~ Gd or ~ ~~'r ' ~ by the user. For . ' e, a hand held scanner would typically require greater error co"~ion than a flatbed scanner of the same Ir,ol~r;~
Once the digital data has ~d,.b~".c compression pluce~aillg 203, if any, and error COIl~liOll pr~i~aing 204, the digital data goes through r... ~ e process 205. I;O~ ~ process 205 is done in a~o, ' with all values selected for format p --i..-- h ~.~ F -- ~ e process 205 of the l~e~ d ; 'x first creates a l~ h - ~ k -- 2 dark bars which facilitate ~ .-;n~ the location and o~ ;nl.
25 of the datatile as ~;c~ cl more fully below in regard to the method of deco~line Fo- --- ~ e process 205 then creates a l--- ' ~r~to~ . The, - ~ 1 indicates the format p=-, l~ ~ used in the method of e ~I;,.g F -, ... ~li. ~ process 205 is then l~-r '~ for ~ g a digital bit sequence into a pattern which is readable by the printer and from which printed pixels can be l..uduced such that the printed panern can be - _ .t 1~, scanned. In the preferred, ~ ' t, the r~ e process produces a bitmap file which is 30 then printed by any printer capable of printing bitmap files. The ~ li"g process begins by eA~
ORing the bit ~ . ~ with a known random se~uence to create a l~,la6~ uniform ~lq~ re in the pattern on the printed page. The uniform a~ c created can render a more aF~ ~ - '1y pleasing effect for the printed pattern, which can be hll~ li if the pattern is ~ ~ with certain human readable material, such as an ad~ is~ . The digital data is then r~ d into black and white pixels, in which a 35 "0" bit is stored as a blank or a white space and a "1" is stored as a black spot with the ~' ~ ~~ in printer pixels as plG~' ~,y ~rrifit~t~

In other e ~ the digital data is ~t ' into different colors. Varying levels of gray scale is here regarded as one form of color ru. ~ E In one such e ~- ' t, gray scale r - ~ e is SUBSTITUTE SHEET (RULE 26) r : , ' ' ~ ' through binary printing by printing a known number of pixels (i.e., the number of pixels needed to achieve a given level of gray scale) at arbitrary locations within the subarray of pixels that . ~r - a spot.

~ 5 In further e- ,1~1;,, ~1~, the digital data is r.. ~-r ~ into differing levels of electric charge, as in the use of b~ ~ capable of holding electrical charges, differing levels of ~ as in the use, for example, of . ~ ;r inks, and diffe,ring levels of r . ' '~ (e.g., infrared) ~eil~" livil~, as in the use of inks with non-visible light qualities, it being .. ~ -~i that the i.,~ is not limited to these p~ types of r ~or ~-Data r.,. .,~ through step 205 is output onto a ~ ~ step 206. In a preferred e bc " t~
the step of o ~ e step 206, includes: g the r... ,.. ~~r~ d image from a personal ~ . to an off-the-shelf laser printer, pll,f~,.dl~l~ a laser printer with a high ~~ ' In other e..lb,- ' ~ the printer is an inkjet, dot , or LED printer, or any other printer capable of ?.~ .g graphic input from a 15 computer. Further; b~ ~ m~ntc involve o ~tl u~ e digital data on - ~ through means other than just ~ )r- ~ ~ data from a personal c . ~,~ to a ~ - ' printer. In one c- ~ a digitaily encoded substrate p.u lu~cd, for example, by a laser printe m .~ r. t' d to a personal _~ . , is p~ d through ,.ally available p~: . In a further ~ L " t, a digitally encoded substrate is printed in colors, such as light blue, by offset or other printing p.v~i., which such colors can be scanned 20 by a color scanner but not crf~li~ ph ~ ~ with most pkJ~ , thus p.~ u~
p~ ,i.,g. In a further ~ l s " ~, printing presses produce the digitally encoded S'~ ', either directly from the f~.. .- ~r.~.i image or h~L~ ,lly by copying a digitally encoded l In a yet further P...,h~;..,...~ a rubber stamp or other solid material, produced in the likeness of a datatile, is used to place ink or other ' ~ - e on paper.
The paper used for printing can be any paper capable of Dccf.~ and holding the r~ -rr ~ ~ of ink ,, for example, pu ~ud~. business reply cards, business cards, r.~ ,.h~L magazine paper, self-adhesive paper notes, labels, forms, c..~ .cs, ~,a.dl~ l, and checks. In the case of business cards, the digital ' ~ ~ ~r could include a database or ~litionC to a database ~ lg of a person's name, 30 i ' . '~ ~ number, address, e-mail address, picture, audio file (e.g., a sound clip of the person speaking his or her name) and other ~.i i..r.~ io~ together with computer hl~llL 'i ~ ~ that initiate a l~'~phc - call to the included l ' . hc - number.

In still further ~ ,.~1~1;----. ~ the ~ g of digital data on a substrate involves p~u~ other 35 than printing ink on paper and c ~ step 206 should be ~ od to include any means for o- tl~un; ~ e digital data onto a $1~ Str ltf In one, -.1~l;... .l the u ~ l i..g involves placing the encoded digital data on paper by c~ the ~ D~ of the paper such as occurs when a f~ imil~ machine prints using thermal fax paper or when the paper is burned (through the use of lasers or ulh~ ,..se) or when holes are p~udu~,~d in the paper. In one e-~ ho~l;..... ~ reflective $~ are placed on such non-paper ' as SIJ~ JTE SHEET (RULE 26) WO 97/32262 I'CT/US97tO3330 cloth (e.g., shirts, towels, bags), ceramics (e.g., mugs, glasses, and plates), and buttons. In one ~
the oll~rlt~ine of digital data occurs through phc:~o p~ p~ e~es that place the digital data on a F' t~" p~ print or slide. In another ' - ' t, the ~1 ~, g occurs by ~JI~u~...g plastic objects (e.g., plastic labels, and cards) C~ e a datatile. In a further ~ ~boA;~ the o,~ l; lg occurs by s~ ly 5 ..-~ g a substrate capable of retaining such a charge. In a still further; ~ ' ~ t, the outpuning occurs through p~u-,e..~s that act upon a substrate of ~ 0 ' agents capable of being dilI~ .~ ' in discrete locations in at least two separate states. For example, the hide or skin of animals (or their internal organs) and the surface of plant maner can be marked, such as with tattoos or L ' C with datatiles. In a yet further c ~ . the o~ g occurs not through the pl.3 ~ of ~ ~ on a substrate but by 10 the removal of svb~ from a substrate as occurs through, for example, etching of metals, plastics or other ' s, or the creation of pits in a compact disk. It should be ~ ' '.( ~ d that printing step 206 is not limited to the ~ -I~fl;- " d ~ cd above, but could include any means of ~ ~, " digital data on a substrate of any type capable of being di~ in at least two different states in each of a plurality of locations on such ' ~ t~
FIG. 3 is an enlarged view of a portion of a digitally encoded 5~hct-~te FIG. 3 ill ~.~ how the method of encoding takes a series of digital data values (i.e., bit values) and, using those format ~
to spots, cells, markers, and rows, produces a pattern. The format p .-,. - ~ ~ values used for Ill~lu,illg the digitally encoded substrate of FIG. 3 are: Spot Height = 3, Spot Width = 3, Cell Height = 4, 20 Cell Width = 4, Marker Height = 3, Marker Width = 4, Marker to Spot = 6, Spots per Segment = 7, and Rows per Marker = 3. ~he series of bit values for the first row of cells are: 1, O, 1, 1, 1, O, a~d 0.

FIG. 3 reflects the bit values and format parameters selected, as illustrated in markers 301, dist.ance from the first marker to the first spot 302, spot 303, and cells 304, 305, 306, 307, and 308. Each of the 25 markers 301 is 4 pixels wide by 3 pixels high, . with a Marker Width value of 4 and a Marker Height value of 3. Cf with a Rows per Marker value of 3, there are three rows of cells for each marker, the first row being ' ~ to the right of the first marker. Dist.ance from the first marker to the first spot 302 is 6 pixels, . ~ with a Marker to Spot value of 6. Each spot~ such as spot 303, is 3 pixels high by 3 pixels wide,, with a Spot Height value of 3 and a Spot Width value of 3. Each celL
30 such as cell 304, is 4 pixels high by 4 pixels wide, with a Cell Height value of 4 and a Cell Width value of 4. The e ~ ~' of the method of e~..g utilized to produce the digitally encoded substrate of FIG 3 reflecls each bit in the series of bit values by eA~ g one bit in each cell through two different logical states, where one state is l-,pl.,~ t~ by the presence of a spot and the other logical state is r~ ~ ' by the absence of a spot from the cell. In this instance, a spot ..,~,., a 1 and a blank cell 35 ~~ t~ a 0. A~co.di..61y~ cells 304, 305, 306, 307, and 308 are spotted, blank, spotted, spotted, spotted, blank and blank, reflecting the series of bit values 1, O, 1, 1, 1, O, and 0. Similarly, ~he second row reflects the series of bit values 1, 1, O, O, O, O, and 0, the third row reflects the series of bit values 0, O, 1, 1, O, O, and 0, and the fourth row reflects the series of bit values 0, 1, O, O, O, 1, and 1.

SU~ JTE SHEET (RULE 26) W O 97132262 PCT~US97103330 In the ~ ,f~ ,d f ~ of the method of c - " g a marker consists of a dark ~ c, .1 "
array of pixels. Series of markers are located in columns, with a number of white pixels vertically ~ g one marker from the next marker down the column, such number of pixels being a function of the values for format r~ a Cell Height, Rows per Marker and Marker Height. Similarly, each marker is hr~ lly ~ 5 ! ~ _~,f~ from the nearest possible spots by a number of white pixels, such number being d-tc ~ ~ by the value for the format p=~ Marker to Spot. FIG. 3 ill _ markers acco- li~ to this preferred e L-' It is well ,~co~"-; d in the area of the ill.~ - - that it is hll~li to have a "clb- Li..g" - ' 10 to allow a precise mapping from image pixel locations to printed panern lor~ionc The present i~ tion allows the clocking ~ ' ~ which always demands some overhead in terms of space, to be co.~S~...~ so that it can ~ ~;- ;,f the density of ~ ' on the printed s ' The clocking ~- N~ - assumes the most compact form that allows it to represent spatial ' ~i( periodiic dark ' I.,~ .g white, or periodic white hlt~,..u~ g dark The arca occupied by this - ' is fully ~ both the 15 f e~, ~ with which it occurs, and the size of each o.,~, u-~ ,e can be fully m~ifie~ Mo..,o.~., the clocking ~ "wraps around" so that the clocking region provides spatial i .-r,, ~ ~ ~ ;f~'' for data cells on both sides It is , kull that the amount of clocking ~ on the substrate be 5v ~' ' If there is too 20 much, then density is lost due to the space occupied by the clocLing .~erh~ ;; ~- itself. If there is not enough, then spatial ~ r, -- ",: s creep in, and this brings about either erratic behavior, or loss in density if the spots must be made larger to ~ - ' the i..~ s Su...~ h~ between there is an optimum amount of rl~tr~ing, and this amount may vary ~ , from one ~ b; .. ~ inl~ of p~ t~/a~ u~r to another.

The clocking is p . r.. ~ by markers, currently . 1~ ~ as dark .~ ,s on a white vertical column. These markers capture both hO-i~ol,lal and vertical location. The h ' i.~ is carried 'ly by counting the number of marker columns over, and "i, l~ing that count by a ~
} ~ ' I ~' . '---m~ ~ between columns; the vertical r ' is carried by counting the number of markers down, and Illullipl~illg that count by a ~~ ' '~ vertical d;~ between markers.
In p~ , 'e the m--arkers could be arranged in strips that run h~ ~Iy across the direction of the scan. Yet the dia~l - in a scanned image are almost always in the vertical ~ . since this is e i by : ' ~ c ' factors of paper moving down a document feeder, or of a scan head moving down.
It is more i.l.~. k~ul therefore to keep track of the ~ ~Uid~ion5 along the vertical ~1; .- -- - :o.- which vertical 35 strips of markers more ,,rr~li~ 1~ do. (Of course it would be also possible in the current invention to have both h- .~ i "...1~1 and vertical strips, if ci~ ~ dialullions were h~l.uduced in both di,~.,liu.~.) SUBSTITUTE SHEET (RULE 26) Rather than have the markers the same size and ~ as the spots -- which a number of 1o" do -- it is far better to make their size and ~rio~lirity d~r ~ t, since the role they play is quite different.

SThe p. . ' that must guide the ' and p~ y of the markers is that they must be }aid down by the printing process so that they rare1y are absent, are clearly i~ - ' 'e in the scan, and have reliable physical location. This is a general ~ on any clocking ' in any - ' ~Or that encodes digital infir~ on a substrate and decodes it by means of a scan. When the amount of overhead that the clocking ' in~s is d~,~, by d~l. e the clocking features in 10 size and/or r,~u~ ,y, the amount of data that can be affected by each , r " (or z~ ,gdlion of im~ ~ - -) in the printing or scanning of the clocking features increases. It is i,.-~, therefore to be able to configure the clocking ~ ' so as to defects in the printing or scanning of the clocking features. The optimal confi~ depends on the i . ~, ~ f - I ;- -c peculiar to the pa~ la. printer and scanner.
lS
CO~~ I ' I ~ _ ~ r ~ can be tolerated in data spots, since any h.di~riJudl defect can . . ~ for by error cull~ Yet a single spatial ;.~ y arising from a marker can affect any number of rows of spots -- which may in turn e~ , ~,hcnd perhaps hundreds of spots, thereby ~o" U~til.g Iarge ;, - - of data. In general, these c~- imply that markers should be larger than spots, and better ,- - ~ from 20 other features, il~. I."l;,~g both spots and each other. The absence of this capability in other l ' - -'~gi~
limits their ability to achieve highest densities and relidlJilit~.

The concept of "wrap around" in the current i..~ on also plays a key role. It means that the same set of ~"- A~ that provides spatial r " about a grouping of data cells on one side also provides it 25 for a grouping on the other. Alternative i ~ 0C,if which divide data into . ' blocks demand not only a new, eLf~li~ ' ' t, set of E"-:A lJ~s~ for the nearby side of the n~ighhl ring block, but also a , ~, - -, 1 ;~~~~ of white space (and perhaps other ~ ,h ~ ~ ~ -- e.g., a thick bar), between the blocks so that the location of each block itself can be dl ~ .. ;.. '.1 The ~ overhead all of this ~u~,." can severely reducethedensityof;--rc,.... ~;ononthe ' ~.
Other ' - ' utilize markers other than ,~ 1 ?' arrays of dark spots set in a light l~,k~ ' In one such; '~ ' t, the markers consist of a grouping of dark pixels in n( ~ n" ' shapes such as circles, ellipses or triangles. In a further e ~l~l; ~ -, rnarkers consist of o~lu~Jh.g~, of light pixels against a dark background. FIG. 4 ill - this further; ' ~ " FIG. 4 contains an enlarged 35 view of a portion of a datatile that is identical to that ill ' in FIG 4 except for the markers. Each column of rnarkers 401 consists of a dark bar that ~.~f.,.dl,l~ extends the entire length of the column of markers 401 plus a few pixels on top and bottom. The number of aA~ pixels on top and bonom would p.~,f~.dlJI~ be between one and two times the value for the format p~ Marker Height. The bar would have a width that can ~ ,f~,.abl~ be varied by the person encoding data so that the user can optimize the SUBSTITUTE SHEET (RULE 26 width for the particular printers and scanners il ~ ~ or such other til- the user might . Thus, this e~ would pl~,f.,.dbl~ have a further format p=- ~ , Marker Bar Width.
Similar to the datatile in FIG. 3, the h~ ~l distance from each marker to the nearest edges of possible spots is 6 pixels (i.e., the value for Marker to Spot equals 6). The dark bar for each column of markers 401 is ~ 5 8 pixels wide, -i - with a value of 8 for Marker Bar Width. Thus, the distance from the dark bar to the nearest edges of possible spots is 4 pixels. Within each dark bar are the markers themselves - arrays of white pixels that are 4 pixels wide and 3 pixels high.

It is hll~KIi for the l ~' -'tv~ to come to terms with the basic fact that the defined d - - of 10 a spot rnay be very different from the actual ~~ of the spot produced on a substrate by a printer. The 1,.. of defined d of a spot usually well exceeds the true 1"' L of a printer. When pushed close to their theo.~,ticdl " ' printers rarely can produce on a substrate a dark region filled in exactly to the bounds defined, and typically exceed and/or fall short of these bounds. One effect of this is that the notion of "shape" of a spot largely breaks down. For example, at these 1~ . 11 5, the defined , ~ -15 (or ~ A - ;~y) of a spot is in great measure lost, and the spot becomes e~,li._l~ a roughly circular (or oval) "blob." It is likewise true that scanners when pushed close to their 1~ ' cannot d;~ the shapes of even perfectly printed shapes on the ' and erf~~ reduce all small shapes to "blobs"
which vary only in darkness and, to a degree, size. From the ~l ~ lp..;.~ of ability to encode data, the real issue bcco ~ . in a given space, how many such "blobs" can be s, ~ , printed so that they can be 20 Aicti~ ' by a scaMer? For this reason, even ff the defined shapes of these IlUt,l~ . ' . entities on the printed page differ from one case to another, it is, for the purposes of the i ' . lc,,~, c~ the same In the preferred e L ~ ~ -nt, cells and spots are n v ' or eCc~ntiqlly le~ qr with the cells 25 placed in } - ' rows and vertical columns in the datatile. In another e 1: d t, cells are rulll~lll;d as diagonal spaces and series of cells are r,.. ~ d V ~ into the datatile. In one . 1- ' spots are likewise f~ as - - ~ - v ' spots. 1;.,.... -~...g spots as - eel~ ~,Aq- shapes may be p~i,_ul~l~
a~. ~a3~ where placing dots in all pixels of a 1~ spot results in too much ink ~.eaLug beyond the spot's ~ ~-~l limits (i.e., dot gain~ while placing dots at less than all pixels (as might be ? - ,' '-~
30 with a ~ qr spot shape) reduces the encl~ ' over a rect~n~llq.~ spot's borders while stillgiving good A~finition within the borders.

In one ~ L ~ ' ~, no".~. v ' cells and spots are chosen through a dialog box that includes an array of squares, each square ~ ,ll;~nting a pixel. The person encoding data selects those squares in the 35 array that l~ a cell and within those squares, the squares that 1~ a spot. Each of a plurality or all of the cells and spots in a datatile would have the shapes selected. FIG. 5 and FIG. 6 illustrate dialog boxes according to this ~ ~-.1~l;-. ~-~ FIG. 5 ill ~ a dialog box for r~l l.I;cl~ g the shapes for a spot and a cell. FIG. 6 ill a dialog box for ~ how nolu.~ r cell shapes fit together, and the s~ ... e in which those cells are created and each bit in the series of digital data values is encoded.

SU~ 111 UTE SHEET (RUI E 26) W O 97/32262 PCTrUS97/03330 In FIG. 5, the user has 7 options, 5 ~ ' by radio buttons and 2 by icons. Matrix 501 _sienls the printer pixels available for ~ C spots and cells, where each square in the matrix n,~ t~ one printer pixel. The user ~lects Add to Spot. When this button is selected, the user moves the 5 mouse cursor over desired squares in matrix 501 and clicks those squares. In FIG. 5, squares that have been selected as part of the spot are black. Pixel 502 ill ~r a square that is part of the spot. If the user desires to revise pixels selected for the spot, the user selects Delete from Spot, moving the mouse cursor over p~ ;uu~l~ selected squares and clicks, thereby ~ hlg those pixels from the spot (in an alt~,..~li~_ dialog box, there is no separate Delete from Spot and Delete from Cell radio buttons -- clearing previous ~ ;o ~c 10 is instead ~ r.,. .- 0 A. done by dicking a second time on p~ selected squares). The user also selects Add to Cell. When this button is selected, the user moves the mouse cursor over desired squares in matrix 501 and dicks those squares. In FIG. 5, squares that have been ~lected as part of the cell are those that either hatched or selected as part of a spot. Pixel 503 ill a square selected to be part of the cell but not part of the spot. All squares not selected as part of either the spot or the cell remain blank. Square 504 15 ill - a square that is neither part of the spot nor the cell. The user selects Change Matrix Size if the user desires to either increase or decrease the array of printer pixels available for selection as part of the spot and cell. When the user - . ' ~ the selection of spot and cell shapes, the user selects DOME or, if the user wishes to abort the selection process, the user selects CANCEL.

In FIG. 6, the user has 3 options in addition to DONE and CANCEL (DOME and CANCEL have ' 'e to the similarly named icons in FIG. 5). Matrix 601 depicts the cell shape chosen in the CONFIGURE SPOT/CELL SHAPE dialog box ill ' in FIG. 5. The COMFIGURE CELL
PLACEMENT dialog box ~ dbly pops up rullu..h~g . ' of selection in the CONFIGURESPOT/CELL SHAPE dialog box. The cell previously selected is ill ' as area 602 - i.e., the area not~5 ~ of squares. Matrix 603 ~~ b the printer pixels available for placing cells , where each square b one printer pixel. The user selects Add Another Square, moves the mouse cursor over area 602 C the cell shape, and leaving the mouse button clicked, moves (i.e., drags) an image of the cell shape to the desired location in matrix 603. I..a~ r ' ' It~ ~~ ~ are ignored by the s , in the dialog box, i~ e :!e - that ~li~ change the shape of cells by leaving unfilled squares in gaps 30 between cells of the chosen shape. The user selects Delete Cell to revise a previous selection (in an alte...aLi._ dialog box the Delete Cell radio button does not exist and instead, the user clicks a second time on a ~ ;uu~l~ placed cell).

The user then selects Set Sçq~nr-o, and moves the mouse cursor over cell shapes in matrix 603 in 35 the order desired, clicking on each cell shape as the cursor moves. The s . is ' ' in the dialog box by the ' in the cell shapes. The sequence selected d~ o c the order in which bits from the series of digital data values are encoded in the cell, ~J.r~c~lh.g in the order selected to the border of the ~l t~ O~ then moving to the next line in the A ~ .t.~l In matrix 603, the order selected is a line of cells .e from upper left to lower right. Cell shape 604 was selected as the first in the series followed by SUBSTITUTE SHEET (RULE 26) cell shapes 605,606, and 607. The method of c nCV~ g would encode cells in this sequence starting at the left border of the ~ r'A ~0~ moving down and to the right to the other border of the ~~ ~ . Once the lower border has been reached, the sequence goes back to the first cell of the next line, deplcted in matrix 603 as cell shape 608. This embodiment p,ef~,.d,l~ t~ a sequence of cells by default if none is - 5 selected by the user. One such default sequence would generally follow the ~.. _n~ of the preferred be " - - i.e., generally from left to right.

In the pl~l~ e l - ' the format ~ are selected through a combination of input, ~ selection and default values. FIG. 7 drccnhes this selection process as applied to each forrnat 10 parameter. The step of inr~ e 701, can: . a user ~ ~ ~ a value for a format parameter.
T, ine is p~ r ~ ~ using a keyboard, mouse, or other input device, to select values in a dialog box. After allowing adequate time for inputting but before the method of Cn~~ g C_ ~ r~ g the selection process ~ ~ ~ ~ whether a value has in fact been input, step 702. If a value has been input, the selection process sets the format p =~ - ti ~ equal to that value, step 703.
If a value has not been input, the selection process then tk te ~ ~ whether ~ .ia~
available bears on the selection of a format ~ value, step 704. For example, if the c ~l;uE process is being ~ ~ by a ~c_ r ~ , the ~ or ,~l;.-E system may have stored ;~ro~ in the printer driver conc~. ~ i E the default printer used by the . ~t . This i~ dlion could include the 20 printer's make, model, and ' - - Printer l~ 1~ can be ~ u' Iy useful in _ c selection of format F~ values. Another source of ;,-r " ", ~t~n can be ;--r~ input by the user other than valuesfortheformatp~ t~ h S Forexample,theusercaninputi~.r--~.- ';on~ e the types and l~ ~ of printer and intended scanners for a given datatile. While this infio, does not directly establish format F ~ values (other than the Printer Type ~ ~l which p,.,fe.dbl~ does not 25 directly i.~fh - - f the fi~ e process), the Ct clearly bears on the selection of these values. The correct setting for these p~ , can be c~ cA by c ~ with desired printers and s~"ners The results of these e~ are then captured in lookup tables for the ~v~ a that are stored in the software. Table I (included at the end of this Dc;..,l:r ), provides values for format I ~ for the most il..~ . ' ~ of off-the-shelf printers and scanners. In each case ~ in Table 1, Ink 30 Colors is black and Ink Types is normal.
If ~ is available, from ~ . source, that bears on the selection of a format p=-i;--- l value, then the selection process c~ the value c~-- with that i,~".~ion, step 705. Otherwise, the selection process sets the format I - equal to a pl~.,rll,fA default value, step 706. The preferred default values are intended to be reliable no matter what printer or scanner is used.
While the selection process of the preferred - ' - ' provides for user input as at least one rnanner of selecting format p= ~ other e- ~u.... l~ have other ways of selecting format p -,..~ a with no user input. One such; I selects format p --~ values as part of the process of d~ lopil.g: , code for the if ~Llu~ion5 to be executed by a . _ and attached printer. In acco,(ial,ce ~vith this ~ . format I values are selected for a pa.li.,lJla- printer or set of S U B STITU TE S H EET (R U LE 26) WO 97t32262 PCT/US97/03330 printers, where the values are ~,~f."dbl~ o~ 1 for the particular printer or printers. It is therefore possible to include the selected for nat ~ values as part of printer drivers - i.e., the set of _ , h.~u.;lio.~; directing a pcuLi.,ular printer to print and the manner in which to print. In other; ' - ' format ~ values are varied without user input by reference to ;~ available without user 5 input. In one such e 1 - t, the for nat F ~ values are selected by l~,f~n.~G to -~f J~ known about attached printers, possible scanners, or a ' of such factors.
FIG. 8 ill~ctr~oc a digitally encoded substrate as produced by a ~,~,f~"lGd e..~lx of the method of F ~-- fy~ g More p~ulicuLuly, the digitally encoded substrate ill ' in FIG. 8 consists of one datatile.
It should be ~ that the preferred f aL _ '' ' produces one or a plurality of datatiles der ~ ~ g on 10 the amount of digital data, the density of data produced by the ~lllldli..g process, the size of the substrate and user yl~f~"e for datatile size and quantity. The datatile in FIG. 8, enlarged for ill pllpOC~C, consists of three main ~ a I 'm~rk 801, a .. ~ or 802, and a main body of data 803.
In this embodiment, lAr.-~ 801 consists of two bars - i.e., two r~ ,, ' regions co--~entirely of pixels in the same state. The l ' ' 801 consists of two bars that are entirely black. One such~5 ,~ ,61e is ~ In~ d vertically while the other is f l'~''U ~' d 1~ ly. The basic purpose of these as further ~f ~ in the decoding process below, is twofold.
First, the l ,l~ provides h f ~ about the ~ of the pattern within the image, and in p~ui ' the ul i~nldlioll of the ~ . .. ~- ~r. ~ . The .. -- " ~ and the ~ I bar of the l~ - k are both much longer than they are high. Fuli- G, they are both designed to be printed at the sa ne 20 o - - - i.e., the ~ ' aspects of each should be printed perfectly h ~- i ~ -l The skew of the ' in the scanned image therefore gives a very good ap~ of the skew of the .. ~ t ~ .
Second, the l~ k provides ~ - about the scale of the pattern within the image, and the scale of the ..,. ~ A~ in palli~.uldn In the preferred c~ ,- ~ t, the ~ of the vertical bar and h( ' bar are ~"~di~ based on the sizes they asswne when printed on a 300 dpi laser and 25 configured for a 400 dpi scanner -- i.e., these settings are treated as the "base" case. In p ~ r, the vertical bar is printed with width of 6 printed pixels, and height of 32 printed pixels. The h- . i,....~l bar is printed with length of 64 pixels, and height of 16 pixels. These relative l"..~,Lons are observed no matter what the ~,~lutioll of a printer and scanner might be. If the pattern is to be scanned in by a 300 dpi scanner, and printed on a 300 dpi laser, then the nu nber of pixels is half again as much in each ~' ~ (i.e., 30 vertical bar 9 pixels wide by 48 pixels high, hf..1,. . -~ ~l bar 96 pixels wide by 24 pixels high). And a 600 dpi laser will precisely double the nwmber of pixels in each .' for the two cases - i.e., for a 300 dpi scanner the vertical bar is printed at 18 pixels wide by 96 pixels high and the h~ I bar is printed at 192 pixels wide by 48 pixels high, while for a 400 dpi scanner the vertical bar is printed at 12 pixels wide by 64 pixels high and the ho. ;"...l~l bar is printed at 128 pixels wide by 32 pixels high. The vertical bar in 35 l ~ 401 has ~ s pixels wide by 48 pixels high~ while the ho~ t~l bar has A;~~F ~ s 96 pixels wide by 24 pixels high. The scale can generally vary widely d ~ g on the rec--hlti-~n of the printer and the scanner.
In the p-~f~ be " t, the l-- ' ' is in precise scale to the ~ tOI, which also has a rigid format. The width of the ho. i~ l bar is precisely 16 times the width and 32 times the height of a SlJ~S 111 IJTE SHEET (RULE 26) marker in the . Likewise, the dimensions in pAnter pixels of the .~ itself will be a multiple of the "base" case pAnter pixels. Thus, the 's markers, spots, and rlic- r~r~C will, for e . ' e, precisely double if printed on a 600 dpi pAnter instead of a 300 dpi pAnter. The multiple used is encoded within the ~ -rl cr~o~ . This allows a preci~ ~ g of the ratio of pAnted pixels to image 5 pixels. This 1 3 ' g enables the ~lv~lrithm to decode the data portion of the pattern, since distances and ~ o ~s of rnarkers and spots are defined in the l in terms of pAnted pixels In other ~ the method of e ' &~ produces digitally encoded ' with l~~' -- ' other than two bars c~ e of pixels of the same state. Potential shapes for l~ ~A-~ should be ~ so that they are not easily confu~d with other possible features in the scanned image. They 10 should also bear a p~ ' . ' le o. i- - ~ ~ ;Ol- with respect to the . . ~ _ ;r~ , as well as a 1~ ' ' ' ~ scale (or limited set of scales.) In still further e ~h~l;~ ~-"~ the method of encoding produces digitally encoded b~ ~ with no - ~ In general, the l ' ' perfor n a function that can be achieved through further computational steps. Such a process locates the left side of the pAnted panern by examining the image for 15 h( I s~ s of white pixels followed to the right by dark pixels, and l.,co~ u.,lil.g the vertical left side for the pattern by A; ~- ~ ~l~l j j~L into a straight line the points at which the dark pixels first occur. At the top of the left side of the pattern lies the .- - '~ t~" and an lv ' locates the })n ' "c number of vertical markers in the .- - ~ G ~ to~ (typically three) that occurs at the extreme left side. From the size and relative location of the~ markers, the ~r - of the ~( as well as its scale can be well 20 a~ ' The known pattern (or one of a seAes of known patterns) for the ...- I ~~r~ markers virtually p~ le~s ' g some other v p'~ ~ ' image as a . ~ , thus allowing both a datatile and human readable graphics and text on the same page.
M ~ - 802 Ofthepresent~ t~ consistsoftwobasic ' ~ r~ markersand ~- data cells. These two basic elements are differentiated in the present ~ 4wl;...- ..l by relative size 25 and rl~ Each .. ~ o~ marker of - 802 is 3 pixels high by 6 pixels wide. These c~r markers are placed in groups of three, stacked vertically and ;~F ~ from each other by 9 blank pixels. M.~ ~tor 802 contains 9 groups of three .. - ' ~~ ~t.~, markers, ii ~ e one group at the leftmost region of ..~ v,~ol 802 and one group at the ri~' : region of . -~ 802. Each l~ r~ l data cell of . - ~ ,to, 802 is 6 pixels high by 6 pixels wide. These cells are grouped together between the groups of 30 ..- ~ t.~ rnarkers, with any spots in the ceUs closest to the .. ~ .c.~ " markers being 6 pixels h~ ~ly removed from the met~t~r rnarkers. The groups of ..- ~ r cells are 8 cells wide by 5 cells high. Each cell within a group may contain a spot that is black or may be blank (white) ~ ' ng on the bit value being encoded within that cell. Each black spot in a . ~ or cell, where called for, is 3 pixels wide by 3 pixels high.
The data cell that may contain a spot is most ~ to be .................... - -l-- hl~od as locating such a spot ~,1~,~1~ in its oenter. That is, if a spot is 3 pixels by 3 pixels, and its co.. ~ e cell is 6 pixels by 6 pixels~
then the border of that cell should be ~ ~ as s ' B l.5 pixels above, below, to the right of, and to the leh of the spot. Ui-~ e the notion of a oell in this way allows all cells to be treated equally and ...... ~, . i~ ~lly - in particular, the cells at the extreme right and extreme left of a ~,J ti~o~lc a&~ .Lion of SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 cells are equally distant from the markers at the border of the aE~ While the notion that a spot is located precisely at the co.. ~ g cell's center f~c~ g of the construct of a cell, it should be further ~ od that the spot could be located: r ~.h~ in the array of pixels that defines a cell and achieve the same effect.
The i....... ~.~cc of a notion of a cell from the point of view of I ' ' & the i.l.- - is that acell captures the r " of a potential spot from the - ,, ' g potential spots. This , is h.~l i to the i,.. . because, one, printed spots typically extend beyond their defined b ~ ' and, two, when a dark spot is scanned, the darkness typically extends (beyond its physical bounds) into l~f ;~,hbu~ ;i e image pixels. These two p~ - - demand that spots be defined with . - from each 10 other if they are to be most effectively ~ to be "on" or "o~" Taking alh~ ,, of this can greatly increase the density of i"fo"" .t;,~,~ on the page.
The main body of data 803 of the present e _~ " ' consists of two basic ~' markers and data cells. These two basic elements are diLf~ ' in the present ~ 1 by relative size and p~ Each marker is 3 pixels by 3 pixels, these rl;~ 'C having been d~,t~,- - ' by setting the 1s i Marker Height and Marker Width each equal to 3. The markers are arranged in columns, with each column being one marker wide and as high as the main body of data 803. The b~,g & of each marker within a column is s r ' '~ vertically from the l,~ g of the next marker by 9 pixels, this distance being d~,t~,. -' by (and is a product of) setting the l~~'i'''-f'~ ~ Cell Height equal to 3 and the parameter Rows per Marker equal to 3. The main body of data 803 contains 10 columns of markers and 9 20 ~ of data cells between those columns of markers. The 9 ~.uu~ p of data cells across results from (and is a product of ) setting the p=.,... t~ Across equal to 3 and the p ~ Data ~
equal to 3. The f~rst three ~;IUU~ i for instance, located between columns of markers X04 and 805, e the first rl ~ (note nJ~ . Down equals 1). Each grouping of data cells is IS cells wide and extends the height of the main body of data 803. The number of cells across each grouping is 15 as a 25 result of setting the I Spots per Segment equal to 15. Each grouping contains, in addition to data cells, a ~ hratio~ pattern such as c~lihr~tir~ pattern 806. A c~lihr~tirm pattern contains spotted and blank cells arranged in a ch~ d pattern. The c ' ' l patterns facilitate the d~-- ' g process by providing ~ - - on the darkness of the scanned image. Each data cell is 4 pixels wide by 3 pixels high, these .l;.. - ~ ; having been d -' by setting the p~ . t~ - Cell Width equal to 4 and the 30 ~ Cell Height equal to 3. Each data cell of the main body of data 803 contains either a black spot or is blank (white), d r ' ~ on the bit value being encoded within that cell. Each black spot is 3 pixels wide by 2 pixels high, these .l;... :Ol~c having been determined by setting the ~ - Spot Width equal to 3 and the paruneter Spot Height equal to 2. The column of ~r?arkers is '~ lly . - ' from the closest possible spots in the data cells by 5 pixels, this distance h, :~g been d~ d by setting the p-~
35 Marker to Spot equal to 5. The height of the main body of data 803 is a function of the amount of data toencode, the ~ r?J~ t~ Down, and the width of the main hody of data 803, such widt h having been d~ t~ ~ as ' - ~ above.
In a further _ ~ ' of the method of ' g, ~ recorded on a substrate includes digital data as well as other r " such as human readable text and graphics FIG. 9 ill ~ an SlJ~a 1 l l ~TE SHEET (RULE 26 W O 97132262 PCTrUS97/03330 example of a substrate ~r~n.~ g to this ~ The substrate in FIG. 9 includes human readable text, graphics (i.e., a drawing of a cat's face), and a datatile ~ ~ g digital data relevant to the human readable r ~- (the datatile in FIG. 9 ill 9 an ~ ~ ~ " that does not include a l ' k). The substrate ill ' in FIG. 9 thus conveys how a further; bel of the i~ 1iG.. can be used for such S purposes as aJ~ ing, thus p.l,v.dil.o further evidence of the i.,~ value. The invention's unique a~_ ~, (relative to other known I -'- - -lo, 9), i-~R~ g the ability to store far greater amounts of data in a lin ited space, the ability to A~ ' locations of data through use of I l~ cr ~ , and the ability to d.,t~,. - cell locations by utilizing r ~ 1~ series of markers, rnake the ' ~ ' of FIG. 9 ~ ly practical for the first time. In other . ' - ' involving pko~ .h;r~ Carld 10 ~ ei-~G~, encoded digital data is placed inside, llong~ n or on the back of images captured from norrnal F~ Or.~phi~ ~Iu_G~.~S. In further 1 l - involving digital pho~u~J-~i~hJ~ encoded digital data is placed inside, ~lnngsi~ or in back of printouts of the digitally captured and recorded image, or inside, ngs~ or in back of printouts of scanned and digitized images captured from normal ~h ~o P~ -s.
Afurther c.,l~l;, - ~ ofthei.l~ llion servesasa~ ,kforopticalcl~a~.t~,l "~O~.. ;l.O
("OCR"). The datatile in FIG. 9 could, for example, contain (whether or not in addition to the 1 d list of i,,r~", ~ jon and phone numbers) the l~ ino file or files for the printed text and graphics. The datatile could fwther contain i.~.. ~ to not perform OCR on the printed text. An . ~ ' that includes both OCR capability and the ability to decode datatiles first anempts to find and decode a datatile. If 20 ~,cCp~r~ l in d~roAin~ a datatile (one that contains i.~t l ~ - not to perform OCR) the invention does not perform OCR on the printed text but instead stores the file ~ ~ 1 in the datatile. If no datatile is present on a printed d~ (or if the datatile is not ~ r ~Iy decoded) this funher; bc " ~-r... - OCR
on the Ah,.. ~ 1 The result in either case is a digital ,~ io ~ of the ~1~- - .- nl In light of current in OCR, the first possibility - deriving a perfect digital 1.~ ;o.. from a datatile - is clearly 25 p,, ~
While FIG. 9 includes hwnan readable il~.,..dlion in addition to digital data, it should be - ~ that further I ~~ c of the i"~ ~ combine digital data as well as other il~, Illdion that is not or is not primarily human readable through visual il .I,, l jo~ Thus, one fwther e ~ ' c~ l .in. c the encoded digital data with braille so that digital data can be ~ i by substrate to the visually 30 impaired. For example, ~ . audio files can be ~ e1 on paper and the recipient can read the braille on the substrate to d~ ~ ",;I,r the contents of the C~II~IIU~;I audio files. In further e L ~ ' . the machine readable digital data produced by the present process is ~c" ~bii ~d with machine readable digital data of other p~esa~s such as those that utilize bar codes or ch~ua~,t~ wrinen in mq&netic ink. These fwther ~ .l~l;. ~ allow existing installed bases of ~ O to initially sOn or oLl..,.-.;s~ make 35 A~ tj.~ '~ using existing e~lu;l~ l and ~ e;~ s in place.
In a fwther e.,ll~' - of the method of ~nroAine the digitally encoded substrate contains at least one datatile where parts of the datatile are located in - - ti~ c regions of the substrate instead of the whole datatile being located in one region of the svb~rP~ The regions not occupied by parts of the datatile may contain other printable matter i"~ hum~n readable text or graphics. blank space, or parts or all of SUBSTITUTE SHEET (RULE 26 other datatiles. FIG. 10 ill an example of a substrate p~udu~ in acco~ with this c.~
This substrate contains parts of a single datatile, a 1~ l. 801, a . ~ o. 802, and a main body of data 1003. The substrate also contains human readable text 1004. Parts of the datatile are in nnnGnntig regions of the _b~ ~ I . ' - ' 801 and 802 are located together at the top of the substrate.
5 Main body of data 1003 is divided into 2 parts, each of which is physically separate from each other and from 1. 801 and 802. Human readable text 1004 occupies space between the parts of the datatile.
In one embodiment of the method of ~ ' g the -- contains r ~ & or c ' ...;.e assisting in the ~ ,l;o~ of the location of the various parls of the main body of data 1003 10 while in a further _ ' - ' t, a part or parts of the main body of data 1003 contains h~f~
or; ' ~..~ assisting in the det-- ~ ~ of the location of the other parts of the main body of data 1003, while in a still further embodiment, the various parts of the main body of data 1003 are located without l~f~ to ~( ~ provided by either 802 or other parts of the main body of data 1003. Of these various ~ ~ - ' the preferred method places in the . ~ ~ I'" the location r ~~ for at 15 least the first grouping of cells of the main body of data. If less than all location ill~Ul ~ ~ is placed in the , '.," h)~, the ~ ,f~ ,d method would place in the main body of data's first grouping of cells the location ;~ f~ ";oa foratleastthenextgroupingofoells. n ~ ofthel~ and. ~t~ . locations therefore r .~.. ~ f~~' ' " ~ ~~ of locations of a series of non~ o ~ parts of the main body of data.
Location of cells within non~n~ C parts of the main body of data is aided by another aspect of the 20 i..~, - i.e., the; ~lt~ 1 series of ~ markers. In some e 1 ' the number and size of the separate parts of the main body of data 1003 are fixed by ' ~ ' in ~ 802 or other parts of the main body of data 1003. In other ~ ~ ~ the number and/or size of the separate parts of the main body of data 1003 are not fixed. The method of decoding ~ hil.g for ~ ' " Anql parts until no more are found, either because the entire substrate has been searched or because the 25 ~uc-~-- of location ~.,f~,.~,...,~i. from part to ~ , part ceases.
While the result of the method of ~ ~ ' " is s a single digitally encoded sub: , in some il.- . _~r~C the preferred; ~ " produces a plurality of digitally encoded s ' from one or more ~- , files or series of digital data values. Utilization of multiple s b. _ - may be called for pa~ when the amount of data or the size of one or more . . - files exoeeds the limits of what can 30 be encoded on a single - ' ~ Thus, _ . files or other digital data of virtually . ' ' sizes can be encoded.
In a further; b. " t, a plurality of datatiles are encoded onto a single digitally encoded The e~ g into multiple datatiles may be p~li~uh~ly called for to facilitate in the navigation to pzlli~,ula. digital data. For example, a ~ page might contain several articles with a separate 35 datatile r'( ~ '- each article with digital data (such as a digital l.,~ of the article itself) relevant to the 1~ Iqr article. Multiple datatiles on one substrate may also oe used such that each is decoded in in order to provide a steady stream of data once the first datatile is decoded instead of waiting for an entire page to be decoded. In some e ' " this steady stream of data is used for some further n where the .~.~ . decodes datatiles and executes this further ~ ;o~ on such a StJ~ ITE SHEET (RULE 26) ~"~ l1y ~ basis as to be l~ a~e.~ to the user. In one such; ' ~ '; t, the method of d~in, is i v ~ with .,~ software that displays video clips and plays audio files such that datatiles are decoded, video dia~lla~_d, and audio played on a ' ~y ~ , ~ basis.
FIG. 11 ill a digitally encoded substrate g multiple datatiles, each originally S plu.lu~ by the ".~,f~,.l.,d ~ 'x " of the i..~ ~liu~ and then enlarged 250% in each ~ o ~ for ill~ l..-~;o~purposes. Thefirsttwodatatiles, 1101 and 1102,wereintendedtobedecodedbyusingafax machine as a scanner. The third datatile, 1103, was intended to be decoded by using a flatbed scanner with an optical ~G I ' 'nn of no less than 300 dpi scanning 256 levels of gray scale. Datatiles 1101 and 1102 are two datatiles that together contain one ~ file. Datatile 1103 contains one whole . _~.t file. The 10 one ~ ~ . file . - ' in datatiles 1101 and 1102 contains 1,866 bytes of text while the one ~ - n, file - ' in datatile 1103 contains 3,112 bytes of text. While a flatbed 300 dpi scanner can ~ f..lly decode the originals (i.e., at their original size) of all three datatiles, 1101, 1102, and 1103, using a fax machine as a scanner, the in~ - ~ can . ~lly decode only datatiles 1101 and 1102 (at their original size). Thus, FIG. 11 ill another feature of the i..~ io.. - the ability to convey a base amount of data 15 to all, L _ '. ' ~ regardless of their scanners' c~ if ~c by r. ~ E at least one datatile using the lowest common ~ ~ while providing ~cig~lifir~ ly more data to those with more powerful se~nn~rC
~:IG. 12 ill a digitally encoded substrate cc~ g multiple datatiles, all p~u~ ~ by the ,f~ ,d ~ ~ . 'i of the in.~ ~ all depicted at their actual, original size. The first two datatiles, 1201 and 1202, are intended to be dec~ded by using a fax machine as a scanner. The third datatile, 1203, is 20 intended to be decoded by using a flatbed scanner with an optical IG lu" of no less than 300 dpi scanning 256 levels of gray scale. Datatiles 1201 and 1202 are two datatiles that together contain one c - ~ ~ file.
Datatile 1203 contains one whole ~~ . file. The one . _ file ~c .l~;n~l in datatiles 1201 and 1202 contains 28,371 bytes of text while the one c ~ . file ~ ~ ~ d in datatile 1203 contains 48,102 bytes of text.
The method of encoding of the preferred c ~ l is capable of producing multiple datatiles (or series of datatiles) each of which contains the identical file or files and are ~ ;h'd from each other by their unique idf ntihf -- tag. This capability allows each datatile to contain a unique I ..old, for , ' ~, while ~ vF the amount of c~ ti.~v n~ ~' to format each datatile. Each of the r~ ~ patterns ~ t ' by the datatiles are p.~,f.,.~ identical to each other except for that part of the 30 panern e.~ ;ng the unique irl~ntifir ~tion tag. In this fashion, a ~ irli~ity ~f datatiles co..~_~i. g the same data can be r -... -u~i using as a template a pattern c(. ~ g e._.~tlu..g but the i~ ifi~-- - tag and, for each datatile, .,~ . ' g the datatile by adding to the template a second (and much smaller) pattern ~~.. S~ g the ~ -,l;r- ~it n tag. In the preferred ~ ' - ' t, the iden~ifi~ tag is added to the main body of data at the end (i.e., in the lower right corner of the datatile, following the file or files intended to be 35 cc,..~ d). In a further embodiment, the l _ ~ ~ tag is added to the . ~ l." - one grouping of , ~ n~ cells8cellswideby5cellshighiscapableofc.~ aing240unique iA~ ;r.. ~linnc Instill further ~ the i~ ~- tag is a pattern near but not within the ~ /nr or main body of data of the datatile. This last . bc ' f~il first ph( r~ing the template pattern then adding the SUBSTITUTE SHEET (RULE 26) WO 97132262 PCTtUS97tO3330 t;r~ ;o ~ tag in a second step. Because the ~ ~-r ~ ~ tag is not part of the .-~ " or rnain body of data of the datatile, the i ' - ' is more tolerant of any ~ caused by ', C in 2 steps.
One e ~ ' would express different logical states for each cell by the p~ of spots with different ' D.p ,.1i,~g on the be ' t, the b~ that could vary to express different logical 5 states include spot size, spot color, ink type, and spot shape. In one such e ~ f~ in FlG. 13, each cell contains a spot. Each spot has one of two sizes. Markers 301, bo.d~,.ing the data cells, are 4 pixels wide by 3 pixels high. Each data cell contains one bit of ~ r '~ ~A~ d by two logical states. A first logical state, ",.r. ~ d by spot 1302, is eA~J.ci.~d by a spot 3 pixels wide by 3 pixels high. A second logical state, P~ .li rF-i by spot 1303, is ~A~ i.~d by a spot 1 pixel wide by 1 pixel high. In this fashion, 10 each cell contains a spot of one of the two sizes. In instances where a self-clocking ~ ' is called for, this c bc ' would have the a~ g of providing such a ~ ' In a further e ~ each cell .~ more than one bit where a plurality of bits are CA~ ~ by spots of different sizes and colors. FIG. 14 is an enlarged view of a substrate l..ulu~d by such an ~ -~lx~ co- ~ g markers 301 and cells 1402, 1403, 1404, 1405, 1406, 1407, 1408, and 1409.
15 Markers 301 are of uniform size, 4 pixels wide by 3 pixels high, and color, black. FIG. 14 contains cells each of which ~~ 3 bits in a series of digital data values. Each cell has one of eight different logical states with one logical state cA~ ;.,~d by the absence of a spot and each of the other logical states ~A~ ,..s~,d by a spot with either a size or color different from a spot eA~ il.g any other logical state. Cell 1402 contains a black spot 3 pixels wide by 3 pixels high. Cell 1403 contains a black spot 2 pixels wide by 2 20 pixels high. Cell 1404 contains a black spot 1 pixel wide by I pixel high. Cell 1405 is blank. Cell 1406 contains a gray spot 3 pixels wide by 3 pixels high. Cell 1407 contains a gray spot 2 pixels wide by 2 pixels high. Cell 1408 contains a gray spot I pixel wide by 1 pixel high. Cell 1409 contains a black spot 1 pixel wide by 1 pixel high ~ul~u~ d~ by a gray border 1 pixel wide on all sides. Hence, cells 1402, 1403, 1404, 1405, 1406, 1407, 1408, and 1409 are; . ' of each of the eight different logical states that a cell can 25 express.
FIG. 15 ill the use of more than one cell size in the same datatile. A user of the i~
may desire to select such a fig - when, for example, one oell size is too small and the next larger cell size wastes space. If a user d ~ - that dot gain prevents a smaller cell size from - - 1 1y ~ g data, this ~ 'x ' allows the user to alternate cell sizes between a smaller size and the next larger size to 30 u._~,UIl~c the problem while making the most efficient use of space. It is a ,~i ' '~ i- fu..,..~" that the t~ of different cell sizes can increase the density of ii~fr..~ Any spot either within a larger cell, or within a smaller cell co ~t;~ "~ to a larger cell, will enjoy greater SPp"~ion from at least one r. :ghl~ e spot than it would if all spots were within smaller cells. This will serve to reduce the bit errors that will be inl,udu~,ed in ~lpcoding~ since the number of bit errors depends critically on the S~ ' ;o. . The~5 l~ ion of bit errors in turn can allow the correct decoding of the r 'cm in cases in which it would be ' 'e if all cells were of the smaller size.
~ IG. 15 I.,f~ - markers 301, and spots 1502, 1503, 1504, and 1505. The elements in FIG. 15 are enlarged for purposes of ill.~ tio~ and ;~ While spots are cona;dc.~d in FIG 15 to occupy the upper left corners of cells for ill.,~ purposes, it should be lln~lPrs~d that this is just one possible SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 embodiment - another ~ L ~ " t, for example, places a spot in the center of cells. Markers 301 are 4 pixels wide by 3 pixels high. Each of the spots is 3 pixels wide by 3 pixels high. The first column is r~ to include cells that are 3 pixels wide and 4 pixels high and, a~u~ , spots 1502 and IS03 are in cells 3 pixels wide and 4 pixels high. The second column is r." ,.- ~ to include cells that are 4 pixels ~ 5 wide by 4 pixels high and, acco-di.. gl~, spot 1504 is in a cell 4 pixels wide by 4 pixels high. Because the first column has been rO....d~ such that its width equals the width of any spot, a spot in the first colwnn directly adjoins a spot in the same row in the second column, as ill - ~ by spots 1503 and 1504, which together appear to be one spot twice as wide as high, but are in fact two distinct spots. Because the second columin has been ru~ d to be wider than any spot, any spots in the same row in the third column will not directly 10 adjoin spots in the second column. Acco.~ " spot 1504 does not directly adjoin spot 1505.

DECODING
I~o...41l~ d digital data ~,.o~ by the i.,~- must be decoded in order to l~,CO~ the original . files or other digital data. The manner in which the preferred ~
15 the d-~c ' g is ill ~ ~ in FIGS. 16, 17, 18, and 19. FIGS. 16, 17, and 18 are block ~ ~, ~ d~ ib -~g ~.u~es~s relating to ~ec~ing while FIG. 19 is an enlarged portion of a digitally encoded substrate used to illustrate the steps l~q~ ~ in FIG. 18. FIiG. 16 describes the method of decoding - i.e., the broad of how a digitally encoded substrate is decoded. Included in the steps ~cc~ ae to this broad ~ is step 1602, the decoding process. FIG. 17 describes the preferred . b~- ' of the decoding 20 process. Included in the steps acco. li,.g to this preferred ~ --~1~1;.~ - ~ are steps 1704 and 1706, both of which involve ~eco~line a grouping of contiguous cells. Decoding a grouping of contiguous cells involves a process of l~ù._.hlg digital data values from the ~.~ FJG. 18 is a block diagram dc;.c.il,i- g the .fu.l~,d e---~ ' of that recavery process. Thus, FIG. 16, 17, and 18 should be ~ --d~ ?I~Od as m, ';-~ inCI-,aDillg detail of the manner in which the preferred L bc '- 1~ u~,t~ the original 25 . , files or other digital data.
The overall method of decoding a substrate ~ ~ , at a ~ the steps of scanning (i.e., creating an clc~,l-unic image of the substrate) and ~eco~ g In the preferred e -1~;- ~ the method of ~lecc~;..g further co..-p~ i~P~ the steps of error coll~.~,liù1l, error dPtP~tion and dc~...~ This c- ~1;~ . ~1 is ill _~ in FIG. 16. The digitally encoded substrate is first scanned (~.u-e~,~.;ng block 30 1601). In a ~ ,fe.l~d e bc ' t, this scanning occurs using a flatbed scanner attached to a personal computer. In further e 1- ' - the scanning occurs using a I -~ -1 scanner, a shcet-fed page scanner, a business card scanner, a drum scanner or another type of scanner attached to a personal c~ , . It should be ~ -~A~ lnod that the universe of scanners which may be used is not limited to those attached to personal . . _ but could include any scanner capable of ~JIUdU~iing an ele~ umc image. In a still further 35 ~ ~--k A; ~- -- ~1 a f~-~cimilP machine is used as a scanner, whereby a digitally encoded substrate is fed through the f~cir~ilP machine to produce a scan of the datatile. The fax machine may connect to the ~ .
through ~ hn-~ lines (i.e., by the normal process of t. C a facsimile from one fq~ci~ilP device to another by causing the f- -IP machine to place a ~ ,hn ~r call to a fax/modem attached to the c ,_ ), through a device c - ' to both the facsimile machine and the r~J-Ilod~,.ll (çn- - ~ d to the ~ ,_ ) Sl.~ I l l UTE SHEET (RULE 26) W 097/32262 PCTrUS97/03330 whieh ' ~ a l. ~ n ~ line, or directly by a ~ ,h.~ wire ~o~ te~ to both the f~esirnile machine and a fax/modem whieh is cQI~ to the . . The result of the seanning is an image of the digitally eneoded ' ~, sueh image residing in the memory, fixed drive or other storage ~ , of the personal: . . The image is pl~d~ stored as a bitmap irnage. Note that the stored image only S ayyl~ the pattern plaeed on the digitally eneoded substrate pludu~,ed by the - ~ ~ ' g proeess. Errors p-~ ' x ~ by the seanning proeess, sueh as ~ . ol;ol~ artifaets due to erimps and folds, skew, and seanner defeets, may prevent the stored image from exaetly ,~,yl-,se.,L-ng the digitally eneoded s~
The stored image is then decoded (ylOCCO..;~Ig bloek 1602). The llrroAin~ proeess ic' - - eells (i.e., the locations of possible spots) in the stored image and ~ c for each cell, at a the 10 presence or absence of a spot. The aE,~ ,~tiùn of these <1~ results in a series of digital data values. Further ~ make -~ ~' dr~r~ - -ns that may include the color and size of a spot present, if any. These further e ~ depend on ~ L " of the ~ ;ne process that provide for r ~ of spots that vary in eolor or size. The result of these further ~ 1 ~ ' ~ is likewise a series of digital data values, but each eell 1~ more than one bit of that series of digital values.
The series of digital data values resulting from decoding process 1602 is then ~ ~ to error C(~Il~Liù~ and dPt~'tion pl~lCC~.";.lg (P.~i~il.& block 1603). This step 1603 is the inverse of the error co~ c ~ e whieh oceurred during; . ' g (FIG. 2). The error dete~'t ( and eorreetion oecurs by using the cc ",~. Jld:l with ,. ~ ' parity bits added during c,nc~llg (E;IG. 2) to correct errors whieh may have occurred. The error cc..,~lior~ s for the loss of data due to darnage to the paper or due to the 20 failure to prediet the eell location eorrectly. The errors may be ~ to staples, hde punches, folds, c.~ . ' paper d 'c 1 s, technical 1,l.~ s, i ~1' f'-,~;o' ~ in thC s~nnine process or other iml~ f~ C
Once any required error ~,u.,~ is ~ ~,c d, the stream of digital data values is d~ . ~d (P.u.,.,~.-.& block 1604). The d~l.. y.~ - ' depends on the .,ul.. y.~ ion p.. r.. eA during 25 P ~; i~e and is ~ - r~ d to restore the data to its original form.
After dr~line (~ce~.~;l.& block 1602), error detection and c(",~ ion (p.oceJslng block 1603) and de~ll.yl~ iO.. (ylu~,cS~ g block 1604), the ~ ,O.~ files or other digital data can be stored on a disk, di~yla.~, or . ' ...se used by the ~ . doing the d~line Decoding process 1602 of the preferred e 1 of the i.................. - - (FIG. 8. d~ -I ~ il~i above, 30 illustrates a digitally encoded substrate p.~ ' ~ d by the preferred ~ ) takes â~_ ' ~ of the wealth of;"r...,..~~;o~providedintheencodingprocess. l~e:~ ' g process 1602ofthis~ fe..~ be "
achieves a pyramid gain of h.J..l~dg_. finding the I ' - ' conveys I ..led6~, on where to find the ~"~ , as well as its ~' -- s, the .- ~ tu~ conveys h.~, .. l~g_ on where to find the main body of data and how precisely to extract data from that main body of data, and the main body of data conveys the 35 ~.n~,lying - . _ f~les or other digital data.
While the method of decoding is de~ . il.ed above by .~,f~ i to a single datatile, the yref~
. n~ - ' allows the same steps to oe applied to each of a senes of datatiles. In one such instance, multiple ' contain, in the at,6.." more than one datatile while in a further instance, a single substrate contains multiple datatiles, as ill ~ I in FIG. 11 and FIG. 12. The method of d~oAing of the SUt~ JTE SHEET (RULE 26) .f~,...,d ~ ' ' ~ applied to multiple datatiles first scans all datatiles and then applies all of the n~ steps (1602, 1603, and 1604) to each datatile before plu~,c~Ll g to the next datatile. Another ' ~d applies all of the steps of FIG. 16 to each datatile before }"~he~ng to the next datatile. A
further e bc " applies each step to all datatiles before ~,l.Jcc~ling to the next step. With each ~ 5 pf r~;"ility, an - do~ feeder attached to a scanner f~ril c the creation of images which are then subject to the decoding process. It should be l ~ d that the method of decoding can also be applied to multiple datatiles not encoded on ' but, instead, are always in el~ll~..nc form, as in the case of a r~ IP j ~r of datatiles from a fax/modem to a Çax/~
FIG. 17 ill ~,r the decoding process achieving a pyramid gain of hw..led~, acco,dfi~g to the 10 ~"~,f~ d; ~ ' The proc~s may be generally Aescrib~P~A, as one in which the locations of ~ u~
cells are ~ - d, the ~.~ in the cells is derived, the locations of cells in the main body of data are d~ t~ d and the data in the cells of the main body of data is derived. The steps of d~. o~ r~g the locations of cells in the main body of data and deriving the data from those cells is p . r -- ...,~ by using the r ~ d by the l~ G~, tl~)- cells. In the case of multiple datatil~ forming one series of 15 digital data values, the entire sequence of steps of FIG. 17 are ~ ,f~,.dbl~ applied to one datatile before procceding to the next datatile.
First, the decc~Aing process finds the l~r..l..- -.1. (p" lg block 1701). In a digitally encoded substrate produced by the preferred ~ ~i;~ - ~.l of the invention (as ill ~ in FIG. 8, ~A,~_. ~ ;b~d above), this l-- ~ ' consists of two dark bars located at the upper left corner of the datatile, with the first dark bar 20 having a height ci,~,,.;r.~ greater than its width and a second dark bar located near the first dark bar with the second dark bar having a width ~iEnifir~n~ly greater than its height. The decoAin~ process can find the two bars due to their unique ~h~ The decoding process looks for a series of c~ s dark pixels. Having found such a series of .~ ,-o- dark pixels, the decoding process tests whether a seri~ of c~nti~ dark pixels of a r ~ number extends in the OllllOgO~al direction, with the ~l 25 nwnber d~ d by ,-,f~,~.lce to the number of pixels eY~ ' ~C in the first direction and the 1~ l r _ ~
ratios of width to height. The decoding process then attempts to d~ the orientation of the first bar -i.e., whether the image has been skewed resulting in the first bar being skewed. Dc~ ....; .- ~~ if n of ... ;F .~
iS a'~co~ ~pli~h ' ~ by locating the corners of the first bar and judging skew by the relative location of these corners. Location of the corners of what might be a first bar further aids c' of whether the first 3û bar has in fact been fownd. The corners of the first bar should be a certain angle and distance in pixels from each other. If the d~Ai~ process locates the ap~Jlu~Jl angle and distance in pixels between corners, the decoAine process asswmes for purposes of further testing that it has found a first bar of the l~ l,A~.-~ The Aecc~Ain~ process then determines whether a second bar exists at a location A- ~. ". - ~A by r~,f~ l~ to the first bar. Fxi~-enrf of a second bar is ~'Gf' ~pli~ i by likewise locating a c~lr l d number of ,~
35 dark pixels eYtPnAine in one direction, and a second c~ ' number of dark pixels ll ' lg in the other direction, with the c ~ numbers of pixels in each direction d~ -;1 by lI f.,.. nce to the size of the first bar and the p,~,defil.ed ratios of heights and widths. It should be ~ d~ ~I.lr,~o~A that while the process d~ il ~ assumes certainty in the relative size and location of the bars ~. ~~ "I" ;'; ~e the l - ' k, the p.~f~ . d ~ allows for some latitude. The degree of latitude involves a tradeoff, with too much SU..~ 111 UTE SHEET (RULE 263 WO 97132262 PCT/US97tO3330 flexibility i,~. ~ g the possibility of the decoding process e~ ; ue that it has found a landmark, where none in fact exist~s, and too little flexibility forcing the c~ o-~ that it can find no I ' k, where a in fact exists. Any person skilled in the art would be able to cl~ .f an al,~.ul degree of flexibility. It should be further ~ t~od that in other ~ ~ " of the in~.,..;ion, I ~ , of a S different size, shape or ~. ~ are used, or no I ' ' at all is used. In each of these further 1 _' the steps df s~ ~ ;bcd above are modified or omitted.
The next step toward h.o,.l~b_ qr4- ~ ;o - _ . - locating the --qcf~c~r (~,.u~i.~ing block 1702). As ill tf~ ~ in FIG. 8, ~~rC~nb~d more fully above, the .- '~ of the preferred embodiment is located at a p~ ~' location relative to the 1- ' k, that location being generally to the right of the 10 I ~ .k Having already located the 1~~ ' k, p.~xss;llg block 1701, the decoding process knows where the ~--~ should be in the image of the digitally encoded ' The df~CCP'~ing process determines the distance of the ~- ~ from what it knows about the I ' ' Once it ~; the width and height of the 1-- ' ' 's ~ f~ and vertical bars in image pixels, it can calculate the ratio of image pixels to printed pixels in the "base" case d~ d earlier by reference to FIG. 8. This allows it to c alculate the 5 d ~ f ~ in number of image pixels of the first column of .~ f-~t~,~ markers from the l ~ - k for the other columns of markers in the , and the expected size and rlictqnrf c in image pixels, of these markers and of the spots. The decoding process finds the ~~cf~Or by finding the first column of ~- I ~ tor markers based on what is known about the location of the I q~ k in the image, the relative location of the ~ to the 1-- ' Iqrk in printed pixels and the ratio of image pixels to printed pixels.
20 The fl~ g process pl~,f._.~l~ allows some degree of latitude in m~king this ~ of location and ~1;.. _:.. c Having found the ....~ t ~ (p.~;...iilg block 1702) the decoding process then ffnds the ..-~
markers, p~ce~.. g block 1703. In the preferred embodiment (as ill ~ in FIG. 8 (If ~ ~;l~l above) the includes 27 .... ~9 ~ tor markers, 9 columns of 3 evenly spaced markers, with one column of 25 markers bul~ g each of the left and right sides of the ...~ .. In addition to having pl~r~
I- r~~innc, the ~.~ markers of the preferred bc ~ have a size pl~defincd to be different from the )~ data spots. The decoding process rl- ~ - . ;"~lc where the ~ ;f~lnr markers should be and then confirms those locations or adjusts to the actual locations as n~ly~ Because the number of markers and the number of cells between these markers is fixed in the p.~,f.,.lLl; b~ ' t, this 30 d~ is ctrri~h~r.~ ~.~d (as d~Crrih~ more fully below with .. ~ ~ to FIG. 18).
Another c 'x ' of the h.~. provides for an al l.l~,v ~ , such an ~l,l~
or being ~.~lal~.~ when, for example, ~ practice of cc.~ ~-...- ~ ~ limits the variety of formaLc actually used. The ...- ~ l .. format in the preferred f ~ e ~ S enough i r~ ;0~ to allow the main body of data to assume a vast variety of formats. Yet after ~ ;on by 35 it rnay be that only a ~.ld~ small number of such formats enters v;d_~rcad use. These forrnats may be at~ captured by a much al~l~,vl n~ l ~ lo., that only permits these r~ ly usecl formats to be c,~ifif~A
In a further ~ 1 there are a finite number of possible formats for the . Each of these is searched for, until one is found that c~ ..r... ,,.c to a known possibility. This can be safely done, since SIJ~ 111 UTE SHEET (RULE 26) it will be certain whether the --~CP~r has been correctly ~ t~. Each --~c ~ ~r has a ' l c~
~~ ' with it that can ~ to any specified level of certainty, that the i-~r ~ decoded is wholly correct. And of course the ~ might also be in the form of a standard linear barcode, with its own notion of error (le~cti~n It is likewise true that the main body of data might have a finite number of expected formats, which are the most c ~ '~, used formats, and even in the absence of a .~ , could be correctly decoded simply by cycling through the rrri~ ies until one is found that works. The COII~III ,~ of the choice would again be assured by a ' ~~ ' in the main body of data.
The ~,l;.,g process then decodes the data . ~ -d in the . - l-~c~ t~,- (~.uc~;"g block 1704), 10 such ;..r....--~ being located in cells in between the markers. The preferred method of do~l;nE the is as i!' ~ ~' in FIG. 18, dPcrrib~pd below. The result of the d~ing process is primarily ;.-f~ inn relating to the encoding process. The decoding process uses this i~fu--~.dtiùn to decode the main body of data ~Jlu.,f~.,.l.g block I706). The ~--- l~ lor can also contain information no~
used in the de,co~1ing process, such as the time and date the datatile was created. This info. as well as other ' - not directly related to the dec~ing can likewise be CJ ~ n~f~ in the main body of data.
The ppn~ step in h.o .. l~,~ involves locating the main body of data, pl~CCS~;..g block 1705. As 'h ~ in FIG. 8 d~ il~ above, a preferred ~ l places the main body of data at a pl~ ' ~ -' location relative to the 1~ and the ... l~ l. The dP,CO~inl~ process pursuant to this 'x ' searches for a first marker of the main body of data at or near this p.~r...~ Iocation in the 20 image of the digitally encoded ~ ~ ~
The final step in I ..ledg, _ . - is decoding the main body of data, ~ cc~illg block 1706.
The d~ing process p.~,f.,.~l~ a~ ~ . ' ' this by c . lo~ the same basic process used to decode the m~,tas~lo-, as ill d in FIG. 18. The . - ~h''r'C dfffer primarily to reflect the F ' of the main body of data relative to the ~ . In ~; ' , the - ' of decoding the main body of data take a~allt~ of the wealth of; ~f~ ion provided in the - -. While the .- - l~ has p. f~,.~l~ been encoded in a rigid or semi-rigid fashion with each ~ having the same or largely the same format as any other .--~ r yl. ' ~ ~ by the method of çnccYlin~ the main body of data is p.ef~,~dl,ly encoded in a user ' ' '- format which can vary widely. For example, while every ...- :_ ~r~ ~ l is ~ ,f~,ldJly encoded with cells of a constant or largely constant low .~ ' the main body of data may be encoded with cells 30 whose size can vary greatly among datatiles. The ~ ' of the decoding process for the main body of .. lcd~ the flexibility allowed by the method of ~nt~4~1ing, with the details of the encoding process s~ in the .. ~ ,t-~ and ~ J by the pyramid gain of h.o.. l~gc a}JIJlu~.ll of the p~ ~ The manner in which the decoding process uses these details is ~ c~r~ted in FIG.
19, and ~ .J below.
The : ~( r, when present, should generally contain at least the version number, the multiple of the "base" printed d;~ of the i-- ~ ' and .~ J~, the width and height of the markers, the number of rows of spots per marker, the distance between markers and spots, the h~ distanoe between spots (i.e., the dilr.,.~,,.oe between Cell Width and Spot Width), the distance between rows of spots (i.e., the di~ ,nce between Cell Height and Spot Height), the width and height of the spots, the type of ~ L--~~- in SUBSTITUTE SI IEET (RULE 26) CA 02247924 l998-08-3l WO 97132262 PCTtUS97/03330 the data sectors, the type of printer (e.g., laser or inkjet), the type and degree of error COIl~liul~, and finally a ~ ' - ' to - the CO~ C5i of the i ~ r - . ~ In the p~ ,d ' ~ ' the contains, in addition to the above i~ ., the number of data , per r~ or, the number of ~l t ~ cc~ down, the number of ~l ~tA c~r~ r~ across, and the size of the data co~ 1 in the data portion of 5 the pattern. However, in another; ~ " - this ~ ' data is instead placed in the main body of data of the pattern by placing i~ in the top rows of the first portion of the main body of data.
The version of the ~ t,or indicates the precise format and nature of the data fields _ - ~
within the -. It may also be used to indicate p ~ ' of the forrnat of the main body of data of the panern - for example, the size of the header i.~r~ in the main body of data.
The result of the decoding process is a series of digital data values. This series of digital data values is the, . uc~ data stream from which the method of deca ' ~ derives the original ~ , files or other digital data after applying d~.,v~ iu~ and, possibly, dc~ lion ~JIuce~ .g.The basic process for ., ~,u. h.g data from cells is ~ ,f~,.dbl~ the same whether the cells are ~ l in the or in the main body of data. FIG. 18 ill this recovery process as applied l5 to an image of a digitally encoded substrate ~ by a preferred e b ~ ' of the i..~_ntiùll~ an example of which is ill ' in FIG 8. The recovery process ~ lly finds the point in each cell g the center of where a spot might be printed and for each cell ~ I whether a spot exists at that location. In the first step"~,.. g block 180l, the recovery process locates the first marker in the image of the ~--- ~ OI or the main body of data, as the case may be. The recovery process then locates the 20 center at that first marker, p~u~ g block 1802. The recovery process then locates the center of the nearest marker ~ " ".~.,.~l~ the marker to the -- ~ ' - right, and the nearest marker c~ vertically, p~,f~,.dl/l~ the marker - ' 1~ down from the first marker, pl~fi.~ing block 1803.
The rnarkers are found by first locating the topmost, leftmost marker. This is done by c~ g the region where the marker is P~fA looking through vertical strips of pixels from right to left until all the vertical 25 strips are "white." This will d~ ~ - where the leftmost dark pixels in the marker are. Next, }-strips are -1 from bonom to top, noting where all the strips turn white. This ~ f~S where the topmost dark pixels in the marker are. The precise center of the marker is then d - ' by finding all the ,, ~ig - - dark pixels, and finding the centroid of this group of pixels. Once the top left marker is found, the top marker for the next column is d~ 1 in the preferred ~ - ~1;--....l by moving the known 30 ~ la - across the image, and finding the precise top of the marker by r~tino the process dr e~
for finding the top of the top, left marker. Again, the precise center is found by finding the centroid of the 'i" dark pixels. The markers down the column are found by the preferred L -~ by ~0o~5-~ & down the image from a p..,~iOual~ d- - ' marker, I ~ ~. n~ - I strips of pixels, and d ~ e when the .,~ 1 of the pixels in the strip dips cir;,.:l~f~ , as is ~ ;c when 35 a new marker is ~ ~. In another; ' - ' - t, markers down are .' - - ~ by first moving down a known ~ - to ~ the d~ location of the next marker, then searching for the centroid pixel of the marker.
The recovery process then d~ for each cell in between the first marker and the next nearest markers ~ red vertically and ~ lly the point in the cell ~ ,sc.~ g the center of where a spot SlJ~ 111 UTE SHEET (RULE 26) W O 97/32262 PCTrUS97103330 rnight be printed,. The centers of spot locations are deterrnined by locating the lines across the centers of the rows where spots might be printed in between the first rnarker and the next rnarker ~ ce~
~Jlu~e~ ng block 1804, and then locating the lines down the centers of the colurnns where spots rnight be printed in between the first marker and the next rnarker ~~icpl~p~ ly, p.u.,e,.,il.g block 1805. Each ~ S spot is p.-,f~,.dbl~ thought of as oc,u~"i.. g the precise center of its COIl~ e cell. Accoldi,.. 61~, d ~ the lines across the centers of rows where spots rnight be printed equates to finding the lines through the centers of rows of cells. Likewise, d~: ~ g lines down the centers of the colu nns where spots rnight be printed equates to finding the lines through the centers of colurnns of cells.
Having found the centers of possible spot locations in between the first marker and the next nearest 10 markers, the recovery process d-- whether each cell is "on" or "off" by d~ C whether a spot is present or absent at each of the possible spot lor~'innc and ~ ' these ~ The recovery process 3~,0 ~~ -c5 th,is Dul.l,.u.,.isD by looping through a series of steps for each cell; Il.u.,e.7Ding block 1806 hFC the loop for each cell. For each cell, the recovery process d~ t~ ~, ;n~c whether a spot exists at the point l~ ~,ng the center of where a spot would be if printed, ~JlU~,CsDii.g block 1807. The center is lS ~ - ' as the i of the central line through the colurnn and the central line through the row c~ any such spot. It should be A~'t~d that the preferred e X makes more than a simple "yes" or "no" df - of whether a spot exists at a ~ L.,ular pixel. The p.~f, .l~ e l~ l; . ~ .l d~ t~ ;nf s the level of gray scale of the center pixel and, d~ ~ on the gMy scale level, ~'~ ~ ~ - that the cell contains a spot, d~ t ,. ~IFS that the cell does not contain a spot, or ~ ~ the need for further 20 p~u~7~ g if it is too close to call. If it is too close to call, f~ about whether sulluw~ g dots or spots are present or absent may be used to settle whether the spot is tû be conDid~ ,d on or off. If sn.
the region of a potential spot, the - g 5~ C potential spots appear to be mostly present, the intensity of the region of the potential spot is geneMlly d_p.~,~J (i.e., darker). This is .,~ p -n~ ~ for in the ~ ,f~,.l~
c ~ - by adding ~ ~ values to the intensity fouwd in the region of the potential spot (i.e., 25 the il.~,..tiol assumes that the region of the potential spot is lighter than what was actually found in the image). If a spot is d~ t - .-: n ~1 to be present in the cell the recovery process starts (or, in s~bse.~
;,.nS adds to) a series of digital data values with a value of 1, pl~ssing block 1808. If, alt~,.l a~ ly, a spot is ~ to be absent from the cell, the recove~y process starts (or, in , jt~ . ,n ;~n~, adds to) a series of digital data values with a value of 0, pluC'C.~.~h~ block 1809.
The next step, ~ ~ g block 1810, ~ whetwer to continue the loop. If all cells between the first marker and the next ncarest markers have been tested for spots, the recovery process proceeds to pl~f ,Ding block 1811. If cells remain to be tested for spots, the recovery process returns to the b~ ;..g of the loop at 1806,1~ ,, steps 1807 through 1810 for cach cell.
~ For each furtner marker or set of markers, the recovery process repeats the process ~e,~ i and 35 ill ~insteps1801through1810. Therecoveryprocessfirstd.,t~ whetheranad~ ;on 'marker exists, ~-u~ ,i,hlg block 1811. The recovery process ~t~ IKS this by c~ a~in~ the number of markers e ~,d, and ~- . g this number with the number of markers eYpecte~l The number of markers expected by the ~ ,f.,.l~;d ~ is based on a '- l ~ derived from the number of ~
down, the number across, the number of spots across a single row in a single ~ ,lu~, the number of rows SUBSTITUTE SHEET (RULE 26) of spots per rnarker. and the total size of the r ~ in the printed pattern. If an ~1dU~ ;o~ ~l marker exists, .~Ll;~ l cells with data need ~,.u~;.~ing to recover their data. The recovery process is repeated by first treating an adjacent rnarker as the primary marker of l~.f;.~ellCf (d~ d above as the first marker), plu~ O~ & block 1812, and then ~ alil.g steps 1801 through 1811. The p.~ manner of choosing an 5 adjacent marker is ~t~ ;r~lly A preferred e b- recovers an entire ~ r before moving on to thenext A~ C,r~ Arowof A-:~l...(i.e.~all A-~_r-~ acrossadatatile)arel~u._.u~ beforemoving to the next row of rl~C~u~ Within a ~l ~ r~ the markers are chosen in a similar fashion - markers are ly chosen across an entire row, with rows s~ ly chosen down the d ~ -- t~
In the p.l,f~,..~ e a~ ~ " t, all A~_c..~ , within a datatile are decoded in order to recover all 10 data encoded in that datatile. In another f - l~1;.. Ul, less than all A ~ C-r- t ~ are decoded. This further on~ might be 1~ ~ '~ when, for example, a ~ L- - a~ requires some, but not all data co..~ ~ in a datatile and the datatile is designed such that data is encoded in a L,-~,d~ i OlL
fashion and the palliculdl ~pli~ 'i accesses particular ~ ., to seek p~i ' data. Such an b~ d would save time and ~ oes relative to df r~ing the entire datatile. Such an 15 ; bc ~ can also be; . ' ~_d to supply a steady stream of data to an appli~ such that ~' ~
are decoded and the 1, ~' software is executed both on such a ' -'ly ~ . ~ basis as to be llallayal~ to the user (e.g., where the ~plic ~t software is a video player, the video p}ayer displays a stream of video derived from the datatiles). In one such ~ . a substrate is scanne,d to create an image of the datatile and the locations of all markers in the datatile are A~ A, and stored in 20 the fashion d~ -1 above by reference to the preferred bc ' The further steps of locating oell centers and spots are p r ~ only as to the currently desired .J ~ ~ A C~ ~ ~or or ,l - ~ _ c,~
In the ~ ,f, ..~d e ~ d t, the recovery process first ' ~_-ORs the sequence of bits with precisely the same random sequence of bits that was; . ' ~ ~ in the f r-/'OAi ~g process, d~,o~,lil~cd above by ,n~ to FIG. 2. Whether or not the sequence of bits is thus altered, the recovely procsss now 25 I~On:~lJ u-,b ~~ ..Jld~ from the s 1I The oed~ ..JldS are ~ ~ d to produce the original data. The ultimate result of the recovery process is, then, a series of digital data values. The infio~ ~ion ~ ,.,SCd by this series of digital data values depends on the source of the recovery. In the case of recovery of data from a the series of digital data values l~pl. the r ~ ~ r ~ ~ in the . ~A ~ h ~-, primarily the fonnat ~ ? used to encode the main body of data. In the case of the main body of data, the series 30 of digital data values ~,.. ' ~ is the I . u.,evwd data from which the method of decoding produces the original ~ files or other digital data after further l,.u~mg that includes de~.u.,-~ and, possibly, d.,~ Aion.
The recovery process has further e ~l;. .~t~ .c;nt;~lh~g the different ~ ...l~rl;,". ..~ of the method of e ~ g Where the method of encoding places multiple bits in each cell through the use of multiple colors 35 (such as varying levels of gray), the recovery process p..,f_.dl~l~ d~ l~ ~ ...:.~.~ c the centers of cells (i.e., the centers of possible spots) in a fashion ~A.~.~.ik!d above but then ~' s not merely the presence of a spot at the cell's center but also the color of any spot present.
Where the method of encoding places multiple bits in each cell through the use of multiple spot sizes, the recovery process again ~ ,f.,.dbl~ d~ the centers of cells in a fashion d~ ~ ~ ;l~d above but SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 then sl~: not merely the presence of a spot at the cell's oenter but also the size of any spot present. In one e L D ' t, the size of a possible spot is ~ d~ d~ ed by first testing the center pixel of a cell (i.e., the pixel at the - of the lines through the column and row of the possible spot) to d~ -whether a spot exists. If a spot exists, this method of decoding then tests all L~ pixels (i.e., pixels 5 one pixel removed from the center pixel) and then, i~r ' ~ on the size of possible spots, tests all pixels 2 pixels removed from the oenter pixel, and then retest pixels even further remwed. This 7~ can be applied to the datatile a portion of which is ill ~ in FIG. 14. Cell 1409 contains a spot with a dark center and a gray border on all sides. The method first tests the center pixel, finding a dark spot. Dc~ ne on the p /. l~ ' ratio, the method may continue to find dark pixels10 ~ l3 out from the center pixel in the scanned image. Eventually, the method would - ~ gray pixels. Having found both dark pixels at the center and gray pixels at the ~.i,Jh ~, the method d~
that the spot in cell 1409 ~ ,.~ the logical state C.~ .a~l by a spot with a dark center and gray p~,liyh_,~. Spots such as those in cells 1402 and 1403 are d~ lined by the dark pixels at the center and dark pixels on the ,~.i~h~ with the di~ between the two spots d.,~ by the number of pixels 15 that are dark. Spots such as those in cells 1406 and 1407 are d~ t~ rr1 in a like fashion to the spots in cell 1402 and 1403 except that gray is found in the center and . d g pixels. ~d, obvious to those skilled in the art are made where the pixel !' ~ - ' to be at a possible spot's center is not in fact at the spot's exact center. For example, if the centroid pixel of a spot differs from the pixel d.,te.lllil.~ to be at the ~ of the column and row ~ g the spot, the centroid pixel is used as the starting point instead 20 of the pixel at the ~tj~n In another embodiment, which can be applied where the datatile encodes multiple bits per cell by vaTying the size of spots or both the size and color of spots (other than ~,~ialiu.L7 of color based solely on intensity such as varying levels of gray scale), the method of decoding d~ t~ the intensity of each image pixel that may contain all or part of a particular spot, accumulates those ~r and COIII~J u~i5 the 25 Z661~ ~ ' intensity to ranges of ~ that coll~,~n~ to varying spot sizes to ~ t ~ the size of the spot. Where various colors were also used in e ~ ;ne (e.g., cyan, magenta, yellow and black), the method of drco~ing d ~.~ both an a66l.~ intensity and color.
Where the method of encoding employs multiple spot and cell sizes the recovery process is adjusted so as to d~,te~-~ulle each cell's center. The manner in which cell centers are d~t~.l,li..ed would generally 30 follow the recovery process d~ 7 ~ il~;l above except as adjusted to reflect the various sizes. Likewise, the recovery process is adjusted to reflect each of the other L L - ' ~ of the method of encoding where these requisite ~ .. t~ should be apparent to those skilled in the art of imaging.
FIG. 19 ill~tr~te~ the recovery process as applied to a portion of an image of a digitally encoded substratep.~ ' ~ byone, bc " ofthehl~ ion. Itshouldbe ....~ ..od thatFIG. 19 rcl,.es~ Lsa -lly enlarged view for the purpose of illvstr7~ing the process. FIG. 19 l~ f~,.c.. ~j the following parts: columns 1901 of markers, the distance from markers to the closest possible spots 1902, spot 1903, cell 1904, center 1905 of the f~rst marker, center 1906 of the next marker d;~ 'ly, center 1907 of the next marker ~ ,d vertically, line 1908 through the center of the top row of possible spots, line 1909 through the center of the second row of possible spots, line 1910 through the center of the first column of SlJ~S 111 ~ITE sHErT (RULE 26) possible spots, line 1911 through the center of the third row of possible spots, and line 1912 through the center of the last column of possible spots. The substrate has markers located in the image of FIG. 19 in columns 1901 co~ g of 4 markers at the right and lefl ~ of the image. These markers have ' - 3 printer pixels wide by 3 printer pixels high. The distance from markers to the closest possible 5 spots 1902 equals 5. Each spot, such as spot 1903, is 3 printer pixels wide by 2 printer pixels high C4~ 'd in a cell, such as cell 1904, which is 4 printer pixels wide by 3 printer pixels high. Each spot should be i as o~,.,ul"i,-g the precise center of its col-. r ' g cell. Acco.di~.61~, each cell ,.~ lg a spot has a blank border 0.5 printer pixels wide along the right, lefl, bonom, and top of the cell. Also, the lines through the centers of any rows or columns of possible spots are the same as the lines through the centers of 10 any col-~ r ~ ~ " 3 rows or columns of cells. The number of spots per segment, lS, is ill - ' in ~IG. 19 by the 15 cells, some with spots, some blank, located between the 2 columns of markers. There are 3 rows of possible spots bet veen markers ~ ~d ve tically. The i..ru. conce. I~fi~6 printer pixel sizes and c the number of rows between markers and the number of spots per segment is c ~ _~ by the ... of the ~..,f~ d ~ l ~d and is therefore known to the recovery process.
Having found the first marker, the recovery process finds the center of that first marker, here located at 1905. In the ,~"~,fi,.-~ . ' ' t, pixels are :t - ' to be part of the marker by virtue of having a gray scale level below a tl.,, ' ~~J The coo.d of the pixels c~ t~;nfd in the marker are averaged after being ~ ' ' to ~' - the center of the marker. The recovery process then d ~ c the center 1906 of the next marker ~ --,~1 ho~ -'ly and the center 1907 of the next marker ~l~ through~0 the process de~ il~ above in steps 1802 and 1803 of FIG. 18.
Having Ar ~ e~ the centers of three ll,f~ point markers, the recovery process of the pl~,f~ d e l ' uses that information, as well as ~ co~ _d by the .--- ~5c ~t"', to d- -the lines through the centers of the columns and rows of possible spot loc~ nc If an image has no skew, the line 1908 through the center of the top row of possible spots is d- ~ .. ;.. f~-i to be one-half printer pixel 25 higher than the vertical pixel c~ldill ~7 of the center 1905 of the first marker and the center 1906 of the next marker ~ Y~i h( 'Iy This d t~ of the central line through the row is made due to a number of factors. First, the top of the first row of possible spots in FIG. 19 is known to be at the same location as the top of the highest markers in FIG. 19, this feature having been ~ 7~ ~bli .~ as a CG...~ of the p.~,fe.-~ ~ Second, while the markers are known to be 3 printer pixels high any spots are 30 known to be 2 printer pixels high - both heights are conveyed by the . The recovery process can ac.,ul.li~ infer that the vertical centers of any possible spots in the first row should be 1 printer pixel down from the tops of the spots (a spot height of 2 printer pixels divided in half~ while the vertical centers of markers should be 1.50 printer pixels down from the tops of the markers (a marker height of 3 printer pixels divided in half). Because the tops of the spots are known to be at the same location as the top of the markers, 35 the recovery process can ac~dil.glg infer that the vertical centers of the row of possible spots is .50 (i.e., 1.50 - 1.00) printer pixels higher than the markers' centers. Because the r ~ ' of one-half pixel is ,lc,7scd in printer pixels and the vertical pixel cOul~ ' of the marker centers 1905 and 1906 are e~ d in image (e.g., scanner) pixels, and printer pixel size may differ from image pixel size, the SURSTITUTE SHEET (RULE 26) a~ of one-half must be first "i~ ' by the image to printer pixel ratio to d~ the actual in image pixels.
The ratio of image pixels to printed pixels is d~ i i - ' '.y after ~iecodinp the ~tg< ~t~r.
The ~ of the . ~ t~ in image pixels (e.g., its overall length) are known after decoding it. In 5 addition, the . - ta ~ r internally e~ es the multiple the ~1;,,".-r ~nc are, in printed pixels, of the "base" case (by Cu~ tiull, co~fi~ ,d to be printed at 300 dpi, and scanned in at 400 dpi.). The ratio of ~ image pixels to printer pixels is therefore the length of the ~ in image pixels, divided by the product of the multiple and the length of a ... ~ .. in printed pixels in the base case.The recovery process d3' ~ ~ the centers of ' s , rows of possible spots by ,~f~,..,..~ to the 10 relative printer pixel li~ rla~-t from the top marker to the next marker d;~ d vertically. The recovery process first d~ the printer pixels down from the center 1905 of the first marker to the center of each such s_b ~ row of possible spots. The recovery process duf.~,. this printer pixel distance by adding one-half the printer pixel spot height, the product of ~,,ul~ .ng the printer pixel cell height by the number of rows down a pal lic~l row is from the top row, and ~ b' l" ûne-half the printer pixel marker height.
15 The recovery process would then d.~ tj . ",;, r the total printer pixels down from the center 1905 of the first marker lO the center 1907 of the next marker ~ d vertically. This is here /1~ r ",; ~-rd to be 9 by ".~ .ng the number of rows of possible spots between markers of 3 by the cell height of 3. A ratio of printer pixels down for each row to the total printer pixels down between centers 1905 and 1907 is then e~ n, _ ' The recovery process then d~ ec the image pixels down between the centers of the first 20 rnarker and of the next marker ~icpl~d vertically, 1905 and 1907, l~ . For each row, the recovery process multiplies the printer pixel ratio for the row by the total image pixels between centers 1905 and 1907.
The result is the image pixels down for the central line through each such ' ,_ ~ row.
If for example, the digitally encoded substrate was printed at 300 dpi and scanned at 600 dpi with no skew or ~ 1 s, the line 1909 through the center of the second row of possible spots would be 5 image 25 pixels down from the center 1905 of the first marker. The line 1909 through the center of the second row of possible spots is 2.5 printer pixels down from the center 1905 of the first marker. The recovery process d~ f 5 this by adding 1 (one-half the prin~er pixel spot height of 2) plus 3 (printer pixel cell height of 3 i by 1, the number of rows down from the first row to the second row), and then s~b~ g 1.5 (one-half the printer pixel marker height of 3). The total printer pixels down from the center 1905 of the 30 first marker to the center 1907 of the next marker ~ pl ~-~e;1 verfically equals 9, rows per marker of 3 by cell height of 3. These con~ alllil,g printer pixels are inferred from i..f.... - ~;on -c ~_,_d in the ~ and therefore known by the recovery process. The ratio of the printer pixels down from the center 1905 of the first marker to the line 1909 through the center of the second row of ~ possible spots to the total printer pixels down between the center 1905 of the first marker and center 1907 of 35 the next marker ~ 7X~ verfically equals 2.5:9. This ratio is then ., l~ d by the image pixels down between the centers 190S of the first rnarker and 1907 of the next marker .li~ ed vertically. The image pixels down between the centers 1905 of the first marker and 1907 of the next marker ~ ,y3 vertically should equal 18 (a 600dpi scan should produce a distance in image pixels double the printer pixels p~u~h..,~d by a 300 dpi printer). Multiplying the ratio 2.5:9 by 18 image pixels results in a d~,h.lldllà~io.l that the line Sl1~5 111, ITE SHEET (RULE 26) 1909 through the center of the second row is 5 image pixels down from the center 1905 of the first marker.
Thus, for example, if the center 1905 of the first marker has a vertical image pixel coon' ~.~ of 70 (i.e., 70 image pixels below the top edge of the image produced 'oy the scanner), then the line 1909 through the center of the second row has a vertical image pixel coo,d of 75.
Having ~J~ cd the lines through the centers of the rows of possible spots, the rc-covery process t . the line 1910 through the center of the first cohlmn of possible spots. The line through the center of each column of possible spots is d~,t~ uncd by reference to two factors, first, the ratio of the printer pixel distance of that column's central line from the center 1905 of the first marker to the printer pixel distance from the center 1905 of the first marker to the center 1906 of the next marker ~ d horizontally, and 10 second, the image pixel distance from the center 1905 of the first marker to the center 1906 of the next marker i;~ -- r~ hc ~ ~ 'Iy. The recovery process ~ ~ ~ the line 1910 through the center of the first column of possible spots to be 8 printer pixels to the right of the center 1905 of the first marker. The rc-covery process makes this d ' -~ by using; . r" . - ~ ;o~ co..~ _~_d in the . -- ~~ ~,r~ t.~ . The Marker Width p, was set at 3, the Marker to Spot l ~ was set at 5, and the Spot Width p -~ . vas 15 set at 3. Acco-di-.gly, the 'k ' distance from the center 1905 of the first marker to the line 1910 through the center of the first column should equal the sum of one-half the marker width, 3 x .5 = 1.5, the marker to spot distance of 5 and one-half of the spot width, 3 x .5 = 1.5. This sum equals 8. For each 'k , column, the recovery process adds to this printer pixel distance of 8 the product from ' i, '~,..g the printer pixel cell width of 4 by the number of columns the ! b~ . ~ column is A:~ i from the first 20 column. The recovery process then computes the total distance in printer pixels from the center 1905 of the first marker to the center 1906 of the next marker Ai~cpla~d 1~- . ,,"..t ~lly. This co--~"t ~t;~ is ~ r -- . ~ by summing the roll.,...h~ 'i .,d in printer pixels as _ ~ ' by the ~ ~ c~ .. the distance from the center 1905 of the first marker to the center of the first spot, 8 (8 = .5 x printer pixel marker width of 3 + the distance from markers to the closest possible spots 1902 of 5 + .5 x printer pixel spot width of 3), 25 the distance of 56 from line 1910 through the center of the first column of possible spots to the line 1912 through the center of the last column of possible spots (56 = cell width of 4 x 14, the number of columns S~ e the centers of the first and last columns determined by ! ' ' " tg 1 from the Spots per Segment of 15), and the distance from the center of the last spot to the center 1906 of the next marker A; .t~'~ced h~ - - 'ly from the first marker of 8 (8 = .5 x printer pixel rnarker width of 3 + the distance from markers 30 to the closest possible spots 1902 of 5 + .5 x printer pixel spot width of 3). This sum equals 72. The recovery process then ~ the total distance in image pixels from the center 1905 of the first marker to the center 1906 of the next marker ~ cd h~ lly. The lines through the centers of the columns of possible spots, in image pixels fli~cpl ~ed from the center 1905 of the first marker, are then d~ - ~ ' by multiplying this total distance in image pixels by the ratio of the printer pixels from the center 1905 of the 35 first marker to the line through the center of each column of possible spots to the total printer pixel distance from the center 1905 of the first marker to the center 1906 of the next marke ml ;~ ed hc l i,ont~ly.
If, for example, the digitally encoded substrate was printed with a 300 dpi printer, scanned with a 600 dpi scanner, and the printing and scanning p.~e~ . had no . ~ ~ s, the line 1910 through the center of the first column of possible spots should be 16 image pixels to the right of the center 1905 of the SUBSTITUTE SHEET (RULE 26) first marker Thus, if the hr~ 1 image pixel coc ' of the center 1905 of the first marker is, for exa nple, 110 image pixels to the right of the leftmost edge of the image p.uduccd by the scanner, the line 1910 through the center of the first column of possible spots would have a h- I image pixel COù~l' of 126 The total distance from the center 1905 of the first marker to the center 1906 of the next marker ~ 5 ,~ r~ h, 'ly should be 144 image pixels, double the printer pixel distance of ~2, because the scanned image should twice as large in pixels as the printout due to a scanner with twice the l~ 11 ' This distanoe of 144 image pixels is ~ ltipli~l by the ratio 8:~2 to d,~ - the 'r i~untal distance in irnage pixels from the center 1905 of the first marker to the line 1910 through the center of the first column of possible spots The product, 16 image pixels, is added to the h( l image pixel coo-,' of 110 of the 10 center 1905 of the first marker to produce the 'r.~ n.~_1 image pixel coo,- of 126 for the line 1910 through the center of the first column of possible spots A similar ~ 1eO~ is employed to d~ the lines through the centers of each ' ,_ column of possible spots Having d~ t~ i the lines through the centers of rows of possible spots and the lines through the centers of columns of possible spots, the recovery process can then look to the ~r of the row and 15 column central lines for each possible spot to d~ if a spot is in fact present or absent Accoldi..bl~, the recovery process can thereby d~ dl~, one bit of the series of digital data values These d~ t~ nl~c may depend on - ~ r.,. .- - ~ ;n Thus, if all the spots in all su~-uu~ding cells are present (i.e, "on"), it may very well be that the cell is reldti._l~ dark, even though no spot is present In such a case, an - ii in the threshold for calling a bit on or off may reduce bit errors While the d~ flnl~ above made by l-,f~ ,.. ,e to I;IG 18 and FIG 19 is sllffiriP It to allow one skilled in tne art to . '~ the decoding process, the following routines provide more explicit detail of a methodology to decode a grouping of cells and markers c~ lin~ a ~ c~ lol . The primary routine listed below is ~ ' ' " which in turn calls other routines, inrl~ldine "dPCo~ ol~ "~

25 void rl~ c-~lnl~ ./(float x bar,float y bar, float lqctYcfrir, float lastystrip, float pixiToPixp,BYTE huge * in,BYTE huge ~outbuf,MEMORYSTRUCT
memoryStruct, BYTE huge *saveIt,int huge *hictriY int huge *XIndTable,char * dummyfillarray, c~r * ~' ~flll,BYTE huge *workS,int * n~TT~ CalledOn,int * nnll~ CalledOff, long * t~tq~l~PqAPrCalledOn,long ~ ~ot~'~T~P~lPrCalledOff,int *noClose('q~lc~.,~ t, int *no~l~.seCq~lc~lo g huge * errorArray,int errorlnd,int * errorI,int dataRow,float maxYAdjDPfin-p~fln~t minYAdjD,~ ~d,flo~yIncrAdj,int~ 'ictlncr~
int nol ' ~ vals,long * olltinA k~ne cxDib, long cyDib,long jcorner, long jimage, int ....n~ ~,int ~l ' , unsigned char *dummy0, long ~i " Iong 35 totalNllmCo~lP~itc int h~ flaq,t invslope, int top, int hPq~Pr int n~ irt xind, int adjustDist,int faxFile, int hypothPcic in- p-p~fornlc~ 7~;nn int * calBitRowStart,long * tntqlln~l'qlRitQn~

SUBSTITUTESHEET(RULE26) W O 97/32262 PCT~US97/03330 int * mlm~ cQndong * tQ~sll ~rlRi~off jn~ ~ numCalBitsOff,int procPccrloc~ rray, int r~ Row,int firstCalPatBitAcross.int numCalPatBitsAcross,int displaySpots) {

5 ~ e1chardummyl;
int min~'lncec~ maxCIosPC~
float x,y,xincr,y ;~ eb~h.~- A~ ,cc~ x~djusted,y~ d,piYPIC~ ;n~
~leaDu-~dDict~npyt~nt-y~ xExcess,yExcess,truePixiToPixp,avts~..;~,.,l, long offset~yint~i~no('losecallccegrpntoffcpt in~gjnA
10 int ~ n~P yTnAxFYrPcclO,yExcesslO r _' x-barlnd~T~A~kk~k~yinAinn~yindi ''' t~eslRiton~ . ~rh~Lvalueint;
#define KERNELCOMPARESIZE 3 float ... ~ NELCOMPARESIZE*KERNELCOMpARESIZE];
float lutdl~._;ghl,vdlu~
15 intexcessl Pycpcc~ ~oyt~pcc~excess4~invn~p~c~ fl;
static int huge * YlndTable;
static BYrE huge * r~oe~ rray;
static BYT_ huge * clOcer~ Array;
static int huge ~rlos~C~IlT ict 20 floathuge * ~
staticBYTE huge *errorA~ I"~,_, YIndTable= ~ yStructYlndTable;
ctT ict = ~Strv~t r ~ - ict;
rloceCrll~.rray = "~.,..~U~stnlct.rlosr('~ rray;
rlosef'~llT ~Array = yStr~rt rlocP~ Array;
closeCallList = ,...,..,o,~Str~t ~ sec~lll ict errorA~ 1"-ag_ = I--e-..v,~Struct.errorArrayImage;
if (~ ~ ~ ~f~yFile=2) invoL P~e~nPl=l;
30 else if (hJyvlh~ is>M~ERREPROCESSESt2) inv~PT~
else invo~PKe~PI=O;
if (invol~PKprllpl){
~, ~ ~;
if (header){
weight[0]=1 .0;weight[1]=1.0;weight[2]=1.0;weight[3]=1 .0;weight[4~=1.0;
weight[5]=1 .0;weight[6]=1 .0;weight[7]=1 .0;weight[8]=1.0;
}

SUBSTITUTE SHEET (RULE 26 W O 97~2262 PCTAUS97/03330 else{
weight[O]=O.O;weight[ll=l.O;weight[21=O.O;weight~31=1.0,... ~"~41=4.0;
weight[5]= 1 .0;weight[6]=0.0;weightl73= 1 .0;weight[8]=0.0;
}

5 to~l~ ' 0;
for (k=0;k<KERNELCOMPAREsIZE*KERNELcOMpA~F~s~7F k++
loL~ hll ...~ ',k];
}
total~' col~nit~ 600*8; /* pass in from outside ! */
10 dummyfill~l~ll.ul-,~fillarray+(*totalbits%NUMBERBITSDU~IYF~LL);
pro~cc(~ ser~ rray=l;
if(*calBitRowStart){
*calBitRowStarP0;
calBitOn=l;
}
e!se{
*calBitRowStart=l;
calBitOn=0;
}

dummyl=l;
x_barlnd=(int)x_bar;
~nd=0;
if (nearneighbor){
x_bar+=0.5;
y bar+=0.5;
0.5;
JI~ 0.5;

m ~ c~(~q~MINCT.Q.cF.(~LLDIFF;
rn~Ycl~ce~ql~h~l I MAXCLOSECALLDIFF;
}

else{
#define ~ lKEAL 0 Ir~in('locel'qll-llul~""~t.y~ MINCLOSECALLDIFF*64;
max~losel~qll-l,u~ IAXCLOSECALLDIFF*64;
}

if (header) S~ TE SHEET (RULE 26) W O 97/32262 PCTnUS97103330 else U~ t~
if (process~loserqll ~rray)t no~'4~ser Illss~ Offset=(long)(dat. Row+l)*(long)(~ o~ 1 2);
S closecallArraylnoclosec-q-llcsegrn~ntoffc~t~
closeCallArray~noCInse~ tQffset+(-~ 1 u~ l 1)]=1;
cl~lc~-q-llTnt~nci~Array[not'lr~cf~cqllc~f~ Offsetl ~...n~ y~
closf~C'qlll ~Arraylno~lnserqllc~Gr- tQffset+(. - - ~ ot~ I 1)]~
}

10 if (header)~
tmePixiToPixp=(lastxstrip-x_bar)/'i :L ' Ill~aul ~,dDist=sqrt((x_bar-lastxstrip)*(x_bar-! qctYctrir)+
(y bar-lastystrip)*(y_bar ~ LIi~J));
truePixiToPiA~ aaul~ stl~lict~tl--- ' ~ ~
~ t~ ,.dub~ - -~ t~ ~-h~ t~ uaatlluf-rixiTopixp;
r~.Al~LA~ f~ r ~lluf-rixiTopixp;
}

else{
truePixiToPixp=(lastxstrip.x bar)/~ . - . h h.. ~= ~f.~ _ ' a, ~dDist=sqrt((x_bar ' - . )*(x_bar '- - . )+
(y_bar ' ~al-i~.)*(y_bar-lastystrip));
truePixiToPiA~ aa u~,dDistl~ h.~
h.~ ~h... . uaa~Llu~rixiTopixp;
r.~AI~l~LA~ I h--r-- Ll u~,rixiToPixp;
if(xind){
setYInd(YlndT ' ' e, x_bar-0.5, y bar-0.5, lastxstrip-0.5, invslope, /* 0.5 ~ ,d since added above to y_bar! */
nextdotx, d;~ el~ h-. ~ );
}
}

if (fabs(invslope)>0.00001) avbuli~"lL--àL~(-invsiope);
el~
avE,oli~,.l 0.0;
COSth~,La~ua(av~,ulie.~t);
~hlth~La--ahl(a~ Uli~
x x_lJa. I r~AldULA, Y=y_b~ I~

SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 Ai~ r~h.. ~ :~c~- ~;

YInd=0;
nextChange=YIndTable[Ylnd];~ yinP(int)(y_bar-0 0);
offset=((long)yintjc(.--.~ cADib+ (long)x barlnd;
for (i=O;i~ , i;i++) {
if( ''' ' ~ow&&(i>=firstCalPatBitAcross)~&
(iC(firstCalPatBitAcross+ numCalPatBitsAcross))) calBit=l;
else calBiPO;
if (xind){
if (header) Imgind=((long)yj ~ )~.,ADib+(long)x;
else {

if (ic~Yt~l " ) else{
if (invslope~0 0) {
offset+=cxD;b,j I l;
}

else{
offset--cxDib;yint--;
}

YInd++;
n~ L- ~, YlndTablelYInd];
}

il~ d-v~ ndTable[~nd++l;
}
}

else {
if (adjustDist~&!header){
int adjDefined;
prin~CoordTn~ma~conrd(~ ct x, y, &xAdjusted, &yAdjusted, SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 maxYAdjDefined, nunYAdjDefined, yIncrAdj, .ictlr~r, ,~ jn S imgind=((long)yAdjustedjeu~ cADib+(long)xAdjusted;
}

else imgind=((long)yjcorner)*cxDib+(long)x;
}

ff(~
I[imV~ ];
else{
ff(adjustDict~!h~ ~dP-){
xExcess=xAdjusted-(int)xAdjusted;
yExcessyAdjusted-(int)yAdjusted;
}

else{
xExcess=x-(int)x;yExcess=y-(int)y;
}

20 #ff ~ KEAL
#else #define FOURPLYEL O
#ffFOURPIXEL
#else~5 #ffKERNELCOMPARE
xExcess 10=(int)(xExcess*8);
yExcesslO=(int)(yExcess*8);
excessl=xExcesslO~ A~,es:,10;
exoess2=(8-xExcesslO)*yExoesslO;
excess3=xExcesslO*(8-yExcesslO);
,es~ (8-x~YoecclO)*(8-yExcesslO);
v' ~-0;
for (k=O,xindinc=-(KERNELCOMPARES~E/2);k<KERNELCOMPAF~F.~-7.F. k++ ~ - I I )s for (~k=O~yindinc=-(KERNELCOMPARESIZE/2)*cxDib;
kk<KERNELCOMPA~ T7F kk++,y ~ cxDib){
pixelCo~ iol,-(float)(in~ ld I c~Dib+l I ~;l.Ll.c I ' -]*excessl+
in[il..~l.d I ~,ADib+yinLnc I ~dlldinc]*excess2+
dil~c ~ ]~e~ 3+
in[ v ~ 1 ~illd nc I x illdinc]*e,~ s4);

SIJ~ ITE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 vr~ 11 (pixelcr7ntrihl~tion7J'wpightrKFT~NELcoMpAREsIzE*-k-k+k]);
}
}

v~' (int)((float)valuerealltotalweight);
5 #else #if INVOKEKERNEL
if (invo~ Cer-~PI) #else if (O) 10 #endif {

xExcesslO=(int)(xExcess*8);
yExcesslO=(int)(~E~ 8);
excess 1 zxExcess 10 *yExcess 10;
excess2=(8-xExcesslO)*yExcesslO;
excess3=xExcesslO*(8-yExcesslO);
e.~ 4 (8-xExcesslO)*(8 ,I;~,~.,,10);
v' ~1 0;
20 (KERNELCOMPARESIZE/2);kcKERNELCOMPAE~F.~T7 F k++, - I I ){
for (kkzO,yindinc=-(KERNELCOMFARESIZE/2)*cxDib;
kk<KERNELcoMF7A~F!~T7F~kk++7yindillc I -cxDib){
pixelCo-~t~ ;o..-(llc,al)(in[il..6;.ld 1 ~ ADib+l I ~;ndillc I xi"di-,c]*excessl+
in[i...g.nd I . ADi~ ..ILi~c I xi..di.lc] *excess2+
in[imgind+l I~hldi.. CI' ~ *excess3+
in[ ~ i.,dinc l ~ -]*excess4);
~,dlu~,.~ll-(pixelCc,.~l.il,v~iol~.. .6hl[KERNELCOMPARESIZE*kk+k]);
}
}

~ ' (int)((float)valuereal/totalweight);
}

else{
xExcess 1 0=(int)(xExcess*8);
yExcesslO=(int)(yExcess*8);
valu~ in[illl6il.d I cADib+l]*xExcesslO*yExcesslO+inl g ~ I cADib]*(8-xExcess l O)~' yExcess l O+
in[imgind+ll*xExcesslO*(8-yExcesslO)+
in[imgind]*(8-xExcesslO)*(8-yExcesslO);
}

SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTnUS97/03330 #endif #endif #endif }

S if (~.ru~ C'al ~ ~PalRit){
if (r~lihrq~pln~ow&&(i>=firstcalpatBitAcross)&~
(i<(firstCalPatBitAcross+ numCalPatBitsAcross))){
if (calBitOn){
if (prorPcc~ sPC-q~ rray){
if(! ~ g ~ ) ~'loc~t~f'qlll yArraylnocl~cp~callcr~ toffcpt+i+~ 64;
else ~ s~P(-allT ~Arraylno('locpcallc~c~g~n~ c~pt+i+~
rl~ cPCall ~raylnoclr~cp('allcs ~, Offset+i+ 1]=0;
}
~i 'IrtCqlRi'O~
~mlm~'alRitcOn+=l;
calBitOn=0;
}

2û else{
if (procPcccl~cpc~ rray){
if ( g}~r) clrnP~q~lT ~Array[rof'lncP~'qllc~egr- tOffset+i+l] . ' t~64;
else rlr~sP~ T ~Array[nof~ c~Cqllc~P~nentOffset+i+l] ~
rlr~cPCall 4rraylno~'loce~'allc!~egmpn~offset+i+l]-l;
}

~tn~ r~ralRi~off+=valueint;
~num~~~RitcOff+= I;
3û calBitOn=l;
}
}

if (!pc.ru,..lC~I;t... t... ~lcalBit){
if (vatueint < minemptyint) {

if (header){

~ T ~ Calledon)+=l;
if (nP~'r~'l3' ' ) SUBSTITUTE SHEET (RULE 26) (~tn~ T~P~PrCalledOn) I ~lu~
else (*t~~~T-Tea~lPrCalledOn) I ~aluc;il~t/64;
}

- 5 if (proe~Pccclosec~ rray){
cl~cP~~'l~rraylnoclo eC~'lcSç~, ~c~cpt+i+ll=o;
if (!r~rr~ig~bor) r1r~c~C~ Array[noCIoser~llce~ tQffset+i+l] ~r~lu~ /64;
el e cloc,P~llT ~ '~Array[no~'lose~' ~llc~ ~O~c~+i+l]=valueint;
if ((valueint>nlinrlr~s~p~'~ll)&&
(~noClo~s~Pc t~ Cv ~ MAXNOCLOSECALLS)){
closeCallList[~nol'lnceC~'IcCe~ CLOSELISTENTRYSIZE]=i;
rlo~C'~IIT ict[~noCloseC ~llCe-~ cT ocFT T~TENTRYSIZE+l~=dataRow;
rlnceC~llT ic~l~n~clocp~r~llcse~ CLOSELISTENTRYSIZE+2~
r1oc~C~I1T ictl~noCI~ c~PC ~llcSc~y I~CLOSELISTENTRYSIZE+3~-~uulin~l, clncrCa'lT ict[~lloclosec.~llcc ~ tC'T .OSF.l .T!~TENTRYSIZE+41=valueint;
if (' -- ~hor) rlrt5e('~1n ictl*no('lrtcpl'~llcc~ CLOSELISTENTRYSIZE+5]=1;
else clospC~llT ictl*noC'e C~llcs~ *CLOSELISTENTRYSIZE+5]=0;
rloc~ llT ictl*noclûcpc~llcc~ CLOSELISTENTRYSIZE+6]-uu-*noclose~~~llc+=l;
5e~11c.SrL~
}
}

if(~ u~ r~ll=l){
workS[~totalbits]=O;
*durmny0-~; y0~dummyl;
}
else workS [*totalbitsl= l;
dummyfill++;
}
35 else {
if (header){
TIf ~d~ CalledOff)+=1;
if (n~ ~hhor) SUBSTITUTE SHEET (RULE 26 W O 97/32262 PCTrUS97/03330 (*tc~t~lT-TP~dPrCalledoff) I ~lb~
else (~t~t~lT~P~ rCalledOff)+=valueint/64;
}

if (proc~cc~losef'~ rray){
closeC~Il~rray[noCloseC~'lc.S~gmentOffset+i+
if (! - ~i~hhor) rlr~cPC~IlT- ~Array[noclos~p~'~llcse~m~ntoffset+i+l] . ' /64;
else closeCallT ~Array[noCI~-cP~'~llc~ ffcet+i+l] ~ ' 1, if ((~, ~ t~ ClnCPC~'I)~&
(t -('Ir.sPc~llc~segment<MAxNocLosEcALLs)){
cl~cPc~llT ict~*noCIosP~'~IIcSeO, - ''tCLOSELISTENTRYSIZEl=i;
cloc~P~'~llT ict[*noclosec~llc~-gr- tCLOSELISTENTRYSIZE+I]=dataRow;
cPC~llT.ict[#n~ Pc~llcso tCLOSELISTENTRYSIZE+2]~
closeCallList[*noCIosel'~llc~ #l~T O~FT.T~TENTRYSIZE+3]-~u~i~d;
closeCallListl~noCloseC~llc~ *CLOSELISTENTRYSIZE+4] T I ' ', if(!r.~ ~,''~ ) spc~llT.ict[#lloclf~s~c~llcc~" '#CLOSELISTENTRYSIZE+51=1;
else clocPc~llT ict[*noCIos~PC~IIc~ 'tCLOSELlSTENTRYSIZE+S]=O;
closeCallList[~noCIosPC~llc~ic~ tCLOSELlSTENTRYSIZE+6] ' . ~, #no('l~ cP('~llc+=l;
t ~rlOCPC~llcS~c;,..: .~ I l;
}
}

if(~ ~r.ll=l) workS[#totalbits]=0;
else {
workS[t. " ]=l;
_tl~ ~OIduînmyl;
}

dummyfill++;
}

(*totalbits)++;
( IJ ) I l;
jf (t~ - ~ >7){
~; ' -0;
outbuf[~outind]-td SUt~ JTE SHEET (RULE 26) W O 97/32262 PCT~US97103330 ~oulilld I l;
~- ~0=0;
if((~t~ " ~/oNUMBERBITSDUMMYFlLL)=0) dummyfill-l' ,flllarray;
}
*~ u~l~O << l;
}
if (xind){
if (header){
X--~ I AillCI,y y I ~
}
}

else{

}
}
}

int li. ~ (BYTE huge * IpDibBits,BYTE huge * out,MEMORYSTRUCT memoryStruct, int huge * calPatD , noCalPats,int huge * calAvgArray, int huge * prevMinEmptyArray,int , ~",i.~el,int minFmrtyMin-rrors~int *
avl, ~mpty, BYTE huge * savelt,int huge * histpix,BYTE huge * lut,BYTE huge * he-float huge * bottnm~ rlr~rss~rir~int huge * botto~
float huge * rig~ ' ~~ ' , huge * ~ g' ' ~
int * ~ ~ lf . ~ ieht lnn~ *tn~ tc,lnn~ totalZeros,long totalOnes, int * nu~ )tyAdj,long huge * errorArray,int errorlnd,int * a~ll~de~CalledOn, int * ~Icàd~lCalledOff,float * adjustRatio, int tileAcross, int tileDown, int noTilesAcross,int noTilesDown,int numberTte~'i~nc~ du..i~iL~"
long totalNumC~Ritc~flo~~ t :~ fln~t h-ottomy~double *costheta, double~0 float *pixiToPixp, float *pixiToPiYpT ~l~d ' '- ~a~E...~,hlY Inng cxDib, long cyDib, long jcorner, long j ~ Inng offset,int *prevl~
long lenvpthco~word~ long h ~ qRi~c I g t~h~rp~itcna~q int top, int lefl, int header, int topTile, int leftTile, int * foundTile, int proc~cc~ ~,Cq~l ~rray,int ~~ d.,~ul ,int highRitFrrorRate,int flipEm~
int faxFile,int n~u.._.ghbu.,int xind,int - int adjustDist,int hypothesis.
int displayMarker, int displaySpots, int 'e'~' hPresent) static int huge * hict;st~~ int huge * histlO; static int huge * resetTable;

SUBSTITUTE SHEET (PULE 26 W O 97/32262 PCT~US97/03330 statie int huge * ~ndT~' '~;ct~ir int huge * YIndTable; statie float huge *rnlistl;
statie float huge *mlist_; statie int huge ~ " 1 statie int huge ~ ' '' ?
statie int huge ~ list1; static int huge ~ 1?
statie float huge ~ l I; statie float huge t~ ?
5 statiefloathuge *a~ lCtlict statieBYTEhuge*eloseCallArray;
statie BYTE huge * rlos~Pc~~ Array; statie int huge * r~ ctl ' ~Array;
statie int huge *eloseCallList; statie BYT_ huge * workS; statie BYTE huge *errorArraylrnage;
statie int nor~oseC~Ils ~r~ 1 e~~ ir short * dumint;statie unsigned ehar durnmyO;
statie int AIlmin~? ct~ir long '- ~
10 statie int noCIosec~llc~Aicpl?yMarkerTsn~r~l " ' ,interval~r~lRitRowstart;
statie int nnll~ cqllpAon~n-~T--~ r~AIIPAQff,~,rlu,,~
statie long 1~ -ly,tot~llntr~lRitOn, totallntCalBitOff,tntqlHP~Aprcalledon~tnt~lT~p-q~r~prr-qllp~AQff statie float eornerx,eornery IA~ r~x~la- ~~~ ' y ~ ' ,~ lDictl,.. - ~ ~IDiCt,~ Anist7 ~ ùLx~ ytr~e~ av~ori~pnt~xlr~rr~dj~ylncrAdj~
tpmpx~tpnlry~mqrlrprx~ ' y,dwnmy,sta~x,starty,lqctx,l~cty, AictC,~ Tl~T qctM~-I~, t~ lu~
staticfloat ,~ i'DictRetcornprl Act~'- k,crotToMarker.AAj t,xlnrr,l- r Infi~l, spotToMarker~ -'- id' - ~, statie int errorl . ' Type,numFromTop,num~.A r ~,n~l v~S~ rLoo~
,a ~ rLevelData~
j,k,n . ~ l,p-~ , Start,fn~n~it,hP-qAP-Type, m;nF-mrtysegmpntcpqrrh~pgmpntl~ h, ' ' ~ ~ ~r~ y~
statie double invslope;
25 statie long l,ovtinA i nnrlOcpr~lc~ OffCPt tn~q' ~
statie float xCoord, yCoord,xDistortion, yDistortiQn,rrintXl,printYI, printX2,printY2,totalYDistanceTc' ~ ' n qXyAAjn ~ i, ' YAdjDefined;
static float expeetedYDistaneeToMarker;
static int dl-m I ,d~m~ inefirlpA~init~diustDict~firctr~lpatBitAcrocc~fir-ctc~lpatBitDown~
C~lRitcOn,numCalBitsOff ~lpatBitsAcross~avgc~lRi~off~vgcalBiton~
numherWhitesAI. d, CalE'.~ own,dataRow,r~l'' ~~n~ow;
statie int totalC~ n;~P.,.Tile,dataTilPc~~ ' Si7e;
static int A~ ~spg~nffcetnown~of~setAcrQcc~n~c~nt~ipc~ bottomTile,g_.le.ot., static int prevMinEmptyAdj,prevM;i~ ' ,tnn~ligh~ vr~vlMill~mptyAdj;
35 static ehar d ,fillarray rNUl~ERBlTSDllMMYFlLy; static char * dummyfill;
#define POPUPINFO O
statie char s Mess [1001;
nGIl~ ls=l~UM~NTLRVALS;
fillDummyFillArray(dummyfillarray,flipEm);

SUEISTITUTE StlEET (RULE 26) W O 97/32262 PCT~US97/03330 n~istl=,..~...ul~Struct.mlistl;
mlist2 = memoryStruct mlic~
mintlistl= - ~Stnlc- mintlict1;
mintlist2 = ~A~ ul~slll mir~tlict~;
- 5 hist= ~ ~Struct.hist;
histlO = memoryStruct.histlO;
resetTable=~- ~ yStruct.resetTable;
~ndTable = ",~."u-~Struct.XIndTable;
YlndTable = I.._.l,ul~Struct.YlndTable;
1O 3dj--ctT.iq = ~ ,...vl,~Str~ct r~j ' iq, rlos~C~ rray= I~,..-OIysl~ c~ rray;
closeC~ Array= memoryStnc~ Array;
~1,' ' '~Array = memoryStlllct r~jUC~ Array;
~loseC~IlT ict = Ill~llul~s~ ceCallList;
15 errorA Ia~ll,~b_ = memoryStruct.errorArraylmage;
workS = memoryStruct.workS;
1~- ' . ~{);
--- nttjf-C=O;
errorl=O;
20 if (hypothesis~O) if (1 'e~litF.rrorRate) ~rA~SI1~2;
else ,~r~
25 else ,~r~ ,J O;
#define ENDMINEMPTYARRAY -999 #define NUMBERITEMS_PMEA 1 prevMinEmptylndex=O;
30 if (h~,vtl,. ;.is>O){
for (i=O;i<200~&prevMinEmptyArray[i] !=ENDMlNEMPrYARRAY;i+=NU~ERITEMS_PMEA){
if (prevMinEmptyArrayli+l]=2) luolli~h l;
else tooHigh=O;
prevMinF~mrtylndex=i;
}

SUBSTITUTE SHEET(RULE 26) else prevMinF~ tyInd~
if (h~ll.esis~0){
if (prevMinFmrtyIndex<2*NUI~ERITEMs-pMF-A){
if (totalZeros>totalOnes){
if (totalOnes~OII(totalZeros/totalOnes)>3) ~-~u~ Jt~Adj~ in.,~ lyAdj-2*HYPC)l'~ CREMENT;
else ~lun~,~u~llyAdj~ ull~ Adj-HYPOTHESISINCREMENT;
}
else if (totalZeros=OII(totalOnes/totalZeros)>3) . ~A~ tyAdi+2~Hypo~cREMENT;
else , ~Adj~ Adj+HYPO~lNCREMENT;
else {
p~VMinF .~yAdj~ v~finEmptyAl~a~ vMinE~ tyI~ Al;
~,~v~l~v~inF .~Adj-~l~vr~inFn~rtyAllay~l~vrMinF-mptyI
NUMBERITEMS_PMEA];
if (totalZeros>totalOnes){
if(prevMinEmptyAdj>prevPrevMinEmptyAd;) * , ~Adj=(prevMinEmptyAdj I p,,,vPI.,v Min_mptyAdj)/2;
else if (totalOnes=OII(totalZeros/totalOnes)>3) . ~AUl~ t,yAdj-2~ u ~ lNCREM - NT;
else ~ . ~Adj-~ tyAdj-iksl~ cREMENT;
}

else if(prevMinEmptyAdj<~ ,vPl~v~MinEmptyAd;) ~ yAdj=(prevMinEmptyAdj+prevPrevMinEmptyAdj)/2;
else if (totalZeros=011(totalOnes/totalZeros)~3) ul~,u~JlyAdj-~ll n~"l~)tyAdj+2~HYPO 1 ~Sl~l~CR_M_NT;

Sl~ 111 I)TE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 else , ~Ad~ Adj+H~o~ cREMENT;
}

}
if(l,~ >~){
prevMinEmptyAl,a~ MinEI~ NUMBERITEMS_PMEA]-~ . ~Adj;

prevMinEmptyAIl~ [p.- ~MinE~ JtyIi~d~ 1~ 1 2~Nu~ERITEMs-pMEAl=ENDMINEMpTyARRA
10 Y;
}

else {
prevMinEmptyA-,..~,e~M;-~F--q.t~- ' ]-~ Adj;

prevMinEmptyAIla.~ vMinEmptylndex+NUMBERlTEMS_PMEAl=ENDMINEMPTYARRAY;
}
if (left=l){
xIncr=(noat)~ a, xlllcr=(float)-~a~ r -;
20 if (header)~
initializeVars(O,~sr, 'L,- t~ ,otlf~ 1.,,4.u...r rrl~er,~
.. g,~ .;dlll" ' ' ,511t ~-~ r~ rsAr~wn, ~J;~I .. ,.1,.. ~. , ~.~ l,.~r,~ u.. s~luw.. ,~' - b~ k~-f.~ ot~ ,f &noTiiesDown,&noTilesAcrosc, ~ ' ' ' h~ f ~ ul- ~ uaS, J~ df . ..... ;d~ n ~ r e~ L ~.,, - ' ~d~, t~ h.~ ht ~ U... D~IUWII~

~~ ' ù...... ~u... ~P~Pr~ h,~ a . ~

rr~TI~.~d~ CalledOn=O~,~nll~ad CalledOff=O;totalHcaderCalledOn=O;tot~l~P~IPrCalledOff=o;
luw-~ 2;
if(ccdlcMd,hPresent){
tempx=(fln~t)' tt~ l~c~eta*
(C.'~ V~ l '4)~pixiToPixp;
tempy=(float)~vllu,..~
(s~l ~~'4)**pixiToPixp;
tempy-(float)((fl~t)l-~d~ e;g~l2+l)**pixiTopixp;

SUBSTITUTE SHEET (RULE 26 W O 97/32262 PCTnUS97/03330 }

else {
tempx=(fln~t)l~ eta*
((float)U;~ ~e~t~nl~ld~ Ae~ , l (float)l,u,~ /2+(float)h ' ' widlll/2)*~
5 pixiToPixp;
t~ VJ (noat)~llu,,~
((float)A~ ~h.~ .dg.~ ;dg~,l(float)l,ulde.. dlll/2+(float)h~aA~ idlh/2)**
pixiToPixp;
tempy--(float)((fl-~t)' ' ' ' '~ /2+1)**pixiToPixp;
}
l~u,-(float'~ . , ' ~ty~ t~ . "
numFromTo~; ddt~6 Aic~c~prToLast~- 'i~ f~ L'~
totalC'~ cPerTile=O, . ~ ' md . -' .
15 expectedYDistanceT~
~c~ ~*2~ 4 1~ .;A,ToPixp;
~-...v~ O; *adjustRatio=(*pixiToPixp)/EXPECTEDPIXITOPIXPHEADER;
}

else {
setDataD. '.: ~romHeader(he.~ --fi~ Crot~igh~

~ d~ .~.u~ .. ", d ' ~ d~ r g .
~Ah.. PcP"~AImlir~"~ rType,~ ' act~, &printerType, ~!~dataT;IrCb ' ~;7P,~ IA velData);
if( ~ a~ FRAC1IONCASE1) r7~,jln~: VALuEpRAcTloNcAsEl;
30eLce if (l~ a.,lo,--FRACTIONCASE2) 1~ ' ''~C-' VALUEFRACTIONCASE2;
else l. r . ,n.. ~ (float)l.~ t;~-~Factor;

initializeVarc(0,<~ h ;~b~c~tI ,, h,~u.. , ' "" ~' ' ,, &noTilesDown,&noTi1esAcrf~cc~f ' ' ' ' ' I~A;~ h.. '~ u~, SUBSTITUTE SHEET (RULE 26) ~A~ Cl~h.-~ u~.J~lu.. ~hf ~1¢.. ~ "e,hF,.~ 111. ~t~ ~ t ~ - - I~h.~ U..... i.~u.. ~ ' , t~l ~ h~h "I~ ht:~;h~
h' ' ~, .
~ b~ u~ u.~uf~ A~f~ &A~ hethf "1-- ~ gf '~ ];~II.f "~

proePcs~'loseCall~rray=l;
spotToMarkerAdjust=spoTToMARKFAcToR~(spothf ieht/2-, . . ~ .1. . . h. igh~/2)~pixiTopixp;
spotToMarkerAdjust=SPOTTOMARKFACTOR~(~I ul h- :~;hl/2-r ' ' ~ht/2);
h._ ~ u~ -r- ~ If~ h);
A;.t~ hu~hi}. I
(I~l~.widW2)+(~l ulle ~Gll~/2~o) 1 ~.. _se, if (( 'I ~pi~iToPixpcMINVERYGENEROUSTHRESEI) ..---1.~ .h. :eht)~pixiTopixpcMlNvERyGENERousTHREsH)) g~ ,.uu~--2;
else if ((d' ~ ",.iToPixp<MINGENEROUSTHRESH) ((d- ' ~ "
pixiToPixp<MlNGENEROUSTHRESH)) ~,_,1.", 1;
else uu:,-o;
if ((printerType=LASER)&&
r, h~t~ u~ iToPixp<MININDEXrHRESHLASER)II
. buh.-~nlv~ tp;~iTopixpcMlNINDExTHREsHLAsER))) xind=0;
if ((printerType=THERMAL)&&
((d b~h._ ~1 Vt~ ~ ~u~ ;xiToPixp<MINTNDEXI~ESHTHERMAL)Il -1;- ~ ~., l~h.~o..~ow,.~t~;, iToPixp<MlNINDEXT~kS~ 1 ~kKMAL))) xind=0;
if ((printerType>=lNlCJET)&& llthis now covers all fax cases due to ~=
((d;~ t~ l~t~ u~ t~ iToPixp<MlNlNDEX~ESHINKJET)Il (d:~ l~h. ~uv..~hJw~ Topixp~MlNlNDExI~EsHINwET))) xind=0;
initXInd(XlndTable,~pixiToPixp,(float)(~costheta),~ lf ~ g.

SUBSTITUTESHEET(RULE26) d ' ~ r" .-h~ h.~ -~C~Vt~ ,D~ als);
tempx=(fl~qt~ 1*, ' ~ iToPixp*
n~.,h~h., ~ d~ ,d~ i~u,~.~ /2))*(float)~ n~ ~)+(,.. a.~ /2 tempy=(flnqt)hc ~ e~p;.~iToPixp*
(((~ h~h.~ u~,.c~ /2))*(float)re~fqctfl~q')+(~ 2)) .. ~.I~I~-(float)t~ -"~ (fln~t)~ ulllFlulllTop=8;
~.u...Top=Nl~FROMTOP;
.. . .
., distCornerToLastM~ t.- ~ Oh l~ ~t~ 6~
expectedYDistanceTo~.-*costheta*((int)-u..~ L' - ' ~ ,nlu..~lu....~t~;~iToPixp; //note this should be adjlLcted since it is VERTICAL
calculateTotal('~ , Tile( ' ' ,, rqlPatDes~ u~, noCaLPats &totalC~ ;o~itcPerTile);
r~qlr~ d;'~ h~h~ llu.. ~lu.~ A;~ ~h.~ )wll~
. ' . ~ ~-t~, leng~hCodeWord, nllmh~rnvqtqRitc~ 'q-lihrr~
--~qt,q, ,~-- -- );
if (!topTile) '' "' -I l;
}
}

else {
tempx=(float)bottomx-~co~
' ~ pi~iToPixp*(float)l~-r-tempy=(float)~hottomy-~ ,ta~
u-~ t~;;uTopixp*(float)l -r- lnr ~-~h-,.l,Ut;~-(fl-~' . ,t~ IJUI~;IL~ t~;~ToPixp*(float)rPcf?rtfln~t ~IY~(fl"~ rY-(fl~at)~ UI~.~r' ~ iToPixp*(float),. r- ~n~
}

bottomTile=(tileDo.. oTilesDown-l);
if (topTile){
if (leftTile){
x,~ *adjustRatio~lpDihRi~c~hict~ histlO, resetTable, Ill;l._~.~JIy~ l, FromTop,w;ndo..i.;~e,cxDib, cyDibjcorner, 35 jill'~g~~,8 ~ ' , ~I-*pixiTopixp~xTrl~ r~r~dYDistanceToM~ er~(int)lu.. ~
,8- - - ~,top, left, ~--' ,~frlllnrljt);
if (foundit){

SUBSTITUTE SHEET (RULE 26) W O 97/32262 rCT~US97/03330 if('~ ,~.,I)//readjust based on found corner marker if scale mark not present *pixiToPixp=
sqrt((markerx-bonomx)*(markerx-bottomx)+(markery-5 bonomy)*(markery-bottomy))/
(float)(~ At,- ~ ~ ~o~lbo~.. ~llh/21' ' ' widlh/2);
if (header) llto comply with p.~ , d~ r...~
search~-O I~ ~ h=sEARcHsEGLENGTHNExlMARI~RHEADER;
else search~ogr~ 'Pn~h=SEARCHSEGLENGlE _ RDATA;
*p~v~ r~ y(lpDihRitc~se~rç~cegr- ~ .o~h markerx, marke~r,cxDib, cyDib, jcorner, jim~
}

}
else {
foundiPl;
.. ~k. l~ 01;
h~-' ' [l];
~r~ r[~];
}
}

else{
foundit=l;
~,~LI,. ~ rirltileA."u,~ ' '0 ~2+0];
r-~ I~~Sttir[tileA~,Iua~ 2+1~;
' ' '~r~ lOI~ r[tilcA~,Ius~ Idt~eO~];
}

cul~ 7. c ~r ' ~"outind=O;*totalbits=O;
30 if (foundit){
- ' ' I =mlic~ l=mintlist~ ~ t~ k~l~r, ", ~ 1 [O] ~'~
if (leftTile){
if(noTilesAclos~lileDown=8) bonomTil., butlu.~.Tile;
findAlll~-h~r.clnCol~r n(lrnihRi~C l t~ histlO, resetT~ romTop, ~rl~rx ' ~r,--~ ' ' l,n - ~ .-';n C,~
pre~M ' ' ~"(int)~o...lA, ~ ,8 ' ' 1,&totalYDistanceToMarker, SUBSTITUTE SHEET (RULE 26) W O 97132262 PCT~US97/03330 *pixiTopiyr~xTn~r f Yi~ectf dyDistanceToMarker~nffcpt~eynib~cyDibJcornerJimage~
bottomTile7genero~c~hf~ f~r~fgllnA:t~reprocessHyp~A-isplayM~rkpr~ yù~ s);
if ( ~ 1~0~ ){
bottor~ *l~?r~c~;trip[tileAc~lùa~tl~ aa~a~2+o]=
S ~~ 2-2];
bottomI~ f~ rc~rir~tileA~lua~ 2+l]=
' ' 11 ' m~Prcl~2-1¦;
[tileAc,uast ' ~L.~]=

}
}

else {
for (ij=O,j=o;i1C~ lffr~Right~2,D+=2J++){
laa~ h~M~ri~r[il'];lasty=rightMarker[ij+l];
,. ~ j]=lzlctY,-",.. i ~ j+l]=lasty;
". '-i.~. i, ~li~l I [jl=right~~ ' ~ ~[i];
}

f~ ight;
}

if (foundit){
y~ alh~ l,'' ' -O;dummyO=O;I' ~r,~ fillarray;
if ~noCaiPats>O){
firstCalPatBitAcross=calPatD ,~ "o.~[O];
firstCalPatBitDown=calPatDc;.~,. iytOI ~[1 ];
numCa~atBitsAcross=ca~atDf~.r r2];
numCalPatBitsDown=calPatDe~.,fiy: '31;
}
el~{
firstCalPatBitAcross=O;firstCalPatBitDown=O;
numCalPatBitsAcross=O;numCalPatBitsDown=O;
}

calBitRowStart= 1 ;noCloseCalls=O; *totalbits=O;
}

if (leftTilf~opTile) *pixiToPixpLocal=*pixiToPixp;
for (i=O;iC ' ~I~IA ;~ ; I I ){

if(!bContinue){
return Nl lLL;

SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 }

if (topTile){
Lf (header){
I,~L.l ùt~-~cu~ d~ y;,~,ToPixpLocal+
I-~.k~ ol, I"~.. h~ y~ J;~ .f~ . t~ty;,uToPixpLocal+
Iuy~, }

else{
I.~l~.l,u~-~c~ t tt~ iToPixpLocal+
~k~,~lu~
~L-bOty-~a;~ cta~ t~yi~iToPixpLocal+
u~JJ, }

~ x~ buly~ *adjustRatio,lpDibBits, hist, histlO, resetT ' ~c,l ~ t~ I rlolTop,~ e,cxDib,cyDib~
jcornerJirragf ,8~ ~~ ~ ' ~."a~ pixiToPiYp,XT ;f ~cPdYDistanceToMarker, (int)lu~ "~ /,8 ~,f ~,~t~
b ''~ p, header,~f~)un~lit);
if (foundit){
"~uu.,dDistl=sqrt(( ' I~.pA-markerx)~(ma.k~ uy~-markerx)+
~ luy~ alk~ry)~ yJ ~ y));
2S if (header) *pixiToPixpLocal--~,,~asuu,,~lDistl/Ai~tl~eth~ f ~-~
else *pixiToPixpLocal ..,~u..,JDistl/~ eb~ .J-~k II~lu}~tUIJ~ ,- x, lu~ y~
prevM~L,~ ~Loc~ (lpDibBits, searchCegr-~ i Pn~th markerx, markery, cxDib, cy-Dib, jcorner, jimage, &duml, &dum2);
~preV~r ~ T ' '~/--yl~ T~1F~ - lyLocal;
}
}
else{
foundiPI;
o~ r~prcstripltileA~uaa~ '-e d~ 2+((i+1)~2)+0];
y-~Ju~ m~rl~prcctrip[tileA~ilu~a~ ' ~Idla~ 2+((i+1)*2)+11;

SU~ ITE SHEET (RULE 26) W O 97132262 PCTrUS97/03330 ~--lJullull~Ma~ "[LileAul~js~ ~ ~Lou~ t I (i+l)];
}

if (foundit){

1~ ..... ~h~,.y, if (i%2=0){
. ,, ~,-.I;cl1=mlistl ~ k~ l?=mlict? ~ tli,l2~ ?;
}

else{
... ~ ?=mli5tl .. - I.. li~l ' ?-.. ,,.~.. i.~li~l?-- ' 1;--~ ;ntli~l?
}

-' i.,tli,12[0]~
findAllhh.h~,. ,InColumn(lpDibRitc,l t, histlO, resetT~ .r~u~Top, mqrkPrx,m~rk~Pry ' 'ict? ...~ l?,.~ r.,-~ionc~windo.~oi~L~
p.~ Mdlk~ ,(int)-u.. ~ ~ ? ~totqlYDistanceToMarker, *pixiToPiYl-,xlr.n.,PYl~Pctp~yDistanceToMarker~
offset, cxDib,cyDibJcornerJilnqgç,hottt mTile,~
hPq~(~er~fo~ln~it ~luc,es.~ ,displayMarkerTemp,hypothesis);
if ( ~ ?>O~fmm~it){
bottn~nM~~kP~tripltileA~lu-os~ I ddLo~t~2+((i+l)*2~]=
l~dlh~ ol2l ~ ~qrl~Pr!:?*2-2];
b~t~ ast-irltileA(~u ta~u~ clda~"t2+((i+l)*2)+l]=
,..~-1.~.1;~1?[ ' - ' ?*2-1];
bottom~q-rk~prTntpncity~tileAuluao~ ddtds~,gs I (i+l)]=
25 . ~ 1 [ b~ 1];
}

if ((prev ' - ' !~ ?)11!foundit) foundit=O;
else{
initAdjustDist=O;
ifi(a~j~-cfniSt){
initAdjustDist= I;
~ ' Tncr=2;
.~j..ctT ictTnr-=2;
35 #if AD~USTDIST
adjustVerticalD.~tu.i 'p-~v -~ mq~kPrlictl~ l?~ a~ ctT ict, &xlncrAdj, &ylncr~ n~YAdjDefined, &minYAdjDefined, lr~r,~q~ lctl~i~ ~n~ );
#endLf SIJ~ 111 UTE SHEET (RULE 26) if (topTile) markerStart=O;
else markerStan=2;
if (proeecc(~ seCqll~rray){
no('loseC~IIcS~, O;no('lncçrqllc~egr- Offset=O;
for(l=no~losec'~llc~çgml~n~offset;l<n~ cprqllc~v- Offset+(. ~ y~ 2);1++) ~loseCqll~rayll]=l;
/~ the following entry of p.~,v b~ etc. may depend on the ratio of markers to atarows ~/
noCI~ser~lls~seg - 'Offcct=(long)((p,~,v ' ' ~-(markerStan/2))+ 1 )~(10ng)( . 12);
for(l=no~ cPc~ c~egm~ntoffset;l~r-~ c~r~qllcsegrl~n~offset+(~ +2);l++) cl~c~C ~ rrayll]=l;
}

/* check cqlihr~q-tion first, set Ih if (noCalPats'O){
calBitRowstan=~ qlTntcvqlr lcln=o;t~qlTntcqlRitoff=o;

I CqlRi~con=o;numcalBitsoff=o;
for (~ .~k~,.StanJ-,.. ~k~lStanJ2,dataRow=O~u<p.~ t2;
D+=2i++~dataRow++){
if ((noCaLPats>O)~&(dataRow >=firstCalPatBitDown)d~&
(dataRow<(firstCalPatBitDul - Calpat-RitsDown))) c ~ r~owz 1;
else ~q~ - I RowzO;
if (c-~ I 'n~ow){
ctl[jj];s~lly~ k~ l[jj+l~;
l~L~ ;la~i~ ~ ' 71ii+1];
if( not_equal reals(lasty, stany )) hl~i.lo,~ (lasty-starty)/(lastx-stanx);
else ~ ,lo~ 0.0000001;
if (header) else {
spotToMarker.A~ ct~rql~d=spotTo~ ' A.lju;,lttp,~iToPixp;
if (D< ~ k~l ~t2-Sl~,a 111 ~JTE SHEET (RULE 26 spotToMarker~ljn~t~cc~l~d*=
(starty~ r~ j+2+1])/
u~ w~tpi~iTOPixp)/

S al~ly-~la~ly-spotToMarkerArlillc~cr~ A
la~ly~la~ly-spOtTû~ ~ A~i r,~
if (xind){
,dDist=fabs(startx-lastx);
,.,~...~dDist=sqrt((startx-lastx)*(startx-lastx)+
(starty-lasty)*(starty-lasty));
n;~ h.~ iToPixp;
lx-~. lx+( ~ ,dDist-eyrectednist)*xINDADJ;
la~x lz~tx-( e~Dist~ct~Anist)*XlNDADJ;
IS i.. ~ .val-(int)((startx-(int)startx)*noT v.. ls);
interlncr=O;il~t~.I-,~,--1/(2*(float)nnT ~ 5);
interval=(int)(((startx-(int)startx)+interlncr)~ -' v ' );
}

20 #if ADJUSTDIST
if (adjustDist) {
~ ~, CoordToprintcoord(l~
'' ~ V ' Illa-hl~, startx, starty, &printXl, &printYl, rnaxYAdjDefined, minY~ljnefir~rl xlncrAdj,ylncrAdj, ",a.h.,.li~llncr, &adjDefined);
if (adjDefined) ima~PConrdTûPrintCoord(~
pre ,.. l~ lastx, lasty, &printX2, &printY2, maxYAdjDefined, minYAdjDefined, xIncrAdj,ylncrAdj""a h..li~lIncr.
&adjDefined);
if (adjDefined){
~ y-~ tYl;la~lx-~ X2;1a~y-~ y2;
}
}

#endif }

SU~;~ JTE SHEET (RUL~ 26) e~1~h~n ;i ~.~startx,starty,l~ct,Y- ,locty,*pixiToPixp,lpDibBits,out, memoryStruct,savPTt~hictriy~(xlndT-t 'o ~ t~,~Vdl*(in~ 'r~ g), dummyfillarray,dummyfill~wnrkS,~ TI.-~L. CalledOn,~ TTr~ CalledOff, &totalHeaderCalledOn,,&-nt~lT-T~P~Ap~calledoff~&noclosec~ cce~ t, ~ 5 &no(~los~C~llc~rrorArray~errorTn~ errorI~dataRow~maxYAdjDefined~
minYAdjDefined,yIncr~dj,a~ ctT ic~lnl~r~n - lnt~rv~lc~nl:~in~nyT)ib~cyDib~
jcorner, j v , ~,8' ' , ~' ~0, totalbits, totalh~. Co~eRitc~
1,-invslope,0, hp~pr~np~rnpig}~or)yin~1~(adjustDict~ nefined)~faxFile~
h~uùlhcaia, 1,1* performC~ihrtion is 1 */
&calBitRowStart,~ntq~lntCalBitOn,&numCalBitsOn ~t~t~Tntc~lR;~off~8 C~lRitc(~ff pr~Cc~ c~r~ll~ray,~ . t~ TnT~ow~firstcalpatBitAcross~
rn~ 'dlBitaAcr~lcc~dic~pl?yspots);

}
if (numCalBitsOn~0) if (n~ I .I v~; ') avgcalBiton=(int)(totalIntcalBitonlnllTl~ lRitcQn);
el~
avgCalBitOn=(int)(totalIntCalBitOn/(r mc~lRitcon*64));
if (numCalBitsOff>0) if (~ lAil.d) avgCalBitOff=totallnt('~lRitOff/numCalBitsOff;
else avgCalBitOff=tct~lTrt('~'Ri~offl(nurncalBitsoff*64);
dataSeg=i;
offsetDown=((noTilesA~luas~ ' Id.,a~6~)*tileDown)*2;
offsetAcross=( ~laL~6;,~lileAcross*2);
calAvgArray[offsetDu... I ~r~lA~,Iuaa I ~dLSeg*2]=avgCalBitOn;
calAvgArrayloffsetDo.. n ~ aelA~;luaa I dalaSeg*2+ll=avgc~lR;tQff~
minFmrtySe6.,.~ t~linEmpty(calAvgArray, tileAcross~tileDown,~t~C~Pg, minFmrtyMinErrors, noTilesAcross,noTilesDown, ' da~e~
}
35 /* NOW look for data! */
for (ij--"a-h~-Start,J-,.. a,h.,.Start/2,dataRow=0~<~ r~ 2;ii+=2J++,dataRow++) al~lA~ r~ ];ak~ly~ l [ii+l];
laalA--~ j];ldal,~ lial2~ii+11;

SU~ JTE SHEET (RULE 26) if( not_equal_reals(lasty, starty )) ~ .lo~ ~lasty-starty)/(lastx-startx);
else i-lv..lo~ 0.0000001;
if(D ~ ){
if ((fabs(invslope)>0. 1 )Il((noClo~Calls~MAXCLOSECALLS)&&
((float)noCloseCalls/(float)~lot~ll.ils)>MAXCLOSECALLRATIO)){
xind=O nP~rn~ ..,.-O;bilinear=l;adjustDist=l;
if(!initAdjustDist){
10 initAdjustDist=l,.. ~ T~ 2;ri; ',ictTr-~r=2;
#if ADJUSTDIST
adjustVerticaID. .lu, lior,s(~
,.--.1-. .1;~1~ r~ ctTict~ &xlncrAdj, &yIncrAdj, &maxYAdjDefined, &minYAdjDefined, '- ,r~ ictTn~r);
#endif }
}

el~ {
xind=I, ~rl o~l ~il -O;adjustDist=0;
}

}

~ ~-( ' " I li] I -lla~h~ 2~ lY_5;
if (header){
if ( . ~>230)~ 230;
- n, ~--ADlMlNEMPTYHEADER; /* because new pattern !*/
}

else {
spotT~qrlr~rAd~ ~t 'c' ~.~,olTo~ dj ~pi~iToPixp;
if (,ij<~ 2-2) spotTo~ ~Crql~A*=
(starty-~ jj+2+1])/
((Ai ~ h. ~ ~~ow,~ iToPixp)/

~kuty-~ ly-spotToMarker~ ct~cqlP
laaly~ ty-spotTc' ~- ~ A,~ ~-ql~A
if (xind){
~u~,dDist=fabs(starLY-lastY);
~ll~su,~ist=sqrt((startY-lastx)*(startx-lasLY)+

SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97103330 (star~-lasty)~(starty-lasty));
e~C~PAn~ ,c.,t~-~t~ iToPixp;
+( ~,IDi~ A1~ist)~XINDADJ;
la~ dMst~ l~c~ Anist)*xlNDADJ;
interval=(int)((startx-(int)startx)~n~l vals);
~ --0; ' --1/(2~(fln~t)nnl ~ vol5);
~1 v ' (int)(((startx-(int)startx) ~ c~ ol vals);
}
if (. ~>253) . ~y-253;
, ~--AD~NEMPTY; /* because new pattern !~/
#if ADJUSTDIST
if (adjustDist) {

imageCoordToPrintCoord(. ~
1S plCVI~ , startx, starty, &printXI, &printYI, maxYAdjDefined, minY~djDefinPA xlncrAdj, ylncrAdj, ~ k~ lnrr, &adjDefined);
if (adjDefined) ,,:ConrdToPrintCoord( ' ' I, I..a.h~,.li~L2, p.. ,~ ' ' lastx, lasty, &printX2, &printY2, maxY~ , minYAdjDefined, xIncrAdj, yIncrAdj, -~ k~ lT.-- ., &adjDefined);
if (adjDefined) {

~ Xl;
s~y-~"i..~YI;
X2;
lY2;
}

}
#endif }

if ((noCalPats>O)&&(dataRow ~=firstCalPatBitDown)&&
(dataRowC(firstCalPatBitDu.... I n...,lCalPatBitsDown))) S C~ TnR,ow=l;
else ow=O;
if (noCalPats~0) rninempty=minFm;ltyse~m~nt SUBSTITUTE SHEFT (RULE 26) W O 97/32262 PCTrUS97/03330 if(header) Uuh~ y~ JIA~'I, ~IU.~ t~ .ul.~,.,.~)lrAdj;
if (llun~ ty>MAxMlNEMpTy) S , ~y- MAXMINEMPTY;
totm,.,.,.,.~ r, ~, ;. ~ 1 1;
'I~QCi~'~l~1~ ;1'- ~,.. ~starLx~starty~lqctx~lqcty~pi~x~iTopixp~lpDihRi~c Ollt memoryStruct,savPI~,hi~.piy (XIndTable+interval*(int), ~l~e ~ g)~
dumrnyflllarray~dumunyfill~workc~n~ TT~ ?'1~ ~ CalledOn ~ ....TT~l.. CalledOff, ~ tqlT-Tpq~lprcalledon~ tqlT-Tpq~lprc~q-llpAoff~nr~cl~s~pc~llc~s-p~g &no('l~cecq~lc~errorArray~errorTnA~prrorLdataRow~max-yAdiDefmed~
minYA~Ijn ~ ~,yIncr~ ~j"qdjUctT ictTnrr,n~T v. . l c,~o~in~1~rynib~cyDib~
jcorner, jimq~P~minpm-pty~/o b; ' , &dummy~, t~t~l~ ~o~iP~i-c 151,-invslope,0, hP~1Pr~n ~h~ yind~(adjustDict~q~jr)efillpA.)~fqyFile~
L~l~uthe~i~,0,~ owStart,~tntqll~tCalBitOn~ &numCaLRitsOn, lnt~'qlRi~Off &numcaLRitsoff~processclnsecqll~rray~
~__T~ T~ow,firstc~ alBitAcross~llumcalpatBitsAcrQcc~ cplqyspots);~0 if lpro~ pcs('l~spcq~ rray){
if (!header) /~ should be invoked only if spots are close together! */
{

setTL~ cT ' CloseCalls( ~ ,v~ '-mqrl~PrStq-rt/2)~
tileDown,noTilesDown . . 1~ y~adjuctll~tpnci~yArray~closecqll ~rray~
rl~5e~'~l11 '~Array,(!r~eqrnPi~hbor));
for (k=0;k<noClos~PC~~Is~p~mpnt k++){
instantReplayCioseCqllc(clos~PC-q~ ct[k~cLosELIsTENTRysIzE]~
closeC~'lTict[k*CLOSELISTENTRYSLZE+l], cl~lcPcq-llT iC-lk*CLOSELISTENTRYSLZE+2], rl~lc~lll ictlk*cLosELIsTENTRysIzE+3]~
clos~ llT.iCt[k*CLOSELISTENTRyslzE+4]~
rlr~seC~llT .ict~k*CLOsELISTENTRYSlZE+
rlospc~llTictlk*cLosELlsTENTRysL~E+6]~
*~ ly.A~ ,vllull~ ul~ m~rl~ t~-t/2)~
tileDown~noTilesDown~ el~h~ -r - ~v , 1~ h.~luu~.~iu 'b~ ---,crotL-iV t,~lu~ pix~TûPixp, - sii 'l~t~ncityArray,~loseC~ll~ray,out);

SUCJ~ JTE SHEET (RULE 26) }
}
}

~l~v ' }
}

~foundTil~-ruLu.dil, l0 if (!~foundTile) ~foundTil~ ' t; I/just for dcbucr;~
else {
if (rll~Fntlripc->o) ~IV~ ,y/.. Orr.. iPc 1, for (jj=0,j=0;jj<~,~,v b~ ' ~2,D+=2,j++){

la,ly-.. ~ jj+l];
~' lii]=lactx;
rightMarker~jj+ l ]=lasty;
rightl~Li] ' 2rjl;

-r.~ y-cornery)/(l-~x-cornerx);
if (fabs(newInvslope)>0.000001) else newlnvslope=0.00000 1;
'newlnvslope);
redDictRf,tCornerLastM&I~ .I((cornerx '- ~ (cornerx-l~ o,.- ~ )+
(cornery ~ )*(cornery ~ u if (header) {
~pixiTori~ u~dDictP~etCo~r~P~T ~ctMarkldistcornerTnT ~CtM~rk, ~costhf ~ a(~lvgc~ si~ b~li.,.ll); ~ lo,c~ n~wl~ lo~, if (~mTTf~ ~d~,-CalledOff>0&~-.oIl~dc.CalledOn>0){
~c.v~ ad~,.CalledOn=(int)(tot~lHP~d~P~calledonl~nTTf-Jl-~calledon);
~v~ ade.CalledOff=(int)(tot~lT~lPrCalledOll~..oTTf~k CalledOff);
}
}

SU8STITUTE SHEET (RULE 26) W O 97/32262 PCTnUS97/03330 return l;
}

If a nor..~ .lq- spot has been defined~ the center of that spot is l l~,f~,.idllly A~ 1 by looking 5 to the centroid of the pixels of any such spot which might exist in a cell. If a no...~ G.-I- cell has been defined, the center is p.~,f.,.dl,ly found by locating the cell in a manner similar to locating the center of a ,~ l_l.g~ l cell, ~ r ;l above (j"rl~ g ?'~ made for cells placed di~onqlly)~ ~i; " such d~ t~ where the centroid pixel of any spot in such cell is expected (based on what is known about how the cells and spots were r.. ~t~A) to be different from the center pixel oth_.~ d- -' It should be u.. d~ lood that ~A.,~ ;np the centers of rows of possible spots and the centers of columns of possible spots can also be d~.t~ not by ~f~ to the image pixel/printer pixel ratio but by ,~,f.,.e.l~e to the ratios ~ ~ ~ ",;~ A by dividing the number of rows or columns, as the case may be, that a particular row or column is ~ ed from a first .~,f~ ,n_e marker by the total rows or columns, as the case may be, between markers. This ratio for each row or column is then mllltiplied by the total image pixel 15 distance between markers to determine the image pixel di~tJl~e ~ of each row or column from the .cf~ .)ce markers. This method of d~ -g the center of each row and each column performs most ~Lr~,h,~lLl.y with an ~ k~ l where there is no distance between markers and the nearest cells - i.e., the Marker to Spot p ~g .- ~ . equals 0. For example, where the digitally encoded substrate is r,-uldll~ and encoded such that there are 3 rows between markers (i.e., Rows per Marker equals 3), the total irnage pixel 20 distance between the top of a first marker and the top of the next markeml;~ ed vertically equals 21, the top of the first row of possible spots has the same vertical pixel coolJi-~h as the top of the first marker, the image pixel distance between the top and bottom of each spot equals 6 and the vertical pixel image coo-~' ~ of the top of the first marker equals 156, the centers of each of the 3 rows can be ~ by "i, l~ing 21 by the ratios 0:3, 1:3, and 2:3, the products being 0, 7, and 14, and adding those products to 25 159 (the vertical pixel COO~l' of the top of the first marker plus 50% of the image pixel distance from the top to the bottom of each spot). Thus, the centers of the 3 rows would be at vertical image pixel cooldii dles 159, 166, and 173.
While the recovery process p-~,f~,-d~ A~ t~ r s the centers of cells and the P i~ e of spots through p.u, e ,s~i rendered by a . from an el~~ image of a datatile, it should be ...~A. ~ - ' od that 30 the recovery process can be ;~ d without ref~,~,"~,e to an Cle~ image. Instead, the distinct features of a datatile (e.g., markers and spots) are df'~ ~~ ~ ~ by ~ ' Distances are ~.~,f~
d~,t~ u~cd entirely through I~ . means (i.e., without any hurnan i..~. . . ~ ). In one such c--~ a ~-u-,-u~,o~ coupled with a m~cllnng device . - - a .--. . I.~ l means that ~( ~ly d~,t~ uncs distance by sensing areas of differing reflectivity. Visual incp~rt~on of a datatile 35 provides; ,.r.,., -~ ;o-~ from which to conclude the locations of datatile features such as 1- ' ' . markers, cells, and spots, and these cnnel~ - ~ are then used to derive the series of digital data values which can, if u~iat~, be used to manually derive some further ~ . such as text. Visual ii~ follows the steps A~c~ d ill FIG. 18, and generally follows that part of the process A~ il~ by .~r~ to FIG. 19 that involves ,I; l .,...~c generally and not printer or image pixels or CO..~ ùllS of printer pixel 'Q~~' ~

SIJ~ 111 IJTE SHEET (RULE 26) and ~lictqr~c to image pixel cou~ s and di~tqrlres it being ,~ od that in a visual i.~ n ~.. h~l;. -- .. 1 there is no image of a datatile other than the printed datatile itself, and d of printer pixels (instead of actual markers, spots, etc.) by visual i..~l~ I;n~ may be . ~ and ~ ~. A
method of ~IPrc~ing; . ' J h~g Ill~aaul~ ' of distances enjoys many of the same benefits of the preferred 5 ~ J;, t.~ ~useofthe~ t~ to -- theformatp-u~ usedfor I r, A visual inCr-ti~ ~ b- " of the method of decoding p.~,f.,.~l~ d~ the lines through the centers of rows and columns by reference to actual ~i~tq-~cPC~ such as ~i~ ~ in microns. According to this _ b - " t, and ~ ; ng the top of the first row of possible spots next to a first marker has the same vertical cow " as the top of that first marker, the lines through the centers of rows are d~ e~1 by 10 first l B the distance from the top of that first marker to the next marker ~ 1 vertically and dividing that .,.~u.~ by the number of known rows of cells between each marker and the next marker t~d vertically. The result of this division is "il " ' by the number of rows that a row is down from the first row next to the first marker. That product is then added to the sum of one half the spot height plus the vertical .,w.d of the top of the first marker. If the - - p~ that the top of the first row of possible 15 spots has the same vertical coo-~' as the top the first marker is invalid, a~ U~ J' ' ' are made for each row by adding the distance between the top of the first marker and the top of the first row of possible spots.
Lines through the centers of the }eflmost and rightmost columns are p..,f.,.dbl~ ~Ptr ~ ' by visual through ...~ - ;e~l means locating the vertical centers of the top and bonom spots in each of 20 those columns and drawing, physically or r~l~r_~Jt' ~ a line through those spot centers. The lines through the centers of columns in between the first and last columns are d ~ by II~W~t~il~g the distance between the lines through the centers of the first column of possible spots and the last column of possible spots, dividing that distance by the result derived by ~,.~b~ one from the known number of columns between markers, and multiplying that product by the number of columns that each column is ho. ,,....- lly 25 .~ 1 from the first column. The product from that ' r~ ~ ~ indicates the distance thal the line through the center of each column is ~ - ~; 'Iy dicp~qrPt1 from the center of the first column of possible spots. This system of d, t~ g column centers more a~ 1~ accounts for printing dlalOllions~
De~.~. - - of the numbers of rows and columns known to exist between markers can be made either through visual i~ iol~ by ~ l means or~ pl~f~ by first decoding i~r~ ;ol~ co..~ et 30 by the .~ -~.ton The visual i~ ;o~ ~ k ' as d~ in general above can be I ' ~ more particularly as following a series of steps applied for each grouping of cells between markers. The steps below are applied to a datatile where a known number of rows exists between the top of each marker and the top of the next marker ~ et vertically, and where a known number of columns exists between the left~5 side of each rnarker and the lefl side of the next marker ~i~plqred h- ~Iy, this h.u.
.l~, being best by the .~ t~
- 1. Locate a first marker bord.,,ing a first grouping of contig cells.
2. r~ e the vertical cw.~ of the top of the first marker.
3. Locate a second marker being the nearest marker ~ e~ vertically from the first marker.

SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 4. Measure the distanoe from the top of the first marker to the top of the first row of spots.
5. Locate a third marker being the nearest marker J~ d h~ t-lly from the first marker.
6. D~ le the height of each spot. This hlu .. led~ _ may also be . ~ by the ~
7. De' ' ~ the lines through the centers of each of the rows of cells by . l- A 1~ e the distance from the top of the first marker to the top of the second marker, dividing that distance by the number of rows of cells known to exist between markers. and for each of the known number of rows, adding to the vertical coold' of the top of the first marker the sum of one-half the height of each spot plus the distance from the top of the first marker to the top of the spots in the first row, plus, for each row of cells, the product from i~ .g the result of the division by the number of rows that that row of cells is ~ icall~ d;~pl~et'i from the first row of cells.
X. De: ' ~ the lines through the centers of each of the columns of cells by d~ t , ~ ne the lines through the centers of the rig' ' - ' and leftmost columns of cells located between the first marker and the third markers, df'- ~ ~ g the ~ ' ' COOl~" ' of the line through the center of the leftmost column of cells, d~ t~....,n...g the distanoe between the lines through the centers of the '~' and leftmost columns of cells between the first marker and the third marker, dividing that distance by the result derived by subi ' l" one from the number of columns known to exist between markers, and, for each column, multiplying the result of that division by the number of columns that the column is ~ ' Ily tiicplq~pli from the leftmost column, and adding that product to the ~ ' l ~n'' ~.e of the line through the center of the leftmost column of cells.
9. For each cell, dl ' ~ the location of the cell as being the ' ~t " of the lines through the centers of the cell's t~ll.~l..- ri~ row and column.
Thus, the location of each cell located between each set of markers (a set of markers being three markers - a marker and the next marker fiicplq~Pri ~ ally and the next marker fi;~ 1y) can be d~ i through the above steps. These steps would be applied for each set of markers in the datatile.
25 Having d~ f d the locations of all cells, the method of decoding would then d ~ the contents of the cells to d~ the series of digital data values.
The above ~ c 1.t~ 'a~ can be applied to the enlarged portion of a digitally encoded substrate in FIG. 19. If, for example, the distance between the top of the first marker and the next marker d;~ ~ vertically equals 900 microns, that distance is divided by 3, the number of rows known to exist 30 between markers, that number being known by virLue of being comn ' ~ in the .. ~ . . The result, 300 microns, is '~ d by the number of rows that each row is down from the first row next to the first marker - i.e., 0 for the first row, 300 microns for the second row, and 600 microns for the third row. If each spot is known to have a height of 200 microns, one-half of this height, i.e., 100 microns, is added to the products for each row to ~'- ' - the distance that the lines through the centers of rows are from the top of 35 the first marker. Accordingly, the line 1908 through the center of the first row of possible spots is 100 microns below the vertical ~. '' for the top of the first marker. Line 1909 through the center of the second row of possible spots is 400 microns below the vertical ccrJld of the top of the first marker. Line 1911 through the center of the third row of possible spots is 700 microns below the vertical ~..lil~t~ of the top of the first marker.

SlJ~a l l l ~JTE SHEET (RULE 26) WO 97/32262 PCT~US97/03330 The ~ then ~ - the lines through the centers of columns of possible spots. Visual ' -r " through . ~ l means should d. t~ r the line 1910 through the center of the first column of possible spots and the line 1912 through the center of the last column of possible spots. If, for example, the distance between lines 1910 and 1912 equals 5,600 microns, that distance is divided by 14, the number of ~ S kno vn columns between markers, 15, less one. The result of that division, 400 microns, is "i, 'ie d by the number of columns that each column is ~ 'ly ~iisp~ce(l from the first column of possible spots.
Accc ldil.61y, lines through the centers of the first five columns of possible spots, for example, are 0, 400, 800, 1,200, and 1,600 microns ~ ~ 'ly ~lis~ c~ from the line 1910 through the center of the first column of possible spots.
Other ~ c of the method of decoding involving visual ~~ ~ :ti - d l~ - " i~ Ir the lines through the centers of possible rows and columns through other means. In one such ~ ' ' t, the centers are ~~ ~ I entirely by visual i- ~ Ol~ - e.g., by visually ob~. vi.~g through ~ means panerns of spots, the location of each cell is possible and d~ t .. ~ of the presence or absence of a spot is thereby possible without lg ~
The process above for ~ u-C-il-g data from a digitally encoded L ' , a portion of an example of which is ill :1' in FIG. 19, assumes that cells have been rO.... ~l~d into ~ ' rows and ver~ical columns and that the printing and scanning plu~..,,~ e~ little or no skew. The recovery process of the preferred: ' ~ " makes ~ l; for diagonal ru..~ ng or u ~ ~d skew. The recovery process makes such ~ t.-~ t~, by d ~ e the lines through the centers of rows of possible spots and 20 the centers of columns of possible spots where both such lines are diagonal or skewed, ~A~ cd as having both vertical and kn- ;,~ l di ~1~l ''f ~ The method ûf d~le. E relative distances in printer pixels is the same as though no skew existed. These ratios are then applied to d;~ t~ between markers that are both vertical and h~ l The line through the center of a row of possible spots is a diagonal or skewed line parallel to a line between the centers of a first marker and the next marker ~~ - ~i primarily 25 h( 'ly, but partially vertically. The line through the center of a column of possible spots would be a diagonal or skewed line parallel to a line between the centers of a first marker and the next marker ~
primarily vertically, but partially hc lly. In the case where cells are at perfect 45 degree angles to each other, the recovery process treats series of cells as though oe ~ e in rows and columns, where the lines through the centers of rows and colurnns have equal hol ' and vertical d F'-In a further ~ ' t, c,.c~lJliùn and d~.~r may be i gr ' '(~ into the methods of e~o~ling and decoding of the i~ tioll. FIG. 20 ill . the method of ~u ~,c ' g of this further e~ " Note that in one ~ ' - " of the method of ~ ' ~, this would occur after the CG...,J.~ - - of the digital data (pl~ ,SSil~g block 2003). Note that each of the p.occ~ing blocks in FIG. 20 are ~ ~1 -1 as their similarly named ~ ~ S in FIG. 2, with the ~ of e.~ L"n p.~essi"g block 2004.
35 In one e .ho~;.. - ~ l en.,ly~ is provided by ci.~.lu~ ORing the initial data with a pseudo-random sequence g~ using a secret key as a seed. Note that in this case, the decryption process (as ~ies~ . il cd below) is simply c~;lu~i~ _-ORing the data with the same pseudo-random ~sequcnre Note that this type of c--~ lion process is not a perfectly secure method of data C.~,ly~JtiOl because of the short key length SUBSTITUTE SHEET (RULE 26) used to ~ed pseudo-random s- . ~ ~ and the fact that the same key is likely to be used on more than one message. There are well-known methods to attack this type of cl~cl~lJth~
In order to obtain secure data through c,hl~ion, a one time pad can be . . ' ,~ in place of the p~udo-random -~ A one time pad . ~ a series of randomly O I ~ bits that are known to S both parties (i.e., the "c.,cl~ " party and the "dccl~ " party) and is only used once in the c~ liull process. In a one time pad, the key length is equal to the message length and may be more than 100,000 bits.
Since the one time pad is used once, it is not ~ ~ . ' ' to the same attacks which are used on p~udo-random 5 ~ -In another ~ 1, e"hl~ p~uces~in& could be p r(..l~ using the digital en~ tioll 10 standard (DES) or the RSA algorithm In the RSA -1~ ' digital data is ~ l d using two prime numbers which are lfirliPA together, as is well-known in the art. It should be noted that any didtal encryption method may be . 1~,_d with the present i,...
In the pl~,f~,.,c;d; ' " ~, one method of e..~ lion is used. In a further e.lll~ ' t, the user can choose, as a further format p~ from a variety of; ~JIiol~ methods.
If e.. ~ tiu.. is ~ into the method of " g then dc.,l~ must be included in the method of dec~Aine One . ~ " of the method of decoding of the pre~nt il.._.llion that indudes d~l ~)tiOI. is shown in FIG. 21. Note that each of the p,. ~ blocks in FIG 21 are ~ ~ d in the same manner as their similarly named c ~ in FIG. 16, with the ~ -r ' ~ of ~.,l~JI;on plu~,e~hlg block 2104. After error d~ ;o~ and COll. the data ~ ,~s dc,~ u~,c..~.h.g block 2104). The 20 d~y~)lion ~lucej~h.g 2104 is the inverse of the en.,,~l applied in the method of ' ~ (E;IG. 20). In one c..~b~' - 1, the dc~ tion process requires the use of the same key used during e..~ tion. By using the same key, the original data is recreated.
When the methods of c..~ tion (and decryption) of the present h.. c..;ion are being , ' into the methods of P .~rl;n~ and dp~line~ the present h.~ tiG.. also provides data ;--r " . ~ to be i 25 using plain paper in a rnanner which ~ ,i its privacy, ~ ;n ~ and/or limited ~ccPCc~ ity In the present i~ n, this privacy can easily be obtained through the use of a key or code known to the user(s) when el.~ ion and dc.,l~ of a d- - occurs. Another useful ~ A~ of the present i_lllion is the Al~k ~of a d~: -- Spe~'ifi~'AIIy, the present hl~. could be used to . ' r~e signatures on paper d( or f~cimil~ n~ A further use of the present i~ lion is to limit access to a 30 selected a ~. fi~ Ol~ could be widely ~_' ' ' - d, as in, for example, n~ ape.~ or other mass media, with access lirnited to those J~ ~ ~ to receive the secret key where such d~Ci~ ~ n could occur before or after the enc-~JIiûn process. These keys could be L ,LI ' i, for example, pursuant to 'r ~i ~ or some other method of raising revenue.

35METHODS OF TRANSMllTlNG DIGITAL DATA
FIG. 22 is a block diagram ill~ g a method of i ,, digital data A data source provides c-...~ files or other digital data. The method of i g digital data selects format p~ (step 2201) for the r- tting 2202 of the ~ files or other digital data. FJll.~lLillg 2202 formats the ~, ~ n~ files or other digital data into a series of digital data values and formats that series of SU~ 111 ~JTE SHEET (RULE 26) digital data values in~o a series of cells where each cell contains at least one bit of r ~ from that series of digital data values. Formatting 2202 is done in a~-d~.ce with the format p= i~ selected in step 2201. In the ".~,f~ d e ls ' r~,.... mi.~E 2202 includes defining a cell size (i.e., width and height), and a spot size (i.e., width and height), such sizes defined as pixels of the encoding device, whether 5 a printer, a f~/~cimil~ , a fax/modem using facsimile software, or some other encoding device. The d; . :o.~c of a cell in the preferred ~ bo' are at least as large as the co~ Gn d ---- - of any spot that might occupy the cell. It should be ~ that the details u~ G the ~~ . files or other digital data, selection of format l '.e (step 2201), and r~,. - ~I;.~g 2202, are generally the same as the method of ~ .g d~ s~ e~1 and ill above, ii.. lu-I;.. g as ~ by reference to FIG. 2.
0 I'Ulllldl.[~d digital data is then di: :I d, step 2203. The rnanner of ~' bu may indude any manner for the ~i-' . ;bvl;~n of digital data in elc~iL.vmc or physical form. Embodime~nts of el ~1 -di~ibutioll include f~esimil~ satellite 1..~ , t- l~ l,h~ ~;f ~ :o~ cable t i~ AI~ and high speed line i - (such as Tl or ISDN). F '-' of physical di~l~ bu ~ include postal delivery, h~and delivery, courier or other contract delivery service as well as any other means for moving the digitally 15 encoded b. 1~ In the case of physical ~ - ' the h~ l digital data is first encoded onto a - ~ where the manner of ~ ' Q the substrate is as deD.,lil~d above, ~ -' g as ill d in and de;,~,l il~l by ~ef .~ ~ to nG 2.
Step 2201 plef~..~l~ selects format p ~ optimal for the means of d; ~ .. used. Table I
(included at the end of this n,~ ;o--)~ provides values for format p =-.-- -- t~ for what are expected to be 20 the most common methods of ~iictrihution utilizing personal ~ for on both encoding and decQ~ine Transmission by facsimile rnachine typically requires larger spot and cell sizes than 1.,--~ by fax modem. Where the manner of d - is more likely to h,L.udu~,e damage to the r~ digital data, format p ~ should reflect larger spot and cell sizes than less ~ a~ e means of ~; n il.u~ r D ' - by printing and physical ~ lril~u~ may require larger or smaller spot and cell sizes than 25 el~~ ' -n, d~pc ~ onthe I ~f / ' ~ 1, the el~l~ iictriblltion methodor other factors. Thus, the selection of forrnat ~ allows flexibility to consider not only the manner of ;nE and decoding but also the manner of ~~ Ul j,~A
Once the ~ d digital data is ~' ' d, the recipient decodes that r~ ~ digital data, step 2204. The details of the decoding are as d~srrihed above in the method of ~kro liQe. ;A.~ 1e as i 30 inanddc~-~il~bylefe,~".,~toFIG. 16, 17, 18,and 19. Inthecaseofphysical~' b~ - andinthecase of fi ~sirnil~o i to a facsimile machine, step 2204 of the preferred c ~ includes first scanning the digitally encoded substrate to produce an image which is then decoded. In the case of ele~ umc ~i~trihutio~ of the f~ A~ i digital data, step 2204 of the preferred ~ does not require an initial scan because the digital data is already in el~llùnic form. In any case, step 2204 of the preferred 35 ~ ~h~ f ~l decodes the ~, ~ digital data from an el~llunic image of that fi~ I digital data. A
p,~fe.,~;d ....l~i.. l of decoding step 2204 is that method ~P~rrib~Pd by l~,f~ ,nc~ to and i~ t~ d in FIG.
17, 18, and 19, and, where rvl~ d digital data has been placed on a s ' . FIG. 16. The result derived from step 2204 is the original , Sles or other digital data.

SUEISTITUTE SHEET (RULE 26) W O 97/32262 PCTnUS97103330 FIG. 23 ill in further detail the preferred e- ~l~J;",~ of a method of i - g digital data. The initial p~ ,~S are similar to the steps ill ' in FIG. 22 and de~..lJcd above. The initial source of digital data is ~ ,f~,.dbl~ . - . files stored on the fixed disk drive of a personal . ~ . , but could also be other sources of digital data such as a floppy disk, or another digitally encoded ' The 5 . files _ . ' ' include data files not ~ ' with any pa.li~,uhl ~' -- ic software, data files ---- ' with a palli~,ulal ~p~ ;o~- software, and e. ' '~ files, i.e., files that perform r .~ C
once invoked. The method of i g digital data then provides for ~lection of format F . step 2301, and ~( g step 2302, these steps being the same as those d ~ as steps 2201 and 2202, above.
The f~l ' digital data is then d h ~ (step 2303). The recipient of the digitally encoded substrate then subjects the digitally encoded substrate to decoding process 2304. neco~1ing process 2304 c ~ , "e to step 2204 ~ - d above, is as ~f ~ in detail and ill ' above.
The p,~f~.ll~ e l - of the method of i l~ digital data then ~ t~ C (process step 230S) whether the original digital data included a c , file designed to be run ~ 'ly following 15 decoAin~ Whether a _- . file is designed to be run ~ lly is a maner originally d~ fd by the person creating the original file, quite possibly the person p.. ' g the r ' d digital data. If it is an '-r ~ DOS/W ~ .C file (Windows is a product of Microsoft COI~Juldlioll of 12f ~-~ ~ d, ), then it has a distinct file name ~ t~ - such as ".exe". Fu.i' . ~, the prograrn will be "~, executed if a flag in the header portion of the first ~ n~ is so set. In the pl. f~,.-~
20 ~ ')o~" t, the person p.~u.,ii~ the ~ d digital data has the option to select setting of this flag. For e . '~, the - . file may be comm - - software that activates the recipient: ~ . _ 's modem, places a ~ pho~r call to a pre~-~igr d el~l,~ - bulletin board (or other remote: . such as a network server or Internet servioe provider), . .~ h~ ~ a c~ io ~ between the ~. . '~ co '~ "~ ~ and the ele~ ~ bulletin board (or other remote - n, ~.t ), and dlJ.. '-- ' a further . ~.~ file from the 25 ele.,~ dc bulletin board (or other remote - . - ) to the n . ' "5 If process step 2305 d~ f ~ that the original digital data includes a: ~ , file designed to be run 3~ tic~lly~ step 2306 s ~ ~~ - of that computer file. F~f ~tion of the , file may also follow or preoede the storing on the recipient c ----r ' ':~ fixed disk other ~----r ' files ~, ~ ~ - i within the datatile, possibly ' ' g files available for the: 'ly executed file. It should be ~ that 30 an ~?lir"~i I ' d, 'Iy may be stored and operated solely on the r . "s c ~ , , or may be an app~ic~ion all or part of which involves l -t ~i;C~ e . with other . Thus, for example, the a~lir~ launched .~ lly may be a cn . .~ ;n:'~ program that activates the recipient computer's modem to ~ p~ a remote . . and establish a - - with that remote . _ , and then turn control over to the recipient of the datatile for further action. As a further example, 35 a datatile contains both a ~ . _ file of a d- and il~ u~ oas to ~ ly print the ~1~ -.1 on the printer attached to the recipient's r . . Thus, the recipient gets a hàl'dCOI~ printout of the g~- I througha of effort.
If, all~ ,ly, the datatile does not include a . file designed to be ~ ( ~ lly, the method of ~ i.. g digital data del~,~.,d,~s whether the datatile contains files a---- -' with a SU~a ~ ITE SHEET (RULE 26) W O 97132262 PCTrUS97/03330 p&ti~,ulal arplic~tir)n (process step 2307). A file can be ~~~~ ~ with a ~i ' - arpli~-- when that file has been created by a ~.li~;ular aFFlir~ )n sohware or can be run by a ~.Li~ul~ arplir ti~n sohware.
If the file is intended to be executed as input into an ~ppli~ the a~ r ' ' ~arpl -a~ior is also ,~ ;,.. d in Windows by the file name e - along with standard rna~in~c from ~ - to 5 arrli~-ionc (this mapping is stored in the win.ini file). For example, a file with the name "letter wri" is typically assumed to be a Mic-osufl~ Write d - t, as it ends with the e ~ tr - .~;on ".wri", and that is usually mapped in win.ini to Microsoh Write. Similar to the process for _ t - ~ly ~ e a file, if a file is intended to be I ' ~ ~ as part of an arplic~if,n a flag in the header portion of the first rl ~ t,~, is set, with the setting pl~,f~.dbl~ being selected by the user. For example, a word pl~ g sohware package 10 is an ~ rl ! - sohware that creates files r ~ ; ug d~ ~ If that d~. - - - - ~ file is a ~ with the word ~,.~ei,~lng software and if the word l"u,,~.,,,;.~g sohware is pre-installed, choosing to open the d~:
file actually launches the word ~ucc~;ng sohware and then loads (i.e., opens within the word pl~ess..lg software for further ~.u~c ~ - ~E) the d~ file. If the datatile contains a file ~~c ~ d with a ~Jalli.,ul~
~Mlir~ andifthe~~ hasthat PZ~ UL~ ppl--- sohwarepre-inct~ 1 andifthe 15 recipient chooses to launch the ~p~ ;f~l~ sohware (process step 2308) then step 2309 ~ s ~ io-.
of the ~Mlir ~ion sohware and loads the ---- - ~ file - ' in the datatile. Altc.-~,-. Iy, the e ~ . produces the original: . files or other digital data for purposes such as being stored on the recipient . '~ fixed disk FIG. 24 is a block diagram of a further . bc ' of the method of i g digital data, one 20 which includes fq~ , - The data source can be . files or other digital data. It should be ~ ~1 that the nature of . . files or other digital data is not limited in scope and can include any source ~ 1 previously for other ~ ~ ~ such as files that can be launched D-.lo~ lly or files ~ with a particular ap~ l software that can be launched ~ ly. The method of deco~lin~ then provides for selection of format p, step 2401, and r~ u; i~e step 2402, these steps 25 being the same as those J~ c. . il~;l as steps 2201 and 2202, above.
The present e ' ' t, -~ - ~ . ' lg t~ ar of digital data by facsimile l,~.. c.";~ then . .. ,,,;,.. c in step 2403 whether the person i lg digital data L~ l.. itS by facsirnile machine or, alternatively, by fax/modem ~,0 -~ ~ I'd to a . . If the t. is by fax/modem, the digital data as forrnatted in step 2402 is ~" -~c---~ d over a ~ line: ~ with the method of l., .~ g any 30 ~ . g ~ ' image by faxlmodem. If, ~ , the pewn ~" ;n~E digital data uses a fax m~rhi~ the digital data f*. . ~ l in step 2402 is printed onto a ~_b~: . step 2404. That digitally encoded substrate is then plocc~.cd in step 2405 through a facsimile machine, the ~Jl~C~ g , ~ h ..~I;"g those same substeps eAe.~ ed in any facsimile machine l.~ ....i - :on feeding the d~ t, in this instance the digitally encoded substrate, into the f~rcimil~ machine, entering the t. l IJh~ e number and causing the 35 r~r~ machine to dial the inputted number. Whether by facsimile machine or through a fax/modem, the :on sent over a t~l~ph~ line is r ~ ' lly the same - an image of a datatile one example of which is i11 ~' in FIG. 8. It should be noted, however, that minor ,li~ ces might occur as a result of different format 1 ~5 It should also be noted that a further i bc ' cOlll~ ' ' s, based on the sender's knowledge (or hlrulllldlion available to the sender's . )~ d ~ e~ in advance or SUBSTITUTE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 , of the s~ currentsy activated P~--;IJ ~' ! the possibility of direct n; ..~ o ~ of digitas data from modem to modem. In those inc-~nrfc where possible and ad~, v s, this furthser e ~ l employs direct modem to modem i s in order to achieve i speeds faster than by f~rcimilP i through a fax/modem. The digital data sent pursuant to this S further ~ ~lrYI;.- - .1 is either the r '' ' digital data or the originas ~ ~ , files or other digitas data.
The image of r.~ . d digitas data having been sent by f~rcimilr i - - process step 2406 of the present el - bc ~ then ~ at the, , 's end, whether the recipient receives facsis-nile h by f~rcimile machine or, ~ , through a faxlmodem c~ i to a ~ , . If the recipient receives f~rcimilP l,~ .\c by fax machine, the f~ l sUcd digital data as l ~n~ 5 through 10 the ~ .h~ line is printed by the facsimile maclline, plu~Su~ing a digitasly encoded substrate 2407.
Digitasly encoded substrate 2407is then scanned, process step 2408, using a scanner ~ to a device capable of p~u~luch~g an image in electronic form of the digitally encoded substrate 2407 (the scanner used for this purpose may include the fax machine itself where the fax machine first receives a and prints the substrate and the recipient then feeds the substrate back through the fax machine 15 sending an image of the substrate to a c~ n~ through the r , 's fax/modem). The image of the digital data, whether p~ ' d by facsimile machine and scanned into ele.,l-o.uc form or instead received by r~/l..od~ directly in ch_.,l-unic form, is decoded in step 2409, such dfr~ollinpv being as ~1f ~ d and above, - ' ' g the method ill ~ in and d~ d by l~fel~nce to FIGS~ 16, 17, 18, and l9.
In the present e-.~ l the result of the decoding process 2409 is the l~ u~,lion of the original 20 , files or other digital data. In further ~ L- ' - the result is the ? ~ C'I~;~-E; of . ' ' files or the automatic I '- I ~ I; uE; of an ~p~ " soft vare with the l ~ t~d file loaded within that a~p' --- software, it being ~ od that the l ..~li,. - ..l ill ~ in FIG. 24 involves -'' ;e--' means of l.~. - - ;lli..~ digital data that does not in any way limit what can be done with that digital data once decoded.
In a further P .l~l;.. ~ of a method of i g digital data i.. ~.~.~ing the facsimile in ~co~ r with the method ill ' by FIG. 24, digital data is sent through a fax back system. In ac-,old~ce with this e..~b. " t, a person desiring to receive digital data ~ h.~..f~ a number he~l by a person that desires to ~ the digital data. The person desiring to transmit digital data connects the ~ 4 ~ line to a fax/modem e~ - - ' to a ~ , _ or other means capable of both lece;v-.ng 30 input from a touch tone l~e~'~~ - - and then sending out a facsimile i The person desiring to receive digital data, having ~ ~ a t l. ~h.~n~F _ ~ , inputs ; ,~r~.... .~l ;o" by use of touch tone tf 1 ,~ signals, such ii~ n ;.~- 1...1i~g, at a .- ;~ -- the f~rcjmilP number of the p~erson desiring to receive digital data and~ if a choice is ~.~ ' ' ' e, the digital data desired. The; , or other means capableofboth.-,~,e;vi..gtouchtone ~fl~,ho~- inputand l,r ~ gf~ Ci~ t 1~ then lfl~~.h~ F$
35 (without funher human i ~ - ) the facsimile l ~ r I ~ number of the person desiring to receive digital data and L~l h1;..h S a fP~cimilP: - - with the facsimile means of the person desiring digital data.
Having e-~ h li~ht~i this f~cimihp c~ icr, the c~---,~)ute- or other means capable of both ~~,c,-v;ng touch tone ~f kpl o~f~ input and l. - g facsimile i ~ its an image of the ~ ed digital data in a.,,_~,.~.ce with ~ l~i; . - ~ c of the i.,~ ~,.,Lon dc~.,l ibcd p~ ~v iou~ly. A similar ~ . ~ ar' ~ employs SUBSTITUTE SHEET (RULE 26) a fax-on-demand Ca~Jà~ the image of 1;~ d digital data is lla ~ ;Itrd by facsimile dwing the t~l~pl~ r call placed by the person desiring to receiw digital data.
In a further c~ of the method of L ,, data. r e t ~ - recorded on a substrate includes digital data as well as human readable hlfo. - - where the digital data includes one or both of ~ 5 data needed to have the computer display appear the same or similar to Lhe hu nan readable il~ull~liùn 3pl)~ e on the substrate and data that causes i,.r"",. ~~;o" to appear on the computer display together with L~ .lil~ to further sowces of ;~ r,"" ~ FIG. 25 ill - an example of a substrate and the process a~o,~,.g to this b~- " A paper subsLrate 2501 has printed upon it human readable text and graphics as well as encoded digital data. Paper substrate 2501 l~ D~ tS how the e ~- '~ might be used for 10 - e pwposes as in ~ e flyers, a~ ~,. Ls.,.g '~.lr~~ e in print mcdia or other . .- ~ ~ ti ~e lc More pati ' 1~, the printed paper has three main - , First, at top, hwnan readable text informs the reader of the purpose of the - ~ g material and the contents of the encoded digiLal daLa.
Second, in the middle of paper substrate 25ûl, -DUII~ ' ' by a dashed line, an entry form prompts the reader for the ~ needed to enter a contest. Third, at the bottom, a datatile 2502 includes encoded digital 15 data.
The reader of paper substrate 2501 may then process (step 2503) the datatile, it being ~ od that the reader may also proceed to enter the contest by manually . p' g the entry form as printed without use of a ;~---r ' ~r and without p-Uccs-Di,.g 2503 of the datatile. F~u~,cD~hlg 2503 includes the substeps of c~nnine d~co~1ine and running of the datatile, which substeps are as further d~ d and ill 20 above.
Datatile 2502 in paper substrate 2501 would ~ ,f.,.d)l~ include a computer file designed to be run - ~ly upon ~ . ' of the decoding process of the i..~ The rr . file could be . - s d using, for example, hypertext markup language (~1. Datatile 2502, once scanned, produces an image 2504 on the ~ display (e.g., 2504 ..,~ b a . monitor with the image as the user 25 would see it). Image 2504 has two primary c , First, image 2504 ~l~r~ on the c . ~t display the entry form ~ e on paper substrate 2501. Datatile 2502 p.._f~,.d)l~ contains or invokes word p.u~ .g software allowing the reader to enter and edit through keyboard input the j~r",. -~ .. needed to enter the contest. Second, image 2504 contains at its bottom a series of "icons", d-' ~ areas of the display which, if the user selects by click of a mouse or olt.~ . .se, causes the ~ - . to c~ c~ some 30 further action The datatile is encoded with digital data that includes means for navigating to the subsets of ;~-r~ by each icon ill ' in image 2504. In the instance of image 2504, there are 4 icons. The first, labeled "CONTEST RULES", will, when selected by the user, cause the c~ ,"~, to erase the current image on the display and in its stead produce an image of the contest rules. The second. Iabeled "ACME COMP. DEALERS", will, when selected by the user, cause the ~~ . to erase the current image 35 on the display and in its stead place an image of a list of Acme , dealers on the display. The third, labeled "FAX ENTRY FORM", will, when selected by the user, cause the rh ~ to activate its fax/modem and send a f~rcimilP L~ ...;c~ of an image of the entry form ~ppe~rinp on the display, as altered by the user with keyboard input. The fourth, labeled "PRESIDENT'S VIDEO CLIP", will, when selected by the user, cause the: pu to erase the current image on the display and in its stead cu ~.... re a video clip on SUe~S 111 ~ITE SHEET (RULE 26) W O 97/32262 PCTrUS97/03330 the display. Thus, FIG. 25 ill - an . ~ - ~ ' ' g both . - - links to further sources of data and "reverse WYSIWYG" - i.e., instead of printing on paper the image ~ x ~ on a . . _ display (What You See Is What You Get), the image printed on paper appears on the ~ display. This feature is a ~ . ' ' ~ ~ by virlue of the datatile being encoded with i-~Ll u~ .s such that di~yldying means 5 will display an image ~ ,~ ' '~ to the human readable infonn~inn printed on substrate 2501.
It should be unde,~ldod that the digital data of each i ' lyi- g icon ar~lir~ti~n may derive from the datatile, from some other source ' ' g other digitally encoded ~ ' . remote c . c~
ly by modem, compact disks, hard disk, floppy disk, or from a combination of the datatile and another source. For e , ', referring back to FIG. 25, selecting "CONTEST RULES" may cause the l0 y,..q. n~ l to produce on its display a list of contest rules derived from the datatile while selecting "PRESIDENT'S VIDEO CLIP" may cause the . ~,~ to access a video clip from a compact disk or to instead search for and access the video clip from various llt ~_ sources - for example, first d~,tu.l.li-.il.g whether the video clip exists on the -~ . _ '~ hard disk looking next on a compact disk, then invoking epho.,;r --- with an online service, bulletin board, an internal or external network or the 15 Internet, ~ ;nE the video clip from the first available source. In one c-.~ uniform resource locators (llRLs) are used in the hL~ lioas directing the CO-~ly~ ~- to access digitsal data.
It should be further I ~ ~ ~ ~ d that because the i...~ acts as a channel for digital ~ r the ability to link the printed page to the el~. ~- world can be ~ ' in any manner in which il.~hl - can be ~ieiti7~ Thus, while FIG. 25 " 1~ the use of icons, ~ ~ -20 links to further data sources can also occur through hypertext - i.e., specially r~Jlll~led text which when selected by the click of a mouse bunon causes a jump to some further source of data. Also, HTML is just one method known to those skilled in p--O ~ for AC . ' ' g the linking of paper to the ele~L-ullic world. Other methods include the object linking and e ' ~ ("OLE") facility of ~'il.du....(~ Version 3. l pl~ ' ~ by Microsofl CGIYUIdiiUn of R I - d, W~ and the facility of Microsofl Plus@) for 25 Windows 95~!9 to place an icon in a dn.- ....1 which, when selected by click of a mouse button, 5 -,t~ 1y activates the host ~~ . t~ 's modem and Internet access software, calls and ~ h ~ contact with the host 's Internet access provider, and r.a~, g to the URL specified for the icon (i.e., the URL specified by the person creating the icon for the 1~- ).
The linking of paper with the ele.,llulf,c world is pl~,f~,.dl~ using the methods of 30 ~ ' ~ and decoding d~~,.il~ above. These methods of encoding and ~ ~in~ make the linking feasible due to many of the unique and ad~v , features ~ ' ' .G the density of data possible and the wide range of a ~ p'~' '- printers and, more hl.,Juli 1~" a~ off-the-shelf sC?nr~ine devices.
It should be further I ' ',c ~ d that while the i..~. serves as a link between paper and the cl~ world, the ele~ u-~ic, - A can also be just a digital path to an analog source. For example, 35 the digital data can include a way of ndVlodlil~g~ apriori, through a voice mail system where the digital data includes a company's main t~ 1 y~ -nr number, a directory of; , ' ,_~,s of a company, the pdlli~,ulal ' ~p~ for each of those; . ' ,~s and c . il~h ~,~,lidlls to activate a calling device (such as a modem) place a t~ 1 ~,h~ call to the company's main number and navigate through the CO...ydl.~'s voice rnail system to the 1~ 'c~ '- - - - of the ! . ' t J _e selected by the user before the call is made. By ~ n~

SUBSTITUTE SHEET (RULE 26) W O 97n2262 rCTrUS97/03330 the digital data, acL.,dliilg the program contained in the digital data, and making a selection of e , '~,_e, the user can avoid the usual time ~ - ~ method of navigating a CO~ 'S voice mail system. The method is especially aJ~ c. ~uc for ~ ' calls to the same company because the digital data would pl~ be stored on hard disk after dec~lin~ Thus, the digital data serves as a link between two analog 5 sources - the user and the company; . ' ,_e.

Printer Scanner Type Type SH SW CH CW MH MW MTS SPS RPM DS DA DD
600dpi laser 400dpiflatbed 3 2 4 3 4 4 6 27 3 7 7 4 600dpi laser 300dpi flatbed 4 3 5 4 4 4 6 26 3 3 13 4 600dpi laser 400dpi flat/hand 3 2 4 3 4 4 6 28 3 7 3 4 600dpi laser 300dpi flat/hand 4 3 5 4 4 4 6 25 3 6 3 4 600dpi laser fax/sheetfed 6 8 10 10 12 12 12 30 3 7 2 4 300dpi laser 400dpi flatbed 2 1 2 2 3 3 3 26 3 3 13 5 300dpi laser 300dpi flatbed 3 1 3 2 3 3 3 26 3 3 13 5 300dpi laser 400dpi flat/sheet 2 1 2 2 3 3 3 25 3 6 3 5 300dpi laser 300dpi flat/hand 3 1 3 2 3 3 3 25 3 6 3 5 300dpi laser fax/sheetfed 3 4 5 5 6 6 6 29 3 7 2 5 360dpi inkjet 400dpi flatbed 2 2 3 3 3 3 5 25 3 4 8 5 360dpi inkjet 300dpi flatbed 2 2 4 3 3 3 5 25 3 4 8 5 360dpi inkjet 400dpi flat/hand 2 2 3 3 3 3 5 24 3 5 3 5 360dpi inkjet 300dpi flat/hand 2 2 4 3 3 3 5 24 3 5 3 5 360dpi inkjet fa~Jshc~,d 5 5 9 9 5 5 8 29 4 5 2 5 300dpi inkjet 400dpi flatbed 2 2 4 3 3 3 5 25 3 3 9 5 300dpi inkjet 300dpi flatbed 2 2 4 3 3 3 5 22 3 6 5 5 300dpi inkjet 400dpi flat/hand 2 2 4 3 3 3 5 25 3 6 2 5 300dpi inkjet 300dpi flat/hand 2 2 4 3 3 3 5 25 3 6 2 5 300dpi inkjet fax/sheetfed 5 5 9 9 5 5 8 30 4 4 2 5 Thermal fax 400dpi flatbed 2 1 2 1 3 3 3 24 4 6 8 5 Therrnal fax 300dpi flatbed 2 2 2 2 3 3 3 25 4 3 9 5 Thermal fax 400dpi flat/hand 2 1 2 1 3 3 3 25 4 7 3 5 Thermal fax 300dpi flat/hand 2 2 2 2 3 3 3 25 4 6 2 5 Thermal fax fax/sheetfed 3 3 4 4 5 5 4 22 4 4 4 5 Laser fax 400dpi flatbed 2 1 2 2 3 3 3 25 4 3 9 5 Laser fax 300dpi flatbed 2 2 2 3 3 3 3 24 4 5 4 5 Laser fax 400dpi flat/hand 2 1 2 2 3 3 3 22 4 7 2 5 Laser fax 300dpi flat/hand 2 2 2 3 3 3 3 24 4 3 3 s Laser fax faxlsheetfed 3 3 4 4 5 5 4 22 4 4 4 5 SU~3 111 ~ITE SHEET (RULE 26) W O 97/32262 PCT~US97/03330 Inkjet/ribbonfax 400dpiflatbed 2 3 2 3 3 3 3 19 4 6 4 5Irlkjetlribbonfax 300dpiflatbed 2 3 2 3 3 3 3 19 4 6 4 5 Inkjet/ribbon fax 400dpi flat/hand 2 3 2 3 3 3 3 17 4 6 2 5 Inkjet/ribbonfax 300dpiflat/hand 2 3 2 3 3 3 3 17 4 6 2 5 Inkjet/ribbonfax fax/sheetfed 3 3 4 4 5 5 4 22 4 4 4 5 fax modem to fax modem 2 1 2 1 3 3 3 58 4 6 4 5 Rf f~ wcij in Table 1:
SH Spot Height in pixels SPS Spots per Segment SW Spot Width in pixels RPM Rows per Marker CH Cell Height in pixels DS Data Se"
CW Cell Width in pixels DA n, ~ .. , Across MH Marker Height in pixels DD D~ f~ Down MW Marker Width in pixels flat/hand for flatbed or hanheld MTS Marker to Spot in pixels r~ r ~ for sheetfed or fax machine as scanner SUBSTITUTE SHEET (RULE 26)

Claims (42)

We claim:
1. A method of encoding data on a substance as digital data comprising:
formatting the data into a series of digital data values wherein said series of digital data values are formatted into a pattern consisting of a plurality of spaces at least some of which have dimensions M pixels by N pixels wherein at least one bit in said series of digital data values are represented in each of said plurality of spaces where at least one logical state is expressed by the presence in the space of a spot of a spot size with dimensions X pixels by Y pixels and at least one other logical state is expressed by the absence of the absence of a spot with dimensions X pixels by Y pixels from the space and where at least one of M, N, X and Y may be any of a plurality of sizes irrespective of at least one of the dimensions M, N, X, and Y, and outputting said pattern onto at least one substrate, such that the data is represented in digitized from on said least one substrate.
2. The method of encoding data of claim 1 wherein said formatting said series of digital data values into said plurality of spaces wherein a plurality of bits in said series data values are represented in each of said plurality of spaces where a plurality of logical states are expressed by a plurality of colors for a spot which the space may contain where each color represents a different logical state for said space.
3. The method of encoding data of claim 2 wherein said plurality of colors consists of a plurality of shades of gray.
4. The method of encoding data of claim 1 wherein a plurality of space sizes are defined.
5. The method of encoding data of claim 1 wherein a plurality of spot sizes are defined.
6. The method of encoding data of claim 5 with at least one plurality of spot sizes and at least one space size and where all spaces of said at least one space size may contain a spot size from one of said at least one plurality of spot sizes, and wherein said series of digital data values are formatted into a plurality of spaces of the space size wherein each space represents a plurality of bits in said series of digital data values where one logical state is expressed by the absence of a spot from the space and where further logical states are represented by the presence of spots of the various spot sizes in the space where a spot of each spot size in the space represents a further logical state.
7. The method of encoding data of claim 5 wherein at least one bit in said series of digital data values is represented in each of said plurality of spaces where one logical state is expressed by the presence of a spot of one spot size and at least one other logical state is expressed by the presence of a spot with a size different from a spot expressing the first logical state.
8. The method of encoding data of claim 1 with at least one plurality of spot sizes and at least one space size and where all spaces of a particular size may contain a spot size from one of said at least one plurality of spot sizes, and wherein said series of digital data values are formatted into a plurality of spaces of said particular size wherein each space represents a plurality of bits in said series of digital data values where one logical state is expressed by the absence of a spot from the space and where further logical states are represented by the presence of spots of various spot sizes and colors in the space where a distinct logical state is represented by a spot of each combination of color and size.
9. The method of encoding data of claim 1 wherein said series of digital data values are formatted into at least one grouping of contiguous cells placed at a predefined location relative to a landmark, whereby the location of said at least one grouping of contiguous cells can be determined by reference to the location of said landmark and where the spaces of said at least one grouping of contiguous spaces are formatted into a plurality of contiguous rows and a plurality of contiguous columns and where at least one series of markers borders said at least one grouping of contiguous spaces on at least one side, whereby the location of the rows or columns of spaces can be determined by reference to the markers.
10. The method of encoding data of claim 9 wherein said series of digital data values are formatted into a pattern with a plurality of groupings of contiguous spaces.
11. A system of encoding data on a substrate as digital data comprising selecting means for selecting at least one value for at least one format parameter from a plurality of values for the parameter, formatting means coupled to the selecting means for formatting the data into a series of digital data values wherein the series of digital data values are formatted into a plurality of cells at least some of which have a ~ size with dimensions M pixels wide by N pixels high where if a value has been selected for a format parameter determining the width of a cell then M is defined as equaling the value so selected, and where if a value has been selected for a format parameter determining the height of the cell then N is defined as equaling the value so selected, wherein each cell represents at least one bit in the series of digital data values where at least one logical state is expressed by the presence of a spot with a spot size with dimensions X pixels wide by Y pixels high, where if a value has been selected for a format parameter determining the width of a spot then X is defined as equaling the value so selected and where if a value has been selected for a format parameter determining the height of a spot then Y is defined as equaling the value so selected and at least one other logical state is expressed by the absence of a spot of said spot size in the cell and wherein said formatting is done in accordance with such other values for format parameters as have been selected, and outputting means coupled to the formatting means for outputting said plurality of cells onto at least one substrate, such that the data is represented in digitized form onto said at least one substrate.
12. The system of encoding data of claim 11 where the selecting means selects values from plurality of values for at least one format parameter determining at least one dimension of at least one cell size, for at least one format parameter determining at least one dimension of at least one spot size, and for at least one format parameter selected from the group consisting of the width of at least one marker, the height of at least one marker, the distance of markers from cells and the distance of markers from each other, and where the formatting means formats said series of digital data values into said plurality of cells with at least one grouping of contiguous cells where said at least one grouping of contiguous cells are formatted into a plurality of contiguous rows and a plurality of contiguous columns and where at least one series of markers borders said at least one grouping of contiguous cells on at least one side, and where said formatting is done in accordance with the values selected.
13. The system of encoding data of claim 11 where the selecting means consists of inputting means for inputting said at least one value for said at least one format parameter from a plurality of values whereby the user is provided the ability to alter the manner in which the series of digital data values becomes formatted into said plurality of cells.
14. The system of encoding data of claim 11 where the selecting means selects said at least one value for said at least one format parameter from information available without user input.
15. The system of encoding data of claim 11 where the selecting means includes inputting means for inputting information where the selecting means selects said at least one value for said at least one format parameter from a plurality of values based at least in part on the information inputted from the inputting means.
16. The system of encoding data of claim 11 where the selecting means includes inputting means for inputting said at least one value for said at least one format parameter from a plurality of values and where the selecting means selects values for any remaining format parameters first from available information and then based on default values.
17. The system of encoding data of claim 16 where, the selecting means includes inputting means for inputting values for format parameters establishing said dimensions M pixels wide by N pixels high for said at least one cell size, for format parameters establishing said dimensions X pixels wide by Y pixels high for said at least one spot size, for format parameters establishing the dimensions of at least one marker size, the distance of markers from cells, the distance of markers from each other, the type of printer utilized by said encoding means for encoding said plurality of cells onto said at least one substrate, the number of datasectors across, where a datasector is the smallest grouping of cells capable of delivering a complete message after applying error detection and correction, the number of datasectors down, the number of segments across, where a segment represents a row of cells between two columns of markers, and the number of spots per segment, and where, the formatting means formats said series of digital data values into said plurality of cells with at least one grouping of contiguous cells where said at least one grouping of contiguous cells are formatted into a plurality of contiguous rows and a plurality of contiguous columns and where two columns of markers border said at least one grouping of contiguous cells on two sides, where the markers are formatted according to the format parameters selected that establish the dimensions of at least one marker size, the distance of markers from cells, the distance of markers from each other, and where all such groupings of contiguous cells form a main body of data and where the formatting means further formats said plurality of cells into the number of datasectors determined by the format parameters establishing the number of datasectors down and the number of datasectors across where each datasector consists of at least one segment down and at least one segment across with the number of segments across determined by the format parameter establishing the number of segments across, and where each segment consists of a plurality of cells across with the number of cells across determined by the format parameter establishing the number of spots per segment, and where the formatting means formats adjacent to said at least one grouping of contiguous cells a metasector consisting of a plurality of cells wherein each cell of said metasector at least one bit in a series of bits representing the digital data values expressing the values selected for the format parameters whereby information contained in said metasector can be used to decode the data contained in the at least one grouping of contiguous cells.
18. The system of encoding data of claim 11 where the dimensions M and N define a nonrectangular shape and where the formatting means formats at least one plurality of cells into said nonrectangular shape of dimensions M and N.
19. The system of encoding data of claim 11 where the dimensions X and Y define a nonrectangular shape and where the formatting means formats at least one plurality of spots into said nonrectangular shape of dimensions X and Y.
20. A method of decoding digital data values formatted into a pattern comprising the steps of:
determining the locations of cells in a first grouping of contiguous cells where the groupings of contiguous cells contains digital data indicating information concerning the formatting of a plurality of the remaining cells in said pattern, deriving from said first grouping of contiguous cells said information concerning the formatting of a pattern of a plurality of the remaining cells in said pattern, where the deriving comprises extracting digital data from each cell wherein each cell contains at least one bit of data where one logical state is expressed by the presence in the cell of a spot with one set of attributes and at least one other logical state is expressed by the absence from the cell of a spot with the same set of attributes as a spot the presence of which expresses the first logical state, determining the locations of said plurality of the remaining cells in said pattern, where said step of determining locations is performed by reference to and use of at least some of said information concerning the formatting of a plurality of the remaining cells in said pattern, deriving digital data values from said plurality of the remaining cells in said pattern where the deriving comprises extracting digital data from each cell wherein each cell contains at least one bit of data where one logical state is expressed by the presence of a spot with one set of attributes and at least one other logical state is expressed by the absence from the cell of a spot with the same set of attributes as a spot the presence of which express the first logical state, whereby digital data is recovered from said pattern.
21. The method of decoding of claim 20 where the cells of said first grouping of contiguous cells are formatted into a plurality of contiguous rows and a plurality of contiguous columns and the cells of said plurality of the remaining cells in said pattern are formatted into a plurality of contiguous rows and a plurality of contiguous columns and where at least one series of markers borders on at least one side of said first grouping of contiguous cells and on at least one side of said plurality of the remaining cells in said pattern and where the steps of determining locations of cells in said pattern is performed by reference to and use of the markers.
22. The method of decoding of claim 21 where all cells are formatted into groupings of contiguous cells and encoded onto a substrate and each grouping of contiguous cells is formatted into a plurality of contiguous rows and a plurality of contiguous columns, and where series of markers border each grouping of contiguous cells on at least two sides, and where a known number of rows exists between the top of each marker and the top of the next marker displaced vertically, and where a known number of columns exists between the left side of each marker and the left side of the next marker displaced horizontally, and where determining location of cells on the digitally encoded substrate is performed by reference to and use of said series of markers comprising the steps, applied for each grouping of cells between markers, of:
locating a first marker bordering a first grouping of contiguous cells, determining the vertical coordinate of the top of said first marker, locating a second marker being the nearest marker displaced vertically from said first marker, determining the distance from the top of said first marker to the top of the first row of spots, locating a third marker being the nearest marker displaced horizontally from said first marker, determining the height of each spot, determining the lines through the centers of each of the rows of cells by determining the distance from the top of said first marker to the top of said second marker, dividing that distance by the number of rows of cells known to exist between markers, and for each of the known number of rows, adding to said vertical coordinate of the top of said first marker the sum of one-half the height of each spot plus the distance from the top of said first marker to the top of the spots in the first row, plus, for each row of cells, the product from multiplying the result of the division by the number of rows said each row of cells is vertically displaced from the first row of cells, determining the lines through the centers of each of the columns of cells by determining the lines through the centers of the rightmost and leftmost columns of cells located between said first marker and said third markers, determining the horizontal coordinate of the line through the center of the leftmost column of cells, determining the distance between the lines through the centers of the rightmost and leftmost columns of cells between said first marker and said third marker, dividing that distance by the result derived by subtracting one from the number of columns known to exist between markers, and, for each column, multiplying the result of that division by the number of columns that said each column is horizontally displaced from the leftmost column, and adding that product to the horizontal coordinate of the line through the center of the leftmost column of cells, and for each cell, determining the location of the cell to be the intersection of the lines through the centers of the cell's corresponding row and column.
23. The method of decoding of claim 21 where all cells are formatted into groupings of contiguous cells and encoded onto a substrate and where each grouping of contiguous cells is formatted into a plurality of contiguous rows and a plurality of contiguous columns, and where series of markers border said each grouping of contiguous cells on at least two sides, and where, for said each grouping of contiguous cells, a known number of printer pixels separates the markers from the edges of possible spots, a known number of rows exists between the top of each marker and the top of the next marker displaced vertically, a known number of columns exists between the right side of each marker and the left side of the next marker displaced horizontally, each cell has the same height and width, each spot has the same height and width, the vertical printer pixel coordinates for the top of a marker and the top of the spots in the nearest row are equal, and where said first grouping of contiguous cells contains information concerning the encoding of the remaining cells on the digitally encoded substrate where the information includes, the marker, spot, and cell widths and heights measured in printer pixels, the value of the known number of printer pixels that horizontally separates the markers from the edges of possible spots in the nearest columns, the value of said known number of rows, the value of said known number of columns, and where the method of decoding further comprises creating an image of the digitally encoded substrate where the various parts of said image can be measured in image pixels and the locations of the various parts can be referenced by horizontal and vertical image pixel coordinates, and where the steps of locating cells on the digitally encoded substrate, applied for each grouping of contiguous cells located between markers, comprise:
locating a first marker bordering a first grouping of contiguous cells, determining the image pixel coordinates of the center of said first marker, determining the image pixel coordinates of the top of said first marker, locating a second marker being the nearest marker displaced vertically from said first marker, determining the image pixel coordinates of the center of said second marker, locating a third marker being the nearest marker displaced horizontally from said said first marker, determining the line through the center of each of the rows of cells between said first marker and said second market by:
determining the distance in image pixels from the center of said first marker to the center of said second marker, determining the printer pixels vertically separating the centers of said first marker and said second marker by multiplying the value for the known number of rows by the printer pixel cell height, determining for each of the known number of rows the printer pixel vertical distance from the center of said first marker to the line through the center of the row by subtracting one-half of the printer pixel marker height from the sum of one-half the printer pixel spot height plus the product derived from multiplying the printer pixel cell height by the number of rows that the row is displaced from the top row between said first marker and said second marker, determining for each of said known number of rows a ratio of printer pixels thatthe line through the center of that row is vertically displaced from the center of said first marker to said printer pixels vertically separating the centers of said first marker and said second marker, for each row, adding to the vertical image pixel coordinate of the center of said first marker the product from multiplying the distance in image pixels from the center of said first marker to the center of said second marker by said ratio of printer pixels that the line through the center of that row is vertically displaced from the center of said first marker to said printer pixels vertically separating the centers of said first marker and said second marker, determining the lines through the centers of each of the columns of cells by determining the distance in image pixels from the center of said first marker to the center of said third marker, determining the printer pixels horizontally separating the centers of said firstmarker and said third marker by determining the sum of the printer pixel marker width, plus the known printer pixel distance horizontally separating said first marker and the nearest edges of possible spots in the nearest column to the right of said first column, plus the printer pixel spot width, plus the product derived from multiplying the cell width by the result derived from reducing by one said value for said known number of columns, plus the known printer pixel distance horizontally separating said third marker and the nearest edges of possible spots in the nearest column to the left of said third marker, determining for each of the known number of columns the printer pixel horizontaldistance from the center of said first marker to the line through the center of the column by determining the sum of half the printer pixel marker width, plus the known printer pixel distance horizontally separating said first marker and the nearest edges of possible spots in the nearest column to the right of said first marker, plus half the printer pixel spot width, plus the product derived from multiplying the printer pixel cell width by the number of columns that the column is horizontally displaced from the nearest column to the right of said first marker, determining for each of said known number of columns a ratio of printer pixels that the line through the center of that column is horizontally displaced from the center of said first marker to said printer pixels horizontally displaced the centers of said first marker and said third marker, for each column, adding to the horizontal image pixel coordinate of the center of said first marker the product from multiplying the distance in image pixels from the center of said first marker to the center of said third marker by said ratio of printer pixels that the line through the center of that column is horizontally displaced from the center of said first marker to said printer pixels horizontally separating the centers of said first marker and said third marker, and for each cell, determining the location of the cell to be the intersection of the lines through the center of the cell's corresponding row and column.
24. The method of decoding of claim 20 wherein said pattern is encoded on a substrate and where said substrate further comprises a landmark and wherein the steps of the method of decoding further comprise an initial step of locating said landmark and wherein the step of determining the locations of said first grouping of contiguous is performed by reference to the location of said landmark.
25. The method of decoding of claim 20 wherein said digital data values are encoded onto a plurality of substances and wherein said method of decoding further comprises a step of locating each of the groupings of cells on each of said plurality of substrates wherein the steps of determining the locations of cells and deriving digital data values are then applied to each of the groupings of cells on each of said plurality of substrates.
26. The method of decoding of claim 25 further comprising creating a series of images of the groupings of cells from said plurality of digitally encoded substrates wherein the steps of determining the locations of cells and deriving digital data values are then applied to each of the series of images of said plurality of digitally encoded substrates.
27. A data structure for a datatile stored on a computer usable substrate, the datatile being used by a program operating on a computer system to decode a series of digital data values, the data structure comprising:
a first series of cells and corresponding spots representing the digital data values, the digital data values being represented by the presence or absence in each of the cells of corresponding spots having predetermined attributes and, a second series of cells and corresponding spots representing digital information from which at least the predetermined attributes of the spots in the first series of cells may be determined.
28. The data structure of claim 27 wherein each cell represents a plurality of digital data values, each digital data value represented by one of a plurality of spots having different predetermined attributes.
29. A method of encoding data into a pattern as digital data comprising:
formatting the data into a series of digital data values formatted into a plurality of spaces with at least one grouping of spaces further formatted into a plurality of subgroupings of contiguous spaces each formatted into a plurality of rows and a plurality of columns where each subgrouping is bordered on at least one side by a series of markers used as guideposts in determining the locations of the spaces, and where at least one bit in said series of digital data values is represented in each of said plurality of spaces where at least one logical state is expressed by the presence in the space of a spot of a particular spot size and at least one other logical state is expressed by the absence of a spot with said particular spot size from the space.
30. A method of transmitting data as digital data comprising selecting at least one value for at least one format parameter from a plurality of values for the parameter, formatting the data into a series of digital data values wherein the series of digital data values are formatted into a plurality of cells at least some of which are of a cell size with dimensions M pixels wide by N pixels high where if a value has been selected for a format parameter determining the width of a cell then M equals the value so selected, and where if a value has been selected for a format parameter determining the height of the cell then N equals the value so selected, and wherein each cell represents at least one bit in said series of digital data values where at least one logical state is expressed by the absence from the cell of a spot of spot size with dimensions X pixels wide by Y pixels high in the cell and at least one other logical state is expressed by the presence of a spot in the cell of a spot size with dimensions X pixels wide by Y pixels high, where if a value has been selected for a format parameter determining the width of a spot then X equals the value so selected, and where if a value has been selected for a format parameter determining the height of a spot then Y equals the value so selected, and wherein said formatting is done in accordance with such other values of format parameters as have been selected, distributing the formatted digital data, and decoding the formatted digital data received such that the original data is reconstructed by the decoding means.
31. The method of transmitting data of claim 30 wherein said distributing consists of facsimile transmission.
32. The method of transmitting data of claim 30 wherein the digitally encoded substrate is further encoded with human readable information and where said digital data includes a digital representation of said human readable information and where said method of transmitting data further comprises displaying an image of said human readable information.
33. The method of transmitting data of claim 30 wherein said formatted digital data comprises a computer file designed to be run automatically upon completion of the decoding and wherein the method of transmitting data further comprises commencing execution of said computer file.
34. The method of transmitting data of claim 30 wherein said formatted digital data comprises a computer file associated with a particular application software and wherein the method of transmitting data further comprises launching said particular application software where said launching includes loading of said computer file within said particular application software whereby the computer decoding said formatted digital data presents upon decoding immediate access to said computer file for viewing and further manipulation.
35. A method of accessing data comprising:
producing digital instructions for accessing data, formatting into a pattern the series of digital data values representing said digital instructions for accessing data, distributing the pattern of formatted digital data, decoding the pattern of formatted digital data, and activating the digital instruction for accessing data, whereby the data is accessed.
36. The method of accessing data of claim 35 wherein said digital instructions for accessing data consists of hyperlinks to information extraneous to said formatted digital data.
37. A computer usable medium having computer readable program code means embodied in said medium for causing said computer to perform method steps for decoding digital data values formatted in at least one pattern, the at least one pattern comprising a series of cells and spots, each spot corresponding to at least one cell, the method steps comprising:
determining the locations of at least a first and a second group of cells in the pattern;
deriving from the first group of cells information from which at least the format of the cells and spots in the second group of cells may be determined; and deriving the digital data values from the second group of cells using the format information.
38. The computer usable medium of claim 37 wherein the step performed by the computer of determining the locations of the first and second groups of cells further comprises locating a landmark from which the location of the first group may be determined and deriving information from the first group of cells from which the location of the second group may be determined.
39. A method of activating any of a plurality of functionalities capable of being activated by digital instructions comprising the steps of:
producing digital instructions for activating at least one of said plurality of functionalities, formatting into a pattern the series of digital data values representing said digital instructions, decoding the pattern of formatted digital data values, and activating said digital instructions, whereby said at least one of said plurality of functionalities is activated.
40. The method of activating any of a plurality of functionalities of claim 39 further comprising the step of providing human readable information which relates to the pattern of formatted digital data values.
41. The method of activating any of a plurality of functionalities of claim 40 where the human readable information includes a description of at least one functionality being activated.
42. The method of activating any of a plurality of functionalities of claim 40 where the human readable information includes a description of the steps to be taken to decode the pattern of digital data values.
CA2247924A 1996-03-01 1997-02-28 Variable formatting of digital data into a pattern Expired - Lifetime CA2247924C (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/609,549 US6098882A (en) 1996-03-01 1996-03-01 Variable formatting of digital data into a pattern
US08/609,549 1996-03-01
PCT/US1997/003330 WO1997032262A1 (en) 1996-03-01 1997-02-28 Variable formatting of digital data into a pattern

Publications (2)

Publication Number Publication Date
CA2247924A1 CA2247924A1 (en) 1997-09-04
CA2247924C true CA2247924C (en) 2010-09-07

Family

ID=24441255

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2247924A Expired - Lifetime CA2247924C (en) 1996-03-01 1997-02-28 Variable formatting of digital data into a pattern

Country Status (7)

Country Link
US (2) US6098882A (en)
EP (2) EP1471461A3 (en)
AU (1) AU1985297A (en)
CA (1) CA2247924C (en)
DE (1) DE69729118T2 (en)
IL (3) IL126019A (en)
WO (1) WO1997032262A1 (en)

Families Citing this family (120)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001517331A (en) 1995-08-03 2001-10-02 インターヴァル リサーチ コーポレイション Computerized interactor system and method of providing the same
US6940486B2 (en) 1995-08-03 2005-09-06 Vulcan Patents Llc Computerized interactor systems and methods for providing same
JP3010136B2 (en) 1996-03-28 2000-02-14 オリンパス光学工業株式会社 Code data output device
US6308654B1 (en) 1996-10-18 2001-10-30 Applied Materials, Inc. Inductively coupled parallel-plate plasma reactor with a conical dome
US6256638B1 (en) 1998-04-14 2001-07-03 Interval Research Corporation Printable interfaces and digital linkmarks
US6411994B2 (en) * 1997-10-07 2002-06-25 Interval Research Corporation Interface system for providing content using context hotspots
US6518950B1 (en) 1997-10-07 2003-02-11 Interval Research Corporation Methods and systems for providing human/computer interfaces
US6282206B1 (en) * 1997-10-09 2001-08-28 Interval Research Corporation Variable bandwidth communication systems and methods
US6956497B1 (en) 1997-10-09 2005-10-18 Vulcan Patents Llc Method and apparatus for sending presence messages
WO1999019823A2 (en) * 1997-10-10 1999-04-22 Interval Research Corporation Methods and systems for providing human/computer interfaces
AU1937199A (en) * 1997-12-24 1999-07-19 Interval Research Corporation Printable interfaces and digital linkmarks
US6377865B1 (en) * 1998-02-11 2002-04-23 Raindrop Geomagic, Inc. Methods of generating three-dimensional digital models of objects by wrapping point cloud data points
JPH11341258A (en) * 1998-05-28 1999-12-10 Toshiba Corp Device and method for picture processing
US6256398B1 (en) 1998-08-22 2001-07-03 Kenneth H. P. Chang Encoding and decoding a message within an image
JP4252665B2 (en) * 1999-04-08 2009-04-08 アイファイヤー アイピー コーポレイション EL element
US6209923B1 (en) * 1999-04-14 2001-04-03 The Standard Register Company Security document and authentication scheme
AUPQ439299A0 (en) * 1999-12-01 1999-12-23 Silverbrook Research Pty Ltd Interface system
US7062651B1 (en) * 1999-05-25 2006-06-13 Silverbrook Research Pty Ltd Network printer registration protocol
US7233320B1 (en) 1999-05-25 2007-06-19 Silverbrook Research Pty Ltd Computer system interface surface with reference points
US6145742A (en) * 1999-09-03 2000-11-14 Drexler Technology Corporation Method and system for laser writing microscopic data spots on cards and labels readable with a CCD array
US6880755B2 (en) * 1999-12-06 2005-04-19 Xerox Coporation Method and apparatus for display of spatially registered information using embedded data
US6678425B1 (en) * 1999-12-06 2004-01-13 Xerox Corporation Method and apparatus for decoding angular orientation of lattice codes
US6935562B2 (en) 1999-12-06 2005-08-30 Xerox Corporation Operations on images having glyph carpets
US6615219B1 (en) * 1999-12-29 2003-09-02 Unisys Corporation Database management system and method for databases having large objects
US6771379B2 (en) * 2000-02-29 2004-08-03 Hewlett-Packard Development Company, L.P. Streamlined real-time printmask revision, and printing-element data system, to circumvent element malfunction
JP2001287330A (en) 2000-04-10 2001-10-16 Olympus Optical Co Ltd Method and apparatus for forming image data of optically readable dots and recording medium
US7647555B1 (en) * 2000-04-13 2010-01-12 Fuji Xerox Co., Ltd. System and method for video access from notes or summaries
US6996505B1 (en) 2000-06-21 2006-02-07 Raindrop Geomagic, Inc. Methods, apparatus and computer program products for automatically generating nurbs models of triangulated surfaces using homeomorphisms
US7290285B2 (en) * 2000-06-30 2007-10-30 Zinio Systems, Inc. Systems and methods for distributing and viewing electronic documents
US6857571B2 (en) * 2000-06-30 2005-02-22 Silverbrook Research Pty Ltd Method for surface printing
US7047281B1 (en) 2000-08-08 2006-05-16 Fineground Networks Method and system for accelerating the delivery of content in a networked environment
AU2001281402A1 (en) * 2000-08-08 2002-02-18 Fineground Networks Method and system for parameterized web documents
US7050876B1 (en) 2000-10-06 2006-05-23 Phonak Ltd. Manufacturing methods and systems for rapid production of hearing-aid shells
US8040328B2 (en) * 2000-10-11 2011-10-18 Peter Smith Books, papers, and downloaded information to facilitate human interaction with computers
JP2002196962A (en) * 2000-12-25 2002-07-12 Fuji Photo Film Co Ltd Digital data generation system
AUPR292701A0 (en) * 2001-02-06 2001-03-01 Jared, Johnny Interactive business systems
US7310687B2 (en) 2001-03-23 2007-12-18 Cisco Technology, Inc. Methods and systems for managing class-based condensation
SE519012C2 (en) * 2001-04-05 2002-12-23 Anoto Ab Ways to handle information
US7649637B2 (en) * 2001-04-05 2010-01-19 Anoto Ab Method for printing a global position-coding pattern
US20020154327A1 (en) * 2001-04-24 2002-10-24 Jones Michael J. Incorporating data in hardcopy correspondence
US6853373B2 (en) 2001-04-25 2005-02-08 Raindrop Geomagic, Inc. Methods, apparatus and computer program products for modeling three-dimensional colored objects
US6820808B2 (en) * 2001-05-30 2004-11-23 Dan Mehler Resilient bar code and scanner
US20030043095A1 (en) * 2001-08-31 2003-03-06 Kia Silverbrook Scanning electronic book
US7088463B2 (en) * 2001-10-18 2006-08-08 Hewlett-Packard Development Company, L.P. Binary data transmission over an image data channel
US7480070B2 (en) * 2001-11-20 2009-01-20 Electronics For Imaging, Inc. Spot color pattern system
TWI235926B (en) * 2002-01-11 2005-07-11 Sonix Technology Co Ltd A method for producing indicators and processing system, coordinate positioning system and electronic book system utilizing the indicators
US7003166B2 (en) * 2002-01-29 2006-02-21 Eastman Kodak Company Method of encoding data in a monochrome media
US7177476B2 (en) * 2002-02-28 2007-02-13 Eastman Kodak Company Method of decoding data encoded in a monochrome medium
US7123742B2 (en) 2002-04-06 2006-10-17 Chang Kenneth H P Print user interface system and its applications
US6986462B2 (en) * 2002-04-30 2006-01-17 The Boeing Company Automated parts labeling system
US7107009B2 (en) * 2002-06-26 2006-09-12 Nokia Corporation Method, system and computer program product for personalizing the functionality of a personal communication device
US20040010446A1 (en) * 2002-07-08 2004-01-15 Marko Vanska Mobile customer relationship management
US20040012818A1 (en) * 2002-07-19 2004-01-22 Bauer Stephen W. Reducing artifacts in printing
US7274909B2 (en) * 2002-10-31 2007-09-25 Nokia Corporation Method and system for selecting data items for service requests
US7502507B2 (en) * 2002-10-31 2009-03-10 Microsoft Corporation Active embedded interaction code
KR100414524B1 (en) * 2002-10-31 2004-01-16 주식회사 아이콘랩 Two-dimensional Code having superior decoding property which is possible to control the level of error correcting codes, and method for encoding and decoding the same
US7072672B1 (en) * 2002-11-01 2006-07-04 Nokia Corporation Disposable mini-applications
US20040093274A1 (en) * 2002-11-08 2004-05-13 Marko Vanska Method and apparatus for making daily shopping easier
JP3996520B2 (en) * 2003-01-30 2007-10-24 株式会社デンソーウェーブ Two-dimensional information code and generation method thereof
US7487148B2 (en) * 2003-02-28 2009-02-03 Eaton Corporation System and method for analyzing data
ATE491190T1 (en) * 2003-04-16 2010-12-15 L 1 Secure Credentialing Inc THREE-DIMENSIONAL DATA STORAGE
US7337317B2 (en) * 2003-07-03 2008-02-26 Hand Held Products, Inc. Memory data copying system for devices
CN1829560A (en) * 2003-07-28 2006-09-06 皇家飞利浦电子股份有限公司 Game playing device
US6962450B2 (en) * 2003-09-10 2005-11-08 Hewlett-Packard Development Company L.P. Methods and apparatus for generating images
GB0321174D0 (en) * 2003-09-10 2003-10-08 Hewlett Packard Development Co Products with position identification pattern
US20050052700A1 (en) * 2003-09-10 2005-03-10 Andrew Mackenzie Printing digital documents
US20050052707A1 (en) * 2003-09-10 2005-03-10 Nelson Terry M. Location patterns and methods and apparatus for generating such patterns
US20050052706A1 (en) * 2003-09-10 2005-03-10 Nelson Terry M. Location patterns and methods and apparatus for generating such patterns
US20050058292A1 (en) * 2003-09-11 2005-03-17 Impinj, Inc., A Delaware Corporation Secure two-way RFID communications
US7407107B2 (en) * 2003-12-08 2008-08-05 Nokia Corporation Apparatus, system, method and computer program product for creating shortcuts to functions in a personal communication device
US7463774B2 (en) * 2004-01-07 2008-12-09 Microsoft Corporation Global localization by fast image matching
CA2460888A1 (en) * 2004-03-12 2005-09-12 Harpe And Associates Ltd. Method for image alignment and identification
KR100560330B1 (en) * 2004-04-21 2006-03-30 에이디정보통신 주식회사 A bar code perfect virtue coding and decoding system for largeness a volume the two dimension color which a color revision is possible and method thereof
US7304585B2 (en) * 2004-07-02 2007-12-04 Nokia Corporation Initiation of actions with compressed action language representations
EP1771813B1 (en) * 2004-07-29 2011-03-02 Bernhard Wirnitzer Method for encoding data via matrix print data storage
US20060157574A1 (en) * 2004-12-21 2006-07-20 Canon Kabushiki Kaisha Printed data storage and retrieval
US7865734B2 (en) * 2005-05-12 2011-01-04 The Invention Science Fund I, Llc Write accessibility for electronic paper
US7669245B2 (en) * 2005-06-08 2010-02-23 Searete, Llc User accessibility to electronic paper
US7643005B2 (en) * 2005-01-20 2010-01-05 Searete, Llc Semi-permanent electronic paper
US8281142B2 (en) 2005-01-20 2012-10-02 The Invention Science Fund I, Llc Notarizable electronic paper
US7774606B2 (en) 2005-01-20 2010-08-10 The Invention Science Fund I, Inc Write accessibility for electronic paper
US8640259B2 (en) * 2005-01-20 2014-01-28 The Invention Science Fund I, Llc Notarizable electronic paper
US7739510B2 (en) 2005-05-12 2010-06-15 The Invention Science Fund I, Inc Alert options for electronic-paper verification
US7856555B2 (en) * 2005-01-20 2010-12-21 The Invention Science Fund I, Llc Write accessibility for electronic paper
US8063878B2 (en) 2005-01-20 2011-11-22 The Invention Science Fund I, Llc Permanent electronic paper
GB2431270A (en) * 2005-10-13 2007-04-18 Hewlett Packard Development Co Data encoding pattern comprised of shape adjusted markings
US7934660B2 (en) 2006-01-05 2011-05-03 Hand Held Products, Inc. Data collection system having reconfigurable data collection terminal
JP2007310577A (en) * 2006-05-17 2007-11-29 Toshiba Corp Device, method, and program for extracting drawing-data
TW200832380A (en) * 2006-08-11 2008-08-01 Koninkl Philips Electronics Nv Information carrier, and system for reading such an information carrier
US20080082461A1 (en) * 2006-09-29 2008-04-03 Konica Minolta Systems Laboratory, Inc. Systems and methods for print accounting
US20080082430A1 (en) * 2006-09-29 2008-04-03 Konica Minolta Systems Laboratory, Inc. Systems and methods for print accounting
US20080187233A1 (en) * 2007-02-02 2008-08-07 Raytheon Company Method and System Of Data Transfer Using Printed Media
US20080307233A1 (en) * 2007-06-09 2008-12-11 Bank Of America Corporation Encoded Data Security Mechanism
FR2918825B1 (en) * 2007-07-09 2009-11-27 Jacques Rivaillier METHOD SEQUENTIALLY ENCODING SEVERAL CHARACTERS OR SEVERAL BYTES INFORMATION FRAGMENTED INDEPENDENTLY OF PRE-EXISTING INFORMATION.
US8635309B2 (en) 2007-08-09 2014-01-21 Hand Held Products, Inc. Methods and apparatus to change a feature set on data collection devices
US8468148B2 (en) * 2007-10-31 2013-06-18 Walter Gerard Antognini Searching by use of machine-readable code content
US20100078482A1 (en) * 2008-09-26 2010-04-01 United States Of America As Represented By The Secretary Of The Army Dynamic Barcode System
GB0818271D0 (en) 2008-10-06 2008-11-12 Rue De Int Ltd Document security feature
US9589164B2 (en) 2010-06-24 2017-03-07 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US9189669B2 (en) 2010-06-24 2015-11-17 Metrologic Instruments, Inc. Distinctive notice for different symbology information
US8517269B2 (en) 2010-11-09 2013-08-27 Hand Held Products, Inc. Using a user'S application to configure user scanner
US8608053B2 (en) 2012-04-30 2013-12-17 Honeywell International Inc. Mobile communication terminal configured to display multi-symbol decodable indicia
US20140372469A1 (en) * 2013-06-14 2014-12-18 Walter Gerard Antognini Searching by use of machine-readable code content
WO2016014399A1 (en) 2014-07-21 2016-01-28 Rensselaer Polytechnic Institute Error tolerant memory system
KR102102892B1 (en) * 2018-06-19 2020-04-21 네이버웹툰 주식회사 Method, apparatus and computer program for prevent content leakage
US10803542B2 (en) * 2018-09-14 2020-10-13 Buildinglink.com LLC Physical asset recognition platform
EP3686027B1 (en) * 2019-01-27 2021-07-14 U-NICA Systems AG Method of printing authentication indicators with an amplitude-modulated half tone
US10496911B1 (en) 2019-03-18 2019-12-03 Capital One Services, Llc Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet and infrared light
US10534948B1 (en) 2019-03-18 2020-01-14 Capital One Services, Llc Optimizing detection of images in relation to targets based on colorspace transformation techniques
US10509991B1 (en) 2019-03-18 2019-12-17 Capital One Services, Llc Detection of images in relation to targets based on colorspace transformation techniques and utilizing infrared light
US10496862B1 (en) 2019-03-18 2019-12-03 Capital One Services, Llc Detection of images in relation to targets based on colorspace transformation techniques and utilizing ultraviolet light
US10523420B1 (en) 2019-04-18 2019-12-31 Capital One Services, Llc Transmitting encoded data along transmission mediums based on colorspace schemes
US10504013B1 (en) * 2019-04-24 2019-12-10 Capital One Services, Llc Colorspace encoding multimedia data on a physical page
US10529300B1 (en) 2019-06-20 2020-01-07 Capital One Services, Llc Adaptive image display based on colorspace conversions
US10614635B1 (en) 2019-07-25 2020-04-07 Capital One Services, Llc Augmented reality system with color-based fiducial marker
US10833852B1 (en) 2019-10-03 2020-11-10 Capital One Services, Llc Encoded data along tape based on colorspace schemes
US10715183B1 (en) 2019-10-25 2020-07-14 Capital One Services, Llc Data encoding with error-correcting code pursuant to colorspace schemes
US10867226B1 (en) 2019-11-04 2020-12-15 Capital One Services, Llc Programmable logic array and colorspace conversions
US10878600B1 (en) 2019-12-10 2020-12-29 Capital One Services, Llc Augmented reality system with color-based fiducial marker utilizing local adaptive technology
US11302036B2 (en) 2020-08-19 2022-04-12 Capital One Services, Llc Color conversion between color spaces using reduced dimension embeddings

Family Cites Families (40)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3624284A (en) * 1966-09-01 1971-11-30 Battelle Development Corp Photographic record of digital information and playback system including optical scanner
US3660641A (en) * 1969-10-30 1972-05-02 Simcom Corp Coded data storage medium
US3663802A (en) * 1970-03-09 1972-05-16 Ernest Wildhaber Record for machine scanning
US3810095A (en) * 1970-09-10 1974-05-07 Lowell Technological Inst Res Font of digital, or other, characters and method for pattern printing thereof
JPS5295121A (en) * 1976-02-06 1977-08-10 Hitachi Ltd Code plate
ATE22639T1 (en) * 1981-07-17 1986-10-15 L H W Auto Telephone Dialers TELEPHONE DIALING SYSTEM.
US4532616A (en) * 1982-06-03 1985-07-30 News Log International, Inc. Method for optically encoding digital data on a substrate and the data record carrier formed thereby
US4488679A (en) * 1982-11-01 1984-12-18 Western Publishing Company, Inc. Code and reading system
US4754127A (en) * 1985-11-15 1988-06-28 Cauzin Systems, Incorporated Method and apparatus for transforming digitally encoded data into printed data strips
US4998009A (en) * 1987-03-31 1991-03-05 Canon Kabushiki Kaisha Information recording method for recording data and directories in a plurality of blocks comprising divided recording areas
US5204515A (en) * 1987-07-11 1993-04-20 Teiryo Sangyo Co., Ltd. Method of reading identification code sheets using borders to determine scan angle
JPH07118755B2 (en) * 1987-08-19 1995-12-18 株式会社日立製作所 Mail system
US5053609A (en) * 1988-05-05 1991-10-01 International Data Matrix, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US4939354A (en) * 1988-05-05 1990-07-03 Datacode International, Inc. Dynamically variable machine readable binary code and method for reading and producing thereof
US5591957A (en) * 1988-08-12 1997-01-07 Casio Computer Co., Ltd. Apparatus for reading mesh pattern image data having bars along upper and lower sides of mesh pattern and a boundary line between horizontally adjacent dark and light area of mesh pattern
US5042079A (en) * 1988-08-12 1991-08-20 Casio Computer Co., Ltd. Method of recording/reproducing data of mesh pattern, and apparatus therefor
US5153928A (en) * 1989-06-09 1992-10-06 Casio Computer Co., Ltd. Method and apparatus for recording/reproducing mesh pattern data
US5137304A (en) * 1989-10-31 1992-08-11 Webcraft Technologies, Inc. End and encoded mass distributable response piece and method of making the same
US5113445A (en) * 1990-07-09 1992-05-12 Symbol Technologies Inc. System for encoding data in machine readable graphic form
US5243655A (en) * 1990-01-05 1993-09-07 Symbol Technologies Inc. System for encoding and decoding data in machine readable graphic form
US5337361C1 (en) * 1990-01-05 2001-05-15 Symbol Technologies Inc Record with encoded data
US5060980A (en) * 1990-05-30 1991-10-29 Xerox Corporation Form utilizing encoded indications for form field processing
US5241166A (en) * 1990-07-02 1993-08-31 Chandler Donald G Low resolution target acquisition
US5168147A (en) * 1990-07-31 1992-12-01 Xerox Corporation Binary image processing for decoding self-clocking glyph shape codes
US5170044A (en) * 1990-11-09 1992-12-08 Pitney Bowes Inc. Error tolerant 3x3 bit-map coding of binary data and method of decoding
US5315098A (en) * 1990-12-27 1994-05-24 Xerox Corporation Methods and means for embedding machine readable digital data in halftone images
US5202552A (en) * 1991-04-22 1993-04-13 Macmillan Bloedel Limited Data with perimeter identification tag
US5278400A (en) * 1991-08-19 1994-01-11 Xerox Corp Multiple threshold encoding of machine readable code
US5269522A (en) * 1991-09-20 1993-12-14 Graphic Technology, Inc. Apparatus and method for promotional contests
US5245165A (en) * 1991-12-27 1993-09-14 Xerox Corporation Self-clocking glyph code for encoding dual bit digital values robustly
US5221833A (en) * 1991-12-27 1993-06-22 Xerox Corporation Methods and means for reducing bit error rates in reading self-clocking glyph codes
US5369261A (en) * 1992-02-12 1994-11-29 Shamir; Harry Multi-color information encoding system
JPH05290197A (en) * 1992-04-06 1993-11-05 Teiriyou Sangyo Kk Method for deciphering two-dimensional code symbol mark
US5288986A (en) * 1992-09-17 1994-02-22 Motorola, Inc. Binary code matrix having data and parity bits
US5337362A (en) * 1993-04-15 1994-08-09 Ricoh Corporation Method and apparatus for placing data onto plain paper
US5945655A (en) * 1994-09-22 1999-08-31 Gilgeous; Earle Apparatus and method for counting bingo cards
US5576528A (en) * 1994-12-23 1996-11-19 Symbol Technologies, Inc. Color processing for bar code symbol compaction
JPH0944592A (en) * 1995-05-23 1997-02-14 Olympus Optical Co Ltd Information reproduction system
US5694102A (en) * 1995-12-21 1997-12-02 Xerox Corporation Vector reconstruction of asynchronously captured tiled embedded data blocks
US5959285A (en) * 1996-10-16 1999-09-28 Symbol Technologies, Inc. Two-dimensional bar code symbology using gray code encodation scheme

Also Published As

Publication number Publication date
IL126019A0 (en) 1999-05-09
EP0954801A4 (en) 2001-06-13
IL191521A0 (en) 2008-11-03
US6098882A (en) 2000-08-08
IL152879A0 (en) 2003-06-24
DE69729118D1 (en) 2004-06-17
IL152879A (en) 2008-08-07
CA2247924A1 (en) 1997-09-04
IL191521A (en) 2013-09-30
IL126019A (en) 2004-09-27
US6176427B1 (en) 2001-01-23
EP0954801A1 (en) 1999-11-10
EP1471461A2 (en) 2004-10-27
EP0954801B1 (en) 2004-05-12
EP1471461A3 (en) 2006-10-25
AU1985297A (en) 1997-09-16
DE69729118T2 (en) 2005-04-28
WO1997032262A1 (en) 1997-09-04

Similar Documents

Publication Publication Date Title
CA2247924C (en) Variable formatting of digital data into a pattern
US6820807B1 (en) Variable formatting of digital data into a pattern
US20140097250A1 (en) Variable formatting of digital data into a pattern
EP1612724B1 (en) System and method for encoding high density geometric symbol set
US5862270A (en) Clock free two-dimensional barcode and method for printing and reading the same
EP1758045B1 (en) Method for forming 2-dimensional code by laser marking and laser marking device
US6751352B1 (en) Method and apparatus for generating and decoding a visually significant barcode
KR100341504B1 (en) Machine readable code for representing information and method and apparatus for encoding/decoding the same
EP2116960A1 (en) Method for acquiring simulation parameter in invisible code printing support system and its system
EP1791083B1 (en) Method and system for encoding information into a bar code with different module size
US20070116358A1 (en) User interface tag for use in processing a document
US20090238625A1 (en) Creation and placement of two-dimensional barcode stamps on printed documents for storing authentication information
JPH06199078A (en) Recording body with coded data
EP1001605B1 (en) Document processing
EP1333979B1 (en) Method and apparatus for fault tolerant data storage on photographs
US20090262377A1 (en) System And Method For Calibrating A Document Processing Device From A Composite Document
JP2009004990A (en) Image forming apparatus and image forming method
JP4844351B2 (en) Image generating apparatus and recording medium
JP2002342702A (en) Color code recording system
CA2300621A1 (en) Postal stamp and method of verifying the validity thereof
AU2005209709A1 (en) Two dimensionally phase modulated information symbol
JP2000203098A (en) N-dimensional code printing method
JP4552757B2 (en) Image processing apparatus, image processing method, and image processing program
AU2004203185B2 (en) Method and apparatus for fault tolerant program and data storage on photographs
JP2004336218A (en) Image processing system

Legal Events

Date Code Title Description
EEER Examination request
MKEX Expiry

Effective date: 20170228