Edge-Avoiding Wavelets and their Applications

Raanan Fattal


We propose a new family of second-generation wavelets constructed using a robust data-prediction lifting scheme. The support of these new wavelets is constructed based on the edge content of the image and avoids having pixels from both sides of an edge. Multi-resolution analysis, based on these new edge-avoiding wavelets, shows a better decorrelation of the data compared to common linear translation-invariant multi-resolution analyses. The reduced inter-scale correlation allows us to avoid halo artifacts in band-independent multi-scale processing without taking any special precautions. We thus achieve nonlinear data-dependent multi-scale edge-preserving image filtering and processing at computation times which are linear in the number of image pixels. The new wavelets encode, in their shape, the smoothness information of the image at every scale. We use this to derive a new edge-aware interpolation scheme that achieves results, previously computed by an inhomogeneous Laplace equation, through an explicit computation. We thus avoid the difficulties in solving large and poorly-conditioned systems of equations.

We demonstrate the effectiveness of the new wavelet basis for various computational photography applications such as multi-scale dynamic-range compression, edge-preserving smoothing and detail enhancement, and image colorization.


This methodology is licensed by Adobe and used in the recent Photoshop CS5 in a feature called `Protect Details.' A video demonstrating that can be found here.



  • manuscript, sup ma and a NEW note about HDR compression
  • Results page, see NEW results about HDR compression
  • A note by by Eric Jeschke
  • SIG '09 presentation ppt
  • NEW C++/Matlab (mex) code. Instructions: compile the C++ code to mex using makefile command from the matlab command line. Then run eaw_test.
  • Information about licencing this technology can be found here.


author = {Fattal, Raanan},   
title = {Edge-avoiding wavelets and their applications},   
journal = {ACM Trans. Graph.},   
volume = {28},   
number = {3},   
year = {2009},   
issn = {0730-0301},   
pages = {1--10},   
doi = {http://doi.acm.org/10.1145/1531326.1531328},   
publisher = {ACM},   
address = {New York, NY, USA},