Journal "Software Engineering"
a journal on theoretical and applied science and technology
ISSN 2220-3397

Vol. 7, no 2 2016 year

DOI: 10.17587/prin.7.61-74
High-Performance Region-Growing Algorithm for InSAR Phase Unwrapping Based on CUDA
V. P. Potapov, potapov@ict.sbras.ru, S. E. Popov, popov@ict.sbras.ru, Institute of Computational Technologies SB RAS, Novosibirsk, 630090, Russian Federation
Corresponding author: Semen E. Popov, Chief Scientist, Institute of Computational Technologies SB RAS, Novosibirsk, 630090, Russian Federation, e-mail: popov@ict.sbras.ru
Received on September 28, 2015
Accepted on November 19, 2015

In order to reduce the volume of the data exchange between the CPU and GPU developed an effective method of packing / unpacking indexes of pixels using bit sets. It was possible to reduce up to 64 times the amount of traffic due to the conversion of the index points to a state of the bit variable of type Long.

Was improved constructing growth ring algorithm. By associating a detailed point of the image with one thread of the multiprocessor graphics unit, it was possible for one GPU computation cycle to process more than 20,000 pixels. To reduce iterations of the loop for each thread in the warp the boundary conditions at the corresponding pixel-candidate for the phase unwrapping were added.

To reduce the operating time of the "merge regions" procedure, which generates the need to update the "ambiguity numbers" of the joining region at the overlapping points and numbers of regions in previously unwrapped, "paged-pinned memory" were used to deploy region numbers map to reduce the data transfer time between CPU and GPU memories.

The developed algorithm has been tested on real interferometric data and showed the improved time (up to 5) compared to the basic algorithm of program complex Exelis ENVI.

Keywords: parallel computing, CUDA, phase unwrapping, region-growing algorithm
pp. 61–74
For citation:
Potapov V. P., Popov S. E. High-Performance Region-Growing Algorithm for InSAR Phase Unwrapping Based on CUDA, Programmnaya Ingeneria, 2016, vol. 7, no. 2, pp. 61—74.