% Template for EUSIPCO 2014 paper; to be used with:
%          spconf.sty  - LaTeX style file, and
%          IEEEbib.bst - IEEE bibliography style file.
% --------------------------------------------------------------------------
%\documentclass[10pt]{article}
\documentclass[10pt,twocolumn,twoside,journal]{IEEEtran}
%\documentclass[10pt,draftcls,onecolumn,journal]{IEEEtran}
\usepackage{amsmath,graphicx,cite}
\usepackage{verbatim}
\usepackage{amsfonts}
\usepackage{booktabs}
%\usepackage{enumitem}
\usepackage{array}
\usepackage{bm}
\usepackage{dsfont}
\usepackage{color}
\usepackage{amsthm}
\setlength{\heavyrulewidth}{1pt}
\newtheorem{lemma}{Lemma}

% Example definitions.
% --------------------
%\def\x{{\mathbf x}}
%\def\L{{\cal L}}

\hyphenation{op-tical net-works semi-conduc-tor}

\newcommand{\MODIF}[1]{\textcolor{black}{#1}} %blue
\newcommand{\ADDED}[1]{\textcolor{black}{#1}} %red

\newcommand\Tstrut{\rule{0pt}{2.6ex}}         % = `top' strut
\newcommand\Bstrut{\rule[-0.9ex]{0pt}{0pt}}   % = `bottom' strut

\begin{document}

% Title.
% ------
\title{Subgraph-based filterbanks for graph signals}
%\title{Empirical Mode Decomposition for Graph Signals}

%
% Single address.
% ---------------
\author{Nicolas~Tremblay,
        Pierre~Borgnat,~\IEEEmembership{Member,~IEEE}
        \thanks{
  Authors are at the Physics Laboratory, CNRS, ENS Lyon, University of Lyon 1, Lyon, France.
  Email: firstname.lastname@ens-lyon.fr. Work supported by the ANR-14-CE27-0001 GRAPHSIP grant. A preliminary approach of this work was presented at 
 Asilomar Conference on Signals, Systems, and Computers 2015~\cite{ASILOMAR2015_CoSub}. 
  Manuscript received XXX revised XXXX. 


}}
%
% For example:
% ------------
%\address{School\\
%   Department\\
%   Address}
%
% Two addresses (uncomment and modify for two-address case).
% ----------------------------------------------------------
%\twoauthors
%  {A. Author-one, B. Author-two\sthanks{Thanks to XYZ agency for funding.}}
%   {School A-B\\
%   Department A-B\\
%   Address A-B}
%  {C. Author-three, D. Author-four\sthanks{The fourth author performed the work
%   while at ...}}
%   {School C-D\\
%   Department C-D\\
%   Address C-D}
%

%\ninept
%
\maketitle
%
\begin{abstract}
We design a critically-sampled \ADDED{compact-support} \ADDED{bi}orthogonal transform for graph signals, via graph filterbanks.  
% Instead of keeping one every two nodes in the filterbank's necessary sampling operations, 
% we base our design on a partition of the graph in connected subgraphs. Coarsening is then achieved 
% by defining one ``supernode'' for each subgraph: \textcolor{blue}{the coarsened graph becomes naturally the subgraph 
% connectivity graph.} 
Instead of partitioning the nodes in two sets so as to remove one every two nodes in the filterbank downsampling operations, 
the design is based on a partition of the graph in connected subgraphs. 
Coarsening is achieved by defining one ``supernode'' for each subgraph and
the edges for this coarsened graph derives from the connectivity between the subgraphs. 
%the coarsened graph becomes naturally the subgraph connectivity graph. 
Unlike the ``one every two nodes'' downsampling on bipartite graphs, this coarsening operation does not have an 
exact formulation in the graph Fourier domain. Instead, we rely on the local Fourier bases of each subgraph to 
define filtering operations. We apply successfully this method to decompose graph signals, and show promising 
performance on compression and denoising. 
\end{abstract}
%
\begin{IEEEkeywords}
Graph signal processing, Laplacian pyramid, filterbanks, community detection, wavelet.
\end{IEEEkeywords}

%\IEEEpeerreviewmaketitle

%
\section{Introduction}
\label{sec:intro}
Graphs are a modeling tool suitable to many applications involving networks, may they be 
social, neuronal, or driven from computer science, molecular biology~\cite{newman_book2010}... Data on these graphs 
may be defined as a scalar (or vector) on each of its nodes, forming a so-called \textit{graph signal}~\cite{shuman_SPMAG2013}. 
In a sense, a graph signal is the extension of the 1-D discrete classical signal (where the signal is defined 
on the circular graph, each node having exactly two neighbors) to any arbitrary discrete topology where each node 
may have an arbitrary number of neighbors. Temperature measured by a sensor network, age of the individuals in a 
social network, Internet traffic in a router network, etc. are all examples of such graph signals. 

Adapting classical signal processing tools to signals defined on graphs \MODIF{has} raised significant interests in the 
last few years~\cite{shuman_SPMAG2013,sandryhaila_SPMAG2014}. For instance, the graph Fourier transform, 
the fundamental building block of signal processing, has several possible definitions, either based on the 
diagonalisation of one of the Laplacian matrices~\cite{hammond_ACHA2011}, 
or based on Jordan's decomposition of the adjacency matrix~\cite{sandryhaila_TSP2013,sandryhaila_ICASSP2013}. 
Building upon this graph Fourier transform, authors have defined different sampling and interpolation 
procedures~\cite{anis_arxiv2015_long,chen_TSP2015,wang_TSP2015,Puy_ARXIV2015}, windowed Fourier 
transform~\cite{shuman_SSP2012}, graph empirical mode decomposition~\cite{tremblay_EUSIPCO2013}, 
different wavelet transforms, including 
spectral graph wavelets~\cite{hammond_ACHA2011,shuman_TSP2015,leonardi_TSP2013}, diffusion wavelets~\cite{coifman_ACHA2006}, 
and wavelets defined via filterbanks~\cite{narang_TSP2012,sakiyama_TSP2014,nguyen_TSP2015,ekambaram_GLOBALSIP2013}. 
Among the applications of graph signal processing, one may cite works on fMRI data~\cite{behjat_EMBC2014}, 
on multiscale community detection~\cite{tremblay_TSP2014}, image compression~\cite{narang_SSP2012}, etc... 
In fact, such graph signal 
processing tools are general enough to deal with many types of irregular data~\cite{sandryhaila_SPMAG2014}.

Graph filterbanks using downsampling %, be they critically sampled or oversampled, 
have been initially defined for bipartite graphs~\cite{narang_TSP2012} 
because: i)~Bipartite graphs, by 
definition, contain two sets of nodes that are natural candidates for the sampling operations; 
ii)~Downsampling followed by upsampling (which forces to zero the signal on one of the two sets of nodes) 
can be exactly written as a filter in the graph Fourier space. %\MODIF{This enables writing} exact 
%anti-aliasing equations 
%for the low-pass and high-pass filters~\cite{narang_TSP2012}.
This enables to write exact anti-aliasing equations 
for the low-pass and high-pass filters to control the spectral folding 
phenomenon due to sampling~\cite{narang_TSP2012}. 
However,
for arbitrary graphs, one needs to decompose the graph in a (non-unique) sum of bipartite 
graphs~\cite{narang_TSP2013,sakiyama_TSP2014,nguyen_TSP2015}, and analyze each of them separately. 
Another solution for arbitrary graph is based on downsampling according to
the polarity of the graph Fourier mode of highest frequency~\cite{shuman_ARXIV2013}.

We propose a significantly different way of defining filterbanks. Instead of trying to find an 
exact equivalent of both the decimation operator, hereafter $\bm{(\downarrow)}$, and a 
filtering operator $\bm{C}$, we directly 
define a decimated filtering operator $\bm{L}=\bm{(\downarrow)}\bm{C}$; 
following here the notations of~\cite{strang_book1996}, 
 where $\bm{L}$ is not to be confused with the Laplacian 
operator of the graph, noted $\bm{\mathcal{L}}$. Consider the 1-D straight-line 
graph where each node has two neighbors, and a partition of this graph in subgraphs of pairs of adjacent nodes. 
The classical Haar low-pass (resp. high-pass) channel samples one node per subgraph and defines on it 
the local average (resp. difference) of the signal. By analogy, we consider a partition of the graph 
in connected subgraphs, not necessarily 
of same size. \MODIF{Creating one ``supernode'' per subgraph, the low-pass channel (resp. high-pass channels)
defines on it the local, i.e., over the subgraph, average (resp. differences) of the signal.}  
The coarsened graphs on which those downsampled signals are defined, are then derived from the connectivity
between the subgraphs: two supernodes are linked if there are edges between the associated subgraphs. 
%\textcolor{blue}{To define the 
%coarsened graph structures on which those downsampled signals are defined, the supernodes are then wired 
%together correspondingly to the subgraph connectivity they represent. }

With this approach, we design a critically-sampled, \ADDED{compact-support} \ADDED{bi}orthogonal filterbank 
that is valid for any partition in connected subgraphs. Depending on the application at hand, 
one has the choice on how to detect such partitions. For image approximation and denoising, an adequate way 
is to use a partition in communities, i.e. groups of nodes more connected with themselves than with the rest 
of the network~\cite{fortunato_PhyRep2010}. This community structure is indeed linked to the low frequencies 
of graph signals~\cite{von2007tutorial,tremblay_TSP2014}. %and this can be seen by plotting the first few graph Fourier modes. 
%In fact, spectral graph clustering~\cite{von2007tutorial} %\cite{vonluxburg_StatComp2011} 
%has been a historic way of detecting communities in a graph. 

%The article is organized as follows. 
Section~\ref{sec:GFT} recalls the definition of the graph Fourier 
transform we use. In Section~\ref{sec:state_art}, after detailing the difficulties to extend classical 
filterbanks to graph signals,
we discuss the state-of-the-art of graph filterbanks.
The main contribution is in Section~\ref{sec:design},
first discussed as an analogy to the Haar filterbank, before presenting fully the proposed graph filterbank design.  
Section~\ref{sec:com_detect} proposes how to obtain a relevant partition in connected subgraph. 
Section~\ref{sec:applications} shows applications, in compression and denoising. 
We conclude in Section~\ref{sec:conclusion}.



\section{The Graph Fourier Transform}
\label{sec:GFT}
Let $\mathcal{G}=(\mathcal{V},\mathcal{E},\mathbf{A})$ be a undirected weighted 
graph with $\mathcal{V}$ the set 
of nodes, $\mathcal{E}$ the set of edges, and $\mathbf{A}$ the weighted adjacency 
matrix such that $\mathbf{A}_{ij}=\mathbf{A}_{ji}\geq0$ is 
the weight of the edge between nodes $i$ and $j$. \MODIF{Let $N$ be the total number of nodes.} 
Let us define the graph's Laplacian matrix 
$\bm{\mathcal{L}}=\mathbf{D}-\mathbf{A}$ where $\mathbf{D}$ is a diagonal matrix 
with $\mathbf{D}_{ii}= \mathbf{d}_i = \sum_{j\neq i} \mathbf{A}_{ij}$ 
the strength of node $i$. %The normalized Laplacian matrix reads 
%$\bm{\mathcal{L}}=\mathbf{S}^{-\frac{1}{2}}\mathbf{L}\mathbf{S}^{-\frac{1}{2}}
%=\mathbf{I}_N-\mathbf{S}^{-\frac{1}{2}}\mathbf{W}\mathbf{S}^{-\frac{1}{2}}$, 
%where $\mathbf{I_N}$ is the identity matrix of size N. 
$\bm{\mathcal{L}}$ is real symmetric, therefore diagonalizable: its spectrum is composed 
of $\left(\lambda_l\right)_{l=1\dots N}$ its set of eigenvalues that we sort: 
$0=\lambda_1\leq\lambda_2\leq\lambda_3\leq\dots\leq\lambda_{N}$;  
and of $\mathbf{\bm{Q}}$ the matrix of its normalized eigenvectors:
$\bm{Q}=\left(\bm{q}_1|\bm{q}_2|\dots|\bm{q}_N\right)$. 
Considering only connected graphs, the multiplicity of eigenvalue $\lambda_1=0$ is 1~\cite{chung_book1997}. 
By analogy to the continuous Laplacian operator whose eigenfunctions
are the continuous Fourier modes and eigenvalues their 
squared frequencies, $\bm{Q}$ is considered as the matrix of the graph's 
Fourier modes, and 
$\left(\sqrt{\lambda_l}\right)_{l=1\dots N}$ its set of associated ``frequencies''~\cite{shuman_SPMAG2013}. 
%A more comprehensive discussion is in Ref.~\cite{leonardi_TSP2013}. 
For instance, the graph Fourier transform $\bm{\hat{x}}$ of a signal $\bm{x}$ defined 
on the nodes of the graph 
%(we choose here to focus on signals defined on the nodes of the graphs) 
reads: $\bm{\hat{x}}=\bm{Q}^\top \bm{x}$. 

%Once the graph Fourier transform is defined, one may define a notion of filter for a graph 
%signal $\bm{x}$. Consider a continuous function $f:[0,\lambda_N]\rightarrow\mathds{R}$. 
%This function defines a diagonal filter matrix $\hat{\bm{F}}$ where $\forall i \quad \hat{F}_{ii}=f(\lambda_i)$. 
%$\hat{\bm{F}}$ is the filter matrix in the Fourier space. In the node-space, this filter matrix, written simply $\bm{F}$, 
%reads~:
%\begin{equation}
%\bm{F}=\bm{Q}\hat{\bm{F}}\bm{Q}^\top.
%\end{equation}
%Therefore, a signal $\bm{x}$ filtered by $f$ reads:
%\begin{equation}
% \bm{F}\bm{x}=\bm{Q}\hat{\bm{F}}\bm{Q}^\top \bm{x}.
%\end{equation}


\section{State of the art}
\label{sec:state_art}

%\begin{figure}
%\centering
% \includegraphics[width=0.48\textwidth]{Analysis_and_Synthesis_classic.pdf}
% \caption{A classical two-channel filterbank representation.}
%\label{fig:cl_filterbank}
%\end{figure}
%
% We recall in Section~\ref{subsec:Haar} Haar's classical filterbank in order to expose in 
% Section~\ref{subsec:adapting_filterbanks} the main  issues encountered  
% when attempting to extend filterbanks to graph signals. We also summarize the state-of-the-art proposed solutions.

\subsection{Classical 1-D filterbank and the Haar filterbanks}
\label{subsec:Haar}
\MODIF{In classical setting, the decimation $\bm{(\downarrow2)}$ operator by 2
is paramount. It keeps one every two nodes and follows what we call
the ``one every two nodes paradigm'', as seen on  Fig.~\ref{fig:different_graph_downsamplings}a).
The classical design of a filterbank is to find a set of operators, e.g. a low-pass filter $\bm{C}$ 
and a high-pass filter $\bm{D}$, that combine well with decimation such that perfect recovery is possible
from the decimated low- and high-pass filtered signals~\cite{strang_book1996}.}

\MODIF{The usual Haar filterbank will be used as a leading example to expose the main  issues encountered  
when attempting to extend filterbanks to graph signals.
Consider the 1-D discrete signal $\bm{x}$ of size $N$. 
Let us recall that, at the first level of the classical Haar filterbank, 
$\bm{x}$ is decomposed into~\cite{strang_book1996}:} 
\\
\MODIF{- its approximation $\bm{x}_1$ of size $N/2$:
 $ \bm{x}_1=\bm{(\downarrow2)}\bm{C}\bm{x}, $
where $\bm{C}$ is the sliding average operator, here in matrix form:
\begin{equation}
\bm{C}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccc}
1 & 1 & 0 & 0 & \dots\\
0 & 1 & 1 & 0 & \dots\\
0 & 0 & 1 & 1 & \dots\\
\vdots &\vdots &\vdots &\vdots &\\
\end{array}\right].
\end{equation}
%obtained by convolution with the vector $(1, 1)/\sqrt{2}$; \\
}
% here in matrix form:
%\begin{equation}
%\bm{C}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccc}
%1 & 1 & 0 & 0 & \dots\\
%0 & 1 & 1 & 0 & \dots\\
%0 & 0 & 1 & 1 & \dots\\
%\vdots &\vdots &\vdots &\vdots &\\
%\end{array}\right].
%\end{equation}
% 
%\begin{equation}
%\bm{x}_1=\bm{L}\bm{x}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccccc}
%1 & 1 & 0 & 0 & 0 & 0 & \dots\\
%0 & 0 & 1 & 1 & 0 & 0 & \dots\\
%0 & 0 & 0 & 0 & 1 & 1 & \dots\\
%\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\\
%\end{array}\right]\bm{x},
%\end{equation}
%where $\bm{L}$ is the decimated sliding average operator.
%\item 
\MODIF{- its detail $\bm{x}_2$  of size $N/2$:
$  \bm{x}_2=\bm{(\downarrow2)}\bm{D}\bm{x}, $
where $\bm{D}$ is the sliding difference operator:
\begin{equation}
\bm{D}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccc}
-1 & 1 & 0 & 0 & \dots\\
0 & -1 & 1 & 0 & \dots\\
0 & 0 & -1 & 1 & \dots\\
\vdots &\vdots &\vdots &\vdots &\\
\end{array}\right].
\end{equation}
%, obtained by convolution with the vector $(-1, 1)/\sqrt{2}$.
}
%\begin{equation}
%\bm{D}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccc}
%-1 & 1 & 0 & 0 & \dots\\
%0 & -1 & 1 & 0 & \dots\\
%0 & 0 & -1 & 1 & \dots\\
%\vdots &\vdots &\vdots &\vdots &\\
%\end{array}\right].
%\end{equation}
%\begin{equation}
%\bm{x}_2=\bm{B}\bm{x}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccccc}
%-1 & 1 & 0 & 0 & 0 & 0 & \dots\\
%0 & 0 & -1 & 1 & 0 & 0 & \dots\\
%0 & 0 & 0 & 0 & -1 & 1 & \dots\\
%\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\\
%\end{array}\right]\bm{x},
%\end{equation}
%where $\bm{B}$ is the decimated sliding difference operator.
%\end{itemize}

\MODIF{This Haar filterbank is orthogonal and critically sampled. Our objective
is to generalize it to signals on arbitrary graphs.}

