Dual-tasking decoder for improved symbol reading

Information

  • Patent Grant
  • 7852519
  • Patent Number
    7,852,519
  • Date Filed
    Monday, February 5, 2007
    17 years ago
  • Date Issued
    Tuesday, December 14, 2010
    13 years ago
Abstract
A symbol scanning and decoding device that is configured for capturing a series of images of a symbol over time and configured for providing a first (image processing) procedure that processes one or more of the series of images within a first period of time, and a second (image processing) procedure that processes one or more of the series of images within a second period of time, and where the first period of time is constrained to be less than or equal to, and the second period of time is not constrained to be less than or equal to, a period of time between a capture of an integral number of consecutive images of the series of images.
Description
FIELD OF THE INVENTION

This invention relates generally to providing an improved symbol scanning and decoding device, and in particular to a symbol scanning and decoding device that is configured for capturing a series of images of a symbol over time and configured for providing a first (image processing) procedure that processes one or more of the series of images within a first period of time, a second (image processing) procedure that processes one or more of the series of images within a second period of time, and where the first period of time is constrained to be less than or equal to, and the second period of time is not constrained to be less than or equal to, a pre-determined period of time between a time of capture of two consecutive images of the series of images.


BACKGROUND OF THE INVENTION

Various organizations, including such as retail and manufacturing businesses, employ symbol (bar code) scanning devices for the purpose of identifying particular objects among a large plurality of symbol labeled objects. A bar code symbol is capable of storing information in a labeling format that image processing routines can recover more quickly, accurately and reliably than normal human-readable labeling methods.


SUMMARY OF THE INVENTION

This invention provides a symbol scanning and decoding device that is configured for capturing a series of images of a symbol over time and configured for providing a first (image processing) procedure that processes one or more of the series of images within a first period of time, and a second (image processing) procedure that processes one or more of the series of images within a second period of time, and where the first period of time is constrained to be less than or equal to, and the second period of time is not constrained to be less than or equal to, a pre-determined period of time between a time of capture of two consecutive images of the series of images.





BRIEF DESCRIPTION OF THE DRAWINGS

The objects and features of the invention can be better understood with reference to the claims and drawings described below. The drawings are not necessarily to scale; the emphasis is instead generally being placed upon illustrating the principles of the invention. Within the drawings, like reference numbers are used to indicate like parts throughout the various views. Differences between like parts may cause those like parts to be each indicated by different reference numbers. Unlike parts are indicated by different reference numbers.



FIG. 1 illustrates a symbol being scanned by a hand held symbol scanner that is in motion and positioned at various locations and orientations with respect to the symbol, over a short period of time.



FIG. 2A illustrates a single processor symbol decoding scenario that includes capture of a series of (4) images of a symbol by the scanner.



FIG. 2B illustrates a single tasking processor scheduling scenario for a single processor that occurs during the first elapsed period of time of FIG. 2A.



FIG. 2C illustrates a multiple processor symbol decoding scenario that includes capture of a series of (4) images of a symbol by the scanner.



FIG. 2D illustrates a multi-tasking processor scheduling scenario that occurs within the boundaries of the first elapsed period of time of FIG. 2A



FIG. 3 illustrates a variation of the symbol decoding scenario of FIG. 2A including termination of execution of the first (image processing) procedure in response to receiving a communication of an image processing forecast from the second (image processing) procedure.



FIG. 4 illustrates a variation of the symbol decoding scenario of FIG. 2A including a transition of the second (image processing) procedure from processing a first image to processing another image of the current series of images in response to receiving a image processing summary from the first (image processing) procedure.





DETAILED DESCRIPTION OF THE INVENTION


FIG. 1 illustrates a symbol 100 being scanned by a hand held symbol scanner 120, that is in motion and positioned at various locations and orientations 120a-120c with respect to the symbol 100, over a short period of time. The short period of time approximates 1-2 seconds. The hand held symbol scanner 120 is also referred to as a bar code scanner 120, imaging device 120 or as a scanner 120.


In accordance with the invention, the scanner 120 includes a trigger (not shown) that while pressed, causes the scanner 120 to attempt to decode a symbol within its field of view 122a-122c. When the trigger is pressed, the scanner 120 captures a series of (digital) images within its field of view 122a-122c over time. The scanner 120 typically generates an audio signal, such as a “beep” sound upon successfully decoding an image of the symbol that is included within at least one of the series of digital images, referred to as a current series of images, captured by the scanner 120. The scanner terminates the capture of the series of images (image acquisition mode) when an image of the series is decoded and/or until the trigger is released.


In some embodiments, the series of images are captured at a pre-determined frequency (schedule) over time. This frequency is also referred to as the frequency of image capture. Depending on the location and orientation of the field of view 122a-122c of the scanner 120, each captured image typically includes a unique digital representation of at least a portion of a graphical symbol 100.


In some embodiments, the scanner captures 58 images (frames) per second and as a result, captures one image within each of a series of 17 millisecond time intervals. In a typical use scenario, a user of the scanner 120 will direct the field of view 122a-122c of the scanner 120 towards the symbol 100 and press a trigger (not shown) to initiate an attempt by the scanner 120 to decode the symbol 100. The user can press the trigger and move (wave) the field of view 122a-122c of the scanner towards the symbol 100 while causing the scanner 120 to execute procedures to attempt to decode the symbol 100.


While the user presses the trigger and moves (waves) the scanner 120, the scanner 120 captures a series of 58 (approximately 60) images within approximately a second of time. The scanner 120 is configured to store within a memory a digital representation of each of the series of 60 images. In some embodiments, the procedures are implemented as software within the scanner 120 and are configured to read and process at least one or more of the 60 stored images of the series of images, also referred to as the current series of images.


