View Full Version : The more denoisers the merrier
MfA
24th January 2004, 04:41
Here is yet another one.
It is still slow and needs to be assemblified, also strong settings can cause an oil painting effect (I might include a setting to tone down strength in textured areas, because that is where it is most visible and also where noise is least visible).
http://home.student.utwente.nl/m.f.al/bilateral/
The parameters are (int radius, float spatial-deviation, float intensity-deviation, bool filter-chroma). Defaults are (3, 1.5, 2.5, true). It uses a square convolution mask, if the radius is 1 you get a 3x3 mask ... with 3 you get 7x7. It is an implementation of bilateral filtering (plenty of info can be found through google) with an adapted function for the intensity difference.
mf
24th January 2004, 13:19
So you're actually coding your own filter now? :) How about that MC deint that you said you could do so much better :D ?
Mug Funky
24th January 2004, 15:03
much obliged :)
the more the merrier. some get bewildered by the choice, but i say bring it on...
not testing at the moment - still tweaking my latest denoiser effort :P
sh0dan
24th January 2004, 17:05
Good start!
(moved other stuff to Dev section)
Next time, please use a more descriptive subject/title.
MfA
24th January 2004, 17:06
Coding a good true motion estimator is too much work mf :) I coded this because it is a pretty standard filter, but easy to implement.
morsa
24th January 2004, 22:14
I`ve tested it and it has really nice results.Good work!
About MC, I think there is no need to code one, Fizick has one if I`m not wrong.
You could use it for your filters.
MfA
25th January 2004, 20:10
Fizick uses the image registration data from deshake, not really the same as true-motion ME.
mf
25th January 2004, 20:26
Start off with XviD's ME, adapt it to deinterlacing, and then optimize it for true motion :). If you manage to tickle my interest in trying a real programming language, I'll help out ;).
scharfis_brain
25th January 2004, 21:50
It is possible to abuse Motionperfect for deinterlacing.
Results are really good, but the handling is very complicated (large files)
Manao
26th January 2004, 01:04
I'll soon release a group of filters that use XviD's algorithm to find motion vectors. The problem is that it won't be usable in script, so if you want to play with the motions vectors, you'll have to program the deinterlacer properly.
I just need a last clean up / debugging of the code prior to release it (here), and to decide whether a quarter pel refinement would be useful or not.
But I wonder, wht do you wall 'True Motion' ? Because I search basic filters to implement in order to give example of how to use my code, and that could be a good example.
MfA
26th January 2004, 01:42
Well for one gradient based searches can get it wrong for large motion ... but more importantly the RD based search looks for whatever is cheap to code, not for true motion.
RD based search is better than pure distortion search, because the RD optimization enforces an implicit smoothness constraint ... but for low distortion blocks it will generally start preferring low motion (low bitrates) over true motion.
morsa
26th January 2004, 07:03
I think these are really good news, new deinterlacers, new noise filters, may be new spot removers (using available portions of other frames) and may be a frame synthetizer (kind of motion perfect).Wow!!!
I got excited.
FredThompson
26th January 2004, 11:44
Originally posted by scharfis_brain
It is possible to abuse Motionperfect for deinterlacing.
Results are really good, but the handling is very complicated (large files) And you had me thinking deshake was better...
scharfis_brain
26th January 2004, 11:52
@Fred:
deshaker is better than steadyhand (also a dynalpel-product)
but motionperfect does true motion estimation and image rendering.
this can be abused to deinterlace a video:
this is a normally true interlaced (50i or 60i) video
even field:x x x x x x x x
odd field: x x x x x x x
. ---------------> time
now I separate the video into its both fieldstreams.
then I let motionperfect interpolate both fieldstreams to their double framerate.
next, I load the create video back to AVIsynth and weave them back together:
even field:xXxXxXxXxXxXxXx
odd field:XxXxXxXxXxXxXxX
. ---------------> time
X = interpolated frame
x = normal frame
as you can see, MP has created the correct temporal position of the other field.
MP-dismatches can easyly removed with area-based deinterlacer, which has to be configurated a way, it is only interpolation from the original frames.
FredThompson
26th January 2004, 12:00
Ah, yes, you're right. I got the products confused. I registered MotionPerfect a long time ago and use it for PAL<->NTSC conversion. IMNSHO, better to take a long processing time and have video that looks right than mess with mess around with the other tricks.
That's a neat idea you have. I make a lot of video that has to be moved to MPEG1 for use on office computers. What you've shown might be far better than using TMPGEnc's internals. Your method looks like it would give more detail instead of blur int he motion areas. Yes?
scharfis_brain
26th January 2004, 13:09
registered MotionPerfect a long time ago and use it for PAL<->NTSC conversion. how do you do the PAL <-> NTSC - conversion?
do you deinterlace to fullframerate before converting?
MP cannot handle interlaced content :(
Your method looks like it would give more detail instead of blur int he motion areas. Yes?
Yes!
MP moves the textures to their correct spatial position, while standard-deinterlacers just do some kind of interpolation between the lines.
but TMCbob nearly reaches the quality of the MP-deinterlacing...
mf
26th January 2004, 13:35
This is actually not even such a bad idea. Make a motion interpolator and catch two flies in one hit. Deinterlacing AND framerate conversion. Oh no, I see a vision! *256 color palette cycling and wavy effect ala Dune the adventure game* I see a chosen man coding AVISynth filters. I see... I see it compiling to MCTools.dll.. I see happiness among doom9 forum users...
FredThompson
26th January 2004, 14:08
Originally posted by scharfis_brain
how do you do the PAL <-> NTSC - conversion?
do you deinterlace to fullframerate before converting?
MP cannot handle interlaced content :(
It's never complained about the NTSC DV I feed it. Look in the settings, there's a tab for DV. I've never tried writing the results as a video DVDR or tape, I just send the files overseas. The only thing I see in the help file is a warning about interlace artifacts when you create full-frame results. Are you sure you're not thinking about something else?
Now you've got me really interested in this. A lot of my video has very rapid motion. Another challenge is NTSC framerate with European lights. I don't know if PAL camcorders are OK in the U.S. but the stuff I shoot often pulses. Maybe your technique will help keep more detail and reduce the pulse. That would be real cool.
morsa
16th December 2004, 05:06
MfA's bilateral
http://forum.doom9.org/showthread.php?s=&threadid=86800
vBulletin® v3.8.5, Copyright ©2000-2012, Jelsoft Enterprises Ltd.