Barcode reading device that controls illumination without signaling from an image sensor

A barcode reading device includes an image sensor comprising a photosensor array and control circuitry configured to control an exposure period for the photosensor array. The barcode reading device also includes one or more illumination sources configured to generate illumination for illuminating a target area. The barcode reading device also includes circuitry that is configured to read out image data from the photosensor array in response to a trigger signal. The circuitry is also configured to, independent of controlling the exposure period for the photosensor array, illuminate a target area by activating the one or more illumination sources in response to the trigger signal.

BACKGROUND

A barcode is an optical machine-readable representation of information. Devices for identifying or extracting information from barcodes are often referred to as barcode readers or barcode reading devices. Image-based barcode readers operate by capturing and decoding images of barcodes. In typical operation, one or more light sources are activated to illuminate a target area that includes a barcode. Light is reflected from the barcode toward the barcode reader. One or more lenses within the barcode reader focus an image of the barcode onto an image sensor, which is a two-dimensional array of photosensors (i.e., detectors that are sensitive to electromagnetic radiation). The photosensors are read electronically to provide a two-dimensional array of image data corresponding to the barcode. A decoder then processes the image data and extracts the information contained in the barcode.

An image sensor may be configured to capture images using a global shutter mode of operation, in which all of the photosensors within the image sensor are exposed at the same time for the duration of an exposure period. During the exposure period, charge accumulates on each photosensor based on the incident illumination. At the end of the exposure period, the charge is read out row by row. An image sensor that captures images using a global shutter mode of operation may be referred to herein as a global shutter image sensor.

Global shutter image sensors typically provide a flash signal that indicates the start and end of an exposure period. In a conventional barcode reader, the flash signal is provided to the circuitry that controls illumination. More specifically, the flash signal notifies the illumination control circuitry when the exposure period starts (so that the illumination control circuitry can turn the illumination on) and when the exposure period ends (so that the illumination control circuitry can turn the illumination off and not affect the next frame of image data).

There are several problems with barcode readers that use the flash signal from a global shutter image sensor to control illumination. For example, having the illumination control circuitry be dependent on a signal from the image sensor places constraints on the architecture of the barcode reader, thereby increasing its complexity. Furthermore, having the illumination control circuitry be dependent on a signal from the image sensor may increase the power consumption of the barcode reader, thereby decreasing its battery life. Also, if the image sensor malfunctions and does not provide the flash signal at the proper time, this negatively affects the timing of the illumination as well. Accordingly, what is needed is a control system for a barcode reader with a global shutter image sensor that does not use any signals from the global shutter image sensor to control illumination.

SUMMARY

In accordance with an aspect of the present disclosure, a barcode reading device is disclosed. The barcode reading device includes an image sensor that includes a photosensor array and control circuitry configured to control an exposure period for the photosensor array. The barcode reading device also includes one or more illumination sources configured to generate illumination for illuminating a target area. The barcode reading device also includes circuitry that is configured to read out image data from the photosensor array in response to a trigger signal. The circuitry is also configured to, independent of controlling the exposure period for the photosensor array, illuminate a target area by activating the one or more illumination sources in response to the trigger signal.

The trigger signal may include a plurality of trigger pulse signals. The barcode reading device may further include memory. The circuitry may also be configured to, in response to each trigger pulse signal, read out a frame of image data from the photosensor array and store the frame of image data to the memory of the barcode reading device.

The plurality of trigger pulse signals may include a first plurality of trigger pulse signals interspersed with a second plurality of trigger pulse signals. The circuitry may also be additionally configured to generate an illumination signal that causes the one or more illumination sources to be activated following the first plurality of trigger pulse signals and to be deactivated following the second plurality of trigger pulse signals.

The illumination signal may alternate between an on value corresponding to activating the one or more illumination sources and an off value corresponding to deactivating the one or more illumination sources. In some embodiments, the on value may correspond to odd trigger pulse signals from the plurality of trigger pulse signals. Alternatively, in other embodiments, the on value may correspond to even trigger pulse signals from the plurality of trigger pulse signals.

The barcode reading device may further include a decoder that is configured to generate the trigger signal in response to detecting a trigger condition. A duration of the exposure period may be set by the decoder.

In accordance with another aspect of the present disclosure, a barcode reading device is disclosed. The barcode reading device includes an image sensor that includes a photosensor array and control circuitry configured to control an exposure period for the photosensor array. The barcode reading device also includes one or more illumination sources configured to generate illumination for illuminating a target area. The barcode reading device also includes a decoder that is configured to generate a trigger signal in response to detecting a trigger condition. The barcode reading device also includes readout circuitry that is configured to read out image data from the photosensor array in response to the trigger signal. The barcode reading device also includes illumination circuitry configured to activate, independent of any signaling from the image sensor, the one or more illumination sources for illuminating the target area in response to the trigger signal.

The trigger signal may include a plurality of trigger pulse signals generated at a pulse frequency. The barcode reading device may further include memory. The readout circuitry may also be configured to, in response to each trigger pulse signal, read out a frame of image data from the photosensor array and store the frame of image data to the memory of the barcode reading device.

