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|<infty$ (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.

2 Answers

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

Add your own answers!

Related Questions

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


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!

© 2022 All rights reserved. Sites we Love: PCI Database, MenuIva, UKBizDB, Menu Kuliner, Sharing RPP, SolveDir