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

All about bugs

View bugs we have successfully reproduced, and vote for the bugs you want to see fixed most urgently.