stvrestore Restoration of signal using total variation and thresholding in orthonormal bases
stvrestore [-r] [-n n] [-a alpha] [-O O] [-I I] [-V V] M u out
-r : Relax constraint on approximation space V_J
-n n : Number of iterations (default: 10000)
-a alpha : Alpha parameter to smooth the total variation
-O O : Use orthonormal wavelet with the given impulse response
-I I : Use wavelet adapted to the interval with the given edge filter
-V V : Output signal with minimal total variation
M : Input thresholding mask (1 | -1=coeff.kept, 0=coeff.thresholded)
u : Input thresholded signal
out : Output restored signal
Fsignal stvrestore (relax , Niter , alpha , O , I , V , M , u )
char *relax ;
int *Niter ;
double *alpha ;
Fsignal O ;
Fimage I ;
Fsignal V ;
Fsignal M ;
Fsignal u ;
This module implements the main step of a wavelet-denoising algorithm combining a total variation (TV) minimization approach. The first presentation of these method has been made in [DF01], while in [DF03] one will find the detail of the algorithm together with the proof of the convergence.
In short, the approach is motivated by wavelet signal denoising methods, where thresholding small wavelet coefficients leads to pseudo-Gibbs artifacts. By replacing these thresholded coefficients by values minimizing the total variation of the reconstructed signal, the method performs a nearly artifact free signal denoising. Minimizing total variation has first been proposed by Rudin, Osher and Fatemi in the context of image denoising [ROF92][RO94], see module tvdenoise.
The inputs of stvrestore are the thresholded signal u within the given orthonormal basis, and a mask M which gives the location of the non-thresholded coefficients. The output is the restored signal with minimal TV subject to the constraint that the coefficients are kept unchanged in the location given by the mask. Although the theory allows to apply this thresholding-restoration process on all orthonormal bases, at this time only orthonormal wavelets are working : you should therefore call the module with -O. The mask M has to be computed by the module that applies the threshold; in case of wavelets this is done by w1threshold.
To see how to use stvrestore and how to run the whole denoising process, you may look at the user's macro Swtvdenoise, which preset for stvrestore most of useful parameters.
iowave1, owave1, smse.
Last Modification date : Thu Apr 3 17:11:37 2003