The World According to Wavelets: The Story of a Mathematical Technique in the Making, Second Edition

When wavelets are used to encode two-dimensional signals (pictures, for example), often this is done by using "separable products" of a one-dimensional wavelet and a one-dimensional scaling function. This makes it possible to use the fast wavelet transform.
In this case, three two-dimensional wavelets, ? 1 , ? 2, and ? 3, are constructed by multiplying together a one-dimensional scaling function ? and the corresponding wavelet ?:
Each new wavelet measures variations in the image along a different direction: ? 1 responds to variations in the vertical direction (horizontal edges, for example), ? 2 responds to variations in the horizontal direction, and ? 3 responds to variations along diagonals. The wavelets are dilated by scaling factors 2 j along x and y and translated on an infinite rectangular grid (2 jn, 2 jm), where n and m are integers, in order to construct an orthonormal basis.
The fast wavelet transform of images is then calculated essentially by applying the one-dimensional wavelet transform along the rows and columns of the image. (For more on two-dimensional wavelet transforms, see for example [Mallat 4], [Strang, Nguyen], or [Vetterli, Kovacevic].)
The above method is fast, but favors the horizontal and vertical directions; "if you want a subband that is oriented at 30 degrees (instead of 0 or 90) you are out of luck," says Ted Adelson of MIT. If the goal is analysis rather than...