%This Haar filterbank is said to be: \\
%%\begin{itemize}
%% \item 
%i) \textit{orthogonal}. Indeed, the operator 
%$ \left[\begin{array}{cc}
%\bm{(\downarrow2)}\bm{C}&
%\bm{(\downarrow2)}\bm{D}
%\end{array}\right]^\top$
% %$\left[\begin{array}{cc}(\bm{(\downarrow2)}\bm{C})^\top&(\bm{(\downarrow2)}\bm{D})^\top\end{array}\right]^\top$ 
%is orthonormal: 
%the inverse is its transpose. To recover $\bm{x}$ from its approximation and detail, one only needs 
%to compute:
%\begin{equation}
%\begin{aligned}
%&\left[\begin{array}{cc}
%(\bm{(\downarrow2)}\bm{C})^\top&(\bm{(\downarrow2)}\bm{D})^\top\end{array}\right]
%\left[\begin{array}{c}
%\bm{x}_1\\
%\bm{x}_2
%\end{array}\right]\\
%%&=\left[\begin{array}{cc}
%%\bm{C}^\top\bm{(\uparrow2)}&\bm{D}^\top\bm{(\uparrow2)}\end{array}\right]
%%\left[\begin{array}{c}
%%\bm{x}_1\\
%%\bm{x}_2
%%\end{array}\right]\\
%&=\left[\begin{array}{cc}
%\bm{C}^\top\bm{(\uparrow2)}&\bm{D}^\top\bm{(\uparrow2)}\end{array}\right]
%\left[\begin{array}{c}
%\bm{(\downarrow2)}\bm{C}\\
%\bm{(\downarrow2)}\bm{D}
%\end{array}\right]
%\bm{x} =\bm{x},
%%&=\bm{x}. 
%\end{aligned}
%\end{equation}
%where $\bm{(\uparrow2)}$ is the upsampling operator. \\
%%This enables the schematic representation of Fig.~\ref{fig:Haar_filterbank}. 
% %\item 
% ii) \textit{critically sampled}. Indeed, the amount of post-filter information $\bm{x}_1$ and $\bm{x}_2$ (two vectors of size 
% $N/2$ each) is equal to the amount of pre-filter information $\bm{x}$ (of size $N$). 
%%\end{itemize}
%%
%%Operator $\bm{L}$ (resp. $\bm{B}$) can also be written as the combination of a decimation operator $\bm{(\downarrow2)}$ 
%%and the sliding average (resp. difference) filter $\bm{C}$ (resp. $\bm{D}$):
%%\begin{equation}
%% \bm{L}=\bm{(\downarrow2)}\bm{C}=\frac{1}{\sqrt{2}}\bm{(\downarrow2)}\left[\begin{array}{ccccc}
%%1 & 1 & 0 & 0 & \dots\\
%%0 & 1 & 1 & 0 & \dots\\
%%0 & 0 & 1 & 1 & \dots\\
%%\vdots &\vdots &\vdots &\vdots &\\
%%\end{array}\right],
%%\end{equation}
%%and:
%%\begin{equation}
%% \bm{B}=\bm{(\downarrow2)}\bm{D}=\frac{1}{\sqrt{2}}\bm{(\downarrow2)}\left[\begin{array}{ccccc}
%%-1 & 1 & 0 & 0 & \dots\\
%%0 & -1 & 1 & 0 & \dots\\
%%0 & 0 & -1 & 1 & \dots\\
%%\vdots &\vdots &\vdots &\vdots &\\
%%\end{array}\right].
%%\end{equation}

%\MODIF{All this highlights the central role of decimation $\bm{(\downarrow2)}$ in classical setting, and it follows 
%what we will call the ``one every two nodes paradigm''. Then, classical design of a filterbank is to find
%operators like $\bm{C}$ and $\bm{D}$ that combine well with decimation such that perfect recovery is possible.}
% It also highlights what is needed 
% to design a filterbank: 1) a decimation operator 2) a low-pass filter $\bm{C}$ and a high-pass filter $\bm{D}$ that 
% combine well with each other and the decimation operator such that perfect recovery is possible. \\

\subsection{Adapting filterbanks to graph signals}
\label{subsec:adapting_filterbanks}

%\subsubsection{The difficulty}

For graph signals, a key difficulty is the design of a suitable decimation operator, and 
it comes in two separate problems:
\begin{itemize}
 \item[i)] how to choose the nodes to keep?
 \item[ii)] how to wire together the nodes that are kept, so as to create the downsampled graph?
\end{itemize}

On a straight line or a regular grid, issue i) is solved by the one every two nodes paradigm and issue ii) does not exist:  
the  structure after downsampling is exactly the same as the original (straight line or 2D grid); see Figs.~\ref{fig:different_graph_downsamplings} a) and b). 

\MODIF{To tackle these issues, the following works propose a way to 
adapt the one every two nodes paradigm to arbitrary graphs.} 
%and we recall their propositions.

%As for issue ii): unlike regular grids, downsampling an arbitrary graph will almost 
%always create graphs that do not share the same structural properties than the original, requiring specific node-wiring schemes. 
%
%We specifically recall in Section~\ref{subsec:Narang} Narang et al.'s~\cite{narang_TSP2012, narang_TSP2013} 
%proposition to these two issues, and in Section~\ref{subsec:Schuman} Shuman et al.'s~\cite{shuman_ARXIV2013} 
%proposition. This will enable us to clearly propose and situate our contribution in Section~\ref{sec:design}. 

\begin{figure}
\centering
\includegraphics[width=0.2\textwidth]{classical_Downsample_1D.pdf}\\
a)\\
%\vspace{0.4cm}
\includegraphics[width=0.35\textwidth]{classical_Downsample_2D.pdf}\\
b)\\%\vspace{0.4cm}
\includegraphics[width=0.40\textwidth]{bipartite_Downsample.pdf}\\
c)\\%\vspace{0.4cm}
\includegraphics[width=0.40\textwidth]{ER_graph_Kron.pdf}\\
d)\\%\vspace{0.4cm}
%\includegraphics[width=0.40\textwidth]{Downsample_with_communities3.pdf}\\
%e)\\%\vspace{0.4cm}
 \caption{
State-of-the-art graph downsampling procedure following the ``one every two nodes'' paradigm
(one set in black, the other in gray): %(see Section~\ref{sec:state_art}). 
a) (resp. b) the classical 1D (resp. 2D) downsampling; 
c) bipartite graph downsampling~\cite{narang_TSP2012}; %(see \ref{subsec:Narang}).
d) polarity downsampling from the 
 highest frequency graph Fourier mode~\cite{shuman_ARXIV2013}.
%Some state-of-the-art graph downsampling procedure, where the nodes are separated in two sets: the black and 
% the gray nodes. They all follow the ``one every two nodes'' paradigm, %(see Section~\ref{sec:state_art}). 
% with specific rules to define the two sets and to wire together the nodes after downsampling: a) (resp. b) follows the classical 1D (resp. 2D) downsampling example. 
% For these regular graphs, the wiring simply follows the original graph's regularity; 
% In c), a bipartite graph is downsampled and wired following~\cite{narang_TSP2012}; %(see \ref{subsec:Narang}).
% In d), two sets of nodes of an arbitary graph are chosen according to the polarity of the 
% highest frequency graph Fourier mode and each set is wired based on the Kron reduction~\cite{shuman_ARXIV2013}. %(recalled in Section~\ref{subsec:Schuman}),
}
\label{fig:different_graph_downsamplings}
\end{figure}


\subsubsection{A design for signals defined on bipartite graphs}
\label{subsec:Narang}
Narang and Ortega~\cite{narang_TSP2012, narang_TSP2013} consider first signals 
defined on bipartite graphs (i.e. two-colourable graphs). In this particular case, 
one may still downsample the graph by naturally keeping one every two nodes, as shown in 
Fig.~\ref{fig:different_graph_downsamplings}c). For non-bipartite graphs, they
develop a pre-processing step of the structure where the graph is decomposed in a sum of 
bipartite subgraphs, on which the filterbank is successively applied. 
Other methods to create bipartite graphs have been proposed, by oversampling~\cite{sakiyama_TSP2014}, 
or with maximum spanning tree~\cite{nguyen_TSP2015}. 
For issue ii), the downsampled structure has edges between two nodes if they have at least a common neighbor in the initial graph.
As seen in Fig.~\ref{fig:different_graph_downsamplings}c), a downsampled bipartite graph is not necessarily bipartite
and the pre-processing of the structure is mandatory to iterate the filterbank design.
Still, an interesting property of this design is the specific behavior of bipartite graphs 
Laplacian's eigenvalues, that enable the authors to write specific anti-aliasing equations for the design 
of the filters $\bm{C}$ and $\bm{D}$ (see Eq. (13) of~\cite{narang_TSP2012}) on bipartite graphs.


\subsubsection{A downsampling based on the Laplacian's last eigenvector}
\label{subsec:Schuman}
Shuman et al.~\cite{shuman_ARXIV2013} focus on the eigenvector associated to the Laplacian's largest eigenvalue. 
They create two sets of nodes depending on this eigenvector's sign, as illustrated in Fig.~\ref{fig:different_graph_downsamplings}d). According to the Fourier interpretation 
of the Laplacian's eigenbasis, the last eigenvector corresponds to the ``highest frequency'' of a graph signal. 
This idea, inspired by graph coloring studies~\cite{aspvall_SIAM1984}, generalizes the fact that, for structured grids and  
bipartite graphs, the sign of this eigenvector does alternate every two nodes. 
To tackle issue ii), the authors in~\cite{shuman_ARXIV2013} rely on the Kron 
reduction~\cite{dorfler_TSPCS2013} of the initial graph to obtain new graphs,
and post-process them to remove links from otherwise very dense downsampled graphs,
implying some degree of arbitrary choices. 

In both cases, one sees that there is a part of arbitrariness in the pre- or post-processing steps
to obtain suitable graphs and decimated graphs on which the filterbank can be cascaded.


%Once one has two sets of nodes, the question then arises as to how each set should 
%be wired to form two separate graphs. 
%The authors in~\cite{shuman_ARXIV2013} rely on the Kron reduction~\cite{dorfler_TSPCS2013} of the graph. 
%This method is illustrated in Fig.~\ref{fig:different_graph_downsamplings}d), where the black nodes 
%correspond to negative eigenvector values, and gray nodes correspond to positive eigenvector values. 
%The authors also propose a post-processing 
%procedure where they remove links from otherwise very dense downsampled graphs (as far as 
%graph signal processing is concerned, sparsity of the underlying structures is a desired property for computational efficiency), 
%implying some degree of arbitrary choices.  

%A downfall that this design shares with Narang's bipartite design is that one cannot exactly recover 
%the initial structure from the two downsampled graphs; and, in the event of a multiresolution 
%cascade, one needs to save the structures at all levels in order to reconstruct the original structure, which 
%implies an explosion of the necessary stored information. 
%In a sense, even though the signal (of size $N$) is critically-sampled in both propositions, 
%the structure on which it is defined (of size $N^2$) is not.

%\begin{figure*}
%\centering
% \includegraphics[width=\textwidth]{Analysis_and_Synthesis_with_com4.pdf}
% \caption{The filterbank's schematic representation. Signal filtering and sampling operations are represented in the upper 
% part: one recognizes the classical filterbank of Fig.~\ref{fig:cl_filterbank}. Structure sampling operations are 
% represented in the lower part of the Figure. The choice of the particular algorithm used to decompose the 
% graph structure $\bm{A_0}^{(j-1)}$ in a partition $\bm{c}^{(j)}$ of connected subgraphs is discussed in 
% Section~\ref{sec:com_detect}. This partition information is essential to the design and is 
% used in the sampling operators' definition: this is represented in dotted lines. 
% }
%\label{fig:filterbank}
%\end{figure*}

\section{Filterbanks on connected subgraphs}
\label{sec:design}

The idea we explore lets go of the ``one every two nodes'' 
sampling paradigm, and concentrate on graph coarsening:
given a partition in connected subgraphs of the initial graph, the approximation and detail(s)
will be obtained on each ``supernode'' that represent each connected subgraph.
Hence we will not attempt to define separately analogies of downsampling $\bm{(\downarrow2)}$ and 
filtering $\bm{C}$ and $\bm{D}$ and, instead, we directly define analogies to graph signals 
of the decimated sliding average operator $\bm{L}=\bm{(\downarrow2)}\bm{C}$
and
of the decimated sliding difference operator $\bm{B}=\bm{(\downarrow2)}\bm{D}$.
They read for the Haar filterbanks:
\begin{equation}
\bm{L}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccccc}
1 & 1 & 0 & 0 & 0 & 0 & \dots\\
0 & 0 & 1 & 1 & 0 & 0 & \dots\\
0 & 0 & 0 & 0 & 1 & 1 & \dots\\
\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\\
\end{array}\right] \in \mathbb{R}^{N/2\times N}
\end{equation}
and:
\begin{equation}
\bm{B}=\frac{1}{\sqrt{2}}\left[\begin{array}{ccccccc}
-1 & 1 & 0 & 0 & 0 & 0 & \dots\\
0 & 0 & -1 & 1 & 0 & 0 & \dots\\
0 & 0 & 0 & 0 & -1 & 1 & \dots\\
\vdots &\vdots &\vdots &\vdots &\vdots &\vdots &\\
\end{array}\right] \in \mathbb{R}^{N/2\times N}.
\end{equation}
In Section~\ref{subsec:analogy_Haar}, we first take a close look at the effect of these two Haar operators 
$\bm{L}$ and $\bm{B}$ on the input signal $\bm{x}$, to give insight in the fundamental analogy that is further 
formalized in Section~\ref{subsec:def_operators} to \ref{subsec:cascade}.  
% Our actual filterbank scheme is defined in  Sections~\ref{subsec:fb_design} and~\ref{subsec:cascade}. 
\MODIF{In Section~\ref{subsec:Haar_particular}, we detail the analysis atoms created by the proposed filterbanks.} 
 


%In this paper, to define the structure's sampling operators, we no longer rely on the ``keep one every two nodes'' paradigm, but 
%prefer to start by detecting a partition of the graph in connected subgraphs, in order to define the coarse-grained version of the graph. 

\subsection{Introducing the design by analogy to the Haar filterbank}
\label{subsec:analogy_Haar}
\MODIF{Let us rephrase the Haar filterbank from the proposed new point of view
of operators on connected subgraphs.}

\subsubsection{Replace decimation by partition}
Consider the 1-D classical signal $\bm{x}$ of even size $N$ defined 
on the straight line graph $\mathcal{G}$, of size $N$, where each node has two neighbors. We consider 
the partition $\bm{c}$ of this graph in $K=N/2$ connected subgraphs $\left\{\MODIF{\mathcal{G }^{(k)}}\right\}_{k\in\{1,K\}}$ 
connecting neighbors two-by-two: we call it the Haar partition, and it reads (when coded as a vector):
\begin{equation}
\label{eq:Haar_partition}
\MODIF{\bm{c}=\left(1,1,2,2,3,3,\cdots,K,K\right)^\top},
\end{equation}
where $\bm{c}(i)$ is the label of node $i$'s subgraph. 

\subsubsection{Interpret operators $\bm{L}$ and $\bm{B}$ in terms of local Fourier modes}
Consider subgraph $\MODIF{\mathcal{G }^{(k)}}$ and $\MODIF{\bm{x}^{(k)}}$ the restriction of $\bm{x}$ to this subgraph. 
Define $\MODIF{\mathcal{G }^{(k)}}$'s local adjacency matrix $\bm{\MODIF{A^{(k)}}}$~:
\begin{equation}
 \forall k\in\{1,N/2\}\quad \bm{\MODIF{A^{(k)}}} =\left[\begin{array}{cc}
0&1\\
1&0
\end{array}\right].
\end{equation}
Its Laplacian matrix is diagonalisable with two local Fourier modes:
$ %\begin{equation}
 \MODIF{\bm{q}_1^{(k)\top}}=\frac{1}{\sqrt{2}}\left(1,\quad 1\right)
$ %\end{equation}
of associated eigenvalue $\MODIF{\lambda_1^{(k)}}=0$ and
$ %\begin{equation}
\MODIF{\bm{q}_2^{(k)\top}}=\frac{1}{\sqrt{2}}\left(-1, ~~1\right)
$ %\end{equation}
of associated eigenvalue $\MODIF{\lambda_2^{(k)}}=2$.

The actual effect of the operation $\bm{x}_1=\bm{L}\bm{x}$ in Haar filterbank is 
to assign to each subgraph $\MODIF{\mathcal{G }^{(k)}}$ the first local Fourier component of $\MODIF{\bm{x}^{(k)}}$~:
\begin{equation}
 \forall k\in\{1,..., N/2\}\qquad\bm{x}_1(k)= \MODIF{\bm{q}_1^{(k)\top}}\MODIF{\bm{x}^{(k)}}.
\end{equation}

Similarly, the actual effect of the operation $\bm{x}_2=\bm{B}\bm{x}$ 
may be rewritten as~:
\begin{equation}
 \forall k\in\{1,..., N/2\}\qquad\bm{x}_2(k)= \MODIF{\bm{q}_2^{(k)\top}}\MODIF{\bm{x}^{(k)}}.\\
\end{equation}

In other words $[\bm{x}_1(k) \quad\bm{x}_2(k)]^\top$ is the local (reduced to $\MODIF{\mathcal{G }^{(k)}}$)
Fourier transform of $\MODIF{\bm{x}^{(k)}}$.

\subsubsection{Analogy for graph signals} 
Consider a graph $\mathcal{G}$ and a partition $\bm{c}$ of this graph 
in $K$ connected subgraphs $\left\{\MODIF{\mathcal{G }^{(k)}}\right\}_{k\in\{1,K\}}$. Consider one of 
these subgraphs $\MODIF{\mathcal{G }^{(k)}}$ 
of size $N_k$. 
 We propose the following fundamental analogy: 
consider the $k$-th component of the approximation and all detail signals 
$[\bm{x}_1(k) \quad\bm{x}_2(k)\quad \dots\quad\bm{x}_{N_k}(k)]^\top$ as the local 
graph Fourier transform of $\MODIF{\bm{x}^{(k)}}$, the graph signal reduced to $\MODIF{\mathcal{G }^{(k)}}$. 
To this end, we diagonalize 
$\MODIF{\mathcal{G }^{(k)}}$'s local Laplacian matrix to find its $N_k$ eigenvectors (a.k.a. local Fourier modes) 
sorted w.r.t. their eigenvalues and compute the successive inner products. 
%\MODIF{The fundamental analogy we propose is to 
%put together the $k$-th component of the approximation and all detail signals 
%$[\bm{x}_1(k) \quad\bm{x}_2(k)\quad \dots\quad\bm{x}_{N_k}(k)]^\top$: together, they are the local 
%graph Fourier transform of} $\MODIF{\bm{x}^{(k)}}$, the graph signal reduced to $\MODIF{\mathcal{G }^{(k)}}$. To this end, we diagonalize 
%$\MODIF{\mathcal{G }^{(k)}}$'s local Laplacian matrix to find its $N_k$ eigenvectors (a.k.a. local Fourier modes) 
%sorted w.r.t. their eigenvalues %(a.k.a local Fourier square frequencies), 
%and compute the successive inner products. 

