For given data of dimension , , (usually ) this function computes the proximal map of the TV prior in a cyclic manner.
Let denote the pixel grid the data is defined on and
the forward neighbors. Then the TV prior is given by
Since each data item appears in terms as forward neighbor and in terms in its “own” sum, computing the proximal map is challenging.
For the cyclic proxiamal point algorithm let
and analogously for the odd indices. Then the sums of
contains each index at most once.
This function computes the proximal maps of the TV prior in a cyclic manner using proximal maps, for the even sets, for the odd sets.
For such a set the proximal map can be computed in parallel, since each index only appears once, all proximal maps of distances can be computed independently.
This function can be extended by carrying a different weight
for a difference in dimension and can also be extended
to diagonal differences when is introduced, i.e. the weights are given as a(n upper triangular) matrix. The standard
is, to treat this matrix as a constant value given by
lambda. A vector for
lambda is interpreted as a diagonal matrix.
Finally the distance term can be replaced by using the optional
'DifferenceProx'. This way both a
HuberTV as well as a squared TV can
be easily realized with this function.
For an implementation returning a parallel evaluation of the versions see
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 % proxTV(M,x,lambda) compute all proxima of TV in a cyclic manner. % Items containing a NaN will be initalized with their first prox call. % % INPUT % M : a manifold % x : data (manifold-valued) % lambda : parameter of the prox % if given as a vector, an entry for each dimension, % or a matrix, the diagonal for the TV terms, % the offdiagonals for diagonal differences. % % OPTIONAL % 'FixedMask' : binary mask the size of data items in x to indicate fixed % data items % 'DifferenceProx' : (@(x1,x2,lambda) % proxAbsoluteDifference(M,x1,x2,lambda)) % specify a prox for the even/odd TV term proxes, i.e. % switch the classical TV by Huber. % % OUTPUT % y : result of the (iterated) proximal maps) % --- % Manifold-valued Image Restoration Toolbox 1.2 | R. Bergmann | 2018-02-09