Willi
Mar 6 2006, 04:05 AM
hi,
i have a quetion to yves poissant and the Ambient Occlusion Dev Team.
first i have to say that this new feature is one of the best.
i donīt know how the ambient occlusion is programmed, but is it possible to implement a "shading noise reduction"-option to reduce rendertimes by improving image quality?
martin
Mar 6 2006, 06:26 AM
QUOTE(Willi @ Mar 6 2006, 04:05 AM)

is it possible to implement a "shading noise reduction"-option to reduce rendertimes by improving image quality?
ypoissant
Mar 6 2006, 07:28 AM
QUOTE(Willi @ Mar 6 2006, 07:05 AM)

first i have to say that this new feature is one of the best.
Thanks.
QUOTE
i donīt know how the ambient occlusion is programmed, but is it possible to implement a "shading noise reduction"-option to reduce rendertimes by improving image quality?
I understand Martin's reaction to this question. You have to realize that what you are asking is an oximoron. Like asking for better government services while reducing income taxes. Any additional shading noise reduction technique,
do require more processing time. Not the reverse.
At least, Ambiance Occlusion is way faster than using a skylight rig that you had to use before for essentially the same results. I think that, in essence, is exactly the kind of improvement you are asking for.
Willi
Mar 6 2006, 07:57 AM
thanks for the fast reply.
i thought that these "noise reduction"-things could be an image filter algorithm...but your arguments are strong.
ypoissant
Mar 6 2006, 08:07 AM
Image filtering techniques works on images. Not on 3D scenes. So you could apply a blur filter to the final render but that would blur the whole image. Not just the AO noise. And it would add to processing time anyway.
tartiflette
Mar 6 2006, 09:35 AM
QUOTE(ypoissant @ Mar 6 2006, 05:07 PM)

Image filtering techniques works on images. Not on 3D scenes. So you could apply a blur filter to the final render but that would blur the whole image. Not just the AO noise. And it would add to processing time anyway.
Just a few words to say that some filtering algorithm are "smart" enough to act on some kind of pass (eg. the diffuse pass...), and therefore permit a gain in rendering times by reducing the "bruteforce" calculation needed...
What it does is "just" blurring the diffuse pass, and can do a pretty good job in certain cases, while being inefficient in others, though !
I won't give any name, but some soft have this kind of "Shading Noise Reduction"...
Regards,
Laurent aka Tartiflette
cfree68f
Mar 6 2006, 10:49 AM
Willi,
not sure if you are aware of this program but its the best noise reduction tool I've found.. bar none and its free.
check out...
http://www.neatimage.com/might be just what you need.
For the record.. I agree that the new ambient occlusion is one of the best new features. that and the new displacement ;-) thanks Yves and Martin.
C
ZachBG
Mar 6 2006, 11:22 AM
QUOTE(ypoissant @ Mar 6 2006, 10:28 AM)

You have to realize that what you are asking is an oximoron. Like asking for better government services while reducing income taxes.
Hey, maybe that's a problem up there in Canada, but here in the States that's our modus operandi!

