Device and system for processing image data representing bar codes
Summary by NHIP
Split-Unit Barcode Reader
The device processes bar code image data using two separate portable units that communicate wirelessly. One unit captures an analog waveform via a first imaging assembly and transmits it to a second unit containing a second imaging assembly for processing by image capture and decoding modules.
Claim Score by NHIP
Abstract
A device for processing image data relating to bar codes is described. In one embodiment a bar code verification device is provided having an ergonomic form factor characterized by a domed hand held trigger and a viewing window. The verification device may be disposed in a network that includes a host processor system and other bar code reading devices which may include other bar code verification devices. Processing circuitry for processing image signals corresponding to printed bar codes may be partially disposed within the hand held verification device and partially disposed within a host processor system spaced apart from and associated with the hand held verification device. The hand held verification device may be in wireless communication with the host processor system to which it is associated. The bar code verification system may include signal enhancement modules which interpolate constructed pixel values from actual pixel values and which correct for signal degradation resulting from high frequency spatial sampling.

Term
Term ended
Expired 5 November 2024, 1.9 years ago.
- Priority
- Filed
- Granted
- Expired
- Today
11 claims: 2 independent, 9 dependent
- 1Broadest claimClaim Score 26, narrow(NHIP)A portable bar code reading device comprising:a first portable unit including: (a) a first imaging assembly including a first imaging lens and a first image sensor configured to output a first image signal;(b) a first hand held housing encapsulating a component of said first imaging assembly;(c) an image capture module configured to convert an analog waveform into an image data;(d) a bar code decoding module configured to output a decoded out message;and (e) a bar code quality measurement module configured to perform at least one of: symbol contrast measurement, edge contrast measurement, modulation measurement;a second portable unit external to said first portable unit, said second portable unit communicatively coupled to said first portable unit, said second portable unit including a second imaging assembly including: a second imaging lens and a second image sensor configured to output a second image signal;and a second hand held housing encapsulating a component of said second imaging assembly;wherein said second portable unit is configured to transmit an analog waveform representative of said second image signal to said first portable unit;and wherein said first portable unit is configured to process said analog waveform representative of said second image signal by at least one of: said image capture module, said bar code decoding module, said bar code quality measurement module.
- 8A device for verification of a bar code symbol disposed on a substrate, said device comprising:a first portable unit including: (a) a first imaging assembly including a first imaging lens and a first image sensor configured to output a first image signal;(b) a first hand held housing encapsulating a component of said first imaging assembly;(c) an image capture module configured to convert an analog waveform into an image data;(d) a bar code decoding module configured to output a decoded out message;and (e) a bar code quality measurement module configured to perform at least one of: symbol contrast measurement, edge contrast measurement, and modulation measurement;a second portable unit external to said first portable unit, said second portable unit communicatively coupled to said first portable unit, said second portable unit comprising: (i) a second hand held housing with a rugged tip adapted to contact said substrate;(ii) a second imaging assembly including a second imaging lens and a second image sensor configured to output a second image signal responsive to being physically dragged across a bar code symbol;and (iii) a signal processing circuitry configured to receive said second image signal outputted by said second image sensor and to output a second analog waveform representative of said second image signal.
Independent claims2
141 paragraphs in 5 sections, as filed
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a divisional application of U.S. patent application Ser. No. 11/804,990 filed May 21, 2007, now U.S. Patent Publication No. 2007/0278310 entitled “Device And System For Processing Image Data Representing Bar Codes,” which is a continuation of U.S. patent application Ser. No. 10/982,393, filed Nov. 5, 2004 (now U.S. Pat. No. 7,219,841) entitled, “Device And System For Verifying Quality of Bar Codes.” Priority to the above applications is claimed and each of the above applications is incorporated herein by reference in its entirety.
FIELD OF THE INVENTION
The invention relates generally to registers in general and particularly to optical readers.
BACKGROUND OF THE INVENTION
Bar codes are available in a variety of symbologies. One dimensional symbologies include Code 128, Code 39, Interleaved 2 of 5, Codabar, Code 93, Code 11, and MSI. Stacked 1 symbologies include PDF, Code 16K and Code 49. 2D symbologies include Aztec, Datamatrix, and Qcode. Perhaps the most omnipresent bar code symbology is the 1D symbology known as UPC/EAN. UPC/EAN bar codes are standardly used to mark retail products throughout North America, Europe and several other countries throughout the worlds.
Numerous factors can lead to a bar code being unreadable. A bar code symbol can become degraded from extended use, for example, if a wand or other contact reader is swiped across a bar code numerous times. Dust or debris collecting on a bar code, as in a factory or other industrial setting can also negatively affect the capacity of a bar code symbol to be decoded by a reader. The most prevalent forms of degradation actually occur during the printing process, for example ink smearing, improper encodation of the required information, use of improper ink resulting in insufficient bar to space contrast and improperly dimensioned photographic masters. The type of bar code reader being used to read a symbol also has an impact on readability. High quality bar code readers having improved processing functionality and/or improved hardware are able to decode bar code symbols that other bar code readers cannot. Another factor affecting a bar code symbol=s capacity to be decoded is the print quality of the bar code symbol. Bar codes that are printed in accordance with high quality standards can withstand degradation such as caused by use or debris accumulation, and can be read by a variety of bar code readers from high to low quality.
Because bar code print quality has an enormous impact on the capacity of a bar code symbol to be successfully decoded, it is advantageous for users of bar codes such as bar code symbol provides, retail product manufacturers, suppliers, shippers, merchants, and hospitals to monitor the quality of printed bar codes prior to a marked article being circulated for sale or use. The America National Standards Institute (ANSI) Specification <smallcaps>A</smallcaps>Bar Code Print Quality Guideline@ X3.182-1990 established guidelines for verifying bar code symbol print quality. Standards for verifying bar code symbol print quality are also provided in standards promulgated jointly by the International Standards Organization (ISO) and the International Electrotechnical Commission (“IEC”); namely Standard ISO/IEC 15416, “Automatic identification and data capture techniques—Bar code print quality test specification—Linear symbols,” a bar code print quality test specification for linear symbols, and ISO/IEC 15415, “Automatic identification and data capture techniques—Bar code print quality test specification—Two dimensional symbols” establishes guidelines for verifying 2D bar code symbol print quality, a bar code print quality specification for two dimensional symbols. According to the above referenced Standards, bar code symbols may be subject to several quality measurements and may be allocated a numerical or letter grade ranging from zero (F) to 4.0 (A). A higher grade means that the bar code is more likely to be successfully decoded, whereas a lower grade means that the bar code is less likely to be successfully decoded. Historically, the <smallcaps>A</smallcaps>Quality Specification for the UPC Printed Symbol, @ published by the Uniform Code Council, Inc. of Dayton Ohio, established guidelines for evaluating UPC Codes.
While standards have been developed for evaluating bar code symbols, the devices available for conducting such evaluations continue to exhibit limitations. For example, some available bar code verification devices are large, bulky and expensive. Others require significant set up and/or calibration operations prior to use. Still other available verification devices have been noted to be difficult to operate.
There is a need for a bar code verification device and system which is convenient to operate, and which overcomes various noted problems with prior art verification devices.
DESCRIPTION OF THE DRAWINGS
<figref idref="DRAWINGS">FIGS. 1A-1B</figref> are various perspective views of a hand held bar code symbol verification device according to the invention;
<figref idref="DRAWINGS">FIG. 1C</figref> is a perspective view of a verification device having an alignment member of a different style relative to the device depicted in <figref idref="DRAWINGS">FIG. 1B</figref>;
<figref idref="DRAWINGS">FIG. 1D</figref> is a perspective view of a verification device according to the invention being held by an operator, the verification device having an enlarged head portion that aids in the maneuverability of the device;
<figref idref="DRAWINGS">FIG. 1E</figref> is another perspective view of the verification device of <figref idref="DRAWINGS">FIG. 1D</figref>, showing an operator actuating a trigger of the device;
<figref idref="DRAWINGS">FIG. 1F</figref> is a side view of the verification device shown in <figref idref="DRAWINGS">FIG. 1D</figref>;
<figref idref="DRAWINGS">FIG. 2A</figref> is an electro-optical block diagram of a hand held verification device according to the invention in one embodiment;
<figref idref="DRAWINGS">FIG. 2B</figref> is an electrical block diagram of a system network including a hand held verification device and a plurality of host processors including a local host processor and several remote host processor;
<figref idref="DRAWINGS">FIG. 2C</figref> is a schematic diagram showing the integration of various processing modules of the invention in one embodiment;
<figref idref="DRAWINGS">FIG. 2D</figref> is a flow diagram illustrating an ordering of processing modules which may be executed by a verification system according to the invention;
<figref idref="DRAWINGS">FIG. 2E</figref> is a flow diagram illustrating operation of a verification device according to the invention in one mode of operation;
<figref idref="DRAWINGS">FIG. 2F</figref> is a diagram illustrating a set of image data including fixed pattern noise;
<figref idref="DRAWINGS">FIG. 2G</figref> is a flow diagram of a verification device according to the invention in a calibration mode of operation;
<figref idref="DRAWINGS">FIG. 3A</figref> is a flow diagram illustrating steps which may be taken by a device according to the invention pursuant to execution of an interpolation module;
<figref idref="DRAWINGS">FIGS. 3B-3G</figref> are a series of waveform diagrams illustrating operation of a device according to the invention while executing an interpolation module;
<figref idref="DRAWINGS">FIGS. 3H-3L</figref> are diagrams illustrating operation of an interpolation module according to the invention;
<figref idref="DRAWINGS">FIG. 4A</figref> is a flow diagram illustrating steps which may be taken by a device according to the invention pursuant to execution of a high spatial frequency correction module according to the invention;
<figref idref="DRAWINGS">FIG. 4B</figref> is an MTF graph for a particular custom lens;
<figref idref="DRAWINGS">FIGS. 4C-4K</figref> are a series of waveform diagrams and illustrating operation of a verification device according to the invention while executing a high spatial frequency error correction module;
<figref idref="DRAWINGS">FIG. 5A</figref> is a physical form view of a verification system including a hand held verification device interacting with a host processor assembly provided in the specific example by a local area network personal computer;
<figref idref="DRAWINGS">FIG. 5B</figref> shows alternative embodiments of devices which may be employed as a host processor assembly according to the invention;
<figref idref="DRAWINGS">FIG. 5C</figref> is an electro-optical block diagram illustrating an embodiment of an auxiliary reader which may be utilized with a hand held verification device according to the invention;
<figref idref="DRAWINGS">FIG. 5D</figref> is a block diagram corresponding to a host processor assembly according to the invention in one embodiment;
<figref idref="DRAWINGS">FIG. 5E</figref> is an embodiment of the invention wherein a verification system is incorporated in a hand held portable data terminal;
<figref idref="DRAWINGS">FIG. 5F</figref> is an embodiment to the invention wherein a verification system is incorporated into a hand held housing that is especially adapted for use in carrying out print quality measurements;
<figref idref="DRAWINGS">FIGS. 5G-5L</figref> are screen shots illustrating user-interactive GUI display screens which may be displayed on a display during execution of a user-interactive waveform analysis processing module according to the invention;
<figref idref="DRAWINGS">FIGS. 6A-6D</figref> are various assembly views of a device according to the invention;
<figref idref="DRAWINGS">FIGS. 6E-6J</figref> illustrate alternative replaceable alignment windows which may be affixed to a housing of a verification device according to the invention;
<figref idref="DRAWINGS">FIG. 6K</figref> is an exploded assembly view of a verification device according to the invention illustrating assembly thereof;
<figref idref="DRAWINGS">FIGS. 7A-7D</figref> are flow diagrams illustrating operation of a device according to the invention during execution of a print quality measurement module;
<figref idref="DRAWINGS">FIGS. 8A-8C</figref> are integration diagrams illustrating various processing module integration schemes according to the invention;
<figref idref="DRAWINGS">FIG. 9A</figref> is a perspective view of a hand held verification device according to the invention;
<figref idref="DRAWINGS">FIG. 9B</figref> is another perspective view of the hand held verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref>;
<figref idref="DRAWINGS">FIG. 9C</figref> is a top view of the hand held verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref>;
<figref idref="DRAWINGS">FIG. 9D</figref> is a front view of the hand held verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref>;
<figref idref="DRAWINGS">FIG. 9E</figref> is a first side view of the hand held verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref>;
<figref idref="DRAWINGS">FIG. 9F</figref> is a second side view of the hand held verification device shown in FIG. <b>9</b>A;
<figref idref="DRAWINGS">FIG. 9G</figref> is a bottom view of the hand held verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref> with alignment member deleted;
<figref idref="DRAWINGS">FIG. 9H</figref> is another bottom view of the hand held verification device of <figref idref="DRAWINGS">FIG. 9A</figref> with an alignment member shown and dimensional information (in inches) embedded in the drawing;
<figref idref="DRAWINGS">FIG. 9I</figref> is a tangent line side view of the bar code verification device shown in <figref idref="DRAWINGS">FIG. 9A</figref> with dimensional information (in inches) embedded in the drawing.
DETAILED DESCRIPTION OF THE INVENTION
Perspective views of a bar code verification device <b>100</b> according to the invention are shown in <figref idref="DRAWINGS">FIGS. 1A-1C</figref>. Device <b>100</b> is configured to be hand held and includes a generally domed shaped housing <b>1100</b> having an upper surface <b>1102</b> a first side surface <b>1104</b> and a second side surface <b>1106</b>, a front surface <b>1110</b> and rear surface <b>1108</b>. The diameter of housing <b>1100</b> generally decreases from bottom to top. Upper surface <b>1102</b>, side surfaces <b>1104</b> front surface <b>1110</b> and rear surface <b>1108</b> define upper, side, and rear surfaces of device <b>100</b> as shown in <figref idref="DRAWINGS">FIGS. 1A-1C</figref>. Referring to further aspects of housing <b>1100</b>, housing <b>1100</b> includes a base portion <b>1114</b>, which as will be described herein supports an internal support frame <b>1152</b> (<figref idref="DRAWINGS">FIG. 6B</figref>) of bar code verification device <b>100</b>. Base portion <b>1114</b> includes a bottom surface <b>1116</b> (<figref idref="DRAWINGS">FIG. 1C</figref>) which defines a bottom surface of device <b>100</b>.
Housing <b>1100</b> especially adapts device <b>100</b> to carryout measurements on bar codes in that housing <b>1100</b> shields ambient light which may be provided, e.g. by sunlight or overhead light. Bar codes that are measured and decoded by device <b>100</b> are illuminated by LEDs <b>1082</b> or other light sources within housing <b>1100</b>. By shielding ambient light, housing <b>1100</b> assures that consistent illumination conditions are present between measurement and decode sessions of device <b>100</b>. Device <b>100</b> is configured so that base <b>1114</b> is supported on a horizontal surface (e.g., a table top) when device <b>100</b> is used to decode a measure print quality of bar codes. More specifically, in use, a substrate, s, such as a sheet of paper carrying a bar code to be subject to decoding and print quality measuring is first placed on a horizontal surface. Device <b>100</b> is then moved by an operator into such position relative to the substrate, s, that housing <b>1100</b> covers the bar code symbol, B. Specifically, when device <b>100</b> is positioned to measure print quality and to decode bar codes opening <b>1141</b> (which in the embodiment of <figref idref="DRAWINGS">FIGS. 6E-6J</figref> is defined by a transparent window) of base surface <b>1116</b> is position over the bar code.
Device <b>100</b> further includes a trigger <b>150</b>. Trigger <b>150</b> in the embodiment of <figref idref="DRAWINGS">FIGS. 1A-1C</figref> is disposed on a top surface of device <b>100</b>. Trigger <b>150</b> could also be disposed on another surface of device <b>100</b>, such as a front surface or rear surface of device <b>100</b>. Trigger <b>150</b> could also be disposed partially on a pair of adjoining surfaces of housing <b>1100</b>. Further, more than one trigger <b>150</b> may be disposed on device <b>100</b>.
Referring to further aspects of device <b>100</b>, the front surface <b>1110</b> of housing <b>1100</b> includes outer portion <b>1130</b> and stepped-in inner portion <b>1132</b>. Disposed between outer portion <b>1130</b> and inner portion <b>1132</b> is window <b>1134</b>. Window <b>1134</b> could be of a transparent material, thereby preventing foreign objects from entering the inside of the housing. It may be advantageous to have window <b>1134</b> include a light attenuating material that will reduce the level of ambient light entering housing <b>1100</b>, thereby reducing the false lighting that might otherwise be incident on the bar code under test. The light transmissivity of window <b>1134</b> will be properly selected to reduce this interference to acceptable levels. For example neutral density filters, such as the Kodak Wratten filters, might be used. Window <b>1134</b> in one embodiment exhibits a transmissivity of about 1%. There may be other conditions where colored filters might be used, or in some cases combinations of neutral density and color filters might be used. Other filters might be used to attenuate specific spectral components, such IR stop filters. Window <b>1134</b> is disposed at and angle so that window <b>1134</b> is angled upward from outer portion <b>1130</b> to inner portion <b>1132</b>. Window <b>1134</b> could also be disposed substantially horizontally with respect to a horizontal plane. Window <b>1134</b> allows bar codes printed on a substrate, s, (such as a sheet of paper) to be viewed while device <b>100</b> is used to measure print quality of a bar code symbol. It will be seen that housing <b>1100</b> and window <b>1134</b> may be configured so that window <b>1134</b> is removably received thereon. In the view of <figref idref="DRAWINGS">FIG. 5B</figref> (showing device with window <b>1134</b> removed), it is seen that window frame <b>1134</b><i>f </i>defining window aperture <b>1134</b><i>a </i>can be configured to replaceably receive window <b>1134</b>. Specifically, frame <b>1134</b><i>f </i>and window <b>1134</b> can be sized so that window <b>1134</b> rests within frame <b>1135</b> and is further stabilized by the force of gravity. In use, window <b>1134</b> might be manually removed from frame <b>1134</b><i>f </i>during alignment of device <b>100</b> relative to bar code, B, then, after alignment is achieved, placed back into frame <b>1134</b><i>f </i>prior to a trigger signal being actuated. Window <b>1134</b> may be made opaque to further discourage ambient light rays from reaching bar code, B.
For facilitating the centering of a field of view of device <b>100</b> on a bar code subject to measuring bottom surface <b>1116</b> of device <b>100</b> includes an alignment member <b>1150</b> comprising alignment formations <b>1140</b>, <b>1141</b>, <b>1142</b>. Alignment formations <b>1141</b>, <b>1142</b>, and <b>1143</b> can be viewed through window <b>1134</b>. In use, a user centers device <b>100</b> on a bar code symbol such that center alignment formations <b>1142</b> are located approximately at a horizontal center of a bar code while outer alignment formations <b>1141</b>, <b>1143</b> are located approximately at edges of a bar code. Forward edge <b>1146</b> and rear edge <b>1145</b> of opening <b>1147</b> are spaced apart such that the spacing between forward straight edge <b>1146</b> and rear straight edge <b>1145</b> aids in the vertical alignment of device <b>100</b> with respect to a bar code symbol to be subject to print quality measurement, also known as symbol verification. In the embodiment shown, forward and rear edges <b>1146</b> and <b>1145</b> have a spacing of about 0.5 inches. As such, the spacing allows a user to readily confirm that device <b>100</b> is vertically centered, e.g. by noting similarly sized gaps between a top of a bar code and forward edge <b>1146</b> and a bottom of a bar code and rear edge <b>1145</b>. Additional aspects of alignment member <b>1150</b> and alternative embodiments thereof are described in connection with <figref idref="DRAWINGS">FIGS. 6E-6J</figref>.
Referring to <figref idref="DRAWINGS">FIGS. 1D-1F</figref>, housing <b>1100</b> of device <b>100</b> in an embodiment of the invention can include a head portion <b>1135</b> that defines a lip <b>1136</b> extending outwardly from the lateral surfaces (i.e. surfaces <b>1104</b>, <b>1108</b>, <b>1110</b>) of housing <b>1100</b>. Lip <b>1136</b> may be continuously formed about head portion <b>135</b> or else may be discontinuous. Lip <b>1136</b> may include surface regions such as region <b>1138</b> and region <b>1139</b> that are configured to engage an operator's finger and/or thumb when an operator lifts device <b>100</b> upwardly. As indicated by the side view of <figref idref="DRAWINGS">FIG. 1F</figref>, Lip <b>1136</b> may have portions defining finger or thumb engagement surfaces <b>1138</b>, <b>1139</b> at spaced apart positions about the circumference of head <b>1135</b>. Where engagement surfaces <b>1138</b>, <b>1139</b> are formed at spaced apart positions, a first engagement surface region <b>1138</b> may engage a finger <b>1141</b> of an operator as illustrated in <figref idref="DRAWINGS">FIG. 1D</figref>, while a second engagement surface region <b>1139</b> engages a thumb <b>1142</b> of an operator. Enlarged head portion <b>1135</b> greatly enhances the ease with which device <b>100</b> can be picked up and moved from position to position on a substrate, s. In the embodiment of <figref idref="DRAWINGS">FIGS. 1D-1E</figref> trigger <b>150</b> is positioned in a position that is coordinated with the positioning of lip <b>1136</b>. It is seen that when device <b>100</b> is lifted and moved with utilization of engagement surfaces <b>1138</b>, <b>1139</b>, and then subsequently rested on a substrate, s, an operator's finger is positioned in such position in close proximity with lip <b>1136</b> that it can readily be moved into a trigger actuation position as depicted in <figref idref="DRAWINGS">FIG. 1E</figref> without an operator releasing device <b>100</b> from the grasp of the hand including finger <b>1141</b>. In a further aspect of device <b>100</b>, housing <b>1100</b> defines side grippings formation <b>1163</b>. Side gripping formations <b>1163</b>, <b>1164</b> are sized to a width such that grippings formations <b>1163</b>, <b>1164</b> are easily grasped by a human hand. Further, the surface of housing <b>1100</b> defining gripping formation <b>1163</b> is contoured as shown so as to enhance the ease with which gripping formations <b>1163</b> may be grasped while reducing the likelihood of an operator's hand slipping while the operator stabilizes device <b>100</b> on a substrate. Accordingly, an operator can grip side grasping formation <b>1163</b> to stabilize device <b>100</b> on a substrate, s, during reading.
Dimensional information for device <b>100</b> is presented in <figref idref="DRAWINGS">FIGS. 9H and 9I</figref>. The embodiment of <figref idref="DRAWINGS">FIGS. 9A-9G</figref> is dimensioned precisely to the dimension of <figref idref="DRAWINGS">FIG. 9H and 9I</figref>, and the remainder of the embodiments described herein are dimensioned approximately in accordance with the dimensional information provided in <figref idref="DRAWINGS">FIGS. 9H and 9I</figref>. It will be understood that since the depiction of the elements of device <b>100</b> are shown in true proportion, the dimensions of any specific feature of device <b>100</b> can be determined from the dimensional information presented in <figref idref="DRAWINGS">FIGS. 9H and 9I</figref> although the specific feature dimensions may not be expressly listed. In one specific embodiment of the invention, one or more features of device <b>100</b> is scaled by a factor of ±25% relative to the dimensional information of <figref idref="DRAWINGS">FIGS. 9H and 9I</figref>. In another embodiment, one or more features of device <b>100</b> is scaled by a factor of ±50%. In another embodiment, one or more features of device <b>100</b> is scaled by a factor of ±75% relative to the dimensional information of <figref idref="DRAWINGS">FIGS. 9H and 9I</figref>.
A block electro-optical diagram of device <b>100</b> is shown in <figref idref="DRAWINGS">FIG. 2A</figref>. Control circuit <b>1010</b> includes a central processing unit (CPU) <b>1005</b> and memory <b>1020</b>. CPU <b>1005</b> may be disposed on processor IC chip <b>1030</b>, while memory <b>1020</b> may be incorporated partially in IC chip <b>130</b> and partially in a plurality of memory IC chips such as ROM IC chip <b>1022</b> and RAM IC chip <b>1021</b>. EROM IC chip <b>1022</b> and RAM IC chip <b>1021</b> may be in communication with microprocessor IC chip <b>1005</b> via system bus <b>1045</b>. Shown as being provided on an IC processor chip <b>1030</b> in communication with a memory <b>1020</b>, control circuit <b>1010</b> can include in place of or in addition to the elements shown additional types of electrical circuits, e.g. analog circuits, and digital logical circuits including programmable logic circuits.
Device <b>100</b> also includes an image signal generating system provided by solid state image sensor <b>1060</b>, available in such technologies as CCD, CMOS, and CID. Solid state image sensor <b>1060</b> may be a monochrome or color one-dimensional image sensor or a two-dimensional image sensor. One-dimensional solid state image sensors typically have a single row of photosensitive picture elements or pixels but are available in models having a limited number (e.g., 2) rows of pixels. Two-dimensional solid state image sensors generally have a plurality of photosensitive picture elements or pixels which are formed in a pattern including a plurality of rows and a plurality of columns of pixels. Device <b>100</b> further includes an imaging optics <b>1070</b> focusing an image onto an active surface of image sensor <b>1060</b> and reflector <b>1075</b>. Device <b>100</b> includes a folded imaging axis <b>1061</b> folded by reflector <b>1075</b>. Imaging optics <b>1070</b> may focus an image of a barcode, B, disposed on a substrate, s, onto image sensor <b>1060</b>. The substrate, s, may be e.g. a piece of paper or a film. Target, T, of substrate, s, is the region of substrate, s, corresponding to the field of view of device <b>100</b>. Image sensor <b>1060</b> may be incorporated on an image sensor IC chip <b>1066</b> having disposed thereon image sensor control circuitry, image signal conditioning circuitry, and an analog-to-digital converter. A/D converter <b>1079</b> may also be separate from IC chip <b>1066</b>. Device <b>100</b> may further include a field programmable gate array <b>1080</b> (“FPGA”) or the functionality of FPGA <b>1080</b> may be incorporated onto processor IC chip <b>1030</b>. Operating under the control of control circuit <b>1010</b>, FPGA <b>1080</b> manages the capture of image data into RAM <b>1021</b>. Device <b>100</b> further comprises output indicators including red LEDs <b>1051</b>, green LEDs <b>1052</b> and acoustic output device <b>1053</b>. Physical form views of LEDs <b>1051</b>, <b>1052</b> are shown in <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>6</b>A and <b>6</b>C. It is seen that device <b>100</b> can have redundant indicators <b>1051</b>, <b>1052</b>.
A parts list for circuit elements as shown in <figref idref="DRAWINGS">FIG. 2A</figref>, in one embodiment, is presented in Table I, herein below.
<tables id="TABLE-US-00001" num="00001"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="1" colwidth="84pt" align="left" /><colspec colname="2" colwidth="133pt" align="left" /><thead><row><entry namest="1" nameend="2" rowsep="1">TABLE 1</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row><row><entry>Circuit Element</entry><entry>Part</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>Processor IC Chip 1030</entry><entry>Motorola DRAGONBALL MC9328MXL</entry></row><row><entry /><entry>(150 MHZ)</entry></row><row><entry>Image Sensor Chip 1060</entry><entry>Toshiba TCD 1305P</entry></row><row><entry>Radio 1086</entry><entry>EYSF2CAXX</entry></row><row><entry>A/D 1079</entry><entry>National ADC1173 (8 Bit)</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
Another embodiment is summarized in Table 2 below.
<tables id="TABLE-US-00002" num="00002"><table frame="none" colsep="0" rowsep="0"><tgroup align="left" colsep="0" rowsep="0" cols="2"><colspec colname="1" colwidth="84pt" align="left" /><colspec colname="2" colwidth="133pt" align="left" /><thead><row><entry namest="1" nameend="2" rowsep="1">TABLE 2</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></thead><tbody valign="top"><row><entry>Processor IC Chip 1030</entry><entry>Motorola DRAGONBALL MC9328MXL</entry></row><row><entry /><entry>(150 MHZ)</entry></row><row><entry>Image Sensor Chip 1060</entry><entry>ICMEDIA, ICM105ATU</entry></row><row><entry>Radio 1066</entry><entry>EYSF2CAXX</entry></row><row><entry namest="1" nameend="2" align="center" rowsep="1" /></row></tbody></tgroup></table></tables>
The circuit of <figref idref="DRAWINGS">FIG. 2A</figref> and the optical elements describe relative thereto may be provided on an OEM image engine of the type available from Hand Held Products, Inc. of Skaneateles Falls, N.Y., such as an 1D IT3800E image/engine or a 2D IT4010/80 image engine.
When control circuit <b>1010</b> receives a trigger signal, control circuit <b>1010</b> automatically sends appropriate control signals to image sensor chip <b>1066</b>. Image sensor chip <b>1066</b> in response thereto automatically exposes photosensitive pixels of image sensor <b>1060</b> to light and generates image signals. Also in response to receipt of a trigger signal, control circuit <b>1010</b> energizes LEDs <b>1082</b>, so that substrate, s, is illuminated at least during exposure periods of image sensor <b>1060</b>. Light from LEDs <b>1082</b> may be shaped by optional shaping optics <b>1083</b>. Illumination assembly <b>1141</b> comprising LEDs <b>1082</b> and optical shaping optics <b>1083</b> project an illumination pattern, P, onto substrate, s. LEDs <b>1082</b> may be replaced by one or more other light sources such as incandescent lamps, fluorescent lamps, and lasers. The image signals are thereafter automatically converted into digital values by analog-to-digital converter <b>1079</b> or by an onboard analog-to-digital converter of image sensor IC chip <b>1066</b>. The digital values are received by FPGA <b>1080</b> and transferred into RAM <b>1021</b>. In accordance with bar code decoding and print quality measurement programs stored in ROM <b>1022</b>, control circuit <b>1010</b> attempts to decode a bar code symbol represented in the captured image data performs various measurements to grade the bar code symbol. The capture of image data, decoding, and measurement of print quality by processing of image data occur automatically in response to a trigger signal being received. Control circuit <b>1010</b> may be configured to continuously capture image data and process bar code symbols represented therein as long as a trigger signal is received. Device <b>100</b> may be configured so that device <b>100</b> receives a trigger signal when trigger button <b>150</b> is actuated. Device <b>100</b> may also be configured to receive a trigger signal when a control button, e.g., button <b>1668</b> (<figref idref="DRAWINGS">FIG. 5A</figref>) of a spaced apart device, e.g., of host processor assembly <b>1210</b> is actuated.
Imaging assembly <b>1040</b>, which in the embodiment described thus far includes an image sensor chip <b>1066</b> and imaging optics <b>1070</b> may be provided in the form described in connection with <figref idref="DRAWINGS">FIGS. 2A-2C</figref>. Imaging assembly <b>1040</b> may also be provided by a laser scan engine, such as an SE1000 scan engine of the type available from Symbol Technologies, Inc. of Holtsville, N.Y.
IC chip <b>130</b> may include a plurality of serial I/O interfaces such as general purpose I/O, USB, and Ethernet interfaces and a plurality of parallel interfaces such as CompactFlash and PCMCIA.
Device <b>100</b> may further include a plurality of communication links such as a first radio frequency communication transceiver <b>1082</b>, a second radio frequency transceiver <b>1084</b>, a third radio frequency transceiver <b>1086</b>, and an IR communication link <b>1088</b> facilitating communication between device <b>100</b> and an external device spaced apart from device <b>100</b>. As seen in <figref idref="DRAWINGS">FIG. 2B</figref>, device <b>100</b> may be part of a local area network (“LAN”) <b>1200</b> including a spaced apart and separately housed local host processor assembly <b>1210</b> and other portable hand held devices <b>101</b>-<b>1</b>, <b>101</b>-<b>2</b>, <b>102</b>. Gun style hand held device <b>102</b> may be provided e.g., by an IT4410 hand held reader, an IT4710 reader, an IT4600 reader, an IT4800 reader or an IT4X80 reader. All of the above readers are manufactured by Hand Held Products, Inc. of Skaneateles Falls, N.Y. LAN <b>1200</b> may further include such components as a system backbone <b>1205</b>, an access point <b>1260</b>, and a server <b>1250</b>. As is discussed with reference to <figref idref="DRAWINGS">FIG. 5D</figref>, host processor assembly <b>1210</b> may have many components similar to those of device <b>100</b>. Host processor assembly <b>1210</b> may include a processor IC chip <b>1230</b>, a system RAM <b>1221</b>, a program memory or system ROM <b>1222</b> and a radio frequency transceiver <b>1282</b>. Transceiver <b>1282</b> may be disposed within housing <b>1210</b><i>h </i>or may be external e.g., tethered to housing <b>1210</b><i>h</i>. By configuring wireless communication between device <b>100</b> and host processor assembly <b>1210</b> so that a radio frequency transceiver of device <b>100</b>, e.g. transceiver <b>1082</b> and a radio frequency transceiver of host processor assembly, e.g., transceiver <b>1282</b> communicate according to the same communication protocol or standard. In a first embodiment, device <b>100</b> and host processor assembly <b>1210</b> are configured so that transceivers <b>1082</b> and <b>1282</b> do not transmit signals of above about 3 milliwatts. Configuring device <b>100</b> and host processor assembly <b>1282</b> so that transceivers <b>1082</b> and <b>1282</b> transmit power-limited signals of below about 3 milliwatts reduces the likelihood of interference with other electrical equipment which may be in the vicinity of device <b>100</b> and host processor assembly <b>1282</b>. Further in accordance with a first embodiment, device <b>100</b> and host processor assembly <b>1282</b> are configured so that transceivers <b>1082</b> and <b>1282</b> conduct spread spectrum frequency hopping data transmissions. Configuring device <b>100</b> and host processor assembly <b>1210</b> to conduct spread spectrum frequency hopping data transmissions further limits the likelihood of radio interference with other radio transmitting electrical devices in the vicinity of device <b>100</b> and host processor assembly <b>1210</b>. Still further, device <b>100</b> and host processor assembly <b>1210</b> are configured in accordance with a first embodiment so that when device <b>100</b> and host processor assembly <b>1210</b> are in communication range of one other, transceiver <b>1082</b> and transceiver <b>1282</b> automatically communicate with one another to determine whether device <b>100</b> is to transmit data to host processor assembly <b>1210</b>. The first embodiment may be conveniently realized if transceivers <b>1082</b>, <b>1282</b> are Bluetooth transceivers appropriately established in accordance with the Bluetooth data transmissions protocol. According to one embodiment of device <b>100</b>, radio frequency transceiver <b>1082</b> may be a Bluetooth radio frequency transceiver, radio frequency transceiver <b>1084</b> may be an 802.11 radio frequency transceiver, while radio frequency transceiver <b>1086</b> may be a GSM/GPRS radio frequency transceiver. 802.11 radio frequency transceiver, <b>1084</b> generally enables longer range LAN communications than Bluetooth radio frequency transceiver <b>1082</b>. GSM/GPRS radio transceiver <b>1086</b> enables long range cellular data communications.
Devices <b>101</b>-<b>1</b> and <b>101</b>-<b>2</b> are “PDT” devices having housing <b>101</b><i>h</i>, while device <b>102</b> has housing <b>102</b><i>h</i>. Electrical circuit components and optical components described with reference to <figref idref="DRAWINGS">FIG. 2A</figref> may be incorporated into housing <b>101</b><i>h </i>and housing <b>102</b><i>h</i>. Devices <b>100</b>, <b>101</b>-<b>1</b>, <b>101</b>-<b>2</b>, <b>102</b> are portable such that they are spaced apart from host processor assembly <b>1210</b> and may be freely moved by an operator into any desired orientation relative to host processor assembly <b>1210</b>. In addition to having wireless communication links, device <b>100</b> may include various physical connector interfaces such as an RJ45 connector <b>1091</b> associated with Ethernet interface <b>1090</b> enabling hard wired communication with host processor <b>1210</b>. Device <b>100</b> may further be in communication with a plurality of offsite remote host processors <b>1310</b> located several miles to thousands of miles away from device <b>100</b>. Remote host processors <b>1310</b> may be in communication with device <b>100</b> via a wide area network <b>1401</b>, which may be the Internet. Device <b>100</b> may include a browser enabling a user of device <b>100</b> to view on display <b>194</b> (<figref idref="DRAWINGS">FIG. 5F</figref>) a web page stored in one of a remote host processor <b>1310</b> and to navigate between websites stored on a variety of host processors <b>1310</b>. As will be described herein below, device <b>100</b> may include connector <b>1092</b>, such as a “D Connector” enabling connection of an auxiliary reader unit to device <b>100</b>. Signals input to device <b>100</b> by an auxiliary reader unit may be processed by comparator <b>1093</b> as will be described in connection with <figref idref="DRAWINGS">FIG. 5A</figref>. Device <b>100</b> may communicate directly with network <b>1400</b> or indirectly with network <b>1400</b> by utilization of network elements of the local area network <b>1200</b> including device <b>100</b>, and local host processor <b>1210</b>. Housing <b>1100</b> may encapsulate and support all of the electrical components and all of the optical components shown in the electro-optical diagram of <figref idref="DRAWINGS">FIG. 2A</figref>.
As is indicated by the system diagram of <figref idref="DRAWINGS">FIG. 5A</figref>, device <b>100</b> containing the electrical and optical components of the diagram of <figref idref="DRAWINGS">FIG. 2A</figref> is in communication with auxiliary reader unit, e.g., unit <b>1700</b>. From time to time it may be desirable to capture image data for processing by the circuit of <figref idref="DRAWINGS">FIG. 2A</figref> with use of image sensing components other than the components contained within device <b>100</b>. The system <b>1400</b> of <figref idref="DRAWINGS">FIG. 5A</figref> includes an auxiliary wand reader <b>1700</b>. Wand reader <b>1700</b> may have a rugged tip <b>1702</b> adapted to contact paper, an imaging lens <b>1704</b>, a single element photodetector <b>1706</b>, and signal processing circuitry <b>1708</b> developing signals output by sensor <b>1706</b> into an analog waveform as wand <b>1700</b> is dragged across a bar code. Hand reader <b>1700</b> may further have a hand held housing <b>1700</b><i>h </i>supporting the above elements. Wand reader <b>1700</b> produces image signals when it is physically dragged across a bar code. The image signals produced by wand reader <b>1700</b> are smooth waveforms generally regarded to be of higher resolution than those that can be produced by multiple pixel image sensor <b>1060</b>. System <b>1400</b> may be configured so that wand reader <b>1700</b> is detachably attachable to the device <b>100</b>. Specifically, a connector of cable <b>1710</b> extending from wand reader <b>1700</b> may be detachably attached to connector <b>1092</b> of device <b>100</b> (see <figref idref="DRAWINGS">FIGS. 1A</figref>, <b>2</b>A). Device <b>100</b> can be configured so that when wand reader <b>1700</b> spaced apart from device <b>100</b> is connected to device <b>100</b>, signals output by wand reader <b>1700</b> are received and processed by device <b>100</b>. Specifically, with reference to <figref idref="DRAWINGS">FIG. 2A</figref>, analog signals output by wand reader <b>1700</b> are input into comparator <b>1093</b>. Comparator <b>1093</b> subjects the input analog waveform to an adaptive threshold test to produce a digital output signal which is input to processor IC chip <b>1030</b>. Device <b>100</b> then processes the input image signals in accordance with the processing modules described in connection with <figref idref="DRAWINGS">FIG. 2C</figref>.
Device <b>100</b> in one embodiment automatically interrogates connector <b>1092</b> to determine whether auxiliary reader <b>1700</b> has been connected. If device <b>100</b> determines that auxiliary reader <b>1700</b> has been connected, device <b>100</b> automatically waits for image signals to be received from reader <b>1700</b>, and automatically processes the signals when they are received in accordance with processing modules <b>1402</b>, <b>1404</b>, <b>1408</b>, <b>1410</b> and <b>1412</b>. In one embodiment, auxiliary reader <b>1700</b> has substantially the electrical and optical components of <figref idref="DRAWINGS">FIG. 2A</figref>, but has a housing of a different form factor. For example, auxiliary reader <b>1700</b> may have a gun style form factor such as reader <b>102</b>. An alternative form factor might be useful, e.g., for reading bar codes in hard to access locations. Auxiliary reader <b>1700</b> may also lack one or more of modules <b>1408</b>, <b>1410</b>, <b>1412</b>.
In use, verification device <b>100</b> is interactive with and is used in association with host processor assembly <b>1210</b>. Host processor assembly <b>1210</b> may be provided by e.g. a personal computer as is shown in <figref idref="DRAWINGS">FIG. 2B</figref>. However, it will be understood that host processor assembly <b>1210</b> can be provided by any display-equipped device <b>100</b> having suitable processing functionality. As shown in <figref idref="DRAWINGS">FIG. 5B</figref> host processor <b>1210</b> can be provided by an e.g., a PC <b>1210</b>-<b>1</b>, a portable laptop computer <b>1210</b>-<b>2</b>, a hand held portable data terminal <b>1210</b>-<b>3</b>, <b>1210</b>-<b>5</b>, or a hand held personal data assistant, PDA <b>1210</b>-<b>4</b>. Further, any functionality described herein for local host processor assembly <b>1210</b> could readily be accomplished with use of a remote host processor assembly such as any one of the devices labeled assembly <b>1360</b> shown in <figref idref="DRAWINGS">FIG. 2B</figref>.
As indicated previously, a system <b>1400</b> that comprises verification device <b>100</b> and host processor assembly <b>1260</b> e.g. can have a plurality of processing modules. A breakdown describing the integration of such processing modules in the various components of system <b>1400</b> in one embodiment is described with reference to <figref idref="DRAWINGS">FIG. 2C</figref>.
In the schematic diagram of <figref idref="DRAWINGS">FIG. 2C</figref>, verification device <b>100</b> includes an image capture module <b>1402</b>, a bar code decoding module <b>1404</b>, an interpolation module <b>1406</b>, a high spatial frequency error correction module <b>1408</b>, a bar code print quality measurement module <b>1410</b>, and a waveform transmittal module <b>1412</b>, whereas host processor assembly <b>1210</b> includes a waveform receipt module <b>1420</b>, user-interactive waveform analysis module <b>1424</b> and an auxiliary print quality assessment module <b>1422</b>. Image capture module <b>1402</b> is generally executed by control circuit <b>1010</b> in response to trigger <b>150</b> being actuated. The execution of modules <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1412</b>, <b>1420</b>, and <b>1422</b> also follow automatically in response to the actuation of trigger subsequent to the execution of image capture module. The execution of image capture module <b>1402</b> generally involves the transmittal of commands from control circuit <b>1010</b> to image sensor chip <b>1066</b> and the processing of an analog waveform produced by image sensor chip <b>1066</b> into digital form with use of an A/D converter. The remaining modules <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1412</b>, <b>1420</b>, <b>1422</b>, and <b>1424</b> are conveniently embodied in software (that is, they are performed with use of processor IC chip <b>1030</b> or host processor assembly <b>1210</b> in response to a program stored in a memory e.g. memory <b>1021</b>). However, modules <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1412</b>, <b>1420</b>, <b>1422</b>, and <b>1424</b> can comprise hardware circuit components and combinations of hardware and software components. Aspects of the various processing modules are described herein below.
Reference is now made to <figref idref="DRAWINGS">FIG. 2D</figref> showing the flow of execution of processing modules by system <b>1400</b> in response to trigger <b>150</b> being actuated.
At block <b>1502</b>, control circuit <b>1010</b> executes processing module <b>1402</b> to capture a frame of image data. The frame of image data may be 1D frame of image data or a 2D frame of image data. In one embodiment the frame of image data comprises gray scale pixel values. A 1D frame of image data may comprise an M×1 array of gray scale pixel values or an M×N frame of image data where N>>M. e.g., a 2000×2 pixel value frame of image data. A 2D frame of image data may comprise an M×N frame of image data, where M, N>100. The frame of image data captured at block <b>150</b> can also include color-indicating pixel values. The frame of image data captured at block <b>1502</b> normally has a number of pixel values equal to the number of pixels of image sensor <b>1060</b>. Further, each pixel value in the frame of image data captured by execution of module <b>1402</b> normally has an associated position value, corresponding to a discrete pixel position of image sensor <b>1060</b>. For example, where image sensor <b>1060</b> is an image sensor having M column and N rows of pixels, a frame of image data captured at block <b>1502</b> may have an M×N array of pixel values, each having a position value corresponding to a certain pixel of image sensor <b>1066</b>, and each pixel value representing light incident at a discrete location on substrate, s. Where image sensor <b>1060</b> is an M×1 image sensor having a single row of pixels, the frame of image data captured at block <b>1502</b> may have an M×1 array of pixel values, each pixel value having a pixel value position corresponding to a pixel of image sensor <b>1060</b> and each pixel value representing light incident at a discrete location on substrate, s. It is understood that the capture of a frame of image data at block <b>1402</b> that is subject to further processing, control circuit <b>1010</b> may capture a plurality of parameter-determining frames of image data for purposes of establishing e.g., exposure parameters.
When executing image capture module <b>1402</b> control circuit <b>1010</b> may automatically correct image signals generated by image sensor <b>1060</b> for fixed pattern noise. Specifically, during execution of module <b>1402</b> control circuit <b>1010</b> may correct image signals of image sensor <b>1060</b> for fixed pattern noise that is attributable to nonuniformities of a projected illumination pattern projected by an illumination assembly <b>1041</b> of device <b>100</b>. Referring to <figref idref="DRAWINGS">FIG. 6B</figref>, device <b>100</b> may include an illumination assembly <b>1041</b> including at least one light source such as LEDs <b>1082</b> which projects illumination pattern, P, onto substrate, s. However, due to inconsistencies in e.g. the illumination output, degradation level, and spacing between each individual LED <b>1082</b>, the illumination pattern, P, projected onto substrate, s, will not be completely uniform. <figref idref="DRAWINGS">FIG. 2F</figref> shows a scan reflectance profile for a linear image corresponding to an area of substrate, s, illumination by illumination system <b>1041</b>, where substrate, s, is of uniform gray scale. It is seen that because the irradiance level is not uniform, an electronic image corresponding to region of substrate, s, will be affected by fixed pattern noise attributable to radiance nonuniformities of pattern, P.
Accordingly, device <b>100</b> may be configured to operate in a calibration mode in which device <b>100</b> establishes correction values for signals generated by image sensor <b>1060</b>. A calibration mode may be selected, e.g. by decoding with use of device <b>100</b> a specially encoded programming bar code symbol, B, which when recognized by device <b>100</b> causes device <b>100</b> to operate in a calibration mode. Device <b>100</b> may also be configured so that a calibration mode is commenced when a control button is actuated. The control button may be, e.g. a physical button on device <b>100</b> or on a device spaced apart from device <b>100</b>, e.g. keyboard <b>1210</b>K (<figref idref="DRAWINGS">FIG. 5A</figref>). The button may also be a virtual control button displayed on a display of, e.g. device <b>100</b> or host processor assembly <b>1210</b>, as is indicated by calibrate button <b>2320</b> shown in <figref idref="DRAWINGS">FIG. 5L</figref>.
When operating in a fixed pattern noise calibration mode, control circuit <b>1010</b> may operate in accordance with the flow diagram of <figref idref="DRAWINGS">FIG. 2G</figref>. At block <b>2302</b> control circuit <b>1010</b> captures a test frame of image data. Typically, at block <b>2302</b> control circuit <b>1010</b> captures an image representation of a uniform gray scale substrate, s, such as a white sheet of paper. Illumination assembly <b>1041</b> is controlled to be energized while the test frame is captured at block <b>2302</b> in such manner that the image data represents the radiance nonuniformities of pattern, P. At block <b>2304</b> control circuit <b>1010</b> determines correction values for correcting image signals of image sensor <b>1060</b>. In one embodiment, control circuit <b>1010</b> at block <b>2304</b> calculates correction pixel values for each pixel position of the test frame captured at block <b>2302</b>. The correction pixel values determined at block <b>2304</b> are determined such that when scaled by its corresponding calculated correction pixel value, each pixel position of the corrected image has an equal gray scale value. At block <b>2306</b> control circuit <b>1010</b> stores the determined pixel correction values into a nonvolatile memory device such as EROM <b>1022</b>. By storing the values into a nonvolatile memory device <b>1022</b> the correction values are retained after device <b>100</b> is powered down. It will be seen that the calculated correction values will correct for fixed pattern noise attributable to sources other than illumination assembly <b>1041</b>, e.g. lens <b>1070</b> and image sensor <b>1060</b>.
Device <b>100</b> may include hardware elements that appropriately boost or reduce the amplitude of image signals output from image sensor <b>1060</b> in accordance with correction values determine at block <b>2304</b>. Alternatively, control circuit <b>1010</b> may correct image data in accordance with stored fixed pattern noise correction values by scaling pixel values of a preliminary memory-stored frame of image data in accordance with stored pixel correction values after the preliminary frame of image data is stored into RAM <b>1021</b>.
It may be desirable to operate device <b>100</b> in accordance with the calibration mode several times during the lifetime of device <b>100</b>. Device <b>100</b> may require fixed pattern noise calibration, for example, if some of LEDs <b>1082</b> become degraded due to age, or if one or more of LEDs <b>1082</b> becomes nonfunctional.
At block <b>1504</b>, control circuit <b>1010</b> executes decoding module <b>1404</b> to attempt to decode a bar code. Information respecting various reference bar code decoding routines is available from the Association for Automatic Identification and Mobility (“AIM”), at www.aimglobal.org, Information respecting various bar code decoding routines is also available in various standards published by the International Standards Organization (“ISO”). When device <b>100</b> successfully decodes a bar code, device <b>100</b> stores a decoded out message at a memory location of device <b>100</b>. If at block <b>1505</b> device <b>100</b> determines that bar code decoding is not successful, device <b>100</b> outputs an error message at block <b>1507</b> (such as a read failure message to display <b>1210</b><i>d </i>of host processor assembly <b>1210</b> or display <b>194</b> of device) and waits for a next trigger actuation. Alternatively, after attempting to decode a bar code symbol at block <b>1504</b>, control circuit <b>1010</b> may proceed directly to block <b>1506</b> whether or not a decode attempt at block <b>1504</b> is successful. Device <b>100</b> may be configured so that device <b>100</b> actuates green LEDs <b>1052</b> if decoding is successful at block <b>1504</b>. Device may also be configured so that device <b>100</b> actuates red LEDs <b>1051</b> if decoded at block <b>1505</b> is not successful. Device may also be configured to actuate acoustic output <b>1053</b> if decoding is successful. Referring to <figref idref="DRAWINGS">FIG. 6A</figref>, an operator can observe light from LEDs <b>1051</b> and <b>1052</b> by viewing through window <b>11354</b> into an interior of housing <b>1100</b>.
At block <b>1506</b> control circuit <b>1010</b> executes interpolation module <b>1406</b>. By execution of interpolation module <b>1406</b> control circuit <b>1010</b> determines constructed pixel values for interpolated pixel positions intermediate “actual” pixel positions of a frame of image data. Control circuit <b>1010</b> can interpolate one or more constructed pixel values between each “actual” pixel value that corresponds to a position of an individual pixel of image sensor <b>1060</b>. In one embodiment, control circuit <b>1010</b> interpolates constructed pixel values from actual pixel values by way of a process of linear interpolation. In executing a linear “straight line” interpolation process relative to a linear gray scale image, control circuit <b>1010</b> may determine that a constructed pixel position intermediate adjacent actual pixel positions having gray scale values of 50 gray scale and 100 gray scale, should have a value of 75 gray scale. <figref idref="DRAWINGS">FIG. 3I</figref> shows a representation of a reference reflectance profile <b>6013</b> representing the image on substrate, s, which is sampled at pixel positions P<sub>N−2 </sub>through P<sub>N+3</sub>. In a particular example, control circuit <b>1010</b> may process the gray scale linear frame of image data represented in <figref idref="DRAWINGS">FIG. 3K</figref>, wherein P<sub>N−1</sub>, P<sub>N</sub>, P<sub>N+1 </sub>represent original pixel value positions of an input one dimensional frame of image data, each corresponding to an individual pixel of image sensor <b>1060</b>, and wherein the pixel positions have the gray scale pixel values ( . . . , 70, 50, 100 . . . ) indicated. In executing interpolating interpolation module <b>1406</b>, control circuit <b>110</b> produces the enhanced resolution gray scale frame of image data indicated by <figref idref="DRAWINGS">FIG. 3L</figref>. The frame of image data represented by <figref idref="DRAWINGS">FIG. 3I</figref> includes having gray scale pixel values calculated by way of linear interpolation for interpolated pixel positions, I, intermediate actual pixel positions. In executing module <b>1406</b>, control circuit <b>1010</b> develops an electronic representation of a bar code symbol that more accurately represents the characteristics of the printed bar code symbol printed on substrate, s, than the originally captured image captured at block <b>1502</b>.
Constructed pixel values for interpolated pixel positions intermediate of original pixel positions (e.g., “actual” pixel positions having values corresponding to light on an individual pixel of sensor <b>1060</b>) can also be calculated with utilization of a non-linear interpolation process. An example of the invention wherein control circuit <b>1010</b> utilizes a sinc function to calculate constructed pixel values at interpolated pixel positions intermediate actual pixel position is described with reference to <figref idref="DRAWINGS">FIG. 3A</figref>. At block <b>6004</b>, control circuit <b>1010</b> calculates sinc functions at each sample position (e.g. for each pixel position having a pixel value). The result of processing block <b>6004</b> is described with reference to the waveforms diagrams of <figref idref="DRAWINGS">FIGS. 3H</figref>, <b>3</b>I, and <b>3</b>J. The sinc function given by the formula sinc (x)=sinc x/x at any given sample position has the characteristics represented by waveform <b>6012</b> (<figref idref="DRAWINGS">FIG. 3H</figref>). Superimposed sinc function waveforms for several sample positions are shown in <figref idref="DRAWINGS">FIG. 3J</figref>. At block <b>6006</b>, control circuit <b>1010</b> sums the sinc function at each sample position and each desired interpolated position. The resulting smoothed waveform <b>6014</b> (<figref idref="DRAWINGS">FIG. 3J</figref>) represents the result of interpolating sample values at a very large number of interpolated positions. It will be seen that processing speed can be increased by calculating constructed sample (e.g. pixel) values for fewer numbers of interpolated sample positions. Processing speed can also be increased by establishing windowing parameters that modify each sinc function so that each determined sinc function contributes to the calculated value of a fewer number of interpolated sample positions. Referring to the flow diagram of <figref idref="DRAWINGS">FIG. 3A</figref>, control circuit <b>1010</b> at block <b>6002</b> may establish windowing parameters and at block <b>6004</b>, control circuit <b>1010</b> may calculate sinc functions utilizing the windowing parameters established at block <b>6002</b>. With reference to <figref idref="DRAWINGS">FIG. 3J</figref>, it is seen that without establishing windowing parameters, a sinc function for each sample position would produce a value contributing to the calculated constructed sample value at each interpolated sample position. That is, in an initial sample having <b>1024</b> pixel values corresponding to a row of pixels and where it is desired to calculate a single interpolated pixel value intermediate each original pixel value, control circuit <b>1010</b> would sum <b>1024</b> sinc function values for each interpolated pixel position.
Referring again to the flow diagram of <figref idref="DRAWINGS">FIG. 3A</figref> control circuit <b>1010</b> at block <b>6002</b> may establish simple threshold windowing parameters which discard sinc function values below a predetermined value. Sinc function values may also be discarded with use of a peak limiting function which discards a predetermined number of peaks of a sinc function waveform. Control circuit <b>1010</b> may also at block <b>6002</b> modify a sinc function utilizing an exponential function. With utilization of an exponential function, windowing parameters can be established which substantially reduce the time required for calculation of a constructed sample value without substantial reduction of information contained in an original set of sinc function waveforms. Further aspects of an embodiment of interpolation module <b>1406</b> are described in connection with Example 1 herein below. In Example 1, a transfer function executed by control circuit <b>1010</b> when executing interpolation module <b>1406</b> includes a sinc function and an exponential function, the exponential function reducing the number of interpolated sample positions for which the sinc function for a given sample position contributes a value.
Example 1
An under sampled signal is processed. The initial bar code data prior to sampling is represented in the waveform diagram of <figref idref="DRAWINGS">FIG. 3B</figref>. The waveform of <figref idref="DRAWINGS">FIG. 3B</figref> is then sampled with sample spacing of Period2. The waveform diagram presented in <figref idref="DRAWINGS">FIG. 3B</figref> is a scan reflectance profile in which image data sample values are expressed in terms of ratio to maximum values. In the present example, a larger number corresponds to a higher reflectance, i.e., white is high. The sampled bar code data is shown in <figref idref="DRAWINGS">FIG. 3C</figref> with each sample point noted.
A sinc function is given by eq. 1-1 below, wherein a functional definition of the sinc function is conditional to avoid the singularity at 0.
<maths id="MATH-US-00001" num="00001"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><mi>sin</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mi>c</mi><mo></mo><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow></mrow></mrow><mo>:=</mo><mrow><mi>if</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo>[</mo><mrow><mrow><mrow><mo>(</mo><mi>x</mi><mo>)</mo></mrow><mo>=</mo><mn>0</mn></mrow><mo>,</mo><mn>1</mn><mo>,</mo><mfrac><mrow><mi>sin</mi><mo></mo><mrow><mo>(</mo><mrow><mi>π</mi><mo>·</mo><mi>x</mi></mrow><mo>)</mo></mrow></mrow><mrow><mi>π</mi><mo>·</mo><mi>x</mi></mrow></mfrac></mrow><mo>]</mo></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>1</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0001.tif" />
A waveform diagram wherein values generated in accordance with the sinc function given by eq. 1-1 is presented in <figref idref="DRAWINGS">FIG. 3D</figref>. It is seen from the waveform diagram of <figref idref="DRAWINGS">FIG. 3D</figref> that the transfer function given by eq. 1-1 exhibits a decay such that hundreds of terms in a series expansion might be needed in order to converge with reasonable precision. <figref idref="DRAWINGS">FIG. 3E</figref> is a waveform diagram representing a sinc function modified utilizing an exponential function windowing parameter. The transfer function represented by the waveform diagram of <figref idref="DRAWINGS">FIG. 3E</figref> includes a sinc function term multiplied by an exponential decay term. Sinc function terms (modified by the exponential decay function) below predetermined amplitudes can be discarded without significant loss of signal reconstruction accuracy. Modified sinc function terms modified with an exponential damping function can be discarded by way of subjecting the modified sinc function to a simple threshold procedure to eliminate values below a predetermined near-zero value. The summation in Example 1 is truncated after about 60 terms. It is seen that the processing speed can be increased by establishing an appropriate windowing parameter.
The 6 mil (1 mil= 1/1000 inch) narrow element width sampled bar code data presented by the waveform diagram of <figref idref="DRAWINGS">FIG. 3C</figref> is at 5 mil intervals.
Constructed sample values are calculated from sample data presented in <figref idref="DRAWINGS">FIG. 3C</figref> utilizing a series of sinc functions. Sampling spacing of interpolated sample values is set to 1 mil per sample. A sinc function argument is given by eq. 1-2 through eq. 1-4 as follows:
<maths id="MATH-US-00002" num="00002"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><mi>Period</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow><mo>=</mo><mrow><mn>5.0</mn><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mi>mils</mi></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>2</mn></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mi>fs</mi><mo>:=</mo><mfrac><mn>1</mn><mrow><mi>Period</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mfrac></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>3</mn></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mi>ω</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mi>c</mi></mrow><mo>:=</mo><mrow><mn>2</mn><mo>·</mo><mi>π</mi><mo>·</mo><mfrac><mi>fs</mi><mn>2</mn></mfrac></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>4</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0002.tif" />
Where ωc, the frequency of the sinc function argument, is given by ωc=0.628. An exponential windowing function is established as follows:
<maths id="MATH-US-00003" num="00003"><math overflow="scroll"><mtable><mtr><mtd><mrow><mi>a</mi><mo>=</mo><mn>5</mn></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>5</mn></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mi>Ex</mi><mo></mo><mrow><mo>(</mo><mi>k</mi><mo>)</mo></mrow></mrow><mo>:=</mo><msup><mi>ⅇ</mi><mrow><mo>-</mo><msup><mrow><mo>(</mo><mfrac><mi>k</mi><mi>a</mi></mfrac><mo>)</mo></mrow><mn>2</mn></msup></mrow></msup></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>6</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0003.tif" />
Where a is the exponential damping factor. A series expansion, where sum is the extent of the summation, for use in reconstructing the waveform values at the interpolated sample positions with separation DataSep:=1 is as follows:
<maths id="MATH-US-00004" num="00004"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><mi>xr</mi><mo></mo><mrow><mo>(</mo><mi>t</mi><mo>)</mo></mrow></mrow><mo>:=</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><munderover><mo>∑</mo><mrow><mi>n</mi><mo>=</mo><mrow><mi>floor</mi><mo>(</mo><mfrac><mrow><mi>t</mi><mo>-</mo><mfrac><mi>sum</mi><mn>2</mn></mfrac></mrow><mrow><mi>Period</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mfrac><mo>)</mo></mrow></mrow><mrow><mi>floor</mi><mo>(</mo><mfrac><mrow><mi>t</mi><mo>+</mo><mfrac><mi>sum</mi><mn>2</mn></mfrac></mrow><mrow><mi>Period</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mfrac><mo>)</mo></mrow></munderover><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mrow><mrow><mi>BS</mi><mo></mo><mrow><mo>(</mo><mrow><mi>n</mi><mo>·</mo><mi>DataSep</mi></mrow><mo>)</mo></mrow></mrow><mo>·</mo><mrow><mo> </mo><mrow><mi>Period</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mn>2</mn><mo>·</mo><mfrac><mrow><mi>ω</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mi>c</mi></mrow><mi>π</mi></mfrac><mo>·</mo></mrow></mrow><mo> </mo></mrow></mrow><mo></mo><mrow><mo> </mo><mrow><mi>sin</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mrow><mi>c</mi><mo>[</mo><mrow><mi>ω</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mi>c</mi><mo>·</mo><mfrac><mrow><mo>(</mo><mrow><mi>t</mi><mo>-</mo><mrow><mrow><mi>n</mi><mo>·</mo><mi>Period</mi></mrow><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mrow><mo>)</mo></mrow><mi>π</mi></mfrac></mrow></mrow><mo>]</mo></mrow><mo>·</mo><mrow><mi>Ex</mi><mo>[</mo><mrow><mi>ω</mi><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mrow><mi>c</mi><mo>·</mo><mfrac><mrow><mo>(</mo><mrow><mi>t</mi><mo>-</mo><mrow><mrow><mi>n</mi><mo>·</mo><mi>Period</mi></mrow><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mn>2</mn></mrow></mrow><mo>)</mo></mrow><mi>π</mi></mfrac></mrow></mrow><mo>]</mo></mrow></mrow></mrow></mrow></mrow></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>1</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>7</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0004.tif" />
In accordance with the transfer function of eq. 1-7 a waveform will be reconstructed with samples at <b>1</b> mil intervals. Segments of the output waveform resulting from subjecting the input waveform of <figref idref="DRAWINGS">FIG. 3C</figref> to the transfer function of eq. 1-7, where period2=5.0 mils, a=2.5 mils and sum=60 are presented in <figref idref="DRAWINGS">FIGS. 3F and 3G</figref>. <figref idref="DRAWINGS">FIG. 3F</figref> illustrates the interpolated or reconstructed waveform from sample numbers 0-450 while <figref idref="DRAWINGS">FIG. 3G</figref> illustrates the interpolated waveform from sample numbers 0-145.
Accordingly, it is seen that a bandwidth limited signal that is sampled can be reconstructed with improved precision using an appropriately dimensioned series of sinc functions. An exponential window parameter or function can significantly reduce the number of terms in the series without significantly impacting the accuracy of the reconstructed waveform.
End of Example 1
At block <b>1508</b> control circuit <b>1010</b> executes high spatial frequency error correction module <b>1408</b>. Device <b>100</b> may include a lens <b>1070</b> that has an approximately linear modulation transfer function (MTF) fall off with spatial frequency. Accordingly, device <b>100</b> may exhibit reduced optical resolution and edge contrast at higher spatial frequencies. In order to correct for reduced optical resolution at higher frequencies, a frame of image data may be subject to the processing that is described with reference to the flow diagram of <figref idref="DRAWINGS">FIG. 4</figref><i>a</i>. At block <b>8002</b> control circuit <b>1010</b> determines the Fourier transform of an input linear gray scale pixel image (e.g. an M×1) array of pixel values. The image data input at block <b>8002</b> may be the enhanced resolution image data output by control circuit <b>1010</b> when executing interpolation module <b>1406</b>, or may be the image data captured by control circuit <b>1010</b> pursuant to execution of image capture module <b>1402</b>, if for example interpolation module <b>1404</b> is not executed or not executed prior to execution of module <b>1408</b>. Determining the Fourier transform of a gray scale pixel image expresses the original space-domain image information in the frequency domain. At block <b>8004</b> control circuit <b>1010</b> subjects the Fourier transform determined at block <b>8002</b> to an adjustment process which may comprise a vector multiplication function. For example, at block <b>8004</b> control circuit <b>1010</b> may multiply the Fourier transform determined at block <b>8002</b> in accordance with an appropriately defined straight line gain as a function of frequency as is explained with reference to Example 2. Subjecting at block <b>8004</b> the Fourier transform determined at block <b>8002</b> to an appropriate multiplication function increases the amplitude of the Fourier transform at certain frequency components without substantially affecting the amplitude of the Fourier transform at other frequency components. Control circuit <b>1010</b> at block <b>8006</b> converts the adjusted Fourier transform to the space domain by determining the inverse of the adjusted Fourier transform that has been adjusted at block <b>8004</b>. In executing module <b>1408</b> control circuit <b>1010</b> develops an electronic representation of a bar code symbol that more accurately represents the characteristics of the printed bar code symbol printed on substrate, s, than the originally captured image captured at block <b>1502</b>. Although the implementation shown relies upon the use of the Fourier transform, alternate transforms might also be utilized, such as sine, cosine, wavelet or Laplace transforms.
Those skilled in the art will recognize that enhancement of the higher spatial frequencies, as implemented in module <b>1408</b> by control circuit <b>1010</b>, could also be accomplished using a number of alternate techniques, many of which would not require the use of Fourier transform techniques. Examples are properly defined and dimensioned FIR (Finite Impulse Response) and IIR (Infinite Impulse Response) filters, both of which would be implemented by the control circuit <b>1010</b> or in a separate digital processing element (not shown in the drawings) or even by more traditional analogue electronic high pass filters that might be implemented in the analog domain after imager <b>1060</b> and prior to the A/D converter <b>1079</b> shown in <figref idref="DRAWINGS">FIG. 2</figref><i>a. </i>
Example 2
An imaging lens <b>1070</b> of device <b>100</b> in an embodiment subject to analysis exhibits an approximately linear MTF fall off with spatial frequency. This MTF profile for a custom singlet such as might be used in this product is shown in <figref idref="DRAWINGS">FIG. 4B</figref>. This profile was created using the optics design program ZEMAX from the ZEMAX Development Corporation. The approximately linear MTF fall off of the lens results in reduced optical resolution and edge contrast at the higher spatial frequencies. The present custom lens has an MTF of approximately 71% at 20 cycles per mm in imager space. This optical pattern is imaged on a one dimensional CCD image sensor converting the optical representation of the bar code pattern under test to an electrical waveform. In an analogous fashion, the electrical signal exhibits an approximately linear fall off with frequency in the electrical domain.
An EAN128 999999/R1 symbol is sampled by capturing a 1D frame of image data. The file length of the input signal is 3,646 elements (gray scale pixel values) long. The original EAN bar code signal is represented in the center portion of <figref idref="DRAWINGS">FIG. 4C</figref>. <figref idref="DRAWINGS">FIG. 4C</figref> shows a scan reflectance profile of an EAN bar code symbol with an average narrow element width of 6.6 mils. At each end of the field of view 1.8 LP/mm test targets can be seen. It is observed from the scan reference profile of <figref idref="DRAWINGS">FIG. 4C</figref> that increased signal results in a lower count, i.e., white is low.
A portion of the sampled data is shown in <figref idref="DRAWINGS">FIG. 4D</figref> with the actual sample points marked. It is observed that the data is adequately sampled at about 4 samples per narrow element.
The result of determining the Fourier transform of the original bar code signal is presented in the waveform diagrams of <figref idref="DRAWINGS">FIGS. 4E</figref> and <figref idref="DRAWINGS">FIG. 4F</figref>. <figref idref="DRAWINGS">FIG. 4E</figref> illustrates J index frequency components from 0 to 3500, while <figref idref="DRAWINGS">FIG. 4F</figref> illustrates J index frequency components from 0 to 1000. In this example A represents the scan reflectance profile as shown in <figref idref="DRAWINGS">FIG. 4C</figref> and B is the Fourier transform of A. Thus, B:=cfft(A).
The Fourier transform of the original input image includes a real and imaginary component. The original file contains 3645 data points and, as a result, the transform file contains 1822 complex elements. Further, the magnitude of the Fourier transform image data is symmetric about the point <b>1823</b>. Each CCD pixel has a width of 8 um and the system optical magnification is 5×. Thus, in paper space each pixel spans a width of: <br />Pix=0.008 mm (eq. 2-1)<br />PixPaper=Pix 5 (eq. 2-2)<br />PixPaper=1.575×10<sup>−3 </sup>in. or 1.6 mils (eq. 2-3)
Accordingly, Scan Width=PixPaper.3645=5.74 in. The frequency span per count, and the full scan frequency span, are given by eq. 2-4 and eq. 2-5 respectively.
<maths id="MATH-US-00005" num="00005"><math overflow="scroll"><mtable><mtr><mtd><mrow><mfrac><mn>1</mn><mi>ScanWidth</mi></mfrac><mo>=</mo><mrow><mn>6.859</mn><mo>×</mo><msup><mn>10</mn><mrow><mo>-</mo><mn>3</mn></mrow></msup><mo></mo><mfrac><mn>1</mn><mi>mm</mi></mfrac></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>2</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>4</mn></mrow><mo>)</mo></mrow></mtd></mtr><mtr><mtd><mrow><mrow><mfrac><mn>1</mn><mi>ScanWidth</mi></mfrac><mo>·</mo><mn>1822</mn></mrow><mo>=</mo><mrow><mn>12.497</mn><mo></mo><mstyle><mspace width="0.3em" height="0.3ex" /></mstyle><mo></mo><mfrac><mn>1</mn><mi>mm</mi></mfrac></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>2</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>5</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0005.tif" />
Thus, the largest complete sine cycle that can be scanned would span 5.74 inches in paper space. This corresponding to the lowest detectable frequency in paper space. Thus, in paper space, a single count corresponds to a spatial frequency of 6.859×^10<sup>−3 </sup>cycles/mm The full scale span in paper space would therefore be 1822 times this value, or 12.50 cycles per mm.
In this example, the highest spatial frequency of importance in paper space is 4.0 LP/mm (corresponding to a minimum bar code element size of 5.0 mils) Because the optical system has a 5× magnification, this corresponds to a spatial frequency of 20 LP/mm at the image sensor. The lens MTF as seen is <figref idref="DRAWINGS">FIG. 4B</figref> has an MTF of approximately 71% at 20 LP/mm.
From the calculations above, the spatial frequency count associated with 4 LP/mm can be found by dividing 4.0 by the spatial frequency of 6.859×10^<sup>−3 </sup>cycles/mm
<maths id="MATH-US-00006" num="00006"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><mi>Count</mi><mo>:=</mo><mfrac><mn>4</mn><mrow><mn>6.859</mn><mo>·</mo><msup><mn>10</mn><mrow><mo>-</mo><mn>3</mn></mrow></msup></mrow></mfrac></mrow><mo></mo><mstyle><mtext></mtext></mstyle><mo></mo><mrow><mi>Count</mi><mo>=</mo><mn>583</mn></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>2</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>6</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0006.tif" />
ZEMAX optical modeling software was used to model the optical system of device <b>100</b>. From the ZEMAX analysis of the optical system, it was observed that 20 cycles per mm in imager space corresponds to 4 cycles per mm in paper space. Also, at this point frequency, the MTF is approximately 0.71. From the calculations above, 4 cycles per mm exhibits an index of 583. To compensate for the reduced MTF of the lens, the gain might be set to 1/0.71=1.41. As an initial value, use a compensation gain g. of 1.00.
A gain function was established as a linear function of frequency. Gain was established to be symmetrical about the point <b>1822</b>. The gain function, where g=1.0, is expressed by eq. 2-7.
<maths id="MATH-US-00007" num="00007"><math overflow="scroll"><mtable><mtr><mtd><mrow><mrow><mi>g</mi><mo>≡</mo><mn>1.0</mn></mrow><mo></mo><mstyle><mtext></mtext></mstyle><mo></mo><mrow><msub><mi>G</mi><mi>j</mi></msub><mo>:=</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><mi>if</mi><mo></mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo>[</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><mrow><mi>j</mi><mo>≤</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mn>1822</mn></mrow><mo>,</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><mo>(</mo><mrow><mn>1</mn><mo>+</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><mi>g</mi><mo>·</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mfrac><mi>j</mi><mn>1822</mn></mfrac></mrow></mrow><mo>)</mo></mrow><mo>,</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mrow><mo>(</mo><mrow><mn>1</mn><mo>+</mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo></mo><mfrac><mrow><mrow><mn>3644</mn><mo>·</mo><mi>g</mi></mrow><mo>-</mo><mrow><mi>j</mi><mo>·</mo><mi>g</mi></mrow></mrow><mn>1822</mn></mfrac></mrow><mo></mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo>)</mo></mrow></mrow><mo></mo><mstyle><mspace width="0.em" height="0.ex" /></mstyle><mo>]</mo></mrow></mrow></mrow></mtd><mtd><mrow><mo>(</mo><mrow><mrow><mi>eq</mi><mo>.</mo><mstyle><mspace width="0.8em" height="0.8ex" /></mstyle><mo></mo><mn>2</mn></mrow><mo></mo><mstyle><mtext>-</mtext></mstyle><mo></mo><mn>7</mn></mrow><mo>)</mo></mrow></mtd></mtr></mtable></math></maths><img file="US8002187B2_D0007.tif" />
Eq. 2-7 is shown graphically in <figref idref="DRAWINGS">FIG. 4G</figref>. Utilizing the frequency dependent gain function of eq. 2-7, the Fourier transform shown graphically in <figref idref="DRAWINGS">FIGS. 4E and 4F</figref> is adjusted. This is accomplished by multiplying each complex term of the Fourier transformed input signal by each term of the frequency dependent gain term G<sub>j</sub>. <br /><i>C</i><sub>j</sub><i>:=G</i><sub>j</sub><i>·B</i><sub>j</sub> (eq. 2-8)
The inverse of the adjusted Fourier transform is then determined as represented by the term D below: <br /><i>D:=icfft</i>(<i>C</i>) (eq. 2-9)
<figref idref="DRAWINGS">FIGS. 4H-4K</figref> illustrate representations of the corrected frame of image data. <figref idref="DRAWINGS">FIG. 4H</figref> illustrates the result of the correction over all pixel positions. <figref idref="DRAWINGS">FIGS. 4I and 4J</figref> illustrate the result of the correction over select ranges of pixel positions. <figref idref="DRAWINGS">FIG. 4I</figref> illustrates the original signal and the signal after high frequency correction. <figref idref="DRAWINGS">FIG. 4J</figref> shows the two waveforms superimposed on one another in order to show the improvement in the high frequency spatial components. The original waveform is shown as the solid line and the improved waveform is the dashed line. <figref idref="DRAWINGS">FIG. 4K</figref> shows the 1.8 LP/mm test target at the extreme left of the field of view. Observe in both <figref idref="DRAWINGS">FIG. 4J</figref> and <figref idref="DRAWINGS">FIG. 4K</figref> that there is a noticeable improvement in the signals associated with the high frequency components without any noticeable distortion degradation visible on the wide bar elements.
The results presented suggested that at least the 6 mil waveform tested can be digitally corrected to compensate for the optical MTF reduction caused by imaging lens <b>1070</b>. The gain used to implement this correction is approximately that required to compensate for the lens MTF role off at 4 LP/mm in paper space.
End of Example 2
While the flow diagram of <figref idref="DRAWINGS">FIG. 2D</figref> illustrates that control circuit <b>1010</b> decodes a captured frame of image data in accordance with module <b>1404</b> prior to executing interpolation module <b>1406</b> and high spatial frequency correction module <b>1408</b>, control circuit <b>1010</b> may execute decode module <b>1404</b>, automatically in response to receipt of a trigger signal subsequent to execution of interpolation module <b>1406</b> and subsequent to the execution of high spatial frequency error correction module <b>1408</b> so that enhances image data is processed during decoding. If control circuit <b>1010</b> executes the image enhancement interpolation module <b>1406</b> and the image enhancement high spatial frequency error correction module <b>1408</b> the success rate of the execution of decode module <b>1404</b> can be expected to be improved. It will be understood that while modules <b>1406</b>, <b>1408</b> enhance the quality of a captured image, control circuit <b>1010</b> may execute only one of modules <b>1406</b>, <b>1408</b> or neither of modules <b>1406</b>, <b>1408</b>. Processing modules <b>1406</b>, <b>1408</b> have been described relative to processing of linear image data. Control circuit <b>1010</b> may also input 2D image data while executing modules <b>1406</b>, <b>1408</b>. Where control circuit <b>1010</b> processes linear image data, input image data may be image data representing e.g. light incident on a row of pixels of a one dimensional image sensor, a row of pixels of a 2D image sensor, light incident on a selected row of pixels of a 2D image sensor, or light incident on a transverse line of pixels of a 2D image sensor, such as a diagonal or other transverse straight or curvelinear line of pixels. The input image data input for processing pursuant to the execution of module <b>1406</b>, <b>1408</b> normally comprises pixel data including a plurality of pixel values, each pixel value corresponding to a specific pixel position, wherein each pixel position represents light incident a specific location of target T.
At block <b>1510</b> control circuit <b>1010</b> executes print quality measurement module <b>1410</b> to carry out a series of measurements on the frame of image data that has been processed by interpolation module <b>1406</b> and high spatial frequency error correction module <b>1408</b> or an unprocessed frame of image data captured at block <b>1502</b> if modules <b>1406</b>, <b>1408</b> are deleted. Referring to the flow diagram of <figref idref="DRAWINGS">FIG. 7A</figref>, measurements on the input frame of image data that may be conducted during the execution of block <b>1510</b> may include a symbol contrast measurement (block <b>4102</b>), an edge contrast minimum measurement (block <b>4110</b>), and modulation measurement (block <b>4120</b>). Information respecting the above measurement is described in detail in the previously referenced ANSI (X3.182-1990) and ISO (ISO/IEC 15416 and ISO/IEC 15415) Standards (the “ISO/IEC bar code verification specification standards”). In addition to carrying out symbol contrast, edge contrast and, modulation measurements while executing processing module <b>1410</b>, control circuit <b>1010</b> may carry out additional measurements that are in accordance with the above referenced ISO/IEC bar code verification specification standards. With further reference to the execution of processing module <b>1410</b> in executing block <b>4102</b>, and with particular reference to the flow diagram of <figref idref="DRAWINGS">FIG. 7B</figref> control circuit <b>1010</b> at block <b>4103</b> finds the highest peak of an input scan reflectance waveform. If the input waveform is the corrected waveform <b>4150</b> of <figref idref="DRAWINGS">FIG. 4J</figref> the highest peak may be determined to be peak <b>4150</b>. At block <b>4105</b> control circuit <b>1010</b> determines the lowest peak of an input scan reflectance waveform, which may be low peak <b>4153</b> if the input waveform is the corrected waveform of <figref idref="DRAWINGS">FIG. 4J</figref>. At block <b>4107</b> control circuit <b>1010</b> calculates the difference between the peak value of the peak identified at block <b>4103</b> and the peak value of the peak identified at block <b>4105</b>. At block <b>4109</b> control circuit <b>1010</b> stores the calculated symbol contrast measurement calculated at block <b>4107</b> into a memory device such as device <b>1021</b>. Amplitudes of waveform <b>4150</b> of <figref idref="DRAWINGS">FIG. 4</figref> can be expressed in reflectance units (typically a percent of 100% reflectance) by application of a calibration step in which the amplitudes are calibrated with reference to reflectance calibration standards (e.g., one light and one dark).
Referring to the flow diagram of <figref idref="DRAWINGS">FIG. 7C</figref> a method for measuring edge contrast is described. At block <b>4111</b> control circuit <b>1010</b> identifies the worst pair of peaks. Each pair of peak e.g. peak <b>4155</b> and peak <b>4157</b> of a scan reflectance waveform represents an edge of a bar code symbol. The worst pair of peaks is the pair of peaks having the smallest reflectance difference. The identified worst pair of peaks may represent either a transition from a space to a bar or a transition from a bar to a space. Thus, at block <b>4111</b>, where the corrected waveform <b>4150</b> of <figref idref="DRAWINGS">FIG. 4J</figref> is the input waveform, control circuit <b>1010</b> may identify peaks <b>4159</b> and peak <b>4161</b> as the worst pair of peaks. At block <b>4113</b> control circuit <b>1010</b> identifies the reflectance difference between the high peak <b>4159</b> and the low peak <b>4161</b> of the worst pair of peaks identified at block <b>4111</b>. At block <b>4115</b> control circuit <b>1010</b> stores the minimum edge contrast value determined at block <b>4113</b> into a memory device <b>100</b>, e.g. RAM <b>1021</b>.
Referring to the flow of diagram of <figref idref="DRAWINGS">FIG. 7D</figref> a method for measuring symbol modulation is described. Modulation is a measurement of the capability of a narrow element of a symbol to be recognized as compared to wide symbol element. At block <b>4121</b>, control circuit <b>1010</b> retrieves the symbol contrast measurement from a memory device <b>100</b> that was stored into memory at block <b>4109</b>. At block <b>4123</b> control circuit <b>1010</b> retrieves from memory e.g., memory <b>1021</b> the minimum edge contrast measurement that was stored into memory at block <b>4115</b>. At block <b>4125</b> control circuit <b>1010</b> applies the retrieved values to the formula Modulation=EC<sub>MIN</sub>/SC, where EC<sub>MIN </sub>is the minimum edge contrast measurement determined at block <b>4113</b> and SC is the symbol contrast measurement determined at block <b>4107</b>. At block <b>4127</b> control circuit <b>1010</b> stores the resulting modulation measurement into a memory device <b>100</b> of system <b>1400</b>, e.g. memory <b>1021</b>.
At block <b>1512</b> control circuit <b>1010</b> executes waveform transmittal module <b>1412</b>. Specifically at block <b>1512</b> control circuit <b>1010</b> sends image data such as the processed frame of image data processed by modules <b>1406</b>, <b>1408</b> and/or the captured frame of image data captured by execution of module <b>1402</b> to separately housed and spaced apart host processor assembly <b>1210</b>. Also at block <b>1512</b> control circuit sends measurement data resulting from execution of processing module <b>1410</b> to host processor assembly <b>1210</b>. Host processor assembly <b>1210</b> then receives the transmitted frame of image data and the measurement data at block <b>1520</b> by execution of waveform receive module <b>1420</b>. As eluded to in connection with <figref idref="DRAWINGS">FIG. 2A</figref>, verification device <b>100</b> in executing module <b>1412</b> may transmit the waveform wirelessly over a wireless communication link <b>1500</b> as is indicated in <figref idref="DRAWINGS">FIG. 2C</figref>.
For determining whether executing waveform transmission module <b>1412</b> is appropriate, control circuit <b>1010</b> may operate in accordance with the flow diagram of <figref idref="DRAWINGS">FIG. 2E</figref>. At block <b>2202</b> control circuit <b>1010</b> receives a trigger signal as may be actuated remotely or by actuation of trigger <b>150</b> to commence a first decode and measurement session. At block <b>2204</b> control circuit <b>1010</b> polls data communication components of device such as transceiver <b>1082</b> to determine whether device <b>100</b> is presently able to send data to a desired destination, e.g. host processor assembly <b>1210</b>. At block <b>2206</b> control circuit <b>1010</b> determines whether data communications are currently impeded. Data communication may be impeded, e.g. if device is out of range with respect to a desired data receipt device, e.g. host processor assembly <b>1210</b>. If data communications are determined to be presently impeded, control circuit <b>1010</b> proceeds to block <b>2208</b>. At block <b>2208</b> control circuit <b>1010</b> executes processing modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, and <b>1410</b> but does not execute waveform transmittal module <b>1412</b> to transmit measurement and other data to host processor assembly <b>1210</b>. Instead, control circuit <b>1010</b> proceeds to block <b>2210</b> to archive measurement data determined at block <b>1510</b>, decoded out data message data determined at block <b>1504</b> (not mentioned in the <figref idref="DRAWINGS">FIG. 2E</figref> flow diagram) and image data memory, e.g. memory <b>1021</b>. In archiving data at block <b>2210</b>, control circuit <b>1010</b> stores data in such manner that it can be later uploaded to host processor assembly <b>1210</b>. Thus, at block <b>2210</b> control circuit <b>1010</b> may store measurement data, message data, and image data in memory locations other than temporary (sometimes referred to a buffer) memory locations that are continuously written over each time a trigger signal is received. When control circuit <b>1010</b> has completed block <b>2210</b> control circuit <b>1010</b> returns to block <b>2202</b> to wait for another decode and measurement session to be commenced by a receipt of a trigger signal.
Referring again to block <b>2206</b>, if at block <b>2206</b> control circuit <b>1010</b> determines that data communications between device <b>100</b> and host processor assembly <b>1210</b> are not impeded, control circuit <b>1010</b> proceeds to block <b>2212</b>. At block <b>2212</b>, control circuit <b>1010</b> executes processing blocks <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, and <b>1410</b>. In the execution of block <b>2212</b>, control circuit <b>1010</b> may store data such as image data and measurement data (e.g. symbol contrast, edge contrast, and modulation measurement data) and decoded out message data into buffer memory locations of memory device <b>1021</b> for purposes of facilitating an immediate transmission of the data to host processor assembly <b>1210</b>. However, since host communications are determined to be available, there is no need for control circuit <b>1010</b> at block <b>2212</b> to archive data into a memory of device <b>100</b> in such form that it is available for transmission after a future decode and measurement session. With further reference to the flow diagram of <figref idref="DRAWINGS">FIG. 2E</figref> control circuit <b>1010</b> at block <b>2214</b> transmits measurement data, decoded message data, and image data of the current decode and measurement session to host processor assembly <b>1210</b>. The image data referred to in blocks <b>2210</b>, <b>2214</b>, and <b>2216</b> may be the captured image data captured by execution of module <b>1402</b> and/or the processed image data processed in accordance with one or more of modules <b>1406</b>, <b>1408</b>. Then at block <b>2216</b> control circuit <b>1010</b> transmits archived measurement, decoded message data, and image data from previous decode and measurement sessions. Device <b>100</b> may be configured so that at block <b>2216</b> control circuit <b>1010</b> uploads to host processor <b>1210</b> all archived measurement, decoded message data, and image data that has been archived by device <b>100</b> during each preceding decode and measurement session since the time communications were determined to be impeded. Device <b>100</b> can also be configured so that at block <b>2216</b> device <b>100</b> uploads data from 1 to N previous decode and measurement sessions. Device <b>100</b> can be configured so that when archived data is transmitted at block <b>2216</b> archive data memory locations of a memory device such as memory <b>1021</b> for archiving data pursuant to block <b>2210</b> are emptied (e.g. written over with void data). Accordingly, if communications were determined to be unimpeded at block <b>2206</b> during an immediately preceding decode and measurement session, control circuit <b>1010</b> at block <b>2216</b> may after determining that void data is present avoid transmitting archived measurement data, decoded message data, and image data at block <b>2216</b> and proceed immediately to block <b>2202</b> to wait for a next decode and measurement session to be commenced, by the actuation of a trigger signal.
At block <b>1522</b>, host processor assembly <b>1210</b> executes auxiliary print quality measurement module <b>1422</b>. In executing auxiliary print quality measurement module <b>1422</b> host processor assembly <b>1210</b> carries out measurements on the frame of image data transmitted at block <b>1512</b> in addition to those measurements performed by control circuit <b>1010</b> of verification device <b>100</b> pursuant to execution of print quality measurement module <b>1410</b>. In one example of the invention, device <b>100</b> at block <b>1510</b> performs a subset of bar code print quality measurements described in the ISO/IEC Bar Code Verification Standards, and at block <b>1522</b> host processor assembly <b>1210</b> performs additional bar code print quality measurements described in the ISO/IEC Bar Code Verification Standards.
At block <b>1524</b>, host processor assembly <b>1210</b> executes user-interactive waveform analysis module <b>1424</b>. In executing user interactive waveform assessment module <b>1424</b> host processor assembly <b>1210</b> causes a graphical representation corresponding to the waveform or image frame transmitted at block <b>1512</b> to appear on display <b>1210</b><i>d </i>of host processor assembly <b>1210</b>. The graphical display of image data typically comprises a scan reflectance profile, which is a graphical representation readily determined from a gray scale image map. When gray scale pixel values corresponding to positionally adjacent pixel positions are plotted in graph, the graph (when representing a bar code) has a generally sinusoidal waveform, and is known as a scan reflectance profile. The graphical display by host processor assembly <b>1210</b> of a scan reflectance profile by host processor assembly <b>1210</b> provides significant advantages. In certain instances, characteristics of a printed bar code symbol can readily be determined by observation of a displayed scan reflectance profile that cannot easily be determined by observation of numerical measurement values. In addition to displaying a graphical representation of the transmitted image, host processor assembly <b>1210</b> by execution of module <b>1424</b> may, with use of a graphical user interface (GUI), make a variety of user selectable options available for selection by a user. Such option may include, for example, display of the result of the measurements made by verification device <b>100</b> during execution of module <b>1410</b>, and display of the result of the measurements made by host processor assembly <b>1210</b> during execution of module <b>1422</b>.
A physical form view of the system <b>1400</b> schematically depicted in <figref idref="DRAWINGS">FIG. 2C</figref> is shown in <figref idref="DRAWINGS">FIG. 5A</figref>. In the embodiment of <figref idref="DRAWINGS">FIG. 5A</figref> host processor assembly <b>1210</b> is provided by a desk top personal computer PC <b>1210</b>-<b>1</b> having a graphical user interface (GUI). The graphical user interface includes a pointer <b>1652</b> which is manipulated into a variety of positions of display <b>1210</b><i>d </i>by an operator. While the pointer controller of host processor assembly <b>1210</b> in the embodiment shown includes a mouse <b>1654</b> for moving pointer <b>1652</b>, another type of pointer controller (e.g. a trackball, a navigation matrix) may be used. A user moves pointer <b>1652</b> between various icons <b>1662</b>, <b>1664</b>, <b>1666</b> corresponding to various control options. Keyboard <b>1210</b><i>k </i>may also be utilized to move pointer <b>1652</b>.
In the example of <figref idref="DRAWINGS">FIG. 5A</figref>, host processor assembly <b>1210</b> operates in a mode in which host processor assembly <b>1210</b> displays on display <b>1210</b><i>d </i>a scan reflectance profile <b>1670</b>, enabling an operator to view a graphical waveform representation of input image data. The mode of operation depicted in <figref idref="DRAWINGS">FIG. 5A</figref> had previously been entered into by the selection of a scan reflectance profile control button <b>1666</b> labels “SRP.” With reference to <figref idref="DRAWINGS">FIG. 5G</figref>, another mode of operation of host processor assembly <b>1210</b> is depicted. As shown in FIG. <b>5</b>G, host processor assembly <b>1210</b> displays on display <b>1210</b><i>d </i>various bar code pint quality measurement data. The mode of operation depicted in <figref idref="DRAWINGS">FIG. 5G</figref> is entered into by selection of control button <b>1662</b>. In the mode of operation depicted in <figref idref="DRAWINGS">FIG. 5G</figref>, host processor assembly displays symbol contrast measurement data, as calculated at block <b>4107</b>, edge contrast data <b>1672</b> as calculated at block <b>4113</b> and modulation data <b>1673</b> as calculated at block <b>4125</b>. While the modes of operation in which host processor assembly <b>1210</b> displays on display <b>1210</b><i>d </i>a scan reflectance profile <b>1670</b> and the mode in which host processor assembly <b>1210</b> displays measurement data are depicted as occurring sequentially in response to user input, they can also occur simultaneously. For example in the embodiment of <figref idref="DRAWINGS">FIG. 5L</figref>, host processor assembly <b>1210</b> simultaneously displays a scan reflectance profile <b>1670</b> and edge contrast measurement data <b>1672</b>. Host processor assembly <b>1210</b> also may have a mode of operation in which decoded bar code data <b>1674</b>, as shown in <figref idref="DRAWINGS">FIGS. 5A</figref> and <figref idref="DRAWINGS">FIGS. 5G-5J</figref> decoded at block <b>1404</b> is displayed.
Reference is now made to <figref idref="DRAWINGS">FIG. 5</figref><i>e</i>, in which another embodiment of the invention is shown. The portable data terminal of <figref idref="DRAWINGS">FIG. 5E</figref> has the processing module integration scheme as depicted in <figref idref="DRAWINGS">FIG. 8A</figref>. Portable data terminal <b>101</b> has processing modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b> and <b>1424</b> integrated therein. As indicated previously, an imaging assembly <b>1040</b> as well as the other components described in connection with <figref idref="DRAWINGS">FIG. 2A</figref> may be incorporated within hand held portable data terminal <b>101</b> and may be encapsulated by housing <b>101</b><i>h</i>. Processing modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b> and <b>1424</b> in the embodiment of <figref idref="DRAWINGS">FIG. 5E</figref> are contained within hand held housing <b>101</b><i>h</i>. Incorporating all of processing modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b> and <b>1424</b> within a single hand held unit provides certain advantages. In the embodiment of <figref idref="DRAWINGS">FIG. 5E</figref>, waveform transmittal modules <b>1412</b> and receipt module <b>1420</b> are not needed. Accordingly, the embodiment of <figref idref="DRAWINGS">FIG. 5E</figref> does not require data communications circuitry for communicating data between spaced apart devices. Referring to further aspects of portable data terminal <b>101</b>, portable data terminal <b>101</b> includes a keyboard <b>101</b><i>k </i>a trigger button <b>150</b> and a pointer controller shown as being provided by a navigation matrix <b>1655</b>. In execution of user-interactive waveform analysis module <b>1424</b>, portable data terminal <b>101</b> may display on display <b>101</b><i>d </i>any one of the display formats depicted in <figref idref="DRAWINGS">FIGS. 5G-5L</figref>. Because the screen formats of <figref idref="DRAWINGS">FIGS. 5G-5L</figref> may be displayed by host processor <b>1210</b> or by portable data terminal <b>101</b> configured in accordance with the integration scheme of <figref idref="DRAWINGS">FIG. 8A</figref>, the devices depicted in <figref idref="DRAWINGS">FIGS. 5G-5L</figref> are labeled with the portable data terminal reference number <b>101</b> as well as the reference number indicating a host processor <b>1210</b>. In executing image capture module <b>1402</b> with use of portable data terminal <b>101</b>, it may be desirable, for purposes of enhancing an image quality of captured images, or a consistency of image quality between successively captured images to place portable data terminal <b>101</b> in a dark room at the time portable data terminal receives a trigger signal to commence image capture. Portable data terminal <b>101</b> may also be placed in a dark room fixture during image capture. A fixture such as the aforementioned dark room fixture may space portable data terminal a fixed distance from a substrate, s, to further enhance image quality and consistency.
Referring to <figref idref="DRAWINGS">FIG. 5F</figref> another embodiment of the invention is described. In the embodiment of <figref idref="DRAWINGS">FIG. 5F</figref> all of processing modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b> and <b>1424</b> are incorporated into hand held verification device <b>100</b> such that housing <b>1100</b> having a generally domed configuration for shielding ambient light encapsulates all of modules <b>1402</b>, <b>1404</b>, <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b> and <b>1424</b>. In the embodiment of <figref idref="DRAWINGS">FIG. 5F</figref>, verification device <b>100</b> includes a display <b>194</b>. Referring to assembly views of <figref idref="DRAWINGS">FIGS. 6A-6D</figref>, it is seen that, depending on the size of the display selected it may be necessary to enlarge housing <b>1100</b> so that display <b>194</b> may be installed in the location indicated without obstructing the path of image forming light rays. Configuring verification device <b>100</b> to include display <b>194</b> equips device <b>100</b> so that device <b>100</b> can execute user-interactive waveform analysis module <b>1424</b>. As explained previously, by execution of user-interactive waveform analysis module <b>1424</b> various information respecting bar codes is displayed on a display in response to user input commands. Such user-input commands may include commands to change the format of display and/or information displayed on display. In one mode, device <b>100</b> during the execution of module <b>1424</b> may display on display <b>194</b> a scan reflectance profile <b>1670</b> as depicted in <figref idref="DRAWINGS">FIG. 5H</figref>. In another mode of operation as depicted in <figref idref="DRAWINGS">FIG. 5G</figref>, device <b>100</b> during execution of module <b>1424</b> may display on display <b>194</b> various measurement data, such as symbol contrast data <b>1671</b>, edge contrast data <b>1672</b> and modulation data <b>1673</b>. Device <b>100</b> may also display on display <b>194</b> decoded output data <b>1674</b> as depicted in <figref idref="DRAWINGS">FIGS. 5G through 5J</figref>. In that the hand held housing <b>1100</b> depicted in <figref idref="DRAWINGS">FIG. 5F</figref> includes a touch screen <b>195</b> associated with display <b>194</b>, device <b>100</b> can be configured so that an operator switches between display formats by contact of a control button with a finger or a stylus. Device <b>100</b> can be configured so that the format of display can be switched from that depicted in <figref idref="DRAWINGS">FIG. 5G</figref> to that depicted by <figref idref="DRAWINGS">FIG. 5H</figref> by contacting control button <b>1066</b> with a finger or stylus. Because the screen formats of <figref idref="DRAWINGS">FIGS. 5G-5L</figref> may be displayed by host processor <b>1210</b> or by portable data terminal <b>101</b> configured in accordance with the integration module of <figref idref="DRAWINGS">FIG. 8A</figref>, or by verification device <b>100</b> configured in accordance with <figref idref="DRAWINGS">FIG. 8B</figref>, the devices depicted in <figref idref="DRAWINGS">FIGS. 5G-5L</figref> are labeled with the portable data terminal reference number <b>101</b> as well as the reference number indicating a host processor <b>1210</b>, and in addition the reference number indicating verification device <b>100</b>.
In accordance with the integration diagram of <figref idref="DRAWINGS">FIG. 8C</figref>, processing modules <b>1402</b> and <b>1412</b> are incorporated in device <b>100</b> within housing <b>1100</b> while processing modules <b>1406</b>, <b>1408</b>, <b>1410</b>, <b>1422</b>, <b>1424</b> and <b>1420</b> are incorporated in spaced apart host processor assembly <b>1210</b>.
Referring again to features related to the structure of verification device <b>100</b> partial assembly views of device <b>100</b> are shown in <figref idref="DRAWINGS">FIGS. 6A-6D</figref>. As best seen in <figref idref="DRAWINGS">FIGS. 6A and 6B</figref> base <b>1114</b> of housing <b>1100</b> supports frame <b>1152</b> which extends upwardly from base <b>1100</b>. At a bottom end of frame <b>1152</b> there is supported an electro optical assembly <b>1156</b> which carries imaging lens <b>1070</b> and image sensor <b>1060</b>. Base <b>1114</b> and frame <b>1152</b> support imaging assembly <b>1140</b> so that imaging assembly <b>1140</b> including image sensor <b>1060</b> is positioned to a fixed optical path distance from bar code, B, when device <b>100</b> is positioned to perform bar code print quality measurements. At an upper end of frame <b>1152</b> there is supported a reflector <b>1075</b>. Reflector <b>1075</b> is carried by reflector mount <b>1161</b> having pins <b>1162</b> extending therefrom. Pins <b>1162</b> in turn are received in pin receivers <b>1164</b> of support <b>1152</b> so that reflector <b>1075</b> is pivotally mounted on support <b>1152</b>. Reflector <b>1075</b> folds imaging axis <b>1061</b> (<figref idref="DRAWINGS">FIG. 2A</figref>) so that image forming light rays reflected from a target, T, corresponding to a field of view are directed toward electro optical assembly <b>1156</b> incorporates lens <b>1070</b> and image sensor chip <b>1066</b> (<figref idref="DRAWINGS">FIG. 2A</figref>). A rear surface of frame <b>1152</b> supports a printed circuit board <b>1172</b> which carries several of the electrical components discussed with reference to <figref idref="DRAWINGS">FIG. 2A</figref>. Referring to further aspects of device <b>100</b>, device <b>100</b> includes set screw <b>1174</b> which is positioned operationally relative to reflector <b>1150</b>. Tightening and loosening set screw <b>1174</b> allows precise adjustment of the positioning of reflector <b>1075</b> so that the field of view of image sensor <b>1060</b> can be precisely adjusted. Device <b>100</b> should have at least one source of artificial illumination for use in illuminating bar codes subject to decoding and measuring. In the embodiment of <figref idref="DRAWINGS">FIGS. 6A through 6D</figref>, illumination is provided by LED printed circuit board <b>1180</b> which as seen in <figref idref="DRAWINGS">FIG. 6B</figref> includes a plurality of LEDs <b>1082</b>. LED printed circuit board in the view of <figref idref="DRAWINGS">FIG. 6A</figref> is obscured from view by transparent dust cover <b>1186</b>. Additional views of components of device that are internal to housing <b>1100</b> are provided in the exploded assembly view of <figref idref="DRAWINGS">FIG. 6K</figref>.
Referring to the device <b>100</b> bottom view of <figref idref="DRAWINGS">FIG. 6C</figref>, alignment formations <b>1141</b>, <b>1142</b>, <b>1143</b> are as described earlier herein with respect to <figref idref="DRAWINGS">FIG. 1C</figref>. Alignment member <b>1150</b> including alignment formations <b>1141</b>, <b>1142</b>, <b>1143</b> in the embodiment of <figref idref="DRAWINGS">FIG. 6B</figref> is integrally formed with housing <b>1100</b>. While alignment formations <b>1141</b>, <b>1142</b>, and <b>1143</b> in the embodiment of <figref idref="DRAWINGS">FIG. 1C and 6B</figref> have a discernable thickness and are structural elements, the alignment member <b>1150</b> of device <b>100</b> for aligning device <b>100</b> with bar codes can, include printed matter alignment formations. In <figref idref="DRAWINGS">FIGS. 6E-6I</figref> several alternative alignment members are shown. The alignment members <b>1150</b> of <figref idref="DRAWINGS">FIGS. 6E-6J</figref> all comprise transparent (e.g., glass, plastic) inserts having printed matter alignment formations thereon. The printed matter alignment formations may be comprised of e.g., ink, paint, dye, or stickers. Device <b>100</b> can be configured so that alignment members <b>1150</b> are replaceably received thereon, e.g., with modest strength adhesive. The embodiment of device <b>100</b> depicted in <figref idref="DRAWINGS">FIG. 1B</figref> includes a recess <b>1190</b> on which a replaceable alignment member, e.g., any one of members <b>1150</b>-<b>2</b> through <b>1150</b>-<b>7</b> may be received. Replaceable, transparent alignment members <b>1150</b>-<b>2</b>, <b>1150</b>-<b>4</b>, <b>1150</b>-<b>6</b>, and <b>1150</b>-<b>7</b> include one or more center alignment formations <b>1192</b> which function in the manner of alignment formations <b>1142</b>, for use horizontally centering of device <b>100</b> on a bar code. Replaceable alignment members <b>1150</b>-<b>2</b>, <b>1150</b>-<b>4</b>, <b>1150</b>-<b>5</b>, <b>1150</b>-<b>6</b>, and <b>1150</b>-<b>7</b> have laterally disposed alignment formations <b>1191</b> and <b>1193</b> which aid an operator in locating device vertically with respect to a vertical center of a bar code. Alignment members <b>1150</b>-<b>2</b>, <b>1150</b>-<b>3</b>, <b>1150</b>-<b>5</b>, <b>1150</b>-<b>7</b> include alignment lines <b>1194</b>. Alignment lines <b>1194</b> aid an operator in orienting device <b>100</b> so that a field of view of device <b>100</b> extends perpendicularly with respect to bars of bar code being subject to decoding and print quality measuring. It is seen that replaceable alignment members <b>1150</b>-<b>5</b> and <b>11500</b>-<b>7</b> include parallel sets of alignment lines <b>1194</b>.
In accordance with its major aspects and broadly stated the present invention in one embodiment described is a bar code verification device having an ergonomic form factor characterized by a domed hand held trigger and a viewing window.
The verification device may be disposed in a network that includes a host processor system and other bar code reading devices which may include other bar code verification devices.
Processing circuitry for processing image signals corresponding to printed bar codes may be partially disposed within the hand held verification device and partially disposed within a host processor system spaced apart from and associated with the hand held verification device.
The hand held verification device may be in wireless communication with the host processor system to which it is associated.
The bar code verification system may include signal enhancement modules which interpolate constructed pixel values from actual pixel values and which correct for signal degradation resulting from high frequency spatial sampling.
These and other details and advantages are apparent from the detailed description of the preferred embodiment.
While the present invention has been particularly shown and described with reference to the preferred mode as illustrated in the drawings, it will be understood by one skilled in the art that various changes in detail may be effected therein without departing from the spirit and scope of the invention as defined by the claims.
Contents5
41 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41
Every citation, both waysCites: the store holds 107 of 108
| Document | Relation | Office | Cited during |
|---|---|---|---|
| US8720783B2 | Cited by | United States of America | Applicant |
| US8342408B2 | Cited by | United States of America | Applicant |
| US10210365B2 | Cited by | United States of America | Applicant |
| US9465966B2 | Cited by | United States of America | Search report |
| TWI613595B | Cited by | Taiwan Province of China | Examiner |
| US8820643B1 | Cited by | United States of America | Search report |
| US2014374484A1 | Cited by | United States of America | Pre-grant |
| EP1357505A1 | Cites | European Patent Office (EPO) | Applicant |
| US2002017567A1 | Cites | United States of America | Search report |
| US2002023958A1 | Cites | United States of America | Applicant |
| US2003102376A1 | Cites | United States of America | Applicant |
| US2003197063A1 | Cites | United States of America | Applicant |
| US2004016812A1 | Cites | United States of America | Applicant |
| US2004129784A1 | Cites | United States of America | Applicant |
| US2004155110A1 | Cites | United States of America | Applicant |
| US2004251307A1 | Cites | United States of America | Applicant |
| US2005001035A1 | Cites | United States of America | Applicant |
| US2005056699A1 | Cites | United States of America | Applicant |
| US2005082371A1 | Cites | United States of America | Applicant |
| US2005145698A1 | Cites | United States of America | Applicant |
| US2005199727A1 | Cites | United States of America | Applicant |
| US2005199728A1 | Cites | United States of America | Applicant |
| US2006169782A1 | Cites | United States of America | Applicant |
| US4488679A | Cites | United States of America | Applicant |
| US4699531A | Cites | United States of America | Applicant |
| US4705939A | Cites | United States of America | Applicant |
| US4860226A | Cites | United States of America | Applicant |
| US5051567A | Cites | United States of America | Applicant |
| US5134272A | Cites | United States of America | Applicant |
| US5194720A | Cites | United States of America | Applicant |
| US5218190A | Cites | United States of America | Applicant |
| US5231293A | Cites | United States of America | Applicant |
| US5285056A | Cites | United States of America | Applicant |
| US5313373A | Cites | United States of America | Applicant |
| US5334825A | Cites | United States of America | Applicant |
| US5371348A | Cites | United States of America | Search report |
| US5504315A | Cites | United States of America | Applicant |
| US5521370A | Cites | United States of America | Search report |
| US5564841A | Cites | United States of America | Applicant |
| US5567934A | Cites | United States of America | Applicant |
| US5569899A | Cites | United States of America | Applicant |
| US5569902A | Cites | United States of America | Applicant |
| US5585616A | Cites | United States of America | Applicant |
| US5600116A | Cites | United States of America | Applicant |
| US5633488A | Cites | United States of America | Applicant |
| US5729001A | Cites | United States of America | Applicant |
| US5739520A | Cites | United States of America | Applicant |
| US5773806A | Cites | United States of America | Applicant |
| US5773810A | Cites | United States of America | Applicant |
| US5786586A | Cites | United States of America | Applicant |
| US5837983A | Cites | United States of America | Applicant |
| US5850080A | Cites | United States of America | Applicant |
| US5914474A | Cites | United States of America | Applicant |
| US5932862A | Cites | United States of America | Applicant |
| US5939697A | Cites | United States of America | Applicant |
| US5942741A | Cites | United States of America | Applicant |
| US5949052A | Cites | United States of America | Applicant |
| US5959282A | Cites | United States of America | Applicant |
| US5979763A | Cites | United States of America | Applicant |
| US6000615A | Cites | United States of America | Applicant |
| US6000616A | Cites | United States of America | Applicant |
| US6006100A | Cites | United States of America | Search report |
| US6016135A | Cites | United States of America | Applicant |
| US6036091A | Cites | United States of America | Applicant |
| US6036094A | Cites | United States of America | Applicant |
| US6036095A | Cites | United States of America | Applicant |
| US6045047A | Cites | United States of America | Applicant |
| US6216951B1 | Cites | United States of America | Applicant |
| US6244764B1 | Cites | United States of America | Applicant |
| US6247645B1 | Cites | United States of America | Applicant |
| US6264105B1 | Cites | United States of America | Applicant |
| US6298175B1 | Cites | United States of America | Applicant |
| US6325288B1 | Cites | United States of America | Applicant |
| US6328213B1 | Cites | United States of America | Applicant |
| US6354503B1 | Cites | United States of America | Applicant |
| US6424830B1 | Cites | United States of America | Search report |
| US6497368B1 | Cites | United States of America | Search report |
| US6513715B2 | Cites | United States of America | Applicant |
| US6533175B1 | Cites | United States of America | Applicant |
| US6535299B1 | Cites | United States of America | Applicant |
| US6561612B2 | Cites | United States of America | Applicant |
| US6575367B1 | Cites | United States of America | Applicant |
| US6606395B1 | Cites | United States of America | Applicant |
| US6655595B1 | Cites | United States of America | Applicant |
| US6675203B1 | Cites | United States of America | Applicant |
| US6700997B1 | Cites | United States of America | Applicant |
| US6739513B1 | Cites | United States of America | Applicant |
| US6783071B2 | Cites | United States of America | Search report |
| US6788293B1 | Cites | United States of America | Applicant |
| US6802449B2 | Cites | United States of America | Applicant |
| US6814290B2 | Cites | United States of America | Applicant |
| US7059525B2 | Cites | United States of America | Applicant |
| US7086596B2 | Cites | United States of America | Applicant |
| US7219841B2 | Cites | United States of America | Applicant |
| US7600687B2 | Cites | United States of America | Applicant |
| WO9714110A1 | Cites | World Intellectual Property Organization (WIPO) | Applicant |
| JPH0896062A | Cites | Japan | Applicant |
| US20020017567A1 | Cites | United States of America | Search report |
| US20020023958A1 | Cites | United States of America | Third party observation |
| US20030102376A1 | Cites | United States of America | Third party observation |
12 members in 2 offices
Priority claims10
| Document | Office | Kind | Date |
|---|---|---|---|
| 98239304 | United States of America | A | |
| 98239304 | United States of America | A | |
| 80499007 | United States of America | A | |
| 80499007 | United States of America | A | |
| 57755709 | United States of America | A | |
| 10982393 | – | – | – |
| 11804990 | – | – | – |
| US20040982393 | – | – | – |
| US20070804990 | – | – | – |
| US20090577557 | – | – | – |
Members12
| Document | Office | Kind | |
|---|---|---|---|
| US2006097054A1 | United States of America | A1 | |
| WO2006052884A1 | World Intellectual Property Organization (WIPO) | A1 | |
| WO2006052884A1 | World Intellectual Property Organization (WIPO) | A1 | |
| US7219841B2 | United States of America | B2 | |
| US2007278310A1 | United States of America | A1 | |
| US7600687B2 | United States of America | B2 | |
| US2010084471A1 | United States of America | A1 | |
| US8002187B2This record | United States of America | B2 | |
| US2011297746A1 | United States of America | A1 | |
| US8342408B2 | United States of America | B2 | |
| US2013208268A1 | United States of America | A1 | |
| US8720783B2 | United States of America | B2 |
39 transactions on the USPTO file
Allowed after 1 non-final rejection.
- Non-final rejections
- 1
- Final rejections
- 0
- RCEs
- 0
- Appeals
- 0
Over time
Point at a mark for the transactionTransactions
| Event | Code | |
|---|---|---|
| Recordation of Patent Grant MailedPGM/ | PGM/ | |
| Patent Issue Date Used in PTA CalculationAllowedPTAC | PTAC | |
| Amendment Crossed in MailA.NQ | A.NQ | |
| Email NotificationEML_NTR | EML_NTR | |
| Issue Notification MailedAllowedWPIR | WPIR | |
| Email NotificationEML_NTR | EML_NTR | |
| Mail Response to 312 Amendment (PTO-271)MN271 | MN271 | |
| Dispatch to FDCD1935 | D1935 | |
| Response to Amendment under Rule 312N271 | N271 | |
| Application Is Considered Ready for IssuePILS | PILS | |
| Amendment after Notice of Allowance (Rule 312)AllowedA.NA | A.NA | |
| Issue Fee Payment VerifiedN084 | N084 | |
| Issue Fee Payment ReceivedIFEE | IFEE | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Notice of AllowanceAllowedMN/=. | MN/=. | |
| Notice of Allowance Data Verification CompletedAllowedN/=. | N/=. | |
| Date Forwarded to ExaminerFWDX | FWDX | |
| Information Disclosure Statement consideredIDSC | IDSC | |
| Reference capture on IDSRCAP | RCAP | |
| Information Disclosure Statement (IDS) FiledM844 | M844 | |
| Response after Non-Final ActionA... | A... | |
| Information Disclosure Statement (IDS) FiledWIDS | WIDS | |
| Electronic ReviewELC_RVW | ELC_RVW | |
| Email NotificationEML_NTF | EML_NTF | |
| Mail Non-Final RejectionNon-final rejectionMCTNF | MCTNF | |
| Non-Final RejectionNon-final rejectionCTNF | CTNF | |
| Case Docketed to Examiner in GAUDOCK | DOCK | |
| Email NotificationEML_NTR | EML_NTR | |
| PG-Pub Issue NotificationPG-ISSUE | PG-ISSUE | |
| Correspondence Address ChangeC.ADB | C.ADB | |
| Application Dispatched from OIPEOIPE | OIPE | |
| Filing Receipt - UpdatedFLRCPT.U | FLRCPT.U | |
| Payment of additional filing fee/PreexamFLFEE | FLFEE | |
| Notice Mailed--Application Incomplete--Filing Date AssignedINCD | INCD | |
| Filing ReceiptFLRCPT.O | FLRCPT.O | |
| Cleared by OIPE CSRL194 | L194 | |
| IFW Scan & PACR Auto Security ReviewSCAN | SCAN | |
| Initial Exam Team nnIEXX | IEXX |
4 legal events, as the office reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | |
|---|---|---|
| Maintenance fee paymentMAFP | MAFP | |
| Maintenance fee paymentMAFP | MAFP | |
| Fee paymentFPAY | FPAY | |
| Information on status: patent grantGrantedPATENTED CASESTCF | STCF |
Numbers
- Publication
- 08002187
- Publication, DOCDB
- 8002187
- Publication, EPODOC
- US8002187
- Application
- 12577557
- Application, DOCDB
- 57755709
- Application, EPODOC
- US20090577557
Titles
- English
- Device and system for processing image data representing bar codes
Patent term adjustment
- Applicant delay
- −35 days
- Net adjustment
- 0 days
Classification
- CPC, 3
- G06K7/089
- G01N21/8806
- G06K7/10851
- IPC, 1
- G06K7 10
- USPC, 1
- 235462250