The plurality of trigger pulse signals may include a first plurality of trigger pulse signals interspersed with a second plurality of trigger pulse signals. The illumination circuitry may additionally be configured to generate an illumination signal that causes the one or more illumination sources to be activated following the first plurality of trigger pulse signals and to be deactivated following the second plurality of trigger pulse signals.

The illumination signal may alternate between an on value corresponding to activating the one or more illumination sources and an off value corresponding to deactivating the one or more illumination sources. In some embodiments, the on value may correspond to odd trigger pulse signals from the plurality of trigger pulse signals. Alternatively, in other embodiments, the on value may correspond to even trigger pulse signals from the plurality of trigger pulse signals.

In accordance with another aspect of the present disclosure, a barcode reading device is disclosed. The barcode reading device includes an image sensor that includes a photosensor array and control circuitry configured to control an exposure period for the photosensor array. The barcode reading device also includes one or more illumination sources configured to generate illumination for illuminating a target area. The barcode reading device also includes a decoder that is configured to generate a trigger signal in response to detecting a trigger condition. The trigger signal may include a plurality of trigger pulse signals. The barcode reading device also includes memory that includes an image buffer. The barcode reading device also includes readout circuitry that is configured to, in response to each trigger pulse signal, read out a frame of image data from the photosensor array and store the frame of image data to the image buffer. The barcode reading device also includes illumination circuitry configured to activate, independent of any signaling from the image sensor, the one or more illumination sources for illuminating the target area in accordance with an illumination signal.

The plurality of trigger pulse signals may cause the illumination signal to alternate between an on value corresponding to activating the one or more illumination sources and an off value corresponding to deactivating the one or more illumination sources. In some embodiments, the on value may correspond to even trigger pulse signals from the plurality of trigger pulse signals. Alternatively, in other embodiments, the on value may correspond to odd trigger pulse signals from the plurality of trigger pulse signals.

DETAILED DESCRIPTION

FIG. 1illustrates an example of a barcode reader100in accordance with the present disclosure. As shown inFIG. 1, the barcode reader100may include an image capture control and decode system107, an image sensor system package111, an illumination system including illumination logic154and one or more illumination sources103, and various input/output (I/O) peripheral systems113.

The image sensor system package111and the image capture control and decode system107may be included in two separate packages, each of which may include one or more silicon dies that may include: i) a processor; ii) hardware circuits including digital signal processing and/or gate logic; and iii) memory. The processor may be a general-purpose single or multi-die microprocessor (e.g., an ARM), a special purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor may be referred to as a central processing unit (CPU). The memory may be any combination of non-volatile memory or storage and volatile memory or storage. The non-volatile memory may include a combination of read-only memory (ROM) and/or flash memory.

The illumination system may include one or more illumination sources103and illumination logic154. The illumination sources103may be, for example, light-emitting diodes (LEDs). The illumination logic154may be configured to activate one or more of the illumination sources103to emit illumination into a target area.

The I/O peripheral systems113may include a user interface comprising input control138and/or a display140. The input control138may include a trigger switch142, a keypad144, and/or a touch panel145, such as a touch screen over the display140. In addition, the barcode reader100may have one or more output devices that convey information to a user. Such output devices may include the touch panel145, which may be a touch screen, a speaker143, a vibrator147, and/or one or more components that illuminate in a manner visible to a user, such as one or more light-emitting diodes (LEDs)149.

The I/O peripheral systems113may further include one or more communication interfaces108. The communication interfaces108may include a wireless local-area network (LAN) interface108aand a point-to-point interface108bwhich may be a wireless point-to-point interface and/or a hardwired point-to-point interface.

The wireless LAN interface108amay permit the barcode reader100to be an addressable endpoint in a wireless local area network and communicate with a host device through the LAN using, for example, Transmission Control Protocol/Internet Protocol (TCP/IP) or the like.

The wireless point-to-point interface(s)108bmay be, for example, a Bluetooth® interface to enable the barcode reader100to establish a wireless point-to-point communication link with, and communicate over the wireless communication link with, a host device (i.e., a host computer).

The hardwired point-to-point interface(s)108bmay comprise a Universal Asynchronous Receiver/Transmitter (UART) or a Universal Serial Bus (USB). In one or more embodiments, the barcode reader may utilize the point-to-point interface(s)108bto establish a point-to-point connection with a host device using a multi-conductor data interface.

The image capture control and decode system107may include: i) a processor148; ii) a memory152; and iii) hardware circuits150for coupling to, and driving operation of, each of the illumination sources103, the I/O peripheral systems113, and the image sensor system package111.

The processor148, as described, may be a general-purpose single or multi-die microprocessor (e.g., an ARM), a special purpose microprocessor (e.g., a digital signal processor (DSP)), a microcontroller, a programmable gate array, etc. The processor148may be referred to as a central processing unit (CPU). Although just a single processor148is shown inFIG. 1, in an alternative configuration, a combination of processors (e.g., an ARM and DSP) may be used.

