PDA

View Full Version : Anti-Aliasing with EEDI2 question.


kai0n7
23rd February 2007, 16:26
I'm using this in my script to apply antialiasing to an image:

Spline36Resize(720,406).TurnLeft().EEDI2().TurnRight().EEDI2().Spline36Resize(852,480)

Is it supposed to be running at like 1-2fps on a 1.8ghz Core2? I was previously using Sangnom in EEDI2's place, which was much faster... but it unfortunately introduced some artifacts in a few scenes that I just couldn't live with.

unskinnyboy
23rd February 2007, 16:37
EEDI2 *is* slow. So yeah, 1-2fps sounds normal.

foxyshadis
23rd February 2007, 16:51
Sangnom is close to the equivalent of Separatefields().SelectEven().EEDI2(), in other words it only operates on half the frame. Thus the speed and the artifacts.

The basic version of EEDI2 is not multithreaded, you can get the latest from the TIVTC thread, or I just posted a faster version: http://foxyshadis.slightlydark.com/random/Eedi2mt.zip

You can also try using a single eedi2/resize (no turning), combined with TIsophote, which should be somewhat faster.

Terranigma
23rd February 2007, 17:26
tritical posted your filter, foxyshadis, at his website (http://web.missouri.edu/~kes25c/) as well. Is it just me, or am i'm trying to use it wrong? I tried using yours, (after removing tritical's) and I get "There's No Function Named EEdi2". :o

foxyshadis
23rd February 2007, 17:55
It might have failed to load because it was SSE2, I forget but I suspect it was compiled that way. >.> This one's an SSE minimum, though. Oh, and it might need the vc8 runtime, I never thought about that.

Boulder
23rd February 2007, 19:00
I tried the earlier multithreaded version and it gave me the same error message. However, this new build works.

steve77
23rd February 2007, 19:48
Quick question; is this "Anti-Aliasing" a technique for removing jaggies after deinterlacing? If so, is the proposed way with EEDI2 one of the better ways of going about it?

Regards,

Steve

davidhorman
23rd February 2007, 20:15
Does EEDI2mt show any speed increase over EEDI2 on a single processor? Or a P4 with hyperthreading? Or does it only show improvement on a truly dual core system?

David

Boulder
23rd February 2007, 20:44
I didn't test it (I have a HT-capable P4) but I'd suppose it will give a slight performance boost on single core HT-capable CPUs as well.

kai0n7
24th February 2007, 16:14
Quick question; is this "Anti-Aliasing" a technique for removing jaggies after deinterlacing? If so, is the proposed way with EEDI2 one of the better ways of going about it?

Regards,

Steve

Yes, it works pretty well on that too. My need for it is somewhat different, though. Doing some LD captures, and I've noticed that while they are very sharp and crisp, there is alot of aliasing even after IVTC'ing them.

The antialiasing functions, either using Sangnom or EEDI2, do a great job smoothing them out. Using Sangnom is faster, but I've noticed that it can really screw up areas of fine detail... EEDI2 doesn't seem to have the same trouble, but its much slower.

kai0n7
24th February 2007, 16:17
Sangnom is close to the equivalent of Separatefields().SelectEven().EEDI2(), in other words it only operates on half the frame. Thus the speed and the artifacts.

The basic version of EEDI2 is not multithreaded, you can get the latest from the TIVTC thread, or I just posted a faster version: http://foxyshadis.slightlydark.com/random/Eedi2mt.zip

You can also try using a single eedi2/resize (no turning), combined with TIsophote, which should be somewhat faster.

To use the multithreaded version, do I need to install the MT filter and the modified avisynth.dll as well? I'd definitely appreciate even a little bit of a speed up.

Chainmax
24th February 2007, 16:45
Kinda off-topic but not quite: the strongest Avisynth-based antialiasing chain I found was this:

AAA()

Crop(whatever,align=true)

EEDI2().TurnRight().EEDI2().TurnLeft()

yourfavoriteresizer()

In that exact order. The only thing that could probably be changed without altering its effectiveness is the cropping line. It is, of course, insanely slow (especially on my wimpy Sempron 2200+ with 512MB Ram :scared:), but it worked wonders on a live-action TV ad I was cleaning up.

steve77
24th February 2007, 22:13
I am freaking out! :D

I've been a Doom9 member for some time, lurking the threads. I've tried out SangNom() on some material with really "blocky" edges and it smooths them out perfectly!

This forum is amazing for video enthusiasts! In the past weeks I've learnt how to use x264, sharpen video properly, denoise video properly, and now this!

Heck, I even learned some new deinterlacing methods: MVBob, MCBob and TDeint.

Before I only used IVTC for ALL my deinterlacing... sad I know.

Amazing forum, amazing help. Now if only I could get MCBob to run realtime....

foxyshadis
24th February 2007, 23:02
No other MT avisynth stuff needed, it's all self-contained and automatically chooses the optimum # of threads. EEDI2 is easily externally multithreadable, but it's commonly used in mvtools scripts where that isn't an option (without a lot of script-hacking), so I made this version.

kai0n7
25th February 2007, 01:41
No other MT avisynth stuff needed, it's all self-contained and automatically chooses the optimum # of threads. EEDI2 is easily externally multithreadable, but it's commonly used in mvtools scripts where that isn't an option (without a lot of script-hacking), so I made this version.

Thanks, I'll give it a try when I start my next project. I'm currently in hour 15 of 36 for my current encode, so I think I'm past the point of no return on this one. :p