We demonstrate real-time three-dimensional (3D) color video using a color electroholographic system with a cluster of multiple-graphics processing units (multi-GPU) and three spatial light modulators (SLMs) corresponding respectively to red, green, and blue (RGB)-colored reconstructing lights. The multi-GPU cluster has a computer-generated hologram (CGH) display node containing a GPU, for displaying calculated CGHs on SLMs, and four CGH calculation nodes using 12 GPUs. The GPUs in the CGH calculation node generate CGHs corresponding to RGB reconstructing lights in a 3D color video using pipeline processing. Real-time color electroholography was realized for a 3D color object comprising approximately 21,000 points per color.
Holography, which was invented by Dennis Gabor^{[1]}, is widely known as the ultimate three-dimensional (3D) technique for faithfully recording and reconstructing 3D objects. A computer-generated hologram (CGH) is the digital interference fringe calculated by a computer^{[2]}. It may be possible to apply electroholography to 3D television (TV)^{[3–5]} because it can reconstruct animated 3D images by sequentially displaying CGHs on a spatial light modulator (SLM). However, in such a system, calculating the CGH is computationally prohibitive. Realizing 3D TV using electroholography requires high-performance computational power^{[6]}.
Accelerating CGH calculations using graphics processing units (GPUs) has been reported^{[7–16]}. CGH computation using multi-GPU clusters comprising several multi-GPU environment personal computers (PCs), each of which is equipped with several GPUs, was investigated in Refs. [17–22]. However, real-time color electroholography using a multi-GPU cluster system has not been realized even though color electroholography is indispensable for the ultimate 3D TV.
To realize color 3D TV, two color electroholographic systems are being researched. One comprises a three-SLM system for red, green, and blue (RGB)-colored reconstructing lights, and the other is a single-SLM system with one SLM and RGB-colored reconstructing lights.
Sign up for Chinese Optics Letters TOC Get the latest issue of Advanced Photonics delivered right to you！Sign up now
In the three-SLM system, a color 3D image is generated from RGB-colored 3D images reconstructed from CGHs corresponding to RGB-colored reconstructing lights by optical combination. In three-SLM color electroholography^{[23–28]}, it is easy to control the CGH operation between the CGH calculation and the CGH display corresponding to the RGB-colored reconstructing lights on the three SLMs. However, this requires spatial adjustment for the optical combination of RGB-colored images in an optical system.
A color electroholographic display using a single-SLM system was demonstrated using space-^{[29]}, depth-^{[30,31]}, and time-division methods in Refs. [32–37]. The time-division method causes flicker, but the space- and depth-division methods do not. In the space-division method, the original CGH comprises three parts, one for each of the three RGB-colored reconstructing lights. However, the respective resolutions of the three parts are lower than that of the original CGH. Therefore, it is difficult to display fine color reconstructed images obtained from 3D objects comprising many object points. Typically, 3D images reconstructed using the depth-division method contain unwanted diffraction. Color electroholography using the time-division method requires color switching of the reconstructing light. Furthermore, the color switching must synchronize with the CGH display, which is difficult to achieve.
It has been theoretically shown that light loss may^{[38]} or may not^{[39,40]} change the emitting color (i.e., frequency) of illuminating devices, which provides deep physical insights in display technology. In this Letter, we describe real-time 3D video reconstruction using an electroholographic system with a multi-GPU cluster and three SLMs.
The following formula applied to the Fresnel approximation^{[7]} is used to calculate a CGH $$I({x}_{h},{y}_{h},0)={\sum}_{i=1}^{{N}_{p}}{A}_{i}\mathrm{cos}\left\{\frac{\pi}{\lambda {z}_{i}}\right[{({x}_{h}-{x}_{i})}^{2}+{({y}_{h}-{y}_{i})}^{2}\left]\right\},$$where $I({x}_{h},{y}_{h},0)$ denotes the amplitude distribution of the point $({x}_{h},{y}_{h},0)$ on the hologram, the index $i$ indicates an object point on a 3D object, and $({x}_{i},{y}_{i},{z}_{i})$ and ${A}_{i}$ represent coordinates of the $i$th point and the amplitude of the object point, respectively. ${N}_{p}$ is the total number of object points on the 3D object, and $\lambda $ is the wavelength of the reconstructing light.
From Eq. (1), the CGH calculation time is proportional to the resolution of a CGH, and the computational complexity of the CGH calculation is $O({N}_{p}WH)$ when the resolution of the CGH is $W\times H$. Thus, the CGH calculation is prohibitively computationally intensive. Furthermore, color electroholography requires three times the CGH calculation of monochrome electroholography due to the related wavelengths [Eq. (1)]. We used an optimized CGH computation algorithm for the GPU^{[17]}.
The value obtained from Eq. (1) for each point on a CGH is binarized using a threshold value of 0. The binary CGH is generated by the binarized value of each point on a hologram. In this article, we used three binary CGHs corresponding to RGB-colored reconstructing lights for color electroholography.
Figure 1 shows the outline of the proposed real-time color electroholographic system containing multi-GPU clusters and three SLMs. The multi-GPU cluster comprises $\mathit{N}+1\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{PCs}$ and $3\mathit{N}+1\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{GPUs}$. In Fig. 1, PC 0 is referred to as a CGH display node, and PCs from PC 1 to PC N are called CGH calculation nodes. The CGH display node with a single GPU (GPU 0) displays the calculated binary CGHs on three SLMs corresponding to RGB-colored reconstructing lights. Each of the CGH calculation nodes (PC 1 to PC N) has three GPUs that calculate binary CGHs corresponding to RGB-colored reconstructing lights at each frame of a 3D color video. The three GPUs then generate RGB-colored binary CGHs from the calculated binary CGHs. The RGB-colored binary CGHs are expressed in red and black, green and black, and blue and black.
Figure 1.Proposed real-time color electroholographic system.
After generating the RGB-colored binary CGHs at each frame, the calculated CGHs are sent to the CGH display node. The data transfer for the RGB-colored binary CGHs occurs at 32 bits per pixel to reduce the processing load on the CGH display node for real-time color electroholography. The 32 bits comprised 24 bits for the RGB value and 8 bits for the alpha value, which indicates the transparency of the pixels.
In the CGH display node, the RGB-colored binary CGHs are received from the CGH calculation nodes. Then, as shown in Fig. 2, it is fast and easy for GPU 0 to combine the RGB-colored CGHs corresponding to RGB-colored reconstructing lights into a color CGH. The RGB-colored CGHs in the figure indicate the respective received RGB-colored binary CGHs. The CGH display node outputs the combined color CGH to a video signal splitter, which automatically divides the input color CGH into RGB-colored CGHs that are displayed on three SLMs corresponding to the respective RGB-colored reconstructing lights.
Figure 2.Combined color CGH generated from three RGB-colored CGHs corresponding to RGB-colored reconstructing lights.
The CGH calculation nodes calculate CGHs for the 3D color video in parallel. Here the CGH display node also serves as a network file server in the multi-GPU cluster and stores the coordinate data of the 3D object points for all frames in the 3D color video.
The proposed color electroholographic system processes real-time 3D color video reconstruction, as shown in Fig. 3. The RGB-colored binary CGH calculations at Frame N of a 3D color video in the figure are referred to as Frame N (R), Frame N (G), and Frame N (B), respectively. Each of the CGH calculation nodes is assigned to a frame in the 3D color video to calculate their RGB-colored binary CGHs for the 3D color video. At the CGH calculation node, the generation of CGHs uses pipeline processing. The proposed real-time color video reconstruction proceeds as follows.
Step 1: At Frame 1 of the 3D color video, GPU 1, GPU 2, and GPU 3 in the CGH calculation node PC 1 calculate the RGB-colored binary CGHs corresponding to the RGB-colored reconstructing lights. In Fig. 3, Frame 1 (R), Frame 1 (G), and Frame 1 (B) represent the RGB-colored binary CGH calculations. Similarly, the CGH calculation nodes from PC 2 to PC N evaluate the RGB-colored binary CGH from Frame 2 to Frame N.Step 2: At Frame 1, PC 1 sends the respective calculated RGB-colored binary CGHs to the CGH display node PC 0 immediately after the respective RGB-colored binary CGH calculation at Frame 1. Similarly, at Frame 2 to Frame N, the CGH calculation nodes from PC 2 to PC N send the respective calculated RGB-colored binary CGHs to the CGH display node PC 0.Step 3: The CGH display node PC 0 receives the RGB-colored binary CGH from PC 1 at Frame 1. GPU 0 of the CGH display node combines the RGB-colored binary CGHs into a color CGH and outputs the combined color CGH to the video signal splitter. Similarly, PC 0 receives the calculated RGB-colored binary CGHs at Frame 2 to Frame N from PC 2 to PC N. The received RGB-colored binary CGHs are combined into color CGHs. GPU 0 in turn outputs the combined color CGHs from Frame 2 to Frame N to the video signal splitter at a constant time interval $T$.
Figure 3.Parallel processing of real-time 3D color video reconstruction using the proposed color electroholographic system.
After Step 3, from Frame $\mathit{N}+1$ to 2N, the RGB-colored binary CGHs are calculated using the CGH calculation nodes, and GPU 0 outputs the combined CGHs to the video signal splitter at a constant time interval $T$. The process is repeated until the last frame of the 3D color video is reached.
We investigated the respective CGH transfer times between the CGH display node and each CGH calculation node. In this Letter, the size per pixel in respective CGH transfer between the CGH display node and each CGH calculation node is 32 bits. Each CGH had a resolution of $1920\times 1024\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{pixels}$; therefore, an optimized CGH calculation algorithm^{[17]} was applied. Hence, the total size of the respective data transfer is $32(\mathrm{bits})\times 1920(\mathrm{pixels})\times 1024(\mathrm{pixels})\approx 62.9(\mathrm{Mbits})$. The estimated time required to transfer the data using Gigabit Ethernet (1 Gbps) is 63 ms. The frame rate of the system using Gigabit Ethernet is less than 16 frames per second. Therefore, a network with a higher speed is required to realize real-time 3D color video reconstruction. To overcome this bottleneck, we used an InfiniBand Quad Data Rate (QDR) (40 Gbps) as a computer network of multi-GPU cluster, leading to a reduction of the theoretical CGH transfer time to 1.6 ms.
Figure 4 shows the optical setup for the proposed real-time color electroholographic system, which uses a projector (Epson Corp. EMP-TW1000) with a maximum refresh rate of 60 Hz. Three transmissive liquid crystal display (LCD) panels extracted from the projector were used as SLMs corresponding to RGB-colored reconstructing lights. Here, the resolution and pixel pitch in the LCD panel are $1920\times 1080\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{pixels}$ and $8.5\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{\mu}\mathrm{m}\times 8.5\text{\hspace{0.17em}}\text{\hspace{0.17em}}\mathrm{\mu}\mathrm{m}$, respectively. The projector was connected to GPU 0 on the CGH display node. We used a video signal splitter mounted in the projector, as shown in Figs. 1 and 3.
Figure 4.Optical setup in the proposed real-time color electroholographic system using a multi-GPU cluster and three SLMs.
Red, green, and blue semiconductor lasers with wavelengths of 625, 525, and 470 nm, respectively, were used as RGB-colored reconstructing lights. The laser lights were converted into RGB-colored parallel lights using an objective lens and a collimator lens, which were incident on the corresponding LCD panels. The viewing angle of the reconstructed 3D image is 3.2°.
We used a multi-GPU cluster comprising a CGH display node and four CGH calculation nodes to evaluate the performance of the proposed real-time color electroholographic system. The CGH display node and each of the CGH calculation nodes were equipped with a GPU and three GPUs, respectively. Therefore, the multi-GPU cluster contained 13 GPUs.
Each of the PCs (PC 0 to PC N) on the multi-GPU cluster contained an Intel Core i7 4770 as the CPU, and the multi-GPU cluster contained 13 NVIDIA GeForce GTX TITAN X GPUs. InfiniBand QDR was used to network the multi-GPU cluster. The program code for the proposed system contained CUDA 7.0 SDK^{[41]}, Open GL 4.5.0, and Open MPI v1.8.7.
Original color 3D objects comprising RGB-colored objects with 19,168, 27,012, and 18,228 points were used for the 3D color video, as shown in Fig. 5. Each object was located 1.5 m from the respective CGH. Figure 6 shows the RGB-colored binary CGHs obtained from the original color 3D object shown in Fig. 5 and the combined CGH generated from the RGB-colored binary CGHs. The combined CGH is output to the video signal splitter. Figure 7 shows snapshots of the reconstructed 3D color video against the number of GPUs in the proposed system. Here, in the reconstruction of 3D color video, we did not use any techniques to reduce the induced laser speckle. Table 1 illustrates the display time interval $T$ of the proposed real-time 3D color video against the total number of GPUs used. The system achieved real-time 3D color video reconstruction using 13 GPUs. In Table 1, the display time of “1 GPU” shows the sum of the calculation times of the RGB-colored binary CGHs for RGB-colored objects with 19,168, 27,012, and 18,228 points. In “4 GPUs”, three GPUs in a CGH calculation node must wait to calculate the RGB-colored binary CGHs for the next frame until these GPUs finish calculating all RGB-colored binary CGHs for the present frame. Thus, the display time of “4 GPUs” is equal to the calculation time of the green-colored binary CGH for the green-colored object with 27,012 points. When the total number of GPUs is 7 to 13, the respective display time becomes approximately 1/N the display time of “4 GPUs”. Here, N is the number of the CGH calculation nodes.
Display time interval (ms)
Frame rate (fps)
1 GPU
250.9
3.98
4 GPUs
100.9
9.91
7 GPUs
50.9
19.64
10 GPUs
35.5
28.17
13 GPUs
26.1
38.31
Table 1. Display Time Interval of the Proposed Real-Time Color Electroholography
In conclusion, the proposed system achieved real-time 3D color video (flower and butterfly) reconstruction for RGB-colored objects comprising 19,168, 27,012, and 18,228 points using 13 GPUs. We believe that the proposed method will find useful application in 3D color TV in the future.