Search Issue Tracker

Won't Fix

Votes

0

Found in

2020.3.46f1

2021.3.20f1

2022.2.10f1

2023.1.0b7

2023.2.0a7

Issue ID

UUM-29797

Regression

No

CPU implementation of À-Trous filter not working as expected

--

-

The CPU implementation of the A-Trous filter has the following issues:
* As part of the decomposition, the filter computes the product of three sets of weights between pairs of pixels: colour, normal and neighbourhood distance. For some reason, the value of the colour weights always evaluates to one which means that the filter is not edge-stopping (i.e. it behaves like a regular box filter). I don't know why this is happening, but there's some code in there that's not in the paper that might be the cause of the issue.
* The neighbourhood distance weight is a function of the user-controlled parameter, which is effectively modulating the support of the mother wavelet itself. This explains why noise isn't being removed, even for high values of sigma.
* The colour weighting function is using the dot product of 4 colour channels instead of just 3. I fixed a bug a few weeks ago that was causing similar problems with the normal weights. However, since the colour weights are already broken, the side effects of the bad dot product are obfuscated.

 
||*Unity*||*Reference implementation*||
|!bunny-unity.gif|width=320,height=320!|!bunny-reference.gif|width=318,height=318!|

 

  1. Resolution Note:

    We are focusing our efforts on upgrading denoisers which would make improvements to filtering like ATrous redundant.

Add comment

Log in to post comment