Overview of Computational Holography Algorithms

Introduction

There are many algorithms for computing holograms and they are usually based on the physics of the process. There are two important properties of holograms that can be useful in computing holograms:

The first property is used extensively in computational holography, while the second one has largely been ignored.

Most of the compuational holography algorithms can be divided into the broad classes:

The two classes have very different properties with the first class being quite general, but computationally quite expensive. The second class can be more efficient, but there are constraints on how it can be used. The following sections introduce the two classes of algorithms and present the mathematics and techniques behind them.

Point Light Source Algorithms

The point light source algorithm is relatively simple and the most general computational holography algorithm. But, it is also one of the most computationally expensive and doesn't scale very well. The basic idea behind this algorithm is quite simple. An object is viewed as a collection of point light sources and a hologram is computed for each point individually. The holograms for the individual points are summed to produce the object's hologram. The hologram plane is divided into a grid of pixels and the contribution of the point light source to each pixel is computed taking into account the direction of the reference beam. While the computation for each pixel is not overly complicated it must be repeated for each pixel in the hologram plane and for each point light source.

As you can see there are a number of scaling problems with this algorithm. The algorithm is quadratic in the size of the hologram plane and grows linearly with the number of point light sources. How many point light sources do we need? This depends upon the object size, hologram plane size and the quality of the resulting image. This is clearly a sampling problem and even for simple wire frame objects the number of point light sources is in the thousands. There are a number of techniques for improving the efficiency of these algorithms and this has been studies quite thoroughly.

Wavefront Propagation Algorithms

The wavefront propagation algorithms are potentially much more efficient, but they have several significant constraints. These algorithms start by assuming that the distribution of light over a plane is already known. Diffraction theory is then used to propagate this light distribution to the hologram plane. This is most efficient when the plane containing the light distribution is parallel to the hologram plane. In this case both planes are divided into grids with the same number of grid cells and the fast Fourier transform (FFT) and the inverse transform (iFFT) are used to propagate the light to the hologram plane. Since the entire hologram plane is processed as the same time this can be quite efficient. The problems occur when the two planes are not the same size or they are not parallel to each other.

But wait, there is a problem here. We want to produce holograms of 3D objects and planes are 2D objects, how does this work? There are algorithms that can do light propagration from other simple shapes, such as spheres and cylinders, but they are quite slow. Another approach is to slice the model in depth, compute a hologram for the object at each depth and then sum the holograms. The quality of result depends upon the number of slices, but the cost also goes up with the number of slices. Another approach is to use a standard computer graphics algorithm to to produce a rendering on a display plane and then compute the hologram from this plane. Unfortunately, this produces a hologram of a 2D image and not a 3D model.

Hybrid Algorithms