Method and apparatus for multiplexed symbol decoding
First Claim
Patent Images
1. A symbology reader comprising:
- an imaging module having an image sensor and a lens to cooperatively provide an image of a field of view;
a data bus coupled to the imaging module;
a memory module coupled to the data bus; and
a processor coupled to the data bus, the processor comprising;
an acquisition process that controls the imaging module and the memory module to transfer the image into the memory module via the data bus;
a first decoding thread process that attempts to decode a first symbol type of the image of the field of view;
a second decoding thread process that attempts to decode a second symbol type of the image of the field of view; and
wherein the first decoding thread process and the second decoding thread process execute substantially simultaneously.
1 Assignment
0 Petitions
Accused Products
Abstract
A method and apparatus for multi-threaded operation of an image-based symbology reader is provided. In the method of the invention, acquired images of an encoded symbol are attempted to be decoded using a plurality of decoding engines asynchronously and substantially simultaneously in a multi-threaded processing environment. Each of the decoding engines can be directed to a specific symbology type to achieve an improved response time when reading multiple symbol types.
94 Citations
37 Claims
-
1. A symbology reader comprising:
-
an imaging module having an image sensor and a lens to cooperatively provide an image of a field of view; a data bus coupled to the imaging module; a memory module coupled to the data bus; and a processor coupled to the data bus, the processor comprising; an acquisition process that controls the imaging module and the memory module to transfer the image into the memory module via the data bus; a first decoding thread process that attempts to decode a first symbol type of the image of the field of view; a second decoding thread process that attempts to decode a second symbol type of the image of the field of view; and wherein the first decoding thread process and the second decoding thread process execute substantially simultaneously. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A method for reading an encoded symbol comprising:
-
acquiring image of a field of view; attempting to decode an encoded symbol from the acquired image using a first decoding thread while asynchronously and substantially simultaneously attempting to decode the encoded symbol from the image using a second decoding thread; and reporting a result when one of the first decoding thread and the second decoding thread is successful. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. A method for reading an encoded symbol comprising:
-
assigning first and second timeout variables to first and second decoding threads, respectively, where the first and second timeout variables are different and the first and second decoding threads are unsuccessful if an elapsed time exceeds the first and second timeout variables, respectively; acquiring at least one image of the encoded symbol; attempting to decode the encoded symbol from the at least one image using the first decoding thread while substantially simultaneously and asynchronously attempting to decode the encoded symbol from the at least one image using the second decoding thread; and reporting a result when one of the first decoding thread and the second decoding thread is successful. - View Dependent Claims (25, 26, 27, 28, 29)
-
-
30. A method for reading an encoded symbol comprising:
-
assigning first and second apportioning variables to first and second decoding threads, respectively, where the apportioning variables distribute processing resources unevenly between the first and second decoding threads; assigning first and second different timeout variables to first and second decoding threads, respectively, wherein the first decoding thread is unsuccessful when an elapsed time exceeds the first timeout variable and the second decoding thread is unsuccessful when an elapsed time exceeds the second timeout variable; continuously acquiring images of a field of view; attempting to decode an encoded symbol from at least one of the acquired images using the first decoding thread while asynchronously and substantially simultaneously attempting to decode the encoded symbol from at least one of the acquired images using a second decoding thread; when the attempt to decode using the first decoding thread is unsuccessful while the attempt to decode the encoded symbol using the second decoding thread continues, repeating the attempting to decode step using the first decoding thread for another of the acquired images during another period corresponding to the first timeout variable; and when the attempt to decode using the second decoding thread is unsuccessful while the attempt to decode the encoded symbol using the first decoding thread continues, repeating the attempting to decode step using the second decoding thread for another of the acquired images during another period corresponding to the second timeout variable. - View Dependent Claims (31)
-
-
32. A symbology reader comprising:
-
an imaging module having an image sensor and a lens to cooperatively provide a series of images of a field of view; a data bus coupled to the imaging module; a memory module coupled to the data bus; and a processor coupled to the data bus, the processor comprising; an acquisition process that controls the imaging module and the memory module to transfer the series of images into the memory module via the data bus; a first decoding thread process that attempts to decode a first symbol type of at least one of the images of the field of view; a second decoding thread process that attempts to decode a second symbol type of at least one of the images of the field of view; and wherein first and second timeout variables are assigned to the first and second decoding threads, respectively, where, the first and second timeout variables are different and the first and second decoding threads are unsuccessful if an elapsed time exceeds the first and second timeout variables, respectively; wherein the first decoding thread process and the second decoding thread process execute substantially simultaneously.
-
-
33. A method for reading an encoded symbol comprising:
-
assigning first and second apportioning variables to first and second decoding threads, respectively, where the apportioning variables distribute processing resources unevenly between the first and second decoding threads; acquiring at least one image of a field of view; attempting to decode an encoded symbol from the at least one image using the first decoding thread while asynchronously and substantially simultaneously attempting to decode the encoded symbol from the at least one image using a second decoding thread; and reporting a result when one of the first decoding thread and the second decoding thread is successful.
-
-
34. A symbology reader comprising:
-
an imaging module having an image sensor for generating images of a field of view; a data bus coupled to the imaging module; a memory module coupled to the data bus; and at least one processor coupled to the data bus, the at least one processor running at least one program to perform the following processes; an acquisition process that controls the imaging module and the memory module to transfer the images into the memory module via the data bus; a first decoding thread process that attempts to decode a first symbol type in at least one of the generated images; a second decoding thread process that attempts to decode a second symbol type in at least one of the generated images; and wherein the first decoding thread process and the second decoding thread process execute substantially simultaneously. - View Dependent Claims (35)
-
-
36. A method for reading an encoded symbol comprising:
-
using a single imaging module to acquire images of a field of view; attempting to decode an encoded symbol in at least one of the acquired images using a first decoding thread while asynchronously and substantially simultaneously attempting to decode an encoded symbol in at least one of the images using a second decoding thread; and reporting a result when one of the first decoding thread and the second decoding thread is successful. - View Dependent Claims (37)
-
Specification