[Bf-committers] [GSoC] Cycles Denoiser

Sergey Sharybin sergey.vfx at gmail.com
Tue Mar 22 11:16:41 CET 2016


Hi,

General idea of denoisers is to blur noisy areas. Now, how to detect if the
area is noisy or not? There are several approaches to this: it could be
image-space variance based approach or it could be an approach based on
per-pixel variance. The later one seemed to be more promising from own
experiments. Additionally, you should not blur background with foreground
(roughly speaking) and you'll need to have a way to distinguish areas which
could be blurred together and which are not. It could be based on depth,
normal, UV coordinate and so on. All this extra information requires extra
memory.. That's what wiki meant basically.

I think we'll indeed need to have some sort of "framework" for denoising,
so we'll be able to have quick viewport previews with more aggressive
algorithms (which are usually not so much temporary stable and will cause
low frequency noise in the animation) and we'll be able to have a less
aggressive denoiser to simply get rid of last bit of MC noise.

Can't speak of exact milestones, that's something dependent on your exact
proposal, skills and such..

You might want to have a look into following papers:

- Filtering and Blending of High-Variance Light Paths with Perceptual
Control, Karsten Schwenk
- Guided image filtering, Kaiming He et al.
- Recent Advantages in Adaptive Sampling and Reconstruction for Monte Carlo
Rendering, M. Zwicker et al.
- Removing the noise in Monte Carlo Rendering with General Image Denoising
Algorithms, Nima Khademi Kalantari and Pradeep Sen

(should be easy to find links, i only have those papers printed, no links
handy)

There were also some interesting presentation at the SIGGRAPH 2015, you can
find some notes and papers titles there:
http://s2015.siggraph.org/attendees/courses/events/denoising-your-monte-carlo-renders-recent-advances-image-space-adaptive


On Mon, Mar 21, 2016 at 11:40 AM, Fabrizio Destro <destro.fabrizio at gmail.com
> wrote:

> Hi, thank you for the materials.
>
> I've just read "Path-space motion estimation [...]" and for what I've
> understood they use different tools to reduce the noise on the image:
> Decompositions, Motion estimations of reflections and other effects,
> Denoising, Spatial and Temporal upsampling. The first milestone could
> be to think about a generic framework for denoising in terms of
> interfaces and modules, and start implementing a 'skeleton'.
>
> In their work they cited this research "On Filtering the Noise from
> the Random Parameters in Monte Carlo Rendering", on this paper they
> talk about a method to reduce the noise which works in image space.
> Maybe in a possible schedule the second milestone could be an
> implementation of denoiser like that, which works only on the image.
>
> After these two milestone have been delivered, the next step on the
> schedule will be the implementation of the modules inside this
> framework (Motions estimations of relfections, etc...)
>
>
> On Sun, Mar 20, 2016 at 8:10 PM, François T. <francoistarlier at gmail.com>
> wrote:
> > Hello,
> >
> > Disney has several recent research on the subject...
> >
> > https://www.disneyresearch.com/publication/pathspace-decomposition/
> >
> >
> https://www.researchgate.net/publication/281678889_Boosting_Histogram-Based_Denoising_Methods_with_GPU_Optimizations
> >
> >
> >
> > 2016-03-20 19:24 GMT+01:00 Fabrizio Destro <destro.fabrizio at gmail.com>:
> >
> >> Hello everybody! I am Fabrizio I always wanted to contribute to an
> >> Open Source project. I found out about GSoC about three years ago, but
> >> I have never applied because I wouldn't have had the time. But, this
> >> year I would like to try.
> >>
> >> I have looked through the proposed ideas and some of them catch my
> >> attention. In particularly the Cycles denoiser, I have some questions
> >> about it.
> >>
> >> First, I want to be sure I understand what the goal is. So, the
> >> objective is to create a node which, once the rendering is done, will
> >> work only on the image with the goal to reduce the noise.
> >>
> >> I am not sure about this sentence I found on the wiki: "[...] and
> >> requires a special buffer with 'delta' information for speed, UV
> >> [...]". This means that this node will store some data to speed up the
> >> process on the next rendering? and if so, these data will be valid
> >> only if the scene didn't change from the last time, right?
> >>
> >> I am currently doing some research online and I found this publication
> >> on the subject http://dl.acm.org/citation.cfm?doid=2776880.2792740 .
> >> Does someone have any reference which can be useful? or maybe an idea
> >> on some algorithms/researches?
> >> _______________________________________________
> >> Bf-committers mailing list
> >> Bf-committers at blender.org
> >> http://lists.blender.org/mailman/listinfo/bf-committers
> >>
> >
> >
> >
> > --
> > ____________________
> > François Tarlier
> > www.francois-tarlier.com
> > www.linkedin.com/in/francoistarlier
> > _______________________________________________
> > Bf-committers mailing list
> > Bf-committers at blender.org
> > http://lists.blender.org/mailman/listinfo/bf-committers
> _______________________________________________
> Bf-committers mailing list
> Bf-committers at blender.org
> http://lists.blender.org/mailman/listinfo/bf-committers
>



-- 
With best regards, Sergey Sharybin


More information about the Bf-committers mailing list