# Understanding Upsampling Filter in Laplacian Pyramid

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?