Heterogeneous image processing system
First Claim
1. A heterogeneous image processing system, comprising:
- an image co-processor comprising a plurality of distinct multi-core processors (MCPs), 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;
distribute distinct portions of the plurality of images from each of the image grabbers across the plurality of MCPs, 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; and
collectively and substantially simultaneously process the distinct portions of the plurality of images at the plurality of MCPs 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 the plurality of MCPs, wherein the at least one library function supports the processing of the distinct portions of the plurality of images, 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.
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 multi-core processor system. To this extent, a multi-core processor 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 referred to herein as an image co-processor that comprises (among other things) a plurality of multi-core processors (MCPs) that work to process multiple images in an accelerated fashion.
124 Citations
27 Claims
-
1. A heterogeneous image processing system, comprising:
an image co-processor comprising a plurality of distinct multi-core processors (MCPs), 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; distribute distinct portions of the plurality of images from each of the image grabbers across the plurality of MCPs, 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; and collectively and substantially simultaneously process the distinct portions of the plurality of images at the plurality of MCPs 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 the plurality of MCPs, wherein the at least one library function supports the processing of the distinct portions of the plurality of images, 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 (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 multi-core processors (MCPs), 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; distributing distinct portions of the plurality of images from each of the image grabbers across the plurality of MCPs, 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 MCPs 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 the plurality of MCPs, wherein the at least one library function supports the processing of the distinct portions of the plurality of images, 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 (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 multi-core processors (MCPs), 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; distribute distinct portions of the plurality of images from each of the image grabbers across the plurality of MCPs, 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 MCPs 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 the plurality of MCPs 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 (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 multi-core processors (MCPs), 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; distribute distinct portions of the plurality of images from each of the image grabbers across the plurality of MCPs, 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 MCPs 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 the plurality of MCPs, wherein the at least one library function supports the processing of the distinct portions of the plurality of images, 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