A Holographic Alternative to JPEG Jon Graven, Moon Lee, Nishant Nangia Graduate Leader: Darlayne Addabbo Faculty Mentor: Yuliy Baryshnikov University of Illinois at Urbana-Champaign Illinois Geometry Lab-Fall 2012 December 7, 2012 Abstract JPEG is the ubiquitous lossy compression protocol for images. Its efficiency depends, however, on predominant local flatness of the image. Therefore, encoding holograms (in essence, Fourier transforms of a 2D image) leaves little hope for efficient compression: the holograms typically consist of highly oscillating patterns. This article provides an overview of the JPEG lossy compression, and focuses in detail on the method to compress holograms efficiently. Index Terms: JPEG, holograph, hologram, FFT, DCT, lossy compression, phase-retrieval algorithm. 1 Introduction JPEG (Joint Photographic Experts Group) is the ubiquitous loss compression protocol for images. The efficiency of the JPEG algorithm, however, depends on predominant local flatness of the image. JPEG compression is divided into 3 parts. First, the matrix of image data is divided into 8 8 blocks. Next, the blocks are moved through the encoding process and compressed. Finally, the compressed data is transferred to the reverse process and a close approximation to the original image is produced: 1
A holograph is a recording of the interference patterns formed between two beams of coherent light coming from a laser on a light-sensitive media such as photographic film. The light beam coming from a laser is broken up into two beams by a beamsplitter. One beam is directed onto a 3D object, and the other beam goes to the photographic plate. Two sets of waves, from the object and the laser, form an interference pattern on the plate, and form a hologram. Since these images are not flat and contain highly oscillating patterns, the JPEG algorithm is highly inefficient when trying to compress holographic images. Our project was to develop methods to compress holographic images and to determine which of these methods are most efficient. 2 HPEG Algorithm 1. Given an image, we can extract the image data consisting of ordered triples {R, G, B} representing the red, green, and blue color channels and put the data into a matrix. 2. Since it is hard to generate a true holographic image, we take the Fast Fourier transform (FFT) of our N N to act as our approximate hologram: F (k, l) = i=0 j=0 ki ι2π( f(i, j)e N + lj N ) where f(i, j) is the (i, j)th entry of the image data matrix. 3. Next, we split our approximate hologram into square submatrices: 2
4. Take the Discrete Cosine transform (DCT) of each submatrix. This is borrowed from the JPEG compression algorithm: X k = n=0 [ ( π x n cos n + 1 ) ] k N 2 k = 0,..., N 1 5. Now we approximate the compression of the image by zeroing out certain elements in the submatrices using some condition. This corresponds to storing fewer bits in our image. 6. Finally, we take the inverse DCT, combine the submatrices and take the inverse FFT to retrieve a compressed version of the original image. Image {R,G,B} Combine Hologram F F T DCT 1 F F T 1 Hologram Image Split Compression DCT We have implemented this algorithm using Mathematica. 3 Example Images Here two examples of images before and after the compression algorithm was applied (blackened squares denote entries that were zeroed out): 3
4 Results We found that the most effective compression condition was zeroing out based on the magnitude of the submatrix entry. Using this approach, we compiled statistics on which part of the submatrix were zeroed out most often. We found the following pattern was typical for many of our trials: 4
As you can see, the bottom left, bottom right, and top right are often more compressed than the top left corner. Another interesting discovery was that entries that were zeroed in one submatrix were also zeroed in all other submatrices except for the top left. We have no explanation for this and could be the subject of further research. We also have a well-documented Mathematica notebook and interactive example which can be applied to a variety of images. 5 Further Research Since we did not actually generate a holographic image for this project, the next step would be to develop methods to create holograms and apply the compression algorithm to them. Also, as mentioned in our results, we would like to explore the explanation for the correlation between zeroed entries in different submatrices. Finally, we would like to develop code for more widely used programming languages, such as C or MATLAB, to increase the speed and efficiency of the algorithm. 6 Files Here is a list of important files in the project. 6.1 HPEG final.nb This notebook contains a fully commented implementation of the holographic compression algorithm along with a few examples. 6.2 HPEG interactive.cdf This file contains an interactive example of the algorithm and will be featured on the IGL website. References [1] Edward, Buckley Computer-Generated Phase-Only Holograms for Real-Time Image Display, InTechOpen, 2011. [2] Fienup, J.R. Phase retrieval algorithms: a comparison, Applied Optics, pp. 2758-2769, 1982. [3] Trutna, Time and Jesse An Introduction to JPEG Compression, 2001. [4] Wallace, Gregory K. The JPEG still picture compression standard, Communications of the ACM, pp. 30-44, 1991. 5