The hardware circuits150may provide an interface between the image capture control and decode system107and each of the illumination sources103, the I/O peripheral systems113, and the image sensor system package111. The hardware circuits150may further include illumination logic154and pre-processing circuits151a-n, each of which will be described in more detail herein.

The memory152, as described, may be any combination of non-volatile memory or storage and volatile memory or storage. The memory152may include a buffer memory170(e.g., an image buffer), a decoder180, and an image capture module162. These components may be stored in any combination of volatile and non-volatile memory. Some modules may be stored in both volatile and non-volatile memory, for example, with permanent storage of the module in non-volatile memory and a temporary copy stored in volatile memory for execution by the processor148. In addition to, or as an alternative to, these modules, the memory152may store any number of other modules including but not limited to those set forth in the patent applications incorporated by reference in this disclosure. Additional detail with regard to one or more components of the image capture control and decode system107is included below.

As mentioned in some detail above, and as shown inFIG. 1, the barcode reader100additionally includes the image sensor system package111, which may include: i) a two-dimensional photosensor array102onto which illumination from the field of view of the barcode reader100is focused by an optic system104(e.g., one or more lenses for focusing an image of a barcode); ii) hardware gate logic141implementing one or more pre-processing circuits165a-n; iii) volatile memory or storage such as random access memory implementing an image buffer163; iv) hardware gate logic implementing bus logic155for transferring each image frame captured by the photosensor array102to the hardware gate logic141(or the image buffer163); and v) control circuitry139. The control circuitry139may include a combination of gate logic, volatile memory or storage, and a processor executing code stored in the memory implementing control of the photosensor array102(image read-out), the bus logic155, the hardware gate logic141, and the image buffer163. The control circuitry139can transfer image data records to the image capture control and decode system107. The control circuitry139may include exposure circuitry171that defines an exposure period for the photosensor array102. The control circuitry139may also include readout circuitry172that is configured to read out image data from the photosensor array102.

The photosensor array102may comprise a two-dimensional array of pixels with each pixel comprising an active photosensitive region capable of measuring or quantifying the intensity of illumination incident on the pixel fabricated, for example, using known complementary metal oxide semiconductor (CMOS) sensor technology. The photosensor array102may be used to capture images in accordance with a global shutter mode of operation. Each pixel may be a photodiode that accumulates charge over the duration of an exposure period. Prior to commencement of the exposure period the photodiode may be coupled to ground to dissipate an accumulated charge and the exposure period for the pixel may commence when the photodiode is de-coupled from ground so that a charge accumulates in proportion to the intensity of illumination incident on the photodiode. The charge on the photodiode continues to accumulate so long as illumination is incident on the photodiode. The exposure period ends when the accumulated charge is measured by an analog to digital (A/D) converter.

In one embodiment, the photodiode may couple to the input of an A/D converter when the control circuitry139(e.g., exposure control circuitry) generates a read signal and, when the photodiode is coupled to the A/D converter, the A/D converter generates a digital value representative of the accumulated charge at the time the photodiode is coupled to the A/D converter. This digital value is input to a register of the bus logic155for transfer to the pre-processing circuits165a-n(or the image buffer163).

In another embodiment, the photodiode may be coupled to the input of an A/D converter prior to the end of the exposure period. In this embodiment, the A/D converter may be continually making a digital value representative of the accumulating charge available at its output port with that digital value continually increasing as charge accumulates on the photodiode. In other words, the digital value may be continually updated to represent the increasing voltage as charge accumulates on the photodiode. In this embodiment, when the control circuitry139generates a read signal, the then current digital value (at the time of the read signal) is read or input to a register of the bus logic155for transfer to the pre-processing circuits165a-n(or the image buffer163).

Additional detail will now be provided with regard to one or more specific components as well as interactions between components of the systems of the barcode reader100indicated above. As mentioned above, the hardware circuits150include illumination logic154for controlling illumination provided by the illumination sources103. The illumination logic154may control the illumination sources103to illuminate a field of view of the barcode reader100. Advantageously, control of the illumination sources103may occur without the use of any signals from the image sensor system package111. For example, the illumination logic154may control the illumination sources103without receiving or otherwise depending on any signals from the photosensor array102or any other components of the image sensor system package111.

In one or more embodiments, the decoder180and/or the image capture module162may provide illumination parameters to the illumination logic154. The illumination parameters control the illumination settings to be used for capture of an image frame. More specifically, the illumination parameters may define such illumination settings as: i) identifying one or more illuminators to activate over a duration of time; and ii) the intensity of illumination to be generated by one or more of the illuminators to be activated. In certain exemplary embodiments the intensity may be defined as: i) a percentage from zero percent (0%) to one hundred percent (100%) representing the percent of a maximum illumination intensity that can be generated by the illumination sources103; ii) pulse-width-modulation (PWM) parameters representing a percentage of a pulse cycle for which maximum operating power is applied to the illumination sources103in a pulsing pattern; and iii) a percentage greater than one hundred percent (100%) representing a power level to be applied if the illumination sources103are to be over-driven.

