Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
|
Thread Tools | Search this Thread | Display Modes |
19th June 2004, 17:12 | #1 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
toot: new "advanced-averaging" filter (ignores worst source)
http://e-rels.dyndns.org/downloads/toot.rar
This plugin takes 3 clips and for each component of each pixel the 2 of the 3 sources that are most similar are averaged example: r=toot(a,b,c) notes: -a, b and c must have equal length, resolution and colorspace -for best results a should be the best and c the worst clip this plug-in is ideal if you have three copies of the same LD pressing of a movies with different rot-based drop-outs but i should also do well on "advanced-averaging" 3 caps of the same source old thread: http://forum.doom9.org/showthread.php?s=&threadid=78187 Last edited by E-Male; 11th July 2004 at 00:52. |
19th June 2004, 17:33 | #2 | Link |
Bored...
Join Date: Apr 2003
Location: Unknown
Posts: 2,812
|
Hmm, what result would I get when...
- Feeding 3 differently denoised versions of a captured source? - Feeding 3 differently denoised versions of the same DVD source? Bye Last edited by Soulhunter; 22nd April 2013 at 05:03. |
19th June 2004, 17:55 | #3 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
well, try it and tell us
as i said it will output the average of the 2 most similar sources for every component of every pixel i don't have any practical results, yet but i think it'll do bet woth 3 caps not 3 filtered versions of 1 but you can try it, maybe it'll give good results you could also try using the original source plus 2 heavily filtered versions (maybe one temporal and one spatial) hm, i think i'll look into that |
19th June 2004, 18:18 | #4 | Link |
Bored...
Join Date: Apr 2003
Location: Unknown
Posts: 2,812
|
Played around with "Layer" to blend 2 differently denoised sources...
My idea was that this procedure should smooth out the boundaries* Results where pleasant... * The small annoying area between denoised and non-denoised areas Bye Last edited by Soulhunter; 22nd April 2013 at 05:04. |
19th June 2004, 18:30 | #5 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
i quickly tried this:
-------------------------------------- c=source.temporalsoften(1,255,255) c=c.temporalsoften(1,255,255) b=source.blur(1.58) b=b.blur(1.58) a=source.undot r=toot(a,b,c) -------------------------------------- may be something to look into |
20th June 2004, 02:23 | #6 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
not a bad idea that - you could combine it with something like MVtools for denoising, that way when it finds uglies (which i understand will still show up when bad vectors are used) it will ignore them, and maybe replace it with a traditional temporal or spatial soften.
__________________
sucking the life out of your videos since 2004 |
20th June 2004, 03:24 | #8 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
well for example, if you were to do a motion compensated denoise (with MVdenoise or something similar), then running toot with the original, or a traditionally denoised clip would be a good insurance policy against false motion vectors causing smears or other artefacts. please note that i'm not sure whether MVtools already takes bad matches into account (i've been away from my computer for over a month now, and wont be able to do avs scripting for another 3 weeks or so).
it seems to me that toot could be used as an extra (automated) layer of protection against ugly artefacts produced by otherwise excellent filters (RemoveDirt performs disastrously on scenes with shaking objects, or fast back-and-forth global motion - it can detect half of the frame as "dirt", and replace it with a blend of previous and next frames, causing a frighteningly obvious "shear" in the frame)
__________________
sucking the life out of your videos since 2004 |
20th June 2004, 03:38 | #9 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
so
a = original b = mvdenoise c = simple noise filter right? you gotta take into account that this will reduce the effetc of mvdenoise and the other filter by 50% since it averages their output with the original (or with each other) i think about writing another similar filter that just output b or c depending on what's closer to a, maybe that would be better for working with other noise reduction filters |
20th June 2004, 04:21 | #10 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
ah yeah, i forgot about the 3 clip thing.
maybe: a=denoise b=denoise c=mvdenoise it probably wouldn't be worth the slowdown in that case. i really must get back to my computer so i can play with these things. i'm working blind ATM.
__________________
sucking the life out of your videos since 2004 |
20th June 2004, 04:31 | #12 | Link |
interlace this!
Join Date: Jun 2003
Location: i'm in ur transfers, addin noise
Posts: 4,555
|
ah, of course, where's my brain.
it'd have to be original, denoised, and MVdenoised then. and that would reduce the effect somewhat. hmmph. i guess there's plenty of other ways to insure against erroneous vectors (masking is what i usually do for this stuff)
__________________
sucking the life out of your videos since 2004 |
20th June 2004, 05:18 | #13 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
the effect would be reduced by teh averaging
if you wanna go in detail about mvdenoise, please don't do it here i don't want this thread to go off-topic, thx anything done using toot can be discussed here of course, no maatter what you combine it with |
20th June 2004, 22:16 | #14 | Link |
Registered User
Join Date: Feb 2004
Posts: 61
|
I recently tried another aplication for this plugin, trying to remove CCD noise. I scaned a picture 3 times, assuming the noise would be at different pixels each time, and then ran it through this script
--------------------------------- src1 = src2 = src3 = #Turns images into three movies r=toot(src1,src2,src3) #Process to remove CCD noise ImageWriter(r,"c:\",4,4,"BMP") #Write the new image --------------------------------- The result was ok, only some minor improvements though. either there is something wrong with my thought process or I should first run some filters on the images, try it yourself and tell me if you get ne better results. |
13th July 2004, 19:12 | #19 | Link |
Potentate
Join Date: Mar 2003
Posts: 219
|
E-male:
Thanks for the cool filter. I was wondering how difficult it would be to create a variant of your filter that on a pixel basis, compares two clips and if any of the Y, U or V components are some user supplied threshold different between the two clips, choose the lower value? Here is the situation - I'm trying to capture an LD to DVD, but there is a significant amount of "laser rot" in my disks. On my player, the spots show up as white, blue, red, or green spots that are much much brighter than the surrounding pixels. I borrowed a friends LD player, and much to my surprise, his player shows hardly any of these "spots" however his player has significantly more noise in the picture than mine. What I would like to do is somehow detect the "spots" and then replace those offending pixels with the "clean" ones from the other player. I looked at your source code, but I'm lost as I know nothing about C++: if it were in C (and I had a compatible compiler) I would give it a go. Any chance that this could be easily implemented? Thanks Ted |
13th July 2004, 22:01 | #20 | Link |
mad computer-scientist
Join Date: Mar 2002
Posts: 1,375
|
http://e-rels.dyndns.org/downloads/abdespot.dll
abdespot(a, b, c) a = spotty clip b = noisy clip c = threshold uses a, except when a > b+threshold, then b i used all 3 components of the pixel are checked independently but with the same threshold that should be the "filter that on a pixel basis, compares two clips and if any of the Y, U or V components are some user supplied threshold different between the two clips, choose the lower value" yv12 only doesn't crash for me, but is non-tested for correct (or even usefull) results waiting for feedback CU E-Male Last edited by E-Male; 13th July 2004 at 22:03. |
Thread Tools | Search this Thread |
Display Modes | |
|
|