STRUCTURED GRIDS AND GRAPH TRAVERSAL FOR IMAGE PROCESSING
First Claim
1. In a computing system, a computer-implemented method of parallel processing an image represented by multiple nodes, by propagating information between one or more of the nodes, the computer-implemented method comprising:
- (a) for each node of the image, determining whether to update the node by propagating information from its neighboring nodes to the node;
(b) for each node of the image, updating the node by propagating the information from one or more of its neighboring nodes when the determining (a) determines to update the node;
(c) determining whether any of the nodes has been updated by the updating (b); and
repeating (a), (b) and (c) wherein at least the determining (a) of whether to update the node and/or the updating (b) of the node are performed in parallel for two or more of the 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.
-
Citations
21 Claims
-
1. In a computing system, a computer-implemented method of parallel processing an image represented by multiple nodes, by propagating information between one or more of the nodes, the computer-implemented method comprising:
-
(a) for each node of the image, determining whether to update the node by propagating information from its neighboring nodes to the node; (b) for each node of the image, updating the node by propagating the information from one or more of its neighboring nodes when the determining (a) determines to update the node; (c) determining whether any of the nodes has been updated by the updating (b); and repeating (a), (b) and (c) wherein at least the determining (a) of whether to update the node and/or the updating (b) of the node are performed in parallel for two or more of the nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 21)
-
-
16. A computing system, wherein the computing system is operable to:
-
(a) for each node of the image, determining whether to update the node by propagating information from its neighboring nodes to the node; (b) for each node of the image, updating the node by propagating the information from one or more of its neighboring nodes when the determining (a) determines to update the node; (c) determining whether any of the nodes has been updated by the updating (b); and repeating (a), (b) and (c) until the determining (c) determines that no node has been updated. - View Dependent Claims (17, 18)
-
-
19. A 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 represented by multiple nodes, by propagating information between one or more of the nodes, where the computer-implemented method comprising:
-
(a) for each node of the image, determining whether to update the node by propagating information from its neighboring nodes to the node; (b) for each node of the image, updating the node by propagating the information from one or more of its neighboring nodes when the determining (a) determines to update the node; (c) determining whether any of the nodes has been updated by the updating (b); and repeating (a), (b) and (c) until the determining (c) determines that no node has been updated, wherein at least the determining (a) of whether to update the node and/or the updating (b) of the node are performed in parallel for two or more of the nodes. - View Dependent Claims (20)
-
Specification