A Hybrid Shared-Memory Parallel Max-Tree Algorithm for Extreme Dynamic-Range Images
Max-trees, or component trees, are graph structures that represent the connected components of an image in a hierarchical way. Nowadays, many application fields rely on images with high-dynamic range or floating point values. Efficient sequential algorithms exist to build trees and compute attributes for images of any bit depth. However, we show that the current parallel algorithms perform poorly already with integers at bit depths higher than 16 bits per pixel. We propose a parallel method combining the two worlds of flooding and merging max-tree algorithms. First, a <italic>pilot</italic> max-tree of a quantized version of the image is built in parallel using a flooding method. Later, this structure is used in a parallel leaf-to-root approach to compute efficiently the final max-tree and to drive the merging of the sub-trees computed by the threads. We present an analysis of the performance both on simulated and actual 2D images and 3D volumes. Execution times are about <inline-formula><tex-math notation="LaTeX"> $20\times$</tex-math><alternatives><inline-graphic xlink:href="moschini-ieq1-2689765.gif"/></alternatives> </inline-formula> better than the fastest sequential algorithm and speed-up goes up to <inline-formula> <tex-math notation="LaTeX">$30-40$</tex-math><alternatives><inline-graphic xlink:href="moschini-ieq2-2689765.gif"/> </alternatives></inline-formula> on 64 threads.