0
$\begingroup$

For the construction of a laplacian pyramid, images are downscaled and then upscaled again. My question is what is a wise decision of the kernel mask for the upscaling task ?

In more detail, lets say we have an image $I_{l}$ and we want to construct the next level $l+1$ of the laplacian pyramid. What we do is to apply a low-pass filter $h$ on $I_{l}$, so that we obtain an image by applying $h$ via convolution $\star$ on $I_{l}$, that is: $I_{\mathrm{low}} = I_{l} \star h$. Next, we subsample $I_{\mathrm{low}}$, reducing the width and height by factor 2, resulting in an image $I_{l+1}$ of the next level of the gaussian pyramid.

Now in order to compute the laplacian pyramid, we need to upscale $I_{l+1}$. This is done by copying the values of $I_{l+1}$ at every second pixel position and applying a filter mask.

That is, $\hat{I_{l}}(x,y) := \begin{cases} I_{l+1}(x/2,y/2) &\text{if }x/2\in \mathbb{N} \land y/2 \in \mathbb{N}, \\ 0 & \text{otherwise}.\end{cases}$
and $\hat{I_{l}}$ has twice the number of rows and columns as $I_{l}$.

In order to fill the zero entries, a filter mask g is applied: $\underline{I_{l}} = \hat{I_{l}} \star g$

Now what I see from the literature is (for the 1D case) to use $h = \frac{1}{16}\begin{bmatrix} 1 & 4 & 6 & 4 & 1\end{bmatrix}$ and $g = 2h$. For 2D images, the kernel $h= h^{T}h$ is used, together with $g = 4h$.

Now my questions are:

(1) If h is used for downsampling, is g the optimal choice for the upsampling? If so, then why?

(2) Given an arbitrary filter kernel h used for downsampling, how to compute the optimal filter kernel g for the upsampling process?

If I write everything in matrix terms, then

$I_{l+1} = \mathrm{subsample}(I_{l} \star h) = A *(I_{l} \star h) * B$, where $A$ and $B$ are matrices that perform the subsampling.

On the other hand, $\underline{I_{l}} = \hat{I_{l}} \star g = (C * (I_{l+1})*D) \star g = (C*[A*(I_{l} \star h) * B] *D) \star g$, where the matrices $C,D$ are used to perform the upsampling step (copying the values).

Then, we have $\underline{I_{l}} = (C*[A*(I_{l} \star h) * B] *D) \star g$. What we want is the upsampeled image $\underline{I_{l}}$ to be equal or close to the input image $I_{l}$.

The matrices $A,B,C,D$ are not invertible since they contain zeros rows or columns (and are not quadratic). How can we find the best kernel in this case?

$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.