# Properties of the image reconstruction filter in rendering

Computer Graphics Asked on February 10, 2021

Let $$f$$ denote the measurement contribution function for paths of length $$kinmathbb N$$, i.e. $$f(x)=g(x_0leftrightarrow x_1)W_{text e}(x_1to x_0)t_k(x_0,ldots,x_k)L_{text e}(x_kto x_{k-1}),$$ where $$t_k(x)=prod_{i=2}^kg(x_{i-1}leftrightarrow x_i)f_{text s}(x_ito x_{i-1}to x_{i-2}),$$ and $$h_j$$ denote the image reconstruction filter of the $$j$$th pixel so that the measurement $$I_j$$ of the $$j$$th pixel color is given by $$I_j=int h_jf:{rm d}mu.$$

What can we assume know about $$h_j$$ in general? One thing is that it will only depend on first two vertices of a path.

There are two properties which I really would like to being able to assume: (a) $$c:=sup_jleft|h_jright| (b) $$int|g_j|^2:{rm d}mulealphaint|f_0|^2:{rm d}mu$$ for some $$alphage0$$, where $$g_j:=1_{{:h_j:>:0:}}left(h_jf-frac1{muleft(left{h_j>0right}right)}I_jright)$$ and $$f_0:=1_{{:f:ne:0:}}left(f-frac1{muleft(left{fne0right}right)}int f:{rm d}muright)$$.

However, I know almost nothing about the mathematical properties of $$h_j$$ and so it’s hard for me to verify if these properties hold. I guess that generally $$h_jge0$$, but I’m even unsure about that. Maybe even $$h_jin[0,1]$$? It would be great if someone could answer if (a) and/or (b) hold or link me to a reference.

The function $$h_j$$ is going to be a low-pass filter of some type. Its role is to turn the infinite-resolution image $$f$$ into a band-limited one so that it can be sampled to produce pixel values without aliasing. Typical shapes for $$h_j$$ in practice could be like a box, tent, bicubic, or Gaussian function.

Such a filter would generally be expected to have the following properties:

• Defined over the image plane, $$h_j: mathbb{R}^2 to mathbb{R}$$
• Is an area density, i.e. has units of inverse area (and scales accordingly under changes of coordinates)
• Compactly supported, with its region of support commensurate with the pixel spacing (typically having a radius of 1–2 pixels in all directions)
• Smooth, or at least piecewise smooth
• Finite-valued
• Integrates to 1, $$int_{mathbb{R}^2} h_j(x) , dx^2 = 1$$
• The filters for different pixels $$j$$ differ only by translation, $$h_j(x) = h(x - x_j)$$ where $$h$$ is the filter centered at 0, and $$x_j$$ is the center of the $$j$$th pixel.
• Symmetric, $$h(-x) = h(x)$$
• Factors into 1D filters along the x and y axes, $$h(x, y) = h(x)h(y)$$

(The last three properties might not be true for some exotic cases, such as rendering to a curved or nonlinearly warped display, but would be expected to hold for rendering an ordinary 2D image.)

You'll note one property I didn't mention was $$h_j geq 0$$. That's because it is actually convenient to use filters with negative lobes sometimes, as they can improve image sharpness. See for example the Mitchell–Netravali filters. Nor do we necessarily have $$h_j leq 1$$ everywhere. Actually the values of $$h_j$$ depend on the coordinate system, since it's an area density, so a statement like $$h_j leq 1$$ is meaningless without specifying some particular coordinates.

Regarding your properties, for (a), yes the norm of the filter should be bounded. As mentioned, the filter integrates to 1. Without negative lobes, the 1-norm of the filter should be exactly 1. The 1-norm of a filter with negative lobes would be expected to be somewhat greater than 1 but still finite.