\subsubsection{\ADDED{Graph support of the decimated components}}
\MODIF{
For Haar filterbank of 1-D signals, the two components are defined on straight-line graphs of size $N/2$.
For arbitrary graphs, all subgraphs have not necessarily the same size.
This implies that only subgraphs of size at least $l$ contribute to $\bm{x}_l$.
For instance, a subgraph ${\mathcal{G }^{(k)}}$of three nodes will have have three eigenvectors for
its Laplacian and its first (resp. second, third) eigenvector will contribute to $\bm{x}_1(k)$ 
(resp. $\bm{x}_2(k)$, $\bm{x}_3(k)$).}

\MODIF{The proposed analogy naturally defines the graphs on which are
defined the downsampled signals $\bm{x}_l$. 
Let us introduce a supernode $k$ standing for each subgraph $\MODIF{\mathcal{G }^{(k)}}$.
For $l=1$, the approximation signal $\bm{x}_1$ lies naturally on a graph of adjacency matrix $\bm{A}_1$ where 
 $\bm{A}_1(k,k')$ is the sum of the weights of the  
edges connecting subgraph $k$ to subgraph $k'$ in the original graph. 
Then, for the subsequent graph of adjacency matrix $\bm{A}_l$ on which is defined the detail signal $\bm{x}_l$, only supernodes standing for
subgraphs of size at least $l$ are needed and $\bm{A}_l$ is defined
the same way by summing the edges between involved subgraphs. 
We formalize this analogy in the following. %Sections~\ref{subsec:def_operators} to \ref{subsec:cascade} and 
%illustrate it on a toy example in Section~\ref{subsec:applications_examples}. 
}


%
%Note that, unlike the case of the straight line graph combined to Haar partition, 
%all subgraphs will not necessarily be isomorph, nor of same size. In particular, this implies that only 
%subgraphs of size at least $l$ (i.e. only subgraphs for which there exist an $l$-th local Fourier mode) will 
%contribute to $\bm{x}_l$. For instance, if a subgraph $\MODIF{\mathcal{G }^{(k)}}$ is reduced to a unique node, 
%then its associated local Laplacian will only have one eigenvector: this particular subgraph will only contribute 
%to $\bm{x}_1(k)$ and not to the detail signals $\{\bm{x}_l\}_{l\geq2}$. On the other hand, 
%if a subgraph $\MODIF{\mathcal{G }^{(k)}}$ contains three nodes, its local Laplacian will have three eigenvectors 
%(sorted w.r.t. their eigenvalues). Its first (resp. second, third) eigenvector will contribute to $\bm{x}_1(k)$ 
%(resp. $\bm{x}_2(k)$, $\bm{x}_3(k)$). We develop the 
%details in Section~\ref{subsec:def_operators}.

%%\subsubsection
%\textbf{On which graphs are defined the downsampled signals?}
%Having revisited the effects of operators $\bm{L}$ and $\bm{B}$ as a combination of 
%local Fourier transforms, a question remains: on which graphs are defined the downsampled signals $\bm{x}_1$,  
%$\bm{x_2}$, $\bm{x_3}$,...? 
%%Consider an arbitrary graph $\mathcal{G}$ and an arbitrary partition $\bm{c}$ of 
%%this graph in $K$ connected subgraphs $\left\{\MODIF{\mathcal{G }^{(k)}}\right\}_{k\in\{1,K\}}$. 
%Let us introduce a supernode $k$ standing for each subgraph $\MODIF{\mathcal{G }^{(k)}}$, and define 
%$\mathcal{G}_l$ (of adjacency matrix $\bm{A}_l$) the graph on which $\bm{x}_l$ is defined. 
%For $l=1$, $\bm{A}_1(k,k')$ is the sum of the weights of the  
%links connecting subgraph $k$ to subgraph $k'$ in the original graph. 
%For $k=k'$, and by convention, 
%we impose no self-loop, i.e. $\bm{A}_1(k,k)=0$. 
%For the subsequent graphs $\mathcal{G}_2$, 
%$\mathcal{G}_3$, $\dots$ on which are defined $\bm{x}_2$, $\bm{x}_3$, $\dots$, we encounter the issue previously 
%pointed that the subgraphs do not have the same size. Hence they do not all participate in the definition of $\bm{x}_l$. In fact, 
%only subgraphs containing at least $l$ nodes participate to the definition of $\bm{x}_l$. Therefore, 
%to define $\mathcal{G}_2$ (resp. $\mathcal{G}_3$, $\mathcal{G}_4$, etc.), we first discard all subgraphs that contain strictly less than 
%2 (resp. 3, 4, etc.) nodes, and create 
%the remaining subgraph connectivity matrix $\bm{A}_2$ (resp. $\bm{A}_3$, $\bm{A}_4$, etc.), on which $\bm{x}_2$ 
%(resp. $\bm{x}_3$, $\bm{x}_4$, etc.) 
%is defined.  
%Details are developed in Section~\ref{subsec:def_operators}. 
%In the case of  a straight-line graph $\mathcal{G}$ with Haar's partition, 
%$\mathcal{G}_1$ and $\mathcal{G}_2$ are also straight-line graphs.


%In the previous paragraph's interpretation, we have seen that $\bm{x}_l(k)$ is  
%closely related to subgraph $\MODIF{\mathcal{G }^{(k)}}$. 
%In fact, let us 
%
 %Writing $\bm{A_1}$ its adjacency matrix, $A_1(k,k')$ ($k\neq k'$) is the sum of the weights of the  
%links connecting subgraph $k$ to subgraph $k'$ in the original graph. For $k=k'$, and by convention, 
%we write $A_1(k,k)=0$. 
%In the case of the straight-line original graph $\mathcal{G}$ and Haar's partition, 
%$\mathcal{G}_1$ is also a straight-line graph, of size $N/2$. %, and containing $N/2$ self-loops 
%
%
%\textbf{Analogy for graph signals:} For an arbitrary graph $\mathcal{G}$ and an arbitrary partition $\bm{c}$ of 
%this graph in $K$ connected subgraphs $\left\{\MODIF{\mathcal{G }^{(k)}}\right\}_{k\in\{1,K\}}$, we use the same idea to create 
%$\mathcal{G}_1$ on which is defined $\bm{x}_1$:  $\bm{A}_1(k,k')$ is the sum of the weights of the  
%links connecting subgraph $k$ to subgraph $k'$ in the original graph. 


\subsection{\MODIF{Formalization of the operators necessary to the design}}
\label{subsec:def_operators}
% \ADDED{To help the assimilation of the following definitions, the reader may in parallel look at 
%Appendix~\ref{subsubsec:example}, where a trivial concrete example is fully detailed.}

\subsubsection{Subgraph \MODIF{sampling} operators}

Consider an arbitrary graph $\mathcal{G}$ and an arbitrary partition $\bm{c}$ of this graph 
in $K$ connected subgraphs $\left\{\MODIF{\mathcal{G }^{(k)}}\right\}_{k\in\{1,..., K\}}$. Write 
 $N_k$ the number of nodes in subgraph $\MODIF{\mathcal{G }^{(k)}}$ 
 \ADDED{and $\Gamma^{(k)}\subset\mathcal{V}$ the list of nodes in $\mathcal{G }^{(k)}$.} 
%
 \begin{comment}
Let us first define the matrix $\bm{S}\in\mathbb{R}^{N\times K}$, a more practical way (for linear algebra calculus) 
than vector $\bm{c}$ to encode the connected subgraph structure :
\MODIF{
\begin{equation}
 \begin{aligned}
  S(i,j) &=1 \mbox{  if  } i\in\Gamma^{(j)}\\
  &=0 \mbox{  if not.}
 \end{aligned}
\end{equation}}

\ADDED{We will also use the normalized version of $\bm{S}$, defined as :
\begin{equation}
 \begin{aligned}
  S^n(i,j) &=\frac{1}{\sqrt{N_j}} \mbox{  if  } i\in\Gamma^{(j)}\\
  &=0 \mbox{  if not.}
 \end{aligned}
\end{equation}}
 \end{comment}
%
For each subgraph $\MODIF{\mathcal{G }^{(k)}}$, % composed of $N_k$ nodes, % $\{v_{\sigma^k(1)},v_{\sigma^k(2)},\dots,v_{\sigma^k(N_k)}\}$, 
let us define the sampling operator $\MODIF{\bm{C}^{(k)}\in\mathbb{R}^{N\times N_k}}$ such that: % of size $N\times N_k$:
%
\MODIF{
  \begin{equation}
  \label{eq:sampling_op_Ck}
    \begin{aligned}
      C^{(k)} (i,j) &= 1 \mbox{  if   } \Gamma^{(k)}(j)=i,\\
      &= 0 \mbox{  if not.}
    \end{aligned}
  \end{equation}}
\ADDED{Applying $\bm{C}^{(k)\top}$ to a graph signal $\bm{x}$, one obtains the graph signal 
reduced to subgraph $\mathcal{G }^{(k)}$, i.e. $\bm{x}^{(k)}$.} 
%\begin{equation}
%\label{eq:sampling_op_Ck}
% \bm{C}_k=\left(\bm{\delta}_{\sigma^k(1)}|\bm{\delta}_{\sigma^k(2)}|\cdots|\bm{\delta}_{\sigma^k(N_k)}\right),
%\end{equation}
%
%where $\bm{\delta}_{\sigma^k(i)}(j)=1$ if $\sigma^k(i)=j$, and zero otherwise.
\ADDED{Conversely, applying $\bm{C}^{(k)}$ expands a signal defined on $\mathcal{G }^{(k)}$ to a
graph signal on $\mathcal{G }$ with zero-padding. 
It then turns out that the intra-subgraph adjacency matrix of $\mathcal{G }^{(k)}$,
keeping only the links within $\mathcal{G }^{(k)}$ and 
noted $\MODIF{\bm{A_{int}}^{(k)}\in\mathbb{R}^{N_k^2}}$, satisfies:
\begin{equation}
\label{eq:L_ik}
 \forall k\in\{1,..., K\}  \qquad \MODIF{\bm{A_{int}}^{(k)}}=\MODIF{\bm{C}^{(k)\top}\bm{A_{int}}\bm{C}^{(k)}}.
\end{equation}
}
As a consequence, the adjacency matrix $\bm{A}$ may be written as the sum of two adjacency matrices:
%
\begin{itemize}
%
 \item the intra-subgraph adjacency matrix, \MODIF{grouping the $\bm{A_{int}}^{(k)}$ in a block matrix
 keeping the edges within subgraphs:}
 \begin{equation}
  \MODIF{\bm{A_{int}}}=\displaystyle\sum_{k=1}^K  \MODIF{\bm{C}^{(k)}\bm{C^{(k)\top}}}\bm{A}\MODIF{\bm{C}^{(k)}\bm{C}^{(k)\top}}.
 \end{equation}
%
 \item the inter-subgraph  adjacency matrix  $\MODIF{\bm{A_{ext}}}=\bm{A}-\MODIF{\bm{A_{int}}}$ that 
 keeps only the links connecting subgraphs together. 
\end{itemize}



\subsubsection{Subgraph Laplacian operators}
\label{subsec:local_Li}
On each $\MODIF{\mathcal{G }^{(k)}}$, let us define $\MODIF{\bm{\mathcal{L}_{int}}^{(k)}}$ the local Laplacian, 
computed from $\MODIF{\bm{A_{int}}^{(k)}}$. 
%In other words,  $\MODIF{\bm{\mathcal{L}_{int}}^{(k)}}$ is the Laplacian matrix of subgraph $\MODIF{\mathcal{G }^{(k)}}$. % of size $N_k$. 
It is diagonalisable:
\begin{equation}
 \forall k\in\{1,...,K\}\qquad \MODIF{\bm{\mathcal{L}_{int}}^{(k)}}=\MODIF{\bm{Q}^{(k)}\bm{\Lambda}^{(k)}\bm{P}^{{(k)\top}}},
\end{equation}
with $\MODIF{\bm{\Lambda}^{(k)}}$ the diagonal matrix of sorted eigenvalues ($\MODIF{\lambda_1^{(k)}}$ 
is the smallest):
\begin{equation}
 \MODIF{\bm{\Lambda}^{(k)}}=\mbox{diag}\left(\MODIF{\lambda_1^{(k)}, \lambda_2^{(k)}, \dots, \lambda_{N_k}^{(k)}}\right), 
\end{equation} 
and $\MODIF{\bm{Q}^{(k)}}$ the basis of local Fourier modes:
\begin{equation}
 \MODIF{\bm{Q}^{(k)}}=\left(\MODIF{\bm{q}_1^{(k)}|\bm{q}_2^{(k)}|\dots|\bm{q}_{N_k}^{(k)}}\right).
\end{equation} 
\ADDED{and $\bm{P}^{{(k)\top}}=\left(\bm{Q}^{(k)}\right)^{-1}$ %the inverse of $\bm{Q}^{{(k)}}$:
with:
\begin{equation}
 \bm{P}^{{(k)\top}}=\left(\bm{p}_1^{(k)}|\bm{p}_2^{(k)}|\dots|\bm{p}_{N_k}^{(k)}\right)^\top.
\end{equation}}


\ADDED{We {normalize the $\bm{q}_i^{(k)}$ with the $L_p$ norm}:}
\begin{equation}
\label{eq:norm}
\forall i\in[1,N_k]\qquad ||\bm{q}_i^{(k)}||_p=\left(\sum_j |\bm{q}_i^{(k)}(j)|^p\right)^{1/p}=1.
\end{equation}
\ADDED{We discuss the choice of $p$ (usually 1 or 2) in Section~\ref{subsec:Haar_particular}.} 

For each $\MODIF{\bm{q}_i^{(k)}}$ of size $N_k$ defined on the local 
subgraph $\MODIF{\mathcal{G }^{(k)}}$, 
let $\MODIF{\bar{\bm{q}}_i^{(k)}}$ be its zero-padded extension to the whole global graph:
\begin{equation}
 \forall k\in\{1,K\} \quad \forall i\in\{1,N_k\}\qquad \MODIF{\bar{\bm{q}}_i^{(k)}=\bm{C}^{(k)}\bm{q}_i^{(k)}}.
\end{equation}
\ADDED{Similarly $\bar{\bm{p}}_i^{(k)}$ stands for the zero-padded extension of $\bm{p}_i^{(k)}$.}
%on the  whole graph.} 

\textit{Nota bene:} we could have of course obtained the $\MODIF{\bar{\bm{q}}_i^{(k)}}$ \ADDED{and 
$\bar{\bm{p}}_i^{(k)}$} 
by direct diagonalization of the Laplacian 
matrix of $\MODIF{\bm{A_{int}}}$, 
but the introduced notations are used for the next definitions.


\subsubsection{\MODIF{Analysis, Synthesis and Group operators}}
\label{subsec:op_fam}
Considering the connected subgraph partition $\bm{c}$, define  
$\tilde{N}_1$ the maximum number of nodes in any subgraph:
\begin{equation}
\label{eq:tildeN}
 \tilde{N}_1=\max_k N_k.
\end{equation}
For any $l\in\{1,..., \tilde{N}_1\}$, we note $\MODIF{\mathcal{I}_l}$ the list of subgraph labels containing at least $l$ nodes:
\begin{equation}
 \forall l\in\{1,..., \tilde{N}_1\}\qquad \MODIF{\mathcal{I}_l}=\left\{k\in\{1,K\} \mbox{ s.t } N_k\geq l\right\}.
\end{equation}
For instance, as all subgraphs contain at least 1 node, $\mathcal{I}_1$ contains all the $K$ subgraph labels. 
Also, necessarily:
 $|\mathcal{I}_1|\geq|\mathcal{I}_2|\geq\cdots\geq|\mathcal{I}_K|$ (where $|.|$ denotes the cardinality). 
 \ADDED{By construction, we have that 
 $\sum_l |\MODIF{\mathcal{I}_l}|=N$. }
 
The family of \MODIF{Analysis} operators $\{\bm{\Theta}_l\in\mathbb{R}^{N\times |\MODIF{\mathcal{I}_l}|}\}$ are the $\tilde{N}_1$ operators \ADDED{that generalize $\bm{L}$ and $\bm{B}$ of the Haar filterbank:}
\begin{equation}
 \forall l\in\{1,..., \tilde{N}_1\} \qquad \bm{\Theta}_l=\left(\bar{\bm{q}}_l^{\MODIF{\mathcal{I}_l}(1)}|\bar{\bm{q}}_l^{\MODIF{\mathcal{I}_l}(2)}|\cdots|\bar{\bm{q}}_l^{\MODIF{\mathcal{I}_l}(|\MODIF{\mathcal{I}_l}|)}\right).
\end{equation}
This means that operator $\bm{\Theta}_l$ groups together all local Fourier modes associated to 
the $l$-th eigenvalue of all subgraphs containing at least $l$ nodes. 

\ADDED{The family of $\tilde{N}_1$  Synthesis operators $\{\bm{\Pi}_l\in\mathbb{R}^{N\times |\mathcal{I}_l|}\}$ 
read:}
\begin{equation}
 \ADDED{\forall l\in\{1,..., \tilde{N}_1\} \qquad \bm{\Pi}_l=\left(\bar{\bm{p}}_l^{\mathcal{I}_l(1)}|\bar{\bm{p}}_l^{\mathcal{I}_l(2)}|\cdots|\bar{\bm{p}}_l^{\mathcal{I}_l(|\mathcal{I}_l|)}\right).}
\end{equation}
%This means that operator $\bm{\Pi}_l$ groups together all local Fourier modes associated to 
%the $l$-th eigenvalue of all subgraphs containing at least $l$ nodes. }

%\ADDED{From this operator family, we derive two similar families that we will use in the following:  
%$\forall l\in\{1,\tilde{N}_1\}$ 
%\begin{equation}
% \bm{Q}^f_l=\left(\frac{\bar{\bm{q}}_l^{I_l(1)}}{\sqrt{N_{I_l(1)}}}|\frac{\bar{\bm{q}}_l^{I_l(2)}}{\sqrt{N_{I_l(2)}}}|\cdots|\frac{\bar{\bm{q}}_l^{I_l(|I_l|)}}{\sqrt{N_{I_l(|I_l|)}}}\right),
%\end{equation}
%and 
%\begin{equation}
%\bm{Q}^b_l=\left(\sqrt{N_{I_l(1)}}\bar{\bm{q}}_l^{I_l(1)}|\cdots|\sqrt{N_{I_l(|I_l|)}}\bar{\bm{q}}_l^{I_l(|I_l|)}\right).\\
%\end{equation}}

The family of Group operators $\{\bm{\Omega}_l\in\mathbb{R}^{N\times |\MODIF{\mathcal{I}_l}|}\}$ also contains $\tilde{N}_1$ operators defined as: 
\MODIF{
\begin{equation}
  \begin{aligned}
 \forall l\in\{1,..., \tilde{N}_1\}\qquad   \Omega_l(i,j) &= 1 \mbox{  if  } i\in\Gamma^{(\MODIF{\mathcal{I}_l}(j))},\\ 
    &= 0 \mbox{  if not.}
  \end{aligned}
\end{equation}}
This means that $\bm{\Omega}_l$ groups together indicator functions of subgraphs containing at least $l$ nodes. 
%
%
%\begin{equation}
%\bm{\Omega}_l=\left(\mathds{1}_{\mbox{Csub\;}I_l(1)}|\mathds{1}_{\mbox{Csub\;}I_l(2)}|\dots|\mathds{1}_{\mbox{Csub\;}I_l(|I_l|)}\right).
%\end{equation}

%We also define its normalized counter-part:
%\begin{equation}
%\bm{S}^n_l=\left(\frac{\mathds{1}_{\mbox{Csub\;}I_l(1)}}{\sqrt{N_{I_l(1)}}}|\frac{\mathds{1}_{\mbox{Csub\;}I_l(2)}}{\sqrt{N_{I_l(2)}}}|\dots|\frac{\mathds{1}_{\mbox{Csub\;}I_l(|I_l|)}}{\sqrt{N_{I_l(|I_l|)}}}\right).
%\end{equation}


\subsubsection{\ADDED{On the operators' uniqueness}} 
\ADDED{
Operators as we have defined them are not unique if no further rules are enforced. In fact, 
for each eigenvector $\bm{q}_i^{(k)}$, its opposite $-\bm{q}_i^{(k)}$ is also an eigenvector. 
Moreover, in the 
case of eigenvalue multiplicity, associated eigenvectors are not unique. 
To enforce uniqueness, any set of deterministic rules to extract eigenvectors will work. 
To solve the orientation issue, one may for instance decide to set the first non-zero coefficient 
of all vectors to be positive. 
For eigenvalues with multiplicity, we discuss a possible set of rules in Appendix~\ref{sec:uniqueness}
that garantees uniqueness. 
}


\subsection{The filterbank design}
\label{subsec:fb_design}
\subsubsection{Analysis block}
Given a signal $\bm{x}$ defined on the graph whose adjacency matrix is $\bm{A}$, one first 
needs to find a partition $\bm{c}$ in connected subgraphs. The maximum number of nodes 
in any subgraph of $\bm{c}$ is $\tilde{N}_1$ (see eq.~(\ref{eq:tildeN})) and it determines the number of channels through which $\bm{x}$ will be 
analyzed. Then, from $\bm{c}$, one constructs all operators $\bm{\Theta}_l$  
and $\bm{\Omega}_l$ as described in Section~\ref{subsec:def_operators}. Finally, the signal $\bm{x}$ defined on the graph is decomposed, 
through the $\tilde{N}_1$ channels, in $\tilde{N}_1$ signals:
\begin{equation}
\label{Eq:analysis_eq}
 \forall l\in\{1,..., \tilde{N}_1\}\qquad \bm{x_l}=\bm{\Theta}_l^{\top}\bm{x}, 
\end{equation}
each of them defined on a graph whose adjacency matrix reads:
\begin{equation}
\bm{A}_l=\bm{\Omega}_l^\top\MODIF{\bm{A_{ext}}}\bm{\Omega}_l.
\end{equation}
\ADDED{By this formula, the convention is that there is no self-loop, i.e.,  for $k=k'$, $\bm{A}_l(k,k)=0$.
Also, adjacency matrices $\bm{A}_l$ for $l\geq2$ are only needed if one decides to cascade the 
filterbank on detail channels;
here, the cascade will only be done on $\bm{A}_1$ (see Fig.\ref{fig:cascade} and Section~\ref{subsec:cascade}).}


%\noindent\textit{Proposition 1:} For all $l\in\{1,\tilde{N}_1\}$, $\bm{\mathcal{L}}_l=\bm{\Omega}_l^\top\bm{\mathcal{L}}\bm{\Omega}_l$ defines a proper Laplacian.
% \begin{proof}
%  This is the proof.
% \end{proof}

% \noindent\textit{Proposition 2:} For all $l\in\{1,\tilde{N}_1\}$, $\bm{\Omega}_l^\top\bm{\mathcal{L}}\bm{\Omega}_l=\bm{\Omega}_l^\top\bm{L_e}\bm{\Omega}_l$.
% \begin{proof}
%  This is the proof.
% \end{proof}

\begin{figure}
\centering
 \includegraphics[width=0.48\textwidth]{simple_filterbank_schema.pdf}
 \caption{Schematic representation of the analysis and synthesis blocks. %of the proposed filterbanks.
 }
\label{fig:fb_scheme}
\end{figure}

\subsubsection{A remark on the storage of structural information}
\label{subsubsec:technical_dis}
An important question is whether the total amount of stored information 
pre- and post-analysis equal or not? In terms of signal 
information only (i.e., discarding the structural information), 
the total amount of stored information is equal on both sides of the analysis 
block as each of the downsampled signals 
$\bm{x_l}$ is of size $|\MODIF{\mathcal{I}}_l|$ and $\sum_l |\MODIF{\mathcal{I}}_l|=N$. 

On the other hand, in terms of structural information (i.e. the information 
of the adjacency matrices), one needs to keep both the structural information pre- and 
post-analysis. Indeed, the post-analysis structural information is not enough to 
reconstruct the original graph (unlike the signal $\bm{x}$ who can be perfectly 
reconstructed from its approximation and details, as we will see in  
Section~\ref{subsubsec:synth}). The amount of stored structural
information therefore increases after analysis and this is --at least for now-- 
an irreducible storage price to pay. This is a common downfall of all graph filterbanks 
yet proposed, e.g. \cite{narang_TSP2012,narang_TSP2013,shuman_ARXIV2013,sakiyama_TSP2014,nguyen_TSP2015}. 
Finding ways to critically sample both the structure and  the signal 
defined on it is part of our ongoing research and is not in the scope of this article. 

In the following, all graph structures are stored in the form $\bm{A}=\MODIF{\bm{A_{int}}}+\MODIF{\bm{A_{ext}}}$, as 
this does not increase the amount of information (the number of links) but still subtly 
encodes the connected subgraph structure: indeed the partition $\bm{c}$ can be exactly recovered 
by detecting the connected components of $\MODIF{\bm{A_{int}}}$. In Narang et al.~\cite{narang_TSP2012,narang_TSP2013}, authors 
also need to keep an information equivalent to $\bm{c}$: the bipartite graph decomposition of $\bm{A}$ and, for each 
bipartite graph, the information of the two sets of nodes. It is also the case in Shuman et 
al.~\cite{shuman_ARXIV2013}'s work, where authors need to keep the downsampling vector $\bm{m}$.  
%In all cases, this information does not increase the amount of stored information as it may   
%be subtly encoded by writing the adjacency matrix as a sum of 


 \subsubsection{Synthesis block}
 \label{subsubsec:synth}
\MODIF{One starts the synthesis with the list of signals $\left\{\bm{x_l}\right\}_{l\in\{1,\tilde{N}_1\}}$ 
 and the structure information $\bm{A}=\MODIF{\bm{A_{int}}}+\MODIF{\bm{A_{ext}}}$.  We show here that $\bm{x}$ 
 may be exactly recovered from that information. 
First of all, one extracts $\bm{c}$ from $\MODIF{\bm{A_{int}}}$, which in turn enables to compute 
 all Synthesis operators  $\{\MODIF{\bm{\Pi}_l}\}$ %_{l\in\{1,..., \tilde{N}_1\}}$ 
following Sections~\ref{subsec:local_Li} and~\ref{subsec:op_fam}. Moreover:}
%
\begin{lemma}\ADDED{[Perfect reconstruction]
$\bm{x}$ is perfectly reconstructed from $\{\bm{x_l}\}_{l\in[1,...,\tilde{N_1}]}$ 
by applying successively each Synthesis operator to its corresponding channel:
\begin{equation}
\label{Eq:perf_rec}
\begin{aligned}
\displaystyle\sum_{l=1}^{\tilde{N}_1} \bm{\Pi}_l \bm{x_l}=\bm{x}.%=\displaystyle\sum_{l=1}^{\tilde{N}_1} \bm{\Theta}_l \bm{\Theta}_l^{\top}\bm{x}=\bm{x}.
\end{aligned}
\end{equation}}
\end{lemma}
%
\begin{proof}\ADDED{
Combining Eqs.~\eqref{Eq:analysis_eq} and~\eqref{Eq:perf_rec}, one has:
\begin{equation}
\displaystyle\sum_{l=1}^{\tilde{N}_1} \bm{\Pi}_l \bm{x_l} = 
  (\sum_{l=1}^{\tilde{N}_1} \bm{\Pi}_l \bm{\Theta}_l^{\top})\bm{x}= (\sum_{l=1}^{\tilde{N}_1} \sum_{j=1}^{|\mathcal{I}_l|} \bar{\bm{p}}_l^{\mathcal{I}_l(j)} \bar{\bm{q}}_l^{\mathcal{I}_l(j)\top}) \bm{x}.
\end{equation}
$\bar{\bm{p}}_l^{\mathcal{I}_l(j)} \bar{\bm{q}}_l^{\mathcal{I}_l(j)\top}$ is a matrix of size $N\times N$, with 
non zero coefficients only for indices in subgraph $\mathcal{I}_l(j)$. In this non-zero block, it equals 
$\bm{p}_l^{\mathcal{I}_l(j)} \bm{q}_l^{\mathcal{I}_l(j)\top}$. One finally obtains:
\begin{equation}
\begin{aligned}
 \sum_{l=1}^{\tilde{N}_1} \bm{\Pi}_l \bm{\Theta}_l^{\top}&=
 \left[\footnotesize{\begin{array}{ccccc}
\bm{P}^{(1)} \bm{Q}^{(1)\top} & 0 & \cdots & 0\\
0 & \bm{P}^{(2)} \bm{Q}^{(2)\top} & \cdots & 0\\
\vdots & \vdots & \vdots  & \vdots\\
0 & 0  & \cdots & \bm{P}^{(K)} \bm{Q}^{(K)\top}\\
\end{array}}\right]\\
&=\bm{I}_N
\end{aligned}
\end{equation}
the Identity, as $\bm{P}^{(k)\top}=\left(\bm{Q}^{(k)}\right)^{-1}$, which ends the proof}.
\end{proof}
We show in Fig.~\ref{fig:fb_scheme} a schematic representation of the analysis and synthesis blocks of the proposed 
graph filterbanks. 


%For the signal $\bm{x}$, one needs to compute all operators $\bm{\Theta}_l$ of 
%Section~\ref{subsec:op_fam}. 
%All those operators derive from the knowledge of the subgraph structure $\bm{c}$, that
%one can efficiently recover 
%by computing the connected components of $\bm{A_i}$. Indeed, by construction, 
%the graph coded by $\bm{A_i}$ is indeed 
%a sum of connected components corresponding to the connected subgraphs $\MODIF{\mathcal{G }^{(k)}}$ defined by the partition 
%vector $\bm{c}$. 
%Once $\bm{c}$ is recovered, one only needs to follow calculations of Sections~\ref{subsec:local_Li} 
%and~\ref{subsec:op_fam} to obtain $\bm{\Theta}_l$. 
 
\subsubsection{Critical sampling and \MODIF{biorthogonality}}
Starting with data $\bm{x}$ of size $N$, the analysis block provides vectors $\bm{x_l}$ of size $|I_l|$
$\forall l\in\{1,..., \tilde{N}_1\}$.
Storing all the $\bm{x_l}$ accounts for $\sum_l |I_l|=N$ values: 
the filterbank is critically sampled.

% and $\bm{A}$ of size $|\mathcal{E}|$ the number of edges of the graph : 
%he or she starts with a total of $N+|\mathcal{E}|$ amount of information. 
%At the next level, after the analysis block, 
%one needs to store:
%\begin{itemize}
% \item $\bm{A_i}$ (needed to compute the $\bm{\Theta}_l$ and $\bm{\Omega}_l$) and $\bm{A_e}$ (needed to compute the $\bm{A}_l$). 
% The sum of these two adjacency matrices account for $|\mathcal{E}|$ information to store.
% \item  $\forall l\in\{1,\tilde{N}_1\}$ $\bm{x_l}$ is of size $|I_l|$ : storing all the $\bm{x_l}$ accounts 
% for $\sum_l |I_l|=N$ information to store. 
%\end{itemize}
%The total amount of stored information stays constant: the filterbank is critically sampled. \\
\MODIF{
Furthermore, this filterbank is biorthogonal. Indeed, the analysis filter 
combining the $\tilde{N}_1$ channels 
may be written  as 
$\left[\bm{\Theta}_1\quad\bm{\Theta}_2\quad\dots\quad\bm{\Theta}_{\tilde{N}_1}\right]^\top$. 
Moreover, the overall synthesis filter reads 
$\left[\bm{\Pi}_1\quad\bm{\Pi}_2\quad\dots\quad\bm{\Pi}_{\tilde{N}_1}\right]$. 
This filterbank is biorthogonal as we have:
\begin{equation}
 \left[\bm{\Pi}_1\quad\bm{\Pi}_2\quad\dots\quad\bm{\Pi}_{\tilde{N}_1}\right] \left[\bm{\Theta}_1\quad\bm{\Theta}_2\quad\dots\quad\bm{\Theta}_{\tilde{N}_1}\right]^\top=\bm{I}_N,
\nonumber\end{equation}
as shown by Lemma 1. In the specific case where we choose $p=2$ for the normalization of Eq.~\eqref{eq:norm}, 
 we  have  $\bm{P}^{(k)}=\bm{Q}^{(k)}$, therefore $\bm{\Pi}_l=\bm{\Theta}_l$: in this case, 
the filterbank simply codes for an \textit{orthogonal} transform.} 

\subsection{The analysis cascade}
\label{subsec:cascade}
\begin{figure}
\centering
 \includegraphics[width=0.48\textwidth]{Lap_pyramid3.pdf}
 \caption{The first three levels of the analysis cascade.}
\label{fig:cascade}
\end{figure}
Filterbanks are easily organised in cascade, each level of which contains the analysis and synthesis operators defined 
in Section~\ref{subsec:fb_design}. Given an original graph of adjacency matrix $\bm{A}$, a signal 
$\bm{x}$ defined on it, \ADDED{and a partition $\bm{c}$ of the graph, one may 
obtain the $\tilde{N}_1$ Analysis operators $\{\bm{\Theta}_l^{(1)}\}$ where the index in parenthesis 
stands for the level of the analysis cascade. The cascade's first level comprises of:}
\begin{equation}
  \MODIF{\forall l\in[1,\tilde{N}_1]\quad \bm{x_l}^{(1)}=\bm{\Theta}_l^{(1)\top}\bm{x} \mbox{  and  } \bm{A}_l^{(1)}=\bm{\Omega}_l^{(1)\top}\bm{A}_{ext}\bm{\Omega}^{(1)}_l.}
\nonumber\end{equation}
For each of these channels, one may iterate the same analysis scheme, thereby obtaining successive approximations and 
details of the original signal at different scales of analysis. \ADDED{Classically, and we will follow 
this approach in the following, one iterates the analysis scheme only on the 
approximation signal at each level of the cascade, as shown on Fig.~\ref{fig:cascade}. 
Considering the approximation signal $\bm{x}_1^{(j)}$ at level $(j)$ defined on the approximation graph 
coded by $\bm{A}_1^{(j)}$, and a partition $\bm{c}^{(j)}$ of this graph, one may obtain the 
$\tilde{N}_{j+1}$ Analysis operators $\{\bm{\Theta}_l^{(j+1)}\}$, that define the next scale of analysis. 
Similarly, we note $\{\bm{\Pi}_l^{(j+1)}\}$ the associated Synthesis operators.}

Note that the number of channels 
is not necessarily constant down the cascade. It is in fact adaptative: 
the number of channels $\tilde{N}_{j}$ of the analysis block $(j)$ 
depends on the maximal number of nodes contained in the subgraphs 
given by $\bm{c}^{(j)}$. 

\subsection{\MODIF{Atoms of analysis and the choice of normalization}}
\label{subsec:Haar_particular}
\ADDED{To study the effect of the filterbank, one may look at the dictionnary of analysis atoms, and of 
recovery atoms. With additional assumptions, it could be wavelets.
However, we will avoid using the term wavelet and prefer the more general term of ``atom'', 
as they do not necessarily have wavelet's properties: they are not related to translation on the graph,
nor are they band-pass in the global graph Fourier domain (see Fig~\ref{fig:image_atoms}).}
%and there is in fact no general consensus over a proper definition of translation for graph signals~\cite{girault_SPL2015,Shuman_ACHA2015,sandryhaila_TSP2013}. 
%Here, we will not  even try to define such a translation for the atoms. 


\ADDED{%Given an original graph signal of size $N$, let us stop the analysis cascade at level $(j)$. 
To each output of the analysis cascade (approximations and details at all levels) is 
associated an analysis atom. 
%Say the approximation graph signal is of size $N^{(j)}$ at this level. 
Approximation analysis atoms (``scaling function-like'') are associated to the first channel of each level:
at level $(j)$, they are the columns of 
$\bm{\Theta}_1^{(j)}$, interpolated back to the original graph's size:}
\begin{equation}
 \ADDED{\bm{\Phi}^{(j)}= \bm{\Theta}_1^{(1)}\times\cdots\times\bm{\Theta}_1^{(j-1)}\times\bm{\Theta}_1^{(j)}.}
\end{equation}
\ADDED{
Detail analysis atoms (``wavelet-like'') are obtained from all but the first channel at each level. 
More precisely at level $(j)$, the detail analysis atoms associated to channel $l\neq1$ are the columns of 
$\bm{\Theta}_l^{(j)}$, interpolated back to the original graph's size:}
\begin{equation} \ADDED{
\bm{\Psi}_{l}^{(j)}=\bm{\Theta}_1^{(1)}\times\cdots\times\bm{\Theta}_1^{(j-1)}\times\bm{\Theta}_l^{(j)}.}
%\begin{aligned}
% &= \left[\bm{\Theta}_2^{(1)}| \bm{\Theta}_3^{(1)}| \cdots| \bm{\Theta}_{\tilde{N}_1}^{(1)}\right]\\
%\bm{\Psi}_2  &=\bm{\Theta}_1^{(1)}\times\left[\bm{\Theta}_2^{(2)}| \bm{\Theta}_3^{(2)}| \cdots| \bm{\Theta}_{\tilde{N}_2}^{(2)}\right],\\
% &\cdots\\
%\bm{\Psi}_j &=\bm{\Theta}_1^{(1)}\times\cdots\times\bm{\Theta}_1^{(j-1)}\times\left[\bm{\Theta}_2^{(j)}| \bm{\Theta}_3^{(j)}| \cdots| \bm{\Theta}_{\tilde{N}_j}^{(j)}\right].
%\end{aligned}}
\end{equation}

\ADDED{The choice of the $L_p$ norm in Eq.~\eqref{eq:norm} is now dictated by the wished properties of the atoms.
A first possible choice is $p=1$, i.e. normalization in $L_1$, as it is
the only normalization that ensures that the detail analysis atoms $\bm{\Psi}_{l}^{(j)}$ have zero mean -- a desirable feature 
to have atoms as close as possible to a wavelet interpretation. Another possibility would be to normalize
in $L_2$ (as for the Haar filterbank).
In this case, detail atoms do not have zero mean in general, however the energy of the modes is constant. 
In Section~\ref{sec:applications}, the normalization will be application-dependent. 
The default normalization is with $L_1$. }

\ADDED{A property of the atoms is that their support is always compact: each 
is defined and non-zero only on one subgraph. On the other hand, in the global Fourier 
domain, the atoms are exactly localized only if the decomposition in subgraphs  
corresponds exactly to different connected components of the whole graph (in this case,
the global Fourier matrix is the concatenation of all local Fourier matrices). If not,
the further away is the graph from this  disconnected model, the less localized are
the atoms in the global Fourier domain. 
}

\begin{comment}
Let us give that intuition through 
the example of Section~\ref{subsubsec:example}. If we note $\bm{x}\in\mathbb{R}^5$ the original graph signal, 
the approximation signal after the first level of the analysis cascade reads:
\begin{equation}
 \bm{x_1}=\bm{Q}_1^\top\bm{x}=\left[\frac{x(1)+x(2)+x(3)}{3}~\frac{x(4)+x(5)}{2}\right],
\end{equation}
and is defined on the approximated graph whose adjacency matrix reads:
\begin{equation}
 \bm{A_1}=\bm{S}_1^\top\bm{A}\bm{S}_1=\left[\footnotesize{\begin{array}{cc}
0 & 1 \\
1 & 0 \\
\end{array}}\right].
\end{equation}
One may iterate the analysis on this approximated graph


In fact, if we had followed 
the Haar filterbank example even closer, we would have chosen the $L_2$ normalisation. 

Given the proposed design, we take a last look at the classical Haar filterbank to show it as a particular 
case. 
%
%\noindent\textbf{In one dimension.}
Consider the straight-line graph on which a signal $\bm{x}$ of size $N$ is defined, and the Haar 
partition of this graph (eq.~(\ref{eq:Haar_partition})). One has the following equivalences: 
\begin{equation}
 \tilde{N}_1=2, \quad \bm{L}=\bm{Q}_1^\top \mbox{ ~~ and  ~~} \bm{B}=\bm{Q}_2^\top. 
\end{equation}
Moreover, $\bm{A_1}=\bm{A_2}$ and code for straight-line graphs of size $N/2$. 

\ADDED{\noindent\textbf{Important remark.} We could have defined our filterbank design using the family $\{\bm{\Theta}_l\}$ for the analysis filter 
and $\{\bm{\Theta}_l^\top\}$ for the synthesis filter, in order to be as close as possible to the analogy 
to classical Haar filterbanks; but given that the size of each subgraph $\mathcal{G}^{(k)}$ 
is \textit{not} homogeneous for general graphs, this would have lead to large coefficients due to large size of 
subgraphs and not necessarily to important coefficients for reconstruction. %For instance, the approximation 
%signal on subgraph $\mathcal{G}^{(k)}$ reads $1/\sqrt{N_k}\sum_i\in\Gamma^{(k)} x(i)$ if one 
%uses $\{\bm{\Theta}_l\}$ as analysis filters, and 
%thereby depends on $N_k$; and reads 
}
%\noindent\textbf{In two dimensions.} Consider the two dimensional regular grid graph of size $\sqrt{N}\times\sqrt{N}$, on which 
%an image of size $N$ is defined. In two dimensions, the Haar partition consists in separating the graph in ``squares'' of size 4. 
%Also, the classical Haar classical filterbank contains 4 channels, that are naturally uncovered in our design ($\tilde{N}_1=4$) as the global analysis filter:
%\begin{equation}
%\left[\bm{Q_1}\quad\bm{Q_2}\quad\bm{Q_3}\quad\bm{Q_4}\right]^\top
%\end{equation}
%Moreover, $\bm{A_1}=\bm{A_2}=\bm{A_3}=\bm{A_4}$ all code for two dimensional regular grid 
%graphs of size $\sqrt{N/4}\times\sqrt{N/4}$ \\
\end{comment}



\section{Detecting a partition of connected subgraphs}
\label{sec:com_detect}

\begin{figure}
\centering
\includegraphics[width=0.40\textwidth]{Downsample_with_communities4.pdf}
 \caption{
 Approximation  $(\bm{x_1}^{(j)},\bm{A_1}^{(j)})$ at level $(j)$ of an analysis cascade 
 of the signal-structure couple  $(\bm{x_1}^{(j-1)},\bm{A_1}^{(j-1)})$, given two different 
 partitions in connected subgraphs (represented by the dotted lines). 
 The signal is represented by colors on the nodes. Subgraph $k$ in the original graph is represented by supernode $k$ in the coarsened graph. 
 As seen in Section~\ref{sec:design}, the signal on supernode $k$ is the signal's average on the original subgraph $k$. 
 Note the strong impact of the partition on the approximation signal.
}
\label{fig:intuition}
\end{figure}

The proposed filterbank explicitly integrates the graph structure in connected subgraphs. 
A central question arises: 
how does one choose a particular partition $\bm{c}$ of the graph in connected subgraphs? 
The partition choice has a strong influence on what the filterbank achieves, as shown 
in Fig.~\ref{fig:intuition} where we compare the effect of downsampling for two different 
partitions on a toy graph. 
The practitioner has the choice among a wide variety 
of options to find such a partition: he could follow graph partitioning techniques of~\cite{karypis_SIAM1998} 
or~\cite{teng_bookchapter1999}, or use graph nodal domains~\cite{band2008} -- either very high frequency ones as 
in~\cite{shuman_ARXIV2013} or others --- or any other solution... 
While the proposed filterbanks is well-defined for any of these partitions, the final decision regarding the partitioning algorithm
will depend on what the user wants the filterbanks to achieve. 

In the following, we show applications for compression and denoising.
We seek to typically transform the original signal in a sparser one after analysis. 
For that, we look for partitions that separate the graph into groups of nodes more connected to themselves 
than with the rest of the graph: they are known as communities. Indeed, as in image or video compression, 
we suppose that low-frequencies contain 
 the useful information of the signal. Approximating a community of nodes, each one 
with its signal value,  by a supernode on which is the average over the community is a  way to 
keep such low-frequencies.

\subsection{\ADDED{Community detection procedure}}
Literature is abundant on community detection (see the 
survey~\cite{fortunato_PhyRep2010}). 
\MODIF{To detect non-overlapping communities, we use the greedy Louvain  method~\cite{blondel_Jstatmech2008}.
It maximizes (approximatively) over all the possible partitions $\mathbf{c}$, the so-called modularity (see \cite{fortunato_PhyRep2010}), 
a well-known objective  function that measures the quality of a partition in communities $\mathbf{c}$, defined as:
\begin{equation}
Q(\mathbf{c}) = \frac{1}{2m} \sum_{ij} \left( \mathbf{A}_{ij} - \frac{d_i d_j}{2m}\right) \delta(\mathbf{c}_i,\mathbf{c}_j)
\label{eq:modularity}
\end{equation}
where $d_i =  \sum_{j} \mathbf{A}_{ij}$ and $2m = \sum_{i} d_i$.
The Louvain method iteratively repeats two main phases, starting from an initial situation where each node 
is in its own community: 1) Select a node and group it with its adjacent node that causes the largest increase of 
modularity; do this sequentially with  all other nodes, until 
no individual move can improve the modularity;
2) Aggregate each community in a ``supernode'' and build a new adjacency matrix of this ``supernode'' graph.} 
Phase 1 is then applied to this 
new graph, and so on and so forth. The algorithm stops when \MODIF{phase 1 is not able to increase 
the modularity anymore.} 
\ADDED{We modify this algorithm and have two different implementations:}

\ADDED{\textbf{The SC (Small Communities) implementation.} It consists in performing phase 1 only 
once: this implementation ensures that the partition 
separates the graph in small communities (typically smaller than 10 nodes).} 

\MODIF{\textbf{The LC (Large Communities) implementation.} When performing 
the usual algorithm, a stopping criterion is added: 
the algorithm is stopped (if not already stopped thanks to the first criterion) 
before the size of the largest community  becomes larger than a given threshold $\tau$. 
 In fact, iterating both phases, communities become gradually larger; and recall 
 that our proposal relies on the diagonalisation of the local Laplacian matrices, which has 
 a cubic computation cost. In order to control computation time, we do not allow communities larger 
than the threshold, hereafter $\tau=1000$ nodes.} 

\ADDED{For comparison, in Section~\ref{subsubsec:NLA_graph_signals}, we will show some results obtained with another 
famous multiscale community detection algorithm, called Infomap~\cite{Rosvall_plos2011}. With this algorithm also, one may 
define analog SC and LC implementations.}

\ADDED{\noindent\textbf{Note on stochasticity:} The Louvain and the Infomap algorithms are stochastic: 
they do not necessarily output the same partition at every run on the same data. This implies 
that the output of the analysis cascade of our filterbank may differ from a realisation to another
(this is also the  case of other methods such as the filterbanks based on bipartite graphs).
%proposed by Narang and Ortega: there is not necessarily a 
%unique decomposition of a graph in a sum of bipartite ones and decomposition algorithms may output different 
%solutions. 
Stochasticity is not an issue as synthesis operators are built according to the solutions  
found during the analysis: reconstruction is always perfect. For the results in 
Table~\ref{table:reconstruction} and 
Figures~\ref{fig:perf_on_images}, \ref{fig:compression_on_graph} and \ref{fig:denoising_results}, 
we show the median computed after 10 realisations.
}
\begin{figure}
\centering
 \includegraphics[width=0.46\textwidth]{example_on_toy_graph.pdf}
 \caption{An analysis cascade of a signal $\bm{x}$ defined on a toy graph $\bm{A}$ (top figure). On each node, 
 the red vertical bar is proportional to the value of this node's signal. Each edge's width is proportional to 
 its weight. Under the top figure is represented 
 a partition in connected subgraph (see Section~\ref{sec:com_detect}): for clarity's sake, 
 one color is assigned to each subgraph. 
 The largest subgraph contains $\tilde{N}_1=4$ nodes: the first level of the cascade therefore contains 
 $\tilde{N}_1=4$ channels. At level $(1)$, we represent the approximation $(\bm{x_1},\bm{A_1})^{(1)}$ and the three 
 details $\left\{(\bm{x_l},\bm{A_l})^{(1)}\right\}_{l=2,3,4}$. For each of the coarsened graphs, the color of each supernode 
 corresponds to the color of $\bm{A}$'s subgraph it represents. We then iterate the analysis on the successive approximation 
 signals, until level $(3)$, where the approximation signal $(\bm{x_1},\bm{A_1})^{(3)}$ is reduced to a single node. The 
 underlying orange tree is a guide to the eye down the analysis cascade. From the 6 detail and 1 approximation signals 
 of each of its leaves, one may perfectly recover the original signal $\bm{x}$.} 
\label{fig:toy_graph}
\end{figure}

\begin{figure*}
\begin{tabular}{cccccccc}
$\bm{\Phi}^{(3)}$ & \multicolumn{1}{|c|}{$\bm{\Psi}_2^{(3)}$} & \multicolumn{2}{c|}{$\bm{\Psi}_2^{(2)}$}  &\multicolumn{1}{c|}{$\bm{\Psi}_3^{(2)}$} & \multicolumn{3}{c}{$\bm{\Psi}_2^{(1)}$} \\\hline\\[-2.3ex]
\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=4_frequency=1_subgraph_number=1} & \multicolumn{1}{|c|}{\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=4_frequency=2_subgraph_number=1}} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=3_frequency=2_subgraph_number=1}  & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=3_frequency=2_subgraph_number=2}&\multicolumn{1}{|c|}{\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=3_frequency=3_subgraph_number=1}} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=2_subgraph_number=1} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=2_subgraph_number=2} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=2_subgraph_number=3}\\\toprule
\multicolumn{2}{c|}{$\bm{\Psi}_2^{(1)}$} & \multicolumn{3}{c|}{$\bm{\Psi}_3^{(1)}$} &\multicolumn{1}{c|}{$\bm{\Psi}_4^{(1)}$} & & \\\cline{1-6}\\[-2.3ex]
\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=2_subgraph_number=4} & \multicolumn{1}{c|}{\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=2_subgraph_number=5}} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=3_subgraph_number=1} & \includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=3_subgraph_number=2}&\multicolumn{1}{c|}{\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=3_subgraph_number=3}} & \multicolumn{1}{c|}{\includegraphics[width=0.09\textwidth]{TOY_GRAPH_atom_scale=2_frequency=4_subgraph_number=1}}& \multicolumn{2}{c}{\includegraphics[width=0.22\textwidth]{TOY_GRAPH_colorbar.pdf}}\\
\end{tabular}
    \caption{\ADDED{The 14 analysis atoms of the proposed filterbank for the graph represented at the top of 
    Fig.~\ref{fig:toy_graph}. The top left atom is the approximation atom (first channel at level (3) of the analysis cascade). Then, from left to right, and top to bottom, 
    are listed the 13  detail atoms, from large to small scales. A node's color 
    represents the atom's value on that node, as indicated by the colorbar. A black node corresponds to a \textit{strictly} null value:  
    indeed, atoms are compact-support.}}
    \label{fig:atoms_toy_graph}