In certain embodiments, the illumination parameters may be provided to the illumination logic154for one or more image frames within a burst of image frames to be captured by the photosensor array102by the image capture module162writing the illumination parameters for each frame to a distinct register within the illumination logic154.

In the barcode reader100depicted inFIG. 1, the hardware circuits150include a number of pre-processing circuits151a-n, which may be implemented within the gate logic of the hardware circuits150. The pre-processing circuits151a-nmay perform operations such as convolution, binning, sub-sampling and other image processing functions on image data provided by the image sensor system package111via the bus199. The pre-processing circuits151a-nmay write one or more image data records153a-nto the buffer memory170.

Each pre-processing circuit151a-nmay receive as input either: i) an image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) directly from the image sensor system package111by way of the bus199; or ii) an image data record153a-nfrom the buffer memory170which is the result of a different pre-processing circuit151a-npreviously operating on an image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) received from the image sensor system package111by way of the bus199.

It should be noted that one image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) may be input to multiple pre-processing circuits151a-n, resulting in multiple image data records153a-nbeing written to the buffer memory170for the same image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n).

Further, for a burst of multiple image frames the image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) received and processed by the pre-processing circuits151a-nmay represent different image frames within the burst captured by the photosensor array102. The image data records167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) received and processed by the pre-processing circuits151a-nmay be the result of applying the same pre-processing functions by pre-processing circuits165a-nto each of multiple image frames within the burst.

Each image data record167a-n(or a window of, a binning of, or a sub-sampling of, an image data record167a-n) received may be input to the same one or more pre-processing circuits151a-nor may be input to different subsets of pre-processing circuits151a-n, each subset including one or more pre-processing circuits151a-n.

It should also be noted that one of the pre-processing circuits151a-nmay simply write the image data record167a-n(which may be an image frame captured by the photosensor array102(full, binned, sub-sampled, and/or cropped) without previous processing by pre-processing circuits165a-n) to the buffer memory170without performing substantive image processing.

Operations performed by, and derivatives of the frame of image data produced by, the pre-processing circuits151a-nmay include: i) transfer of the image data record167a-n(or a window, binning, or sub-sampling of the image data record167a-n) to the buffer memory170as an image data record153a-nwithout substantive processing; ii) binning of an image data record167a-n(or a window or sub-sampling of the image data record167a-n) and writing the result to the buffer memory170as an image data record153a-n; iii) sub-sampling of an image data record167a-n(or a window, binning, or sub-sampling of the image data record167a-n) and writing the result to the buffer memory170as an image data record153a-n; iv) generating a rotation of an image data record167a-n(or a window of, a binning of, or sub-sampling of the image data record167a-n) and writing the result to the buffer memory170as an image data record153a-n; v) generating a convolution of an image data record167a-n(or a window or sub-sampling of the image data record167a-n) and writing the result to the buffer memory170as an image data record153a-n; and vi) generating a double convolution, which is a second sequential convolution performed on the result of a previously performed convolution, of an image data record167a-n(or a window or sub-sampling of the image data record167a-n) and writing the result to the buffer memory170as an image data record153a-n. Each sequential convolution may utilize a different distinct kernel.

The pre-processing circuits151a-nmay be implemented in hardware gate logic150to provide for image processing very quickly such that processing by a pre-processing circuit151a-n(including generating one or more image data records153a-nand storing them in the buffer memory170) may be performed during the limited amount of time that the image data records167a-nare being transferred to the image capture control and decode system107via the bus199without requiring storage of the transferred image data records167a-nin memory prior to pre-processing by the pre-processing circuits151a-n.

Moreover, in one or more implementations, the pre-processing circuitry151a-nmay facilitate selective storage of images captured in the buffer memory170. For example, as will be described in further detail below, the pre-processing circuitry151a-nmay store image data for every other frame while deleting or decimating image data for other captured frames. For instance, the pre-processing circuitry151a-nmay store only the odd frames while decimating or discarding even frames. Alternatively, the pre-processing circuitry151a-ncan store even frames while decimating or discarding odd frames. In one or more embodiments, the pre-processing circuitry151a-nmay be configured to automatically discard or decimate data from a first captured image frame followed by selectively storing even or odd captured frames.

The image capture control and decode system107may include a decoder180. The decoder180may be configured to (i) determine which of the one or more image data records167a-n(or windows within one or more image data records167a-n) may be transferred from the image buffer163to the image capture control and decode system107; ii) determine a permutation of one or more pre-processing functions (performed by pre-processing circuits151a-n) to apply to each of the image data records167a-n(or windows within one or more image data records167a-n) to generate, and write to the buffer memory170, image data records153a-n, each of which may also be a derivative of the one or more image frames (whether full, binned, or sub-sampled) captured by the photosensor array102; iii) determine a permutation of one or more pre-processing functions to apply to each of the image data records153a-n(or windows within one or more image data records153a-n) to generate, and write to the buffer memory170, additional (or replacement) image data records153a-n, each of which may also be a derivative of the one or more image frames (full, binned, sub-sampled, and/or cropped) captured by the photosensor array102; and iv) decode the barcode present within the field of view of the barcode reader100and imaged within the one or more image frames (whether full, binned, or sub-sampled) captured by the photosensor array102and represented by at least a portion of one of the image data records153a-nderived from such image frame.

