Heterogeneous image processing system
First Claim
1. A heterogeneous image processing system, comprising:
- an image co-processor comprising a plurality of distinct special purpose engines (SPEs), the image co-processor being configured to;
receive a plurality of images collectively and substantially simultaneously recorded by a plurality of image recordation mechanisms, each image recordation mechanism providing at least one of the plurality of images for acquisition by one of a plurality of image grabbers, each image grabber sending at least one of the plurality of images to one of a plurality of peripheral component interconnects, each of the plurality of peripheral component interconnects sending at least one of the plurality of images to a pure load balancer;
distribute distinct portions of the plurality of images across the plurality of SPEs, wherein the distinct portions are different views of an object recorded at substantially a same time by at least two of the plurality of image recordation mechanisms;
collectively and substantially simultaneously process the distinct portions of the plurality of images at the plurality of SPEs to determine associated image data; and
receive a selective off-load of at least one library function at a run time, wherein the at least one library function is written for a plurality of parallel multi-core processors, wherein the at least one library function supports the processing of the distinct portions of the plurality of images at the plurality of SPEs, and wherein the at least one library function is one of at least one algorithm, an optimization for a processor architecture, and a wrapper for a scripting language.
2 Assignments
0 Petitions
Accused Products
Abstract
The present invention relates to machine vision computing environments, and more specifically relates to a system and method for selectively accelerating the execution of image processing applications using a hybrid computing system. To this extent, a hybrid system is generally defined as one that is multi-platform, and potentially distributed via a network or other connection. The invention provides a machine vision system and method for executing image processing applications on a hybrid image processing system referred to herein as an image co-processor that comprises (among other things) a plurality of special purpose engines (SPEs) that work to process multiple images in an accelerated fashion.
127 Citations
27 Claims
-
1. A heterogeneous image processing system, comprising:
-
an image co-processor comprising a plurality of distinct special purpose engines (SPEs), the image co-processor being configured to; receive a plurality of images collectively and substantially simultaneously recorded by a plurality of image recordation mechanisms, each image recordation mechanism providing at least one of the plurality of images for acquisition by one of a plurality of image grabbers, each image grabber sending at least one of the plurality of images to one of a plurality of peripheral component interconnects, each of the plurality of peripheral component interconnects sending at least one of the plurality of images to a pure load balancer; distribute distinct portions of the plurality of images across the plurality of SPEs, wherein the distinct portions are different views of an object recorded at substantially a same time by at least two of the plurality of image recordation mechanisms; collectively and substantially simultaneously process the distinct portions of the plurality of images at the plurality of SPEs to determine associated image data; and receive a selective off-load of at least one library function at a run time, wherein the at least one library function is written for a plurality of parallel multi-core processors, wherein the at least one library function supports the processing of the distinct portions of the plurality of images at the plurality of SPEs, and wherein the at least one library function is one of at least one algorithm, an optimization for a processor architecture, and a wrapper for a scripting language. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
-
-
11. A heterogeneous image processing method, comprising:
-
receiving a plurality of images in an image co-processor, the image co-processor comprising a plurality of special purpose engines (SPEs), wherein the plurality of images include images collectively and substantially simultaneously recorded by a plurality of image recordation mechanisms, each image recordation mechanism providing at least one of the plurality of images for acquisition by one of a plurality of image grabbers, each image grabber sending at least one of the plurality of images to one of a plurality of peripheral component interconnects, each of the plurality of peripheral component interconnects sending at least one of the plurality of images to a pure load balancer; distributing distinct portions of the plurality of images across the plurality of SPEs, wherein the distinct portions are different views of an object recorded at substantially a same time by at least two of the plurality of image recordation mechanisms; processing the distinct portions of the plurality of images collectively and substantially simultaneously with the plurality of SPEs to determine image data associated with the distinct portions of the plurality of images; providing at least one of the image data or the distinct portions of the plurality of images to a control processor to determine control information associated with the distinct portions of the plurality of images; and receiving a selective off-load of at least one library function at a run time, wherein the at least one library function is written for a plurality of parallel multi-core processors, wherein the at least one library function supports the processing of the distinct portions of the plurality of images at the plurality of SPEs, and wherein the at least one library function is one of at least one algorithm, an optimization for a processor architecture, and a wrapper for a scripting language. - View Dependent Claims (12, 13, 14, 15, 16, 17, 18)
-
-
19. A program product stored on computer readable storage medium for heterogeneously processing an image, the computer readable storage medium comprising program code for causing a computer system to:
-
receive a plurality of images in an image co-processor, the image co-processor comprising a plurality of special purpose engines (SPEs), wherein the plurality of images include images collectively and substantially simultaneously recorded by a plurality of image recordation mechanisms, each image recordation mechanism providing at least one of the plurality of images for acquisition by one of a plurality of image grabbers, each image grabber sending at least one of the plurality of images to one of a plurality of peripheral component interconnects, each of the plurality of peripheral component interconnects sending at least one of the plurality of images to a pure load balancer; distribute distinct portions of the plurality of images across the plurality of SPEs, wherein the distinct portions are different views of an object recorded at substantially a same time by at least two of the plurality of image recordation mechanisms; process the distinct portions of the plurality of images collectively and substantially simultaneously with the plurality of SPEs to determine image data associated with the plurality of images; provide at least one of the image data or the distinct portions of the plurality of images to a control processor to determine control information associated with the distinct portions of the plurality of images; and receive a selective off-load of at least one library function at a run time, wherein the at least one library function is written for a plurality of parallel multi-core processors, wherein the at least one library function supports the processing of the distinct portions of the plurality of images at the plurality of SPEs, and wherein the at least one library function is one of at least one algorithm, an optimization for a processor architecture, and a wrapper for a scripting language. - View Dependent Claims (20, 21, 22, 23, 24, 25, 26)
-
-
27. A method for deploying a system for heterogeneously processing an image, comprising:
-
providing a computer infrastructure being operable to; receive a plurality of images in an image co-processor, the image co-processor comprising a plurality of special purpose engines (SPEs), wherein the plurality of images include images collectively and substantially simultaneously recorded by a plurality of image recordation mechanisms, each image recordation mechanism providing at least one of the plurality of images for acquisition by one of a plurality of image grabbers, each image grabber sending at least one of the plurality of images to one of a plurality of peripheral component interconnects, each of the plurality of peripheral component interconnects sending at least one of the plurality of images to a pure load balancer; distribute distinct portions of the plurality of images across the plurality of SPEs, wherein the distinct portions are different views of an object recorded at substantially a same time by at least two of the plurality of image recordation mechanisms; process the distinct portions of the plurality of images collectively and substantially simultaneously with the plurality of SPEs to determine image data associated with the distinct portions of the plurality of images; and receive a selective off-load of at least one library function at a run time, wherein the at least one library function is written for a plurality of parallel multi-core processors, wherein the at least one library function supports the processing of the distinct portions of the plurality of images at the plurality of SPEs, and wherein the at least one library function is one of at least one algorithm, an optimization for a processor architecture, and a wrapper for a scripting language.
-
Specification