\end{figure*}

\begin{figure*}
    \begin{center}
    \begin{minipage}{.15\linewidth}
\includegraphics[width=\textwidth]{Minnesota_graph_original_signal.pdf}
\end{minipage}
\begin{minipage}{.15\linewidth}
\centering
   \includegraphics[width=\textwidth]{Minnesota_graph_approx1.pdf}\\\vspace{0.2cm}
   \includegraphics[width=0.80\textwidth]{Minnesota_graph_rec1.pdf}
\end{minipage}
\begin{minipage}{.15\linewidth}
\centering
   \includegraphics[width=\textwidth]{Minnesota_graph_approx2.pdf}\\\vspace{0.2cm}
   \includegraphics[width=0.80\textwidth]{Minnesota_graph_rec2.pdf}
\end{minipage}
\begin{minipage}{.15\linewidth}
\centering
   \includegraphics[width=\textwidth]{Minnesota_graph_approx3.pdf}\\\vspace{0.2cm}
   \includegraphics[width=0.80\textwidth]{Minnesota_graph_rec3.pdf}
\end{minipage}
\begin{minipage}{.15\linewidth}
\centering
   \includegraphics[width=\textwidth]{Minnesota_graph_approx4.pdf}\\\vspace{0.2cm}
   \includegraphics[width=0.80\textwidth]{Minnesota_graph_rec4.pdf}
