# Cohen–Daubechies–Feauveau wavelet

Cohen–Daubechies–Feauveau wavelets are a family of biorthogonal wavelets that was made popular by Ingrid Daubechies. These are not the same as the orthogonal Daubechies wavelets, and also not very similar in shape and properties. However, their construction idea is the same.
The JPEG 2000 compression standard uses the biorthogonal Le Gall–Tabatabai (LGT) 5/3 wavelet (developed by D. Le Gall and Ali J. Tabatabai) for lossless compression and a CDF 9/7 wavelet for lossy compression.

## Properties

* The primal generator is a B-spline if the simple factorization $q_{\text{prim}}(X)=1$ (see below) is chosen.
* The dual generator has the highest possible number of smoothness factors for its length.
* All generators and wavelets in this family are symmetric.

## Construction

For every positive integer A there exists a unique polynomial $Q_{A}(X)$ of degree A − 1 satisfying the identity
    $\left(1-{\frac {X}{2}}\right)^{A}\,Q_{A}(X)+\left({\frac {X}{2}}\right)^{A}\,Q_{A}(2-X)=1.$
This is the same polynomial as used in the construction of the Daubechies wavelets. But, instead of a spectral factorization, here we try to factor
    $Q_{A}(X)=q_{\text{prim}}(X)\,q_{\text{dual}}(X),$
where the factors are polynomials with real coefficients and constant coefficient 1. Then
    $a_{\text{prim}}(Z)=2Z^{d}\,\left({\frac {1+Z}{2}}\right)^{A}\,q_{\text{prim}}\left(1-{\frac {Z+Z^{-1}}{2}}\right)$
and
    $a_{\text{dual}}(Z)=2Z^{d}\,\left({\frac {1+Z}{2}}\right)^{A}\,q_{\text{dual}}\left(1-{\frac {Z+Z^{-1}}{2}}\right)$
form a biorthogonal pair of scaling sequences. d is some integer used to center the symmetric sequences at zero or to make the corresponding discrete filters causal.
Depending on the roots of $Q_{A}(X)$, there may be up to $2^{A-1}$ different factorizations. A simple factorization is $q_{\text{prim}}(X)=1$ and $q_{\text{dual}}(X)=Q_{A}(X)$, then the primary scaling function is the B-spline of order A − 1. For A = 1 one obtains the orthogonal Haar wavelet.

## Tables of coefficients

For A = 2 one obtains in this way the LeGall 5/3-wavelet:
| A | Q$_A$(X) | q$_{prim}$(X) | q$_{dual}$(X) | a$_{prim}$(Z) | a$_{dual}$(Z) |
| 2 | $1+X$ | 1 | $1+X$ | ${\frac {1}{2}}(1+Z)^{2}\,Z$ | ${\frac {1}{2}}(1+Z)^{2}\,\left(-{\frac {1}{2}}+2\,Z-{\frac {1}{2}}\,Z^{2}\right)$ |
For A = 4 one obtains the 9/7-CDF-wavelet. One gets $Q_{4}(X)=1+2X+{\tfrac {5}{2}}X^{2}+{\tfrac {5}{2}}X^{3}$, this polynomial has exactly one real root, thus it is the product of a linear factor $1-cX$ and a quadratic factor. The coefficient c, which is the inverse of the root, has an approximate value of −1.4603482098.
| A | Q$_A$(X) | q$_{prim}$(X) | q$_{dual}$(X) |
| 4 | $1+2X+{\tfrac {5}{2}}X^{2}+{\tfrac {5}{2}}X^{3}$ | $1-cX$ | $1+(c+2)X+(c^{2}+2c+{\tfrac {5}{2}})X^{2}$ |
For the coefficients of the centered scaling and wavelet sequences one gets numerical values in an implementation–friendly form
| k | Analysis lowpass filter (1/2 a$_{dual}$) | Analysis highpass filter (b$_{dual}$) | Synthesis lowpass filter (a$_{prim}$) | Synthesis highpass filter (1/2 b$_{prim}$) |
| -4 | 0.026748757411 | 0 | 0 | 0.026748757411 |
| -3 | -0.016864118443 | 0.091271763114 | -0.091271763114 | 0.016864118443 |
| -2 | -0.078223266529 | -0.057543526229 | -0.057543526229 | -0.078223266529 |
| -1 | 0.266864118443 | -0.591271763114 | 0.591271763114 | -0.266864118443 |
| 0 | 0.602949018236 | 1.11508705 | 1.11508705 | 0.602949018236 |
| 1 | 0.266864118443 | -0.591271763114 | 0.591271763114 | -0.266864118443 |
| 2 | -0.078223266529 | -0.057543526229 | -0.057543526229 | -0.078223266529 |
| 3 | -0.016864118443 | 0.091271763114 | -0.091271763114 | 0.016864118443 |
| 4 | 0.026748757411 | 0 | 0 | 0.026748757411 |

