Method and apparatus for decoding bar code symbols using ratio analysis of module size
First Claim
1. A method of decoding characters of a bar code including a start code and a stop code, each character of the bar code being represented by a series of elements comprising bars and spaces, a width of each such element being a multiple of a unit bar module width or a unit space module width, comprising the steps of:
- (a) scanning a bar code and assigning a value to the width of each element encountered in the scan;
(b) decoding a start or stop character of the bar code;
(c) calculating a first average unit bar module width by dividing a sum of the bar widths of the start or stop character by a known number of bar unit modules in the start or stop character;
(d) calculating a first average unit space module width by dividing the sum of the space widths of the start or stop character by a known number of space unit modules in the start or stop character;
(e) attempting to decode a second character of the bar code;
(f) if said attempt to decode said second character fails, marking said second character as non-decodable;
(g) if said attempt to decode said second character succeeds, calculating a second average unit bar module width by dividing the sum of the bar widths of the second character by a known number of bar unit modules in the second character, and continuing with steps (h)-(j);
(h) calculating a second average unit space module width by dividing the sum of the space widths of the second character by a known number of space unit modules in the second character;
(i) accepting the decoding of said second character if a ratio of the second to the first average unit bar module widths is within a predetermined tolerance of 1;
1, and a ratio of the second to the first average unit space module widths is within a predetermined tolerance of 1;
1; and
marking said second character as mis-decoded if said ratios are outside said predetermined tolerance.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for decoding bar code symbols using an analysis of the ratios of the module size for the bars and spaces of the bar code. The invention is applicable to any bar code having one or more nominal widths in the bars and spaces, and is particularly useful in bar codes having multiples widths in the specification for the bar code and in situations where the bar code signal has a low signal-to-noise ratio, or is degraded because of a damaged, smudged, or dirty bar code, or where the bar code is read at less than the optimum angle. The invention identifies mis-decoded characters and uses adaptive techniques to decode characters previously non-decodable or mis-decoded by standard methods, thereby improving the decode rate as compared to prior techniques. The decoding rate is improved without having to re-scan the bar code for a new signal, thereby making the invention particularly useful for high-speed or one-pass decoding operations.
58 Citations
15 Claims
-
1. A method of decoding characters of a bar code including a start code and a stop code, each character of the bar code being represented by a series of elements comprising bars and spaces, a width of each such element being a multiple of a unit bar module width or a unit space module width, comprising the steps of:
-
(a) scanning a bar code and assigning a value to the width of each element encountered in the scan; (b) decoding a start or stop character of the bar code; (c) calculating a first average unit bar module width by dividing a sum of the bar widths of the start or stop character by a known number of bar unit modules in the start or stop character; (d) calculating a first average unit space module width by dividing the sum of the space widths of the start or stop character by a known number of space unit modules in the start or stop character; (e) attempting to decode a second character of the bar code; (f) if said attempt to decode said second character fails, marking said second character as non-decodable; (g) if said attempt to decode said second character succeeds, calculating a second average unit bar module width by dividing the sum of the bar widths of the second character by a known number of bar unit modules in the second character, and continuing with steps (h)-(j); (h) calculating a second average unit space module width by dividing the sum of the space widths of the second character by a known number of space unit modules in the second character; (i) accepting the decoding of said second character if a ratio of the second to the first average unit bar module widths is within a predetermined tolerance of 1;
1, and a ratio of the second to the first average unit space module widths is within a predetermined tolerance of 1;
1; andmarking said second character as mis-decoded if said ratios are outside said predetermined tolerance. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
8. A method of decoding a bar code of a particular kind, wherein the bar code is comprised of a number of characters in an order, each character of which is represented by a series of elements of a plurality of types, the width of each element in the series being in one of a plurality of fixed ratios to a unit module width corresponding to the element type, the plurality of fixed ratios being determined by a particular kind of a bar code, comprising the steps of:
-
(a) scanning the bar code and assigning a value to the width of each element encountered in the scan; (b) grouping the width values into ordered sets corresponding to the order of the characters in the bar code; (c) finding an initialization character among the ordered sets resulting from step (b) above; (d) determining the particular kind of the bar code; (e) determining an average unit module width corresponding to each element type; (f) comparing the width values in the ordered set next in order to a table of standard character values for the particular kind of bar code; and
;(f)(i) if no match is found, marking the ordered set as non-decodable; (f)(ii) if a match is found, subjecting the width values in the ordered set to ratio analysis, and; if the ratio analysis is unsuccessful, marking the ordered set as mis-decoded; and if the ratio analysis is successful, updating the average unit module width corresponding to each element type; and (g) re-decoding the marked characters by applying a standard decoding method to a series of integers derived from the widths of the elements of the marked character divided by the appropriate average unit module width. - View Dependent Claims (9, 10, 11, 12)
-
-
13. A computing device having executable instructions for decoding characters of a bar code including a start code and a stop code, each character of the bar code being represented by a series of elements comprising bars and spaces, the width of each such element being a multiple of a unit bar module width or a unit space module width, according to the steps of:
-
(a) scanning a bar code and assigning a value to the width of each element encountered in the scan; (b) decoding a start or stop character of the bar code; (c) calculating a first average unit bar module width by dividing a sum of the bar widths of the start or stop character by a known number of bar unit modules in the start or stop character; (d) calculating a first average unit space module width by dividing a sum of the space widths of the start or stop character by a known number of space unit modules in the start or stop character; (e) attempting to decode a second character of the bar code; (f) if said attempt to decode said second character fails, marking said second character as non-decodable; (g) if said attempt to decode said second character succeeds, calculating a second average unit bar module width by dividing the sum of the bar widths of the second character by a known number of bar unit modules in the second character, and continuing with steps (h)-(j); (h) calculating a second average unit space module width by dividing the sum of the space widths of the second character by a known number of space unit modules in the second character; (i) accepting the decoding of said second character if the ratio of the second to the first average unit bar module widths is within a predetermined tolerance of 1;
1, and the ratio of the second to the first average unit space module widths is within a predetermined tolerance of 1;
1; and(j) marking said second character as mis-decoded if said ratios are outside said predetermined tolerance. - View Dependent Claims (14, 15)
-
Specification