Log in

View Full Version : Plain deinterlacing or Bob+SelectEvery: what do you prefer and why?


Pages : 1 2 3 4 [5] 6 7

steve77
24th December 2006, 05:17
Well if most people are getting around/less than 4fps, that's fine. Just wanted to make sure I wasn't the only one.

Thanks for all of your assistance.... this was really helpful.

I don't have 1GB+ of ram. I have 2x512MB running @ DDR2-916. (Overclocked my Core 2 Duo E6300 to 3.2Ghz.)

I'll try some other bobbers and see if the quality gain is proportionate to the time spent. I might not be one of those people where quality is worth it at any expense.

Regards,

Steve77

wonkey_monkey
24th December 2006, 12:33
Well if most people are getting around/less than 4fps, that's fine.

Count yourself lucky! - I'm getting 0.7fps (3.0GHz, 1Gb RAM). That'll all change when I get networked avisynthing working - no other sysadmins interested? ;)

David

Livesms
24th December 2006, 12:49
Count yourself lucky! - I'm getting 0.7fps (3.0GHz, 1Gb RAM). That'll all change when I get networked avisynthing working - no other sysadmins interested? ;)

David

networked avisynthing
What is that????

wonkey_monkey
24th December 2006, 13:16
I'm working on a program that will break an AviSynth script up into sections and farm it out to multiple machines (which must have AviSynth, plugins and codecs installed). I've proved the concept - now I just need to write the control program.

David

Livesms
24th December 2006, 13:20
I'm working on a program that will break an AviSynth script up into sections and farm it out to multiple machines (which must have AviSynth, plugins and codecs installed). I've proved the concept - now I just need to write the control program.

David

Hm - rather nice Idea :)
But about encoding - or you plan to work with uncompressed material? Or parts will be for several frames to process them parallel and combine to one part every second and compress with encoders (MPEG4 or other) in realtime

wonkey_monkey
24th December 2006, 13:42
I'm not quite sure what you mean...

Each machine will compress (or not, as you choose) it's own segment. Then they can be brought together in another AVS script. To save disk space I will probably use Xvid at 10mbps - with a script as slow as mcbob, the extra time spent encoding won't matter.

Perhaps this thread http://forum.doom9.org/showthread.php?t=119436 would be a better place to continue the discussion :)

David

halsboss
25th December 2006, 12:55
I also read that I need:

# - MVTools, preferably v1.4.13 (or newer)
# - MaskTools v2.0
# - EEDI2
# - RemoveGrain/Repair package
# - ReduceFlicker (if temp-NR for ME is used)
# - MedianBlur by tsp


Looking for a link to MedianBlur please ...

krieger2005
25th December 2006, 19:12
:search:
http://forum.doom9.org/search.php?searchid=1429307

or:
http://www.google.de/search?q=medianblur+avisynth&btnG=Google-Suche&meta=

steve77
25th December 2006, 23:06
Hello all,

Thanks for your help with MCBob.... now I'm looking for MVBob. I've scoured the forums and simply cannot find the script for it. Could sombody point me in the right direction?
Regards,

Steve

P.S. I'm currently processing some material that has frames that are partially interlaced (PAL source)... I used a smart-bobber (TDeint) and it did an ok job of it. Is there a better way of going about these?

Blue_MiSfit
25th December 2006, 23:15
I'm not quite sure what you mean...

Each machine will compress (or not, as you choose) it's own segment. Then they can be brought together in another AVS script. To save disk space I will probably use Xvid at 10mbps - with a script as slow as mcbob, the extra time spent encoding won't matter.

Perhaps this thread http://forum.doom9.org/showthread.php?t=119436 would be a better place to continue the discussion :)

David

David,

If you are planning on doing something like this, I would strongly suggest that you not use a lossy codec like Xvid, but instead a lossless codec like huffyuv - or something newer like lagarith / ffv1 / msu lossless. This will make a big difference if the user is going to encode the result of your program to Xvid or x264. MPEG-4 is very lossy and is not suitable as an intermediate codec.

~MiSfit

foxyshadis
26th December 2006, 02:16
I find Xvid with the EHR matrix, at q2 (or q2/3 with b-frames), makes an excellent replacement for ffv1 at about the same speed, nearly a third the size. The main problem is that ffdshow ignores packed bitstream, so non-linear editing with it is painful; don't use b-frames if you try it.