(Sorry, I couldn't resist...)
ypoissant
Mar 6 2006, 11:56 AM
QUOTE(tartiflette @ Mar 6 2006, 12:35 PM)

Just a few words to say that some filtering algorithm are "smart" enough to act on some kind of pass (eg. the diffuse pass...), and therefore permit a gain in rendering times by reducing the "bruteforce" calculation needed...
What it does is "just" blurring the diffuse pass, and can do a pretty good job in certain cases, while being inefficient in others, though !
That is the main issue with those algorithms. How does the user knoow in advance when such a "smart" algorithm will do wonder and when it will do crap? And how do you control it during an animation?
Also, the more "smart" an algorithm is, the more time it must spend analysing the data it must act on and deciding how to act on it and actualy act on it. And, sorry to say that, but this takes rendering time too.
You could use tricks like a noise reduction plugin if you like but that will only add more time to processing the images so in the end, if you need lower noise, I still think that you will be better off increasing the number of samples in the Ambiance Occlusion render options.
And BTW, this NeatImage plugin is specifically crafted to remove noise from digital photos and scans by first getting a noise profile of the digital photo device. But there is no noise profile for an AO render so how can this be used for removing noise out of a render? I'd sure be currious to see the results.
kikiriki
Mar 6 2006, 02:31 PM
Btw. you could get very similar (if not the same) results with Plug-in called "Smart Blur", which is already build-in Corel PhotoPaint.
Yves: I hope that I won't sound to naive, but is it possible to use a little larger, softly blurred dot instead of sharp black dot? In that way the renderer would need a lot less samples for soft shadow effect.
ypoissant
Mar 6 2006, 03:08 PM
QUOTE(kikiriki @ Mar 6 2006, 05:31 PM)

Yves: I hope that I won't sound to naive, but is it possible to use a little larger, softly blurred dot instead of sharp black dot? In that way the renderer would need a lot less samples for soft shadow effect.
Well, don't hope any longer because that do sounds very naive indeed. There are no dots. It's not like we're trowing dots in there to make shadows. The dots are only the result of sampling the environment. They are the result. Not the mean.
That one made my day.
cfree68f
Mar 6 2006, 09:04 PM
Hey Yves,
I do it all the time without using a profile. It has an image noise analyser that will look at the image and give you some settings. These can be tweaked slightly by resampling specific trouble areas and once that profile is created.. it will reduce the noise based on how much you want it to reduce the noise. ie.. a little or alot.
alot blurs the crap out of it. .but it has one other trick. It breaks the image up into luminance and chromninance values. You can tweak how much it reduces on each. It even "seems" to fix some jpeg macroblocking.
Now I know that this is all somewhat lossy, but isnt that the point of a noice reduction.
heres an example using my witch ambient occlusion render
[attachmentid=14948]
let me know if this is a good example. Personally I kinda like the noise ;-) Hope this one makes your day as well.
C
MattWBradbury
Mar 6 2006, 11:06 PM
The filtering looks a lot like smart blur for Photoshop. Smart blur also had a hard time with the skull necklace area. All you have to do is set the size of the individual noise dots, and then set the threshold to a good setting. I should probably make a grayscale of the image, and then smart blur than and use that as a luminance layer on photoshop so I don't have to blur the fine details.
ypoissant
Mar 7 2006, 08:42 AM
QUOTE(cfree68f @ Mar 7 2006, 12:04 AM)