\end{minipage}
\begin{minipage}{.15\linewidth}
\centering
   \includegraphics[width=\textwidth]{Minnesota_graph_approx5.pdf}\\\vspace{0.2cm}
   \includegraphics[width=0.80\textwidth]{Minnesota_graph_rec5.pdf}
\end{minipage}  
    \end{center}
    \caption{\ADDED{Left: original smooth graph signal (sum of the first five  
    global graph Fourier modes normalized by its maximum absolute value) defined on the Minnesota traffic graph. 
    The vertical colorbar of this figure is valid for all graph signals represented on this figure. 
    Top row:  signal approximation $\bm{x}_1^{(l)}$ on the graph approximation $\bm{A}_1^{(l)}$ after 
    each level $(l)$ of the analysis cascade (with the Cosub SC implementation). The horizontal colorbar 
    on the bottom of each figure  corresponds to the weights of the links of the corresponding coarsened graph. 
    Figures who do not have a bottom horizontal colorbar represent binary graphs. Lower row: for each of the 
    successive approximations, the reconstructed graph signal is represented. }}
    \label{fig:minnesota}
\end{figure*}

\subsection{\ADDED{Choice of adjacency matrix}}
\label{subsec:choice_adjacency}
\ADDED{
When performing  community detection, one may choose to use only the original adjacency matrix $\bm{A}$ as it is, or incorporate
some information about the graph signal $\bm{x}$ to follow more closely its evolution. 
We explore two choices:}

\textbf{CoSub}, short for Connected Subgraphs, is based on simply applying the Louvain algorithm on 
 the adjacency matrix $\bm{A}$;% to be able to write $\bm{A}=\bm{A_i}+\bm{A_e}$;
 
\textbf{EdAwCoSub}, short for Edge Aware\footnote{\ADDED{We use the term edge aware in relation to usage in the Signal processing community; the reader can think of it as ``signal-adapted'' if preferred.}} Connected Subgraphs, takes the signal $\bm{x}$ into account for subgraph partitioning 
 and modify the adjacency matrix into 
 \begin{equation}
 \begin{aligned}
  \bm{A_x}(i,j)&=e^{-\frac{(\bm{x}(i)-\bm{x}(j))^2}{2\sigma_x^2}}
  \quad & \mbox{ if } \bm{A}(i,j)\neq 0\\  
  &=0  & \mbox{ if } \bm{A}(i,j) = 0
 \end{aligned}
 \end{equation}
where  $\sigma_x=\mbox{std}(\{|\bm{x}(i)-\bm{x}(j)|\}_{i\sim j})$ 
($i\sim j$ means $i$ neighbor to $j$ in $\bm{A}$). \ADDED{This choice of $\sigma_x$ is classical in the 
clustering literature~\cite{von2007tutorial}}. 
The Louvain algorithm is then applied on $\bm{A_x}$. 

