# Computer-generated holography

Computer-generated holography (CGH) is a technique that uses computer algorithms to generate holograms. It involves generating holographic interference patterns. A computer-generated hologram can be displayed on a dynamic holographic display, or it can be printed onto a mask or film using lithography. When a hologram is printed onto a mask or film, it is then illuminated by a coherent light source to display the holographic images.
The term "computer-generated holography" has become used to denote the whole process chain of synthetically preparing holographic light wavefronts suitable for observation. If holographic data of existing objects is generated optically and recorded and processed digitally, and subsequently displayed, this is termed CGH as well.
Compared to classical holograms, computer-generated holograms have the advantage that the objects that one wants to show do not have to possess any physical reality, and can be completely synthetically generated.
Ultimately, computer-generated holography might expand upon all the roles of current computer-generated imagery. Holographic computer displays might be used for a wide range of applications, for example computer-aided design (CAD), gaming, and holographic video.

## Overview

Holography is a technique originally invented by Hungarian physicist Dennis Gabor (1900–1979) to improve the resolving power on electron microscopes. An object is illuminated with a coherent (usually monochromatic) light beam; the scattered light is brought to interference with a reference beam of the same source, recording the interference pattern. CGH as defined in the introduction has broadly three tasks:
* Computation of the virtual scattered wavefront
* Encoding the wavefront data, preparing it for display
* Reconstruction: Modulating the interference pattern onto a coherent light beam by technological means, to transport it to the user observing the hologram.
Note that it is not always justified to make a strict distinction between these steps; however it helps the discussion to structure it in this way.

## Wavefront computation

Computer generated holograms offer important advantages over optical holograms since there is no need for a real object. Because of this breakthrough, a three-dimensional display was expected when the first algorithms were reported at 1966.
Unfortunately, the researchers soon realized that there are noticeable lower and upper bounds in terms of computational speed and image quality and fidelity respectively. Wavefront calculations are computationally very intensive; even with modern mathematical techniques and high-end computing equipment, real-time computation is tricky. There are many different methods for calculating the interference pattern for a CGH. In the following 25 years, many methods for computer-generated holograms were proposed in the fields of holographic information and computational reduction as well as in computational and quantization techniques. The algorithms can be categorized in two main concepts: Fourier transform holograms and point source holograms.
One of the more prevalent methods that can be used to generate phase-only holograms is the Gerchberg-Saxton (GS) algorithm.

### Fourier transform method

In the first one, the Fourier transformation is used to simulate the propagation of each plane of depth of the object to the hologram plane. The Fourier transformation concept was first introduced by Byron R. Brown and Adolf W. Lohmann with the detour phase method leading to cell oriented holograms. A coding technique suggested by Burch replaced the cell oriented holograms by point holograms and made this kind of computer generated holograms more attractive. In a Fourier Transform hologram the reconstruction of the image occurs in the far field. This is usually achieved by using the Fourier transforming properties of a positive lens for reconstruction. So there are two steps in this process: computing the light field in the far observer plane, and then Fourier transforming this field back to the lens plane. These holograms are called Fourier Based Holograms. First CGHs based on the Fourier transform could reconstruct only 2D images. Brown and Lohmann introduced a technique to calculate computer generated holograms of 3D objects. Calculation of the light propagation from three-dimensional objects is performed according to the usual parabolic approximation to the Fresnel-Kirchhoff diffraction integral. The wavefront to be reconstructed by the hologram is, therefore, the superposition of the Fourier transforms of each object plane in depth, modified by a quadratic phase factor.

### Point source holograms

The second computational strategy is based on the point source concept, where the object is broken down in self-luminous points. An elementary hologram is calculated for every point source and the final hologram is synthesized by superimposing all the elementary holograms. This concept has been first reported by Waters whose major assumption originated with Rogers who recognized that a Fresnel zone plate could be considered a special case of the hologram proposed by Gabor. But, as far as most of the object points were non-zero, the computational complexity of the point-source concept was much higher than in the Fourier transformation concept. Some researchers tried to overcome this drawback by predefining and storing all the possible elementary holograms using special data storage techniques because of the huge capacity that is needed in this case, others by using special hardware.
In the point-source concept the major problem is the trade-off between data storage capacity and computational speed. In particular, algorithms that increase computational speed usually have much greater data storage requirements while algorithms that reduce data storage requirements have high computational complexity (though some optimizations are possible).
Another concept which leads to point source CGHs is the ray tracing method. Ray tracing is perhaps the simplest method of computer generated holography to visualize. Essentially, the path length difference between the distance a virtual "reference beam" and a virtual "object beam" have to travel is calculated; this will give the relative phase of the scattered object beam.
Over the last three decades, both concepts have made remarkable progress improving computational speed and image quality. However, some technical restraints, like computation and storage capacity, still burden digital holography which makes real-time applications almost impossible with current standard computer hardware.

## Generated Holography

Once it is known what the scattered wavefront of the object looks like or how it may be computed, it must be fixed on a spatial light modulator (SLM), abusing this term to include not only LCD displays or similar devices, but also films and masks. Basically, there are different types of SLMs available: Pure phase modulators (retarding the illuminating wave), pure amplitude modulators (blocking the illumination light), polarization modulators (influencing the polarization state of light) and SLMs which have the capability of combined phase/amplitude modulation.
In the case of pure phase or amplitude modulation, clearly quality losses are unavoidable. Early forms of pure amplitude holograms were simply printed in black and white, meaning that the amplitude had to be encoded with one bit of depth only. Similarly, the kinoform is a pure-phase encoding invented at IBM in the early days of CGH.
Even if a fully complex phase/amplitude modulation would be ideal, a pure phase or pure amplitude solution is normally preferred because it is much easier to implement technologically. Nevertheless, for the creation of complicated light distribution simultaneous modulation of amplitude and phase is reasonable. So far two different approaches for amplitude-phase-modulation have been implemented. One is based on phase-only or amplitude-only modulation and consecutive spatial filtering, the other one is based on polarization holograms with variable orientation and magnitude of local birefringence. Holograms with a constraint, such as phase-only or amplitude-only, may be computed via algorithms such as the Gerchberg-Saxton algorithm or more general optimisation algorithms such as direct search, simulated annealing or stochastic gradient descent using, for example, TensorFlow.

## Reconstruction

The third (technical) issue is beam modulation and actual wavefront reconstruction. Masks may be printed, resulting often in a grained pattern structure since most printers can make only dots (although very small ones). Films may be developed by laser exposure. Holographic displays are currently yet a challenge (as of 2008), although successful prototypes have been built. An ideal display for computer generated holograms would consist of pixels smaller than a wavelength of light with adjustable phase and brightness. Such displays have been called phased array optics. Further progress in nanotechnology is required to build them.

## Applications

Currently, several companies and university departments are researching on the field of CGH devices:
* VividQ provides software for real-time CGH devices, allowing for the generation of images with over 200 depth layers using standard computing power
* MIT Media Lab has developed the "Holovideo" CGH display
* SeeReal Technologies have prototyped a CGH display
* Cortical Cafe CGH Kit is a CGH related hobbyist site with instructions, source code, and a web-application for CGH creation.

### In electron optics

Recently computer-generated holography has been extended in its usage beyond light optics, and applied in generating structured electron wavefunctions with a desired amplitude and phase profile. The computer generated holograms are designed by the interference of a target wave with a reference wave, which could be, e.g. a plane-like wave slightly tilted in one direction. The holographic diffractive optical elements used are usually constructed out of thin membranes of materials such as silicon nitride.