The decoder180may also be configured to generate a trigger signal, which may include a sequence of trigger pulse signals (as will be explained in greater detail below). The trigger signal may be provided to the illumination logic154to control timing of illumination of a target area by the illumination sources103. The decoder180may additionally provide information indicating an intensity and/or a duration for the illumination.

The trigger signal may also be independently provided to the control circuitry139in the image sensor system package111(e.g., by way of the bus199) to control when image data is read out from the photosensor array102. The decoder180may also provide the control circuitry139with information that defines the end of the exposure period of images that are captured by the photosensor array102. The end of an exposure period may be defined in relation to detection of a trigger pulse signal. The decoder180may also be configured to provide information indicating a gain for one or more A/D converters on the image sensor system package111, thereby indicating to the control circuitry139what gain to set.

As further shown inFIG. 1, the image capture control and decode system107may include an image capture module162. The image capture module162may control image capture by: i) defining (or receiving from the decoder180) image capture parameter values for a burst of one or more image frames to be sequentially captured by the photosensor array102of the image sensor package111and the image processing to be performed on each image frame; ii) initiating the capture of the sequence of one or more image frames by the photosensor array102and the corresponding performance of the image processing thereon by the pre-processing circuits165a-nto generate image data records167a-n, each of which may be a derivative of an image frame within the sequence of one or more image frames; and iii) controlling the illumination sources103to illuminate the field of view during capture of each frame of the sequence of one or more image frames. The image capture module162may further define, or receive from the decoder180an indication of, which of the image data records (or portions of the image data records) are to be provided to the decoder180for decoding of a barcode.

In one or more embodiments, the image capture module162defines a quantity or sequence of image frames to capture and/or ultimately to provide to the buffer memory170. For example, as mentioned above, the image capture module162can selectively identify frames to store to the buffer memory170while discarding or decimating other captured frames.

While many features and functionality of components of the barcode reader100are described herein, the barcode reader100may include additional features and functionality, such as those described in U.S. patent application Ser. No. 14/717,112, titled “BARCODE READER” and filed on May 20, 2015, which is hereby incorporated by reference in its entirety.

FIG. 2is a timing diagram200that illustrates an example of the timing for illumination of a target area by the illumination sources103and exposure of a photosensor array102in accordance with one or more embodiments. As shown, one or more of the components of the barcode reader (e.g., the decoder180) may be configured to generate a trigger signal202. The trigger signal202may be a pulsed signal that pulses at fixed intervals. Thus, the trigger signal202may include a sequence of trigger pulse signals202a-f.

InFIG. 2, a first trigger pulse signal202aoccurs at time t1, a second trigger pulse signal202boccurs at time t2, and so on. The interval between the trigger pulse signals202a-fmay be greater than the amount of time that is required to read out a frame of image data from the photosensor array102. The interval between the trigger pulse signals202a-fmay also depend on other factors including but not limited to image processing capabilities and decode times of the decoder180.

The trigger signal202may be generated in response to detecting a trigger condition which indicates that barcode reading is to be commenced. The trigger condition may be detected via user input (e.g., a user selecting a barcode reading option). Other events resulting in a trigger condition may include detecting an object (e.g., if the barcode reader100is operating in an object detection mode) or detecting motion (e.g., if the barcode reader100is operating in a motion detection mode).

The trigger signal202may be provided to the illumination logic154. In some embodiments, the illumination logic154may generate an illumination signal204having an “on” value (which causes the illumination sources103to be activated) and an “off” value (which causes the illumination sources103to be deactivated). The illumination logic154may be configured to change the illumination signal204to the “on” value after every other trigger pulse signal. Thus, in the example shown inFIG. 2, the illumination logic154changes the value of the illumination signal204from an “off” value to an “on” value (thereby activating the illumination sources103) after the first trigger pulse signal202a, the third trigger pulse signal202c, the fifth trigger pulse signal202e, and so forth.

As noted above, the duration of the illumination (e.g., how long the illumination signal204remains “on”) may be set by the decoder180(or another component of the barcode reader100, such as the image capture module162). In the depicted example, the illumination signal204remains “on” for an entire pulse width (i.e., for an entire period of time between two trigger pulse signals). Alternatively, however, the illumination signal204may remain “on” for a period of time that is less than the full pulse width. The illumination signal204should remain “on” until after image readout begins. For example, inFIG. 2, the illumination signal204changes to an “on” value at time t1. It should remain “on” until at least time t1+Δ, which is when readout begins (as will be discussed in greater detail below). However, instead of remaining “on” until time t2, the illumination signal204may instead change back to the “off” value at time t1+Δ (or shortly thereafter, to account for any delay in the relevant circuitry).

