Browse Prior Art Database

Error Location in Bar Code Scanning

IP.com Disclosure Number: IPCOM000052381D
Original Publication Date: 1981-Jun-01
Included in the Prior Art Database: 2005-Feb-11
Document File: 5 page(s) / 116K

Publishing Venue

IBM

Related People

Bobart, KL: AUTHOR [+3]

Abstract

When a bar code record is scanned and decoded, errors may occur due to bar edge dislocations or other perturbations. With ETAB (Every Transition A Bit) bar code, these decoding errors tend to propagate, making a traditional byte parity error detection scheme nearly useless (as well as detrimental to density). For this reason a cyclic redundancy check (CRC) is used to detect errors; however, this can only give an indication that an error exists on a record, which is composed of many bytes, but cannot isolate the error to a single byte or group of bytes.

This text was extracted from a PDF file.
At least one non-text object (such as an image or picture) has been suppressed.
This is the abbreviated version, containing approximately 53% of the total text.

Page 1 of 5

Error Location in Bar Code Scanning

When a bar code record is scanned and decoded, errors may occur due to bar edge dislocations or other perturbations. With ETAB (Every Transition A Bit) bar code, these decoding errors tend to propagate, making a traditional byte parity error detection scheme nearly useless (as well as detrimental to density). For this reason a cyclic redundancy check (CRC) is used to detect errors; however, this can only give an indication that an error exists on a record, which is composed of many bytes, but cannot isolate the error to a single byte or group of bytes.

If scanning is performed according to the process described in [1] when an error is found, the record is rescanned while moving the scanner with respect to the record to attempt to move away from the error, causing perturbation. If the perturbation causes an error in all scans, the following method can be used to isolate the error. Assume a record is scanned (Scan 1) left to right and some bytes are in error when the information is decoded; this would be indicated by the CRC. The information from Scan 1, even though incorrect, is stored in a buffer (Buffer 1). The record will be rescanned right to left (Scan 2); assume the perturbation is such that errors are still found. The errors in this case would be in a different set of bytes because the record is decoded starting from the right, and the errors would propagate from right to left; this information is stored in Buffer 2.

If the information in Buffer 1 is compared to that in Buffer 2, the buffers will match except in the area of the errors. The area where the buffers don't match is the error range. Some, but not all, of the bytes in the error range in Buffer 1 will be incorrect; likewise, only some of the bytes in the error range in Buffer 2 will be incorrect. If erroneous information is stored in a third buffer for a third scan, this information can be compared to Buffer 2 to produce a similar error range, although it will probably be somewhat different.

A possible implementation of error location is shown in Fig. 1. The control method for decoding the record is shown in Fig. 2 [1,2]. The method for locating errors is shown in FIG. 3. To decode and store the information in buffers, the Record Decode Control (1) selects Buffer 1 (3) to be filled using SEL1. It initializes the address (ADDR) bus to point to the first location in the buffer and resets the byte counter (2), which counts the number of bytes stored in the buffer. When a byte is decoded from...