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. |
26th October 2002, 04:45 | #1 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,219
|
Filter Request
Does anyone know of any avisynth plugins that are similar to Jim Casabury's Temporal Cleaner filter for vdub? I always use this filter on all of my encodes, and it works very nicely for me, however its the only thing holding me back from doing all of the processing in avisynth. If there are no similar avisynth filters, perhaps someone could port it over to avisynth?
|
26th October 2002, 10:26 | #2 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,781
|
In MPEG2DEC.DLL you have a TemporalSmoother, and you can use Convolution3D to construct such kind of filter.
+: msoften by MarcFD could be interesting as well (look fo his URL in his signature in many posts around here). Last edited by LigH; 26th October 2002 at 10:31. |
26th October 2002, 16:36 | #4 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,219
|
Hmmm. Convolution3d doesnt seem to work very well. Using Convolution3D(1,0,0,20,20,3,0) I was able to get the file down to about the same size as if I used temporal cleaner with blend 5 and pixel lock 3. However the Conv3d is SLOW. My encode goes 50% faster if I just do full procesing mode and apply temporal cleaner in vdub.
Also does anyone know if this setting for Conv3d can cause and sort of ghosting effect? I wasnt aware of mpeg2dec.dll having any temporal smoother function. Are you talking about a modified version perhaps? |
26th October 2002, 17:08 | #5 | Link |
Registered User
Join Date: Jan 2002
Location: France
Posts: 2,856
|
Convolution3d does work very well : of course, it is slow, but at low setting ( preset="movieHQ" for example, aka 0,3,4,3,4,2.8,0 ), it doesn't harm the movie ( at least not visibly for me ), and however allows a sensible size reduction.
It does a temporal and a spatial cleaning, a temporal one when the picture is still, a spatial one when there is a lot of motion, so it prevents ghosting artefacts from appearing, at least at low settings I never got ghosting artefacts, but I only used values given by vlad in his readme, ie I never went beyond (1, 12, 22, 8, 8, 2.8, 0). But with the great values you gave to luma and chroma temporal threshold, it could happen. |
26th October 2002, 17:14 | #6 | Link | |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
Quote:
Settings of 20, 20 can cause some little ghosting but not a lot.
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta |
|
26th October 2002, 17:45 | #7 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,219
|
I tried temporal soften, but it doesnt work nearly as well as temporal cleaner does. Apparently all these temporal filters work on the video differently than temporal cleaner does. For example when I used the values 6,25,25 with temporal softer, I get bad ghosting, and it only makes my test clip 1.5mb. With temporal cleaner, settings of 5,3 (always use these same settings), the same clip will be only 1.32mb large. Also temporal cleaner at this setting has NEVER caused any ghosting in anything that I've encoded.
I guess its just kinda weird, temporal cleaner is like a miracle filter for me, but its so old you would think something better would be along :\ |
26th October 2002, 18:50 | #8 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,781
|
In case of a really bad need, you will always have the option to load it as VirtualDub filter, but then it will have to work in RGB color space. Not very fast though, I guess...
|
26th October 2002, 19:16 | #9 | Link |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
Are you sure there is not any version of temporal cleaner for avisynth ??
Because by looking at the code, there is an YUV processing mode so it shouldn't be too hard to translate it to avisynth. if there isn't any I could try to translate it.
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta |
26th October 2002, 20:01 | #11 | Link |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
I still don't understand totally all the pixellock parameters maybe you can help me ?
But for the rest I start now. EDIT : I just understood !!!!! I was stupid enought to start reading the code (well written) before reading the docs (much clearer) Stupid me
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta Last edited by vlad59; 26th October 2002 at 20:17. |
26th October 2002, 22:26 | #12 | Link |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
I coded a very simple filter heavily based on TemporalCleaner but with no pixel lock (at least for the moment).
The result : - Visual quality is not a lot better (you can still see a lot of noise in my sample) but not worse (). - Compressibility is better (First pass size dropped by 13%) - speed penalty is not so important (I made some iSSE optimizations) and it's way faster than convolution3d . I'll try to have Jim Casaburi (or neuron2 as Jim's readme talks about Donald) agreement before attaching my filter to this thread. @Zarxrax Can you explain me what are your prefered parameters (I need your experience to make test). EDIT : rewrite the compressibility part to explain better.
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta Last edited by vlad59; 27th October 2002 at 07:38. |
26th October 2002, 22:49 | #13 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,219
|
I've always left scene change at 30. I uncheck the box "Process in YUV colorspace" as well, since it slowed the filter down (i imagine this mode will always be enabled for the avisynth version, correct?).
I always use a value of 5 for the blending threshold and 3 for the pixel lock. I used to use 6,4 but I would occasionally notice some slight ghosting, so I dropped it down a notch to be on the safe side. The value of 5,3 seems to be the perfect value IMO. Note that I only encode anime, so different values might work better for live action. |
27th October 2002, 07:37 | #14 | Link |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
Can you make some test with and without the pixel locker (set it to 0) and give me impression about visual quality and compressibility.
Thanks in advance.
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta |
27th October 2002, 18:08 | #17 | Link |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
@Jorel
You'll find a .txt with convolution3d, you should find your answer here. If you have other question please post in the convolution3d v1.00 thread. Thanks in advance. @Zarxrax (difficult name ) I manage to build an avisynth dll for you to do some beta test. The use of the filter is fairly easy as I haven't kept all Jim Casaburi parameters : I only kept the blur thresholds : TemporalCleaner (ythresh=5, cthresh=10) ythresh (default value = 5) = luma threshold -> blur if the absolute difference between current luma value and previous luma value is below that threshold. cthresh (default value = 10) = chroma threshold -> blur if the absolute difference between current chroma value and previous chroma value is below that threshold. Like Jim Casaburi, I use the already processed previous frame (not the unprocessed one). So if you want to make test on a specific frame (in Vdub) : go 4 or 5 frame before your test frame and then use the right arrow to reach your frame. WARNING : - this filter is written in iSSE ASM so it won't work with PII, K6II and old Celeron. - You must have a mod 4 width source to use this filter otherwise it could crash your computer. You can download it here
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta |
27th October 2002, 19:58 | #18 | Link |
Registered User
Join Date: Dec 2001
Posts: 1,219
|
Ok, heres the results of the tests I ran last night. It was quite shocking, the pixel lock had very little effect on reducing the filesize, and in most cases, it actually made the file larger! So it seems the blending feature is the "important" one
Looking at the clips now, I'm not quite sure what happened. Even with large thresholds, I see no motion trails being left behind. This was a serious problem at higher thresholds when I did my original tests about a year ago, and the filter has not changed any... Due to this I'll refrain from posting my results I got until after I get this sorted out. I'll give your filter a run through too. |
27th October 2002, 20:13 | #19 | Link | |
Vlad, the Buffy slayer
Join Date: Oct 2001
Location: France
Posts: 445
|
Quote:
That's why I haven't kept the pixel locker in the test version I compiled. I'm waiting for your comments about my reading of Jim's code.
__________________
Vlad59 Convolution3D for avisynth 2.0X : http://www.hellninjacommando.com/con3d Convolution3D for avisynth 2.5 : http://www.hellninjacommando.com/con3d/beta |
|
27th October 2002, 22:15 | #20 | Link |
German doom9/Gleitz SuMo
Join Date: Oct 2001
Location: Germany, rural Altmark
Posts: 6,781
|
Thank you very much, vlad59 - your filter works very well on my AMD Duron-800. Using my "Array4x4" snippet -- http://www.ligh.de/software/Array4x4.rar -- I am now checking for the perfect values for y and c thresholds, like that:
Code:
LoadPlugin("?:\*\mpeg2dec.dll") LoadPlugin("?:\*\TemporalCleaner.dll") Import("?:\*\Array4x4.avs") mpeg2source("?:\*\*.d2v") Test4x4("TemporalCleaner", "", {init-y}, {step-y}, ",", {init-c}, {step-c}, "") |
Thread Tools | Search this Thread |
Display Modes | |
|
|