In some embodiments, the scanner has only one processor (central processing unit (CPU). As a result, only one task can execute at one instant in time. In other embodiments, the scanner has more than one processor and as a result, more than one task can execute at one instant in time.


In some embodiments, the imaging device 120 can be configured to include one or more processors and to include software that executes on the one or more processors. In accordance with the invention, the software of the scanner includes a first (image processing) procedure and a second (image processing) procedure that are each configured to perform some processing of at least one of the current series of captured images. The first (image processing) procedure is configured to execute within a first elapsed period of time and the second (image processing) procedure is configured to execute within a second elapsed period of time.


In accordance with the invention, the first (image processing) procedure and the second (image processing) procedure are configured to perform processing on an image that could include a decodable (graphical) symbol. The “processing” of the image includes and is not limited to various actions, such as for example, symbol target inclusion verification, location, classification and orientation determination. In some circumstances, an image being processed may not include a symbol and consequently, the actions also include a determination of the absence of a decodable symbol from within the image. Such various actions, are not necessarily sufficient (or even necessary) to decode an image including a decodable (graphical) symbol.


In accordance with the invention, the first elapsed period of time has a duration that is constrained to be less than a first amount of time while a duration of the second elapsed period of time is not constrained to be less than the first amount of time.


As a result, in some embodiments, the first procedure is configured to execute with more frequency than the second procedure during a particular span of time, within which a series of images can be captured. Also, in some embodiments, the first procedure is configured to process, at least in part, more images than the second procedure during a span of time, within which a series of images can be captured.


In some embodiments, the first amount of time is set to a value and an initiation and/or duration of the first elapsed period of time is constrained, according to a schedule of image capture over time of the scanner 100. In some embodiments, the initiation (timing) and duration of the execution of the first (image processing) procedure, as defined by the initiation and duration of the first elapsed period of time, can be dependent and constrained upon a schedule of image capture as configured for the scanner 100, which is dependent upon the timing and frequency of image capture that is configured for the scanner 100.


In accordance with the invention, in some embodiments, the initiation of the execution of the first (image processing) procedure (first elapsed period of time) occurs as soon as practical upon the capture of every (Nth) image within the series of images. For example, in some embodiments, where (N=1) the initiation of the execution of the first (image processing) procedure occurs as soon as practical upon the capture of every image within the series of images. In other embodiments, where (N=2) for example, the first (image processing) procedure initiates upon the capture of every second (other) image within the series of images.


In accordance with the invention, the duration of the execution of the first (image processing) procedure (first elapsed period of time) is constrained (limited) to being less than or equal to a defined duration (first length of time), while a duration of the second procedure is not constrained to be less than the first length of time.


In some embodiments, the duration (length) of time, which defines the maximum duration of execution of the first (image processing) procedure (first elapsed period of time) can be constrained (limited) to be less than the time duration (first length of time) to capture an additional number of consecutive images (X).


In accordance with the invention, in some embodiments, the initiation of the execution of the first (image processing) procedure occurs as soon as practical upon the capture of every (Nth) image within a series of images. Therefore, the maximum duration of execution of the first (image processing) procedure (first elapsed period of time) must be constrained (limited) to be less than the duration (first length of time) to capture an additional number of consecutive images (X) in such a way that (X<=N).


Therefore, in the example case where N=1, and the first (image processing) procedure is initiated to execute as soon as practical upon the capture of every image within a series of images, the maximum duration of execution of the first (image processing) procedure (first elapsed period of time) cannot exceed the duration (length) of time to capture an additional (X=1) image. Also, in the example case where N=2, and the first (image processing) procedure is initiated to execute as soon as practical upon the capture of every second image within a series of images, the maximum duration of execution of the first (image processing) procedure (first elapsed period of time) cannot exceed the duration (length) of time to capture an additional (X=2) image.


Practically, the first elapsed period of time is substantially less than the duration (first length of time) to capture an additional number of consecutive images (X) where (X<=N), in order to not consume and to make available processor time for execution of the second (image processing) procedure during the second elapsed time period.


For embodiments, where initiation of the execution of the first (image processing) procedure occurs upon the capture of every (N=2) second image, the execution of the second (image processing) procedure is interrupted with half the frequency as compared to when (N=1) and where interruption occurs upon the capture of every image. Where initiation of the execution of the first (image processing) procedure occurs upon the capture of every (N=3) third image, the execution of the second (image processing) procedure is interrupted with a third of the frequency than when (N=1).


With respect to the above described embodiment of 58 images per second, a duration (length) of time to capture a single image, within the series of images, is approximately 17 milliseconds. The first (image processing) procedure is configured to process, at least in part, each of some or all of the series of images, to support a particular symbol decoding operation. In some embodiments, the first (image processing) procedure processes each of the series of images in an order in which they are captured.


The second elapsed period of time has a duration (length) of time that varies, but unlike that of the first (image processing) procedure, is not constrained to be less than, and can substantially exceed the duration (length) of time that is sufficient to capture the next consecutive image, in a series of images, at the pre-determined frequency. As a result, the duration of the second (image processing) procedure may substantially exceed the duration of the first (image processing) procedure. Unlike the first (image processing) procedure, the second (image processing) procedure is not configured to optionally process all of a current series of images.


The first (image processing) procedure is configured to perform processing upon a captured image via performance of a first set of one or more actions during its execution while directing control of at least one processor. The first set of actions is configured to perform at least a portion of an attempt of successfully decoding an image of at least one graphical symbol 100. The first set of actions is not necessarily configured to decode the image, but can, in some embodiments, constitute a subset of actions required to decode the image. The execution of the first (image processing) procedure occurs during and between the starting and ending boundary of a first elapsed period of time.


The first (image processing) procedure is configured to input and process at least one, and often many, if not all, of a current series of images, depending on the particular symbol decoding scenario. In some embodiments, the first (image processing) procedure is further configured to output information including a characterization of each image as a result of processing that image. The information, also referred to as an image processing summary for each image, is communicated in a manner that is accessible to the second (image processing) procedure.


The image processing summary information, associated with each of one or more images of the current series, also includes a description of a contribution of actions performed, and results of those actions realized, by the first (image processing) procedure to further an attempt of successfully decoding each of the one or more images. The information provided by the image processing summary information is consolidated and accumulated for a particular image within the series of images. The second (image processing) procedure can employ the consolidated and accumulated information to reduce the decoding effort required by the second (image processing) procedure when attempting to decode that image.


The contribution of actions includes a description of results of one or more reads by the first (image processing) procedure of at least a portion of each associated image. The reads often identify and grade regions of interest within the image being processed. The contribution of actions further includes a rating that is configured to have a correlation with a likelihood of successfully decoding each associated image. If the first (image processing) procedure has completed a successful decoding of an associated image, the contribution of actions describes the completion of the successful decoding. A plurality of images within a series of images can be rank ordered based upon a rating that is assigned to each image within the series.


The second (image processing) procedure, during its execution, is configured to perform processing of at least one of the series of captured images. The processing includes a second set of one or more actions that are performed while directing control of at least one processor of the scanner 120. The second set of actions is configured to perform at least a portion of an attempt of successfully decoding of an image of at least one graphical symbol. The execution of the second (image processing) procedure occurs during the second elapsed period of time.


Processing of an image by the second (image processing) procedure includes an attempt to more rigorously (completely, broadly, thoroughly and carefully) decode the image as compared to any decoding attempt that would likely be made by the first (image processing) procedure. As a result, processing of an image by the second (image processing) procedure typically requires substantially more time to complete than the processing of the same image by the first (image processing) procedure.


Because the length of the second elapsed period of time is likely to substantially exceed the longest possible first elapsed period of time, when executing within a single processor configuration, the second (image processing) procedure will likely be interrupted by one or more executions of the first (image processing) procedure and the second (image processing) procedure will not exclusively execute between the initiation and completion of a second elapsed period of time.


When executing within a multiple processor configuration, the first and second (image processing) procedures can be assigned to separate processors and can execute independently and without interruption between each other.


If the second (image processing) procedure's attempt to decode an image fails, another image of the current series of images is selected by the second (image processing) procedure or other software, to initiate another decoding attempt. If the second (image processing) procedure's attempt to decode an image succeeds, the results of the decoding of the captured image are likely to be a correct decoding of the image of the symbol 100 associated with the decoded image. As a result, decoding of the image of the symbol 100 is complete and no further image capture, nor decoding of another captured image, is required to decode the image of the symbol 100.



FIG. 2A illustrates a single processor symbol decoding scenario that includes capture of a series of (4) images of a symbol 100 and multiple executions of the first (image processing) procedure by the scanner 120. A time line 210 illustrates a plurality of points in time 212aa-212ad for each completion of a capture of one of the series of (4) distinct images of the symbol 100, also referred to as the current series of images. Any motion of the scanner 120 that occurs while capturing the series of images causes each image of the series to be unique and likely different from other images of the same series of images.


As shown, a first image of the current series is captured at a first time 212aa, a second image of the current series is captured at a second time 212ab, a third image of the current series is captured at a third time 212ac, and a fourth image of the current is captured at a fourth time 212ad.


A time line 230 illustrates execution activity of the first (image processing) procedure over time. At or shortly after the time of capture 212aa of the first image, execution of the first (image processing) procedure initiates at a time 232aa and completes at a time 234aa for processing of the first image over a first elapsed period of time 236aa via employment of at least one first processor. At or shortly after the time of capture 212ab of the second image, execution of the first (image processing) procedure initiates at a time 232ab and completes at a time 234ab for processing of the second image over a first elapsed period of time 236ab via employment at least one first processor. At or shortly after the time of capture 212ac of the third image, execution of the first (image processing) procedure initiates at a time 232ac and completes at a time 234ac for processing of the third image over a first elapsed period of time 236ac via employment at least one first processor.


A time line 250 illustrates execution activity over time of the second (image processing) procedure. At or shortly after the time of completion 234aa of the first elapsed period of time 236aa of the first (image processing) procedure, the second (image processing) procedure initiates at a time 252aa and completes at a time 254aa for processing of the first image over a second elapsed period of time 256aa via employment of at least one first processor.


In this embodiment, the scanner has only one processor. As a result, only a single procedure can (exclusively) execute at one instant in time. In this scenario, the first (image processing) procedure has priority over the second (image processing) procedure and periodically interrupts the execution of the second (image processing) procedure. The second (image processing) procedure does not interrupt the first (image processing) procedure. Also in this scenario, no other procedures are shown to interrupt the first or the second (image processing) procedures.


In other embodiments, the scanner has more than one processor and as a result, more than one procedure can execute at any one instant in time. As a result, the execution of the first and second (image processing) procedures can occur and overlap at the same one instant in time.


In a single processor embodiment, the second (image processing) procedure is competing with the first (image processing) procedure, and possibly other procedures, for scheduling of a period of time to control the single processor. Notice that each of the first elapsed periods of time 236ab and 236ac, overlap at least partially, a period of time between the initiation and completion of the second elapsed period of time 256aa. The second elapsed period of time initiates at time 252aa and completes at 254aa. The first elapsed period of time 236aa of the first (image processing) procedure initiates and completes before the initiation of the second elapsed time period 252aa of the second (image processing) procedure. Hence, one execution of the first (image processing) procedure initiates and completes before the execution of the second (image processing) procedure. As shown, the second (image processing) procedure is periodically interrupted and overlapped by complete iterations of the first (image processing) procedure.


As shown, in this symbol decoding scenario, the first (image processing) procedure does not successfully decode the first image during the first elapsed period of time 236aa and does not successfully decode the second image during the next instance of the first elapsed period of time 236ab, but does successfully decode the third image during the third instance of the first elapsed period of time 236ac.


Upon a completion of processing of each image of the current series of images, the first (image processing) procedure communicates information summarizing the results of processing each image 238aa-238ac, also referred to as an image processing summary, whether the processing of each image is successful or unsuccessful. Upon an unsuccessful decoding attempt of the first image, the first (image processing) procedure communicates an image processing summary 238aa in a manner that is accessible to the second (image processing) procedure. Upon an unsuccessful decoding attempt of the second image, the first (image processing) procedure communicates an image processing summary 238ab in a manner that is accessible to the second (image processing) procedure.


Upon successfully decoding the third image, the first (image processing) procedure communicates an image processing summary 238ac of the third image to the second (image processing) procedure at time 234ac, that includes an indication of the successful decoding of the third image.


Optionally, the second (image processing) procedure interrupts its processing of an image to read each image processing summary 238aa-238ac that has been communicated from the first (image processing) procedure. In response to receiving the image processing summary 238ac for the third image at time 234ac, the second (image processing) procedure reads the image processing summary 238ac and determines that the first (image processing) procedure has successfully decoded one of the images of the current series of images, and terminates at time 254aa, which occurs shortly after time 234ac.


In some embodiments, operating system software residing within the scanner 120 controls scheduling of the first processor via a scheduling algorithm. The first (image processing) procedure and the second (image processing) procedure compete with each other and other tasks for scheduling of time to direct control of the processor.


In a typical processor scheduling scenario, multiple tasks wait to be scheduled to direct control of the first processor (exclusively and continuously execute) for at least a small period of time, also referred to as a time slice or time segment. Depending upon the scheduling algorithm employed in association with the first processor, the first (image processing) procedure may be continuously scheduled as one individually continuous time segment or non-continuously scheduled as a non-contiguous series of more than one individually continuous time segments, within one or more of the first elapsed periods 236aa, 236ab and 236ac.



FIG. 2B illustrates a single tasking processor scheduling scenario for a single processor that occurs during the first elapsed period of time of FIG. 2A. In this processor scheduling scenario, the first elapsed period of time 236aa includes one time segment, also referred to as a continuous time segment, that includes continuous execution of one task. During this one continuous time segment 236aa, the first (image processing) procedure is the only task to execute on the processor within the first elapsed period of time. The first (image processing) procedure exclusively executes on the one processor and is said to “hog” the processor for the entire duration of the first elapsed period of time 236aa.


As shown, execution of the first (image processing) procedure is initiated, un-interrupted and completed within one continuous time segment 236aa. In other processor scheduling scenarios, the first elapsed period of time 236aa may instead include a non-contiguous (non-abutting) series of one or more separate and continuous time segments within which exclusive execution of the first (image processing) procedure occurs.



FIG. 2C illustrates a multiple processor symbol decoding scenario that includes capture of a series of (4) images of a symbol 100 and multiple executions of the first (image processing) procedure by the scanner 120. As also shown in FIG. 2A, a time line 210 illustrates a plurality of points in time 212aa-212ad for each completion of a capture of one of the series of (4) distinct images of the symbol 100, also referred to as the current series of images.


As also shown in FIG. 2A, a time line 270 illustrates execution activity of the first (image processing) procedure over time. At or shortly after the time of capture 212aa of the first image, execution of the first (image processing) procedure initiates at a time 232aa and completes at a time 234aa for processing of the first image over a first elapsed period of time 236aa via employment of the first processor (Processor A). At or shortly after the time of capture 212ab of the second image, execution of the first (image processing) procedure initiates at a time 232ab and completes at a time 234ab for processing of the second image over a first elapsed period of time 236ab via employment of a first processor (Processor A). At or shortly after the time of capture 212ac of the third image, execution of the first (image processing) procedure initiates at a time 232ac and completes at a time 234ac for processing of the third image over a first elapsed period of time 236ac via employment of the first processor (Processor A).


As also shown in FIG. 2A, a time line 290 illustrates execution activity of the second (image processing) procedure over time. Unlike that shown in FIG. 2A, the execution of the second (image processing) procedure employs a second processor (Processor B) and as a result, is not delayed until at or shortly after the time of completion 234aa of the first elapsed period of time 236aa of the first (image processing) procedure. Instead, for the multi-processor embodiment, the second (image processing) procedure initiates at a time 252aa, which is now earlier than that shown in FIG. 2A, and now coincides at or shortly after the time of image capture 212aa. As also shown in FIG. 2A, the execution of the second (image processing) procedure completes at a time 254aa for processing of the first image over a second elapsed period of time 256aa via employment of the second processor (Processor B).


In this embodiment, the scanner has multiple (at least two) processors. As a result, multiple tasks (each including decoding and/or non-decoding procedures) can execute at one instant in time. In this scenario, the first (image processing) procedure does not interrupt the execution of the second (image processing) procedure and the second (image processing) procedure first (image processing) procedure. As also shown in FIG. 2A, no other tasks are shown to interrupt the first or the second (image processing) procedures.


Like that which was shown in FIG. 2A, the symbol decoding scenario shown in 2C shows that the first (image processing) procedure does not successfully decode the first image during the first elapsed period of time 236aa and does not successfully decode the second image during the next first elapsed period of time 236ab, but does successfully decode the third image during the second next first elapsed period of time 236ac.


Like that which was shown in FIG. 2A, the symbol decoding scenario shown in 2C shows that upon a completion of processing of each image of the current series of images, the first (image processing) procedure communicates information summarizing the results of processing each image 238aa-238ac, also referred to as an image processing summary, whether the processing of each image is successful or unsuccessful.


Upon successfully decoding the third image, the first (image processing) procedure communicates an image processing summary 238ac of the third image to the second (image processing) procedure at time 234ac, that includes an indication of the successful decoding of the third image.


Optionally, the second (image processing) procedure interrupts its processing of an image to read each image processing summary 238aa-238ac that has been communicated from the first (image processing) procedure. In response to receiving the image processing summary 238ac for the third image at time 234ac, the second (image processing) procedure reads the image processing summary 238ac and determines that the first (image processing) procedure has successfully decoded one of the images of the current series of images, and terminates at time 254aa, which occurs shortly after time 234ac.


In a typical processor scheduling scenario, for a single or multiple processor configuration, multiple tasks (each including decoding and/or non-decoding procedures) wait to be scheduled to direct control of at least one processor (exclusively and continuously execute) for at least a small period of time, also referred to as a time slice or time segment. Depending upon the scheduling algorithm employed in association with the at least one processor, the first (image processing) procedure may be continuously scheduled as a single task in one individually continuous time segment or non-continuously scheduled as one of many tasks within one or more of the first elapsed periods 236aa, 236ab and 236ac.



FIG. 2D illustrates a multi-tasking processor scheduling scenario for one processor, that occurs within the boundaries of the first elapsed period of time of FIG. 2A. In contrast to that shown in FIG. 2B, the first elapsed period of time 236aa instead includes within its boundaries, the execution of multiple tasks (including decoding and/or non-decoding procedures and possibly other tasks) within a non-contiguous (non-abutting) series of separate and continuous time segments. The other tasks may or may not include procedures that perform symbol decoding and may or may not include execution of the second (image processing) procedure.


In this embodiment, unlike that shown in FIG. 2B, the first (image processing) procedure is not the only task to execute on the processor within the first elapsed period of time. Instead, the first elapsed period of time includes execution of other tasks, that may or may not perform decoding, in addition to the execution of the first (image processing) procedure. Like that shown in FIG. 2B, only one task exclusively executes within any one time segment and at any one instant in time on any one processor.


In this multi-tasking processor scheduling scenario, the first elapsed period of time 236aa includes (3) continuous time segments 236aaa, 236aac and 236aae within which the first (image processing) procedure executes.


As shown, execution of the first (image processing) procedure within the boundaries of the first elapsed time period 236aa, is initiated at the start of time segment 236aaa and suspended (interrupted) at the end of time segment 236aaa, which coincides with the start of time segment 236aab. Execution of the first (image processing) procedure is continuous and un-interrupted through time segment 236aaa. Execution of one or more other tasks occurs during the time segment 236aab. Execution of the other tasks may or may not perform decoding and may or may not include execution of the second (image processing) procedure.


Execution of the first (image processing) procedure within the boundaries of the first elapsed time period 236aa, is un-suspended at the start of time segment 236aac and is again suspended (interrupted) at the end of time segment 236aac, which coincides with the start of time segment 236aad. Execution of the first (image processing) procedure is continuous and un-interrupted through time segment 236aac. Execution of one or more other tasks occurs during time segment 236aad. Those other tasks may or may not perform decoding and may or may not include execution of the second (image processing) procedure.


Execution of the first (image processing) procedure within the boundaries of the first elapsed time period 236aa, is again un-suspended at the start of time segment 236aae and is again suspended (interrupted) at the end of time segment 236aae. Execution of the first (image processing) procedure is continuous and un-interrupted through time segment 236aae. Unlike the other time segments 236aaa and 236aac, execution of the first (image processing) procedure is terminated (completed) at the end of time segment 236aae.


During the one or more individual time segments, in this scenario shown as 236aab and 236aad, the processor is employed for purposes other than executing the first (image processing) procedure. These purposes can include execution of a high priority interrupt handler, other high priority tasks, and/or execution of other tasks (each including decoding and/or non-decoding procedures) associated with the operation of the scanner 120, including the execution of the second (image processing) procedure.


The series of time segments 236aaa, 236aac and 236aae are said to be non-contiguous (non-abutting) in that the execution of the first (image processing) procedure is interrupted by the execution of at least one other task between each time segment of the non-contiguous series. A continuous time segment is a time segment within which one task executes without interruption. Like the first (image processing) procedure, the second (image processing) procedure can and typically does execute within a non-contiguous series of more than one continuous time segments, especially for a single processor configuration.


Unlike what is shown in FIG. 2A, in this multi-tasking processor scheduling scenario, execution of the second (image processing) procedure could initiate earlier than shown in FIG. 2A and occur during one of the individual time segments 236aab or 236aad which start about midway through the first elapsed period of time 236aa. The second (image processing) procedure can further execute during one or more other individually continuous time segments (not shown) outside of and after the first elapsed period of time 236aa.


Like what is shown in FIG. 2A, in this multi-tasking processor scheduling scenario, the second (image processing) procedure continues to execute within the second elapsed period of time 256aa and long after the end of the first elapsed periods of time 236aa-236ab. After time segment 236aae, the second (image processing) procedure continues to execute during one or more other individually continuous time segments (not shown) outside of and after the first elapsed period of time 236aa. The second (image processing) procedure will continue to execute within the second elapsed period of time 256aa which terminates at 254aa, shortly after the second (image processing) procedure receives information 238ac from the first (image processing) procedure indicating that the third image has been successfully decoded by the first (image processing) procedure at time 234ac.


As a result, execution of the second (image processing) procedure through its last contiguous time segment (not shown) completes a time 254aa. Hypothetically, like described for FIG. 2A, if the first (image processing) procedure had not successfully decoded the third image, the second (image processing) procedure would have continued to process the first image until it successfully decoded the first image, or until a the second (image processing) procedure has made a determination that it would not successfully decode the first image, or until the first (image processing) procedure successfully decodes any of the current series of images.


The first 236aa and second 256aa elapsed periods of time, are said to overlap when the starting or ending boundary of one elapsed period of time is located within the starting and ending boundaries of the other elapsed period of time.


But note that two separate time segments 236aaa and 236aab, representing the exclusive execution of the first (image processing) procedure and execution of other tasks respectively, cannot overlap each other at any point in time for the single processor configuration. Separate time segments representing the execution of separate tasks can only overlap when executed on separate processors at the same time.


Hypothetically, if the first (image processing) procedure had not successfully decoded the third image during the first elapsed time period 236ac, the second (image processing) procedure would have continued to further process the first image until it successfully decoded the first image, or until the second (image processing) procedure made a determination that it would not successfully decode the first image, or until the first (image processing) procedure successfully decoded any of the other current series of images.


Upon a successful decoding of the first image by either the first or the second (image processing) procedure, both the first and second (image processing) procedures terminate and cease attempting to further decode any images of the current series of images.


Upon a successful decoding of the first image by either the first or the second (image processing) procedure, both the first and second (image processing) procedures terminate and cease attempting to further decode any images of the current series of images.



FIG. 3 illustrates a variation of the symbol decoding scenario of FIG. 2A including termination of the execution of the first (image processing) procedure in response to receiving a communication of an image processing forecast 260aa from the second (image processing) procedure.


In this scenario, the first (image processing) procedure has been unable to successfully decode any of the approximately first 46 images of the current series of images. The first (image processing) procedure has completed processing of the forty fifth image of the series during first elapsed period of time 236as and the forty sixth image of the series during first elapsed period of time 236at.


While the first (image processing) procedure has been processing the first 46 images, the second (image processing) procedure has been processing the first image of the series and has arrived at a determination indicating that it will successfully decode the image, being the first image of the series that it is currently processing.


Accordingly, the second (image processing) procedure communicates a (favorable) image processing forecast 260aa to the first (image processing) procedure. The (favorable) image processing forecast indicates that there is a sufficiently high likelihood that the second (image processing) procedure will successfully decode the image that it is currently processing.


In some embodiments, the first (image processing) procedure responds to receiving the (favorable) image processing forecast by terminating execution for processing a current image of the series and ceasing any further attempt to process any other images of the series.


In other embodiments, execution of the first (image processing) procedure is suspended for processing a current image and for attempting to process any other images of the series of images, to make available more processor time to the second (image processing) procedure or other procedures, until successful decoding of the current image by the second (image processing) procedure actually occurs at time 254aa. In this embodiment, the first (image processing) procedure effectively “blocks” until further notice, based upon a determination of the second (image processing) procedure.


In some circumstances, the second (image processing) procedure communicates an (unfavorable) image processing forecast 260aa to the first (image processing) procedure that indicates an insufficient likelihood that the second (image processing) procedure will successfully decode the image that it is currently processing. This circumstance can take place independent of any prior communication or after communicating a prior (favorable) image processing forecast 260aa with respect to the same image currently being processed.


Regardless of whether the second (image processing) procedure communicates an image processing forecast 260aa while processing an image, the second (image processing) procedure communicates an image processing summary (not shown) that is accessible to the first (image processing) procedure upon completion of the attempt to decode the image currently being processed, whether the attempt to decode the image is successful or not successful.


If the image processing forecast sent from the second (image processing) procedure to the first (image processing) procedure indicates that the decode will be successful as is shown in FIG. 3, the first (image processing) procedure responds to receiving the image processing forecast by terminating execution and ceasing any further attempt to process any other images of the series of images. In other embodiments, execution of the first (image processing) procedure is suspended, to make available more processor time, until successful decoding of the current image by the second (image processing) procedure actually occurs at time 254aa.


Should the second (image processing) procedure later become unable to successfully decode the current image of the series of images, it will communicate an image processing summary (not shown) to the first (image processing) procedure indicating an unsuccessful decoding outcome of the first image. In response, execution of the first (image processing) procedure if suspended, is un-suspended and will continue to process images of the current series of images that have not yet been processed.


In some embodiments, the second (image processing) procedure can elect to ignore communications from the first (image processing) procedure or cause suspension or termination of the first (image processing) procedure upon generating the image processing forecast. This aspect of the invention exploits a higher expected reliability of the results of the second (image processing) procedure, as compared to the expected reliability of the results of the first (image processing) procedure, upon successfully decoding an image of the current series.


Alternatively, the image processing forecast 260aa can indicate a sufficiently low likelihood of successfully decoding the current image. In response, the second (image processing) procedure self terminates and selects another image to process. In this scenario, the second (image processing) procedure evaluates any image processing summary that was communicated from the first (image processing) procedure regarding any of the images within the current series of images.


Upon evaluation of available image processing summary information associated with each of one or more images of the current series, the second (image processing) procedure selects and attempts to decode another image of the current series. The second (image processing) procedure can opt to select one image of the current series of images that was captured prior to self termination of the second (image processing) procedure or can opt to wait and select an image of the current series that has not yet been captured by the scanner 120.


Typically, the image processing summary includes information that reduces the amount of processing that needs to be further completed by the second (image processing) procedure. For example, contribution of actions information of the image processing summary informs the second (image processing) procedure of the processing work that has already been completed and of the results of that work. As a result, the second (image processing) procedure avoids performing work previously performed and makes use of the results of work previously performed. Also, the first (image processing) procedure and the second (image processing) procedure contribute to a common valid symbol decoding result.


There are a variety of types of symbols that the scanner 120 can decode. The symbol type that is to be decoded determines the type and amount of work required to decode that symbol. Some symbols require multiple reads, also referred to as “votes” to assure a validity of the symbol. Composite symbols include separate parts that are all read to completely decode all data encoded by the symbol.



FIG. 4 illustrates a variation of the symbol decoding scenario of FIG. 2A including a transition of the second (image processing) procedure from processing a first image to processing a second image of the series of images in response to receiving a image processing summary from the first (image processing) procedure.


In this scenario, the first (image processing) procedure has been unable to successfully decode any of the approximately first 7 images of the current series of images. The first (image processing) procedure has completed processing of the sixth image of the current series during first elapsed period of time 236af and the seventh image of the series during first elapsed period of time 236ag, and communicated image processing summaries 238af and 238ag respectively.


Meanwhile, the second (image processing) procedure has been processing the first image of the series during a second elapsed period of time 256aa. In response to receiving the image processing summary 238ag, the second (image processing) procedure terminates processing of the second elapsed period of time 256aa and initiates another second elapsed period of time 256ag to process the seventh image of the current series. The second elapsed period of time completes at time 254ag.


The image processing summary 238ag includes a sufficiently higher rating of a likelihood of successfully decoding the seventh image of the current series as compared to the rating of a likelihood of successfully decoding the current (first) image of the current series.


In some embodiments, the second (image processing) procedure delays processing of any of the images of the current series until it receives a image processing summary from the first (image processing) procedure having a sufficiently high rating. In other embodiments, the second (image processing) procedure delays processing until it receives a minimum number of image processing summaries, and then selects a highest rated image of the minimum number of images, to process.


While the present invention has been explained with reference to the structure disclosed herein, it is not confined to the details set forth and this invention is intended to cover any modifications and changes as may come within the scope and spirit of the following claims.

Claims
  • 1. An apparatus for decoding a graphic symbol comprising: a hand held imaging device including one or more processors and configured to capture a series of images according to a schedule of image capture over time, and wherein each said image can include a unique digital representation of at least a portion of at least one graphical symbol;a first procedure that is configured to perform a first set of one or more actions during its execution while directing control of at least one of said one or more processors, said first set of one or more actions are configured for processing an image that can include at least a portion of a graphical symbol, and wherein said execution occurs during a first elapsed period of time;a second procedure that is configured to perform a second set of one or more actions during its execution while directing control of at least one of said one or more processors, said second set of one or more actions are configured for processing an image that can include at least a portion of a graphical symbol, and wherein said execution occurs during a second elapsed period of time; and whereina duration of said first elapsed period of time is constrained to be less than a first amount of time while a duration of said second elapsed period of time is not constrained to said first amount of time.
  • 2. The apparatus of claim 1 wherein said first procedure is configured to execute with more frequency than said second procedure during a span of time within which a series of images can be captured.
  • 3. The apparatus of claim 1 wherein said first procedure is configured for processing, at least in part, more images than said second procedure during a span of time within which a series of images can be captured.
  • 4. The apparatus of claim 1 wherein said first elapsed period of time is constrained according to a schedule of image capture over time.
  • 5. The apparatus of claim 1 wherein said actions for processing include at least a portion of an attempt to decode an image that may be included within said image.
  • 6. The apparatus of claim 1 wherein said first procedure processes, at least in part, each of said series of images until any one of said images is successfully decoded by said first or said second procedure.
  • 7. The apparatus of claim 1 wherein said second procedure is performed upon at least one of said series of images until any one of said images is successfully decoded by said first procedure or said second procedure.
  • 8. The apparatus of claim 1 wherein information describing a performances of said first procedure upon any of said series of images is included within a communication that is accessible to said second procedure.
  • 9. The apparatus of claim 8 wherein an interruption of said second procedure is performed and wherein said information is communicated to said second procedure in association with said interruption.
  • 10. The apparatus of claim 8 wherein said information includes a description of a contribution of actions towards at least a partial attempt of decoding at least a portion of said graphical symbol.
  • 11. The apparatus of claim 10 wherein said contribution of actions describes results of one or more reads of at least a portion of said graphical symbol.
  • 12. The apparatus of claim 10 wherein said contribution of actions describes a rating of at least a portion of said graphical symbol and wherein said rating is configured to have a correlation with a likelihood of successfully decoding said symbol.
  • 13. The apparatus of claim 10 wherein said first procedure completes a successful decode of said at least one graphical symbol and said contribution of actions describes said successful decode.
  • 14. The apparatus of claim 13 wherein said second procedure elects to terminate or to not terminate in response to said communication of said successful decoding.
  • 15. The apparatus of claim 1 wherein said second procedure communicates an image processing summary that is accessible to said first procedure.
  • 16. The apparatus of claim 15 wherein execution of said first procedure is terminated and said first procedure ceases attempts to perform processing upon any other images within said series of images in response to said image processing summary that indicates a successful decode of an image of the series of images.
  • 17. The apparatus of claim 15 wherein execution of said first procedure is un-suspended and re-initiated to proceed to perform processing upon other images within said series of images in response to said processing summary that indicates an unsuccessful decode of an image of the series of images.
  • 18. The apparatus of claim 1 wherein information describing an image processing forecast is included within a communication from said second procedure that is accessible to said first procedure.
  • 19. The apparatus of claim 18 wherein execution of said first procedure is suspended or terminated and said first procedure ceases processing upon any other images within said series of images in response to said image processing forecast that indicates that there is a sufficiently high likelihood that said second procedure will successfully decode an image.
  • 20. A method for decoding a graphic symbol comprising: providing a hand held imaging device including one or more processors and configured to capture a series of images according to a schedule of image capture over time, and wherein each said image can include a unique digital representation of at least a portion of at least one graphical symbol;configuring said imaging device to execute a first procedure that that is configured to perform a first set of one or more actions during its execution while directing control of at least one of said processors, said first set of actions are configured to include at least a portion of a set of actions that are directed for processing an image that can include at least a portion of a graphical symbol, and wherein said execution occurs during a first elapsed period of time;configuring said imaging device to execute a second procedure that is configured to perform a second set of one or more actions during its execution while directing control of at least one of said processors, said second set of actions are configured to include at least a portion of a set of actions that are directed for processing an image that can include at least a portion of a graphical symbol, and wherein said execution occurs during a second elapsed period of time; and wherein a timing of initiation and duration of said first elapsed period of time is constrained to be less than a first amount of time while a duration of said second elapsed period of time is not constrained to said first amount of time.
US Referenced Citations (308)
Number Name Date Kind
3582884 Shepard Jun 1971 A
3663762 Joel, Jr. May 1972 A
3684868 Christie et al. Aug 1972 A
3723970 Stoller Mar 1973 A
3906166 Cooper et al. Sep 1975 A
4004237 Kratzer Jan 1977 A
4041391 Deerkoski Aug 1977 A
4097847 Forsen et al. Jun 1978 A
4114155 Raab Sep 1978 A
4164628 Ward et al. Aug 1979 A
4210802 Sakai et al. Jul 1980 A
4291410 Caples et al. Sep 1981 A
4315245 Nakahara et al. Feb 1982 A
4435822 Spencer et al. Mar 1984 A
4445118 Taylor et al. Apr 1984 A
4488678 Hara et al. Dec 1984 A
4488679 Bockholt et al. Dec 1984 A
4500776 Laser Feb 1985 A
4538060 Sakai et al. Aug 1985 A
4542528 Sanner et al. Sep 1985 A
4561089 Rouse et al. Dec 1985 A
4570057 Chadima, Jr. et al. Feb 1986 A
4610359 Muller et al. Sep 1986 A
4628532 Stone et al. Dec 1986 A
4636624 Ishida et al. Jan 1987 A
4639932 Schiff Jan 1987 A
4644523 Horwitz Feb 1987 A
4646353 Tenge et al. Feb 1987 A
4653076 Jerrim et al. Mar 1987 A
4686363 Schoon Aug 1987 A
4690530 Fujino et al. Sep 1987 A
4710817 Ando et al. Dec 1987 A
4785463 Janc et al. Nov 1988 A
4791446 Ishida et al. Dec 1988 A
4794239 Allais Dec 1988 A
4807256 Holmes et al. Feb 1989 A
4818856 Matsushima et al. Apr 1989 A
4825058 Poland Apr 1989 A
4841544 Nuytkens Jun 1989 A
4874936 Chandler et al. Oct 1989 A
4877949 Danielson et al. Oct 1989 A
4896029 Chandler et al. Jan 1990 A
4901073 Kibrick Feb 1990 A
4908500 Baumberger et al. Mar 1990 A
4942474 Akimoto et al. Jul 1990 A
4998010 Chandler et al. Mar 1991 A
5019699 Koenck May 1991 A
5113445 Wang May 1992 A
5138140 Siemiatkowski et al. Aug 1992 A
5153418 Batterman et al. Oct 1992 A
5153421 Tandon et al. Oct 1992 A
5159340 Smith Oct 1992 A
5189292 Batterman et al. Feb 1993 A
5212777 Gove et al. May 1993 A
5223701 Batterman et al. Jun 1993 A
5227614 Danielson et al. Jul 1993 A
5235167 Dvorkis et al. Aug 1993 A
5237163 Collins et al. Aug 1993 A
5245695 Basehore Sep 1993 A
5262871 Wilder et al. Nov 1993 A
5272323 Martino Dec 1993 A
5278397 Barkan et al. Jan 1994 A
5286960 Longacre, Jr. et al. Feb 1994 A
5294783 Hammond, Jr. et al. Mar 1994 A
5304786 Pavlidis et al. Apr 1994 A
5304787 Wang Apr 1994 A
5311001 Joseph et al. May 1994 A
5313533 Scott May 1994 A
5319185 Obata et al. Jun 1994 A
5331176 Sant'Anselmo et al. Jul 1994 A
5343028 Figarella et al. Aug 1994 A
5345266 Denyer et al. Sep 1994 A
5354977 Roustaei Oct 1994 A
5378881 Adachi et al. Jan 1995 A
5378883 Batterman et al. Jan 1995 A
5392447 Schlack et al. Feb 1995 A
5396054 Krichever et al. Mar 1995 A
5399852 Zheng et al. Mar 1995 A
5401949 Ziemacki et al. Mar 1995 A
5412197 Smith May 1995 A
5414251 Durbin May 1995 A
5418862 Zheng et al. May 1995 A
5420409 Longacre, Jr. et al. May 1995 A
5422470 Kubo et al. Jun 1995 A
5428211 Zheng et al. Jun 1995 A
5430286 Hammond, Jr. et al. Jul 1995 A
5430472 Curry Jul 1995 A
5446271 Cherry et al. Aug 1995 A
5461425 Fowler et al. Oct 1995 A
5463214 Longacre, Jr. et al. Oct 1995 A
5471515 Fossum et al. Nov 1995 A
5471592 Gove et al. Nov 1995 A
5477042 Wang Dec 1995 A
5478997 Bridgelall et al. Dec 1995 A
5478999 Figarella et al. Dec 1995 A
5479515 Longacre, Jr. Dec 1995 A
5481098 Davis et al. Jan 1996 A
5487115 Surka Jan 1996 A
5489769 Kubo et al. Feb 1996 A
5502297 Sherman Mar 1996 A
5504524 Lu et al. Apr 1996 A
5512739 Chandler et al. Apr 1996 A
5517018 Zheng et al. May 1996 A
5521366 Wang et al. May 1996 A
5524068 Kacandes et al. Jun 1996 A
5537431 Chen et al. Jul 1996 A
5545886 Metlitsky et al. Aug 1996 A
5565669 Liu Oct 1996 A
5567934 Zheng et al. Oct 1996 A
5569901 Bridgelall et al. Oct 1996 A
5572006 Wang et al. Nov 1996 A
5585616 Roxby et al. Dec 1996 A
5591955 Laser Jan 1997 A
5591956 Longacre, Jr. et al. Jan 1997 A
5598007 Bunce et al. Jan 1997 A
5600119 Dvorkis et al. Feb 1997 A
5610387 Bard et al. Mar 1997 A
5612524 Sant'Anselmo et al. Mar 1997 A
5621203 Swartz et al. Apr 1997 A
5637849 Wang et al. Jun 1997 A
5638465 Sano et al. Jun 1997 A
5640202 Kondo et al. Jun 1997 A
5663549 Katz et al. Sep 1997 A
5665959 Fossum et al. Sep 1997 A
5666167 Tults Sep 1997 A
5668803 Tymes et al. Sep 1997 A
5672858 Li et al. Sep 1997 A
5698833 Skinger Dec 1997 A
5699447 Alumot et al. Dec 1997 A
5702059 Chu et al. Dec 1997 A
5703349 Meyerson et al. Dec 1997 A
5710417 Joseph et al. Jan 1998 A
5723823 Bell Mar 1998 A
5723853 Longacre, Jr. et al. Mar 1998 A
5723868 Hammond, Jr. et al. Mar 1998 A
5726435 Hara et al. Mar 1998 A
5739518 Wang Apr 1998 A
5756981 Roustaei et al. May 1998 A
5763864 O'Hagan et al. Jun 1998 A
5773806 Longacre, Jr. Jun 1998 A
5773810 Hussey et al. Jun 1998 A
5774357 Hoffberg et al. Jun 1998 A
5780832 Watanabe et al. Jul 1998 A
5780834 Havens et al. Jul 1998 A
5783811 Feng et al. Jul 1998 A
5784102 Hussey et al. Jul 1998 A
5811774 Ju et al. Sep 1998 A
5811784 Tausch et al. Sep 1998 A
5814801 Wang et al. Sep 1998 A
5814803 Olmstead et al. Sep 1998 A
5815200 Ju et al. Sep 1998 A
5818028 Meyerson et al. Oct 1998 A
5818528 Roth et al. Oct 1998 A
5825006 Longacre, Jr. et al. Oct 1998 A
5831254 Karpen et al. Nov 1998 A
5831674 Ju et al. Nov 1998 A
5841121 Koenck Nov 1998 A
5841126 Fossum et al. Nov 1998 A
5867594 Cymbalski Feb 1999 A
5867595 Cymbalski Feb 1999 A
5875108 Hoffberg et al. Feb 1999 A
5877487 Tani et al. Mar 1999 A
5900613 Koziol et al. May 1999 A
5914476 Gerst, III et al. Jun 1999 A
5917171 Sasai et al. Jun 1999 A
5917945 Cymbalski Jun 1999 A
5920477 Hoffberg et al. Jul 1999 A
5926214 Denyer et al. Jul 1999 A
5929418 Ehrhart et al. Jul 1999 A
5932862 Hussey et al. Aug 1999 A
5942741 Longacre, Jr. et al. Aug 1999 A
5949052 Longacre, Jr. et al. Sep 1999 A
5949054 Karpen et al. Sep 1999 A
5949056 White Sep 1999 A
5962838 Tamburrini Oct 1999 A
5965863 Parker et al. Oct 1999 A
5979763 Wang et al. Nov 1999 A
5979768 Koenck Nov 1999 A
5984186 Tafoya Nov 1999 A
5986297 Guidash et al. Nov 1999 A
6003008 Postrel et al. Dec 1999 A
6012640 Liu Jan 2000 A
6017496 Nova et al. Jan 2000 A
6019286 Li et al. Feb 2000 A
6053407 Wang et al. Apr 2000 A
6064763 Maltsev May 2000 A
6070800 Fujita et al. Jun 2000 A
6082619 Ma et al. Jul 2000 A
6082621 Chan et al. Jul 2000 A
6119179 Whitridge et al. Sep 2000 A
6123264 Li et al. Sep 2000 A
6129278 Wang et al. Oct 2000 A
6144453 Hallerman et al. Nov 2000 A
6152368 Olmstead et al. Nov 2000 A
6155491 Dueker et al. Dec 2000 A
6161760 Marrs et al. Dec 2000 A
6170749 Goren et al. Jan 2001 B1
6173894 Olmstead et al. Jan 2001 B1
6176428 Joseph et al. Jan 2001 B1
6176429 Reddersen et al. Jan 2001 B1
6179208 Feng Jan 2001 B1
6186404 Ehrhart et al. Feb 2001 B1
6215992 Howell et al. Apr 2001 B1
6219182 McKinley Apr 2001 B1
6230975 Colley et al. May 2001 B1
6264105 Longacre, Jr. et al. Jul 2001 B1
6276605 Olmstead et al. Aug 2001 B1
6311895 Olmstead et al. Nov 2001 B1
6315204 Knighton et al. Nov 2001 B1
6329139 Nova et al. Dec 2001 B1
6347163 Roustaei Feb 2002 B2
6360948 Yang et al. Mar 2002 B1
6371373 Ma et al. Apr 2002 B1
6385352 Roustaei May 2002 B1
6398112 Li et al. Jun 2002 B1
6429934 Dunn et al. Aug 2002 B1
6443360 Marchi et al. Sep 2002 B1
6462842 Hamilton Oct 2002 B1
6486911 Denyer et al. Nov 2002 B1
6491223 Longacre, Jr. et al. Dec 2002 B1
6493029 Denyer et al. Dec 2002 B1
6505778 Reddersen et al. Jan 2003 B1
6508404 Hecht Jan 2003 B2
6512218 Canini et al. Jan 2003 B1
6525827 Liu Feb 2003 B2
6547139 Havens et al. Apr 2003 B1
6547142 Goren et al. Apr 2003 B1
6552323 Guidash et al. Apr 2003 B2
6552746 Yang et al. Apr 2003 B1
6565003 Ma May 2003 B1
6575367 Longacre, Jr. Jun 2003 B1
6578766 Parker et al. Jun 2003 B1
6585159 Meier et al. Jul 2003 B1
6598797 Lee Jul 2003 B2
6606171 Renk et al. Aug 2003 B1
6634558 Patel et al. Oct 2003 B1
6637658 Barber et al. Oct 2003 B2
6655595 Longacre, Jr. et al. Dec 2003 B1
6661521 Stern Dec 2003 B1
6665012 Yang et al. Dec 2003 B1
6666377 Harris Dec 2003 B1
6672511 Shellhammer Jan 2004 B1
6678412 Shigekusa et al. Jan 2004 B1
6685095 Roustaei et al. Feb 2004 B2
6698656 Parker et al. Mar 2004 B2
6714239 Guidash Mar 2004 B2
6714665 Hanna et al. Mar 2004 B1
6722569 Ehrhart et al. Apr 2004 B2
6729546 Roustaei May 2004 B2
6732929 Good et al. May 2004 B2
6732930 Massieu et al. May 2004 B2
6736321 Tsikos et al. May 2004 B2
6739511 Tsikos et al. May 2004 B2
6742707 Tsikos et al. Jun 2004 B1
6814290 Longacre Nov 2004 B2
6832729 Perry et al. Dec 2004 B1
6834806 Benedetti et al. Dec 2004 B2
6837432 Tsikos et al. Jan 2005 B2
6854649 Worner et al. Feb 2005 B2
6857570 Tsikos et al. Feb 2005 B2
6858159 Lyons Feb 2005 B2
6860428 Dowling et al. Mar 2005 B1
6863216 Tsikos et al. Mar 2005 B2
6877665 Challa et al. Apr 2005 B2
6982800 Cavill et al. Jan 2006 B1
7055747 Havens et al. Jun 2006 B2
7059525 Longacre et al. Jun 2006 B2
7077317 Longacre, Jr. et al. Jul 2006 B2
7077321 Longacre, Jr. et al. Jul 2006 B2
7080786 Longacre, Jr. et al. Jul 2006 B2
7086596 Meier et al. Aug 2006 B2
7090132 Havens et al. Aug 2006 B2
D528146 Fitch Sep 2006 S
7104456 Parker et al. Sep 2006 B2
7540424 Knowles et al. Jun 2009 B2
20020035715 Hatakeyama Mar 2002 A1
20020039099 Harper Apr 2002 A1
20020039197 Hikichi Apr 2002 A1
20020039457 Helms et al. Apr 2002 A1
20020135683 Tamama et al. Sep 2002 A1
20020145043 Challa et al. Oct 2002 A1
20020158127 Hori et al. Oct 2002 A1
20030042311 Longacre et al. Mar 2003 A1
20030062418 Barber et al. Apr 2003 A1
20030085282 Parker et al. May 2003 A1
20030136843 Ralph et al. Jul 2003 A1
20030146283 Longacre et al. Aug 2003 A1
20030218067 Parker et al. Nov 2003 A1
20040004128 Pettinelli et al. Jan 2004 A1
20040094627 Parker et al. May 2004 A1
20040195332 Barber et al. Oct 2004 A1
20040206821 Longacre et al. Oct 2004 A1
20040256464 Longacre et al. Dec 2004 A1
20040256465 Longacre Dec 2004 A1
20040262392 Longacre et al. Dec 2004 A1
20040262394 Longacre et al. Dec 2004 A1
20040262395 Longacre, Jr. et al. Dec 2004 A1
20040262396 Longacre et al. Dec 2004 A1
20040262399 Longacre, Jr. et al. Dec 2004 A1
20050056699 Meier et al. Mar 2005 A1
20050103851 Zhu et al. May 2005 A1
20050161511 Parker et al. Jul 2005 A1
20060054704 Fitch et al. Mar 2006 A1
20060097054 Biss et al. May 2006 A1
20060126129 Barber et al. Jun 2006 A1
20060175413 Longacre et al. Aug 2006 A1
20060255150 Longacre Nov 2006 A1
20060283954 Ralph et al. Dec 2006 A1
Foreign Referenced Citations (30)
Number Date Country
701057 May 1997 AU
2156153 Sep 1994 CA
2190189 Sep 1994 CA
2190190 Sep 1994 CA
2234617 Apr 1997 CA
1204411 Jan 1999 CN
69418598 Nov 1999 DE
60123088 Mar 2007 DE
685092 Nov 1999 DK
1323119 Jul 2003 EP
2134933 Oct 1999 ES
2308267 Jun 1997 GB
2343079 Apr 2000 GB
2344486 Jun 2000 GB
08506678 Jul 1996 JP
10508133 Aug 1998 JP
2895236 Mar 1999 JP
11515124 Dec 1999 JP
2004511015 Apr 2004 JP
WO-9304442 Mar 1993 WO
WO-9314458 Jul 1993 WO
WO-9317397 Sep 1993 WO
WO-9318478 Sep 1993 WO
WO-9419766 Sep 1994 WO
WO-9532580 Nov 1995 WO
WO-9701828 Jan 1997 WO
WO-9708647 Mar 1997 WO
WO-9715024 Apr 1997 WO
WO 0229707 Apr 2002 WO
WO-0229707 Apr 2002 WO
Related Publications (1)
Number Date Country
20080186545 A1 Aug 2008 US