Instead of generating an illumination signal204, the decoder180(or another component of the barcode reader100, such as the image capture module162) may simply provide instructions to the illumination logic154about what illumination intensity to use. For example, at the time of every other trigger pulse signal (e.g., trigger pulse signals202b,202d,202f, etc.), the decoder180may instruct the illumination logic154to use an intensity value of “0” or OFF. For the remaining trigger pulse signals (e.g., trigger pulse signals202a,202c,202e, etc.) the decoder180may determine what the illumination intensity should be (as well as the exposure period and gain) by analyzing a previously captured image.

In addition to being provided to the illumination logic154, the trigger signal202may also be independently provided to the control circuitry139. The control circuitry139(in particular, readout circuitry172within the control circuitry139) may be configured to read out image data from the photosensor array102in response to the trigger signal202.

In a photosensor array102, each pixel may include a photodiode and a masked charge storage diode. Illumination incident on a photodiode causes charge accumulation on the photodiode. The end of an exposure period occurs when the charge on all photodiodes (or substantially all photodiodes) of the photosensor array102is simultaneously (or substantially simultaneously) transferred to the masked charge storage diodes. That charge transfer ends one exposure period and starts the following exposure period.

As noted above, the decoder180may provide the control circuitry139with information that defines the end of an exposure period, which is when image readout begins (i.e., the process of charge transfer as discussed above). The end of the exposure period may be defined in relation to a trigger pulse signal. In other words, the decoder180may instruct the control circuitry139to begin reading out image data from the photosensor array102some defined period of time after a trigger pulse signal is detected.

To enable the image capture control and decode system107(and other hardware and software systems of the barcode reader100) to accept a frame of image data, the control circuitry139may provide a readout valid signal208and a line readout signal210. At the time the control circuitry139provides the readout valid signal208, it also starts providing a digital representation of an image captured by the photosensor array102to memory of the barcode reader100(e.g., the image buffer163, for transfer to the buffer memory170). For example, when the readout valid signal208has an on value, circuitry within the image sensor system package111may begin use of A/D converters to generate digital values representing the accumulated charge on the photosensors, thereby reading out the image data from the photosensor array102to memory of the barcode reader100. More specifically, the digital values may be output row by row, with the line readout signal410being used to separate the last value of a row from the first value of the next row.

InFIG. 2, the exposure timing206shows exposure periods207a-fcorresponding to the photosensor array102. In general, an exposure period ends when a charge transfer (as described above) occurs. Stated another way, an exposure period ends when image data is read out from the photosensor array102. Also, the end of one exposure period is the beginning of another exposure period.

In the example shown inFIG. 2, the beginning of the first exposure period207aoccurs when image data is read out from the photosensor array102at some previous point in time (which is not shown inFIG. 2). The first exposure period207aends and the second exposure period207bbegins when readout begins at time t1+Δ, which is after the first trigger pulse signal202aat time t1. (The decoder180may provide the value of Δ to the control circuitry139.) The second exposure period207bends and the third exposure period207cbegins when readout begins at time t2+Δ, which is after the second trigger pulse signal202bat time t2. The other exposure periods207c-fhave similar timing.

As noted above, in embodiments disclosed herein, the illumination logic154controls the illumination sources103without using any signals from the control circuitry139(or any other components of the image sensor system package111). Thus, the illumination logic154does not know exactly when readout begins. As a result, the illumination sources103may remain on after readout begins. For instance, in the example shown inFIG. 2, readout begins at time t1+Δ, but the illumination sources103are not switched off until time t2. After readout occurs, charge begins accumulating for the next image. Having the illumination sources103remain on, however, degrades the quality of that image.

To address this issue, the barcode reader100may be configured so that it does not use all of the images that are captured by the photosensor array102. Images that have been degraded (e.g., because the illumination sources103remained on after readout started for a previous image, as discussed above) may be decimated (or otherwise discarded).

In the example shown inFIG. 2, the image that is read out from the photosensor array102beginning at time t1+Δ (and corresponding to the first exposure period207a) may either be used or decimated. It may be preferable to decimate that image because it is unknown how long the ambient illumination has been accumulating on the photodiodes in the photosensor array102before readout begins at time t1+Δ. The image that is read out from the photosensor array102beginning at time t2+Δ (and corresponding to the second exposure period207b) may also be decimated, because the illumination sources103remain on after readout begins at time t1+Δ. However, the image that is read out from the photosensor array102beginning at time t3+Δ (and corresponding to the third exposure period207c) may be kept and processed for decoding, because the illumination sources103are off from the beginning of the exposure period207cuntil the trigger pulse signal202coccurs. Subsequently captured images may be processed in a similar manner.