I do it all the time without using a profile. It has an image noise analyser that will look at the image and give you some settings. These can be tweaked slightly by resampling specific trouble areas and once that profile is created.. it will reduce the noise based on how much you want it to reduce the noise. ie.. a little or alot.
alot blurs the crap out of it. .but it has one other trick. It breaks the image up into luminance and chromninance values. You can tweak how much it reduces on each. It even "seems" to fix some jpeg macroblocking.
Cool. I see it can do a good job without a camera profile.
How long does it take the filter to figure the noise signature and suggest the settings?
And how long did it take you to tweak then until you got exactly what you wanted?
Would the same settings be usable on all the images in an animated sequence? Say a zoom-in from full height to face close-up on the witch character for instance?
How would it perform if the witch face had bump or displacement maps for wrinkles?
QUOTE
Now I know that this is all somewhat lossy, but isnt that the point of a noice reduction.
The theory behind "noise removal" is that noise is masking out the true information and if you could remove the noise, but only the noise, you could get back the true information.
In theory, this should not be lossy. It should actually gain back lost information. In theory, we are dealing with ideal situations where we know the characteristics of the signal we want back and we also know the characteristics or signature of the noise generated by the device.
When theory is put into practice, however, a lot of those nice and ideal axioms from the theory are replaced by assumptions. And because there are no other ways but to work on assumptions, then "noise removal" becomes "noise reduction" which is lossy.
There are two sort of noise reduction filters. One sort is based on a specific set of assumptions and will do marvelous job if the data fits within those assumptions but will also produce crap when the data does not fit the set of assumptions. The other sort allows you to tweak the assumptions. This is where you have sliders to adjust settings in the filter control panel. The reason the user must adjust the settings is because there are no known algorithmic ways of adjusting them based only on the image that is to be processed.
My point is: I'm not saying noise reduction algorithms does not work. I'm saying that there is no perfect noise reduction algorithms that will work as expected in all situations. And in the context of an animation application, where the situation will basically change all the time, a noise reduction algorithm would need to have its settings adjusted by the user during the course of an animation. I don't see how this would be practicable. I still think that the required additional effort by the user would not be worth it.
QUOTE
Personally I kinda like the noise ;-) Hope this one makes your day as well.
Yes. Cool! Thanks.
I also like the film grain look of it.
cfree68f
Mar 7 2006, 12:12 PM
Hey Yves,
glad you liked it. I actually used the wrong settings for that image. I used ycrb as if it where a jpeg, when I should have used RGB. The new tests do an even better job using the correct color space.
QUOTE
How long does it take the filter to figure the noise signature and suggest the settings?
about 4 to 8 seconds. In addition there is a batch analyser which should develop a profile for a batch or images. I'm not sure how long it would take to analyse the image. I'm guessing that the size of the image affects the time as well. My images where 1600x1200.
QUOTE
And how long did it take you to tweak then until you got exactly what you wanted?
Perhaps 30 seconds. You tweak the settings for how much noise you want to remove and where you want it removed (ie chominance or luminance, or R, G, or B, low, mid or high frequency noise. etc ). You can save these settings and they seem to transfer well between different image sets..
QUOTE
Would the same settings be usable on all the images in an animated sequence? Say a zoom-in from full height to face close-up on the witch character for instance?
I believe so, since you can analyse a batch of images to create a profile and batch process from that profile, the same as a camera profile. I suppose it depends on the lighting setup and how the colors change in the scene. I ran some test and it seemed to work well if the RGB values of the image where close enough. I think for constant or similar lighting between frames it would work fine, but for stuff that changed allot like lightning or strobe lights it might not do as well.
Of course if it just analyzed each frame and removed the noise then it could do anything I suppose. If the noise was similar from frame to frame then it shouldn't have issues with it. I haven't run an animation through it to see what it might do.. I'll try that next.
QUOTE
How would it perform if the witch face had bump or displacement maps for wrinkles?
It actually does pretty good with stuff like that, based on what I've done with photos. As I said you can tweak how much it removes in low, mid, and high frequency noise. Even with these settings cranked up to 150 percent it still left the image and removed the noise.
here are some tests with 3 different images trying the first profile on all three and seeing how much better you get with profiles based on each image. All images use the same amount of noise reduction in all channels and frequencies.
[attachmentid=14974]
I'll try to do an animation next. I'll try that spinning cube I used earlier.
C
ypoissant
Mar 7 2006, 01:03 PM
That is impressive. Particularly the last row. It seems to tend to lighten the overal image though.
I'd be currious to know, for comparison purposes, how long the witch took to render? And the AO sampling setting for it.
How long it takes to noise reduce the whole rendered witch image? (just the noise reduction step. not the settings)
MattWBradbury
Mar 7 2006, 07:32 PM
Noise was seen as being dark specs on the image, so getting rid of them would make it look brighter. Which program are you using to reduce of the noise?
I like the texture AO gives off as well. Makes the patches look more like a medium than some simple patch geometry.
cfree68f
Mar 7 2006, 09:38 PM
QUOTE
It seems to tend to lighten the overal image though.
Really? Thats odd.. when I squint my eyes and look at the images.. the noise reduced images seem to be darker to me.

