Parallel N-Dimensional Exact Signed Euclidean Distance Transform

Staubs, Robert1*,Fedorov, Andriy,Linardakis, Leonidas,Dunton, Benjamin,Chrisochoides, Nikos
1.College of William and Mary
Abstract

Abstract

The computation speed for distance transforms becomes important in a wide variety of image processing applications. Current ITK library filters do not see any benefit from a multithreading environment. We introduce a three-dimensional signed parallel implementation of the exact Euclidean distance transform algorithm developed by Maurer et al. with a theoretical complexity of O(n/p) for n voxels and p threads. Through this parallelization and efficient use of data structures we obtain approximately 3 times mean speedup on standard tests on a 4-processor machine compared with the current ITK exact Euclidean distance transform filter.

Keywords

parallel distance transformdistance transformEuclidean distance transform
Manuscript
Source Code and Data

Source Code and Data

SourceCMakeLists.txt2 KBIJMacros.txt3.8 KBImageCompare.cxx8 KBSignedMaurerParallelDistanceMapImageFilterTest.cxx1.4 KBcube_32.mhd278 Bcube_32.raw128 KBcube_32_out.mhd299 Bcube_32_out.raw128 KBitkSignedMaurerDistanceMapImageFilter.h5.6 KBitkSignedMaurerDistanceMapImageFilter.txx7.5 KBitkSignedMaurerParallelDistanceMapImageFilter.h8.5 KBitkSignedMaurerParallelDistanceMapImageFilter.txx27.8 KBsphere_32.mhd280 Bsphere_32.raw128 KBsphere_32_out.mhd304 Bsphere_32_out.raw128 KB

Select a file to preview

Reviews

Reviews

null null

Thursday 12 October 2006

Summary: The authors implement a parallelized 3-D version of Maurer\\\\\\\'s signed distance transform algorithm. This is compared with the existing Maurer distance transform.

Hypothesis: NA

Evidence: Parallelization for compatible algorithms should obviously execute much faster. The authors do an excellent job of demonstrating this by not only comparing times with the existing Maurer ITK filter in the paper but also creating a test executable in which the number of threads can be selected and the algorithm can be timed.

Open Science: Since this is an ITK filter, the source code and paper all adhere to the expectations of open science.

Reproducibility: I was able to download the authors\\\\\\\’ work, run it, and reproduce the results they achieved.

Use of Open Source Software: ITK is used.

Open Source Contributions: Using the code was simple as the explanation was clear and implemented within the ITK framework.

Code Quality: Seems to be ITK conforming. Did the authors pass the code through the KWSYS for checking code conformability with ITK standards?

Applicability to other problems: The signed distance transform has widespread applicability. Optimizing for speed is clearly advantageous.

Suggestions for future work: Please extend the method to n-D (hence the four star rating).

Requests for additional information from authors: The only recommendation for additional information is that the authors should include 2-D slices of the 3-D images on which they ran their tests.

Additional Comments:

Gaetan Lehmann

Sunday 17 September 2006

Summary: The author presents a new parallel implementation of the SignedMaurerDistanceMapImageFilter, and show an important increase of performance on SMP computers

Evidence: The author show some figures to prove the performance gain with several processors, and the linear complexity of the algorithm

Open Science: Source code is provided, but some programs are missing to reproduce the results shown in the paper

Reproducibility: I was not able to build the project. The PROJECT_NAME() macro is called with a wrong number of arguments, and some files (itkMaurerSignedDistanceTransformImageFilter.h) seems to not has been package in the archive. Also, no tests are provided (with ADD_TEST()) to easily validate the filter, and the program used to get the execution time is not provided.

Use of Open Source Software: ITK, ITK, ITK

Open Source Contributions: Source code is provide, as well as instruction oabout how to use it and examples

Code Quality: Code quality seems quite good, but a quick look show several problems:

  • the use of exit() in the code instead of throwing an exception
  • display error message to std::err make the error invisible to everyone use the program without running it from a terminal
  • the limitation to dimension 3 while nothing seems to limit the algorithm to this dimension make the filter hardly acceptable for ITK, where dimension independance is a main feature
  • the filter doesn\\\'t use the standard itk threading system

Applicability to other problems: As the current Maurer distance transform, this filter may be used in many cases. The parallel implementation will give important increase of performance on SMP computers - computers which are more and more common with the democratisation of dual core processors

Suggestions for future work:

  • fix the build
  • implement the filter for any dimension
  • detail in the article why the standard ITK threading method can\\\'t be used, and how it is implemented in the filter
  • provide tests with ADD_TEST()
  • provide the program used to measure the threading performance
  • use the current Maurer filter name: the user should be able to replace the current filter by the new one in its ITK sources without problem. The result must be the same, only the implementation is different.

Additional Comments: Threading support is going to be an important feature in the near future with the dual core processors. That\'s nice to see some contributions of parallel algorithms.