You can spot artifacts by flipping between the original and the encode at 200%, but I doubt they'd be enough to affect a final encode.

halsboss
26th December 2006, 03:43
Thanks anyway, however

http://forum.doom9.org/search.php?searchid=1429307
gave me "Sorry - no matches. Please try some different terms". Tried "medianblur download" but not much success either. TSP's web site http://www.tsp.person.dk doesn't seem to exist now. http://forum.doom9.org/showthread.php?p=902041&highlight=medianblur+download#post902041 and other links seem to point to avysynth.org


http://www.google.de/search?q=medianblur+avisynth&btnG=Google-Suche&meta=
gave me not much either (most links sent me back to avisynth.org which was down...

Any suggestions ?

bananacreamandpeca
26th December 2006, 07:43
I let Megui analyze the material and just use those settings.
It deinterlaced my DV-cam material (wich looked very hard to do,
partial interlacing etc.)
And it picked the right settings.

Didée
26th December 2006, 16:49
You can get the most recent v0.84 of MedianBlur from here:

http://www.64k.it/andres/dettaglio.php?sez=avisynth
(medianblur_25_dll_20050119.zip)

It's also included in the latest package of scharfis_brain's MVBob.

buzzqw
26th December 2006, 17:34
@Didée

64k.it/andres is my site
i hope i haven't broke any licenseses... :o i use it as a repository/mirror

(i will glady give account/password to avisynth/filter developers to upload/update filters)

BHH

krieger2005
26th December 2006, 18:22
Thanks anyway, however
gave me "Sorry - no matches. Please try some different terms". The search was timed out. I tried "medianblur" in "avisynth usage" and "search only on titles". Result: 1, the right one.

gave me not much either (most links sent me back to avisynth.org which was down... The search-link to google give at the 5-th position this link: http://forum.doom9.org/showthread.php?p=577287
Look at the first post of that thread.

halsboss
26th December 2006, 22:48
Well blow me down, thanks krieger2005. For some reason that 1st post blew up on be when I tried to download it previously; now it works when I tried it again just then. Sorry about that. Also many thanks to Didee and bizzqw for the repository.
Cheerio.

MacAddict
27th December 2006, 15:42
I let Megui analyze the material and just use those settings.
It deinterlaced my DV-cam material (wich looked very hard to do,
partial interlacing etc.)
And it picked the right settings.

I actually do the same thing on most of my material and it works very well. Got a new Panasonic DV Cam recently and I'll be curious how it performs with that source :-)

steve77
28th December 2006, 00:49
Hello all,

I posted a day or 2 ago about finding the MVBob() script. I looked all through these forums as well as googled many combinations of mvbob.avs, mvbob() etc.


Could sombody just post the contents of the script for me please? I have some hybrid material and TDeint leaves some residual combing. MCBob did the job, but took 11h for a 30 minute clip.

Any help would be GREATLY appreciated.

Regards,

Steve

Didée
28th December 2006, 01:14
2 Days? Bad searching! It took 20 seconds to find
http://home.arcor.de/scharfis_brain/mvbob/mvbob.rar
- even in this very thread. :)

Amount of residual combing after MVBob is similar to TDeint, TDeint perhaps even less. To securely avoid residual combing with either one, reduce thresholds. Zero should be perfectly secure. :)

steve77
28th December 2006, 14:36
2 Days? Bad searching! It took 20 seconds to find
http://home.arcor.de/scharfis_brain/mvbob/mvbob.rar
- even in this very thread. :)

Amount of residual combing after MVBob is similar to TDeint, TDeint perhaps even less. To securely avoid residual combing with either one, reduce thresholds. Zero should be perfectly secure. :)

Wow... my face is red. I swear I've been looking long and hard for these things, but there isn't really a convenient location where they're all hidden away. Neuron2 has a brief database of filters, and within the AVISynth doccumentation there are references to some plugins...

Basically, thanks. And for what it's worth, from a purely subjective point of view, MCBob is excellent, if a little slow :)

Well, back to testing!

Chainmax
31st December 2006, 19:18
I just noticed that in WorBry's "name that bobber" game, TDeint was used in sharp kernel mode. What would be the differences between that and ELA on different kinds of source?