For property (b), I'm not 100% sure but I think that this is indeed guaranteed by the fact that $$h_j$$ is (piecewise) smooth and has a support that doesn't get arbitrarily small. The size of the filter is on the order of the pixel spacing (otherwise it doesn't work for antialiasing), so the variance within a single pixel's filter footprint can't be much more than (variance of entire image * number of pixels). You could probably formalize that with Chebyshev's inequality or some such.

Answered by Nathan Reed on February 10, 2021

I am replying to the last edit of the question.

You can show that $$|h_j * f |^2_2 leq |h_j|^2_1|f|^2_2$$ from Young's theorem. Provided that $$|h_j|_1 leq 1$$ you have: $$|h_j * f |^2_2 leq |f|^2_2$$. Additionally for $$g_j$$ I believe you want to clamp the indicator function to $${h_j > 0 wedge f > 0}$$. Then $$int_{{h_j>0 wedge f>0}} aleq int_{{f>0}}a$$ (since the integrands are always non-negative: $$ageq 0$$). This basically proves that the inequality holds for the left terms of the quadratic expansions, the middle terms are both negative, so those may be ignored. The only thing left to prove is: $$(frac{1}{mu({h_j>0 wedge f>0})}int h_jf)^2 leq (frac{1}{mu({f>0})}int f)^2$$, which is the case if $$h_j leq 1$$ everywhere. Basically, as long as your filter $$h_j$$ preserves the minimum and maximum of the image, you're good (this is not an unreasonable requirement for a filter, note however, that there are filers that do not preserve min-max).

Edit: My bad, the middle terms may not be ignored (at least the one on the right of the inequality). Which means you are left to prove that:

$$frac{(int h_jf)^2}{mu({h_j>0 wedge f>0})} geq frac{(int f)^2}{mu({f>0})}$$, which will be a problem.

I guess one has to use tighter bounds to relate the mixed term with the squared terms.

Edit 2:

Let's consider the expression as a whole then:

$$int left(h_jf - frac{int h_jf}{mu({h_j > 0 wedge f > 0})} right)^2 leq alpha int left(f - frac{int f}{mu({f > 0})} right)^2$$ $$0 leq alphaint (f)^2 - int (h_jf)^2 +alphafrac{(int f)^2}{mu^2({f > 0})} - frac{(int h_jf)^2}{mu^2({h_j > 0 wedge f > 0})} + frac{2(int h_jf)^2}{mu({h_j > 0 wedge f > 0})} - alphafrac{2(int f)^2}{mu({f > 0})}$$ $$0 leq alphaleft(int (f)^2 - frac{(1-2mu({f > 0}))(int f)^2}{mu^2({f > 0})}right) - left( int (h_jf)^2 - frac{(1-2mu({h_j > 0 wedge f > 0}))(int h_jf)^2}{mu^2({h_j > 0 wedge f > 0})}right)$$

$$0 leq left(int(sqrt{alpha}f)^2-int (h_jf)^2right) - left(frac{alpha(1-2mu({f > 0}))(int f)^2}{mu^2({f > 0})} - frac{(1-2mu({h_j > 0 wedge f > 0}))(int h_jf)^2}{mu^2({h_j > 0 wedge f > 0})}right)$$

$$0 leq left(int(sqrt{alpha}f)^2-int (h_jf)^2right) - left(a left(int sqrt{alpha}fright)^2 - bleft(int h_jfright)^2right)$$

Note also that $$left(int uright)^2 leq int u^2$$. Then with an appropriate $$alpha$$ and $$h_j$$ bounded it should hold. You may want to study the $$a,b$$ tems also.

Answered by lightxbulb on February 10, 2021

## Related Questions

### Is there an algorithm to bold an outline font?

2  Asked on December 23, 2021

### alternative to spherical harmonics to model radiance aproximation, optimized for real-time evaluation

0  Asked on December 14, 2021

### Transfer the texture between two different sets of uv

1  Asked on December 9, 2021

### glutSolid* source code

1  Asked on November 22, 2021 by tado-mi

### How to retrieve data from Compute Shader to CPU?

0  Asked on November 15, 2021 by ethan-ma

### unwanted patterns in simplex noise

1  Asked on November 13, 2021 by sam-apostel

### Procedural generation of biological models

1  Asked on November 13, 2021 by daniel-cooke

### What method is used for baking grayscale curvature maps

1  Asked on November 10, 2021 by jummit

### Why are texture coordinates often called UVs?

2  Asked on August 27, 2021 by samanthaj

### Dynamic Ray-Triangle Intersection

1  Asked on August 27, 2021 by cemklkn

### Reducing artificial rings in mean curvature of mesh

1  Asked on August 27, 2021

### Fast and exact Geodesics on meshes, Backtracking confusion

1  Asked on August 27, 2021

### How to scale signed distance field fonts properly?

1  Asked on August 27, 2021 by endanke

### The ploygon width parallel to the x axis as a function of the y ordonate?

0  Asked on August 27, 2021 by hafid-boukhoulda

### Find the formulas of the middle point algorithm for drawing the parabola?

0  Asked on August 27, 2021 by mrjab

### Crystal ball rotation – I don’t get why the code works

0  Asked on August 27, 2021 by user13665

### Draw Line on Arbitrary Surface

0  Asked on August 27, 2021 by valentin-molina

### How to raytrace Bezier surfaces?

5  Asked on August 27, 2021 by luser-droog

### Better Shadow Mapping Techniques

2  Asked on August 27, 2021 by arjan-singh

### What does GPU assembly look like?

4  Asked on August 27, 2021 by sebastien-finor

### Ask a Question

Get help from others!