--------------------------------------------------------------------- --- EPWIC-1 (Embedded Predictive Wavelet Image Coder) --- --- Designed by Robert W. Buccigrossi and Eero P. Simoncelli --- --- Developed at the GRASP Laboratory --- --- Copyright 1996-1997, University of Pennsylvania --- --- All rights reserved. --- --------------------------------------------------------------------- Permission to use, copy, or modify this software and its documentation for educational and research purposes only and without fee is hereby granted, provided that this copyright notice appear on all copies and supporting documentation. For any other uses of this software, in original or modified form, including but not limited to distribution in whole or in part, specific prior permission must be obtained from U Penn and the authors. These programs shall not be used, rewritten, or adapted as the basis of a commercial software or hardware product without first obtaining appropriate licenses from U Penn. U Penn makes no representations about the suitability of this software for any purpose. It is provided "as is" without express or implied warranty. --------------------------------------------------------------------- INTRODUCTION EPWIC-1 is an embedded wavelet image coder that uses the generalized Laplacian (or generalized Gaussian) distribution as a model of the coefficients of the wavelet pyramid. Images are decomposed into a wavelet pyramid which is encoded by bitplane with a non-adaptive arithmetic encoder. The bitplanes are sent in order of their (MSE contribution/encoding size) ratio. We are making this code available to interested researchers who wish to experiment with a subband pyramid coder. This code was not intended for speed, but for researching the possibilities of modeling subband coefficient distributions as generalized Laplacians. Therefore, though the underlying algorithms could be rewritten to work quickly, this implementation is relatively slow and does not support features available on most compression utilities (for example, it only works on PGM images). This code has been compiled and tested by the authors on SunOS 4.1.3 and 5.5.1, and on Linux. We do not know how it will perform on other platforms, due to senitivities of the algorithms to floating point errors. EPWIC-1 is available via anonymous ftp from ftp://ftp.cis.upenn.edu/pub/butch/EPWIC/EPWIC-1.tar.gz This is a gzip'ed tarfile. Therefore you need to download this file in BINARY mode. (The IP address for ftp.cis.upenn.edu is 158.130.12.3 .) For example images and other information, please see the EPWIC homepage at: http://www.seas.upenn.edu/~butch/EPWIC/index.html --------------------------------------------------------------------- INSTALLATION (directions for UNIX systems) 1) Get and uncompress the source: cd ftp ftp.cis.upenn.edu Name: ftp P assword: cd pub/butch/EPWIC binary get EPWIC-1.tar.gz bye gzip -d EPWIC-1.tar.gz # uncompress contents tar -xf EPWIC-1.tar # unpack contents 2) Compile the utilities - In the Makefile, modify "BIN_DIR" to point to the destination of the compiled executables - For X-Windows, you may have to add -lsocket to the "XLIB" variable - If you have X-Windows, run "make" (or "make -f Makefile all") - If you don't have X-Windows, run "make epwic" and "make unepwic" for the individual utilities --------------------------------------------------------------------- USAGE epwic - Compresses an 8 bit PGM image into the EPWIC-1 format epwic infile [-o outfile] [-l levels] [-b outfile_size] Where: - outfile is the name of the file in which to save the compressed image - levels is the number of levels in the pyramid - outfile_size is the size at which we truncate the saved compressed image Notes: - If no outfile is specified, the file is saved as the input file name plus the extension ".EPW" unepwic - Decompresses an EPWIC-1 image into a PGM image unepwic [filename] [-o outfile] [-b bytes_to_read] Where: - filename is the name of the EPWIC-1 file to be decompressed - outfile is the name of the pgm file to be saved - bytes_to_read is the number of bytes to be read from the compressed image stream. Notes: - if no filename is given, it reads the compressed image from STDIN epwview - Display an EPWIC image as a progressive sequence (X-windows only) epwview [filename] Notes: - If no filename is given, epwview reads from STDIN - The left button pauses the decompression and displays the current uncompressed result - The right button quits. slowcat - Used to simulate a slow network for epwview slowcat file_name [bits/sec] Where: - bits/sec is the rate at which the file is sent to STDOUT Notes: - If no rate is given, it defaults to 14400 bits/sec For example, if we had a PGM file al.pgm. We could completely compress the image into a new file al.pgm.EPW using: epwic al.pgm -o al.pgm.EPW or we can stop the embedded encoding at 512 bytes with: epwic al.pgm -o al.pgm.EPW -b 512 We can then decompress the epwic file to 256 bytes into the file al256.pgm with: unepwic al.pgm.EPW -o al256.pgm -b 256 or we can view a progression with epwview with epwview al.pgm.EPW or simulate having it sent over a 28.8 modem with slowcat al.pgm.EPW 28800 | epwview --------------------------------------------------------------------- REFERENCES For more information about the underlying algorithm, its performance compared to EZW, or other references about wavelet image compression, please see: R W Buccigrossi and E P Simoncelli. Image Compression via Joint Statistical Characterization in the Wavelet Domain. GRASP Laboratory Technical Report #414. University of Pennsylvania. May 30, 1997 (available at: ftp://ftp.cis.upenn.edu/pub/eero/buccigrossi97.ps.gz) or W Buccigrossi and E P Simoncelli. Progressive Wavelet Image Coding Based on a Conditional Probability Model. Int'l Conf. Acoustics Speech and Signal Processing. Munich, Germany. April 1997 (available at: ftp://ftp.cis.upenn.edu/pub/eero/buccigrossi96.ps.gz)