Skip to main content
Log in

Object oriented framework for real-time image processing on GPU

  • Published:
Multimedia Tools and Applications Aims and scope Submit manuscript

Abstract

General purpose computation on graphics processing unit (GPGPU) provides a significant gain in terms of the processing time compared with CPU. Images are particularly good subjects for massive parallel implementations on GPU. Thus, the processing time can be improved for computer vision and image/video processing algorithms. However, GPGPU has a fairly complex integration process in a framework and they evolve very rapidly. In this paper, we present a framework that provides all the desired primitives related to GPGPU-based image processing algorithms, which makes it easy and straightforward for the user to exploit. The proposed framework is object-oriented, and it utilizes design patterns. The user can benefit from all the advantages of object-oriented programming, such as code reusability/extensibility, flexibility, information hiding, and complexity hiding. This makes it possible to rapidly integrate new technologies and functionality as they appear.

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

Similar content being viewed by others

References

  1. Allusse Y, Horain P, Agarwal A, Saipriyadarshan C (2008) GpuCV: an opensource GPU-accelerated framework for image processing and computer vision. In: Proc. of the 16th ACM international conference on multimedia, pp 1089–1092

  2. Babenko P, Shah M (2008) MinGPU: a minimum GPU library for computer vision. Real-Time Image Process 3(4):255–268

    Article  Google Scholar 

  3. Bradski G, Kaehler A (2008) Learning OpenCV: computer vision with the OpenCV library. O’Reilly

  4. CAPS Enterprise: HMMP Workbench. http://www.caps-entreprise.com/index.php

  5. Chang JY, Park H, Park IK, Lee KM, Lee SU (2011) Gpu-friendly multi-view stereo reconstruction using surfel representation and graph cuts. Comput Vis Image Underst 115(5):620–634

    Article  Google Scholar 

  6. Fung J, Mann S, Aimone C (2005) OpenVIDIA: parallel GPU computer vision. In: Proc. of the 13th annual ACM international conference on multimedia, pp 849–852

  7. Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading

    Google Scholar 

  8. General Purpose GPU Programming (GPGPU) Website. http://www.gpgpu.org

  9. Hou Q, Zhou K, Guo B (2008) BSGP: bulk-synchornous GPU programming. ACM Trans Graph 27(3):1–12

    Article  Google Scholar 

  10. Jansen T (2007) GPU+ +, an embedded GPU development system for general-purpose computations. Ph.D. Thesis, Technical University Munich

  11. Khronos Group: Open computing language. http://www.khronos.org/opencl/

  12. Kirk D, Hwu W (2010) Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, San Mateo

    Google Scholar 

  13. Kuck R, Wesche G (2009) A framework for object-oriented shader design. In: Proc. intl. symposium on advances in visual computing, pp 1019–1030

  14. McCool M, Toit SD, Popa T, Chan B, Moule K (2004) Shader algebra. ACM Trans Graph 23(3):784–792

    Article  Google Scholar 

  15. Membarth R, Lokhmotov A, Teich J (2011) Generating GPU code from a high-level representation for image processing kernels. In: HPPC 2011, p 28

  16. Nevatia R, Babu KR (1980) Linear feature extraction and description. Comput Graph Image Process 13(3):257–269

    Article  Google Scholar 

  17. Nguyen V, Deeds-Rubin S, Tan T, Boehm B (2007) A SLOC coding standard. In: Proc. international annual forum on COCOMO and systems/software cost modeling, pp 1–16

  18. NVIDIA NPP Library. http://www.nvidia.com/object/npp.html

  19. OpenCV GPU. http://opencv.willowgarage.com/wiki/OpenCV_GPU

  20. Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillips JC (2008) GPU computing. Proc IEEE 96(5):879–899

    Article  Google Scholar 

  21. Park IK, Singhal N, Lee MH, Cho S, Kim CW (2011) Design and performance evaluation of image processing algorithms on GPUs. IEEE Trans Parallel Distrib Syst 22(1):91–104

    Article  Google Scholar 

  22. Raspe M (2009) GPU-assisted diagnosis and visualization of medical volume data. Ph.D. Thesis, University of Koblenz and Landau

  23. Rost R (2006) OpenGL shading language. Addison-Wesley, Reading

    Google Scholar 

  24. The Portland Group: PGI accelerator compilers. http://www.pgroup.com/resources/accel.htm

Download references

Acknowledgements

This work was supported by the Industrial Strategic Technology Development Program (10041664, The Development of Fusion Processor based on Multi-Shader GPU) funded by the Ministry of Knowledge Economy (MKE, Korea).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to In Kyu Park.

Appendix: Algorithm listings

Appendix: Algorithm listings

figure e
figure f
figure g
figure h

Rights and permissions

Reprints and permissions

About this article

Cite this article

Seiller, N., Williem, Singhal, N. et al. Object oriented framework for real-time image processing on GPU. Multimed Tools Appl 70, 2347–2368 (2014). https://doi.org/10.1007/s11042-013-1440-x

Download citation

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11042-013-1440-x

Keywords

Navigation