Continuous wavelets are indeed functions that wiggle and eventually vanish. For the discrete ones, used in image compression, their is another point of view. Given a block $B$ of pixels of size $2K\times 2K$, a wavelet will convert it into four $K\times K$ blocks, that contain the same information content as the original block, but hopefully reorganized in a way such that useful information pops up first, so that it can compressed more easily: because the salient data is more evident, because less useful info is scattered, because its faster, whatever. Four parts are, typically:
- A: an approximation of the whole block, like some a down-sampled average, on a four-fold smaller picture, not orientation-specific
- H: an "horizontal" detail that detect mostly horizontal features
- V: an "horizontal" detail that detect mostly vertical features
- D: an "horizontal" detail that detect mostly diagonal features
A rendition is proposed below, and it can be iterated to better capture features are different scales.
Hopefully, subimages A, D, H, V are together somehow simpler than the original image; hence easier to code. Some combined wavelet properties allow this to happen:
- wavelets absorb polynomial: a part of the image that is regular enough (smooth like a polynomial eg a slow-varying shading) can be summarized efficiently
- wavelets have derivative properties: they could enhance some edges
- wavelets oscillate somehow, and may match wiggling or periodic textures
- wavelets separate the above from noise when evenly spread.
Then, we could keep a list of the highest wavelet coefficients. Only a small percentage of ten may encode large part of the image. The decomposition is somehow sparse. However, how elegant they could be, the actual coefficient encoding is a bit complicated, and other scheme can be more efficient in compression ratio, visual quality and speed.
Note that wavelet compression can be used in some domains, like pre-production movie storage, medical imaging. It can also be used in the coding of heterogeneous tree-dimensional meshes, as we did in our HexaShrink, an exact scalable framework for hexahedral meshes with attributes and discontinuities: multiresolution rendering and storage of geoscience models, combining 12, 2D and 3D wavelets.