High bandwidth image processing with run time library function offload via task distribution to special purpose engines
First Claim
1. A high bandwidth image processing system, comprising:
- an image interface unit being configured to receive image data from a set of image recordation mechanisms for a single field of view of a same object, the set of image recordation mechanisms including at least two cameras, the image data including at least one image from each camera of a different area of the same object at substantially a same time, and to generate commands selected from an image command processing library to process the image data, and further to send the image data and the commands, the image interface unit comprising a set of servers each comprising a universal operating system; and
a plurality of special purpose processing engines (SPEs) configured to receive the image data and the generated commands from the image interface unit, to process the image data based on and by executing the commands, including assigning and distributing tasks and the image data among the plurality of SPEs based on the commands, and to send processed image data to the image interface unit, wherein each SPE includes at least one processing engine and the commands include at least one library function that is written for the at least one SPE that supports the processing of the image data, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, the at least one SPE thereby being configured to receive an off-load of the at least one library function at a run time, wherein the field of view has a plurality of inspection threads each running an algorithm that is different from the algorithm of any other inspection thread.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention provides a high bandwidth image processing system, which generally includes an image processing unit having a set of servers that each have a universal operating system for receiving image data corresponding to a set of images, generating commands for processing the image data, and sending the images and the commands to an image processing unit (also having a universal operating system(s)) of the high bandwidth image processing system. Upon receipt, the image processing unit will recognize and interpret the commands, assign and/or schedule tasks for processing the image data to a set of (e.g., special) processing engines based on the commands, and return results and/or processed image data to the image interface unit.
140 Citations
26 Claims
-
1. A high bandwidth image processing system, comprising:
-
an image interface unit being configured to receive image data from a set of image recordation mechanisms for a single field of view of a same object, the set of image recordation mechanisms including at least two cameras, the image data including at least one image from each camera of a different area of the same object at substantially a same time, and to generate commands selected from an image command processing library to process the image data, and further to send the image data and the commands, the image interface unit comprising a set of servers each comprising a universal operating system; and a plurality of special purpose processing engines (SPEs) configured to receive the image data and the generated commands from the image interface unit, to process the image data based on and by executing the commands, including assigning and distributing tasks and the image data among the plurality of SPEs based on the commands, and to send processed image data to the image interface unit, wherein each SPE includes at least one processing engine and the commands include at least one library function that is written for the at least one SPE that supports the processing of the image data, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, the at least one SPE thereby being configured to receive an off-load of the at least one library function at a run time, wherein the field of view has a plurality of inspection threads each running an algorithm that is different from the algorithm of any other inspection thread. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A high bandwidth image processing system, comprising:
-
an image interface unit configured for; receiving image data from a plurality of image recordation mechanisms for a single field of view of a same object, the plurality of image recordation mechanisms including at least two cameras, image data including at least one image from each of the at least two cameras, each image being of a different area of the same object at substantially a same time, generating commands selected from an image command processing library, sending the image data and the commands, and receiving processed image data, the image interface unit comprising a universal operating system, client application, an image grabber library, a first communications library, and an image processing command library; and a plurality of special purpose processing engines (SPEs) configured for; receiving the image data and the generated commands from the image interface unit, assigning and distributing tasks among the plurality of SPEs based on the generated commands such that at least one SPE is configured to receive an off-load of at least one library function at a run time, the at least one library function being written for the at least one SPE, supporting the processing of the image data, and is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, processing the image data by executing the commands, and returning processed image data to the image interface unit, wherein the plurality of processing engines includes a universal operating system, a cell application, a command dispatcher, an image processing library, a software developer kit library, and a second communications library, wherein the commands include the at least one library function. - View Dependent Claims (11, 12, 13, 14, 15, 16)
-
-
17. A method for processing images, comprising:
-
receiving image data on an image interface unit from a set of image recordation mechanisms for a single field of view of a same object, the set of image recordation mechanisms including at least two cameras, the image data including at least one image from each camera of a different area of the same object at substantially a same time, and generating commands selected from an image command processing library, the image interface unit comprising a set of servers each comprising a universal operating system; sending the image data and the generated commands to a plurality of special purpose processing engines (SPEs); interpreting the generated commands; assigning tasks to and distributing tasks among the plurality of SPEs; processing the image data on the plurality of SPEs by executing the commands and in accordance with assigned and distributed tasks, wherein the commands include at least one library function that is written for the plurality of SPEs, wherein the at least one library function supports the processing of the image data, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language, the processing of the image data including receiving with at least one SPE an off-load of at least one respective library function at a run time; and providing access to processed image data from a client application unit. - View Dependent Claims (18, 19, 20, 21)
-
-
22. A program product stored on at least one computer readable storage device for processing images, the at least one computer readable storage device comprising program code for causing at least one computer system to:
-
receive image data from a set of image recordation mechanisms for a single field of view of a same object on an image interface unit comprising a set of servers each comprising a universal operating system, the set of image recordation mechanisms including at least two cameras and the image data including at least one image from each camera of a different area of the same object at substantially a same time; generate commands selected from an image command processing library; interpret the commands; assign at least one task to a plurality of special purpose processing engines (SPEs) and, responsive to the at least one task including at least two tasks, distributing the at least two tasks among the plurality of SPEs, to process the image data by executing the generated commands corresponding the image data including off-loading at least one library function to a respective one of the plurality of SPEs at a run time; process the image data in response to the tasks, wherein the commands include the at least one library function that is written for the plurality of SPEs, wherein the at least one library function supports the processing of the image data, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language. - View Dependent Claims (23, 24, 25)
-
-
26. A method for deploying a system for processing images, comprising:
providing a computer infrastructure being operable to; receive image data for a single view of a same object from a set of image recordation mechanisms on an image interface unit comprising a set of servers each comprising a universal operating system, the set of image recordation mechanisms including at least two cameras and the image data including at least one image from each camera of a different view of the same object at substantially a same time; generate commands selected from an image command processing library; interpret the commands; assign at least one task to a plurality of special purpose processing engines (SPEs) to process the image data by executing the generated commands corresponding the image data, including off-loading at least one library function to a respective one of the plurality of SPEs at a run time; and process the image data in response to the tasks, wherein the commands include the at least one library function that is written for the plurality of SPEs, wherein the at least one library function supports the processing of the image data, and wherein the at least one library function is one of a plurality of algorithms, an optimization for a processor architecture, and a wrapper for a scripting language.
Specification