Accelerating adaptive directional lifting based wavelet decomposition on GPU using CUDA

Because of high data dependency between ADL (adaptive directional lifting) steps, such as interpolation, directional prediction and update, the existing CUDA (Compute Unified Device Architecture) configuration method for traditional rectilinear transform is difficult to be used for ADL-based transform. This paper proposed a new configuration method so-called Slice for implementation of the ADL-based transforms on GPUs (Graphics Processing Units). Compared with the existing configuration for the conventional rectilinear lifting algorithm, the proposed method makes each step being handled by a different kernel both for horizontal and vertical passes to avoid unnecessary waiting time between threads. Meanwhile the interpolation and decomposition are executed in an interleaving manner on the pixel level. Moreover, the coalesced memory accesses are exploited to the greatest extent by reading and writing a slice of image data from or back to global memory. The results show that the Slice method overcomes the limitation of high data dependency between ADL steps, and achieves more than 10 times speedup compared to the optimized CPU implementation.

[1]  I. Daubechies,et al.  Factoring wavelet transforms into lifting steps , 1998 .

[2]  Francisco Tirado,et al.  Parallel Implementation of the 2D Discrete Wavelet Transform on Graphics Processing Units: Filter Bank versus Lifting , 2008, IEEE Transactions on Parallel and Distributed Systems.

[3]  Henk Corporaal,et al.  Compile-time GPU memory access optimizations , 2010, 2010 International Conference on Embedded Computer Systems: Architectures, Modeling and Simulation.

[4]  Feng Wu,et al.  Adaptive Directional Lifting-Based Wavelet Transform for Image Coding , 2007, IEEE Transactions on Image Processing.

[5]  Jos B. T. M. Roerdink,et al.  Accelerating Wavelet Lifting on Graphics Hardware Using CUDA , 2011, IEEE Transactions on Parallel and Distributed Systems.