zambelli
5th January 2007, 10:31
Has anyone noticed a strange shimmer (flicker) in MCBob output?

I compared it to the output of TDeint and generated a side by side comparison clip:

http://www.citizeninsomniac.com/video/mcbob_tdeint_x264.avi (8.5 MB)

I'm using MCBob v0.3c and the latest version of all the needed binaries. These are my scripts:

MCBob:
LoadPlugin("FFT3DFilter.dll")
Import("MCBob.avs")

AVISource("Foo_PAL_DV.avi")
FFT3DFilter(plane=4, interlaced=true)
AssumeBFF().MCBob().SelectEven()

TDeint:
LoadPlugin("TDeint.dll")
LoadPlugin("FFT3DFilter.dll")

AVISource("Foo_PAL_DV.avi")
FFT3DFilter(plane=4, interlaced=true)
AssumeBFF().TDeint()

Any idea what could be causing that weird flickering effect in MCBob?

Didée
5th January 2007, 18:22
That's an example of a "worst case" scenario. MCBob aims at producing as little residual combing as possible. Note that in those areas where MCBob flickers, TDeint is full of residual combing. (Do a 400% zoom, you'll see immediately.)

Fact is that the current MCBob is too strict (better said: not selective enough) about "allowing" residual combing.
Residual combing definetly should be avoided if it's caused by motion. But in those areas where residual combing is caused by noise, it is even favourable.

Par ex., a funny case can be seen in the "scrolling text" sample (from here (http://forum.doom9.org/showthread.php?p=895006#post895006) - download expired, someone tell if it should be uploaded once more) ... At the end of that sample, look at the background. Simple deinterlacing with moderate motion thresholds produces a static background that is fully combed. With low enough thresholds or a comb-aware bobber like MCBob, the background is free of combing and wobbles up-down-up-down.

The funny thing is: Not knowing the progressive version, I with my human brain am in trouble to decide wich of both results is correct: is it "static but combed", or "wobbling but smooth"?

How should the machine decide, if the human can't ?

zambelli
5th January 2007, 20:26
That's an example of a "worst case" scenario. MCBob aims at producing as little residual combing as possible. Note that in those areas where MCBob flickers, TDeint is full of residual combing. (Do a 400% zoom, you'll see immediately.)
Unfortunately, the clip I uploaded was not a single isolated case. Pretty much the entire 20-minute video that I tried to use MCBob with exhibited this behavior. The flickering was so strong that at first I thought it was some weird 50Hz/60Hz mismatch (shooting American lights with a PAL camera), but then I noticed the effect was completely absent in the TDeint version.

Which of the MCBob parameters can I tweak to try to reduce this effect?

chipzoller
5th January 2007, 21:12
I started a test encode using MCBob v0.3c with a simple script from a NTSC 29.97 interlaced satellite capture using:
avisource()
Import()
Trim(459,24339) ++ Trim(30213,46361) ++ Trim(53130,68112) ++ Trim(73090,84137) ++ Trim(90159,97474) ++ Trim(104101,108133)
converttoyv12(interlaced=true)
AssumeTFF()
mcbob().SelectEven()
crop( 8, 0, -16, -10)
lanczosresize(640,480)

Already hard-hitting enough with the resize, but to make matters worse I tried (just for fun) what type of speed I'd get compressing to x264 using Sharktooth's MeGUI CE-Mainprofile ( --pass 2 --bitrate 1000 --ref 3 --mixed-refs --bframes 3 --b-pyramid --b-rdo --bime --weightb --subme 6 --trellis 1 --analyse p8x8,b8x8,i4x4,p4x4 --vbv-maxrate 25000 --threads auto --thread-input --progress --no-psnr --no-ssim) and the first pass alone I was getting 0.2fps on my P4 2.4GHz :eek:
The source was trimmed ~45min. First pass ETC~4 days....
Yeah, with that length of time and cost of electricity being expended by running my workstation for 2 weeks it would have been cheaper and quicker to drive to Amazon.com's headquarters and buy the DVD, then drive back :)

Still, encoding time aside, it looks like the best bobber I've tried.

Didée
5th January 2007, 22:11
Unfortunately, the clip I uploaded was not a single isolated case. Pretty much the entire 20-minute video that I tried to use MCBob with exhibited this behavior. The flickering was so strong that at first I thought it was some weird 50Hz/60Hz mismatch (shooting American lights with a PAL camera), but then I noticed the effect was completely absent in the TDeint version.

Which of the MCBob parameters can I tweak to try to reduce this effect?

Insert this into the function:
# Lastly, set correct parity for the bobbed clip
# ----------------------------------------------
naked
(order==0) ? AssumeTFF() : AssumeBFF()
This should eliminate most of any flicker. "naked" is just the original fields weaved with the raw motion compensation.
In return, you'll get back 100% of all artefacts caused by failed motion compensation. :)

Apart from that, there's not much that could be done within the current framework of MCBob. Any tweaks raising the error margin will also produce more visual errors.

Then, it's quite possible that this visually obvious problem rises from 50Hz/60Hz interference. As said, TDeint is more calm here because it just weaves, despite producing a combed output.
However I can't fully judge from already processed footage. A raw source sample of those problematic parts (e.g. the one from which you made the comparison) would be useful.


@ chipzoller

Overall performance might get better with creating an intermediate lossless compression, and encode to AVC from that one. MCBob alone should give ~1fps on your machine. After that, you can create AVC with the usual 120fps encoding performance. :D

Seriously: It is done what has to be done ... and it even is not enough yet.
If our currently available tools & hardware need so much time to make all of the needed calculations, and can't manage to calculate faster - - not my fault. :)

wonkey_monkey
6th January 2007, 00:02
Didée, do you think there would be anything to gain from someone (and I'm not volunteering!) rewriting parts of MCBob "natively"? Like specialised versions of the plugins it uses that could be better optimised? Obviously this would make it less customisable...

In the meantime, my distributed AVISynth project is coming along nicely - I expect to have MCBob running at a mind-numbing 10fps soon :)

David

chipzoller
6th January 2007, 06:01
Didée, your inbox seems to be full.

zambelli
6th January 2007, 10:29
Then, it's quite possible that this visually obvious problem rises from 50Hz/60Hz interference. As said, TDeint is more calm here because it just weaves, despite producing a combed output.
You know, I think you may be right (or I was originally right, I guess :) ). I did a simple Bob() on the source and the flickering was still very noticeable. Plus, it only seems to appear in areas under direct fluourescent lights. What mislead me was that none of it appeared in TDeint's output - and since that was my reference deinterlace output, I just assumed it was correct.

