1. Field of the Invention
The invention relates to optical scanners for bar code reading, and in particular to the decoding algorithm used in a laser scanning bar code reader for processing blur or reducing the noise in reflected light signals.
2. Description of the Related Art
Bar code symbols are formed from bars or elements typically rectangular in shape with a variety of possible widths. The specific arrangement of elements defines the character represented according to a set of rules and definitions specified by the code or “symbology” used. The relative size of the bars and spaces is determined by the type of coding used as is the actual size of the bars and spaces. The number of characters (represented by the bar code symbol) is referred to as the density of the symbol. To encode the desired sequence of the characters, a collection of element arrangements are concatenated together to form the complete bar code symbol, with each character of the message being represented by its own corresponding group of elements. In some symbologies, a unique “start” and “stop” character is used to indicate when the bar code begins and ends. A number of different bar code symbologies are in widespread use including UPC/EAN, Code 39, Code 128, Codeabar, and Interleaved 2 of 5.
In order to increase the amount of data that can be represented or stored on a given amount of surface area, several more compact bar code symbologies have been developed. One of these code standards, Code 49, exemplifies a “two dimensional” symbol by reducing the vertical height of a one-dimensional symbol, and then stacking distinct rows of such one dimensional symbols, so that information is encoded both vertically as well as horizontally. That is, in Code 49, there are several rows of bar and space patterns, instead of only one row as in a “one dimensional” symbol. The structure of Code 49 is described in U.S. Pat. No. 4,794,239. Another two-dimensional symbology, known as “PDF417”, is described in U.S. Pat. No. 5,304,786.
Still other symbologies have been developed in which the symbol is comprised not of stacked rows, but a matrix array made up of hexagonal, square, polygonal and/or other geometric shapes, lines, or dots. Such symbols are described in, for example, U.S. Pat. Nos. 5,2276,315 and 4,794,239. Such matrix code symbologies may include Vericode, Datacode, and MAXICODE.
Various optical scanning systems and readers have been developed heretofore for reading indicia such as bar code symbols appearing on a label or on the surface of an article. The bar code symbol itself is a coded pattern of graphic indicia comprised of a series of bars of various widths spaced apart from one another to bound spaces of various widths, the bars and spaces having different light reflecting characteristics. The readers function by electro-optically transforming the spatial pattern represented by the graphic indicia into a time-varying electrical signal, which is in turn decoded into data which represent the information or characters encoded in the indicia that are intended to be descriptive of the article or some characteristic thereof. Such data is typically represented in digital form and utilized as an input to a data processing system for applications in point-of-sale processing, inventory control distribution, transportation and logistics, and the like. Scanning systems and readers of this general type have been disclosed for example, in U.S. Pat. Nos. 4,251,798; 4,369,361; 4,387,297; 4,409,470; 4,760,248; 4,896,026; 5,015,833; 5,262,627; 5,504,316; and 5,625,483, all of which have been assigned to the same assignee as the instant application and each of which are hereby incorporated by reference. As disclosed in some of the above patents, one embodiment of such a scanning system resides, inter alia, in a hand held, portable laser scanning device supported by a user, which is configured to allow the user to aim the scanning head of the device, and more particularly, a light beam, at a targeted symbol to be read.
The light source in a laser scanner bar code reader is typically a semiconductor laser. The use of semiconductor devices as the light source is especially desirable because of their small size, low cost and low voltage requirements. The laser beam is optically modified, typically by an optical assembly, to form a beam spot of a certain size at the target distance. It is often preferred that the cross section of the beam spot measured in the scanning direction at the target distance be approximately the same as the minimum width in the scanning direction between regions of different light reflectivity, i.e., the bars and spaces of the symbol. Although typical readers utilize a single laser source, other bar code readers have been proposed with two or more light sources of different characteristics, e.g. different frequencies.
Typically, the semiconductor lasers used in such bar code scanner is an edge-emitting injection laser in which the laser beam in emitted from the p-n junction region on a polished end face of the device. By their physical nature, these known edge-emitting injection lasers emit a beam from a thin region at the p-n junction. A laser beam emanating from a thin source has a large beam divergence which makes focusing difficult and results in a wide rang of variability in performance from laser to laser.
A more recently developed from of semiconductor laser is the vertical-cavity surface-emitting laser diode (VCSEL), such as described in “Efficient Room-Temperature Continuous-Wave AlGaInP/Al GaAs Visible (670 nm) Vertical-Cavity Surface Emitting Laser Diodes” by R P Schneider et al. published IEEE Photonics Technology Letters, Vol. 6, No. 3, Mar. 1994. Reference is also made to U.S. Pat. Nos. 5,283,447; 5,285,455; 5,266,794; 5,319,496; and 5,326,386, which are hereby incorporated by reference, for background information.
The VCSEL has substantial surface area from which the laser beam is emitted; this are may be patterned. Thus, the beam produced is less divergent in one dimension than with know edge-emitting type semiconductor laser diodes. The output beam is round, and is virtually not astigmatic. Furthermore, VCSELs typically operate at significantly lower current than edge-emitting laser diodes. Therefore, it also generates less heat.
In the laser beam scanning systems known in the art, a single laser light beam is directed by a lens or other optical components along the light path toward a target that includes a bar code symbol on the surface. The moving-beam scanner operates by repetitively scanning the light beam in a line or series of lines across the symbol by means of motion or a scanning component, such as the light source itself or a mirror disposed in the path of the light beam. The scanning component may either sweep the beam spot across the symbol and trace a scan line across the pattern of the symbol, or scan the field of view of the scanner, or do both. The laser beam may be moved by optical or opto-mechanical means to produce a scanning light beam. Such action may be performed be either deflecting the beam (such as by a moving optical element, such as a mirror) or moving the light source itself. U.S. Pat. No. 5,486,944 describes a scanning module in which a mirror is mounted on a flex element for reciprocal oscillation by electromagnetic actuation. U.S. Pat. No., 5,144,120 to Krichever et al., describes laser, optical and sensor components mounted on a drive for repetitive reciprocating motion either about an axis or in plane to effect scanning of the laser beam.
Another type of bar code scanner employs electronic means for causing the light beam to be deflected and thereby scan a bar code symbol, rather than using a mechanical motion to move or deflect the beam. For example, a linear array of closely spaced light sources activated one at a time in a regular sequence may be transmitted to the bar code symbol to simulate a scanned beam for a single source. Instead of a single linear array of light sources, a multiple-line array may also be employed, producing multiple scan lines. Such type of bar code reader is disclosed in U.S. Pat. No. 5,258,605 to Metlitsky et al.
Bar code reading systems also include a sensor or photodetector which detects light reflected or scattered from the symbol. The photodetector or sensor is positioned in the scanner in an optical path so that it has a field of view which ensures the capture of a portion of the light which is reflected or scattered off the symbol, detected, and converted into an electrical signal.
In retroreflective light collection, a single optical component e.g., a reciprocally oscillatory mirror, such as described in Krichever et al. U.S. Pat. No. 4,816,661 or Shepard et al. U.S. Pat. No. 4,409,470, both herein incorporated by reference, and Ser. No. 08/727,944, filed Oct. 9, 1996, scans the beam across a target surface and directs the collected light to a detector. The mirror surface usually is relatively large to receive as much incoming light as is possible, only a small detector is required since the mirror can focus the light onto a small detector surface, which increases signal-to-noise ratio.
Of course, small scan elements are preferable because of the reduced energy consumption and increased frequency response. When the scan element becomes sufficiently small, however, the area of the scanning mirror can no longer be used as the aperture for the received light. One solution is to use a staring detection system (a non-retroreflective system) which receives a light signal from the entire field which the scanned laser spot covers.
In non-retroreflective light collection, the reflected laser light is not collected by the same optical component used for scanning. Instead, the detector is independent of the scanning beam, and is typically constructed to have a large field of view so that the reflected laser light traces across the surface of the detector. Because the scanning optical component, such as a rotating mirror, need only handle the outgoing light beam, it can be made much smaller. On the other hand, the detector must be relatively large in order to receive the incoming light beam from all locations in the scanned field.
Electronic circuitry and software decode the electrical signal into a digital representation of the data represented by the symbol that has been scanned. For example, the analog electrical signal generated by the photodetector may be converted by a digitizer into a pulse width modulated digitized signal, with the widths corresponding to the physical widths of the bars and spaces. Alternatively, the analog electrical signal may be processed directly by a software decoder. See, for example, U.S. Pat. No. 5,504,318.
The decoding process of bar code reading systems usually works in the following way. The analog signal from the sensor or photodetector may initially be filtered and processed by circuitry and/or software to remove noise, adjust the dynamic range, or compensate for signal non-uniformities. Samples may then be taken of the analog signal, and applied to an analog-to-digital converter to convert the samples to digital data. See, for example, U.S. Pat. No. 6,170,749, which is herby incorporated by reference. Alternatively, analog circuitry may be used to digitize the shape of the signal. The digital samples or the pulse width modulated digitized signal is applied to a software algorithm, which attempts to decode the data in the signal to characters in the symbology. If the characters of the bar code symbol are all decoded successfully, the decoding process terminates and an indicator of a successful read (such as a green light and/or audible beep) is provided to the user. Otherwise, after a period of time, the decoder aborts operation of the decoding algorithm on the first scan data, receives the next scan, and performs another decode operation, and so on, until the scan data is decoded according to symbology specification into a binary representation of the data originally encoded in the symbol, and to the alphanumeric characters so represented.
The binary data representing the decoded characters is communicated to a host computer by an interface cable or wireless communication link. The interface cable may be a “smart cable” such as that described in U.S. Pat. Nos. 5,664,229 and 5,675,139, the contents of which are hereby incorporated by reference.