<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <!--Converted with LaTeX2HTML 98.1p1 release (March 2nd, 1998) originally by Nikos Drakos (nikos@cbl.leeds.ac.uk), CBLU, University of Leeds * revised and updated by: Marcus Hennecke, Ross Moore, Herb Swan * with significant contributions from: Jens Lippmann, Marek Rouchal, Martin Wilck and others --> <HTML> <HEAD> <TITLE>Multiresolution Analysis</TITLE> <META NAME="description" CONTENT="Multiresolution Analysis"> <META NAME="keywords" CONTENT="vol2"> <META NAME="resource-type" CONTENT="document"> <META NAME="distribution" CONTENT="global"> <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1"> <LINK REL="STYLESHEET" HREF="vol2.css"> <LINK REL="next" HREF="node317.html"> <LINK REL="previous" HREF="node315.html"> <LINK REL="up" HREF="node314.html"> <LINK REL="next" HREF="node317.html"> </HEAD> <BODY > <!--Navigation Panel--> <A NAME="tex2html5409" HREF="node317.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="icons.gif/next_motif.gif"></A> <A NAME="tex2html5406" HREF="node314.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="icons.gif/up_motif.gif"></A> <A NAME="tex2html5400" HREF="node315.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="icons.gif/previous_motif.gif"></A> <A NAME="tex2html5408" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="icons.gif/contents_motif.gif"></A> <BR> <B> Next:</B> <A NAME="tex2html5410" HREF="node317.html">The à trous algorithm</A> <B> Up:</B> <A NAME="tex2html5407" HREF="node314.html">The discrete wavelet transform</A> <B> Previous:</B> <A NAME="tex2html5401" HREF="node315.html">Introduction</A> <BR> <BR> <!--End of Navigation Panel--> <H2><A NAME="SECTION002042000000000000000"> </A> <A NAME="sec_mallat"> </A> <BR> Multiresolution Analysis </H2> Multiresolution analysis [<A HREF="node370.html#mallat">25</A>] results from the embedded subsets generated by the interpolations at different scales. <P> A function <I>f</I>(<I>x</I>) is projected at each step <I>j</I> onto the subset <I>V</I><SUB><I>j</I></SUB>. This projection is defined by the scalar product <I>c</I><SUB><I>j</I></SUB>(<I>k</I>) of <I>f</I>(<I>x</I>) with the scaling function <IMG WIDTH="49" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img602.gif" ALT="$\phi(x)$"> which is dilated and translated: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} c_j(k)=<f(x),2^{-j}\phi( 2^{-j}x-k)> \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="320" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="img603.gif" ALT="$\displaystyle c_j(k)=<f(x),2^{-j}\phi( 2^{-j}x-k)>$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.9)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> As <IMG WIDTH="49" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img604.gif" ALT="$\phi(x)$"> is a scaling function which has the property: <BR> <DIV ALIGN="CENTER"><A NAME="eqn_phi_h"> </A> <!-- MATH: \begin{eqnarray} {1 \over 2} \phi({x \over 2}) = \sum_n h(n) \phi(x-n) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="255" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img605.gif" ALT="$\displaystyle {1 \over 2} \phi({x \over 2}) = \sum_n h(n) \phi(x-n)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.10)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> or <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat{\phi}(2\nu)=\hat h(\nu)\hat{\phi}(\nu) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="172" HEIGHT="53" ALIGN="MIDDLE" BORDER="0" SRC="img606.gif" ALT="$\displaystyle \hat{\phi}(2\nu)=\hat h(\nu)\hat{\phi}(\nu)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.11)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> where <!-- MATH: $\hat h(\nu)$ --> <IMG WIDTH="47" HEIGHT="53" ALIGN="MIDDLE" BORDER="0" SRC="img607.gif" ALT="$\hat h(\nu)$"> is the Fourier transform of the function <!-- MATH: $\sum_n h(n)\delta(x-n)$ --> <IMG WIDTH="164" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img608.gif" ALT="$\sum_n h(n)\delta(x-n)$">. We get: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat h(\nu)=\sum_n h(n)e^{-2\pi n \nu} \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="214" HEIGHT="60" ALIGN="MIDDLE" BORDER="0" SRC="img609.gif" ALT="$\displaystyle \hat h(\nu)=\sum_n h(n)e^{-2\pi n \nu}$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.12)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> Equation <A HREF="node316.html#eqn_phi_h">14.10</A> permits to compute directly the set <!-- MATH: $c_{j+1}(k)$ --> <I>c</I><SUB><I>j</I>+1</SUB>(<I>k</I>) from <I>c</I><SUB><I>j</I></SUB>(<I>k</I>). If we start from the set <I>c</I><SUB>0</SUB>(<I>k</I>) we compute all the sets <I>c</I><SUB><I>j</I></SUB>(<I>k</I>), with <I>j</I>>0, without directly computing any other scalar product: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} c_{j+1}(k)=\sum_n h(n-2 k)c_{j}(n) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="277" HEIGHT="60" ALIGN="MIDDLE" BORDER="0" SRC="img610.gif" ALT="$\displaystyle c_{j+1}(k)=\sum_n h(n-2 k)c_{j}(n)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.13)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> At each step, the number of scalar products is divided by 2. Step by step the signal is smoothed and information is lost. The remaining information can be restored using the complementary subspace <I>W</I><SUB><I>j</I>+1</SUB> of <I>V</I><SUB><I>j</I>+1</SUB> in <I>V</I><SUB><I>j</I></SUB>. This subspace can be generated by a suitable wavelet function <IMG WIDTH="50" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img611.gif" ALT="$\psi(x)$"> with translation and dilation. <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} {1 \over 2}\psi({x\over 2})=\sum_n g(n)\phi(x-n) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="256" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img612.gif" ALT="$\displaystyle {1 \over 2}\psi({x\over 2})=\sum_n g(n)\phi(x-n)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.14)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> or <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat{\psi}(2\nu)=\hat{g}(\nu)\hat{\phi}(\nu) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="172" HEIGHT="53" ALIGN="MIDDLE" BORDER="0" SRC="img613.gif" ALT="$\displaystyle \hat{\psi}(2\nu)=\hat{g}(\nu)\hat{\phi}(\nu)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.15)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> We compute the scalar products <!-- MATH: $<f(x),2^{-(j+1)}\psi(2^{-(j+1)} x-k)>$ --> <IMG WIDTH="323" HEIGHT="51" ALIGN="MIDDLE" BORDER="0" SRC="img614.gif" ALT="$<f(x),2^{-(j+1)}\psi(2^{-(j+1)} x-k)>$"> with: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} w_{j+1}(k)=\sum_n g(n-2k)c_{j}(n) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="281" HEIGHT="60" ALIGN="MIDDLE" BORDER="0" SRC="img615.gif" ALT="$\displaystyle w_{j+1}(k)=\sum_n g(n-2k)c_{j}(n)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.16)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> With this analysis, we have built the first part of a filter bank [<A HREF="node370.html#smith">34</A>]. In order to restore the original data, Mallat uses the properties of orthogonal wavelets, but the theory has been generalized to a large class of filters [<A HREF="node370.html#cdf">8</A>] by introducing two other filters <IMG WIDTH="19" HEIGHT="27" ALIGN="BOTTOM" BORDER="0" SRC="img616.gif" ALT="$\tilde h$"> and <IMG WIDTH="17" HEIGHT="40" ALIGN="MIDDLE" BORDER="0" SRC="img617.gif" ALT="$\tilde g$"> named conjugated to <I>h</I> and <I>g</I>. The restoration is performed with: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} c_{j}(k)=2\sum_l [c_{j+1}(l)\tilde h(k+2l)+w_{j+1}(l)\tilde g(k+2l)] \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="469" HEIGHT="65" ALIGN="MIDDLE" BORDER="0" SRC="img618.gif" ALT="$\displaystyle c_{j}(k)=2\sum_l [c_{j+1}(l)\tilde h(k+2l)+w_{j+1}(l)\tilde g(k+2l)]$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.17)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <P> In order to get an exact restoration, two conditions are required for the conjugate filters: <UL> <LI><I>Dealiasing condition</I>: <BR> <DIV ALIGN="CENTER"><A NAME="eqn_desa"> </A> <!-- MATH: \begin{eqnarray} \hat h(\nu+\frac{1}{2})\hat{\tilde h}(\nu)+\hat g(\nu+\frac{1}{2})\hat{\tilde g}(\nu)=0 \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="321" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img619.gif" ALT="$\displaystyle \hat h(\nu+\frac{1}{2})\hat{\tilde h}(\nu)+\hat g(\nu+\frac{1}{2})\hat{\tilde g}(\nu)=0$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.18)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> <LI><I>Exact restoration:</I> <BR> <DIV ALIGN="CENTER"><A NAME="eqn_exact"> </A> <!-- MATH: \begin{eqnarray} \hat h(\nu)\hat{\tilde h}(\nu)+\hat g(\nu)\hat{\tilde g}(\nu)=1 \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="237" HEIGHT="63" ALIGN="MIDDLE" BORDER="0" SRC="img620.gif" ALT="$\displaystyle \hat h(\nu)\hat{\tilde h}(\nu)+\hat g(\nu)\hat{\tilde g}(\nu)=1$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.19)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P></UL> <P> <BR> <DIV ALIGN="CENTER"><A NAME="fig_shema_filter_bank"> </A><A NAME="14390"> </A> <TABLE WIDTH="50%"> <CAPTION><STRONG>Figure 14.3:</STRONG> The filter bank associated with the multiresolution analysis</CAPTION> <TR><TD><IMG WIDTH="940" HEIGHT="675" SRC="img622.gif" ALT="\begin{figure} \centerline{ \hbox{ \psfig{figure=fig_paper_3.ps,bbllx=3.5cm,bblly=9cm,bburx=18cm,bbury=22.5cm,height=10 cm,width=14cm,clip=} }} \end{figure}"></TD></TR> </TABLE> </DIV> <BR> <P> In the decomposition, the function is successively convolved with the two filters <I>H</I> (low frequencies) and <I>G</I> (high frequencies). Each resulting function is decimated by suppression of one sample out of two. The high frequency signal is left, and we iterate with the low frequency signal (upper part of figure <A HREF="node316.html#fig_shema_filter_bank">14.3</A>). In the reconstruction, we restore the sampling by inserting a 0 between each sample, then we convolve with the conjugate filters <IMG WIDTH="25" HEIGHT="27" ALIGN="BOTTOM" BORDER="0" SRC="img623.gif" ALT="$\tilde H$"> and <IMG WIDTH="23" HEIGHT="27" ALIGN="BOTTOM" BORDER="0" SRC="img624.gif" ALT="$\tilde G$">, we add the resulting functions and we multiply the result by 2. We iterate up to the smallest scale (lower part of figure <A HREF="node316.html#fig_shema_filter_bank">14.3</A>). <P> Orthogonal wavelets correspond to the restricted case where: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat g(\nu) & = & e^{-2\pi\nu}\hat h^*(\nu+{1\over 2}) \\ \hat{\tilde h}(\nu) & = & \hat h^*(\nu) \\ \hat{\tilde g}(\nu) & = & \hat g^*(\nu) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="45" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img625.gif" ALT="$\displaystyle \hat g(\nu)$"></TD> <TD ALIGN="CENTER" NOWRAP>=</TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="152" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img626.gif" ALT="$\displaystyle e^{-2\pi\nu}\hat h^*(\nu+{1\over 2})$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.20)</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="47" HEIGHT="63" ALIGN="MIDDLE" BORDER="0" SRC="img627.gif" ALT="$\displaystyle \hat{\tilde h}(\nu)$"></TD> <TD ALIGN="CENTER" NOWRAP>=</TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="57" HEIGHT="53" ALIGN="MIDDLE" BORDER="0" SRC="img628.gif" ALT="$\displaystyle \hat h^*(\nu)$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.21)</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="45" HEIGHT="52" ALIGN="MIDDLE" BORDER="0" SRC="img629.gif" ALT="$\displaystyle \hat{\tilde g}(\nu)$"></TD> <TD ALIGN="CENTER" NOWRAP>=</TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="56" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img630.gif" ALT="$\displaystyle \hat g^*(\nu)$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.22)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> and <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \mid \hat h(\nu) \mid^2+ \mid \hat h(\nu+{1\over 2} \mid^2=1 \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="253" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img631.gif" ALT="$\displaystyle \mid \hat h(\nu) \mid^2+ \mid \hat h(\nu+{1\over 2} \mid^2=1$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.23)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> We can easily see that this set satisfies the two basic relations <A HREF="node316.html#eqn_desa">14.18</A> and <A HREF="node316.html#eqn_exact">14.19</A>. Daubechies wavelets are the only compact solutions. For biorthogonal wavelets [<A HREF="node370.html#cdf">8</A>] we have the relations: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat g(\nu) & = & e^{-2\pi\nu}\hat{\tilde h}^*(\nu+{1\over 2}) \\ \hat{\tilde g}(\nu) & = & e^{2\pi\nu}\hat h^*(\nu+{1\over 2}) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="46" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img632.gif" ALT="$\displaystyle \hat g(\nu)$"></TD> <TD ALIGN="CENTER" NOWRAP>=</TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="151" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img633.gif" ALT="$\displaystyle e^{-2\pi\nu}\hat{\tilde h}^*(\nu+{1\over 2})$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.24)</TD></TR> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="46" HEIGHT="52" ALIGN="MIDDLE" BORDER="0" SRC="img634.gif" ALT="$\displaystyle \hat{\tilde g}(\nu)$"></TD> <TD ALIGN="CENTER" NOWRAP>=</TD> <TD ALIGN="LEFT" NOWRAP><IMG WIDTH="138" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img635.gif" ALT="$\displaystyle e^{2\pi\nu}\hat h^*(\nu+{1\over 2})$"></TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.25)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> and <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \hat h(\nu)\hat{\tilde h}(\nu)+\hat h^*(\nu+{1\over 2}) \hat{\tilde h}^*(\nu+{1\over 2})=1 \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="343" HEIGHT="69" ALIGN="MIDDLE" BORDER="0" SRC="img636.gif" ALT="$\displaystyle \hat h(\nu)\hat{\tilde h}(\nu)+\hat h^*(\nu+{1\over 2}) \hat{\tilde h}^*(\nu+{1\over 2})=1$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.26)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> We also satisfy relations <A HREF="node316.html#eqn_desa">14.18</A> and <A HREF="node316.html#eqn_exact">14.19</A>. A large class of compact wavelet functions can be derived. Many sets of filters were proposed, especially for coding. It was shown [<A HREF="node370.html#daube">9</A>] that the choice of these filters must be guided by the regularity of the scaling and the wavelet functions. The complexity is proportional to <I>N</I>. The algorithm provides a pyramid of <I>N</I> elements. <P> The 2D algorithm is based on separate variables leading to prioritizing of x and y directions. The scaling function is defined by: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} \phi(x,y) = \phi(x)\phi(y) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="182" HEIGHT="44" ALIGN="MIDDLE" BORDER="0" SRC="img637.gif" ALT="$\displaystyle \phi(x,y) = \phi(x)\phi(y)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.27)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> The passage from a resolution to the next one is done by: <BR> <DIV ALIGN="CENTER"> <!-- MATH: \begin{eqnarray} f_{j+1}(k_x,k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} h(l_x- 2k_x) h(l_y -2k_y) f_{j}(l_x,l_y) \end{eqnarray} --> <TABLE ALIGN="CENTER" CELLPADDING="0" WIDTH="100%"> <TR VALIGN="MIDDLE"><TD NOWRAP ALIGN="RIGHT"><IMG WIDTH="559" HEIGHT="85" ALIGN="MIDDLE" BORDER="0" SRC="img638.gif" ALT="$\displaystyle f_{j+1}(k_x,k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} h(l_x- 2k_x) h(l_y -2k_y) f_{j}(l_x,l_y)$"></TD> <TD> </TD> <TD> </TD> <TD WIDTH=10 ALIGN="RIGHT"> (14.28)</TD></TR> </TABLE></DIV> <BR CLEAR="ALL"><P></P> The detail signal is obtained from three wavelets: <UL> <LI>a vertical wavelet : <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} \psi^1(x,y) = \phi(x)\psi(y) \end{displaymath} --> <IMG WIDTH="187" HEIGHT="40" SRC="img639.gif" ALT="\begin{displaymath}\psi^1(x,y) = \phi(x)\psi(y) \end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> <LI>a horizontal wavelet: <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} \psi^2(x,y) = \psi(x)\phi(y) \end{displaymath} --> <IMG WIDTH="187" HEIGHT="40" SRC="img640.gif" ALT="\begin{displaymath}\psi^2(x,y) = \psi(x)\phi(y) \end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> <LI>a diagonal wavelet: <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} \psi^3(x,y) = \psi(x)\psi(y) \end{displaymath} --> <IMG WIDTH="190" HEIGHT="40" SRC="img641.gif" ALT="\begin{displaymath}\psi^3(x,y) = \psi(x)\psi(y) \end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P></UL>which leads to three sub-images: <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} C_{j+1}^1 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} g(l_x- 2k_x) h(l_y -2k_y) f_{j}(l_x,l_y) \end{displaymath} --> <IMG WIDTH="554" HEIGHT="78" SRC="img643.gif" ALT="\begin{displaymath}C_{j+1}^1 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} g(l_x- 2k_x) h(l_y -2k_y) f_{j}(l_x,l_y)\end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} C_{j+1}^2 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} h(l_x- 2k_x) g(l_y -2k_y) f_{j}(l_x,l_y) \end{displaymath} --> <IMG WIDTH="554" HEIGHT="78" SRC="img644.gif" ALT="\begin{displaymath}C_{j+1}^2 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} h(l_x- 2k_x) g(l_y -2k_y) f_{j}(l_x,l_y)\end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> <BR><P></P> <DIV ALIGN="CENTER"> <!-- MATH: \begin{displaymath} C_{j+1}^3 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} g(l_x- 2k_x) g(l_y -2k_y) f_{j}(l_x,l_y) \end{displaymath} --> <IMG WIDTH="553" HEIGHT="78" SRC="img645.gif" ALT="\begin{displaymath}C_{j+1}^3 (k_x, k_y) = \sum_{l_x=-\infty}^{+\infty} \sum_{l_y=-\infty}^{+\infty} g(l_x- 2k_x) g(l_y -2k_y) f_{j}(l_x,l_y)\end{displaymath}"> </DIV> <BR CLEAR="ALL"> <P></P> <BR> <DIV ALIGN="CENTER"><A NAME="fig_mallat3"> </A><A NAME="14456"> </A> <TABLE WIDTH="50%"> <CAPTION><STRONG>Figure 14.4:</STRONG> Wavelet transform representation of an image</CAPTION> <TR><TD><IMG WIDTH="542" HEIGHT="521" SRC="img646.gif" ALT="\begin{figure} \centerline{ \hbox{ \psfig{figure=fig_mallat3.ps,bbllx=5.5cm,bblly=9.5cm,bburx=16cm,bbury=20cm,height=8cm,width=8cm,clip=} }} \end{figure}"></TD></TR> </TABLE> </DIV> <BR> <P> The wavelet transform can be interpreted as the decomposition on frequency sets with a spatial orientation. <P> <HR> <!--Navigation Panel--> <A NAME="tex2html5409" HREF="node317.html"> <IMG WIDTH="37" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="next" SRC="icons.gif/next_motif.gif"></A> <A NAME="tex2html5406" HREF="node314.html"> <IMG WIDTH="26" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="up" SRC="icons.gif/up_motif.gif"></A> <A NAME="tex2html5400" HREF="node315.html"> <IMG WIDTH="63" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="previous" SRC="icons.gif/previous_motif.gif"></A> <A NAME="tex2html5408" HREF="node1.html"> <IMG WIDTH="65" HEIGHT="24" ALIGN="BOTTOM" BORDER="0" ALT="contents" SRC="icons.gif/contents_motif.gif"></A> <BR> <B> Next:</B> <A NAME="tex2html5410" HREF="node317.html">The à trous algorithm</A> <B> Up:</B> <A NAME="tex2html5407" HREF="node314.html">The discrete wavelet transform</A> <B> Previous:</B> <A NAME="tex2html5401" HREF="node315.html">Introduction</A> <!--End of Navigation Panel--> <ADDRESS> <I>Petra Nass</I> <BR><I>1999-06-15</I> </ADDRESS> </BODY> </HTML>