Share Email Print

Proceedings Paper

Multithreaded real-time 3D image processing software architecture and implementation
Author(s): Vikas Ramachandra; Kalin Atanassov; Milivoje Aleksic; Sergio R. Goma
Format Member Price Non-Member Price
PDF $14.40 $18.00
cover GOOD NEWS! Your organization subscribes to the SPIE Digital Library. You may be able to download this paper for free. Check Access

Paper Abstract

Recently, 3D displays and videos have generated a lot of interest in the consumer electronics industry. To make 3D capture and playback popular and practical, a user friendly playback interface is desirable. Towards this end, we built a real time software 3D video player. The 3D video player displays user captured 3D videos, provides for various 3D specific image processing functions and ensures a pleasant viewing experience. Moreover, the player enables user interactivity by providing digital zoom and pan functionalities. This real time 3D player was implemented on the GPU using CUDA and OpenGL. The player provides user interactive 3D video playback. Stereo images are first read by the player from a fast drive and rectified. Further processing of the images determines the optimal convergence point in the 3D scene to reduce eye strain. The rationale for this convergence point selection takes into account scene depth and display geometry. The first step in this processing chain is identifying keypoints by detecting vertical edges within the left image. Regions surrounding reliable keypoints are then located on the right image through the use of block matching. The difference in the positions between the corresponding regions in the left and right images are then used to calculate disparity. The extrema of the disparity histogram gives the scene disparity range. The left and right images are shifted based upon the calculated range, in order to place the desired region of the 3D scene at convergence. All the above computations are performed on one CPU thread which calls CUDA functions. Image upsampling and shifting is performed in response to user zoom and pan. The player also consists of a CPU display thread, which uses OpenGL rendering (quad buffers). This also gathers user input for digital zoom and pan and sends them to the processing thread.

Paper Details

Date Published: 2 February 2011
PDF: 9 pages
Proc. SPIE 7871, Real-Time Image and Video Processing 2011, 78710A (2 February 2011); doi: 10.1117/12.872594
Show Author Affiliations
Vikas Ramachandra, Qualcomm Inc. (United States)
Kalin Atanassov, Qualcomm Inc. (United States)
Milivoje Aleksic, Qualcomm Inc. (United States)
Sergio R. Goma, Qualcomm Inc. (United States)

Published in SPIE Proceedings Vol. 7871:
Real-Time Image and Video Processing 2011
Nasser Kehtarnavaz; Matthias F. Carlsohn, Editor(s)

© SPIE. Terms of Use
Back to Top