might be my monitor versus yours.
QUOTE
I'd be currious to know, for comparison purposes, how long the witch took to render? And the AO sampling setting for it.
On that last image she took 50 minutes for 16 passes with an AO sampling of 30 percent.
QUOTE
How long it takes to noise reduce the whole rendered witch image? (just the noise reduction step. not the settings)
It took about 6 or 7 seconds to reduce the noise for for the entire image at 1600x1200.
On a lark... I started another render and took a screen grab at 5 passes (13 minutes).
Heres what it looks like originally and with the noise reduction.
[attachmentid=14986]
QUOTE
Which program are you using to reduce of the noise?
its called NeatImage. I posted the URL for it earlier in this thread.
C
MattWBradbury
Mar 7 2006, 10:39 PM
The plug-in is really cool. From my experimenting, I found that you don't even need to use high levels of AO to get decent results with the noise reduction plug in.
I didn't know how to get the plug-in to do an auto configuration, but I did find a way to get great results. Set the Noise Level Luminance bar to -100% and chrominance chanel to 0%, and turn on preview. Then start to move the Luminance bar over until you start to see signifigant changes in the noise, then set it back 5%. Set the chrominance bar to 50%, then -50%, and see which one looks the best. Which ever one does, go through in 25% incriments untill it looks the best it can. Then for the Noise Reduction Amount, set the Luminance bar to 100%, and the chrominance bar to 100%, and pull the luminance bar down until all of the noise disapears. You can then set the Sharpening amount up, but make sure that high surface slope normals do not turn into toon looking lines. Thanks Colin!
MattWBradbury
Mar 7 2006, 11:22 PM
I did some quick tests with normal mapping and the noise reduction. It didn't effect the normal map at all and produced a very clear image. This was with 16 passes at 10% AO sampling
cfree68f
Mar 8 2006, 07:41 AM
Matt, Thats very interesting.
Not sure what "plugin" you are using.. there is a standalone program that I use. Thats where the config comes in. Perhaps the plugin operates differently.
Like I said.. its the best noise reduction tool I've found (and believe me I've looked) I've even taken photos that looked awful and where jpeg'd and run this on them. The looked great and I've even had them used as stock photography.
Seems to eat the noise from AO rendering for breakfast ;-)
I ordered the pro version yesterday so I can start running it on animations. (the demo is limited to a 2 frame batch). The pro version will also work on 16 bit channels.
C
jo b.
Mar 8 2006, 08:50 AM
wow, i totally missed what's going on in here?!?
this looks "top notch!!!"
Willi
Mar 8 2006, 08:51 AM
hey,
very cool this noise reduction. thats exactly how it should work.
will make also some testrenderings.
cfree68f, can you make a turnaround animation of your character with neatimage, to see if there will occure any flickerings.
Greg
Mar 8 2006, 09:48 AM
A
BIG thanks to Willi for starting this topic.
A
BIGGER thanks to Colin and Matt for their hard work in proving that this concept works.
You have made Martin and Yves reevaluate their beliefs about post processed noise reduction.
I must add that NeatImage has NO OTHER information about the render other then the image. Just imagine what a post noise reduction tool could do if it had all the information that a renderer can supply (higher bit depth, normals, Z-depth, Etc. . . .)
thanks again,
Greg Rostami
cfree68f
Mar 8 2006, 10:11 AM
QUOTE
A BIGGER thanks to Colin for all his hard work proving this concept works.
You have made Martin and Yves reevaluate their beliefs about post processed noise reduction.
I must add that NeatImage has NO OTHER information about the render other then the image. Just imagine what a post noise reduction tool could do if it had all the information that a renderer can supply (higher bit depth, normals, Z-depth, Etc. . . .)
You're welcome. And I'm glad they are considering the noise reduction
I was thinking the same thing that with all the data the renderer has.. especially the higher bit depth. That a post process of the renderer could do wonders.
It seems to allow for a little more lenience on the amount of sampling. I imagine the SoulCage guys would love to be able to get their render times down and render only a few passes per frame. Considering their split render process.. I imagine the images might only get better and take less time to render ;-).. Thats always nice.
I'm still waiting for my pro license to play around with some animation tests.. so don't let the horses to far out of the gate yet.
QUOTE
cfree68f, can you make a turnaround animation of your character with neatimage, to see if there will occure any flickerings.
Thats what I intend to do tonight.. I'll post the results tomorrow.
C
Greg
Mar 8 2006, 10:25 AM
QUOTE(cfree68f @ Mar 8 2006, 10:11 AM)