Lesson for the future: do not shoot American fluorescent lights with PAL cameras. :(

foxyshadis
6th January 2007, 17:24
If you do happen to have flicker like that, TDeint and SmoothDeinterlace are probably the best choices. An alternative might be following MCBob with Soothe() where calm is one of the smoother bobbers. Didée may come in and say that makes no sense though. =p

Fizick
6th January 2007, 23:10
for every flicker there is at least one deflicker...
:)

kxproject
10th January 2007, 00:34
I have got an error that there is no function named mt_makediff. what should i do? I mean with mcbob script

foxyshadis
10th January 2007, 00:53
Right at the top of the script:

# Prerequisites:
#
# - MVTools, preferably v1.4.13 (or newer)
# - MaskTools v2.0
# - EEDI2
# - RemoveGrain/Repair package
# - ReduceFlicker (if temp-NR for ME is used)
# - MedianBlur by tsp

zambelli
10th January 2007, 01:25
Even though the main Wiki site is down, this Japanese (?) mirror seems to have all the right links:
http://www.avisynth.info/?MCBob

kxproject
10th January 2007, 11:22
I found out that mcbob requires the very last masktools dll which can be found and does not work for me with previous versions. Core 2 duo 6400 gave 1 fps.

foxyshadis
10th January 2007, 12:37
Masktools 1 and 2 aren't really different versions. It'd be more appropriate to call them entirely different plugins, with a few similar functions. You really need to keep both around.

steve77
10th January 2007, 14:59
I found out that mcbob requires the very last masktools dll which can be found and does not work for me with previous versions. Core 2 duo 6400 gave 1 fps.

Yeah, my PC does about 2FPS. (E6300 @ 3.25GHz)... but it's worth it!

kxproject
10th January 2007, 17:36
@foxyshades
I meant that not all 2.x versions worked for me. Only the last one. All other gave errors about mt_lut... functions

Chainmax
12th January 2007, 20:25
I have another question related to the OP: would bob+selecteven still have a theoreticaladvantage over plain deinterlacing when postprocessing fieldmatching? For example, the usual recommended line to IVTC TFF material is:

