We have constructed a simple color electroholography system that has excellent cost performance. It uses a graphics processing unit (GPU) and a liquid crystal display (LCD) projector. The structure of the GPU is suitable for calculating computer-generated holograms (CGHs). The calculation speed of the GPU is approximately 1,500 times faster than that of a central processing unit. The LCD projector is an inexpensive, high-performance device for displaying CGHs. It has high-definition LCD panels for red, green and blue. Thus, it can be easily used for color electro-holography. For a three-dimensional object consisting of 1,000 points, our system succeeded in real-time color holographic reconstruction at rate of 30 frames per second.
©2009 Optical Society of America
Electroholography is one technique for realizing three-dimensional (3-D) television . It achieves animation by using electronic devices such as liquid-crystal displays (LCDs) to display a computer-generated hologram (CGH). Electroholography is considered an ideal 3-D display technology. However, it suffers from two major problems that hinder its development. Holography records a 3-D image by the interference of light and reconstructs a 3-D image using the diffraction of light. Therefore, it requires a display device that has large display area and a narrow pixel interval to achieve a sufficiently large image size and viewing angle. Unfortunately, there is no such high-definition electronic display device currently available. This is the first problem. On the other hand, computational complexity increases as hologram definition increases. Thus, the second problem is that holography requires the development of a super-high-speed system for calculating CGHs for practical applications.
Algorithms for high-speed calculation of CGHs have been developed that are tens of times faster than the direct calculation algorithm[2, 3, 4]. In addition, by using special-purpose hardware for holography, we have increased calculation rates by more than a factor of 1,000 when using high-speed algorithms. As a result, we achieved real-time (i.e., over 30 fps) reconstruction of a 3-D image that consists of about 10,000 points; the reconstructed image was about 3 cm3 in size. However, development of special-purpose hardware is time consuming and expensive, and requires considerable technical expertise. Simpler techniques are anticipated to advance fundamental research in this field. Therefore, we have been considering graphics processing units (GPUs), which have undergone rapid development in recent years. GPUs have built-in parallel processors and are suitable for calculating CGHs. We implemented a CGH calculation algorithm in a GPU by a shading language and using a graphics application programming interface (API). As a result, we achieved a significantly higher speed using a GPU than by using a CPU in 2006[6, 7]. Recently, GPU programming has become easier because an integrated development environment for GPU is offered by a GPU vendor, and a GPU programmer does not need to be conscious of shader or graphics API. Now, GPU is used for the technique of various CGH calculation[8, 9]. In this study, we calculate a CGH using the Compute Unified Device Architecture (CUDA), which is an integrated development environment produced by NVIDIA Company. We selected CUDA after confirming that we perform development easily and that we could obtain a sufficiently high computing speed for research.
On the other hand, electronic display devices are anticipated to advance through the development of high-definition reflective LCDs. They have been mainly developed for LCD projectors. Therefore, we used an LCD projector as the optical system for reconstruction. Color LCD projectors commonly contain three LCDs, so they can be used to reconstruct a color image. We confirmed this using a color LCD projector.
In this study, we constructed a simple and inexpensive real-time electroholographic color reconstruction system by combining a GPU with an LCD projector.
This paper is structured as follows. In section 2, we describe GPU programming in CUDA and the implemented CGH algorithm. In section 3, we briefly explain the electroholographic color reconstruction system that uses an LCD projector. In section 4, we evaluate this system. In the final section, we discuss our results and propose further studies.
2. GPU programming by CUDA for CGH
2.1. Calculation using the Fresnel approximation
The pixel interval of the present electronic display device is not sufficiently small for observe a reconstruction image from the wide range. Therefore, we employed a parallel beam for the reference light of this system and used an algorithm for calculating an in-line hologram on the assumption that the light is perpendicularly incident on the hologram. In this case, the light intensity of a hologram point is calculated by a simple numerical computation [6, 10]:
Here, the parameters x, y and z are the horizontal, vertical and depth components, and the indices α and j indicate the hologram and the object, respectively. N is the number of points that compose a 3-D object, Aj is the intensity of the object point and λ is the wavelength of the reference light. We implement Eq. (1) in this study. Henceforth, calculations by Eq. (1) are called Fresnel approximate calculations.
2.2. GPU programming
A unified development environment of GPU called CUDA was released in 2007. Unlike conventional GPGPU, in CUDA the programmer does not need to be conscious of graphics. There are two types of conventional shaders: vertex shaders and pixel shaders. These two shaders have been unified and are called stream processors in the new GPU for CUDA. In GPU for CUDA, we can use programming languages such as Cg or HLSL as programmer’s workbench. The advantages of CUDA over Cg and HLSL is that it allows source code to be written in a C-like language, and the memory on the GPU board can be used easily, facilitating software development.
2.3. Implementing the CGH algorithm by CUDA
The calculation flow for CGH by the GPU is as follows. First, the CPU reads the coordinate data of a virtual object from the main memory. The GPU stores this coordinate data in the global memory of the off-chip memory on the GPU board. Access to off-chip memory is generally slow compared with access to on-chip memory. However, access to the coordinate data of the virtual object, which is stored in the global memory, occurs frequently when we calculate in parallel with a stream processor in the GPU using Eq. (1). Therefore, GPU stores coordinate data of the virtual object in the global memory of the on-chip memory (called the shared memory) to speed up access to the data. The GPU assigns the stream processor for each pixel on a hologram phase and calculates the light intensity (Eq. (1)) in parallel. The light intensity each pixel is distributed between “ 0” and “255”, it is stored in the global memory. Finally, the calculation result is saved as a CGH in the main memory of the PC or it is directly outputted to a display from the global memory.
The calculation by the GPU involves the following two steps.
• loop unrolling
• coalesced access
Loop unrolling is technique to expand simple repetition processing. It reduces the number of loop processing. In addition, it improves the efficiency of the pipeline. Moreover, if memory is adjacent, it can access the global memory by a lump in multiple threads; this is called coalesced access. We secured threads with a size of 16×16 and performed memory access by a lump by coalesced access. By employing these methods, we accelerated the calculation of a CGH by a factor of about two compared with when these methods were not used.
3. An electroholography reconstruction system using an LCD projector
The technique described below is proposed for reconstructing a color hologram. In this study, we use method 1 in conformity with the LCD projector that is used.
1. A method using three hologram display panels and three reference lights (RGB).
2. Time division switching method for changing the three reference lights (RGB) that uses an electronic shutter and one hologram display panel.
3. A method that simultaneously moves the reference light (RGB) and irradiates the reference light on one hologram display panel.
In this study, we used a Power Projector SX50 (Canon Inc.) in the optical system for reconstruction. Figure 2 shows a photograph of the reconstruction system and Fig. 3 shows the optical system inside the LCD projector.
In Fig. 3, M1 and M2 are mirrors, DM is a dichroic mirror, PBS1, PBS2 and PBS3 are prism beam splitters, WP1 and WP2 are polarizing filters, which change the polarization state of the light. Figure3 shows the optical system for red frame that is housed inside the LCD projector. The LCD in the LCD projector (JVC Corp.) is a DILA-SX070 (Victor Company of Japan, Ltd.). The number of the pixels is 1400× 1050, the display area is 14.6 mm×10.9 mm, and the pixel interval is 10.4µm. This LCD does not correspond to a phase modulation and corresponds only to an amplitude modulation.
We remove the original light and instead use a white light emitting diode (LED) (NSPW500CS, Nichia Corp.) as the reference light. The reference light is converted into parallel light using a pinhole filter and a collimating lens and it is then irradiated inside the LCD projector. The LCD projector contains an optical system that divides the white light into the three primary colors (R, G and B). This divided light is irradiated on each LCD (LCD_R, LCD_G and LCD_B). Color holography can be easily realized using these three LCD panels. To develop homemade versions of these optical systems would require considerable expertise and expense, whereas using a commercial LCD projector is easier and less expensive.
In this study, we generate a CGH to produce a reconstructed image at a position 1 m from the hologram. Therefore, we inserted a field lens (focal length: 30 cm) 1 m from the hologram to observe a real image. An observer can view the reconstructed image by looking at the diffracted light at a position 30 cm from this field lens.
Table 2 shows a comparison of the calculation times for a CPU and a GPU using Eq. (2). The size of the CGH is 1,400×1,050 pixels; this is the same size as the LCD that we used.
The specifications of the PC are as follows: Intel Core 2 Duo 2.66 GHz (We used one core for the calculation), 2.0 GB of memory, Linux operating system (Fedora 8, kernel-2.6.23) and Intel C++ Compiler 10.1. In addition, we used the optimization option ”-msse” to achieve an SSE order. We used the CUDA programming environment (NVIDIA) for the calculation by the GPU. The version of CUDA SDK is 2.1.
When there are 1,024 object points, the calculation time for the CPU is 45,272 msec, whereas the calculation time for the GPU is 31.02 msec. Therefore, the calculating speed of the GPU is about 1,460 times faster than that of the CPU. Furthermore, it is possible to calculate the CGH at 30 frames per second using the GPU. However, we require a calculation time that is three times faster than the results shown in Table 2 to generate a color reconstructed image because this requires calculating the CGH for R, G and B.
We compare the holograms created by CPU and GPU. Consequently, about 90% of pixel is in agreement. We show the reconstruction image from the hologram created by CPU in Fig. 4 and created by GPU in Fig. 5. Figures 4 and 5 confirm that the hologram created by CPU and GPU both generate the same reconstructed image. Finally, Fig. 6 shows a movie of reconstruction image using a GPU and an LCD projector.
5. Discussion and conclusion
In this study, we accelerate the calculation of a CGH by using a GPU, and develop a compact optical system using a commercial projector. This system succeeded in real-time color holographic reconstruction at 30 frames per second for a 3-D object consisting of 1,000 points. Although the calculation speed of this system is currently too slow for practical applications, it is useful as an experimental device. It is a simple real-time electroholography system that can be constructed from easily obtainable components. We are planning reconstruction of a full mixed image using this system. As a result, we expect that this system will help to advance research in this field.
This research was partially supported by the Hoso Bunka Foundation, Assistance Grants (2007) and Japan Society for the Promotion of Science (JSPS), Grant-in-Aid for Scientific Research (C) (21500094).
References and links
1. P. S. Hilaire, S. A. Benton, M. Lucente, M. L. Jepsen, J. Kollin, H. Yoshikawa, and J. Underkoffler, “Electronic display system for computational holography,” Proc. SPIE 1212, 174–182 (1990). [CrossRef]
2. H. Yoshikawa, S. Iwase, and T. Oneda, “Fast computation of Fresnel holograms employing difference,” Proc. SPIE 3956, 48–55 (2000). [CrossRef]
3. K. Matsushima and M. Takai, “Fast computation of Fresnel holograms employing difference,” Appl. Opt. 39, 6587–6594 (2000). [CrossRef]
4. T. Shimobaba and T. Ito, “An efficient computational method suitable for hardware of computer-generated hologram with phase computation by addition,” Comp. Phys. Commun. 138, pp.44–52 (2001). [CrossRef]
5. T. Ito, N. Masuda, K. Yoshimura, A. Shiraki, T. Shimobaba, and T. Sugie, “A special-purpose computer HORN-5 for a real-time electroholography,” Opt. Express 13, 1923–1932 (2005), http://www.opticsinfobase.org/abstract.cfm?URI=oe-13-6-1923. [CrossRef] [PubMed]
6. N. Masuda, T. Ito, T. Tanaka, A. Shiraki, and T. Sugie, “Computer generated holography using a graphics processing unit,” Opt. Express 14, 603–608 (2006), http://www.opticsinfobase.org/abstract.cfm?URI=oe-14-2-603. [CrossRef] [PubMed]
7. L. Ahrenberg, P. Benzie, M. Magnor, and J. Watson, “Computer generated holography using parallel commodity graphics hardware,” Opt. Express 14, 7636–7641 (2006), http://www.opticsinfobase.org/oe/abstract.cfm?URI=oe-14-17-7636. [CrossRef] [PubMed]
8. H. Kang, T. Fujii, T. Yamaguchi, and H. Yoshikawa, “Compensated phase-added stereogram for real-time holographic display,” Opt. Eng. 46, 095802 (2007). [CrossRef]
9. F. Yaraş, H. Kang, and L. Onural, “Real-Time Multiple SLM Color Holographic Display Using Multiple GPU Acceleration,” in Digital Holography and Three-Dimensional Imaging, OSA Technical Digest (CD) (Optical Society of America, 2009), paper DWA4.
10. M. Lucente, “Interactive Computation of Holograms Using a Look-Up table,” J.Electronic Imaging , 2, pp.28–34 (1993). [CrossRef]
11. K. Sato, “Animated color 3D image using kinoforms by liquid crystal devices,” J. Inst. Telev. Eng. Jpn. 48, 1261–1266 (1994). [CrossRef]
12. T. Shimobaba and T. Ito, “A color holographic reconstruction system by time division multiplexing with reference lights of laser,” Opt. Rev. 10, 339–341 (2003). [CrossRef]
13. T. Ito and K. Okano, “Color electroholography by three colored reference lights simultaneously incident upon one hologram panel”, Opt. Express 12, 4320–4325 (2004), http://www.opticsinfobase.org/oe/abstract.cfm?id=81092. [CrossRef] [PubMed]