Abstract:
Methods and systems are disclosed for improved operation of readers of optical codes presented on electronic display screens or other highly reflective surfaces. Certain configurations include controlling image exposure and illumination pulse timing so as to avoid or minimize the perception of flicker of the pulsed illumination by a user or bystander while implementing methods for reading optical codes presented on electronic display screens or other highly reflective surfaces.

Description:
RELATED APPLICATION DATA 
       [0001]    This application claims priority to U.S. provisional application No. 61/383,694 filed Sep. 16, 2011, hereby incorporated by reference. 
     
    
     BACKGROUND 
       [0002]    Optical codes, such as barcodes and other machine-readable indicia, appear in various places in a variety of applications. There are a variety of such optical codes, including: linear barcodes (e.g., UPC code), 2D codes including stacked barcodes (e.g., PDF-417 code), and matrix codes (e.g., Datamatrix code, QR code, or Maxicode). 
         [0003]    There are several types of data readers used for reading these optical codes. The most common types of optical code readers are laser scanners and imaging readers. A laser scanner typically moves, i.e. scans, a laser light beam across the barcode. Imaging readers are typically used to capture a 2D image of an area, including the optical code or other scene, focused onto a detector array such as charge-coupled devices (CCDs) and complementary metal oxide semiconductor (CMOS) imagers. With some such imaging readers, it may be advantageous to provide a source of illumination that illuminates the optical code or other scene being imaged, to provide the required signal response in the imaging device. Such a source of illumination can reduce exposure time, thereby improving imager performance, especially in low ambient light conditions and when imaging moving items. 
         [0004]    Businesses have begun sending optical codes to customers who display such optical codes on a portable electronic device, such as a mobile telephone, personal digital assistant, palm, tablet, or laptop computer, or other suitable device having an electronic display, such as a liquid crystal display (LCD). For example, an airline passenger may display an optical code on a portable electronic device for an airline employee to read using a data reader as verification of the passenger&#39;s ticket. In another application, a customer in a store may display an optical code on a portable electronic device for a cashier to read using a data reader to redeem a coupon. Optical codes are also included on other items having highly, or relatively highly, reflective surfaces, for example, but not limited to, identification (ID) cards, aluminum cans, and objects in plastic packaging. 
         [0005]    Optical codes presented on, or under a highly or relatively highly reflective surface are typically difficult to decode using general-purpose data readers. In one solution to better read optical codes on LCD displays, the reader is cycled between reading modes, a first mode having the LED illumination on to illuminate the surface, and a second mode having the LED illumination off to avoid specular reflection. 
         [0006]    Switching between the illumination and non-illumination modes results in the LED illumination to be cycled on and off producing an annoying/distracting light flickering as perceived by the user or bystander. For most people, light pulsed at a frequency in excess of 50 Hz will exceed their so-called “flicker fusion frequency” and no flicker effect will be perceived. The flicker fusion frequency of human vision typically ranges from as low as about 15 Hz to as high as about 65 Hz. To avoid flicker fusion, U.S. Pat. No. 7,234,641 discloses pulsing the light at a sufficiently high frequency (e.g., in excess of 50 Hz) to avoid the flicker effect. 
         [0007]    The present inventors have, therefore, recognized a need for improved methods of pulsing illumination for a data reader. The present inventor has also recognized a need for methods of pulsing illumination in conjunction with operating an imaging reader, particularly methods for electronic display screens reading that avoid the flicker effect. 
       SUMMARY 
       [0008]    Methods and systems are disclosed for improved operation of readers of optical codes presented on electronic display screens or other highly reflective surfaces. 
         [0009]    In certain embodiments, systems and methods of pulsing one or more sources of illumination are disclosed for avoiding or minimizing the perception of illumination flicker by a user or bystander while implementing methods for reading optical codes presented on electronic display screens or other highly reflective surfaces. 
         [0010]    Additional aspects and advantages will be apparent from the following detailed description of preferred embodiments, which proceeds with reference to the accompanying drawings. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0011]      FIG. 1  schematically illustrates a data reader reading an optical code displayed on an electronic display screen of an electronic device. 
           [0012]      FIG. 2  is a diagrammatic view of a data reader according to a preferred embodiment. 
           [0013]      FIG. 3  is a diagrammatic view of a data reader according to another preferred embodiment. 
           [0014]      FIG. 4  is a timing diagram illustrating relative timing of imager frame exposure and illumination pulses with a fixed pulse rate illumination. 
           [0015]      FIG. 5  is a timing diagram illustrating relative timing of imager frame exposure and illumination pulses, in accordance with a preferred embodiment. 
           [0016]      FIG. 6  (comprising  FIGS. 7 and 8 ) is a flow chart of a method for data reading of an optical code being displayed on an electronic display according to a preferred embodiment. 
           [0017]      FIG. 9  is a flow chart of a program algorithm for data reading of an optical code being displayed on an electronic display according to another embodiment. 
       
    
    
     DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS 
       [0018]    The described features, structures, characteristics, and methods may be combined in any suitable manner in one or more embodiments. In view of the disclosure herein, those skilled in the art will recognize that the various embodiments can be practiced without one or more of the specific details or with other methods, components, materials, or the like. In other instances, well-known structures, materials, or operations are not shown or not described in detail to avoid obscuring aspects of the embodiments. For convenience, the methods and systems may be described herein with reference to barcodes or other optical codes, however, it is understood that the methods described herein are applicable to any host computer and to any type of optically readable code, such as, but not limited to, those described above, fingerprints, and other suitable codes. 
         [0019]      FIG. 1  is a diagrammatic view of a data reader  10  in accordance with a first embodiment shown reading a barcode  45  displayed on the display screen  42  of a pda (personal digital assistant) or cell phone  40  (a smartphone being illustrated). The data reader  10  is illustrated as a Magellan® 3200VSi model bar code reader available from Datalogic of Eugene Oreg. (U.S.A.), but any suitable imaging reader may be employed. The data reader  10  is schematically depicted as a presentation scanner suitable for reading optical codes, symbols, or other items. The data reader  10  is illustrated, by way of example, as a single window reader with a vertically-oriented window  14 . The reader  10  may configured as a fixed unit (mountable to a support surface or free standing on a horizontal surface) or a handheld unit. The reader  10  may alternately be configured as a combined handheld/fixed unit, e.g., one that may rest/be self-supporting upon a horizontal surface but be grasped by the user and moved to aim toward an item to be read. 
         [0020]      FIG. 2  is a diagram illustrating elements of the data reader  10  according to a first embodiment. The data reader  10  has a housing  12  with a front window  14  and one or more illumination sources  16 ,  17  (the reader  10  showing an upper LED array  16  and a lower LED array  17 ) for illuminating the read region  5  in front of the window  14 . An image of the field of view  5  is reflected by a mirror  20  upwardly (or downwardly depending on the reader configuration) where it is focused by focusing optics  28  onto an imaging array  32 . The imaging array thus acquires a two-dimensional (2D) image of the field of view  5 , converting the 2D image into an electronic signal (i.e., pixel data). The imaging array  32  is shown mounted on a printed circuit board  30  disposed on the bottom of the reader housing  12 . Preferably, the data reader  10  may include on-board memory  36  and a controller or imager processor  34  (also mounted on PCB  30 ) for controlling operation of the imager  32  and other reader components. 
         [0021]      FIG. 3  is a diagram illustrating elements of another data reader  100  similar to the reader  10  of  FIG. 2 . The data reader  100  has a housing  112  with a front window  114  and one or more illumination sources  116  for illuminating the read region  5  in front of the window  114 . An image of the field of view  5  is reflected by a first mirror  120  downwardly to a second mirror  122 , sidewardly to a third mirror  124  and then downwardly where it is focused by focusing optics  128  onto an imaging array  132  that acquires a 2D image of the field of view  5 . The imaging array  132  is shown mounted on a printed circuit board  130  disposed on the bottom of the reader housing  112 . Preferably, the data reader  100  includes a controller or imager processor  134  (also mounted on PCB  130 ) for controlling operation of the imager  132  and other reader components. 
         [0022]    Other reader configurations may be employed such as those disclosed in U.S. application Ser. No. 13/188,244, hereby incorporated by reference, as well as any other suitable configuration. 
         [0023]    In any of a mounted, hands-free, or hand-held mode, data reading may be activated by a suitable process such as for example (1) actuation of the trigger or switch  18 , (2) automatically by the processor  34  detecting the presence of an item within a scan volume in front of window  14 , or (3) by always being in a capture and decode images mode as long as the data reader  10  is in a scanning mode. An optical code such as code  45  on the electronic display screen  42  (or other surface) or other item may be read by presenting the item bearing the optical code into the read region in front of the window  14 . 
         [0024]    The following description will be made with reference to data reader  10  but shall be understood as being similarly applicable to reader  100 . The data reader  10  preferably comprises an imager  32  such as a complementary metal oxide semiconductor (CMOS) imager. Alternately, a charged couple device (CCD) or other suitable imager may be used. The imager  32 , alone or together with logic components such as a complex programmable logic device (CPLD) or a field-programmable gate array (FPGA), is coupled to the processor  34 , which, among other functions, is preferably programmed to control operating parameters of the data reader  10  as discussed in detail below. Processor  34  is also preferably programmed to read and decode optical codes or other symbols or imaged items. The imager  32  may comprise a model eV76C560 imager by available from e2v Ltd. of Chelmsford, United Kingdom. Alternately, the imager may comprise an active-pixel imaging CMOS sensor with a global shutter, such as a model MT9V022 sensor sold by Micron Technology, Inc. of Boise, Id., USA, or may operate on a rolling basis. 
         [0025]    The processor  34  may comprise any suitable digital processor, such as a low-power DSP core or ARM core processor. In preferred embodiments, processor  34  comprises an ARM9 processor AT91 SAM9G20 sold by Atmel of San Jose, Calif., USA, or OMAP processor sold by Texas Instruments of Dallas, Tex., USA or an i.MX1 series processor (such as the MC9328MX1 processor) sold by Freescale Semiconductor, Inc. of Austin, Tex., USA. Alternately, multiple processors or sub-processors or other types of processor electronics such as comparators or other specific function circuits may be used alone or in combination. For the purposes of this description, the term processor is meant to include any of these combinations. 
         [0026]    The illumination source  16 / 17  preferably comprises a collection of LEDs, for example, infrared or visible spectrum LEDs, but may alternatively comprise another suitable light source, such as a lamp or laser diode. Each LED array may comprise one or more LEDs. As an example, the upper LED array  16  may comprise four LEDs arranged in a line at the top of the reader and the lower LED array  17  may similarly comprise four LEDs arranged in a line at the bottom of the reader. The illumination sources  16 / 17  may be coupled to and controlled by the processor  34 , or may be remotely mounted and powered. A power supply circuit is preferably provided for energizing the LEDs. The reader  100  for example may have two LED arrays, one of the arrays  116  being at the top left side of the housing  112  and the other at the top right side. 
         [0027]    System electronics may also include a memory  36  (e.g., mounted on PCB  30 ), such as a flash memory, random access memory, or other suitable memory, communicates with processor  34 . Alternately, memory  36  may be integrated with the processor  34 . 
         [0028]    The controller or processor  34  is programmed to analyze an image scene to determine whether it is advantageous to change one or more operating parameters of the data reader  10 . Such image analysis could occur for every frame captured by an imager  32 , or alternately, may not occur for every frame, for example, image analysis may occur on a periodic basis. 
         [0029]    In one mode of operating to capture and decode an optical code, the data reader  10  is activated, preferably by processor  34  detecting an item, such as electronic display  42  on the device  40 , within a read volume  5  or by activation of trigger  18 , to capture a first set of images of the item bearing an optical code, such as optical code  45 . The first set of images may include only one image, but preferably includes two or more images. Alternately, data reader  10  may continuously be on, i.e., operate or scan continuously. 
         [0030]    In order to improve reading of the reflective surfaces of a display screen  42  depicting the barcode  45 , it is desirable for the reader to enter a specialized reading mode with the illumination turned off. There are various methods for the data reader  10  to detect that a display screen is in the read region such as disclosed in U.S. application Ser. No. 13/106,659 hereby incorporated by reference. One such method will be described, but any suitable method may be employed. 
         [0031]    An imaging array  32  such as the model eV76C560 imager by e2v requires an image of a field of view and outputs a signal indicating a light intensity value as absorbed at the pixel. For an 8-bit value imager, the intensity value range is from 0 to 255, 0 being a no light or dark body condition (minimum intensity) and 255 being a saturated condition (maximum intensity). In between there is a relatively gray scale value for the pixel. For a 10-bit value imager, the pixel value ranges from 0 to 1024. The imager also outputs a histogram of how many pixels are of a particular pixel value range. The histogram can be calculated by using all or partial pixels of image for imagers that do not output histogram data. 
         [0032]    When attempting to read a barcode displayed by an LCD or other display screen, there tends to be a large number of pixels having saturated or high intensity pixel values (V HIGH  or higher) due to the reflective nature of the display screen, while at the same time there is a large number of pixels with very low intensity pixel values (V LOW  or lower) for the same reasons. By taking a histogram of the output, it can be determined that if an image capture shows a certain large number of shiny (saturated or near saturated) pixels (i.e., pixels of high intensity value V HIGH  or higher) and a relatively large number of dark pixels (i.e., pixels of low intensity value V LOW  or lower) then it is concluded that the image is an LCD screen and the processor is switched to the LCD screen reading mode. To provide a few more examples, the preferred system may have these threshold values, V HIGH  and V LOW , set by any number of methods, including (1) the values may be preset; (2) the values may be programmable values, selected by the user or by the technician selecting the values preferred for the particular establishment lighting conditions or the types of LCD screens being read; or (3) the values may selectable according to a self-learning program/algorithm such as the system remembering the values that it used when switching to cell phone mode and then using those values. The following is an example by which LCD screen indication can be made. 
         [0033]    Example A—Condition 1: a certain number of pixels, for example 100 pixels (0.7%) having greater than a given/selected high intensity value (example intensity value V HIGH =200 or higher); and Condition 2: a large percentage (example 70%) of pixels are below a low intensity value (example intensity value V LOW =50 or lower). These values are for an 8-bit value imager having a range of 0-255. 
         [0034]    If both conditions 1 and 2 above are satisfied (i.e., both the shiny pixel percentage and the dark pixel percentage are above the specific threshold percentage ranges), then it is assumed that an LCD screen has been read. 
         [0035]    Another way of describing this method of LCD screen presence is by analyzing image histogram to determine whether the histogram is bi-modal, i.e., exhibits two peaks, or more than two peaks. One exemplary manner for analyzing the histogram includes using, or establishing, a low threshold and a high threshold. Preferably the low threshold corresponds to a number representing a range of dark, or relatively dark, pixels (low to relatively low grayscale) and the high threshold corresponds to a number representing a range of saturated, or relatively saturated, pixels (high to relatively high grayscale). 
         [0036]    For example, an imager that captures eight bit image data preferably includes a grayscale ranging from 0 to 255, where 0 corresponds to dark pixels, (i.e., pixels receiving no, or almost no light), and 255 corresponds to saturated pixels, (i.e., pixels receiving so much light that a pixel registers a white portion of an image, even when the corresponding part of the item imaged by such a pixel is not white). In one embodiment for an eight bit imager, a low threshold may include only pixels registering 0 on the grayscale and a high threshold may include only pixels registering 255 on the grayscale. Alternately, a low threshold may include pixels in a dark-end range on the grayscale, such as 0 to 10, 0 to 20, 0 to 30, 0 to 40, 0 to 50, 0 to 60, or other suitable range, and a high threshold may include pixels in a light-end range on the grayscale, such as 200 to 255, 210 to 255, 220 to 255, 230 to 255, 240 to 255, or other suitable range. 
         [0037]    The processor preferably determines whether a first predetermined percentage of pixels fall within the low threshold and whether a second predetermined percentage of pixels fall within the high threshold. For example, processor preferably obtains or calculates a first number of pixels where each pixel has a grayscale value in the low threshold, such as 0 to 75, for example. The processor preferably also obtains or calculates a second number of pixels where each pixel has a grayscale value in the high threshold, such as 235 to 255, for example. The processor next determines whether the first number of pixels is greater than the first predetermined percentage of pixels and whether the second number of pixels is greater than the second predetermined percentage of pixels. In one embodiment, for an imager having 360,960 pixels (a 752×480 pixel grid), a low threshold of 0 to 75 the first predetermined percentage of pixels is 40% of the imager&#39;s total number of pixels and for a high threshold of 230 to 255 the second predetermined percentage of pixels is 8% of the imager&#39;s total number of pixels. Other suitable percentages may be used for the same low and high thresholds. Alternately, other suitable percentages, or the same percentages, may be used for other suitable low and high thresholds and for imagers having the same or a different total number of pixels. 
         [0038]      FIG. 4  illustrates a timing diagram  200  of an imager frame exposure and illumination pulse sequence with a fixed pulse illumination rate. The top row  205  indicates imager exposure times and the lower row  250  indicates the LED illumination pulse times. The imager exposure time may range from approximately 1 to 10 rows which corresponds to about 26 μs—260 μs. The imager is provided with exposure control depending upon the overall exposure of a particular image, the exposure time of the subsequent image will be adjusted up or down accordingly. 
         [0039]    Looking to the rows of imager exposure, the first exposure  202  has an exposure time of 5 rows (about 95 μs). A histogram of the image is analyzed according to the above-described methodology to determine whether an LCD screen is in the field of view. In this instance, the image did not constitute an LCD screen and thus for the second exposure  204 , the reader remains in normal operating mode. The imager may also adapt its exposure time for the second exposure  204  depending upon the results of the first exposure. The second row  250  shows a corresponding illumination pulse for illuminating the field of view. The pulses  252 ,  254 ,  256 , etc., are fixed length pulses pulsed at a given frequency (60 Hz); pulsed to coincide within the respective image exposures  202 ,  204 . At the second image exposure  204 , a histogram indicates by the above process that an LCD screen has been detected in the read region and thus for the next exposure (exposure  206 ) the reader switches to LCD reading mode for a cycle of 12 images (four of which are being shown  206 ,  208 ,  210 , and  212 ) with the longer exposure time of 70 rows (corresponding to about 1200 μs). In the LCD reading mode, this longer exposure time is provided to give the reader additional exposure since the illumination LED is off during the LCD reading mode, whereby the LCD is read/illuminated only by ambient light or LCD backlight. At the end of the 12 images taken during the LCD reading mode (or optionally earlier if a label is read before the 12 th  image), the reader switches back to normal reading mode at image exposure  214  illuminated by LED pulse  256  and the normal reading process takes over again. Exposure  214  is again a short exposure (1-10 rows) illuminated by LED pulse  256 . The histogram of image  214  shows the image taken is not an LCD screen thus the example proceeds to exposure  216  and remains in standard mode illuminated by LED pulse  258  and again the image exposure  216  indicates an LCD screen is not shown and reader remains in standard mode for the next image exposure  218  illuminated by LED pulse  260 . 
         [0040]    The diagrams  200 ,  300  of  FIGS. 4-5  show exposure times as 5 rows, a middle value for the exposure, but as described herein the exposure time is set in a range of 1-10 rows, 26 μs to 260 μs, depending upon the adaptive exposure setting according to the prior exposure analysis. 
         [0041]    As is seen by illumination row  250  in the chart  200 , there is a large gap between illumination pulse  254  and illumination pulse  256 . Depending upon the number of cycles between the standard reading mode with the LED on and the LCD reading mode with the LED off, a perceptible flicker can be visible to the user or others and cause either annoyance or discomfort. 
         [0042]    To avoid this annoying flicker, an alternate system with the LED illumination being illuminated during each image exposure cycle is defined.  FIG. 5  is a timing diagram  300  illustrating an imager exposure row  305  and LED illumination pulse row  350  corresponding thereto. Conceptually, during standard mode, the LED pulse illuminates during image exposure while during the LCD mode, the illumination pulse is set to follow or be otherwise offset from the exposure (the LED pulse being exposures). In such a process, the time between LED pulses tends to be much smaller, on the order of 55 Hz, which is generally above the frequency of a human eye and therefore is not perceived as the annoying flicker when the reader is switched between standard reading mode and the LCD reading mode. 
         [0043]    Turning in more detail to the figure, exposure  302  runs a histogram indicating that an LCD screen is not indicated/detected and then the reader proceeds to remain in the standard mode for the next exposure  304 . LED pulses  352  and  354  must align with each of the respective exposures  302 ,  304 . Exposure  304  is analyzed and indicates that the exposure as shown is an LCD screen and for the next image exposure  306  switches to LCD reading mode with a much longer  70  row exposure  306 . The amount of exposures in the LCD mode is preferably a set programmable amount. In this example, a number of  20  exposures is selected. The number of exposures may be preset and fixed for the reader at the point of manufacture, programmable by the user, variable as controlled by a program criteria such as dependent on the LCD mode cycles attempted, or dependent on whether a LCD screen is confirmed by image histogram analysis. Alternately the amount of exposures in the LCD mode may be controlled via a timer, for example the timer permitting exposures for a set time (e.g., 0.5 seconds, the timer being operative for measuring or counting down the given time for LCD mode capture/read attempts), that time being set at point of manufacture, programmable by user, variable as controlled by a program criteria. 
         [0044]    The LCD mode exposure time is shown as a fixed time (70 rows=about 1280 μs), but may be longer or shorter (for example 50 rows to 100 rows) with Automatic Exposure Control on. The LCD mode exposure time may be preset and fixed for the reader at the time of manufacture, programmable by the user, or variable as controlled by a program criteria such as adapted based upon feedback from the previous exposure. The LCD mode exposure time (on the order of 50-100 rows) is much longer that the standard mode exposure time (1-10 rows) and thus is on the order of 10 times or more (5× to 100×) longer. 
         [0045]    The LED pulse  356  is intentionally offset and outside of the imager exposure  306 . Similarly, the LED pulses  358 ,  360 , and  362  are outside of their respective exposures  308 ,  310 ,  312 . Thus during the LCD reading mode, the exposures are illuminated only by ambient light and LCD display backlight if LCD display is in scan volume because the LED illumination pulses are offset or otherwise between consecutive image exposures. If an optical code is successfully read (one or more times as required) during the LCD reading mode, the reader exits the LCD reading mode (acknowledging with a good read signal and reporting/transmitting the code) and returns to standard reading mode looking for a subsequent barcode. The processor/decoder includes suitable two-label reading prevention schemes. 
         [0046]    If no barcode is successfully read after given number of cycles (e.g., the  20  cycles) in the LCD reading mode, the system returns to standard reading mode, and proceeds to image exposure  314  which is illuminated by LED pulse  364 . Image exposure  314  has its histogram analyzed and in this example it is determined that an LCD screen is not present and for the subsequent image exposure  316  the reader remains in the standard mode illuminated by LED pulse  366  (the pulse occurring during or overlapping the exposure  316 . At image exposure  316 , it is again determined that an LCD screen is detected and thus for the subsequent  20  exposures  318 - 320 , the reader switches to LCD reading mode with LED pulses  368 - 370  offset from the respective image exposures as previously described. After the 20 cycles (or optionally immediately if a barcode is successfully read) the reader returns to standard reading mode at image exposures  322 ,  324 ,  326  illuminated by respective LED pulses  372 ,  374 ,  376  as previously described. 
         [0047]      FIG. 6  (comprised of  FIGS. 7 and 8 ) is a flow chart of a method  400  according to one embodiment, the method comprising the following steps, the steps typically being performed via a processor contained in electronic circuitry of the data reader: 
         [0048]    At Step  402 —Start. 
         [0049]    At Step  404 —In standard mode, pulsing illumination and performing exposure (capturing an image or set of images) at standard mode exposure time during illumination. Illumination may comprise an LED pulse, the exposure is timed such that the LED pulse is within or overlaps with the exposure. Exposure time for the first exposure may be preset (e.g., 5 rows), programmable, or may be set to the last exposure previously taken. 
         [0050]    At Step  408 —Processing exposure image(s) for detecting and reading optical code. 
         [0051]    At Step  410 —Determining if an optical code has been read successfully. If Yes a code has been read successfully, proceeding to Step  412  to report a good read, and if No proceeding to Step  416 . 
         [0052]    At Step  412 —From the Yes condition in Step  410 , reporting a good read of the optical code and then proceeding to Step  404 . 
         [0053]    At Step  416 —From the No condition in Step  410 , analyzing a histogram of the exposure and determining if the exposure was of an LCD screen; if No proceeding to Step  420 , and if Yes proceeding to Step  426 . 
         [0054]    At Step  420 —Analyzing intensity of the image and adjusting exposure time for the next image exposure. 
         [0055]    At Step  422 —Illuminating field and performing next exposure at the adjusted exposure time (from Step  420 ); then returning to Step  408 . 
         [0056]    At Step  426 —From the Yes condition in Step  416 , resetting number of LCD mode exposure attempts (n=1). 
         [0057]    At Step  430 —Performing exposure at LCD mode exposure time, and pulsing illumination outside of the exposure. The LCD mode exposure time is larger (e.g., 70 rows) since exposure is via ambient illumination. The LED illumination is still pulsed, but occurs after exposure so that the illumination does not interfere with the ambient illumination reading during the LCD mode exposure. 
         [0058]    At Step  434 —Processing exposure image for detecting and reading an optical code. 
         [0059]    At Step  436 —Determining whether an optical code has been read successfully. If Yes proceeding to Step  438  for reporting a good read; if No proceeding to Step  440 . 
         [0060]    At Step  438 —From the Yes condition in Step  436 , reporting a good read and then returning to Step  404 . 
         [0061]    At Step  440 —From the No condition in Step  436 , determining whether the number of attempts to read/exposures in the LCD mode has reached the given maximum (is n≧20). If Yes, return to Step  404  (to switch back to standard mode) and if No, proceed to Step  444 . 
         [0062]    At Step  444 —Incrementing n (n=n+1); proceed to Step  430  to perform a subsequent exposure in the LCD mode. 
         [0063]    The method  400  may include additional steps and features, and certain steps may be omitted, and certain steps may be combined. For example as to omitting a step, Step  420  may be omitted and the exposure time may be constant or be varied by a set pattern rather than being adaptive. For example as to adding steps, an optical code portion acquired in one image may be combined with another optical code portion from another image and thus be assembled into a complete optical code, the process being generally known as stitching. For example as to combined steps, Step  416  may be omitted and combined with Step  404  whereby Step  420  proceeds directly to Step  404  (instead of Step  408 ) and the exposure time (in Step  404 ) would be set in accordance with Step  420 . Though a given sequence of steps in method  400  is described, certain of the steps may be undertaken in other/different sequences. For example, the incrementation in Step  444  and the resetting of Step  426  may be undertaken at any suitable time; in another example, the intensity analysis of Step  420  may be undertaken before Step  410  or in conjunction with Step  408 . 
         [0064]      FIG. 9  is a flow chart of a program algorithm  500  for data reading of an optical code being displayed on an electronic display according to another embodiment, comprising the following steps: 
         [0065]    At Step  502 —Start. 
         [0066]    At Step  504 —Read control parameters. These control parameters for an initial read may be preset in the software/firmware or programmable, but once the system is operating, the parameters correspond to the parameters set by the prior image captured. 
         [0067]    At Step  506 —Determining if an LCD screen has been detected in the prior image exposure as set forth in the updated control parameters (as will be explained below with respect to Steps  514  and  534 ). If NO proceed to Step  530  (standard mode with illumination) and if YES proceed to Step  508  (LCD mode without LED illumination). In a preferred implementation, the system actually processes several images and analyzes a plurality of images rather than a single image when making decisions. In one configuration, the system requires multiple frames/exposure (e.g., five consecutive frames) satisfying the LCD screen detection condition before switching to LCD mode. 
         [0068]    At Step  530 —With no LCD detected from Step  506 , setting Automatic Exposure Control/Automatic Gain Control (AEC/AGC) to setting  1  with normal exposure at 1 to 9 rows and illuminated by the LED pulse during exposure. 
         [0069]    At Step  531 —Setting decoding parameters. These parameters may include how long to spend on 2D label decoding, how long to spend on 1D decoding, selection of symbology decoding order (which one is first, which one is last, etc.), and other typical decoding parameters. The decode parameters set at Step  531  may be programmable and are preferably suited for the standard mode (illuminated) reading. 
         [0070]    At Step  532 —Capture image of the field of view. 
         [0071]    At Step  534 —Performing image histogram analysis (to determine whether an LCD screen has been detected) and updating control parameters for the next exposure (e.g., analyzing intensity of the image and adjusting exposure time for the next image exposure). 
         [0072]    At Step  536 —Decoding the image. 
         [0073]    At Step  538 —Determining if an optical code has been read successfully. If YES a code has been read successfully, proceeding to Step  540  to report a good read, and if NO proceeding back to Step  504 . 
         [0074]    At Step  550 —From the YES condition either Step  538  or Step  520 , reporting a good read of the optical code and then proceeding to Step  504 . 
         [0075]    Turning to Step  508 —From the YES condition in Step  506 , wherein an LCD was detected from Step  506 , setting Automatic Exposure Control/Automatic Gain Control (AEC/AGC) to setting  2  (LCD screen mode) with longer exposure at 70 rows (for example) and not illuminated by the LED pulse during exposure, the LED illumination pulse being shifted outside of the exposure. The LCD mode exposure time is longer (e.g., 70 rows) since exposure is via ambient illumination (including the backlighting from the LCD). The LED illumination is still pulsed, but occurs outside exposure so that the illumination does not interfere with the ambient illumination reading during the LCD mode exposure. 
         [0076]    At Step  510 —Setting decoding parameters. These parameters may include how long to spend on 2D label decoding, how long to spend on 1D decoding, selection of symbology decoding order (which one is first, which one is last, etc.), and other typical decoding parameters. The decode parameters set at Step  510  may be programmable and are preferably suited for the LCD mode (non-illuminated) reading. 
         [0077]    At Step  512 —Capture image of the field of view. 
         [0078]    At Step  514 —Performing image histogram analysis (to determine whether an LCD screen has been detected) and updating control parameters for the next exposure (e.g., analyzing intensity of the image and adjusting exposure time for the next image exposure). 
         [0079]    At Step  516 —Decoding the image. 
         [0080]    At Step  520 —Determining if an optical code has been read successfully. If YES a code has been read successfully, proceeding to Step  540  to report a good read, and if NO proceeding to Step  541 . 
         [0081]    At Step  541 , determining if presence of an LCD screen is confirmed. If Yes proceed to Step  522 , if No proceed to Step  523  for exiting LCD mode, updating control parameters and returning to Step  504 . 
         [0082]    At Step  522 —From the Yes condition in Step  541 , determining if the counter of given number of frames (image exposures) has been attempted (e.g. 12 frames), namely that the counter has expired. If YES, proceed to Step  523  for exiting LCD mode, updating control parameters, and returning to Step  504  and if NO proceeding to Step  524 . 
         [0083]    At Step  524 —From the NO condition in Step  522 , counting down/decrementing the counter (n=n−1) for the number of LCD mode exposure attempts remaining, then returning to Step  508  for another exposure in LCD screen mode. 
         [0084]    The method  500  may include additional steps and features, and certain steps may be omitted, and certain steps may be combined. For example as to omitting a step, portions of Step  530  may be omitted and the exposure time may be constant or be varied by a set pattern rather than being adaptive. In another example, Step  514  may be omitted with exposure and other parameters being constant in the LCD mode, with parameters resetting to standard mode following Step  522  YES condition. For example as to adding steps, an optical code portion acquired in one image may be combined with another optical code portion from another image and thus be assembled into a complete optical code, the process being generally known as stitching. Another additional step may be an optional reset step after Step  522  following the YES condition whereby the control parameters are updated/reset to standard mode. Though a given sequence of steps in method  500  is described, certain of the steps may be undertaken in other/different sequences. For example, the decrementation in Step  524  may be undertaken at any suitable time; in another example, the decode image Step  536  may be undertaken before Step  534 . 
         [0085]    While certain preferred systems and methods have been shown and described, it will be apparent to one skilled in the art that modifications, alternatives and variations are possible without departing from the inventive concepts set forth herein. Therefore, the invention is intended to embrace all such modifications, alternatives and variations.