$\DeclareMathOperator{\arccosh}{arccosh} \DeclareMathOperator*{\argmin}{arg\,min} \DeclareMathOperator{\Exp}{Exp} \newcommand{\geo}{\gamma_{\overset{\frown}{#1,#2}}} \newcommand{\geoS}{\gamma} \newcommand{\geoD}{\gamma_} \newcommand{\geoL}{\gamma(#2; #1)} \newcommand{\gradM}{\nabla_{\M}} \newcommand{\gradMComp}{\nabla_{\M,#1}} \newcommand{\Grid}{\mathcal G} \DeclareMathOperator{\Log}{Log} \newcommand{\M}{\mathcal M} \newcommand{\N}{\mathcal N} \newcommand{\mat}{\mathbf{#1}} \DeclareMathOperator{\prox}{prox} \newcommand{\PT}{\mathrm{PT}_{#1\to#2}#3} \newcommand{\R}{\mathbb R} \newcommand{\SPD}{\mathcal{P}(#1)} \DeclareMathOperator{\Tr}{Tr} \newcommand{\tT}{\mathrm{T}} \newcommand{\vect}{\mathbf{#1}}$

# The proximal map of second order total variation

For given data $x\in\M^{\vect{n}}$ of dimension $\vect{n}=(n_1,\ldots,n_m)$, $m\in\mathbb N$, (usually $m=1,2$) this function computes the proximal map of the second order TV prior in a cyclic manner.

For the complete functional, see The second order total variation functional from the mid point model

For the cyclic proximal point algorithm we employ the same idea as for the proximal map(s) of TV just splitting with respect to three for the second order terms and in even and odd for both dimensions $i,j$ (leading to four inner sums) and employing hence 7 proximal maps in a cycle and apply the second order difference prox and the second order mixed difference prox, respectively.

This function can be extended by carrying a different weight $\lambda_j$ for a difference in dimension $j\in\{1,\ldots,m\}$ and can also be extended to diagonal differences $\vect{k}+\vect{e}_{j_1}+\vect{e}_{j_2}$ when $\lambda_{ij}\neq 0$ is introduced, i.e. the weights $\lambda\in \mathbb R_{>0}^{m\times m}$ 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 'SecDiffProx' and 'SecDiffMixProx', respectively.

### Matlab Documentation

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 second order finite differences
% with a splitting modulo 3 for the mid point approach within the TV2
% term and a 2-2 splitting in the mixed terms in a cyclic manner
%
% INPUT
%     M       : a manifold
%     x       : data (manifold-valued)
%    lambda   : parameter of the prox
%
% OPTIONAL
% 'FixedMask' : binary mask the size of data items in x to indicate fixed
%   data items
%   'SecDiffProx' : (@(x1,x2,x3,lambda)
%                     proxAbsoluteSecondOrderDifference(M,x1,x2,x3,lambda))
%                      specify a prox for (mod 3) TV2 term proxes
%   'SecDiffMixProx' : (@(x1,x2,x3,x4,lambda)
%             proxAbsoluteSecondOrderMixedDifference(M,x1,x2,x3,x4,lambda))
%                      specify a prox for (mod 2,2) TV2 mixed term proxes
%
% OUTPUT
%   y          : result of applying the proximal maps in a cyclic manner.
% ---
% Manifold-valued Image Restoration Toolbox 1.2 | R. Bergmann | 2017-12-11