## Numbering

There are two concurring numbering schemes for wavelets of the CDF family:
* the number of smoothness factors of the lowpass filters, or equivalently the number of vanishing moments of the highpass filters, e.g. "2, 2";
* the sizes of the lowpass filters, or equivalently the sizes of the highpass filters, e.g. "5, 3".
The first numbering was used in Daubechies' book Ten lectures on wavelets. Neither of this numbering is unique. The number of vanishing moments does not tell about the chosen factorization. A filter bank with filter sizes 7 and 9 can have 6 and 2 vanishing moments when using the trivial factorization, or 4 and 4 vanishing moments as it is the case for the JPEG 2000 wavelet. The same wavelet may therefore be referred to as "CDF 9/7" (based on the filter sizes) or "biorthogonal 4, 4" (based on the vanishing moments). Similarly, the same wavelet may therefore be referred to as "CDF 5/3" (based on the filter sizes) or "biorthogonal 2, 2" (based on the vanishing moments).

## Lifting decomposition

For the trivially factorized filterbanks a lifting decomposition can be explicitly given.

### Even number of smoothness factors

Let $n$ be the number of smoothness factors in the B-spline lowpass filter, which shall be even.
Then define recursively
    ${\begin{aligned}a_{0}&={\frac {1}{n}},\\a_{m}&={\frac {1}{(n^{2}-4\cdot m^{2})\cdot a_{m-1}}}.\end{aligned}}$
The lifting filters are
    $s_{m}(z)=a_{m}\cdot (2\cdot m+1)\cdot (1+z^{(-1)^{m}}).$
Conclusively, the interim results of the lifting are
    ${\begin{aligned}x_{-1}(z)&=z,\\x_{0}(z)&=1,\\x_{m+1}(z)&=x_{m-1}(z)+a_{m}\cdot (2\cdot m+1)\cdot (z+z^{-1})\cdot z^{(-1)^{m}}\cdot x_{m}(z),\end{aligned}}$
which leads to
    $x_{n/2}(z)=2^{-n/2}\cdot (1+z)^{n}\cdot z^{n/2{\bmod {2}}-n/2}.$
The filters $x_{n/2}$ and $x_{n/2-1}$ constitute the CDF-n,0 filterbank.

### Odd number of smoothness factors

Now, let $n$ be odd.
Then define recursively
    ${\begin{aligned}a_{0}&={\frac {1}{n}},\\a_{m}&={\frac {1}{(n^{2}-(2\cdot m-1)^{2})\cdot a_{m-1}}}.\end{aligned}}$
The lifting filters are
    $s_{m}(z)=a_{m}\cdot ((2\cdot m+1)+(2\cdot m-1)\cdot z)/z^{m{\bmod {2}}}.$
Conclusively, the interim results of the lifting are
    ${\begin{aligned}x_{-1}(z)&=z,\\x_{0}(z)&=1,\\x_{1}(z)&=x_{-1}(z)+a_{0}\cdot x_{0}(z),\\x_{m+1}(z)&=x_{m-1}(z)+a_{m}\cdot ((2\cdot m+1)\cdot z+(2\cdot m-1)\cdot z^{-1})\cdot z^{(-1)^{m}}\cdot x_{m}(z),\end{aligned}}$
which leads to
    $x_{(n+1)/2}(z)\sim (1+z)^{n},$
where we neglect the translation and the constant factor.
The filters $x_{(n+1)/2}$ and $x_{(n-1)/2}$ constitute the CDF-n,1 filterbank.

## Applications

The Cohen–Daubechies–Feauveau wavelet and other biorthogonal wavelets have been used to compress fingerprint scans for the FBI. A standard for compressing fingerprints in this way was developed by Tom Hopper (FBI), Jonathan Bradley (Los Alamos National Laboratory) and Chris Brislawn (Los Alamos National Laboratory). By using wavelets, a compression ratio of around 20 to 1 can be achieved, meaning a 10 MB image could be reduced to as little as 500 kB while still passing recognition tests.