In general, in the example shown inFIG. 2, images corresponding to even trigger pulse signals are decimated. Thus, the images that are read out from the photosensor array102after the second trigger pulse signal202b, the fourth trigger pulse signal202d, and the sixth trigger pulse signal202f(and so on) are decimated. In some embodiments, the image capture control and decode system107(e.g., the pre-processing circuitry151a-n) may be configured to decimate these images. Alternatively, the image sensor system package111(e.g., the pre-processing circuitry165a-n) may be configured to decimate these images.

Conversely (with one possible exception), images corresponding to odd trigger pulse signals are kept and used for decoding in the example shown inFIG. 2. Thus, the images that are read out from the photosensor array102after the third trigger pulse signal202cand the fifth trigger pulse signal202e(and so on) are kept and used for decoding. The image that is read out from the photosensor array102after the first trigger pulse signal202amay either be decimated (for the reasons explained previously) or it may be kept and used for decoding.

As shown inFIG. 2, the illumination signal204generated by the illumination logic154to drive illumination of the illumination sources103is independent of the exposure period implemented by the control circuitry139. In other words, the illumination signal204switches from an on value to an off value (and vice versa) independent of the start and stop of the exposure period implemented by the control circuitry139.

FIG. 3illustrates another example timing diagram300, which is similar in many respects to the timing diagram200discussed above in connection withFIG. 2. Indeed, similar to the timing diagram200ofFIG. 2, the timing diagram300includes a trigger signal302, an illumination signal304, exposure timing306, a readout valid signal308, and a line readout signal310. The trigger signal302, exposure timing306, readout valid signal308, and line readout signal310are similar to the corresponding signals discussed above in connection withFIG. 2.

The illumination signal304, however, has different timing for “on” and “off” values than the illumination signal204shown inFIG. 2. In the example shown inFIG. 3, the illumination logic154may be configured so that the illumination signal304turns “on” after every even trigger pulse signal (i.e., the second trigger pulse signal302b, the fourth trigger pulse signal302d, the sixth trigger pulse signal302f, etc.).

In the example shown inFIG. 3, images corresponding to odd trigger pulse signals are decimated, while images corresponding to even trigger pulse signals are kept and used for decoding. Thus, the images that are read out from the photosensor array102after the first trigger pulse signal302a, the third trigger pulse signal302c, and the fifth trigger pulse signal302e(and so on) are decimated. However, the images that are read out from the photosensor array102after the second trigger pulse signal302b, the fourth trigger pulse signal302d, and the sixth trigger pulse signal302f(and so on) are kept and used for decoding.

In addition to being implemented in a dedicated barcode reader (such as the barcode reader100shown inFIG. 1), the techniques disclosed herein may be implemented in a mobile device that is configured to read barcodes. For example,FIG. 4illustrates an example of a mobile device400that may be configured to implement the techniques disclosed herein.

The mobile device400may include a processor444and memory446. The processor444may be embodied as a combination of one or more microprocessors, microcontrollers, digital signal processors (DSP), or the like, and, when operating, may execute instructions (in the form of an operating system and/or applications) stored in the memory446. The memory446may be any component capable of storing electronic information, including an operating system and/or application instructions executable by the processor444, and may be embodied as read-only memory (ROM), random access memory (RAM), magnetic disk storage media, optical storage media, flash memory devices, on-board memory included with the processor444, erasable programmable read-only memory (EPROM), electrically erasable programmable read-only memory (EEPROM), and/or registers, etc.

As illustrated inFIG. 4, the memory446may include an operating system448, a barcode reading application424, one or more other applications450a,450b, and a data buffer including an image data buffer489. In operation, the processor444may execute instructions embodied in the operating system448, the barcode reading application424, and each of the other applications450a,450b. Hardware circuits490interface the processor444with peripheral systems. The peripheral systems may include, for example, a camera assembly436and an illumination source484(which may include a white light source, LEDs, and/or other type of illuminators).

The camera assembly436may include a combination of hardware for illuminating a target area as well as capturing an image within a field of view of a photosensor array442. As will be described in further detail below, the mobile device400may include independent controllers for respectively controlling exposure of photosensors within the photosensor array442and illuminating a target area. As shown inFIG. 4, the camera assembly436includes a (color) photosensor array442, which may be positioned parallel to each of the face surface and the back surface of the mobile device400. The mobile device400may also include a lens assembly440with an optical axis439orthogonal to the photosensor array442and defining a center line of a camera field of view438extending outward from the back surface of the mobile device400. The photosensor array442may include one or more photosensors such as complementary metal-oxide-semiconductor (CMOS) photosensors, or the like.

The lens assembly440may receive light reflected from objects within the camera field of view438. The camera field of view438may have an angular size441which may be the angle at which the camera field of view438spreads with respect to distance from the lens assembly440. The lens assembly440may have a camera aperture size measured as f-number which is the ratio of the focal length of the lens assembly440to the diameter of the entrance pupil (i.e., the lens aperture (an aperture stop or an inherent aperture of the lens component defining the aperture) as viewed through the front of the lens assembly440).

