CA2085409A1 - Method and apparatus for decoding two-dimensional bar code using ccd/cmd camera - Google Patents

Method and apparatus for decoding two-dimensional bar code using ccd/cmd camera

Info

Publication number
CA2085409A1
CA2085409A1 CA002085409A CA2085409A CA2085409A1 CA 2085409 A1 CA2085409 A1 CA 2085409A1 CA 002085409 A CA002085409 A CA 002085409A CA 2085409 A CA2085409 A CA 2085409A CA 2085409 A1 CA2085409 A1 CA 2085409A1
Authority
CA
Canada
Prior art keywords
bar code
code symbol
dimensional bar
decoding
line
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Abandoned
Application number
CA002085409A
Other languages
French (fr)
Inventor
Stephen J. Shellhammer
Ming-Hua Chen
Arman Nikzad
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.)
Symbol Technologies LLC
Original Assignee
Stephen J. Shellhammer
Ming-Hua Chen
Arman Nikzad
Symbol Technologies, Inc.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Stephen J. Shellhammer, Ming-Hua Chen, Arman Nikzad, Symbol Technologies, Inc. filed Critical Stephen J. Shellhammer
Publication of CA2085409A1 publication Critical patent/CA2085409A1/en
Abandoned 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
    • 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/10544Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum
    • G06K7/10821Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices
    • G06K7/1093Methods or arrangements for sensing record carriers, e.g. for reading patterns by electromagnetic radiation, e.g. optical sensing; by corpuscular radiation by scanning of the records by radiation in the optical part of the electromagnetic spectrum further details of bar or optical code scanning devices sensing, after transfer of the image of the data-field to an intermediate store, e.g. storage with cathode ray tube
    • 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
    • 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/1439Methods for optical code recognition including a method step for retrieval of the optical code
    • G06K7/1456Methods for optical code recognition including a method step for retrieval of the optical code determining the orientation of the optical code with respect to the reader and correcting therefore

Abstract

ABSTRACT

A method and apparatus for decoding a two-dimensional bar code symbol using a charge coupled device (CCD) camera or a charge-modulation device (CMD) camera. The CCD/CMD camera takes pictures of the symbol and the picture is converted into digital data. The location and orientation of the two-dimensional bar code symbol is determined and verified.
Defects and damages on the symbol are detected and corrected.
The symbol is scanned to read the codewords of the two-dimensional bar code symbol.

Description

2 ~
BACKGROUND OF THE INVI:NTION
The pre~ent invention generally relates to the field of bar code reader~, and more particularly to a me~hod and , apparatus for scanning and decoding a two-dimensional bar ,~code such as PDF417 using a charge-coupled device (CCD) 5 il camera or a charge modulation devic2 (CMD) camera.
, Bar codes have become broadly accepted as a means for ~utomatically identifying objects. A bar code symbol is a lpattern of parallel bars and spaces of various width~ that l represent data elements or characters. The bars represent 1 strings of binary ones and the spaces repre~ent strings of binary zeros. Generally, the bars and spaces can be no Rmaller than a specified minimum width which is called a ~modulel~ or "unit." The bars and ~pace~ are multiples of this module size or minimum width.
15 ~ The conventional bar code symbol is ~one-dimensional~ in i that the bars and spaces extend only in a single direction.
There has been an increasing need, however, for machine-readable symbols that contain more lnformation than l con~entional bar code symbols. One approach for increasing ~ the information in machine-readable 8ymb01~ is to reduce the height of the bar codec and stack the bar code orie on top of each other to create a ~stacked~ or lltwo-dimensionai" bar code. One such two-dimensional bar code is PDF417, which was l, developed by Symbol Technologies, Inc. A complete A~ 0'''5~ j description of the PDF417 code is contained in U.S. Pa~en~
F~RA30W CARRE~T I
' ~ D~NER ! Application Serial ~o. 07/461,881, filed January 5, 1990 and :300 1 5--R'_T, ~
`.'IA5111~.~T 31~. OC 20009 1 202 40'3 4000 .. .. . .

: : . . , ~:. : : , .:: ~ . :, .

- 2 ~

as~igned to the same assignee a~ the present invention, which is hereby incorporated by reference.
~ar code symbols are typically read by optical i techniques, such as scanning laser beams, and the resulting 1 electrical signals are then decoded to recover the data encoded in the symbol. When decoding a two-dimensional bar code symbol, however, laser scanners have the disadvantage that the scan lines must be subitantially aligned with the I rowis of the symbol. Although a two-dimensional bar code such ¦ as PDF417 allows some deviation, the orientation of the scan lines must still be les3 than a maximum angle relative to the rows of the symbol.
There are many applications, however, in which it is dosirable to be able to read and decode a two-dimensional bar code symbol in any orientation without having to align the reader with rowisi of the ~mbol. For example, in an industrial environment, the symbol may be located on an l ob~ect moving ~long a conveyor belt where the readPr views the symbol from above. Thus, the symbol may be in any orientation relative to the reader.
In addition, it i often desirable to be able to read a code symbol that has defects. For example, handling may cause a corner of a symbol to be torn off, or a stain or scratch may obscure part of a symbol.

~AW orr.~ ~g ¦
FINNECAN, HENDERSON
FARA90W C;ARRETT
~; DUN~ER
1300 I ST:7EET. ~J W
3~1~5T0~.1, OC 20005 ¦
1 202 40~ 4000 ll - 3 -, . . .
, ~ " .: :
: . ~ , : . ., ,~ , .. .
,:: , ~ : ., ~ - , "
,, ,, . i : -, 2 ~3 $ s~

SUM~RY OF THE INVENTION
Accordingly, it is a goal of this i.nvention to provide a method and apparatus for reading and decoding a two-dimensional bar code symbol in any orientation.
l Another goal is to provide a method and apparatus for ¦ reading and decoding a two-dimen~ional bar code 5YmbO1 even though the 8YmbO1 ha~ various defects, ~uch as a damfliged corner, a scratch, or a stain, which partially obscure the l symbol.
1 These and other goals may be achieved by us-ng a two-dimensional CCD/CMD camaxa to obtain an image of the two-dimensional bar codo symbol, converting the image to a digital repre~entation, and then storlny the image data in a l memory. Since the image remains unchangedi in the memory, it 1 can be accessed repetitively to extract different spatial information. In addi~ion, a CCD camera can perform omnidirectional reading or enlarge a tiny label by using a microphoto lenR . A CCD/CMD camera also can read a label from l greater distainces u~ing a telephoto lens.
1 Once the image data is stored in the memory, the l location and orientation of the bar code ~ymbol are located ¦ within the image data. In particular, the four corners of i the symbol are located and then checked to see that they form ! a rectangle. The image data i~i then converted to the same FI~EcA~HE~sO~ format as data obtained from a laser scanner by performing F.~RABOW G~RRErr ¦
~NNER j "VirtUa1 scanniing~' of thie image data acrQs~ the rows of the 1500 ! STREET, 1~ w ~/AS~ 'Ol`l. DC 20005 j ,. .. . .. .

:: . ~ . , ~, " ~ : :
... .:
,- ; .

I 2 ~ 9 symbol. Thi~ data can then be decoded in the same manner as data obtained from a laser scanner.
More ~pecifically, a me~hod for decoding a two-~;dimenqional bar code symbol having codewords of bar coded 1 information including a start and a stop codeword, thecodewords being formed of a plurality of modules, comprises the steps of: taking a picture of the two-dimensional bar code symbol, converting the picturs to lines of image data, and storing the image data in a memory; determining an orientation of the two-dimensional bar code symbol in the image data by locating at least one of the start and stop codewords; determining a sequence of lines pasqing through the rows of ~he bar code symbol; and scanning the two-dimensional bar code symbol along tha sequence of lines to read the codeword~.
In addition, an apparatus for decoding a two-dimensional bar code symbol having Godewords of bar coded information including a start and a stop codeword, ~he codewords being formed of a plurality of module~, comprises: means for taking a picture of the ~wo dimensional bar code symbol, converting the picture to lines of image data, and storing the image data in a memory; means for determining an orientation of the two dimensional bar code symbol in the image data by locating at least one of the start and stop l codawords; mean~ for determinin~ a sequence of lines passing _AW O~'C~9 l through the rows of the bar code symbol, and m~ans for F.~RABOW, (;ARRE~
~ DU~ER
~:300 ~ gTQEET N ~V
~'A5~11NGTON. DC 2':>005 1 202 40a 4000 Il - 5 -il .. , . : . , , -- : 2~5~09 scanning the two-dimensional bar code symbol along the sequence of line~ to read the codewords.
It i~ to be understood that both the foregoing general l de cription and the following detailed descrip~ion are S exemplary and explanatory only and are not restrictive of the invention as claimed.
The accompanying drawings, which are incorporated in and constitute a part of the specification, illustr~te an ~ embodiment of the invention and together with the general ¦Idescription, serve to explain the principles of the invention.

BRIEF DESCRIP~ION OF ~HE DRAWING$
Figure 1 is a diagram illustrating the modules and ~equence of bars and spaces forming a codeword;
Figure 2 is a block diagram showing the overall 1 structure of a PDF417 symbol;
Figure 3 is a block diagram illustrating one embodiment of a system for readin~ a two-dimensional b~r code symbol u~ing a CC~/CMD camera;
l Figure 4 i5 a schematic block diagram of one embodiment ; of the hardwara apparatus of a decoder;
Figure 5 i~ a diagram illu~trating scanning of data along a given row o~ an image;
I Figure 6 is a diagram illustrating the determination of FlNhECAh. HEhDERSON ~ the location of the start pattern o~ the symbol;
FARABOW, ~ARRETT
DUNNER ¦
~00 I StREEl', 1`1. `.~ !
S~lNGtO~ DC 20005 ¦
1 202 40E .-000 1 ;~ ~ , ; ,:,, ,,," ;
"' -. . ' , , ~; . . . .

~. l I
Figure 7 is a diagram illustrating the determinatiOn of thi top and bottom of the symbol;
., , I
; I Fi~ure 8A is a flowchart showing the operation sequence : ,I of the decoder ~or determining the location and orientation o~ the symbol within the ima~e data;
Figure 8B is a flowchart showing the operation sequence I of the decoder for verifying that the ~our control points : '' actually form a rectangle;
Figure 9 is a diagram illustrating the determination of i the four corners o~ the cymbol and the scanning control lines i as well a~ virtual scan lines;
, Figure lO is a diagram showing a section of symbol with ¦ a start pattern damaged by a torn corner;
~ ll Figure 11 is a diagram showing a section of a symbol ;~ 15 ~l, damaged by a stain;
,I Figure 12 i~ a diagram illustrating the determination of neighboring lines for each control line;
I Figure 13 is a flowchart showing the operation sequence ; , of the decoder for verifying the control lini~s and correcting 20 , for a corner de~ect, Figure 14 is a diagram illustrating the determiination of label width estimation and virtual scan path optimization;
Figure 15 i5 a flowchart showing operation sequence of l~ the decoder for performing virtual scanning of the image 25 I data;
:: i w ~IrrlC~g FI~NEiJAN HENDER50N j I
FARA50~ GARRETT ~ I
~ DiJ~JNER
300 i 3rR_i_T ~I '.V
3rllN5T0~ 20009 . ~ . Z02 10!3 4000 ~ - 7 -- -,:, ~ ,. ; .