AssumeTFF()
Interp = SeparateFields().SelectEven().EEDI2(field=1)
Deinted=TDeint(order=1,field=1,edeint=Interp)
TFM(order=1, extra options, Clip2=Deinted)
TDecimate(mode=1)

Would you rather use something like:

AssumeTFF()
Deinted=SecureBob().SelectEven()
TFM(order=1, extra options, Clip2=Deinted)
TDecimate(mode=1)

?


[edit]Also, would your recommendation be different if the source was anime, Simpsons-like cartoons or real life movies?

kxproject
13th January 2007, 17:21
I overclocked core 2 duo to 3,25 and got 4.5 fps. It's a wonder.

kxproject
13th January 2007, 20:53
mcbob deinterlaces gorgeously, better than internal vegas deinterlacer. I have just compared.

R3Z
14th January 2007, 04:30
As good as McBob is (and its freaking awesome) i can only justify using it on very problematic sources. SecureBob seems to be excellent for most cases.

Didée
17th January 2007, 13:00
I have another question related to the OP: would bob+selecteven still have a theoreticaladvantage over plain deinterlacing when postprocessing fieldmatching? For example, the usual recommended line to IVTC TFF material is:

AssumeTFF()
Interp = SeparateFields().SelectEven().EEDI2(field=1)
Deinted=TDeint(order=1,field=1,edeint=Interp)
TFM(order=1, extra options, Clip2=Deinted)
TDecimate(mode=1)

Would you rather use something like:

AssumeTFF()
Deinted=SecureBob().SelectEven()
TFM(order=1, extra options, Clip2=Deinted)
TDecimate(mode=1)

Probably not. My guess is that using EEDI2 for fallback in TFM is just fine.

The cases where TFM can't find a match should always be located in spots where the source actually shows motion. And if so, then

- SecureDeint won't help, because in motion scenes it will just give you back plain EEDI2, anyway

- MCBob won't help at all, because:

the missing field is missing in a progressive frame. That means that the "temporal location" of the missing field is the same as the present base field. But those MVTools-Bobbers try to reconstruct fields that are temporally in between the existing fields.
MCBob is not good at all in that scenario (because of using MVinterpolate).

- MVBob eventually might catch alittle more in the given case ... but my guess (from the guts) is that there won't be much noticeable difference, compared to just using EEDI2 directly. Considering that field interpolation should only happen sparsely during IVTC, and considering that EEDI2 alone is much faster than MVBob, I'd say that anything beyond TFM(clip2=[eedi2]) is just overkill.


But ... note that I almost never have to deal with IVTC, so the above is just theorizing. And the most likely thing to disprove a good theory is ... practice. ;)

Chainmax
17th January 2007, 15:35
Thanks for the reply :). I have to wait for a new TIVTC version with d2v v15 support before encoding anyway, so discussion of theory is a great way to further leech knowledge from you ;) :p. If I understood correctly, what you recommend would be

AssumeTFF()
Interp = SeparateFields().SelectEven().EEDI2(field=1)
TFM(order=1, extra options, Clip2=Interp)
TDecimate(mode=1)

because any other options (SecureBob, TDeint+EEDI2, MCBob and MVBob) would yield very little or even no difference while being much slower. What about using plain TDeint instead of EEDI2 as postprocessor, would there be any difference?

wonkey_monkey
18th January 2007, 14:30
http://www.channeltv.co.uk/avsfactory.png

Now I can make proper use of this fantastic filter... thanks Didée :D

David

Bankis
25th January 2007, 20:29
Using this script on 1800+ Athlon I get only 1 FPS :-(

mpeg2source("C:\Temp\VideoWork\test.d2v", info=3)

AssumeTFF()
MCBob().SelectEven()
LanczosResize(640,480)
RemoveGrain(mode=2)

I guess, there is no way to get better FPS with this script - only way is to use another deinterlacer

Boulder
25th January 2007, 20:30
I'd say that's helluva lot, a lot more than I would expect from an old Athlon!

Bankis
25th January 2007, 22:04
which deinterlacer you would advice - MCBob is too slow for me; which one is next after MCBob in quality range, but faster? ;)

Boulder
25th January 2007, 22:14
SecureBob?