The camera assembly436may further include an auto zoom module496and/or an autofocus module498which may serve to control an optical zoom setting and/or autofocus setting of the camera, respectively. Autofocus and auto zoom may be controlled by moving the position of at least one of the lenses making up the lens assembly440with respect to each other (or with respect to the photosensor array442) and/or altering the curvature of at least one of the lenses making up the lens assembly440.

The photosensor array442may include control circuitry491. The control circuitry491may function similarly in some respects to the control circuitry139described above in connection withFIG. 1(e.g., with respect to exposure and coupling of pixels to A/D converters for image read out).

As further shown inFIG. 4, system-on-chip circuits492may further include an illumination controller493for controlling illumination of a target area by, for example, controlling the illumination source484. The illumination source484may include one or more light-emitting diodes (LEDs)484a,484bcontrolled by the illumination controller493.

The control circuitry491within the photosensor array442and the illumination controller493are separate components that provide independent control of respective hardware on the mobile device400. For example, the control circuitry491may identify exposure periods for the photosensor array442for capturing and processing digital images. Independent of the control circuitry491, the illumination controller493may control illumination of a target area by generating an illumination signal for activating the illumination source484.

Even if the control circuitry491includes circuitry capable of controlling one or more illuminators (e.g., a flash connector, or other output that can be used to control illumination), the illumination source484is not controlled by such circuitry in accordance with the present disclosure. Instead, the illumination controller493controls illumination of the target area independent of any signals provided by the control circuitry491.

One or more of the components of the mobile device400may be configured to generate a trigger signal that includes a sequence of trigger pulse signals, like the trigger signals202,302shown inFIGS. 2 and 3. In some embodiments, a decoder within the barcode reading application424may generate the trigger signal.

The decoder may also provide certain other information to the SOC circuits492. For example, the decoder may provide the SOC circuits492with information that defines the end of an exposure period. The end of an exposure period may be defined with respect to a trigger pulse signal (e.g., an exposure period ends a certain period of time after the trigger pulse signal is detected). The decoder may also provide the SOC circuits492with a gain setting, an illumination intensity setting, and an illumination duration setting. The SOC circuits provide the exposure information and the gain setting to the control circuitry491. The SOC circuits provide the illumination intensity setting and the illumination duration setting to the illumination controller493.

The illumination controller493may be configured to generate an illumination signal, which may be similar to the illumination signals204,304shown inFIGS. 2 and 3. The illumination controller493may be configured so that, in response to detecting a trigger pulse signal, the illumination controller493changes the value of the illumination signal in the manner shown inFIG. 2and/orFIG. 3. In addition, the control circuitry491may be configured to read out image data from the photosensor array442in the manner shown inFIG. 2and/orFIG. 3.

Moreover, the mobile device400may be configured so that it does not use all of the images that are captured by the photosensor array442. In this regard, the mobile device400may be configured to operate similarly to the barcode reader100discussed above. Images that have been degraded (e.g., because the illumination source484remains on after readout occurs, as discussed above) may be decimated. In some embodiments, images corresponding to odd trigger pulse signals (with the possible exception of the first trigger pulse signal) may be kept and used for decoding and images corresponding to even trigger pulse signals may be decimated. Alternatively, images corresponding to even trigger pulse signals may be kept and used for decoding and images corresponding to odd trigger pulse signals may be decimated.

FIG. 5illustrates a method500that may be performed by a barcode reading device in accordance with the present disclosure. Some examples of barcode reading devices include a dedicated barcode reader (such as the barcode reader100shown inFIG. 1) and a mobile device that includes barcode reading functionality (such as the mobile device400shown inFIG. 4).

The method500includes detecting502a trigger condition. The trigger condition may be associated with reading a barcode. For example, detecting the trigger condition may involve detecting user input (such as user selection of an option to read a barcode), detecting the presence of a barcode within a relevant field of view (e.g., the field of view of a barcode reader, the field of view of a camera of a mobile device), and/or detecting motion of the barcode reading device.

Detecting502the trigger condition may initiate the process of reading barcodes. Thus, in response to detecting502the trigger condition, one or more trigger pulse signals may be generated504. The trigger pulse signals may be, for example, similar to the trigger pulse signals202a-f,302a-fthat are shown inFIGS. 2 and 3.

The method500may also include exposing506a photosensor array and generating a frame of image data in response to each trigger pulse. For example, readout of image data from the photosensor array may occur in response to detecting a trigger pulse signal.

The method500may also include activating508illumination after selected trigger pulse signals. This may include turning on illumination after every odd trigger pulse signal (as shown inFIG. 2) or after every even trigger pulse signal (as shown inFIG. 3).

The method500may also include using510only selected frames of image data for decode attempts. Other frames of image data may be decimated. For example, frames of image data that have been degraded (e.g., because one or more illumination sources remained on after readout started for a previous frame of image data, as discussed above) may be decimated.

The steps, operations, and/or actions of the methods described herein may be interchanged with one another without departing from the scope of the claims. In other words, unless a specific order of steps, operations, and/or actions is required for proper functioning of the method that is being described, the order and/or use of specific steps, operations, and/or actions may be modified without departing from the scope of the claims.