.
~ ~ , , .
. : .

~ ~3 ~ o ~i3 Figure 16 i9 a diagram illu~trating the determination of ;~ I virtual scan lines when one of the start or stop patterns is , damaged; and Figure 17 is a diagram showing the decoding of a symbol 5 1I having a scratch in the middleO

:. ¦DESCRIPTIQN OF THE PR~FERR:~9~
~ ~eference will now be made in detail to the presently .~ preferxed embodiment of the invention, an example of which is illustrated in the accompanying drawing~.

Code PDF417 Before discussing the preferr~d method and apparatus for reading and decoding a two-dimensional bar code symbol such as PDF417 using a CCD/CMD camera, it is important to understand the structure of the symbol.
1 15 Each PDF417 ~ymbol is composed of a stack of rows of .~ Ij bar-coded information. Each row in the ~ymbol consists of a start pattern~ several codewords, and a stop pattern. A
codeword is the basic unit for encoding a value representing, or as~ociatsd with, certain numbersl letter~, or other symbol~. Collectively, the codewords in each row form data C0~ 3.
Both the number of rows and the number of data columns of the PDF417 ~ymbol are variable. The symbol must have at '~` FI~NE~AN HE~DERSONI least three rows and may have up to ninety rows. Likewise, , ~ FARA80W SARRETT
DUNNER
~300 i STC71~Fr N w WAS~INGTON. DC 20005 1-202 403 ~000 ~ - 8 -,."

' ~ '` ' i.

. . ~ ~ : : . .: :
" . ~

~1 ~ l 2 ~ a ~
within each row, the number of codeword~ or data columns can vary from three to thirty.
. Each PDF417 codeword consists of seventeen modules or .: I units. There are four bars and four spaces in each codeword.
~ Individual bars or spaces can vary in width from one to six .. i modules, but the combined total per codeword is always seventeen moduleq. Thus, each codeword can be defined by an : I eight-digit sequence, which represents the four se~s of alternating bar and ~pace widths within the codeword. This ~ lO ¦ is called the ~'X-~equence" of the codeword and may be ! ! represented by the sequence Xo,Xl,.. X7. For example, for an : ! X-sequence of "51111125", the fir~t element is five modules ;~ I wide, followed by five elements one module wide, one element two module3 wide, and the last element f iv3 moclules wide.
~ This example is illu~trated in Figure 1.
Figure 2 i~ a block diagram showing the overall I structure of a PDF417 symbol. Each row of the symbol ,~ , con~ists of a start pattern, a left row indicator codeword, one or more da~a codewords, a right row indicator codeword, j and a stop p~ttern. The minimum number of codewords in a row ; I is three, including the left row indicator codeword, at least i one dats codeword, and the right row indicator codeword.
l The s~art and stop pattern~ identify where each row of ;~ . I the symbol begins and ends. PDF417 uses unique start and ' stop pattern3. The start pattern, or left side of each row, FI~NECA~ HE~DE~O~I, has th~ unique pattern, or X-sequence, of "81111113". The FARAEOW, ~ARRErT
~ DU~ER
ISOO I STFIEET. N W
W~5~1INOTON. I~C 2000 ' I Z~2 40g 4000 ~ , _ 9 - ' ' ;
`' ' . '; -, ~ ' ~ . ' :

.: , ' ,':
' ' ,` ,, , ' : :
' '; ' . ' ' : . . ' ':

~ ¦ 2 ~ 9 stop pattern, ox right side of each row, has the unique X-sequence of ~71131121". Since the start and stop patterns are the same for each row, these patterns form solid l structures on the left and right sides of the symbol, 1 re~pectively. The entire s~mbol is c;urrounded by clear ~ spaces or ~quiet zones~ which contain no dark marks.
¦¦ Encoding data into a PDF417 symbol is typically a two-step process. First, data is convert:ed into codeword values which represent the data. This is known as "high-level 1 encoding.~ The values are then physically repre~ented by ¦ particular bar-spacc patterns~ which is known as low-level encoding.~
' : Scanner/Reader SYstem Figure 3 illustrate~ one embodiment of a system for reading a two-dimensional bar cod~ ~Iymbol such as PDF417 using a CCD/CMD camera. As shown in Figur~ 3, a bar code reading system 10 include~ a host computer 12, which may be a per~onal computer, a decoder 14, a framo grabber circuit 16, and a two-dimen~ional CCD or C~D camPra 18. CCD/CMD camera 18 takes a picture of a two-dimensional bar code symbol 20 and convarts it to electrical sig~als. Typically, the output ¦ of the CCD/CMD c~mera i~ an analog signal in a standard RS-~, 170 format repre3enting the row of the image being captured along with horizontal and vertical synchronization orrlcrA ~ ~
FINNECAN. HEND~SON 1nf Ormat1On .
FARA30W ~ARRErE
~ DUNNER
~00 ~ gT:~EET N. `/~/ j ~5~111.1OTON DC 20005 j 1 202 40~3 4000 ~
i - 10 -,.~ I
' ' . ~ ' . , .. ' ' ' ~ ' ' :, ' ', ' : .... ` ': ' :"" '~ " ' .'. , ': : :: , ' ' ~ ' ,"`' ' ~ ': ' , ` :
'' i ~

, -~ ~ ~ $ i ~

Al ernatively, if the two-dimensional bar code symbol is moving past the camera, the CCD/CMD camera could be only a one-dimensional camera. For example, the bar code ~ymbol may be on an ob~ect moving pa~t the camera on a conveyor belt or may be printed on a document that is being ~canned by the ¦camera. In this case~ the CCD/C~D camera can capture the image of the two-dimensional ~ymbol by scanning successive lines of the ~ymbol as it moves pa~t the camera.
l Electrisal signals from camera 18 are tran~mitted to ¦ frame grabber circuit 16 which convertY the signals into a digital representation of the original image. The analog signals from the CCD/CMD camera are converted to eight-bit gray-level values and transmitted to decoder 14 where they l are decoded into a matrix of codeword valuos corresponding to 1 the rows and columns of the two-dimensional bar code symbol.
A~ explained in further detail below, decoder 14 may be llembodied in a computer program operating on a special purpose i microproces~or.
, The matrix of codeword value~ from decoder 14 is further 1 decoded into u~able data by a high-level decoder, which may be embodied as a separate computer program operating on the host computer 12. For example, PDF417 has three predefined modes and nine reserved modes. The predefined modes are l Binary, EXC, and Numeric. In the ~inary mode, each codeword 25 1l can encode 1.2 bytes. In the EXC mode, the alphanumeric data F~EcAN~ENDERSONl~can be encoded in double density ~i.e., two characters per FARA80W, ~ARRETT i ~ ER ! !code word), and in Numeric mode, the numeric data can be '300 I STREET N. W
WAS~IINGTON CIC 20005 1 ~
1 20Z ~103 ~000 ! ¦

' ' "' . .: : . , . ' ' .': , '., ~' .' :' ' . : , ' , ' . ' . :

' : . ~, "' `, ' ' ' . ` ' ' ~: .~ . " ' ,` " " :
, . . . ' `, ~. ' ' :
'. ~ ,' , '~, . .. ; '. .

.l packed in almo~t triple density. Therefore, the high level decoder in host computer 12 will further decode the codeword i values from low-level decoder 14, depending on the mode, to ~; obtain the a tual data embodied in the symbol. The decoded 5 data ~rom the high-level decoder may then be used by a user i application program also operating on the host computer 12.