I'm still waiting for my pro license to play around with some animation tests.. so don't let the horses to far out of the gate yet.
Colin,
You might also look into Neat Video:
http://www.neatvideo.com/This program also performs temporal processing as well as spatial. It is a little more expensive though.
thanks again Colin . . . You D MAN!
Greg Rostami
Greg
Mar 8 2006, 10:53 AM
Pssst,
Here is another thread discussing the use of Neat Image for renders . . . take a look:
http://www.neatimage.net/forum/viewtopic.php?t=1454all the best,
Greg Rostami
cfree68f
Mar 8 2006, 11:05 AM
QUOTE
Here is another thread discussing the use of Neat Image for renders . . . take a look:
lol.. talk about synchronicity.
I decided to dig a little more to see what info is out there on the different techniques. I found this one interesting (lots of images).. Maybe the tech heads might find it useful.
http://www.fmrib.ox.ac.uk/~steve/susan/susan/node16.htmlC
KenH
Mar 8 2006, 12:02 PM
Faster rendering would benefit TWO, so don't let the year of stability stop you dabbling...
MattWBradbury
Mar 8 2006, 03:29 PM
By the way, this can also be used quite well with radiosity. Here is what it can do to the noise found in radiosity. This was done with eye balled settings for sampling area, and 100% jittering for final gathering and 50 samples for final gathering and no precomputation of irradiance. For a 13:58 radiosity render, this is pretty good, and Neat Image makes it look Like I used a lot of sampling which I didn't.
The Hash Team needs to put this into A:M. The quality difference is just amazing.
DanCBradbury
Mar 8 2006, 03:58 PM
does this program do anything at all to enhance the quality of something like a mosaic pixelated police video like the program NASA used to enhance the columbia take off video?
DanCBradbury
Mar 8 2006, 06:00 PM
In just checking to see what the program would do for a completely random noise image.
oakchas
Mar 8 2006, 06:40 PM
that's pretty intense!
cfree68f
Mar 9 2006, 08:02 AM
Well the animation tests look promising. I thought I'd really give it something to chew on, so I did a 360 of the witch with AO sampling set to 10 percent and 5 passes per frame (for those that don't get what that means.. suffice it to say its as grainy as I'd want to go ;-). The render times per frame where about 3 minutes per frame at 400x600. Not bad for for an AO render I suppose. The noise reduction process took all of 5 minutes for all the frames. So the end result would be.. 4 seconds of AO render at 400x600 in 4.5 hours on an AMD64 2 gigahertz with 1 gig of ram.
Here are the results. There are one or two little trouble areas I suppose.. but those could probably be done better with a little more effort than I put into this test.
Witch low Pass Low Sample Noise testC
oakchas
Mar 9 2006, 08:10 AM
WOW!
that's impressive!
jo b.
Mar 9 2006, 09:10 AM
@ cfree68f
wow thats really really promising!
thanks.
dingo
Mar 9 2006, 09:58 AM
QUOTE(cfree68f @ Mar 9 2006, 08:02 AM)

