In the previous two chapters, we looked at simple examples of wavelet image compression that consist of applying a wavelet transform to an image and then removing some of the information from the transformed array. These examples illustrate the potential of using wavelets for image compression. However, practical wavelet image compression techniques in use today use more sophisticated methods for encoding information in the wavelet domain than the simple sorting and decimation approach used for these examples. The present chapter examines some of the issues associated with wavelet image compression. It also introduces zerotree encoding, a technique that addresses these issues and forms the basis for most of the successful wavelet compression schemes in use today.
The wavelet transform is easy to implement and fast to compute. It should not be surprising, therefore, that non-wavelet issues tend to dominate the implementation of wavelet image compression schemes. For example, in the simple compression scheme used in the previous two chapters, the process of extracting information about the relative significance of the coefficients, in order to decide which coefficients to decimate, takes up most of the encoding time. Fig. 7.1.1 shows the encoding times for a 256 x 256 image, using various percentages of Haar wavelet coefficients. The wavelet transform computation time remains constant at 3 seconds in each case. As the percentage of retained wavelet coefficients increases, the time required to select these coefficients increases and dominates the total compression time.
At first glance, one might think that a wavelet compressed image using 10% of the wavelet coefficients represents a 10:1 compression ratio. However, the situation is not quite that propitious. The problem is that, in addition to the values of the coefficients, we need to know which 10% of the coefficients are being used to represent the compressed image. For example, if we wish to store row and column information for a 256 x 256 image, we would need an additional 2 bytes per coefficient. Also, the wavelet coefficients of an 8-bit image tend to require more than 8 bits for representation. For example, the wavelet coefficients of the âRoseâ image have a range of â2979 to 22,737, and so would require a full 2-byte integer for storage. So, we need roughly 4 bytes per stored coefficient (as before, without any special coding techniques being applied). A 10% wavelet compressed 256 x 256 image would have 6554 coefficients each requiring 4 bytes, for a compression ratio of approximately 2.5:1, rather than 10:1. The 5% wavelet compressed image represents a compression ratio of 5:1. Using more than 25% of the wavelet coefficients results in no compression at all.
Online access to SPIE eBooks is limited to subscribing institutions.