Blender Git Loki

Git Commits -> Revision 3830bf4

July 6, 2016, 22:50 (GMT)
Cycles: Add experimental alternative SVD-threshold norm based on power iteration

One of the first steps of the algorithm is to apply a truncated SVD to a
matrix formed by the features in order to reduce the dimensionality of the
problem and decorrelate dimensions.

The truncation threshold, according to the paper, is defined by twice the
spectral norm of the matrix that is formed like the first one, but from the
variances of the features.

The reference implementation doesn't compute the spectral norm, but instead
computes the Frobenius norm and multiplies it with sqrt(Rank)/2.
That makes sense since it's guaranteed that the Frobenius norm lies somewhere
between the one and sqrt(Rank) times the spectral norm.

However, it's still an approximation. Therefore, in this commit I've tried
to directly compute the spectral norm since the runtime performance is currently
mainly limited by the per-pixel loops, so a small constant increase shouldn't matter too much.
In order to compute it, the code just constructs the Gramian matrix of the variance matrix
and computes the square root of its largest eigenvalue, which is found via power iteration.

I haven't tested the code too much yet, but it seems that the improvement is quite negligible
and not really worth the effort. Still, it might be interesting to tweak it further.

Commit Details:

Full Hash: 3830bf4bbc812aea436102e45970f13f417a2174
Parent Commit: 83c37d7
Lines Changed: +763, -2

4 Added Paths:

/intern/cycles/kernel/kernel_filter.h.orig (+506, -0) (View)
/intern/cycles/kernel/kernel_filter.h.rej (+43, -0) (View)
/intern/cycles/render/denoising.cpp (+17, -0) (View)
/intern/cycles/render/denoising.h (+122, -0) (View)

4 Modified Paths:

/intern/cycles/device/device_cpu.cpp (+7, -1) (Diff)
/intern/cycles/kernel/kernel_filter.h (+27, -1) (Diff)
/intern/cycles/kernel/kernel_types.h (+2, -0) (Diff)
/intern/cycles/util/util_math_matrix.h (+39, -0) (Diff)
Tehnyt: Miika HämäläinenViimeksi päivitetty: 07.11.2014 14:18MiikaH:n Sivut a.k.a. MiikaHweb | 2003-2021