In both cases, the obtained partition enables us to decompose the original adjacency matrix in $\bm{A}=\bm{A_{int}}+\bm{A_{ext}}$. 
Edge-awareness could also be implemented, as in~\cite{narang_SSP2012}, by adapting classical image segmentation methods 
to graph signals;  such an advanced comparison between edge-awareness methods is left for future work. 
\ADDED{In Section~\ref{sec:applications}, we compare the 4 different implementations of the proposed filterbank: 
CoSub SC and LC, EdAwCoSub SC and LC; to methods from the literature. 
}

\section{Applications}
\label{sec:applications}



\ADDED{All the reported examples are computed using a developed Matlab toolbox that is 
available for download\footnote{URL: http://perso.ens-lyon.fr/nicolas.tremblay/files/CoSubFB\_toolbox.zip}. 
The comparisons with methods from the literature use the 
implementations from the original authors, when they are available.
}

\subsection{\MODIF{Three} illustrative examples}
\label{subsec:applications_examples}

\subsubsection{A signal defined on a simple toy graph}


Fig.~\ref{fig:toy_graph} shows the analysis cascade on a toy signal defined on a very simple graph of size 14. 
%. We consider a 14 node graph 
%and a signal defined on it as shown on the top of . The rest of Fig.~\ref{fig:toy_graph} illustrates 
%the analysis cascade of this graph signal. 
%A partition of this graph in 5 connected subgraphs 
%is shown under the original graph. The largest subgraph contains $\tilde{N}_1=4$ nodes: 
%level $(1)$ of the cascade thus contains  
%4 channels. We show the four filtered signals $\bm{x}_l^{(1)}$ defined on their respective coarsened  
%graphs $\bm{A}_l^{(1)}$: $(\bm{x}_1,\bm{A}_1)^{(1)}$ is the approximation signal of the original signal $(\bm{x},\bm{A})$, and 
%$(\bm{x}_2,\bm{A}_2)^{(1)}$ (resp. $(\bm{x}_3,\bm{A}_3)^{(1)}$, $(\bm{x}_4,\bm{A}_4)^{(1)}$) its first 
%(resp. second, third) detail signal. 
Let us take a close look at 
the subgraph number 5 of the original graph: it contains two nodes and the signal on each of its node is of same absolute value but of opposite signs. 
As expected, $\bm{x}_1^{(1)}(5)$, the approximation signal on the corresponding supernode at level $(1)$ is zero 
(average of the two original values); and 
$\bm{x}_2^{(1)}(5)$, the first detail signal is large: it is the difference between the two original values. 
Moreover, as this subgraph contains only 2 nodes, its Laplacian does not have a third eigenvector: this subgraph 
does not participate to the second and third detail signals and its associated supernode does not appear in 
$(\bm{x}_3,\bm{A}_3)^{(1)}$ nor $(\bm{x}_4,\bm{A}_4)^{(1)}$. 

%Let us now look at the structures of the four coarsened graphs. As all subgraphs contain at least two nodes, 
%graphs associated to $\bm{A}_1$ and $\bm{A}_2$ are identical and the weigth connecting two supernodes correspond to the 
%sum of the weights of the links connecting the two associated subgraphs. For instance the weight of the link connecting 
%supernodes 1 and 3 is twice as large as the weight of the links connecting 1 and 2 or 2 and 3. 
%Graph with adjacent matrix $\bm{A}_3$ only contains supernodes for subgraphs containing at least 3 nodes: this leaves subgraphs 
%1, 2 and 4. Supernode with label 4 not cànnected, as its associated subgraph is not linked to subgraphs 1 and 2. Finally,  
%$\bm{A}_4$ is reduced to supernode 1, as only subgraph 1 contains four nodes (and therefore a fourth 
%local Fourier mode).

%For clarity's sake, we do not iterate the cascade on the three detail signals, and rather concentrate on the approximation signal. 
%Moving down the Figure, we draw a partition of $\bm{A}_1$ in 2 connected subgraphs. The largest subgraph contains 
%$\tilde{N}_2=3$ nodes, hence level $(2)$ of the cascade has 3 channels:
%$(\bm{x}_1,\bm{A}_1)^{(2)}$, the approximation signal at level (2) of the original signal $(\bm{x},\bm{A})$, and 
%$(\bm{x}_2,\bm{A}_2)^{(2)}$ (resp. $(\bm{x}_3,\bm{A}_3)^{(2)}$) its first (resp. second) second-level detail signal. 
%Iterating the analysis one more time on $(\bm{x}_1,\bm{A}_1)^{(2)}$ gives the third level of the cascade. 

The analysis cascade decomposes the original signal in 3 detail signals (of sizes 5, 3 and 1) at level $(1)$, 2 detail signals 
(of sizes 2 and 1) at level $(2)$, 1 detail signal and one approximation signal (both of size 1) at level $(3)$. From 
these 7 downsampled signals of total size 14, one may perfectly reconstruct the original signal, using the synthesis 
operators defined in Section~\ref{subsubsec:synth}.  

\ADDED{In Fig.~\ref{fig:atoms_toy_graph}, we show the 14 analysis atoms corresponding to this analysis 
cascade: one approximation atom (from the approximation channel  at the last level of the cascade); 
and 13 detail atoms that represent the other channels.}

\subsubsection{An example of approximated graph signal}


\MODIF{Fig.~\ref{fig:minnesota} shows successive approximated signals $\{(\bm{x_1},\bm{A_1})^{(l)}\}_{l=1:5}$ 
of a smooth signal defined on the Minnesota traffic graph~\cite{narang_TSP2013}, 
using the CoSub SC implementation. Notice how the last level's approximated signal, even if small in 
size (12 nodes) still captures the original signal's information remarkably well.}



\subsubsection{\ADDED{A small image}}

\begin{figure}
\begin{center}
\begin{minipage}{.16\linewidth}
\begin{center}
\vspace{0.2cm}
$~$\\\vspace{1.2cm}
$\bm{\Phi}^{(1)}$\\
%$\bm{\Theta}_1^{(1)\top}$\\
\footnotesize{(315 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_2^{(1)}$\\
\footnotesize{(315 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_6^{(1)}$\\
\footnotesize{(35 atoms)}\\\vspace{1.2cm}
$\bm{\Phi}^{(2)}$\\
\footnotesize{(62 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_2^{(2)}$\\
\footnotesize{(62 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_6^{(2)}$\\
\footnotesize{(25 atoms)}\\\vspace{1.2cm}
$\bm{\Phi}^{(3)}$\\
\footnotesize{(13 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_2^{(3)}$\\
\footnotesize{(13 atoms)}\\\vspace{1.2cm}
$\bm{\Psi}_6^{(3)}$\\
\footnotesize{(2 atoms)}\\\vspace{0.2cm}
\end{center}
\end{minipage}
\hfill
\begin{minipage}{.82\linewidth}
\includegraphics[width=0.35\textwidth]{orig_image.jpg}
\includegraphics[width=0.30\textwidth]{original_signal_in_GFW.pdf}\\
\includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=1.jpg}
   \includegraphics[width=0.32\textwidth]{scale=2_freq=1_average_GFW.jpg}
   %% \includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=1_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq1.jpg}\\
   \includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=2.jpg}
   \includegraphics[width=0.32\textwidth]{scale=2_freq=2_average_GFW.jpg}
   %    \includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=2_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq2.jpg}\\
         \includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=6.jpg}
   \includegraphics[width=0.32\textwidth]{scale=2_freq=6_average_GFW.jpg}
   %          \includegraphics[width=0.35\textwidth]{atom_scale=2_frequency=6_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq6.jpg}\\
            \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=1.jpg}
   \includegraphics[width=0.32\textwidth]{scale=3_freq=1_average_GFW.jpg}
   %             \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=1_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq1_scale3.jpg}\\
           \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=2.jpg}
   \includegraphics[width=0.32\textwidth]{scale=3_freq=2_average_GFW.jpg}
   %             \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=2_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq2_scale3.jpg}\\
   \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=6.jpg}
   \includegraphics[width=0.32\textwidth]{scale=3_freq=6_average_GFW.jpg}
   %            \includegraphics[width=0.35\textwidth]{atom_scale=3_frequency=6_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq6_scale3.jpg}\\
   \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=1.jpg}
   \includegraphics[width=0.32\textwidth]{scale=4_freq=1_average_GFW.jpg}
   %           \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=1_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq1_scale4.jpg}\\
           \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=2.jpg}
   \includegraphics[width=0.32\textwidth]{scale=4_freq=2_average_GFW.jpg}
   %          \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=2_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq2_scale4.jpg}\\
   \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=6.jpg}
   \includegraphics[width=0.32\textwidth]{scale=4_freq=6_average_GFW.jpg}
   %         \includegraphics[width=0.35\textwidth]{atom_scale=4_frequency=6_GFT.jpg}
   \includegraphics[width=0.30\textwidth]{image_reconstruction_with_freq6_scale4.jpg}\\ 
   \end{minipage}
   \end{center}
    \caption{\ADDED{Selected analysis atoms of the filterbank applied to a $32\times 32$ regular 2 dimensional 
    grid. Top line of figures: the top middle figure represents the graph Fourier transform of the image 
    (top left) seen as a graph signal on the 2D grid. Other lines of figures: each line represents a 
    choosen set of analysis atoms, corresponding to a given channel of the filterbank. For instance, 
    the second line represents the atoms $\bm{\Phi}^{(1)}$, i.e., the atoms corresponding to the 
    first channel of the first level of the analysis cascade. The black lines on the first column's image 
    represents the partition of the graph in 315 subgraphs, which is, in this case, 
   the output of the Edge-Aware SC implementation of our filterbank. To each subgraph is associated a local atom, 
   by construction, such that we can represent all of them on the same global image. The second column's 
   figure represents all global Fourier transforms of all 315 atoms, and, superimposed with a thick black line, 
   is their average. The third column represents the reconstruction of the original image if 
   one keeps only the information that went through this analysis channel, and discards the rest.}}
    \label{fig:image_atoms}
\end{figure}


\MODIF{Images can be studied as graph signals defined on the two-dimensional regular 
grid (each pixel is a node, and each node has four neighbors), and may therefore 
be analyzed by the proposed graph-based filterbank.}
\ADDED{Consider the small $32\times32$ image of Fig.~\ref{fig:image_atoms}: 
it is a graph signal defined on a regular graph of size $1024$. Its graph Fourier transform 
is represented on the same figure. 
We analyze this image with the EdAwCoSub SC algorithm and the rest of 
Fig.~\ref{fig:image_atoms} represents a selection of atoms of the filterbank, shown both in the node 
and the global graph Fourier domain, and partially reconstructed images from the projection of the 
 original image on these atoms. Note that the support of the subgraphs are clearly impacted by edge-awareness. 
We see that each atom is compactly supported (in the node domain) and only (very) approximately 
localized in the global graph Fourier domain. Moreover, we see how, within a given level $(j)$, 
the mean frequency of $\bm{\Psi}_l^{(j)}$ increases as $l$ increases. 
The cause of the frequency delocalisation is that  regular grids are not decomposable in a sum of almost disconnected subgraphs: the local Fourier 
 modes on which we base our design are therefore far from localized in the global Fourier domain. 
 In fact, regular grids are a typical structure for which our method (and the graph partition in communities) 
 is not very appropriate. Nevertheless, we still show results on images 
 for pedagogical purposes and in order to compare performance with other methods from the literature.}





\begin{figure}
    \begin{center}
 \hspace{-0.18cm}\includegraphics[width=0.165\textwidth]{cameraman_orig.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{coins_orig.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{synth_orig.pdf}
      \end{center}
    \caption{\MODIF{Benchmark images. From left to right: \textit{cameraman, coins, synthetic}.}}
    \label{fig:cameraman}
\end{figure}

\begin{figure}
    \begin{center}
 \includegraphics[width=0.49\textwidth]{perf_on_images_all.pdf}
      \end{center}
    \caption{\ADDED{Comparison of compression performance on the three benchmark images of 
    Fig.~\ref{fig:cameraman} (from left to right: \textit{cameraman, coins, synthetic}).}}
    \label{fig:perf_on_images}
\end{figure}


\subsection{\MODIF{Graph signal reconstruction via non-linear approximation}}
\label{subsec:images}

\ADDED{One of the use of classical filterbanks is compression. 
The main idea relies on the fact that natural signals are approximately smooth at different scales of analysis, 
and have therefore a sparse representation on filterbanks' atoms. One may thus transform the signal 
with the filterbanks, keep the low-pass coefficients and a fraction of high-pass coefficients while 
setting the others to zero, and still obtain a decent reconstruction of the original signal. In the following, 
we apply this non-linear approximation (NLA) scheme on images and on the Minnesota traffic graph.}

\ADDED{Typical filterbank comparisons using NLA look at reconstruction results after three levels of analysis. 
In our case, as we do not know beforehand in how many subgraphs the partitioning algorithm will cut the graph, 
we cannot predict how many low-pass coefficients will be left after a given number of levels of the analysis 
cascade. Thus, for a comparison with other methods, and for a given compression ratio, 
we will compute all non-linear approximations corresponding to all different levels of the cascade, 
and keep the level for which the reconstruction result is the best.}

\subsubsection{\ADDED{Reconstruction of images}}




%\begin{table}
%\footnotesize
% \begin{tabular}{c||c|c|c|c|c|c|c}
% $\%$ HP coef & $0$ & $1$ & $2$ & $3$ & $4$ & $8$ & $16$ \\\hline\hline
% 
% \multicolumn{8}{c}{\textit{Synthetic}}\\\hline
% CDF 9/7    & $25.12$ & $34.56$ & $40.21$ & $\bm{48.21}$ & $48.34$ & $\bm{65.69}$ & $\bm{207.16}$ \\\hline
% GrBior & $22.25$ & $36.79$ & $40.56$ & $40.56$ & $46.31$ & $56.24$ & $74.11$ \\\hline
% CoSub      & $\bm{35.39}$ & $37.76$ & $39.56$ & $41.12$ & $42.56$ & $47.92$ & $59.70$ \\\hline 
% EdAwCoSub  & $33.73$ & $\bm{40.64}$ & $\bm{44.20}$ & $46.47$ & $\bm{49.13}$ & $58.05$ & $100.59$ \\\hline
% 
% \multicolumn{8}{c}{\textit{Cameraman}}\\\hline
% CDF 9/7    & $20.66$ & $23.06$ & $24.99$ & $26.37$ & $27.34$ & $30.37$ & $34.93$ \\\hline
% GrBior & $16.30$ & $23.78$ & $25.58$ & $26.91$ & $27.95$ & $31.10$ & $35.82$ \\\hline
% CoSub      & $23.07$ & $24.57$ & $25.68$ & $26.60$ & $27.40$ & $29.96$ & $34.02$ \\\hline 
% EdAwCoSub  & $\bm{27.80}$ & $\bm{29.02}$ & $\bm{29.91}$ & $\bm{30.65}$ & $\bm{31.30}$ & $\bm{33.48}$ & $\bm{37.15}$ \\\hline
% 
% \multicolumn{8}{c}{\textit{Coins}}\\\hline
% CDF 9/7    & $23.25$ & $26.97$ & $28.94$ & $30.21$ & $31.29$ & $34.92$ & $\bm{40.82}$ \\\hline
% GrBior & $18.73$ & $26.33$ & $28.34$ & $29.79$ & $30.89$ & $34.34$ & $39.39$ \\\hline
% CoSub      & $25.29$ & $26.92$ & $28.16$ & $29.21$ & $30.13$ & $33.15$ & $37.91$ \\\hline 
% EdAwCoSub  & $\bm{29.57}$ & $\bm{30.74}$ & $\bm{31.61}$ & $\bm{32.31}$ & $\bm{32.94}$ & $\bm{35.06}$ & $38.59$ \\\hline
% \end{tabular}
% \caption{The caption.}
%\label{table:reconstruction}
%\end{table}

\begin{comment}\begin{figure}
    \begin{center}
    Original images:\\\vspace{0.02cm}
 \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_orig.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{coins_orig.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{synth_orig.pdf}\\%\vspace{0.1cm}
   
   Classical CDF 9/7 filterbanks:\\\vspace{0.02cm}
    \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_CDF97_PSNR26p58.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{coins_CDF97_PSNR29p60.pdf}\hspace{-0.14cm}
      \includegraphics[width=0.165\textwidth]{synth_CDF97_PSNR46p90.pdf}\\\vspace{-0.15cm}
      ~~~~~~~~{\footnotesize PSNR=26.6\hfill PSNR=29.6\hfill PSNR=46.9}~~~~~~~~\\%\vspace{0.1cm}
      
    GrBior filterbanks:\\\vspace{0.02cm}
   \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_Gr_Bior_PSNR26p6.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{coins_Gr_Bior_PSNR29p0.pdf}\hspace{-0.14cm}
      \includegraphics[width=0.165\textwidth]{synth_Gr_Bior_PSNR42p1.pdf}\\\vspace{-0.15cm}
      ~~~~~~~~{\footnotesize PSNR=26.6\hfill PSNR=29.0\hfill PSNR=42.1}~~~~~~~~\\%\vspace{0.1cm}

    EdAwGrBior filterbanks:\\\vspace{0.02cm}  
   \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_Ed_Aw_Gr_Bior_PSNR28p3.pdf}\hspace{-0.14cm}
   \includegraphics[width=0.165\textwidth]{coins_Ed_Aw_Gr_Bior_PSNR31p6.pdf}\hspace{-0.14cm}
      \includegraphics[width=0.165\textwidth]{synth_Ed_Aw_Gr_Bior_PSNR47p4.pdf}\\\vspace{-0.15cm}
      ~~~~~~~~{\footnotesize PSNR=28.3\hfill PSNR=31.6\hfill \textbf{PSNR=47.4}}~~~~~~~~\\%\vspace{0.1cm}

    CoSub filterbanks:\\\vspace{0.02cm}      
     \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_L_only_PSNR26p56.pdf}\hspace{-0.14cm}
    \includegraphics[width=0.165\textwidth]{coins_L_only_PSNR28p95.pdf}\hspace{-0.14cm}
    \includegraphics[width=0.165\textwidth]{synth_L_only_PSNR40p86.pdf}\\\vspace{-0.15cm}
      ~~~~~~~~{\footnotesize PSNR=26.6\hfill PSNR=28.9\hfill PSNR=40.9}~~~~~~~~\\%\vspace{0.1cm}

    EdAwCoSub filterbanks:\\\vspace{0.02cm}         
     \hspace{-0.14cm}\includegraphics[width=0.165\textwidth]{cameraman_f_L_PSNR30p30.pdf}\hspace{-0.14cm}
     \includegraphics[width=0.165\textwidth]{coins_f_L_PSNR32p14.pdf}\hspace{-0.14cm}
        \includegraphics[width=0.165\textwidth]{synth_f_L_PSNR46p52.pdf}\\\vspace{-0.15cm}
      ~~~~~~~~{\footnotesize \textbf{PSNR=30.3}\hfill \textbf{PSNR=32.1}\hfill PSNR=46.5}~~~~~~~~\\%\vspace{0.1cm}

    \end{center}
    \caption{Comparison, using different filterbank methods, of reconstructed images keeping $3\%$ of the high-pass coefficients on 
    three benchmark images. See Section~\ref{subsec:images} for details.}
    \label{fig:cameraman}
\end{figure}
\end{comment}



\begin{table*}
%\centering
\scriptsize
 \begin{tabular}{c||c|c|c|c||c|c|c|c||c|c|c|c||c|c|c|c}
Compr. ratio & \multicolumn{4}{c||}{$5$} & \multicolumn{4}{|c||}{$26$} & \multicolumn{4}{c||}{$54$} & \multicolumn{4}{c}{$96$} \\\cline{2-17}
& lev & $\#$ LP & $\#$ HP & PSNR & lev & $\#$ LP & $\#$ HP & PSNR & lev & $\#$ LP & $\#$ HP & PSNR & lev & $\#$ LP & $\#$ HP & PSNR\\\hline\hline
 CDF 9/7    & 3 & 1024 & 12083 & $\bm{37.1}$ & 3 & 1024 & 1497 & 25.7 & 4 & 256 & 958 & 22.0 & 4 & 256 & 427 & 20.3\\\hline
 GrBior     & 6 & 16 & 13091 & 36.9 & 5 & 64 & 2457 & $\bm{26.5}$ & 6 & 16 & 1198 & $\bm{24.0}$ & 6 & 16 & 667 & $\bm{22.4}$\\\hline
 CoSub LC   & 1 & 282 & 12825 & 34.6 & 1 & 274 & 2247 & 25.5 & 1 & 273 & 941 & 23.1 & 1 & 279 & 404 & 21.5 \\\hline
 CoSub SC    & 3 & 2017 & 11090 & 35.3 & 4 & 282 & 2239 & 21.5 & 4 & 281 & 933 & 19.3 & 4 & 282 & 401 & 18.2 \\\hline\hline
 EdAwGrBior & 5 & 64 & 13043 & 39.0 & 6 & 16 & 2505 & $\bm{29.3}$ & 6 & 16 & 1198 & 27.0 & 6 & 16 & 667 & 25.4\\\hline
 EdAwCoSub LC & 1 & 478 & 12629 & 37.3 & 1 & 486 & 2035 & 29.3 & 1 & 486 & 728 & $\bm{27.4}$ & 1 & 486 & 197 & $\bm{25.9}$\\\hline
 EdAwCoSub SC & 2 & 2584 & 10523 & $\bm{39.1}$ & 3 & 430 & 2091 & 28.7 & 3 & 422 & 792 & 26.8 & 3 & 439 & 244 & 25.7\\\hline
 \end{tabular}\vspace{\baselineskip}
 \caption{\MODIF{Comparison of the compression performance with other methods on the benchmark image \textit{cameraman} shown 
 in Fig.~\ref{fig:cameraman}. }}
\label{table:reconstruction}
\end{table*}





%We study here, in terms of quality of the reconstruction after compression, 
%what the proposed design achieve, and it is in general as good as other classical or graph-based filterbanks.

%Consider square images of size $\sqrt{N}\times\sqrt{N}$, therefore consisting of a signal of size $N$ on 
%a graph with $N$ nodes. 
Consider for instance the benchmark image \textit{cameraman} shown in Fig.~\ref{fig:cameraman} 
(left). Its size is $256\times 256$ ($N=65536$ is the size of the associated graph signal). 
\MODIF{Table~\ref{table:reconstruction} 
compares the reconstruction details after NLA of CoSub LC and SC, 
EdAwCoSub LC and SC, to the classical image filterbank CDF 9/7,  
the Graph Bior filterbank~\cite{narang_TSP2013} with Zero DC, \textit{graphBior(6,6)} filters and 
Gain Compensation (GrBior); 
and the same Graph Bior filterbank but including edge-awareness~\cite{narang_SSP2012} (EdAwGrBior).} 
\ADDED{Also, Fig.~\ref{fig:perf_on_images} recaps the PSNR of reconstruction for each of the three benchmark images of 
Fig.~\ref{fig:cameraman}. 
We see that our method, without edge-awareness, does not perform as well as GrBior. This is due to the fact that 
our method is not well suitable to 2D grids as they do not have a natural structure in communities and, on 
the contrary, GrBior is best suitable to bipartite graphs, of which 2D grids are an example. On the other hand, 
when adding edge-awareness, the graph becomes more structured and we obtain results similar to EdAwGrBior. }
%than with EdAwGrBior. }

