Scanning system for decoding two-dimensional barcode symbologies with a one-dimensional general purpose scanner
First Claim
1. A method for decoding two-dimensional barcode symbols from a data stream generated by scanning a two-dimensional barcode with a one-dimensional general purpose scanner, the method performed by a host computer system communicatively coupled to the one-dimensional general purpose scanner, the method comprising the steps of:
- sampling an undecoded, unprocessed, one-dimensional data stream until an entire data set is received to generate sampled data;
converting the sampled data to barcode elements;
deriving symbol characters from the barcode elements; and
processing the symbol characters to build a two-dimensional matrix representative of the two-dimensional barcode, wherein the relative widths of individual bars and spaces are determined by the number of samples relating to each of said widths of individual bars and spaces.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for decoding two-dimensional barcode symbols from a data stream generated by scanning a two-dimensional barcode with a one-dimensional scanner. A decoding process according to one embodiment of the invention involves coupling the one-dimensional scanner to a serial or other port of a host computer in order to provide a data stream to a software decoder resident in the host computer. The software decoder performs a series of iterative steps in which the data stream is sampled at regular intervals to convert the data stream to a series of elements (e.g., bars and spaces). Barcode symbol data characters are then derived from the elements. A symbol matrix is next constructed, the matrix being representative of the two-dimensional barcode symbol.
-
Citations
17 Claims
-
1. A method for decoding two-dimensional barcode symbols from a data stream generated by scanning a two-dimensional barcode with a one-dimensional general purpose scanner, the method performed by a host computer system communicatively coupled to the one-dimensional general purpose scanner, the method comprising the steps of:
-
sampling an undecoded, unprocessed, one-dimensional data stream until an entire data set is received to generate sampled data;
converting the sampled data to barcode elements;
deriving symbol characters from the barcode elements; and
processing the symbol characters to build a two-dimensional matrix representative of the two-dimensional barcode, wherein the relative widths of individual bars and spaces are determined by the number of samples relating to each of said widths of individual bars and spaces. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
performing error detection and correction on the two-dimensional matrix.
-
-
3. The method of claim 2, further comprising the steps of:
-
determining if the two-dimensional matrix is correctable based on the results of the error detection and correction; and
, if notutilizing the two-dimensional matrix to provide seed values to subsequent scanning decoding operations.
-
-
4. The method of claim 1, wherein the step of converting the sampled data to elements comprises the steps of:
-
determining if the sampled data has changed state;
if the sampled data has changed state, storing the state value and number of samples for the previous state; and
repeating the previous conversion steps for each change of state in the sampled data.
-
-
5. The method of claim 4, wherein the barcode elements comprise bars and spaces, a bar being represented by a first state value and a space being represented by a second state value.
-
6. The method of claim 1, wherein the step of deriving symbol characters from the barcode elements comprises the steps of:
-
locating a start character adjacent a quiet zone;
locating a left row indicator adjacent the start character;
calculating parameters of the two-dimensional matrix from the left row indicator;
locating symbol character(s) adjacent the left row indicator; and
adding the symbol character(s) to the two-dimensional matrix until an invalid character or stop pattern is detected.
-
-
7. The method of claim 6, wherein the steps of deriving symbol characters are repeated until the entire undecoded, one-dimensional data stream has been analyzed.
-
8. The method of claim 6, further comprising the steps of:
-
locating a stop character adjacent a quiet zone;
locating a right row indicator adjacent the stop character;
calculating parameters of the two-dimensional matrix from the right row indicator;
locating symbol character(s) preceding the right row indicator; and
adding the symbol character(s) to the two-dimensional matrix until an invalid character or start pattern is detected.
-
-
9. The method of claim 8, wherein the steps of deriving symbol characters are repeated until the entire undecoded, one-dimensional data stream has been analyzed.
-
10. The method of claim 8, further comprising the steps of:
-
reversing the order of the undecoded, one-dimensional data stream; and
repeating the previous steps of the derivation process on the reversed undecoded, one-dimensional data stream.
-
-
11. The method of claim 10, wherein the two-dimensional barcode is essentially compliant with the PDF417 symbology standard.
-
12. A barcode decoding system for decoding two-dimensional barcode symbols, the system comprising:
-
a one-dimensional general purpose barcode scanner for generating an undecoded, unprocessed one-dimensional data stream reflecting a scanning operation on a two-dimensional barcode;
a host computer system, comprising;
a communications port, the one-dimensional general purpose barcode scanner being communicatively coupled to the communications port to provide an undecoded, unprocessed one-dimensional data stream to the host computer;
a processor coupled to the communications port;
a processor readable storage medium coupled to the processor, the storage medium containing code directing the host computer system to perform the steps of;
sampling the undecoded, unprocessed one-dimensional data stream until an entire data set is received to generate sampled data;
converting the sampled data to barcode elements;
deriving symbol characters from the barcode elements; and
processing the symbol characters to build a two-dimensional matrix representative of the two-dimensional barcode,wherein the step of converting the sampled data to barcode elements comprises the steps of;
determining if the sampled data has changed state;
if the sampled data has changed state, storing the state value and number of samples for the previous state; and
repeating the previous conversion steps for each change of state in the sampled data, wherein the barcode elements comprise bars and spaces, a bar being represented by a first state value and a space being represented by a second state value, the relative widths of the individual bars and spaces being determined by the number of samples relating to each of said widths of individual bars and spaces. - View Dependent Claims (13, 14, 15, 16, 17)
determining if the two-dimensional matrix is correctable based on the results of the error detection and correction; and
, if notutilizing the two-dimensional matrix to provide seed values to subsequent scanning decoding operations.
-
-
15. The barcode decoding system of claim 12, wherein the communications port is a serial port.
-
16. The barcode decoding system of claim 15, wherein the serial port is essentially compliant with the RS232 standard.
-
17. The barcode decoding system of claim 15, wherein the serial port is essentially compliant with the Universal Serial Bus standard.
Specification