Well the animation tests look promising. I thought I'd really give it something to chew on, so I did a 360 of the witch with AO sampling set to 10 percent and 5 passes per frame (for those that don't get what that means.. suffice it to say its as grainy as I'd want to go ;-). The render times per frame where about 3 minutes per frame at 400x600. Not bad for for an AO render I suppose. The noise reduction process took all of 5 minutes for all the frames. So the end result would be.. 4 seconds of AO render at 400x600 in 4.5 hours on an AMD64 2 gigahertz with 1 gig of ram.
Here are the results. There are one or two little trouble areas I suppose.. but those could probably be done better with a little more effort than I put into this test.
Witch low Pass Low Sample Noise testC
First off, Colin you are da man!
Question: How long would it take using ONLY AO to acheive a similar final animation? (ie. no noise in final).
Maybe a three pane comparison: noise, no noise:post reduction, no noise:AO high pass and %. Time it took for each.
MattWBradbury
Mar 9 2006, 10:15 AM
You'd have to have AO settings between 60% and 100% to get results like that, and you'd have to use more passes. The passes alone would probably more than double the rendering time, and the increase in AO sampeling would making render times exponentionally longer.
You can do your own tests with a simple box with AO at different sampeling percentages. I suggest going by a step of +10% starting at 10%.
Colin, the program does a great job. I don't like that the AO noise fallows the geometry, so the program seems to be spot on. You guys should use this for TWO.
cfree68f
Mar 9 2006, 11:10 AM
As you can see from my first pics of the witch (with an AO setting at 30 percent) the noise is still there, although a good bit more acceptable) I'd agree that you'd need probably 60 percent or higher and 16 to 20 passes to get something comparable in terms of noise.
I'm not advocating low pass rendering.. I personally think 16 is the minimum for good antialiased edges, but for split render processes like SoulCage's where the AO pass is just 1/10th or the final image.. I think a low pass option is more than acceptable as long as the Other passes have better AntiAliasing)
I suppose nine passes could be acceptable for animation purposes with this noise reduction. And it can be used for many other things in the production pipeline as Matt pointed out with his radiosity example.
I've even used it to create elements for more painterly images (some algorithms that filter images for say, watercolor effects, really latch onto the most minute noise).
As far as render times, based on my playing around with AO.. it seems that doubling the Sampling rate, more than doubles the render time. In addition.. the amount of geometry in the scene (rather obviously) increases the render time. Even just zooming in on the witchs torso and rendering out a 1600x1200 image like the originals I posted, seemed to increase the render time (not sure why, probably pixels considered or something).
My estimate, and I'm not going to back it up with rendering, is that upping the AO sampling and passes to rival the noise reduced image would end up increasing the per frame render time to hours. The animation would probably take days to render. I might play with it some more and test that, but I'm pretty sold at this point, and I think the evidence is strong enough at this point ;-)
C
ypoissant
Mar 9 2006, 05:47 PM
Just a precision. Playing with the number of passes should have little impact on render time when using AO because AO samples are distributed among passes. For instance, if you render 9 passes, each pass will take 1/9 of the total samples.
MattWBradbury
Mar 9 2006, 06:10 PM
The geometry will increase the render time when using a higher number of passes. But this program is a real time saver.
Willi
Mar 10 2006, 05:47 AM
found out that if the normals of 5point-patches are flipped, AO will render the Cps of these patches black! i will report.
[attachmentid=15054]
cfree68f
Mar 10 2006, 06:42 AM
QUOTE
found out that if the normals of 5point-patches are flipped, AO will render the Cps of these patches black! i will report.
I've seen that. I was wondering what the heck that was. Thanks for the info.
C
Noel
Mar 10 2006, 11:14 AM
Just found this topic. Interesting stuff.
Here is a
Noise Reduction Comparision page I found.
cfree68f
Mar 10 2006, 11:52 AM
Hey Noel,
Yeah I saw that page as well. He rated Noise Ninja slightly better than NeatImage, but I think the comparison is farely old. I ran neat image on the same images and it looked much better than his results.
One thing I found interesting. I thought it might soften or clean up ray traced shadows. But it didn't.. it got rid of the jpeg noise in the image.. but left the slight grain in the penumbra. Now thats precision. I suppose thats a good thing.. since it means its fairly sensitive to ambient noise, but not detail noise.
C
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please
click here.