\ADDED{\textbf{Note on the LC implementation.} We see here that the best reconstruction for the LC 
implementation is always obtained after only one level of analysis. In this case, 
the filterbanks may hardly be seen 
as a multiscale analysis, but rather as a graph windowed Fourier transform. To observe a true multiscale 
analysis with the LC implementation, one needs to either decrease the threshold $\tau$ or increase 
the graph's size.}

%Finally, these results can be compared with those obtained by Sakiyama et al. and
%summarized in Table 1 of~\cite{sakiyama_TSP2014}. In this work, the authors extend the edge-aware Graph Bior 
%filterbanks and propose edge-aware Graph Bior filterbanks defined on oversampled Laplacian matrices. Their results are 
%slightlty better for \textit{synthetic} and for low compression rates of \textit{coins}. 


%After a three-level decomposition of a classical filterbank, 
%and keeping $3\%$ of the high-pass 
%coefficients, one reconstructs the image from $65536/64=1024$ low-pass coefficents and 
%$0.03*(65536-1024)=1935$ high-pass coefficients, hence a total of $2959$ coefficients (instead of the $65536$ values of the 
%original signal). 
%In our design, because we do not use the one every two nodes paradigm, 
%the size of the approximated signal decreases faster down our analysis cascade and we will often find an approximation with less
%than $1024$ points well before the third level.
% no need to go to the third-level to find an approximation signal of size $1024$. In fact, 
% instead of keeping one every two nodes at each new level, we keep one supernode for every detected connected subgraph: 
% the size of the approximated signal decreases faster down our analysis cascade then down analysis cascades following the 
%``one every two nodes'' paradigm. 
%In the case of the \textit{cameraman} image, after the automatic connected subgraph decomposition 
%(following Section~\ref{sec:com_detect}), one finds $K=546$ subgraphs: 
%the approximation signal $\bm{x_1}^{(1)}$ is therefore already of size inferior to $1024$ at level $(1)$. 
%Therefore, we stop 
%the cascade at its first iteration, keeping the approximation signal of size $546$ and $3.71\%$ of the high-pass coefficients 
%--~in order to have exactly the same number of $2959$ non-zero coefficients before reconstruction. 

%We compare in Fig.~\ref{fig:cameraman} (left column) the reconstructed image after several 
%filterbanks: a classical one (CDF 9/7); 
%a Graph Bior filterbank~\cite{narang_TSP2013} with Nonzero DC and \textit{graphBior(6,6)} filters (GrBior); 
%the same Graph Bior filterbank but including edge-awareness~\cite{narang_SSP2012} (EdAwGrBior); 
%and the new connected-subgraph filterbank scheme with (EdAwCoSub) and without (CoSub) edge-awareness. 
%On the middle and right columns, the same comparison is shown for two other benchmark images: 
%\textit{coins} (of size 240$\times$240) and \textit{synthetic} (of size 424$\times$424). Finally, 
%Table~\ref{table:reconstruction} shows further reconstruction results if one keeps more --or less-- high-pass coefficients. 

\begin{comment}
\begin{table}
%\centering
\scriptsize
 \begin{tabular}{c||c|c|c|c|c|c|c}
 $\%$ HP coef & $0$ & $1$ & $2$ & $3$ & $4$ & $8$ & $16$ \\\hline\hline
 
 \multicolumn{8}{c}{\textit{Synthetic}}\\\hline
 CDF 9/7    & $30.4$ & $37.9$ & $42.8$ & $46.9$ & $\bm{50.6}$ & $\bm{66.4}$ & $\bm{107}$ \\\hline
 GrBior     & $30.5$ & $36.2$ & $39.4$ & $42.1$ & $44.7$ & $54.9$ & $71.7$ \\\hline
 EdAwGrBior & $33.7$ & $\bm{41.2}$ & $\bm{44.7}$ & $\bm{47.4}$ & $50.0$ & $59.4$ & $75.5$ \\\hline
 CoSub      & $\bm{35.1}$ & $37.5$ & $39.3$ & $40.9$ & $42.3$ & $47.7$ & $59.9$ \\\hline 
 EdAwCoSub  & $33.9$ & $40.6$ & $44.0$ & $46.5$ & $48.7$ & $57.3$ & $93.6$ \\\hline
 
 \multicolumn{8}{c}{\textit{Cameraman}}\\\hline
 CDF 9/7    & $20.7$ & $23.3$ & $25.2$ & $26.6$ & $27.5$ & $30.7$ & $35.6$ \\\hline
 GrBior     & $20.7$ & $23.9$ & $25.4$ & $26.6$ & $27.5$ & $30.6$ & $35.3$ \\\hline
 EdAwGrBior & $21.4$ & $25.7$ & $27.2$ & $28.3$ & $29.2$ & $32.1$ & $36.7$ \\\hline
 CoSub      & $23.1$ & $24.6$ & $25.6$ & $26.6$ & $27.4$ & $29.9$ & $33.9$ \\\hline 
 EdAwCoSub  & $\bm{27.4}$ & $\bm{28.7}$ & $\bm{29.6}$ & $\bm{30.3}$ & $\bm{31.0}$ & $\bm{33.2}$ & $\bm{37.0}$ \\\hline
 
 \multicolumn{8}{c}{\textit{Coins}}\\\hline
 CDF 9/7    & $23.3$ & $26.4$ & $28.2$ & $29.6$ & $30.7$ & $34.2$ & $40.0$ \\\hline
 GrBior     & $23.3$ & $26.1$ & $27.8$ & $29.0$ & $30.1$ & $33.6$ & $38.9$ \\\hline
 EdAwGrBior & $25.8$ & $28.9$ & $30.5$ & $31.6$ & $32.6$ & $\bm{35.7}$ & $\bm{40.5}$ \\\hline
 CoSub      & $25.1$ & $26.7$ & $27.9$ & $28.9$ & $29.8$ & $32.8$ & $37.5$ \\\hline 
 EdAwCoSub  & $\bm{29.5}$ & $\bm{30.6}$ & $\bm{31.4}$ & $\bm{32.1}$ & $\bm{32.8}$ & $34.9$ & $38.4$ \\\hline\vspace{0.05cm}
 
 \end{tabular}
 \caption{PSNR versus the percentage of high-pass coefficients, for different filterbank methods, on  
 three benchmark images. }
\label{table:reconstruction}
\end{table}
\end{comment}



%In general, CDF 9/7, GrBior and CoSub behave similarly with a difference: the higher (resp. lower) 
%the compression rate, the better is CoSub (resp. CDF 9/7) compared to the other two. GrBior, for all compression rates, 
%shows a median performance. Moreover, in general, the two edge-aware  filterbanks, without surprise, have a better 
%performance than the other three; and the higher the compression rate, the better is EdAwCoSub 
%compared to EdAwGrBior. For a fair comparison, note that 
%CDF 9/7 does not necessitate to store the structure of the graph (and subsequent coarsened graphs), 
%whereas all graph methods do; and this is not taken into account in these comparisons (see the discussion in 
%Section~\ref{subsubsec:technical_dis}). 




\subsubsection{\ADDED{Reconstruction performance for graph signals}}
\label{subsubsec:NLA_graph_signals}

\begin{figure}
  \centering
\includegraphics[width=0.49\textwidth]{compression_Minnesota_PSNR.pdf}\\
    \caption{\ADDED{Left: (full lines) compression results of the graph signal of Fig.~\ref{fig:minnesota}, and 
     (dotted lines) a Gaussian random signal of same energy defined on the same graph. Right: 
     same comparison using the Infomap clustering algorithm rather than the Louvain algorithm 
     to find partitions in connected subgraphs (see Section~\ref{subsec:choice_adjacency}). Results 
     with the random signal are averaged over 10 realisations.}}
    \label{fig:compression_on_graph}
\end{figure}

\ADDED{The graph signal model undermining the NLA scheme 
is that graph signals should be smooth with respect to the topology on which 
they are defined. For instance, let us consider the graph signal of Fig.~\ref{fig:minnesota} (left): it is  
by construction smooth with respect to the underlying graph as it is the sum of the 
first five eigenvectors of its Laplacian matrix. We compare in Fig.~\ref{fig:compression_on_graph} 
(left, full lines) 
the reconstruction performance for our filterbank implementations, to Shuman's Laplacian pyramid 
filterbanks~\cite{shuman_ARXIV2013}, with respect to the compression ratio. 
%Unfortunately, we cannot compare 
%to methods based on bipartite signals as they have not been fully implemented~\cite{OSGFB,GrBior}  to cascade on graph structures 
%different than the regular grid. 
The dotted lines on the same Figure 
 show the performances for a random Gaussian signal of zero mean and variance 1, 
normalized to have the same energy as the smooth signal. As expected, random signals are dense on the proposed 
analysis atoms, and reconstruction is comparatively poor. Moreover, we see that our proposed filterbanks really 
have an edge for signals who are smooth compared to the community structure of the underlying graph. 
On the right of Fig.~\ref{fig:compression_on_graph} are represented the performances obtained with the 
Infomap algorithm rather than the Louvain algorithm (see Section~\ref{subsec:choice_adjacency}). 
In this particular case, performances with Infomap are better. Empirically, we find that using the Louvain 
algorithm or the 
Infomap algorithm yields in general similar results.}

\ADDED{\textbf{Note on the typical size of communities:} In this Minnesota example (resp. \textit{cameraman} 
example), the typical community size of the first level of the cascade is 2 (resp. 2) for CoSub SC, 
5 (resp. 5) for EdAwCoSub SC, 80 (resp. 200) for CoSub LC, and 40 (resp. 100) for EdAwCoSub LC.}

%\ADDED{Let us build an Erdos-Renyi random graph of same number of nodes ($N=2640$) with a probability of link 
%existence of $p=N\log{N}=0.03$ (which implies it is connected with high probability). Let us create, again, 
%a ``smooth'' signal consisting of the sum of the first five graph Fourier modes; and a random graph 
%signal of same energy. We show corresponding results in Fig.~\ref{fig:compression_on_graph} (right). We see that the lack of structure 
%of the graph implies poorer reconstruction results. Also, in this case, edge-awareness makes a 
%significant difference: it gives coherent structure to an otherwise completely structureless graph. }

%\ADDED{Unfortunately, we cannot compare these results with state-of-the-art as available 
%toolboxes%~\cite{OSGFB,GrBior} 
%have 
%not implemented multi-level 
%{\Large{\textbf{***TODO***: add why we cannot compare to other methods}}}\\}


%\subsubsection{\ADDED{Reconstruction of a signal on the Minnesota graph}}

%\subsubsection{\ADDED{Reconstruction of a signal on a random graph}}

\subsection{Application in denoising, on the Minnesota traffic graph}
\label{subsec:denoising}

\begin{figure}
  \centering
  \begin{minipage}{.32\linewidth}
   \centerline{a) \includegraphics[width=\textwidth]{Minnesota_orig.pdf}}
  \centerline{d) \includegraphics[width=\textwidth]{Minnesota_denoising_Lappyr.pdf}}
  \end{minipage}
  %\hfill
\begin{minipage}{.32\linewidth}
  \centerline{b) \includegraphics[width=\textwidth]{Minnesota_noisy.pdf}}
   \centerline{e) \includegraphics[width=\textwidth]{Minnesota_denoising_CSLC.pdf}}    
  \end{minipage}
  \begin{minipage}{.32\linewidth}
   \centerline{c) \includegraphics[width=\textwidth]{Minnesota_denoising_GrBior.pdf}}
  \centerline{f) \includegraphics[width=\textwidth]{Minnesota_denoising_CSLC_Ed_Aw.pdf}}
  \end{minipage}
  
 %~~~~~~~~~~~a)\hfill b)\hfill c)\hfill d)\hfill e)~~~~~~~~~~~~~~~~~~~~~~~~~
    \caption{a) Piece-wise constant signal on the Minnesota traffic graph \MODIF{(only two values: $\pm 1$)}, 
    and b) its corrupted version with an additive Gaussian noise of standard deviation $\sigma=1/4$. The 
    \MODIF{four} other figures are denoised signals after a one-level analysis and hard-thresholding 
    all high-pass coefficients with $T=3\sigma$. 
    c) GrBior; \MODIF{d) Laplacian pyramid; e) CoSub LC; f) EdAwCoSub LC.}}
    \label{fig:denoising}
\end{figure}

\begin{figure}
  \centering
  \begin{minipage}{.32\linewidth}
   \centerline{a) \includegraphics[width=\textwidth]{Minnesota_orig_15.pdf}}
  \centerline{d) \includegraphics[width=\textwidth]{Minnesota_denoising_Lappyr_15.pdf}}
  \end{minipage}
  %\hfill
\begin{minipage}{.32\linewidth}
  \centerline{b) \includegraphics[width=\textwidth]{Minnesota_noisy_15.pdf}}
   \centerline{e) \includegraphics[width=\textwidth]{Minnesota_denoising_CSLC_15.pdf}}    
  \end{minipage}
  \begin{minipage}{.32\linewidth}
   \centerline{c) \includegraphics[width=\textwidth]{Minnesota_denoising_GrBior_15.pdf}}
  \centerline{f) \includegraphics[width=\textwidth]{Minnesota_denoising_CSLC_Ed_Aw_15.pdf}}
  \end{minipage}
  
 %~~~~~~~~~~~a)\hfill b)\hfill c)\hfill d)\hfill e)~~~~~~~~~~~~~~~~~~~~~~~~~
    \caption{\ADDED{a) Smooth signal on the Minnesota traffic graph (the same as in 
    Fig.~\ref{fig:minnesota}), 
  and b) its corrupted version with an additive Gaussian noise of standard deviation $\sigma=1/4$. 
  The four other figures 
    are denoised signals after a one-level analysis and hard-thresholding all high-pass coefficients with $T=3\sigma$. 
    c) GrBior; d) Laplacian Pyramid; e) CoSub LC; f) EdAwCoSub LC.}}
    \label{fig:denoising_15}
\end{figure}