Decoder A~aratus ,I Figure 4 is a schematic block diagram of one embodiment ,I of the hardware apparatus of decoder 14. As shown in Figure ,, 4, decoder 14 includes a FIFO (first in-first out~ memory . buffer 22 for receiving the digital data representing the image of the two-dimensional bar code from the ~rame grabber circuit 16. The FIFO buf~er 22 temporarily holds the data as Il it is received from the frame grabber circuit 16 and then ¦ stores it in a memory 24. In order to do this, FIFO buffer 22 is connected to a central bus 23 to which the other hardware elements of the low-level decoder are also connected. FIFO buffer 22 has direct memory access (DMA) .~ capability which allows it to store the digital data directly in the memory ~or decoding. Alternatively, the frame grabber circuit 16 could be connected directly to the bus .?3 with DMA
capability and thereby store the digital data directly in the memory 24.
The decoder also includes a central processing unit '(CPU) 25 and a second interface 26 for communicating with the LAW ~r~ C~S
lECA~I HENDERSO~I
FARA~OW CARRE~ ~ host comput~r. The CPU 25 is prefer~bl~ a high-speed special & DU~ER
'~00: 9 REET `~, ~V
.V.~9r~1N5rON O C 2500 ; - 12 -.

. . . :
,. .: , :

.

2 0 ~
purpose microprocessor such as the T~S 320 digital signal procoa~or. The interface to the host computer may be a stand~rd interface such as an RS-232 interface.

5 ¦¦ ~r~L~

The first task that mu~t be perfo~ed by the decoder in decoding a two-dimen~ional bar code symbol such as PDF417 is to find the location and orientation of the symbol in the j image data.
Finding the location and orientation of the symbol is based on finding the start and stop patterns of the symbol in the image data. Operating on the image data stored in the l memory~ the decoder scan~ the data along a given row of the 1 image as shown in Figure 5. The data along the row i~ passed through an edge detec~or which determines the locations of the edges in the data. The decoder then searche~ through the ¦edge detection data looking for a sequence of aight elements ¦Ithat represent either a start or ~top pattern.
1 The decoder starts at the top of the image data scanning the ~irst row. Then, in subsequent scans of the image data, l it moves down a predetermined number of row~ and scans that ! row looking for start or stop patterns. The number of rows ¦~between successive scan lines may vary according to the FI~E~A~.HE~O~ Iparticular environment or the resolution of ~he image data.
FARA~OW (~ARR~
~3 D~ER ¦ For example, where the image data consists of 480 rows by 640 1300 ~ 5Ti~EET, N W l l WA5111NGTON. OC z0005 1 ¦
1 20Z 403 ~000 I i , . . . . .
- . , ~ .

.. . . .... :

... . .
.
, :
.. . , .. ,,. . . ~ ., : . .

2 ~

columns of pixel data, the decoder may be ~et to scan every twentieth row, skipping nineteen rows between successive scan line3.
l If at least two start patterns or two stop patterns are 'I found, then the orientation of the symbol can be determined.
I!For example, as shown in Figure 5, the two points pl and p2 represent the locations of two ~tart patterns and the two points ql and q2 represent the locations of two s~op patterns. A straight line perpendicular to the rows of the 1 symbol can be drawn through the two points as shown in Figure 6 to determine the orientation of the symbol.
Although theoretically two such points are sufficient to determine a straight line, the decoder will try to accumulate more than two start or stop patterns, up to a predatermined limit. The decoder will thon select the two "best~l patterns for finding the orientation of the symbol. The best patterns are considered to be those staxt or stop patterns which have no defects and are as far apart as possible.
l If the decoder is unable to detect two start patt~rns or 1 two stop patterns while scanning horizontally across the ! rows, then the decoder will scan the image data vertically down the columns looking for start or stop patterns. If the decoder is still unable to detect at least two start patterns l or two stop patterns in either the horizontal or vertical 1 direction, then the camera take~ a new pic~ure and the . AW ~IC~ l decoding process starts over.
FARA30W, C;ARRETT ;
~ DUNNER
:100 I gTREET N W
'n~,S~llNOrON. OC 20005 I Z02 '103 ~000 . . ~.

.. ..

, ;-.
, . ..
.,:
., , ~, .: , :. . .:

- I 2 ~ 3 ~
If the decoder iR succes~ful in detecting at least two ~tart patterns and two stop patterns in the image data, the decoder then attempts to determine the location of four ~¦control points C1, C2, C3, and C4 at ~he top and bottom of 5 1l the start and stop patterns as shown in Figure 7. For the l'start pattern, this is done by first determining a straight line SLl through the center of the fir~t bar of the start pattern. Then starting from two point~ located inside the l first bar, the decoder searches outward along the line SLl i for the edges of the symbol. The edge~ of the symbol are I determined by a large change in the gray level of the pixel ¦¦data along this line. The two edge points fo~nd in this way ¦lare the control point~ C1 and C2. A similar procedure is l~carried out for the stop code word along line SL2 to find the llother two control point~ C3 and C4.
¦¦ Figure 8~ i9 a flowchart showing the sequence of I,'operation of the decoder for determining the location and the ! orientation of the symbol within the image data. The various ¦! steps in the sequence are embodied in a software computer i¦program which is stored in memory 24 and executed by CPU 25 shown in Figure 4.
shown in Figure 8A, determination of symbol location and orientation begins by a horizontal scan of the image data ¦in step 30. ~efore searching ~or the start or stop patterns, edge locations of the symbol are determined in skep 32.
Fl~ECAN HE~DERSON The edges are determined by traversing a line between FARABOW, GARRETT
~ DU~NER ~ two end points and searching for an edge along the line. In :~00 I ST~ _T, ~ W ;
W~S~INGTON DC 20005 _ 15 -, . ~ . , .. , . ... , . / . . :
, , - ,; . ;:

- : . .. : :: :

particular, the slope of the line is first determined, and starting from the first end point of the line, the value or the gray level of a current pixel on the line is compared lwith the value of the previous pixel. If the compared value is greater than or equal to a predetermined threshold value, llthen the edge is at the current pixel position. If the j~compared value is less than ~he predetermined threshold ¦value, then the current pixel position is incremented ~according to the slope of the line and the incremented l~position become~ the new current pixel position. The current j'pixel position (the incremented position~ is compared with the last pixel position. This procedure is continued until either an edge is found, or the current pixel po~ition l reaches the last end point of the line.
lS ¦1 Once the edges have been determined, in step 34 a start ¦or a stop pattern is earched for in the edge location data.
ITo find the start pattern, eight successive numbers are read.
The first number, however, mu~t be a bar. If it is not, then Ijthe next eight succassive numbers are read. If the first 1 num~er is a bar, then the first four number are determined.
The eight numbers are normalized by divided by the sum of ¦eight values, multiplying by 17 and then rounding to the neare~t interest. The result is then compared to the start lland stop patterns. If it matches one o those then the i~pattern is found. If any of the conditions are not met, then FI~E~AW~OHrEcN~DERsONjlthe next eight successive numbers are read.
FAR~SOW. GARRErE I
~ Dl,~ER I
~300 1 3-~EET N .V
3~1NGTON. OC 20005 : ¦
1 202 40A ~ooo , ~
Il - 16 -,. . : , :, ~ .. . .
.. : ~ , . . .
;
:: .: . , , :

If the start or stop pattern is found in step 36, then the co~nter is incremented in step 38 and a selected nu~ber of rows are skipped, as indicated in step 46. Afterwards, the next horizontal scan of image data is begun.
If a start or stop pattern is not found in step 36, then a determination is made whether there are any additional rows to be scanned. If so, a selected number of rows are skipped in step 46, and the horizontal scan of image data is repeatedO
If there are no additional rows to be scanned, then a determination is made of whether multiple stop or start patterns had been found in step 45. If not, a ver~ical scan of image data is begun in step 48, and in step 50, the location of edges is determined as it was during the horizontal scan. Again, there is a search for start or stop pattern in the edge location data in step 52, similar to the one in step 34 for the horizontal scan, and in step 44, a determination is made whether a start or stop pattern is ~ound. If so, then the counter is incremented in step 56, and a selected number of CO1Umn5 is skipped in step 64.
Afterwards, the vertical scan of image data repeats.
If a start or stop pattern was not found in step 54, then a determination is made whether there are any additional columns to be scanned in step 62. If so, a selected rows are skipped in step 64, and the vertical scan of image data L~Orr~^c~ continues. If there are no additional columns to be scanned, . INNEGA~. HENDER50N
F~L~OD~;NCNAERRRETT then a determination is made whether there are multiple start ~300 1 31'R'~ 1 .v ' .v~g~l~O~N ~52500~ ~*Greek~

,~: .. - : , .:: ,. . : .
!~- : ~ , ' '.: ' , ., ' ': , :, , ' ' , . '. ' ,, ~ ' ' '' ,, ' ';' ~' ~ ' l 2 0 $ !~ 3 and ~top patterns found in step 63. If not, then a new imaqe of the data is taken as indicated in step 66, and a horizontal scan begin~ at step 30.
Il If, in steps 45 or 63 there were multiple stop or ~tart '~Icommands found, then the two best start or stop patterns are ,selected in steps 42 or 60, respectively. Based on the two ! best start and stop patterns selected in either in steps 42 or 60, the four control points are deter~ined in step 68.
~I To determine the four control points, a line is drawn ~¦pa~sing through ths middle of the firlt bar of both start and ,Istop patterns. A control point lies at a point having a large gray- level change on each line. ~herefore, a control i point exists along the lin~ at the top and bottom of the l first bar of the start pattern and at the top and bottom of 1 the first bar of the stop pattern.

Once the four control points are detenmined, the decoder then checks to sea that the loca~ion and orientation of the ¦Isymbol form a rectangle. ~his is done by verifying that 20 11 adjacent sides of the symbol are at right angles to each other. Two lines are at right angles if their slopes Sl and l! S2 are related a~ follows:
Il 11 Sl = _S2~1 ,~,.~ ~FCIC ~ I
FjNNECAN. HENDERSON ¦
FARA30W. ~ARRETT
~ Dl,?~NER
900 1 9rl~EE7. N. `.'1. ' 1 202~-09 .sooo il - }8 -... : ~ . .~ . ; . , .;
~ , ; " - .. ~ .,:
. . . . .
.:
;, ~ . . :, : ,. . , .; . :, 2 ~3 ~ 3 3 Figure 8B is a flowchart showing the sequence of operation of the decoder for verifying that the four control points Cl, C2, C3, and C4 actually represent a rectangle.
, Using for four control points determined in Figure 8A, a rectangle is formed in step 70 by the lines Ll, L2~ L3, and L4 connecting those control points. In step 72, the slopes of the inter~ecting lines are determined by converting them into vectors. Specifically, for lines Ll and L2 that intersection at point (x2, Y2), the line Ll and line L2 would be defined as follows:
Ll: [(Xl, Yl)~ (X2~ Y2)]
L2 [(x2, Y2), (x3, y3)]
Lines Ll and L2 are perpendicular if their inner ; product, or dot product, is zero. The inner product of L
and L2 is de~ined as follows:

<L1~ L2> = (X2 - X1) (X3 X2) tY2 1 3 Y2) .
In practice, the absolute value of the inner product of lines Ll and L2 is compared to a small positive number e. If , the absolute valu~ of the inner product of L1 and L2, ¦ <L1 , L2> ¦, is less than e, then, as step 76 indicates, ; lines Ll and L2 are deemed to be perpendicular. If Ll and L2 are perpendicular, then L2 is compared to L3 lstep 78), and , perhaps L3 is compared to ~4 (step 80) and L4 ls compared to L1 (step 82). If all the lines are perpendicular, then the conclusion reached in step 84 that the symbol is rPctangular.
_~w ~ s FINNEGAN HE~DERSON
F.~RABOW.GARRETT iAs soon as any two adjacent lines are determined not to be e, D Ul`; ~i E R
300 1; . F~E_-- N W
ShlN iTON ~ C Z0005 '02 ~0~1 ~000 . ~, .. . .. .. .
: , . :, ' ' . ' :' i" ~, ~ :. " '. ' , i ', , ' : . i ' : ' ' : " , " ~ ',.; ' ' ,'.' . ,, ,- :: . .. .;; :
, ' ' . ' '.' ' ' ` , ::, ' ' ' : :: ' ' :i , : ', `'', ' ' . ' . :: :: ':
: , . . . , , ' ' ' ~ ' ' :

~ , ~
',:. . i . ' . . : , , :. ' ' :' ' '.
'.; ' ~ :`~ ', ::, ' :

rectangular, the symbol is deemed not rectangular (step 86).
Corner_Defect Correction If the four control points C1, C2, C3, and C4 do not Illform a rectangle, then it is most likely that one or more of the corners is damaged.
First, the decoder determine2 two control lines CLl and CL2 along the top and bottom edges of the jymbol as shown in Figure 10. The decodar then checks to ~ee if each of the ~control lines CLl and CL2 have been determined correctly.
~For example, if one of the corners is torn away (Figure 10) or obliterated by a stain (Figure 11), one of the control line~ will be incorrect.
In order to determine whether a control line is correct, the decoder will determine, for that control line, two lS I neighboring line~, both parallel to the control line and on opposite side~ as shown by the dotted lines in Figure 12.
The neighboring lines are a predetermined distance, such as ., five pixels, away from the control line. If the control line il is correct, then one of the neighboring lines should contain ¦ both a start and a stop pattexn and the other neighboring i¦ line should contain neither.
I il Once it is determined that one control line i5 correct, : ! the other control line (e.g., CL1 in Figure 12~ will be corrected 50 to be parallel to the correct control line (e.g., CL2 in Figure 2~. The new control line can then be i~EC~EDgERSON i veri~ied by determining two neighboring lines as before. If F.~R~BOW. G,~RRETT ; ' ' 6 Dl~ER !j the new control line (CLl) is correct, then one of its 3 :)3 1 3~ v .
.'~A:7rll`1:;T01`1. ;~C 20005 1 2 ')2 .-0 9 .- 00 0 , - 20 -. ..

~ J~ O c3 neighboring lines must contain either a start or a stop pattern, while the other neighboring line must contai.n neither.
Figure 13 is a flowchart showing the sequence of operation of the decoder for verifying the control lines and correcting for a corner defect. In the decoder operation, the damaged corner is adjusted towards a non-damaged corner ~by this routine which first checks a stop line and then a star~ line. Although this ~equence is arbitrary, it is significant that both lines are t~sted. If both points on the start or stop lines are damaged, then the routine attempts to adjust the corner point which is relatively lower to the other point by measuring the length of the lines C1, C2 (see Fig. 10) and C3 C3 and C3 C4. In the routine, line C3 C4 is longer than C1 C2, so Cl i5 ad~usted to be the height of C3.
In step 90, top and bottom control lines are drawn~ and in step 92 two parallel neighboring lines axe drawn or each control line. In the manner described above, the start and stop patterns are found, if possible, on each neighboring line in step 94. This is to see whether the control lines are valid in the manner descxibed above.
If in step 96 one of the control lines is determined to be valid, then in step 98, a question is asked whether the other control line is valid. If not, then in step 102 a ^~DSE~O~ determination is made that both control line~ are invalid.
F.~ BO~' CARRETT
~ D i~ ; E R
300 3-qE_- `~ .V
.. ~3,~ ,T~ 1 3_ 200_9 ' 2 ~2 -0 3 ~00 `:) - 21 ~
... . .
, .

.

~;

~ ~ 3 3 ~ 3 " , If in step 96 one of the control lines i.5 valid, and in step 100 the other control line is determined to be valid, then the conclusion is reached in step 104 that both control lines are valid.
If, as a result of the determinations in steps 98 and 100, only one of the control lines is determined to be valid, this is noted in step 106, and in step 108, the invalid con~rol line is corrected to become parallel with the valid control line, as described above.
Next, the corxected control line is tested in step 110.
If the corrected control lines are both valid in step 112, then in step 116, determination can be made that the invalid control line has been corrected. Otherwise, in step 114, a determination is made that the invalid control line cannot be corrected.

-Once the four control points that define the locationand orientation of the label have been determined, the decoder perform~ ~vir~ual scanning~ of the image data stored in the memory. This involves selecting a sequence of pixels from the image data that cross the symbol from the start pattern to the stop pattern parallel to a line defining the top of the symbol. Thus t the data obtained in this way will represent a scan along a row of the symbol.
I~EG.~ E~D~E~O~ This sequence of pixel data is sent through an edge FAR~EO~ sARRErr &Dl~ER detector to determine the locations o~ the transitions from 3 5 ~ : 3 ..^ 3-1 ~5r~ Z^~g Z~z ~^3 ~

.
-~

,: , . .

; .

- 2~3~3~
,Idark to light or light to dark in the symbol. The tran-~itions are then used to determine the width of the bars and spaces in the symbol. The sequence of data corresponding to the width of the bars and spaces in symbols is in the same format as data obtained from a laser scanner.
More specifically, once the four control points C1, C2, C3, and C4 are determined, the decoder determines the ~location of control line~ CLl and CL2 as shown in Figure 9.
Then, a virtual scan start line VSLl and a rescan stop line VSL2 are determined. Line VSL1 is parallel to the start pattern and passes through the quiet zone adjacent the start pattern. Likewise, line VSL2 is parallel to the stop pattern and passes through the quiet zone ad~acent the stop pattern.
I In order to scan a row of the symbol in the image data, the decoder identifies both the head point on the scan start line VSL1 and the corresponding tail point o~ the scan stop line VSL2. The scan head and tail points may be all the points on the line segments of RSL1 and RSL2 between the control lines CLl and CL2. Alternatively, as explained in further detail below, the number of scan lines may be minimized by using a rescan optimization strategy. Point positions for the rescan head and tail points are stored in an array for rescanning the image data.
For each scan ~head-tailll point pair, the decoder scans along a line from the scan head point to the scan tail point.
~-D~ER550~ A typical scan line is shown in Figure ~ scanning from scan FARAEO~. ~ARRETT
~ D~ER head point h. to scan tail point ti. The decoder fetches the 3 ;~ 3 3 ,~:,3~ _ 2'`~'5 1 232 ~03 ~0~

.... .. . .. .. . . . . .

' ~ ' . : . ,. ' .: , ` . `~ " : ,. ,!.'.' `::: '.' i `: ' `

2 (~ 3 ~
.Igray-level values along the line from the image data. This line of data is then processed to obtain the required output data format.
One way to obtain the output data from the gray-level values is to use edge detection. Using this method, the decoder first calculates the difference! between successive gray-level values along the rescan line. The decoder ~hen looks for extrema within a specified neighborhood, such as a window of three pixels, in the sequence of difference values.
;Edges are determined to be where the magnitude of an extremum of the difference values exceeds a predetermined threshold.
The widths of the bars and spaces are then computed by determining the distance between the edges.
Alternatively, if the number of codewords in each row are known or have been determined from decoding part of the symbol, the width of the bars and spaces can be determined by applying a binary decision on the gray-level values of the rescan line. In this procedur~, only those gray-level values on a rescan line that passes through the middle of a row are ; used to make a binary decision.
First, the decoder determines ~he beginning point B of the first codeword and the end point E of the last codeword, excluding the start and stop patterns. The whols interval ; (B, E) is then divided into unit intervals Ik. Specifically, the number of pixels in the line is divided by the total number of modules in the row, which is equivalent to the ;E~A~I. HE~DERSC~
FAR~BO~ ~ARRETT
~D-~ER number of codewords times the number of modules per codeword, . 3 3 0 1 ~
.~5,.~5-0`1 G-- Z:)05S
1 2^2 J09 ~0~
. 24 -.,, . ~ , . . ~ . . . - .
:. ; ,- :, , ' : ' ' :i . . . ~ ,,.,, , , ...... . :
: - ~ .: .. . ..
.

t ~ ~
,~
in order to obtain the average module length u. Typically, the average module length u will not be an integer, so it becomes necessary to assign a~ approximated module length for each module in the row of codewords.
If the module length u is not an integer, it will necessarily fall between two integers. Therefore, for each module length there exists an integer k such that ', k < u ~ k + 1 :i Thexefore, there are two ways to assign an approxim~ted I module length value for each module, namely picking one of either k or k + 1. If k is picked, then this results in an approximation error of ek = U ~ k If k + 1 is picked, this results in an approximation error of ,, ` eX = - (k + l - U) , The ~elected integer value, either k or k -~ 1, is therefore the one that minimizes the accumulated approximation error, whero the accumulated approximation error up to the kth module is given by:
t ~ ' ' C E g F l~i~iECA~I. HE~tDERSO~i k ;(FAR~30W. GARRETT
~Gtl~ER20 Accumiulated error = ~ ei .v i = O
,~g,~ r't.'`l -^ 3000 ' 2'~2 tC 3 000 ~ - 25 -,. , , ;.i .. . ~, ;' .' ~ ,i ' :;: .. ' ! . ::;
: , :: :., .. ` ' ' ' . " . . ', ,',' :': , 2 ~

i Once the width of each module is determined, the decoder can decide whether each module is either black or white by applying a binary decision to the gray level values of the module. Specifically, the gray-level values in each module are summed up and compared with a predetermined threshold to make the decision whether the module is black or white.
As discussed above, the decoder may scan every possible rescan line between lines CLl and CL2. Although this strategy results in the maximum amount of informa~ion for decoding the sy~bol, ~here is a significant amount of overhead because one rescan line i5 sufficient for each row if the line is detenmined correctly.
Therefore, the number and location of the scan lines may be optimized based on the following considerations:
(1) Two adjacent rescan lines inside the same row of the symbol (SLl and SL2 in Figure 14) should have the same gray-level profiles, except for a small amount of deviation due to noise;
(2) Two ad~acent rescan lines from different rows of the symbol (SL2 and SL3 in Figure 14) should have a larger ~distance~ between their gray-level profiles; and (3) The distance measure D(Sl,S2) between -two rescan lines Sl and S2 is defined as the sum of all distances between corresponding pixels on the lines, where the distance E~ HE~E~SC~ d(Sl[i],S2[i]) between respective pixels Sl[i] and S2[i] is F.~R~BO~' G.'~RRETT
~ D~ER determined as follows:
' 3 ' C: 9 ~
9 -~ l ~1 5 ~ 7 0 ~ ^ 3 , 2`~ 0 ~
_ ~6 -. .
~. . . : .

.
, ~ . .. . .
:. - : : ; ... . . :
. : .. . . ...
, .
.

2 0 ,~

O if ¦ Sl[i] - S2[i] ¦ < T
d(Sl[i],S2[i]) -1 if ¦ Sl[i] - S2[i] 1 > T~
where T is a predetermined threshold. Therefore, the gray-level distance between two rescan lines S1 and S2 is i determined as follows:

D(Sl,S2) = ~ d(Sl,i],~2[i]) Accordingly, D(Sl,S2) will be small when two adjacent rescan lines are near the middle of a row and will be large when two adjacent rescan lines are crossing the boundary between - 10 ad~acent rows.
In order to optimize the scan paths, the decoder first computes the distanci between successive segmen~s o~ all possible rescan lines. The length of the line segments should be long enough to cover at least one codeword as shown in Figure 1~. Using sei~ments instead of whole rescan lines greatly reduces the computation time. When all of the distances have been computed, the rescan lines can be laid where the dis~ance is a local minimum, corresponding to the middle of row of the symbol.
Figures 15A and lSB are flowcharts showing the sequence of operation of the decoder for performing virtual scanning of the image data.
Figure 15A is a flow chart illustrating the edge F.~R.~EO~ RR~ detection method of outputting the image data. As shown in ~ 31 3;3:ER
~ 3-^~---^ 2~3~5 Figure 15A, once the location of control lines have been ' ,2 J:~9 .-, ._ _ 27 -2 ~
determined (step 120), a pair of head-tail points is retrieved in step 130. In step 132, a rescan line is drawn by connecting the pair of head-tail points. The differences between the gray levels are computed along the rescan line in step 134.
In step 136, extrema of the difference values are determined within a specified neighborhood (usually a window of 3 pixels). The extrema are determined by locating and recording the maximum and minimum values within a neighborhood or window of a specified point. If the magnitude of the loca~ed maximum or minimum value is Iarge enough and the position is not at the boundary of the neighborhood, then that position is considered as an extremum.
lS In step 138, each extremum is compared with a predetermined threshold value to determine whether the extremum is an edge. If the extremum is greater than the threshold, then in step 140 that extremum is indicated as an edge. Otherwise, in step 142 the extremum i5 indicated as not being an edge. In step 150, distances between the determined edge~ (output sequence) are computed and sent to the low level decoder. The above steps are repeated until no more head-tail points remain (step 152).
Figure 15B is a flow chart illus~rating a center sampling and binary decision method of outputting the image E~ HE~DERS~ data- This method uses the data on the start and stop ~ F.~R~B~\Y' G~RRET~
~ DE~'~ER
3 s,; ~
., _ 3 ~ , z , . 3 z ~ 2 --c 9 --_ .

. :, . .:. ., .: ~

2 0 g 3 patterns, control points, label row width, and width of modules.
In step 162 of Figure 15B, a beginning point B of the first non-start/stop codeword and an end point E of the last non-start/stop codeword are defined. In step 164, the interval between the two points B-E are divided into predetermined unit intervals. If the module width is a non-integer number, then an integer approximation routine is performed for the module width in step 168. The errors associated with the approximation were explained previously.
Once the interval B-E have been divided, the gray-level value for each module interval is summed up in step 170 and compared with a predetermined threshold number in step 172.
If the 5um iS greater than the threshold number, then the module is considered to be "black.~ If not, the module is considered to be ~'white." Therefore, according to the sequences of black and white modulesl the output of image data is produced.
The data obtained by rescanning the image data is output to a low~ vel decoder for further decoding the data. A low-level decoder for decoding a two-dimensional symbol such as PDF417 is described in U.S. Patent Application Serial No.
, enti~led ~A System for Encoding and Decoding Data In Machine Readable Graphic Form,~ filed the same date as this application and assigned to the same assignee as the E~ HE~ERS~ present invention, which is hereby incorporated by reference.
F.'~R~S~ RR~rT
~ Dl ~ER
~ _ 3: 3 ~
.,: 3--~ `I 3 _ ~ _ 3 _ ~ _ J _ 3 ~
-- 2g --. ' ': ' ' : , , '., : ,.:1, ' .,, ,, ,, .' . :

', " , : : ,:' . . ,' ' ~ ' , : ' ' ! ' ' . ' ' : . , i ~ o ~
Damaq~,Symbols In addition to the corner defects described above, ~he bar code symbols may be damaged in other ways. For example, one of the start or stop patterns may be damaged. If the other pattern can still be identified, however, then the decoder will determine only two of the four control points C1, C2, C3, and C4. In the example shown in Figure 16, where the start pattern of the symbol is destro~ed, the decoder will determine only control points C2 and C4.
From these two control points, the decoder will then determine a single line SL as shown in Figure 160 Once SL is obtained, a set of rescan lines can be determined be~ween the two control points, each one perpendicular to the line SL.
This procedure necessarily assumes, however, that the frame grabbex causes no geometric distortion (i.e., essentially square pixels). If the rectangular shape of the symbol is distorted into a parallelogram, then this procedure will not work.
The decoder may also decode symbols that have a scratch in the middle ~uch as shown in Figure 17. Since the decoder be~ins searching for the two control points from the farthest valid start or stop patterns, a scratch in the middle should not affect the locating of control points. However, each of the remaining corners must be read by at least one scan line while trying to determine the loca~ion and orientation of the '' 3 symbol l~;EC.~ HE~DERS~D`;
F~B~. G.~RRErT
~ Dl ~'`;ER
3 ~ ~ ~
_, 2 --_ 3 ~ ~ . _ .. ...

-:
;

2 ~
It will be apparent to those skilled in the art that various modifications and variations can be made in the decoding method and apparatus without departing from the scope or spirit of the invention. Other embodiments of the invention will be apparent to those skllled in the art from consideration of the specificati.on and practice of the invention disclosed herein. It is intended that the specification and examples be considered as exemplary only, with a true scope and spirit of the invention ~eing indicated by the following claims.

~ 3 .~EC.~. HE~;DER~
F.~R~B~\~. G.~RRErT
E R
3 _ _ 3 - .. ..
. . 3 .. ~ 2 ~ _ ~
2~2 ~3 - ~ . 31 .
; . . ..

: , : , " . :. :
: ~ ' ',. '. ' ' ' ' ~ ' ~ ''' ,., ' ',: :',

Claims (24)

1. A method of decoding a two-dimensional bar code symbol (20) having rows of bar coded information in codewords including a start and a stop codeword, the codewords being formed of a plurality of modules, the method being characterised by: taking a picture of the two-dimensional bar code symbol (20), converting the picture to lines of image data, and storing the image data in a memory; determining the orientation of the two-dimensional bar code symbol (20) in the image data by locating at least one of the start and stop codewords;
determining a sequence of lines passing through the rows of the bar code symbol (20); and scanning the two-dimensional bar code symbol (20) along the sequence of lines to read the codewords.
2. A method of decoding a two-dimensional bar code symbol according to Claim 1, wherein the orientation determining comprises scanning the lines of image data to determine edge locations of the symbol; searching for one of the start and stop codewords along the edge of the symbol;
and determining a plurality of control points adjacent the start and stop codewords.
3. A method of decoding a two-dimensional bar code symbol according to Claim 1 or Claim 2, including verifying the orientation of the two-dimensional bar code symbol.
4. A method of decoding a two-dimensional bar code symbol according to Claim 2 or Claim 3 wherein the image data scanning includes a horizontal scan.
5. A method of decoding a two-dimensional bar code symbol according to Claim 2 or Claim 3 or Claim 4 wherein the image data scanning includes a vertical scan.
6. A method of decoding a two-dimensional bar code symbol according to any one of Claims 2 to 5 wherein the image data scanning includes skipping a predetermined number of lines while searching for the said start or stop codeword.
7. A method of decoding a two-dimensional bar code symbol according to any one of Claims 2 to 6, wherein the searching is repeated until a predetermined number of start and stop codewords have been found.
8. A method of decoding a two-dimensional bar code symbol according to Claim 7, further comprising selecting the best two start and best two stop codewords from the predetermined number of located start and stop codewords.
9. A method of decoding a two-dimensional bar code symbol according to Claim 3 or any one of the preceding claims when dependent upon Claim 3, wherein the image data scanning determines the edge locations, the image data scanning including selecting two end points to find edge locations therebetween; traversing a line between the two end points; calculating the slope of the line;
comparing a gray level of a first pixel position to a second pixel position on the line; determining the first pixel position to be an edge location when the comparison is greater than or equal to a first predetermined threshold value; incrementing the first and second pixel positions along the line according to the slope; and repeating the comparing step until the last end point is reached.
10. A method of decoding a two-dimensional bar code symbol according to Claim 3 or any one of the preceding claims when dependent upon Claim 3, wherein the control point determining step comprises determining a line passing through a first bar of each of the start and stop codewords; and locating points both on the line and at the edge of the two-dimensional bar code symbol.
11. A method of decoding a two-dimensional bar code symbol according to Claim 4 of any one of the preceding claims when dependent upon Claim 4, wherein the verifying step includes checking whether the two-dimensional bar code symbol forms a rectangle having a shape meeting requirements of a first predefined acceptable condition.
12. A method of decoding a two-dimensional bar code symbol according to Claim 11, wherein said checking comprises connecting the control points to form a rectangle; calculating a slope for each line of the rectangle; comparing the slopes of intersecting lines at each corner of the rectangle; and concluding that the symbol has the acceptable rectangular shape when each of the comparisons determines that the intersecting lines are perpendicular to within a predefined error limit.
13. A method of decoding a two-dimensional bar code symbol according to any one of the preceding claims, including detecting defects on the two-dimensional bar code symbol; and amending the scanning procedure in dependence upon the defects detected.
14. A method of decoding a two-dimensional bar code symbol according to Claim 13, wherein the detecting comprises determining a control line at top and bottom edges of the symbol; forming a first and second neighbouring lines adjacent and at opposite sides of each of the control lines; searching for the start and stop codewords on each said neighbouring line; and determining the symbol to have a defect when each said control line fails to meet a second predetermined condition.
15. A method of decoding a two-dimensional bar code symbol according to Claim 14, wherein the second predefined condition includes the first neighbouring line having both start and stop codewords and the second neighbouring line having neither of the start and stop codewords.
16. A method of decoding a two-dimensional bar code symbol according to Claim 14 or Claim 15 including correcting for one defective control line with the other control line being a valid control line, the correcting comprising adjusting the defective control line to be parallel with the valid control line and to include one of the control points.
17. A method of decoding a two-dimensional bar code symbol according to Claim 16, further comprising validating the adjusted control line by forming two neighbouring lines adjacent and at opposite sides of the adjusted control line; searching for one of the start and stop codewords on each said neighbouring line; and determining the valid correction of the defective control line by testing whether the adjusted control line meets a condition of having one neighbouring line having one of the start and stop codewords and the other neighbouring line having neither of the start and stop codewords.
18. A method of decoding a two-dimensional bar code symbol according to any one of the preceding claims, wherein the sequence of lines is determined by forming rascan start and rascan stop lines; selecting virtual scan head and corresponding virtual scan tail points on the rescan start and scan stop lines, respectively; and retrieving a pair of head and corresponding tail points and forming a line connecting the two points.
19. A method of decoding a two-dimensional bar code symbol according to Claim 18 in which the bar code symbol is scanned by computing gray-level differences between successive pixels on the line connecting the head and tail points; finding extrema of the computed differences; comparing each extremum to a third predetermined threshold value; determining the extremum to be an edge when the comparison is greater than the third predetermined threshold value; and calculating distances between adjacent edges.
20. A method of decoding a two-dimensional bar code symbol according to Claim 19, further comprising optimizing the scanning to reduce the scanning time and overhead by reducing the number of head and tail pairs.
21. A method of decoding a two-dimensional bar code symbol according to Claim 1, wherein the sequence of lines is determined by defining an interval having a beginning point and an end point at a centre of each row of the two-dimensional bar code symbol and forming a line connecting the beginning and end points; partitioning the defined interval into a predetermined unit sub-intervals; and approximating width of the modules to correspond to a nearest unit sub-interval.
22. A method of decoding a two-dimensional bar code symbol according to Claim 21, wherein the scanning comprises summing gray-level values for each module interval; comparing the sum to a fourth predetermined threshold value; and determining the module to be one of a plurality of predefined values corresponding to the comparison.
23. A method of decoding a two-dimensional bar code symbol according to Claim 1, further comprising detecting and correcting damage due to destruction of one of the start and stop codewords of the symbol.
24. Apparatus for decoding a two-dimensional bar code symbol having rows of bar coded information in codewords including a start and a stop codeword, the codewords being formed of a plurality of modules, the apparatus comprising: means for taking a picture of the two-dimensional bar code symbol, converting the picture to lines of image data, and storing the image data in a memory; means for determining an orientation of the two-dimensional bar code symbol in the image data by locating at least one of the start and stop codewords; means for determining a sequence of lines passing through the rows of the bar code symbol; and means for scanning the two-dimensional bar code symbol along the sequence of lines line to read the codewords.
CA002085409A 1992-03-16 1992-12-15 Method and apparatus for decoding two-dimensional bar code using ccd/cmd camera Abandoned CA2085409A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US07/851,493 US5319181A (en) 1992-03-16 1992-03-16 Method and apparatus for decoding two-dimensional bar code using CCD/CMD camera
US851,493 1992-03-16

Publications (1)

Publication Number Publication Date
CA2085409A1 true CA2085409A1 (en) 1993-09-17

Family

ID=25310906

Family Applications (1)

Application Number Title Priority Date Filing Date
CA002085409A Abandoned CA2085409A1 (en) 1992-03-16 1992-12-15 Method and apparatus for decoding two-dimensional bar code using ccd/cmd camera

Country Status (11)

Country Link
US (1) US5319181A (en)
EP (1) EP0561334A2 (en)
JP (1) JPH0612515A (en)
KR (1) KR930020305A (en)
CN (1) CN1039458C (en)
AU (1) AU662470B2 (en)
BR (1) BR9300174A (en)
CA (1) CA2085409A1 (en)
IL (1) IL104199A0 (en)
TW (1) TW235354B (en)
ZA (1) ZA93102B (en)

Families Citing this family (187)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5635697A (en) * 1989-03-01 1997-06-03 Symbol Technologies, Inc. Method and apparatus for decoding two-dimensional bar code
US5974202A (en) * 1990-01-05 1999-10-26 Symbol Technologies, Inc. Apparatus and method for processing a machine readable document with embedded machine instructions
US6631842B1 (en) 2000-06-07 2003-10-14 Metrologic Instruments, Inc. Method of and system for producing images of objects using planar laser illumination beams and image detection arrays
US6732929B2 (en) 1990-09-10 2004-05-11 Metrologic Instruments, Inc. Led-based planar light illumination beam generation module employing a focal lens for reducing the image size of the light emmiting surface of the led prior to beam collimation and planarization
US6736321B2 (en) 1995-12-18 2004-05-18 Metrologic Instruments, Inc. Planar laser illumination and imaging (PLIIM) system employing wavefront control methods for reducing the power of speckle-pattern noise digital images acquired by said system
US5748804A (en) * 1992-05-14 1998-05-05 United Parcel Service Of America, Inc. Method and apparatus for processing images with symbols with dense edges
JP3233981B2 (en) * 1992-05-26 2001-12-04 オリンパス光学工業株式会社 Symbol information reader
JP2746501B2 (en) * 1992-06-22 1998-05-06 松下電器産業株式会社 Barcode reader
US5329105A (en) * 1992-08-10 1994-07-12 United Parcel Service Of America, Inc. Method and apparatus for determining the width of elements of bar code symbols
US5422470A (en) * 1992-08-31 1995-06-06 Olympus Optical Co., Ltd. Symbol information reading apparatus
JP3230612B2 (en) * 1992-09-02 2001-11-19 オリンパス光学工業株式会社 2D barcode reader
JP3191999B2 (en) * 1992-09-10 2001-07-23 オリンパス光学工業株式会社 Barcode symbol reader
US5384451A (en) * 1993-01-29 1995-01-24 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using composite signals
EP0682795A1 (en) * 1993-02-02 1995-11-22 Label Vision Systems, Inc. Method and apparatus for decoding bar code data from a video signal and applications thereof
US5446271A (en) * 1993-08-06 1995-08-29 Spectra-Physics Scanning Systems, Inc. Omnidirectional scanning method and apparatus
US7387253B1 (en) 1996-09-03 2008-06-17 Hand Held Products, Inc. Optical reader system comprising local host processor and optical reader
JP2938338B2 (en) * 1994-03-14 1999-08-23 株式会社デンソー Two-dimensional code
US5726435A (en) * 1994-03-14 1998-03-10 Nippondenso Co., Ltd. Optically readable two-dimensional code and method and apparatus using the same
US5614704A (en) * 1994-03-16 1997-03-25 Asahi Kogaku Kogyo Kabushiki Kaisha Encoded symbol reader with image reversal function
JP3499913B2 (en) * 1994-03-16 2004-02-23 ペンタックス株式会社 Data symbol reading device
US5428211A (en) * 1994-05-02 1995-06-27 United Parcel Service Of America Inc. Postnet bar code decoder
US5736724A (en) * 1994-06-10 1998-04-07 Metanetics Corporation Oblique access to image data for reading dataforms
US5831674A (en) * 1994-06-10 1998-11-03 Metanetics Corporation Oblique access to image data for reading bar codes
US5627358A (en) * 1994-06-20 1997-05-06 Roustaei; Alexander System and method for reading two-dimensional barcodes
US5811784A (en) * 1995-06-26 1998-09-22 Telxon Corporation Extended working range dataform reader
US5815200A (en) * 1994-07-26 1998-09-29 Metanetics Corporation Extended working range dataform reader with reduced power consumption
US5763864A (en) * 1994-07-26 1998-06-09 Meta Holding Corporation Dataform reader including dual laser and imaging reading assemblies
US5702059A (en) * 1994-07-26 1997-12-30 Meta Holding Corp. Extended working range dataform reader including fuzzy logic image control circuitry
US6424830B1 (en) 1994-07-26 2002-07-23 Telxon Corporation Portable data collection network with telephone and voice mail capability
WO1996005571A1 (en) * 1994-08-11 1996-02-22 International Data Matrix, Inc. Method and apparatus for locating and extracting data from a two-dimensional code
US5523552A (en) * 1994-10-19 1996-06-04 Symbol Technologies, Inc. Method and apparatus to scan randomly oriented two-dimensional bar code symbols
US5770847A (en) * 1994-12-23 1998-06-23 Spectra-Physics Scanning Systems, Inc. Bar code reader with multi-focus lens
US5814803A (en) * 1994-12-23 1998-09-29 Spectra-Physics Scanning Systems, Inc. Image reader with multi-focus lens
JP2867904B2 (en) * 1994-12-26 1999-03-10 株式会社デンソー 2D code reader
EP0722148A2 (en) * 1995-01-10 1996-07-17 Welch Allyn, Inc. Bar code reader
US5741462A (en) 1995-04-25 1998-04-21 Irori Remotely programmable matrices with memories
US5874214A (en) 1995-04-25 1999-02-23 Irori Remotely programmable matrices with memories
US6416714B1 (en) * 1995-04-25 2002-07-09 Discovery Partners International, Inc. Remotely programmable matrices with memories
US6329139B1 (en) 1995-04-25 2001-12-11 Discovery Partners International Automated sorting system for matrices with memory
US6331273B1 (en) 1995-04-25 2001-12-18 Discovery Partners International Remotely programmable matrices with memories
US6025129A (en) * 1995-04-25 2000-02-15 Irori Remotely programmable matrices with memories and uses thereof
US6017496A (en) 1995-06-07 2000-01-25 Irori Matrices with memories and uses thereof
US5751629A (en) 1995-04-25 1998-05-12 Irori Remotely programmable matrices with memories
US5961923A (en) * 1995-04-25 1999-10-05 Irori Matrices with memories and uses thereof
US5821520A (en) * 1995-04-28 1998-10-13 Symbol Technologies, Inc. Bar code scanning system with the pre-decoding signal processing and method for bar code candidate selection for decoding
US5783811A (en) * 1995-06-26 1998-07-21 Metanetics Corporation Portable data collection device with LED targeting and illumination assembly
US5818028A (en) * 1995-06-26 1998-10-06 Telxon Corporation Portable data collection device with two dimensional imaging assembly
US5565669A (en) * 1995-09-06 1996-10-15 Intermec Corporation Orientation independent method for robust computing of X-dimensions in code one symbols
ES2112769B1 (en) * 1995-09-29 1998-12-16 Rey Antonio Parreno TWO-DIMENSIONAL BAR CODE READER SYSTEM WITH SPEAKED WORD OUTPUT.
US5979763A (en) * 1995-10-13 1999-11-09 Metanetics Corporation Sub-pixel dataform reader with dynamic noise margins
US5719385A (en) * 1995-12-08 1998-02-17 Ncr Corporation Optical scanner having multi-line and single-line scanning modes
US5862267A (en) * 1995-12-11 1999-01-19 Intermec Ip Corp. Method and apparatus for locating data regions in stored images of symbols
US6039252A (en) * 1995-12-14 2000-03-21 Intermec Corporation Bar code reading system for reconstructing irregularly damaged bar codes
US6629641B2 (en) 2000-06-07 2003-10-07 Metrologic Instruments, Inc. Method of and system for producing images of objects using planar laser illumination beams and image detection arrays
US5714745A (en) * 1995-12-20 1998-02-03 Metanetics Corporation Portable data collection device with color imaging assembly
US5811776A (en) * 1996-02-26 1998-09-22 Intermec Corporation Method and apparatus for accurately locating data regions in stored images of symbols
US5793033A (en) * 1996-03-29 1998-08-11 Metanetics Corporation Portable data collection device with viewing assembly
US5698833A (en) * 1996-04-15 1997-12-16 United Parcel Service Of America, Inc. Omnidirectional barcode locator
US5930759A (en) * 1996-04-30 1999-07-27 Symbol Technologies, Inc. Method and system for processing health care electronic data transactions
US5742041A (en) * 1996-05-29 1998-04-21 Intermec Corporation Method and apparatus for locating and decoding machine-readable symbols, including data matrix symbols
US5988505A (en) * 1996-06-03 1999-11-23 Symbol Technologies, Inc. Omnidirectional reading of two-dimensional symbols
US6672511B1 (en) 1996-06-03 2004-01-06 Symbol Technologies, Inc. Omnidirectional reading of two-dimensional symbols
US5715831A (en) * 1996-06-21 1998-02-10 Desert Moon Development Limited Partnership Calibrated air tube for spirometer
US5997483A (en) * 1996-06-21 1999-12-07 Desert Moon Development Limited Partnership Individualized and calibrated air tube for spirometer
US6314406B1 (en) 1996-06-26 2001-11-06 Telxon Corporation Customer information network
US5988506A (en) * 1996-07-16 1999-11-23 Galore Scantec Ltd. System and method for reading and decoding two dimensional codes of high density
US6064763A (en) * 1996-07-26 2000-05-16 Intermec Ip Corporation Time-efficient method of analyzing imaged input data to locate two-dimensional machine-readable symbols or other linear images therein
US5854478A (en) * 1996-10-11 1998-12-29 Intermec Ip Corp. Method and apparatus for reading machine-readable symbols having surface or optical distortions
US5767497A (en) * 1996-12-04 1998-06-16 United Parcel Service Of America, Inc. Method and apparatus for decoding bar code symbols using ratio analysis of module size
JP3591184B2 (en) * 1997-01-14 2004-11-17 松下電器産業株式会社 Barcode reader
US6179208B1 (en) 1997-01-31 2001-01-30 Metanetics Corporation Portable data collection device with variable focusing module for optic assembly
US5912452A (en) * 1997-02-06 1999-06-15 Intermec Corporation Method and apparatus for reading one-and two-dimensional symbols with a linear detector
US6097839A (en) * 1997-03-10 2000-08-01 Intermec Ip Corporation Method and apparatus for automatic discriminating and locating patterns such as finder patterns, or portions thereof, in machine-readable symbols
DE19716886C2 (en) * 1997-04-22 2001-02-01 Sick Ag Method and device for reading a bar code
US6012640A (en) * 1997-07-08 2000-01-11 Intermec Ip Corporation Rule based and fuzzy logic method and apparatus for processing reflectance signals from machine-readable symbols or images
US6016960A (en) * 1997-07-08 2000-01-25 Intermec Ip Corporation Rule based method and apparatus for processing reflectance signals from machine-readable symbols or images
US6135354A (en) * 1997-09-07 2000-10-24 Label Vision Systems, Inc. System and method for facilitating high speed processing of video signals containing images of barcode labels
US7028899B2 (en) * 1999-06-07 2006-04-18 Metrologic Instruments, Inc. Method of speckle-noise pattern reduction and apparatus therefore based on reducing the temporal-coherence of the planar laser illumination beam before it illuminates the target object by applying temporal phase modulation techniques during the transmission of the plib towards the target
US6128414A (en) * 1997-09-29 2000-10-03 Intermec Ip Corporation Non-linear image processing and automatic discriminating method and apparatus for images such as images of machine-readable symbols
US5984186A (en) * 1997-10-29 1999-11-16 Psc Inc. CCD-base bar code scanner
US6126074A (en) * 1998-01-28 2000-10-03 Symbol Technologies, Inc. Error correction in macro bar code symbols
US6123263A (en) * 1998-01-29 2000-09-26 Meta Holdings Corporation Hand held dataform reader having strobing ultraviolet light illumination assembly for reading fluorescent dataforms
US7584893B2 (en) * 1998-03-24 2009-09-08 Metrologic Instruments, Inc. Tunnel-type digital imaging system for use within retail shopping environments such as supermarkets
FR2788871B1 (en) * 1999-01-22 2001-06-15 Intermec Scanner Technology Ct OPTOELECTRONIC DEVICE FOR ACQUIRING IMAGES OF CODES WITH ONE AND TWO DIMENSIONS
US6176428B1 (en) * 1999-04-07 2001-01-23 Symbol Technologies, Inc. Techniques for reading postal code
JP4288756B2 (en) * 1999-04-08 2009-07-01 株式会社デンソー Information code approximate existence area estimation method, information code reading method and apparatus, and recording medium
US6460848B1 (en) * 1999-04-21 2002-10-08 Mindplay Llc Method and apparatus for monitoring casinos and gaming
US6533168B1 (en) 1999-05-27 2003-03-18 Peter N. Ching Method and apparatus for computer-readable purchase receipts using multi-dimensional bar codes
US6959870B2 (en) * 1999-06-07 2005-11-01 Metrologic Instruments, Inc. Planar LED-based illumination array (PLIA) chips
US6959869B2 (en) * 1999-06-07 2005-11-01 Metrologic Instruments, Inc. Automatic vehicle identification (AVI) system employing planar laser illumination and imaging (PLIIM) based subsystems
US6988660B2 (en) 1999-06-07 2006-01-24 Metrologic Instruments, Inc. Planar laser illumination and imaging (PLIIM) based camera system for producing high-resolution 3-D images of moving 3-D objects
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
DE69941872D1 (en) * 1999-10-26 2010-02-11 Datalogic Spa A method of reconstructing a stripe code by successive scans
US6296187B1 (en) * 1999-11-12 2001-10-02 Psc Inc. CCD-based bar code scanner
US6634554B1 (en) * 2000-02-23 2003-10-21 Telxon Corporation System and method employing a piezoelectric reflector for optimizing the focus of a dataform reader
US6899272B2 (en) * 2000-05-17 2005-05-31 Symbol Technologies, Inc Bioptics bar code reader
US6761314B2 (en) * 2000-10-03 2004-07-13 Symbol Technologies, Inc. Bar code symbology for consumer scanning applications
US7594609B2 (en) 2003-11-13 2009-09-29 Metrologic Instruments, Inc. Automatic digital video image capture and processing system supporting image-processing based code symbol reading during a pass-through mode of system operation at a retail point of sale (POS) station
US7540424B2 (en) 2000-11-24 2009-06-02 Metrologic Instruments, Inc. Compact bar code symbol reading system employing a complex of coplanar illumination and imaging stations for omni-directional imaging of objects within a 3D imaging volume
US7395971B2 (en) 2000-11-24 2008-07-08 Metrologic Instruments, Inc. Method of and system for profile equalization employing visible laser diode (VLD) displacement
US7607581B2 (en) 2003-11-13 2009-10-27 Metrologic Instruments, Inc. Digital imaging-based code symbol reading system permitting modification of system features and functionalities
US7140543B2 (en) * 2000-11-24 2006-11-28 Metrologic Instruments, Inc. Planar light illumination and imaging device with modulated coherent illumination that reduces speckle noise induced by coherent illumination
US7490774B2 (en) 2003-11-13 2009-02-17 Metrologic Instruments, Inc. Hand-supportable imaging based bar code symbol reader employing automatic light exposure measurement and illumination control subsystem integrated therein
US7708205B2 (en) 2003-11-13 2010-05-04 Metrologic Instruments, Inc. Digital image capture and processing system employing multi-layer software-based system architecture permitting modification and/or extension of system features and functions by way of third party code plug-ins
US8042740B2 (en) 2000-11-24 2011-10-25 Metrologic Instruments, Inc. Method of reading bar code symbols on objects at a point-of-sale station by passing said objects through a complex of stationary coplanar illumination and imaging planes projected into a 3D imaging volume
US7464877B2 (en) 2003-11-13 2008-12-16 Metrologic Instruments, Inc. Digital imaging-based bar code symbol reading system employing image cropping pattern generator and automatic cropped image processor
US7077319B2 (en) * 2000-11-24 2006-07-18 Metrologic Instruments, Inc. Imaging engine employing planar light illumination and linear imaging
US7954719B2 (en) * 2000-11-24 2011-06-07 Metrologic Instruments, Inc. Tunnel-type digital imaging-based self-checkout system for use in retail point-of-sale environments
US7128266B2 (en) 2003-11-13 2006-10-31 Metrologic Instruments. Inc. Hand-supportable digital imaging-based bar code symbol reader supporting narrow-area and wide-area modes of illumination and image capture
US8682077B1 (en) 2000-11-28 2014-03-25 Hand Held Products, Inc. Method for omnidirectional processing of 2D images including recognizable characters
US6652379B2 (en) 2001-01-04 2003-11-25 Mindplay Llc Method, apparatus and article for verifying card games, such as blackjack
US6826548B2 (en) 2001-01-24 2004-11-30 Return Mail, Inc. System and method for processing returned mail
US7746510B2 (en) 2001-02-01 2010-06-29 Pandipati Radha K C Receipts scanner and financial organizer
US10453151B2 (en) 2001-02-01 2019-10-22 Kris Engineering, Inc. Receipts scanner and financial organizer
US6857961B2 (en) 2001-02-21 2005-02-22 Bally Gaming International, Inc. Method, apparatus and article for evaluating card games, such as blackjack
US6685568B2 (en) 2001-02-21 2004-02-03 Mindplay Llc Method, apparatus and article for evaluating card games, such as blackjack
KR100446233B1 (en) * 2001-07-05 2004-08-30 (주)우주커넥션스 Reading Device for Bar Code and Two-dimensional Code
US7513428B2 (en) 2001-11-21 2009-04-07 Metrologic Instruments, Inc. Planar laser illumination and imaging device employing laser current modulation to generate spectral components and reduce temporal coherence of laser beam, so as to achieve a reduction in speckle-pattern noise during time-averaged detection of images of objects illuminated thereby during imaging operations
KR100456628B1 (en) * 2001-12-28 2004-11-10 한국전자통신연구원 System and method for processing a discrimination of object information
ES2254912T3 (en) * 2002-02-05 2006-06-16 Bally Gaming International, Inc. DETERMINATION OF INFORMATION ABOUT THE GAME.
US7222852B2 (en) 2002-02-06 2007-05-29 Ball Gaming International, Inc. Method, apparatus and article employing multiple machine-readable indicia on playing cards
CN100356399C (en) * 2002-04-29 2007-12-19 武汉矽感科技有限公司 Two-dimensional barcode card and its decoding method
JP4364554B2 (en) * 2002-06-07 2009-11-18 株式会社ルネサステクノロジ Switching power supply device and switching power supply system
US6708884B1 (en) * 2002-06-25 2004-03-23 The United States Of America As Represented By The Secretary Of The Army Method and apparatus for rapid and precision detection of omnidirectional postnet barcode location
CN1294519C (en) * 2003-05-22 2007-01-10 武汉矽感科技有限公司 Two-D bar code encoding and decoding method
EP1612710B1 (en) 2003-04-07 2015-11-11 Vodafone Group PLC Information processing method
US20060264546A1 (en) * 2003-04-11 2006-11-23 3M Innovative Properties Company Pavement marking material
CA2533602C (en) * 2003-07-25 2012-05-22 Bally Gaming International, Inc. Uniquely identifiable casino gaming chips
US7736236B2 (en) 2003-11-07 2010-06-15 Bally Gaming International, Inc. Method, apparatus and article for evaluating card games, such as blackjack
US7270272B2 (en) * 2003-11-13 2007-09-18 Metrologic Instruments, Inc. Digital image-based bar code symbol reading system employing a multi-mode image-processing symbol reading subsystem
US7841533B2 (en) 2003-11-13 2010-11-30 Metrologic Instruments, Inc. Method of capturing and processing digital images of an object within the field of view (FOV) of a hand-supportable digitial image capture and processing system
US7427024B1 (en) 2003-12-17 2008-09-23 Gazdzinski Mark J Chattel management apparatus and methods
US7341456B2 (en) * 2004-03-25 2008-03-11 Mcadams John B Braille type device, system, and method
US20060019739A1 (en) * 2004-04-15 2006-01-26 Bally Gaming International, Inc. Systems and methods for scanning gaming chips placed on a gaming table
US7814024B2 (en) * 2004-05-14 2010-10-12 Ching Peter N Multi-way transactions related data exchange apparatus and methods
US11017097B2 (en) 2004-05-14 2021-05-25 Peter N. Ching Systems and methods for prevention of unauthorized access to resources of an information system
SE0401647D0 (en) * 2004-06-28 2004-06-28 Anoto Ab Coding and decoding of data
US20060043189A1 (en) * 2004-08-31 2006-03-02 Sachin Agrawal Method and apparatus for determining the vertices of a character in a two-dimensional barcode symbol
US7721966B2 (en) * 2004-10-18 2010-05-25 Datalogic Scanning, Inc. System and method of optical reading employing virtual scan lines
KR100678169B1 (en) * 2004-10-28 2007-02-02 삼성전자주식회사 System and method for transmitting data between two terminal equipments distant from each other
US20060109526A1 (en) * 2004-11-24 2006-05-25 Zhang Daoxian H Case divider for organizing patient films
US20060165264A1 (en) * 2005-01-26 2006-07-27 Hirofumi Saitoh Method and apparatus for acquiring images, and verification method and verification apparatus
US8074987B2 (en) * 2005-02-10 2011-12-13 Bally Gaming, Inc. Systems and methods for processing playing cards collected from a gaming table
US7455231B2 (en) 2005-06-21 2008-11-25 Symbol Technologies, Inc. System and method for locating a predetermined pattern within an image
US8550464B2 (en) 2005-09-12 2013-10-08 Bally Gaming, Inc. Systems, methods and articles to facilitate playing card games with selectable odds
KR100828539B1 (en) * 2005-09-20 2008-05-13 후지제롯쿠스 가부시끼가이샤 Detection method of two dimensional code, detection device thereof, and storage medium having detection program storaged therein
US20070174916A1 (en) * 2005-10-28 2007-07-26 Ching Peter N Method and apparatus for secure data transfer
JP2007172304A (en) * 2005-12-22 2007-07-05 Sony Corp Two-dimensional bar code, information processor, information processing method and program
JP4911340B2 (en) * 2006-02-10 2012-04-04 富士ゼロックス株式会社 Two-dimensional code detection system and two-dimensional code detection program
CN100377167C (en) * 2006-03-17 2008-03-26 北京紫光捷通科技有限公司 Two-dimensional code area precisive positioning method for two-dimensional recognition
US7523937B2 (en) 2006-04-18 2009-04-28 Bally Gaming, Inc. Device for use in playing card handling system
US8100753B2 (en) 2006-05-23 2012-01-24 Bally Gaming, Inc. Systems, methods and articles to facilitate playing card games with selectable odds
US8038153B2 (en) 2006-05-23 2011-10-18 Bally Gaming, Inc. Systems, methods and articles to facilitate playing card games
US8052519B2 (en) 2006-06-08 2011-11-08 Bally Gaming, Inc. Systems, methods and articles to facilitate lockout of selectable odds/advantage in playing card games
AU2007205809B2 (en) 2006-08-17 2012-05-17 Bally Gaming, Inc. Systems, methods and articles to enhance play at gaming tables with bonuses
US8335341B2 (en) * 2007-09-07 2012-12-18 Datalogic ADC, Inc. Compensated virtual scan lines
US8272945B2 (en) 2007-11-02 2012-09-25 Bally Gaming, Inc. Game related systems, methods, and articles that combine virtual and physical elements
US9563898B2 (en) 2008-04-30 2017-02-07 Bally Gaming, Inc. System and method for automated customer account creation and management
US8597107B2 (en) 2007-12-28 2013-12-03 Bally Gaming, Inc. Systems, methods, and devices for providing purchases of instances of game play at a hybrid ticket/currency game machine
JP4845902B2 (en) * 2008-01-25 2011-12-28 キヤノン株式会社 Image processing apparatus, image processing method, program, and storage medium
US8313029B2 (en) * 2008-01-31 2012-11-20 Seiko Epson Corporation Apparatus and methods for decoding images
US8308562B2 (en) 2008-04-29 2012-11-13 Bally Gaming, Inc. Biofeedback for a gaming device, such as an electronic gaming machine (EGM)
US20090275407A1 (en) * 2008-04-30 2009-11-05 Bally Gaming, Inc. Virtualization for gaming devices
US9092944B2 (en) 2008-04-30 2015-07-28 Bally Gaming, Inc. Coordinating group play events for multiple game devices
US8251808B2 (en) 2008-04-30 2012-08-28 Bally Gaming, Inc. Game transaction module interface to single port printer
US8613655B2 (en) 2008-04-30 2013-12-24 Bally Gaming, Inc. Facilitating group play with multiple game devices
WO2009151919A2 (en) 2008-05-24 2009-12-17 Bally Gaming, Inc. Networked gaming system with enterprise accounting methods and apparatus
WO2009155047A2 (en) 2008-05-30 2009-12-23 Bally Gaming, Inc. Web pages for gaming devices
US8598482B2 (en) 2009-03-16 2013-12-03 United States Postal Service Intelligent barcode systems
CN101859397B (en) 2009-04-10 2017-06-27 银河联动信息技术(北京)有限公司 Two-dimensional array code
JP5400507B2 (en) * 2009-07-13 2014-01-29 キヤノン株式会社 Imaging apparatus and radiation imaging system
JP5379626B2 (en) * 2009-09-29 2013-12-25 日本電産サンキョー株式会社 Stack bar code information reading method and stack bar code information reading device
CN101833640B (en) * 2010-06-01 2015-12-16 福建新大陆电脑股份有限公司 The empty boundary pixel point computing module of bar and computing method thereof
CN101908126B (en) * 2010-06-01 2015-10-07 福建新大陆电脑股份有限公司 PDF417 bar code decoding chip
CN101840496B (en) * 2010-06-01 2012-12-12 福建新大陆电脑股份有限公司 One-dimensional barcode decoding chip
CN101908127B (en) * 2010-06-01 2012-08-22 福建新大陆电脑股份有限公司 Determinant bar code decoding chip
CN101833645B (en) * 2010-06-01 2012-06-06 福建新大陆电脑股份有限公司 Bar code decoding method based on code word combination
CN101908130B (en) * 2010-06-01 2012-08-22 福建新大陆电脑股份有限公司 Portable electronic device based on bar code decoding chip
CN101833642B (en) * 2010-06-01 2015-10-07 福建新大陆电脑股份有限公司 MicroPDF417 bar code decoding chip
US8292181B1 (en) * 2011-06-27 2012-10-23 Ncr Corporation Apparatus and system for a hybrid optical code scanner
US10510084B2 (en) 2011-07-21 2019-12-17 United States Postal Service System and method for retrieving content associated with distribution items
USD917499S1 (en) 2016-12-28 2021-04-27 Spotify Ab Computer screen with a graphical user interface
EP3343448B1 (en) 2016-12-28 2018-12-19 Spotify AB Machine readable code
CN108584355A (en) * 2018-04-28 2018-09-28 苏州锶创达智能科技有限公司 A kind of batch decoding machine
JP7021651B2 (en) * 2019-03-01 2022-02-17 オムロン株式会社 Symbol boundary identification device, symbol boundary identification method and image processing program
US11694046B2 (en) * 2019-07-24 2023-07-04 Datalogic Usa Inc. Microcontroller-based code reader and related method and device
US11562551B1 (en) * 2022-04-14 2023-01-24 Scandit Ag Image analysis for decoding angled optical patterns

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3774014A (en) * 1972-03-20 1973-11-20 Pitney Bowes Alpex Printed code scanning system
US4794239A (en) * 1987-10-13 1988-12-27 Intermec Corporation Multitrack bar code and associated decoding method
DE3737792A1 (en) * 1987-11-06 1989-05-18 Hannes Burkhardt Bar-code reader
US4988852A (en) * 1988-07-05 1991-01-29 Teknekron Transportation Systems, Inc. Bar code reader
US5042079A (en) * 1988-08-12 1991-08-20 Casio Computer Co., Ltd. Method of recording/reproducing data of mesh pattern, and apparatus therefor
DE3903595A1 (en) * 1989-02-07 1990-08-09 Proteus Ges Fuer Datentechnik Method for reading bar codes
US5304786A (en) * 1990-01-05 1994-04-19 Symbol Technologies, Inc. High density two-dimensional bar code symbol
CA1334218C (en) * 1989-03-01 1995-01-31 Jerome Swartz Hand-held laser scanning for reading two dimensional bar codes
US5124537A (en) * 1990-10-29 1992-06-23 Omniplanar, Inc. Omnidirectional bar code reader using virtual scan of video raster scan memory

Also Published As

Publication number Publication date
TW235354B (en) 1994-12-01
EP0561334A3 (en) 1994-03-23
CN1039458C (en) 1998-08-05
ZA93102B (en) 1993-11-03
KR930020305A (en) 1993-10-19
JPH0612515A (en) 1994-01-21
AU662470B2 (en) 1995-08-31
EP0561334A2 (en) 1993-09-22
IL104199A0 (en) 1993-05-13
US5319181A (en) 1994-06-07
BR9300174A (en) 1993-09-21
CN1076798A (en) 1993-09-29
AU3107793A (en) 1993-09-23

Similar Documents

Publication Publication Date Title
CA2085409A1 (en) Method and apparatus for decoding two-dimensional bar code using ccd/cmd camera
US5635697A (en) Method and apparatus for decoding two-dimensional bar code
US7380718B2 (en) Method for reading out symbol information and device for reading out symbol information
JP3115610B2 (en) High speed image capture system and method
US8376240B2 (en) Method and system for creating and using barcodes
EP0669593B1 (en) Two-dimensional code recognition method
US5664030A (en) Method and apparatus for recording/reproducing mesh pattern data
US5153418A (en) Multiple resolution machine readable symbols
CA2203639C (en) Anti-hand-jittering dataform readers and methods
JP3526880B2 (en) Multi-resolution machine readable symbol
US20110186632A1 (en) System and method for encoding and decoding large capacity 2-dimensional color bar code which can be color-corrected
JPH0157394B2 (en)
KR101293703B1 (en) A system for decoding skewed data matrix barcode, and the method therefor
WO1995034043A1 (en) Method and apparatus for decoding two-dimensional symbols in the spatial domain
JPS61213973A (en) Input image corrector
EP0797810B1 (en) Barcode decoding
JP4403063B2 (en) Symbol information reading method and symbol information reading apparatus
JPH06231297A (en) Bar code symbol reader
JPH0311484A (en) Method and device for reading data
JPH05324878A (en) Method and device for recording data
JPH0916708A (en) Symbol information reader
JPH09274635A (en) Optical information reader

Legal Events

Date Code Title Description
FZDE Discontinued