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.
Similar content being viewed by others
References
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
Babenko P, Shah M (2008) MinGPU: a minimum GPU library for computer vision. Real-Time Image Process 3(4):255–268
Bradski G, Kaehler A (2008) Learning OpenCV: computer vision with the OpenCV library. O’Reilly
CAPS Enterprise: HMMP Workbench. http://www.caps-entreprise.com/index.php
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
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
Gamma E, Helm R, Johnson R, Vlissides J (1994) Design patterns: elements of reusable object-oriented software. Addison-Wesley, Reading
General Purpose GPU Programming (GPGPU) Website. http://www.gpgpu.org
Hou Q, Zhou K, Guo B (2008) BSGP: bulk-synchornous GPU programming. ACM Trans Graph 27(3):1–12
Jansen T (2007) GPU+ +, an embedded GPU development system for general-purpose computations. Ph.D. Thesis, Technical University Munich
Khronos Group: Open computing language. http://www.khronos.org/opencl/
Kirk D, Hwu W (2010) Programming massively parallel processors: a hands-on approach. Morgan Kaufmann, San Mateo
Kuck R, Wesche G (2009) A framework for object-oriented shader design. In: Proc. intl. symposium on advances in visual computing, pp 1019–1030
McCool M, Toit SD, Popa T, Chan B, Moule K (2004) Shader algebra. ACM Trans Graph 23(3):784–792
Membarth R, Lokhmotov A, Teich J (2011) Generating GPU code from a high-level representation for image processing kernels. In: HPPC 2011, p 28
Nevatia R, Babu KR (1980) Linear feature extraction and description. Comput Graph Image Process 13(3):257–269
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
NVIDIA NPP Library. http://www.nvidia.com/object/npp.html
OpenCV GPU. http://opencv.willowgarage.com/wiki/OpenCV_GPU
Owens JD, Houston M, Luebke D, Green S, Stone JE, Phillips JC (2008) GPU computing. Proc IEEE 96(5):879–899
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
Raspe M (2009) GPU-assisted diagnosis and visualization of medical volume data. Ph.D. Thesis, University of Koblenz and Landau
Rost R (2006) OpenGL shading language. Addison-Wesley, Reading
The Portland Group: PGI accelerator compilers. http://www.pgroup.com/resources/accel.htm
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
Corresponding author
Appendix: Algorithm listings
Appendix: Algorithm listings
Rights 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
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11042-013-1440-x