Structured grids and graph traversal for image processing
First Claim
1. A method of parallel processing an image comprising a plurality of nodes, the method comprising:
- (a) for each node of said image, determining whether to update said node based on propagation information from one or more neighboring nodes, wherein determining whether to update said node comprises verifying whether information can be propagated to said node from said one or more neighboring nodes based on one or more rules relating to balancing work load for a structure grid nodes;
(b) for each node of said image to update, updating said node by determining an order of information propagation, and propagating information from one or more neighboring nodes to said node in said determined order of information propagation;
(c) determining whether any of said plurality of nodes has been updated; and
(d) repeating (a), (b) and (c);
wherein at least one of (a) and (b) is performed in parallel for two or more of said plurality of nodes.
1 Assignment
0 Petitions
Accused Products
Abstract
An image represented by multiple nodes can be processed by determining whether information can be propagated to a node from another node (e.g., source node) of the image, thereby allowing significantly greater parallelism and scalability by taking advantage of multiprocessing or multi-core processors that are prevalent and widely available today. Conceptually, an image can be presented as a “structured grid” of multiple nodes (e.g., a structured grid of pixels of an image). In a “structured grid,” two or more of the nodes can determine whether to propagate information in parallel. In fact, each node of a “structured grid” can perform operations relating to propagation of information in parallel. This means that for an image of N pixels, it is possible to perform N operations in parallel. It is also possible to divide the processing of N operations for N pixels substantially equally between the number processors or processing cores available at a given time.
31 Citations
21 Claims
-
1. A method of parallel processing an image comprising a plurality of nodes, the method comprising:
-
(a) for each node of said image, determining whether to update said node based on propagation information from one or more neighboring nodes, wherein determining whether to update said node comprises verifying whether information can be propagated to said node from said one or more neighboring nodes based on one or more rules relating to balancing work load for a structure grid nodes; (b) for each node of said image to update, updating said node by determining an order of information propagation, and propagating information from one or more neighboring nodes to said node in said determined order of information propagation; (c) determining whether any of said plurality of nodes has been updated; and (d) repeating (a), (b) and (c); wherein at least one of (a) and (b) is performed in parallel for two or more of said plurality of nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A computing system, wherein the computing system is operable to:
-
(a) for each node of an image, determine whether to update said node by based on propagation information from one or more neighboring nodes, wherein determining whether to update said node comprises verifying whether information can be propagated to said node from said one or more neighboring nodes based on one or more rules relating to balancing work load for a structure grid node; (b) for each node of said image to update, update said node by determining an order of information propagation, and propagating said information from one or more neighboring nodes to said node in said determined order of information propagation; (c) determine whether any node has been updated; and (d) repeating (a), (b) and (c) until (c) determines that no node has been updated. - View Dependent Claims (18, 19)
-
-
20. A non-transitory computer readable storable medium storing at least computer executable code that when executed causes a computer to perform a computer-implemented method for processing an image comprising a plurality of nodes, the computer-implemented method comprising:
-
(a) for each node of said image, determining whether to update said node based on propagation information from one or more neighboring nodes, wherein determining whether to update said node comprises verifying whether information can be propagated to said node from said one or more neighboring nodes based on one or more rules relating to balancing work load for a structure grid node; (b) for each node of said image to update, updating said node by determining an order of information propagation, and propagating information from one or more neighboring nodes to said node in said determined order of information propagation; (c) determining whether any of said plurality of nodes has been updated; and (d) repeating (a), (b) and (c) until (c) determines that no node has been updated; wherein at least one of (a) and (b) is performed in parallel for two or more of said plurality of nodes. - View Dependent Claims (21)
-
Specification