Skip to main content
Log in

Vectorization and parallelization of 2-D wavelet lifting

  • Original Research Paper
  • Published:
Journal of Real-Time Image Processing Aims and scope Submit manuscript

Abstract

With the start of the widespread use of discrete wavelet transform in image processing, the need for its efficient implementation is becoming increasingly more important. This work presents several novel SIMD-vectorized algorithms of 2-D discrete wavelet transform, using a lifting scheme. At the beginning, a stand-alone core of an already known single-loop approach is extracted. This core is further simplified by an appropriate reorganization of operations. Furthermore, the influence of the CPU cache on a 2-D processing order is examined. Finally, SIMD-vectorizations and parallelizations of the proposed approaches are evaluated. The best of the proposed algorithms scale almost linearly with the number of threads. For all of the platforms used in the tests, these algorithms are significantly faster than other known methods, as shown in the experimental sections of the paper.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3
Fig. 4
Fig. 5
Fig. 6
Fig. 7
Fig. 8
Fig. 9
Fig. 10
Fig. 11
Fig. 12
Fig. 13
Fig. 14
Fig. 15
Fig. 16
Fig. 17
Fig. 18
Fig. 19
Fig. 20
Fig. 21
Fig. 22

Similar content being viewed by others

Notes

  1. The code can be downloaded from

    http://www.fit.vutbr.cz/research/prod/?id=211.

  2. It is also possible to use 2 MiB Huge or even 1 GiB Large pages. This possibility is not studied in this paper.

  3. Using _MM_TRANSPOSE4_PS macro.

  4. The __m128 data type.

References

  1. Barina, D., Zemcik, P.: Minimum memory vectorisation of wavelet lifting. In: Advanced Concepts for Intelligent Vision Systems (ACIVS), Springer, London, Lecture Notes in Computer Science (LNCS) 8192, pp. 91–101 (2013). http://www.fit.vutbr.cz/research/view_pub.php?id=10420

  2. Barina, D., Zemcik, P.: Diagonal vectorisation of 2-D wavelet lifting. IEEE Int. Conf. Image Process. 2014 (ICIP 2014), pp. 2978–2982. France, Paris (2014). http://www.fit.vutbr.cz/research/view_pub.php?id=10632

    Google Scholar 

  3. Chatterjee, S., Brooks, C.D.: Cache-efficient wavelet lifting in JPEG 2000. In: Proceedings of the IEEE International Conference on Multimedia and Expo (ICME), vol 1, pp. 797–800 (2002). doi:10.1109/ICME.2002.1035902

  4. Chaver, D., Tenllado, C., Pinuel, L., Prieto, M., Tirado, F.: 2-D wavelet transform enhancement on general-purpose microprocessors: memory hierarchy and SIMD parallelism exploitation. In: Sahni, S., Prasanna, V.K., Shukla, U. (eds) High Performance Computing HiPC 2002, Lecture Notes in Computer Science, vol 2552, Springer, Berlin, pp. 9–21 (2002). doi:10.1007/3-540-36265-7_2

  5. Chaver, D., Tenllado, C., Pinuel, L., Prieto, M., Tirado, F.: Vectorization of the 2D wavelet lifting transform using SIMD extensions. In: Proceedings of the International Parallel and Distributed Processing Symposium (IPDPS), p. 8 (2003a). doi:10.1109/IPDPS.2003.1213416

  6. Chaver, D., Tenllado, C., Pinuel, L., Prieto, M., Tirado, F.: Wavelet transform for large scale image processing on modern microprocessors. In: Palma, J.M.L.M., Sousa, A.A., Dongarra, J., Hernández, V. (eds) High Performance Computing for Computational Science VECPAR 2002, Lecture Notes in Computer Science, vol. 2565, Springer, Berlin, pp. 549–562 (2003b). doi:10.1007/3-540-36569-9_37

  7. Chrysafis, C., Ortega, A.: Minimum memory implementations of the lifting scheme. Proceedings of SPIE, Wavelet Applications in Signal and Image Processing VIII, SPIE 4119, 313–324 (2000). doi:10.1117/12.408615

    Google Scholar 

  8. Cohen, A., Daubechies, I., Feauveau, J.C.: Biorthogonal bases of compactly supported wavelets. Commun. Pure App. Math. 45(5), 485–560 (1992). doi:10.1002/cpa.3160450502

    Article  MathSciNet  MATH  Google Scholar 

  9. Daubechies, I., Sweldens, W.: Factoring wavelet transforms into lifting steps. J. Fourier Anal. Appl. 4(3), 247–269 (1998). doi:10.1007/BF02476026

    Article  MathSciNet  MATH  Google Scholar 

  10. Drepper, U.: What every programmer should know about memory (2007). http://www.akkadia.org/drepper/cpumemory.pdf

  11. Kutil, R.: A single-loop approach to SIMD parallelization of 2-D wavelet lifting. In: Proceedings of the 14th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing (PDP), pp. 413–420 (2006). doi: 10.1109/PDP.2006.14

  12. Mallat, S.G.: A theory for multiresolution signal decomposition: the wavelet representation. IEEE Trans. Pattern Anal. Mach. Intell. 11(7), 674–693 (1989). doi:10.1109/34.192463

    Article  MATH  Google Scholar 

  13. Mallat, S.: A Wavelet Tour of Signal Processing The Sparse Way With contributions from Gabriel Peyre, 3rd edn. Academic Press, London (2009)

    MATH  Google Scholar 

  14. Meerwald, P., Norcen, R., Uhl, A.: Cache issues with JPEG2000 wavelet lifting. In: Visual Communications and Image Processing (VCIP), SPIE, vol 4671, pp. 626–634 (2002)

  15. Shahbahrami, A., Juurlink, B., Vassiliadis, S.: Improving the memory behavior of vertical filtering in the discrete wavelet transform. In: Proceedings of the 3rd conference on Computing frontiers (CF), ACM, pp. 253–260, (2006). doi:10.1145/1128022.1128056

  16. Sweldens, W.: The lifting scheme: a custom-design construction of biorthogonal wavelets. Appl. Comput. Harmon. Anal. 3(2), 186–200 (1996)

    Article  MathSciNet  MATH  Google Scholar 

  17. Tenllado, C., Setoain, J., Prieto, M., Pinuel, L., Tirado, F.: Parallel implementation of the 2D discrete wavelet transform on graphics processing units: filter bank versus lifting. IEEE Trans. Parallel Distrib.Syst. 19(3), 299–310 (2008). doi:10.1109/TPDS.2007.70716

    Article  Google Scholar 

  18. van der Laan, W.J., Jalba, A.C., Roerdink, J.B.T.M.: Accelerating wavelet lifting on graphics hardware using CUDA. IEEE Trans. Parallel Distrib. Syst. 22(1), 132–146 (2011). doi:10.1109/TPDS.2010.143

    Article  Google Scholar 

Download references

Acknowledgments

This work has been supported by the EU FP7-ARTEMIS project IMPART (Grant No. 316564), the national TAČR project RODOS (no. TE01020155) and the IT4Innovations Centre of Excellence (no. CZ.1.05/1.1.00/02.0070).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to David Barina.

Rights and permissions

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Barina, D., Zemcik, P. Vectorization and parallelization of 2-D wavelet lifting. J Real-Time Image Proc 15, 349–361 (2018). https://doi.org/10.1007/s11554-015-0486-6

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11554-015-0486-6

Keywords

Navigation