\begin{figure}[t]
  \centering
  \includegraphics[width=0.49\textwidth]{denoising_Minnesota_compare.pdf}
    \caption{\ADDED{Comparison of the denoising performance for  
    (left) the piece-wise constant signal of Fig.~\ref{fig:denoising}a and 
    (right) the smooth signal of Fig.~\ref{fig:denoising_15}a; vs. the standard deviation of a Gaussian 
    corrupting noise. Both signals are normalized such that their maximum absolute value is one. Results 
    are averaged over ten realisations of the corrupting noise.}}
    \label{fig:denoising_results}
\end{figure}

\begin{comment}
\begin{table}
\centering
\footnotesize
 \begin{tabular}{c||c|c|c|c|c}
 $\sigma$&noisy&GrBior&CoSub SC&CoSub LC&EdAwCoSub LC\\\hline
 $1/32$ & $30.1$ & $31.9$ & 33.5 & $33.1$ & $\bm{44.4}$\\\hline
 $1/16$ & $24.2$ & $25.3$ & 27.5 & $27.0$ & $\bm{37.6}$ \\\hline
 $1/8$  & $18.2$ & $19.6$ & 21.4 & $21.2$ & $\bm{32.2}$ \\\hline
 $1/4$  & $12.0$ & $14.1$ & 15.6 & $16.5$ & $\bm{22.4}$ \\\hline
 $1/2$  & $6.0$ & $8.8$ & 9.4 & $13.3$ & $\bm{18.0}$ \\\hline
 $1$    & $-0.1$ & $2.5$ & 3.1 & $\bm{8.7}$ & $8.0$ \\\hline
 $2$    & $-6.0$ & $-3.5$ & -2.7 & $\bm{5.0}$ & $3.1$\\\hline
 \end{tabular}\vspace{0.15cm}
 \caption{SNR versus $\sigma$ in the denoising experiment detailed in Section~\ref{subsec:denoising}.}
\label{table:denoising}
\end{table}
\end{comment}

Another application of filterbanks is denoising. We consider first a piece-wise constant graph signal 
(that has only two possible values: +1 and -1) defined 
on the Minnesota traffic graph, as shown in Fig.~\ref{fig:denoising}a; \ADDED{so as to compare 
our proposition with previously published methods.} We corrupt this signal with an additive Gaussian 
noise of standard deviation $\sigma$. 
Fig.~\ref{fig:denoising}b shows such a corrupted signal with $\sigma=1/4$. We then 
 attempt to recover the original image by computing the first level of the analysis cascade,
 and reconstructing the signal from all low-pass coefficients and thresholded high-pass coefficients having absolute value 
higher than $T=3\sigma$. 
\ADDED{In order for such a thresholding scheme to be justified for denoising, 
the energy of coefficients associated to noise should have a constant variance in all the
details after analysis. For that, we use here a $L_2$ normalization of the local Fourier modes (rather than  $L_1$) 
for this denoising experiment (see the discussion in Section~\ref{subsec:Haar_particular}).} 

\MODIF{Fig.~\ref{fig:denoising} compares results obtained with Graph Bior filterbanks 
\ADDED{(to our knowledge, the Edge-Aware Graph Bior  algorithm is not implemented for graphs different than 
the 2D grid) 
and with the Laplacian Pyramid filterbanks to our 
proposition of filterbanks, for $\sigma=1/4$. Fig.~\ref{fig:denoising_results}  (left) summarizes 
SNR results for different values of $\sigma$. These results may be compared to those 
obtained by Sakiyama et al. and summarized in Table 5 of~\cite{sakiyama_TSP2014}.}}
%
\ADDED{We study also the denoising on the smooth signal of Fig.~\ref{fig:minnesota}. Results 
are shown in  Fig.~\ref{fig:denoising_15} for $\sigma=1/4$ and summarized in Fig.~\ref{fig:denoising_results} (right) 
for different values of $\sigma$. }

%the result obtained with Graph Bior filterbanks \ADDED{(to our knowledge, the Edge-Aware Graph Bior 
%algorithm has not been defined nor implemented for general graph signals by the authors).} 
%Fig~\ref{fig:denoising}d (resp. e) 
%shows the result obtained with the CoSub SC (resp. LC) implementation. Finally, Table~\ref{table:denoising} summarizes 
%SNR results for different values of $\sigma$. Once again, this Table may also be completed by results 
%obtained by Sakiyama et al. and summarized in Table 5 of~\cite{sakiyama_TSP2014}. 
\MODIF{All four of our implementations outperform GrBior. Moreover, CoSub LC and the Laplacian pyramid 
obtain similar results; our method performing slightly better at high compression rates. Edge-awareness helps 
in the case of the piece-wise constant signal and not so much for the smooth signal.}


%EdAwCoSub has a very high performance at low $\sigma$ and 
%loses progressively its advantage as $\sigma$ increases: this is because edges in the signal become increasingly fuzzy 
%as $\sigma$ increases. Interestingly, CoSub performs better than GrBior for all $\sigma$, and better than Sakiyama et al.'s 
%method for the three largest values of $\sigma$.


\section{Conclusion}
\label{sec:conclusion}
While previous methods are based on global filters defined
in the global Fourier 
space of the graph, we defined local filters based on the local Fourier spaces of each connected subgraph. 
Thanks to this paradigm, a simple form of filterbanks is designed, that one could call Haar graph filterbank: 
the $k$-th value of the downsampled approximation (resp. details) is the average (resp. differences) 
of the signal on subgraph $k$. 

\MODIF{We first illustrated this for compression on images, mainly for pedagogical and state-of-the-art comparison purposes. 
In fact, without edge-awareness, our proposition is not really good for such regular structures. Edge-awareness, 
on the other hand, by giving structure to the network raises performance to the state-of-the-art. 
The improvement over existing methods becomes truly apparent for irregular graphs for which a community 
structure exists. Existence of communities is a very common, if not universal, property of real-world graphs; 
and our filterbanks rely on this particular organization of complex networks. For such graphs, 
our proposition outperforms existing ones on non-linear approximation experiments and equals state-of-the art 
on denoising experiments.} 

Within this framework, future work will concentrate on extending the local filters to more sophisticated filters, 
and on finding ways to critically sample jointly the graph structure and the graph signal defined on it.



%This simple idea is well suited to study graph signals who vary slowly 
%according to the chosen subgraph structure. Many real-world graphs hqave community structure, and in this context, 
%a natural assumption is to suppose that graph signals do not vary too much within each community. This is the 
%underlying model we supposed in our NLA and denoising experiments. 


%at least state-of-the-art performances on usual benchmarks, 
%and outperforms  many methods in image compression at high compression rates, and in simple denoising experiments. 




%An original framework for graph filterbanks is proposed in this work. Whereas all existing methods are based on the 
%``one every two nodes'' paradigm either through the sign of the highest frequency graph Fourier mode, or through 
%bipartite graph decompositions, we coarsen the graph by defining supernodes representing 
%its decomposition in connected subgraphs. Also, 





\begin{appendix}

\begin{comment}

\subsection{\ADDED{Analysis, Synthesis and Group operators on a trivial example}}
\label{subsubsec:example}
\ADDED{Consider the trivial graph composed of five nodes. Three of them form a closed triangle. The other two are 
connected. The triangle and the pair are connected to each other with only one link. Its adjacency matrix 
$\bm{A}$ reads:
\begin{equation}
 \bm{A}=\left[\footnotesize{\begin{array}{ccccc}
0 & \bm{1} & \bm{1} & 0 & 0\\
\bm{1} & 0 & \bm{1} & 0 & 0\\
\bm{1} & \bm{1} & 0 & \bm{1} & 0\\
0 & 0 & \bm{1} & 0 & \bm{1}\\
0 & 0 & 0 & \bm{1} & 0\\
\end{array}}\right].
\end{equation}
In this example, we consider the partition that separates the triangle (subgraph $\mathcal{G}^{(1)}$) 
from the pair (subgraph $\mathcal{G}^{(2)}$):
\begin{equation}
 \bm{c}=(1,1,1,2,2).
\end{equation}
Therefore $\Gamma^{(1)}=(1,2,3)$ is the list of the nodes composing the triangle, 
and $\Gamma^{(2)}=(4,5)$ is the list of the nodes composing the pair.
The subsampling operators associated to $\mathcal{G}^{(1)}$ and $\mathcal{G}^{(2)}$ read:
\begin{equation}
  \bm{C}^{(1)}=\left[\footnotesize{\begin{array}{ccc}
\bm{1} & 0 & 0 \\
0 & \bm{1} & 0 \\
0 & 0 & \bm{1} \\
0 & 0 & 0 \\
0 & 0 & 0 \\
\end{array}}\right], \qquad
  \bm{C}^{(2)}=\left[\footnotesize{\begin{array}{cc}
0 & 0 \\
0 & 0 \\
0 & 0 \\
\bm{1} & 0 \\
0 & \bm{1} \\
\end{array}}\right].
\end{equation}
The intra- and inter- subgraph adjacency matrices read:
\begin{equation}
 \bm{A_{int}}=\left[\footnotesize{\begin{array}{ccccc}
0 & \bm{1} & \bm{1} & 0 & 0\\
\bm{1} & 0 & \bm{1} & 0 & 0\\
\bm{1} & \bm{1} & 0 & 0 & 0\\
0 & 0 & 0 & 0 & \bm{1}\\
0 & 0 & 0 & \bm{1} & 0\\
\end{array}}\right] 
 \bm{A_{ext}}=\left[\footnotesize{\begin{array}{ccccc}
0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & 0 & 0\\
0 & 0 & 0 & \bm{1} & 0\\
0 & 0 & \bm{1} & 0 & 0\\
0 & 0 & 0 & 0 & 0\\
\end{array}}\right].\nonumber
\end{equation}
The local Laplacian operators $\bm{\mathcal{L}_{int}}^{(1)}$ and $\bm{\mathcal{L}_{int}}^{(2)}$ read:
\begin{equation}
 \bm{\mathcal{L}_{int}}^{(1)}=\left[\footnotesize{\begin{array}{ccc}
2 & -1 & -1 \\
-1 & 2 & -1 \\
-1 & -1 & 2 \\
\end{array}}\right], ~~
 \bm{\mathcal{L}_{int}}^{(2)}=\left[\footnotesize{\begin{array}{cc}
1 & -1  \\
-1 & 1  
\end{array}}\right].
\end{equation}
One may diagonalize $\bm{\mathcal{L}_{int}}^{(1)}$ and obtain $\bm{Q}^{(1)}$ and 
$\bm{P}^{{(1)}}$:
\begin{equation}
 \bm{Q}^{(1)}=\left[\footnotesize{\begin{array}{ccc}
1/3 & 1/2 & 1/4 \\
1/3 & -1/2 & 1/4 \\
1/3 & 0 & -1/2 
\end{array}}\right],
 \bm{P}^{(1)}=\left[\footnotesize{\begin{array}{ccc}
1 & 1 & 2/3 \\
1 & -1 & 2/3   \\
1 & 0 & -4/3   
\end{array}}\right]\nonumber
\end{equation}
as well as $\bm{\Lambda}^{(1)}=\mbox{diag}(0,3,3)$. One may also diagonalize 
$\bm{\mathcal{L}_{int}}^{(2)}$ and obtain $\bm{\Lambda}^{(2)}=\mbox{diag}(0,2)$ as well as $\bm{Q}^{(2)}$ and 
$\bm{P}^{{(2)}}$:
\begin{equation}
 \bm{Q}^{(2)}=\left[\footnotesize{\begin{array}{ccc}
1/2 & 1/2 \\
1/2 & -1/2 
\end{array}}\right],
 \bm{P}^{(2)}=\left[\footnotesize{\begin{array}{ccc}
1 & 1 \\
1 & -1
\end{array}}\right].
\end{equation}
Moreover, $N_1=3$, $N_2=2$, therefore 
there are $\tilde{N}_1=3$ Analysis, Synthesis and Group operators: 
\begin{equation}
  \bm{\Theta}_1=\left[\footnotesize{\begin{array}{cc}
1/3 & 0 \\
1/3 & 0 \\
1/3 & 0 \\
0 & 1/2 \\
0 & 1/2 
\end{array}}\right]
  \bm{\Theta}_2=\left[\footnotesize{\begin{array}{ccccc}
1/2 & 0 \\
-1/2 & 0 \\
0 & 0 \\
0 & 1/2 \\
0 & -1/2 
\end{array}}\right]
  \bm{\Theta}_3=\left[\footnotesize{\begin{array}{ccccc}
1/4 \\
1/4 \\
-1/2 \\
0 \\
0 
\end{array}}\right]\nonumber
\end{equation}
\begin{equation}
  \bm{\Pi}_1=\left[\footnotesize{\begin{array}{cc}
1 & 0 \\
1 & 0 \\
1 & 0 \\
0 & 1 \\
0 & 1 
\end{array}}\right]
  \bm{\Pi}_2=\left[\footnotesize{\begin{array}{ccccc}
1 & 0 \\
-1 & 0 \\
0 & 0 \\
0 & 1 \\
0 & -1 
\end{array}}\right]
  \bm{\Pi}_3=\left[\footnotesize{\begin{array}{ccccc}
2/3 \\
2/3 \\
-4/3 \\
0 \\
0 
\end{array}}\right]
\end{equation}}
\begin{equation}
\ADDED{
  \bm{\Omega}_1=\left[\footnotesize{\begin{array}{cc}
1 & 0 \\
1 & 0 \\
1 & 0 \\
0 & 1 \\
0 & 1 
\end{array}}\right]
  \bm{\Omega}_2=\left[\footnotesize{\begin{array}{ccccc}
1 & 0 \\
1 & 0 \\
1 & 0 \\
0 & 1 \\
0 & 1 
\end{array}}\right]
  \bm{\Omega}_3=\left[\footnotesize{\begin{array}{ccccc}
1 \\
1 \\
1 \\
0 \\
0 
\end{array}}\right]}
\end{equation}

\ADDED{In our toy example, the approximated graph's adjacency matrix reads:}
\begin{equation}
\ADDED{ \bm{A_1}^{(1)}=\bm{\Omega}_1^\top\bm{A_{ext}}\bm{\Omega}_1=\left[\footnotesize{\begin{array}{cc}
0 & 1 \\
1 & 0 \\
\end{array}}\right].}
\end{equation}
\ADDED{Let us add a second level of analysis where $\bm{c}^{(2)}=(1,1)$: we group together the two nodes of the 
approximated graph. The second-level approximated graph is thereby reduced to one node, and the analysis 
operators are:}
\begin{equation}
\ADDED{
  \bm{\Theta}_1^{(2)}=\left[\footnotesize{\begin{array}{cc}
1/2 &
1/2
\end{array}}\right]^\top \mbox{   and   }~~
  \bm{\Theta}_2^{(2)}=\left[\footnotesize{\begin{array}{cc}
1/2 &
-1/2
\end{array}}\right]^\top.}
\end{equation}
\ADDED{Therefore, the 4 detail analysis atoms read:}
\begin{equation}\ADDED{
\begin{aligned}
\bm{\Psi}_{2}^{(1)}&=\bm{\Theta_2^{(1)}}, \bm{\Psi}_{3}^{(1)}=\bm{\Theta_3^{(1)}}~~\mbox{  and   }\\
%
%
%|\bm{\Theta_3^{(1)}}\right]=\left[\footnotesize{\begin{array}{ccc}
%1/2 & 0 &0\\
%-1/4 & 0 &1/2\\
%-1/4 & 0 &-1/2\\
%0 & 1/2 &0\\
%0 & -1/2 &0
%\end{array}}\right]
\bm{\Psi}_{2}^{(2)}&=\bm{\Theta_1^{(1)}}\times\bm{\Theta_2^{(2)}}=\left[\footnotesize{\begin{array}{ccccc}
1/6&
1/6&
1/6&
-1/4&
-1/4
\end{array}}\right]^\top.
\end{aligned}}
\end{equation}
\ADDED{The approximation analysis atom at level $(2)$ reads:}
\begin{equation}
\ADDED{
\bm{\Phi}^{(2)}=\bm{\Theta_1^{(1)}}\times\bm{\Theta_1^{(2)\top}}=
\footnotesize{\frac{1}{6}}\left[\footnotesize{\begin{array}{ccccc}
1 & 1 & 1 & 1 & 1
\end{array}}\right]^\top}.
\end{equation}

\ADDED{However, if using a $L_2$ normalization, $\bm{\Psi}_2$ would read:}
\begin{equation}
\ADDED{
\bm{\Psi}_2^{(2)}=
\left[\footnotesize{\begin{array}{ccccc}
1/\sqrt{6} & 1/\sqrt{6} & 1/\sqrt{6} & -1/2 & -1/2
\end{array}}\right]^\top.}
\end{equation}

\end{comment}


\subsection{\ADDED{A proposition for uniqueness of the operators}} 
\label{sec:uniqueness}
\ADDED{
To enforce uniqueness of the graph Fourier basis in the case of eigenvalue $\lambda$ having
multiplicity $m>1$, a possible rule can be set as follows.
Consider the first  vector of this eigenspace. All we know is its orthogonality with vectors of all other eigenspaces, 
i.e. $N-m$ vectors. 
We decide to arbitrarily force its last $m$ coefficients to zero, and then find the unique
$N-m$ coefficients  that respects orthogonality with other known vectors and proper normalization. 
Note that, if at least one of the vectors of the other eigenspaces 
have non-zero values only on these last $m$ coefficients, we then look for the set 
of $m$ coefficients closest possible to the last one such that uniqueness is guaranteed.
For the second vector, it has to be orthogonal to the already decided $N-m+1$ vectors: 
we arbitrarily force its $m-1$ last coefficients to zero and 
find the unique set of its set of coefficients thanks to orthogonality. And so on and so forth up
to the multiplicity $m$.}

\ADDED{Note that, for practical implementations, classical functions for eigenvector computation
(for instance \texttt{eig} or \texttt{svd} in Matlab) empirically output the same choice of eigenvectors
when run on two \textit{exactly} identical inputs, even when there are eigenvalues with multiplicity.
}
\end{appendix}


{\footnotesize
\bibliographystyle{IEEEtran}
\bibliography{biblio.bib}}

%\bibliography{/home/ntrembla/Documents/postdoc_Rennes/new_biblio/new_biblio.bib}}
%/home/ntrembla/Documents/postdoc_Lyon/filterbanks/paper/biblio.bib}}


%\begin{biography}[{\includegraphics[width=1in,height=1.25in,clip,keepaspectratio]{borgnat10}}]{Pierre Borgnat} bio here.
%\end{biography}

%\begin{IEEEbiography}[]{Nicolas Tremblay} bio here.
%\end{IEEEbiography}

%\begin{IEEEbiography}[]{Pierre Borgnat} bio here.
%\end{IEEEbiography}

\end{document}
