PROX_TV3D - Total variation proximal operator

Usage

sol=prox_tv3d(x, gamma)
sol=prox_tv3d(x, gamma,param)
[sol, info]=prox_tv3d(...)

Input parameters

x Input signal.
gamma Regularization parameter.
param Structure of optional parameters.

Output parameters

sol Solution.
info Structure summarizing informations at convergence

Description

This function compute the 3 dimentional TV proximal operator evaluated in b. If b is 4 dimentional, this function will evaluate the TV proximal operator on each cube. For 2 dimention TV proximal of cubes operator the function prox_tv can be used.

prox_tv3d(y, gamma, param) solves:

\begin{equation*} sol = \min_{z} \frac{1}{2} \|x - z\|_2^2 + \gamma \|x\|_{TV} \end{equation*}

param is a Matlab structure containing the following fields:

  • param.tol : is stop criterion for the loop. The algorithm stops if

    \begin{equation*} \frac{ n(t) - n(t-1) }{ n(t)} < tol, \end{equation*}

    where \(n(t) = f(x)+ 0.5 \|x-z\|_2^2\) is the objective function at iteration t by default, tol=10e-4.

  • param.maxit : max. nb. of iterations (default: 200).

  • param.parrallel : Parallelisation level. 0 means no parallelization, 1 means all cubes (fourth dimension changing) at the same time.

  • param.verbose : 0 no log, 1 a summary at convergence, 2 print main steps (default: 1)

  • param.useGPU : Use GPU to compute the TV prox operator. Please prior call init_gpu and free_gpu to launch and release the GPU library (default: 0).

  • param.weights : weights for each dimention (default \([1, 1, 1]\))

infos is a Matlab structure containing the following fields:

  • info.algo : Algorithm used
  • info.iter : Number of iteration
  • info.time : Time of exectution of the function in sec.
  • info.final_eval : Final evaluation of the function
  • info.crit : Stopping critterion used

References:

A. Beck and M. Teboulle. Fast gradient-based algorithms for constrained total variation image denoising and deblurring problems. Image Processing, IEEE Transactions on, 18(11):2419--2434, 2009.