The operator splitting methods are very useful to derive fast algorithms. It is worthwhile to be used when the problem we want to solve has an additive structure, the main idea is to split the problem into sub-problems that are easier to solve by treating its summands separately in each iteration of the algorithm. To achieve this goal, we use of the operator splitting algorithm that splits the proposed model into two equations. The first one corresponds to solve the following Perona-Malik model:
$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{ll} u_{t}- \text{div} \left(g\:(|\nabla u|) \nabla u\right)=0 \quad &\text{in}\,\,Q, \\ \nabla u.\vec{n}=0 & \text{in}\,\,\Sigma,\\ u(x,0)=f & \text{in}\,\, \Omega. \end{array} \right. \end{array} $$
(3)
The second is a diffusion equation associated to the infinity Laplacian that is given by:
$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{ll} u_{t} + \partial I_{K}(u) \ni 0 \quad &\text{in}\,\,Q, \\ \nabla u.\vec{n}=0 & \text{in}\,\,\Sigma, \\ u(x,0)=f & \text{in}\,\, \Omega. \end{array} \right. \end{array} $$
(4)
Let N > 0 be given, τ = T/N be the time step, t
n = n
τ, n = 0,…,N, and let us consider u
n an approximation of u(t
n) for all n = 0,…,N.
The basic idea is to discretize the Eq. (2) by using an implicit scheme for linear terms and an explicit scheme for the remaining terms. The goal is to reduce the execution time required to solve the equations by splitting up the terms in such a way that the stable time step for the explicit discretization is significantly smaller than the largest stable time step for the semi-implicit one.
After discretizing (2) with a semi-implicit first order scheme, we should find u
n + 1 satisfying:
$$\begin{array}{@{}rcl@{}} \left\{ \begin{array}{ll} \frac{ u^{n+1}- u^{n}}{\tau} -\text{div} \left(g\:(|\nabla u^{n}|) \nabla u^{n+1}\right)+ \partial I_{K}(u^{n+1}) \ni 0,\\ \nabla u^{n+1}.\vec n=0,\\ u^{n}=f. \end{array} \right. \end{array} $$
(5)
The corresponding discretization of the time splitting scheme (3)–(4) consists on finding at each time step, \( v^{n~+~\frac {1}{2}}\) satisfying:
$$\begin{array}{@{}rcl@{}} \qquad \left\{ \begin{array}{ll} \frac{ v^{n~+~\frac{1}{2}}- v^{n}}{\tau} -\text{div} \left(g\:(|\nabla v^{n}|) \nabla v^{n~+~\frac{1}{2}}\right)=0,\\ \nabla v^{n~+~\frac{1}{2}}.\vec n=0,\\ v^{n}~=~f, \end{array} \right. \end{array} $$
(6)
followed by finding w
n + 1 satisfying:
$$\begin{array}{@{}rcl@{}} \qquad \left\{ \begin{array}{ll} \frac{ w^{n~+~1}-w^{n~+~\frac{1}{2}} }{\tau} + \partial I_{K}(w^{n~+~1}) \ni 0 \\ \nabla w^{n~+~1}.\vec n=0\\ w^{n~+~\frac{1}{2}}~=~v^{n~+~\frac{1}{2}}. \end{array} \right. \end{array} $$
(7)
The Perona-Malik operator has been solved by different numerical methods and techniques and methods. To improve computational efficiency, we discretize (3) by (6) and we use the additive operator splitting scheme in the numerical implementation. On the other hand, the sub-differential Eq. (4), discretized by (7), is formulated as a minimization that will be solved by the dual formulation [25]. In the sequel, the two numerical methods are presented.
3.1 Perona-Malik operator
The simplest discretization of the m-dimensional Eq. (6) with reflecting boundary conditions is given by:
$$\begin{array}{@{}rcl@{}} \frac{u_{i}^{n~+~\frac{1}{2}}-u_{i}^{n}}{\tau}=\!\sum\limits_{l~=~1}^{m} \sum\limits_{j\in \mathcal{N}_{l}(i)} \frac{g_{i}^{n}~+~g_{j}^{n}}{2.h^{2} }\left(\!u_{j}^{n~+~\frac{1}{2}}-u_{i}^{n~+~\frac{1}{2}}\right), \end{array} $$
(8)
where pixel i represents some location x
i
, \(u_{i}^{n}\) and \(g_{i}^{n}\) denote, respectively, the approximation of u(x
i
,t
n
) and g(|∇u(x
i
,t
n
)|), m is the dimension size and \(\mathcal {N}_{l}(i)\) consists of the two neighbors of pixel i along the l direction for all l = 1,…,m. In vector-matrix, notation (8) becomes:
$$ \frac{u^{n~+~\frac{1}{2}}-u^{n}}{\tau}=\sum\limits_{l~=~1}^{m} A_{l}(u^{n})u^{n~+~\frac{1}{2}}. $$
The system matrix A
l
(u
n) is defined as \(A_{l}(u^{n})~=~\left [a^{l,n}_{\mathcal {I},\mathcal {J}}\right ]\), where
$$ a^{l,n}_{\mathcal{I},\mathcal{J}}=\left\{ \begin{array}{ll} - g^{n}_{\mathcal{J}\sim \mathcal{I}} &\quad [\mathcal{J}\in \mathcal{N}_{l}(\mathcal{I})],\\ \sum\limits_{{\mathcal{J} \in \mathcal{N}_{l}^{-}(\mathcal{I})} \atop {\mathcal{J} \in \mathcal{N}_{l}^{+}(\mathcal{I})}} g^{n}_{\mathcal{J}\sim \mathcal{I}} &\quad (\mathcal{J}~=~\mathcal{I}), \\ 0 &\quad \text{(otherwise).} \end{array} \right. $$
Therefore, we have:
$$\begin{array}{@{}rcl@{}} u^{n~+~\frac{1}{2}}~=~\left(I-\tau.\sum\limits_{l~=~1}^{m} A_{l}(u^{n})\right)^{-1}u^{n}. \end{array} $$
(9)
The modification applied to (9) has been introduced firstly by [24] named as additive operator splitting (AOS) scheme which leads us to:
$$\begin{array}{@{}rcl@{}} u^{n~+~\frac{1}{2}}~=~\frac{1}{m}\sum\limits_{l~=~1}^{m}(I-\tau.m.A_{l}(u^{n}))^{-1}u^{n}. \end{array} $$
(10)
3.2 The sub-differential flow
The discretization of the problem (7) can be written as:
$$\begin{array}{@{}rcl@{}} w^{n~+~1}+ \partial I_{K}(w^{n~+~1}) \ni w^{n~+~\frac{1}{2}} \ \text{for} \ n~=~0,\ldots,N. \end{array} $$
(11)
where ∂
f denotes the sub-differential of a given function f.
Thanks to [25], we focus our attention on the projection \(w^{n~+~1}~=~{P}_{K}\left (w^{n~+~\frac {1}{2}}\right).\) Indeed,
$$\begin{array}{@{}rcl@{}} J\left(w^{n+1}\right)=\frac{1}{2} \left\| w^{n+1}-w^{n+\frac{1}{2}}\right\|_{L^{2}(\Omega)}^{2}={\min}_{z\in K} J(z), \end{array} $$
(12)
with \(J(z)~=~\frac {1}{2}\left \|z-w^{n~+~\frac {1}{2}}\right \|_{L^{2}(\Omega)}^{2}\).
The dual formulation has been used to deal with this minimization problem. The dual problem associated with (12) is given by the following functional:
$$\begin{array}{@{}rcl@{}} G(z)=\int_{\Omega}(\text{div}(z))^{2}~+~\int_{\Omega} w^{n~+~\frac{1}{2}} \text{div}(z)~+~\lambda \int_{\Omega} |z|. \end{array} $$
(13)
In order to find the numerical solution of the functional (13), we denote by z
h
a minimizer of this functional and G
h
(z
h
) the approximation of G(z) (see [25] for instance):
$$\begin{array}{@{}rcl@{}} G_{h}(z_{h})&=&\int_{\Omega}(\text{div}(z_{h}))^{2}+\int_{\Omega} w_{h}^{n~+~\frac{1}{2}} \text{div}(z_{h})\\ &&+ \lambda \sum\limits_{\tau \in T_{h}} |\tau ||z_{h}(P_{\tau})|, \end{array} $$
(14)
where τ represents simplex of the partitioning of T
h
, |τ| is the area of simplex τ, and P
τ
is one of the vertices of τ. In image processing, |τ| could be seen as discretization step h
2 = 1.
In view of the fact that G
h
is nondifferentiable, we use a relaxation algorithm (see for instance [31] and the references therein) to minimize the functional (14) that can be summarized as follows:
-
1.
Initiate the algorithm with vector q
0, set k = 0, choose a canonical direction e
j
∈R
n.
-
2.
Solving the one-dimensional sub-problems \(\underset {t \in R }{\min } \Psi _{jk}(t)\) where Ψ
jk
is defined as:
$$\begin{array}{@{}rcl@{}} \begin{array}{ll} \Psi_{jk}:& R \rightarrow R\\ &t \rightarrow G_{h}\left(q^{k}+t e_{j}\right). \end{array} \end{array} $$
(15)
-
3.
Taking q
k + 1 = q
k+ω
t
jk
, where ω>0 is an over-relaxation parameter.
-
4.
We can use Newton algorithm to find t
jk
, when Ψ
jk
is differentiable. Else, it can be computed directly.
-
5.
The condition to stop this algorithm is \(\|q^{k}-q^{k~+~1}\|_{l^{2}({R}^{n})}\leq \varepsilon \), for a given convergence tolerance ε.
At last, in the next section, results of numerical simulations are given.