• DocumentCode
    1540963
  • Title

    Fast Morphological Image Processing Open-Source Extensions for GPU Processing With CUDA

  • Author

    Thurley, Matthew J. ; Danell, Victor

  • Author_Institution
    Dept. of Comput. Sci., Electr. & Space Eng., Lulea Univ. of Technol., Lulea, Sweden
  • Volume
    6
  • Issue
    7
  • fYear
    2012
  • Firstpage
    849
  • Lastpage
    855
  • Abstract
    GPU architectures offer a significant opportunity for faster morphological image processing, and the NVIDIA CUDA architecture offers a relatively inexpensive and powerful framework for performing these operations. However, the generic morphological erosion and dilation operation in the CUDA NPP library is relatively naive, and performance scales expensively with increasing structuring element size. The objective of this work is to produce a freely available GPU capability for morphological operations so that fast GPU processing can be readily available to those in the morphological image processing community. Open-source extensions to CUDA (hereafter referred to as LTU-CUDA) have been produced for erosion and dilation using a number of structuring elements for both 8 bit and 32 bit images. Support for 32 bit image data is a specific objective of the work in order to facilitate fast processing of image data from 3D range sensors with high depth precision. Furthermore, the implementation specifically allows scalability of image size and structuring element size for processing of large image sets. Images up to 4096 by 4096 pixels with 32 bit precision were tested. This scalability has been achieved by forgoing the use of shared memory in CUDA multiprocessors. The vHGW algorithm for erosion and dilation independent of structuring element size has been implemented for horizontal, vertical, and 45 degree line structuring elements with significant performance improvements over NPP. However, memory handling limitations hinder performance in the vertical line case providing results not independent of structuring element size and posing an interesting challenge for further optimisation. This performance limitation is mitigated for larger structuring elements using an optimised transpose function, which is not default in NPP, and applying the horizontal structuring element. LTU-CUDA is an ongoing project and the code is freely available at https://github.com/VictorD/LTU-CUDA.
  • Keywords
    graphics processing units; image processing; image sensors; parallel architectures; public domain software; shared memory systems; 3D range sensors; CUDA NPP library; CUDA multiprocessors; GPU architectures; GPU processing; LTU-CUDA; NVIDIA CUDA architecture; dilation operation; fast morphological image processing; generic morphological erosion; horizontal structuring element; open-source extensions; shared memory; structuring element size; transpose function; vHGW algorithm; Application software; Graphics processing unit; Image processing; Libraries; Message systems; Signal processing algorithms; Timing; CUDA; GPU; Morphological image processing; NVIDIA; dilation; erosion;
  • fLanguage
    English
  • Journal_Title
    Selected Topics in Signal Processing, IEEE Journal of
  • Publisher
    ieee
  • ISSN
    1932-4553
  • Type

    jour

  • DOI
    10.1109/JSTSP.2012.2204857
  • Filename
    6218162