View Full Version : Plain deinterlacing or Bob+SelectEvery: what do you prefer and why?
Chainmax
30th October 2006, 21:25
I get a "can't load ReduceFlicker" error when trying to use MCBob even though I have the dll. If I comment out the ReduceFlicker loading line, the script loads fine. Does MCBob need ReduceFlicker on a default call?
scharfis_brain
31st October 2006, 01:56
if there aren't complaints by AVS there is no need for it.
Didée
31st October 2006, 09:30
Does MCBob need ReduceFlicker on a default call?
No. For v0.3, I've changed defaults to not use any denoising for motion search. Unless MEtempNR is explicitetly set to non-zero, ReduceFlicker is not even constructed in AVS' internal filterchain:
# If requested, do flicker reduction before searching motion vectors
# -------------------------------------------------------------------
(MEspatNR==0.0) ? bobbed : bobbed.Merge(bobbed.minblur(2,uv=3),MEspatNR)
(MEtempNR==0.0) ? last : last.Merge(reduceflicker(2),MEtempNR)
srch=last
Edit:
Chainmax, you're most probably using one of the "newer" versions of ReduceFlicker.dll, for which you also must have AvsRecursion.dll in e.g. /system32.
Explanation here (http://www.avstimer.de.tf/), solution here (http://www.avsrecursion.de.tf/). ;)
Livesms
31st October 2006, 14:25
For v0.3
Could you give all libraries you use with MCBob filter.
I've collected all listed in header except ReduceFlicker but I'm getting error for mt_lut finction in line 73 of MCBob_v03b.avs
Could you upload all needed libraries in one archive.
Didée
31st October 2006, 14:37
Can you upload all needed libraries in one archive.
"Can" (or 'could')? yes. Will? No.
It is stated that masktools v2 is needed, which you'll find here (http://manao4.free.fr/), of which "masktools-v2.0a30" is the latest.
Livesms
31st October 2006, 14:42
#TDeint with EDI
edeintted = last.AssumeTFF().SeparateFields().SelectEven().EEDI2(field=-1)
TDeint(order=1,full=false,edeint=edeintted)
http://dump.ru/files/5/5831594287/1_t.jpg (http://dump.ru/files/1/1996000287/1.jpg)
#MvBob
MvBob().SelectOdd()
http://dump.ru/files/1/114439272/2_t.jpg (http://dump.ru/files/1/197812912/3.jpg) - washed out (blured) track and grass
#MCBob()
MCBob().SelectOdd()
http://dump.ru/files/8/806140967/3_t.jpg (http://dump.ru/files/2/2548607216/2.jpg) - ribbed white track line and other details (bolid)
#MCBob()
AssumeTFF()
MCBob().SelectOdd()
http://dump.ru/files/4/47749181/4_t_1.jpg (http://dump.ru/files/9/998266362/4.jpg)
WorBry
31st October 2006, 18:08
This use just the Parity of Avisynth (which is set not always correct)
Out of interest, in what sort of situations is AVISynth Parity known or prone to set/report field order incorrectly?
Terranigma
31st October 2006, 18:10
WOW! I'm simply blown away by mcbob. I've been waiting for a deinterlacer like this forever, it totally pwns :) ;)
It seems to function like that software the fbi uses to enhance photos
Thanks Didee.
Livesms
31st October 2006, 18:14
WOW! I'm simply blown away by mcbob. I've been waiting for a deinterlacer like this forever, it totally pwns :) :cool:
It seems to function like that software the fbi uses to enhance photos
And I can not see total adv. of McBob in all parts.
Look at three pictures above, especialy into last, produces by McBob - can you see white track line is not line indeed :) and details in bolid is waved.
MvBob is better from that point of view, but MvBob blur (wash out) puctire and track looks not like track - like gray plastic sufrace :)
Terranigma
31st October 2006, 18:27
Well we all no that no deinterlacers are perfect. What I most like about mcbob, is that it doesn't castrate edges like most of the other ones. :P
Chainmax
31st October 2006, 18:38
#MCBob()
MCBob().SelectOdd()
http://dump.ru/files/8/806140967/3_t.jpg (http://dump.ru/files/2/2548607216/2.jpg) - ribbed white track line and other details (bolid)
Read zambelli's post at the top of this page. Try manually setting field order before MCBob and use SelectEven() and see if it makes the output better.
Livesms
31st October 2006, 19:07
Read zambelli's post at the top of this page. Try manually setting field order before MCBob and use SelectEven() and see if it makes the output better.
Thank you.
AssumeTFF() helps and makes picture even better then MvBob (till now rated as best by me).
Terranigma
31st October 2006, 19:39
Thank you.
AssumeTFF() helps and makes picture even better then MvBob (till now rated as best by me).
I'd agree :)
Chainmax
1st November 2006, 02:02
Thank you.
AssumeTFF() helps and makes picture even better then MvBob (till now rated as best by me).
Don't thank me, thank zambelli. He had the idea, after all :).
zambelli
1st November 2006, 10:39
Out of interest, in what sort of situations is AVISynth Parity known or prone to set/report field order incorrectly?
Because if you're reading from AVISource or DirectShowSource, there is no metadata in thouse sources that would indicate the field order (or whether the video is interlaced, for that matter). Default is simply BFF. The only source plugin that I'm aware of that might pass on such metadata to Avisynth is Donald Graft's DGMPGDec for MPEG.
Edit: Actually, DirectShow supports interlaced metadata via the VideoInfoHeader2 interface. I'm not sure if Avisynth is able to take advantage of that though. My guess is: not.
WorBry
1st November 2006, 13:07
Thanks. I've also read around the subject and (think I) understand it bit better now. AssumeTFF and AssumeBFF effectively serve as implicit (or is it explicit) 'verbs' within the AVISynth GetParity command (sounds good anyway :)). In other words, whilst the smart bobbers (MVBob, SecureBob, MCBob) do not require that the source field order is specified in the function settings, they still need to be 'told' what the field order is.
WorBry
1st November 2006, 20:25
I’ve put up a few more short 'test' clips (576i25) sampled from the reference YUV D1 sequences available at
ftp://ftp.crc.ca/crc/vqeg/TestSequences/Reference/
http://rapidshare.com/files/1580597/Test_src3_Musicians_576i25_TFF_YV12_3sec.avi
http://rapidshare.com/files/1581346/Test_src8_Scrolling_Text_576i25_TFF_YV12_3sec.avi
http://rapidshare.com/files/1581954/Test_src9_Rugby_576i25_TFF_YV12_3sec.avi
http://rapidshare.com/files/1582737/Test_src10_Toy_Train_576i25_TFF_YV12_3sec.avi
Like the motor-racing clip they are all TFF and in YV12 (FFDShow-HuffYuv)
I’ve done some comparative tests myself but will let people draw their own conclusions.
Suffice it to say, with MCBob, note the marked reduction in ‘shimmering’ (pattern on shirt of the piano player in the Musicians clip and the Sheep on the wall of the Toy Train clip) to which MVBob, SecureBob and TDeint-EEDI2 are more susceptible. Of course, these aberrations are best observed at 50p and are much less noticeable (if at all) when the outputs are cut down to 25p with SelectEven.
You might also judge the integrity of the numbers and stripes on the shirts of the Rugby Players (e.g. between frames 90 - 110 at 50p). The Scrolling Text clip is a good hunting ground for holes and edge artifacts.
Have fun.
Of course, dont forget to include AssumeTFF before the bobber :D
Edit: Didee - one other thing I might mention is that the last frame of the MCBobbed sequences always seems to mess-up i.e. much residual combing and artifacts
Terka
2nd November 2006, 10:45
what about the speed comparsion (in %) between mcbob, MVBob, SecureBob and TDeint-EEDI2 ?
WorBry
2nd November 2006, 18:37
Having to use the wife's PC (P4 3GHz, 504MB RAM, XP SP2) right now (when she's not looking :sly: ). Using a composite of the above four test clips plus the Racing Car clip (i.e. total 15 sec clip); for a straight deinterlace to 50p HuffYuv-YV12 (i.e. no denoising or resizing), I'm getting:
Bobber Encode Time File Size
(min:sec) (MB)
_________________________________________________
MCBob 0.3b 10:17 206
MVBob (14.09.06) 7:56 219
MVBob (April 06?) 5.15 216
SecureBob (14.09.06) 3:02 205
TDeint-EEDI2 3:07 211
TDeint 0:43 211
scharfis_brain
2nd November 2006, 18:42
yeah, mvbob leaves most residual combing in comparison to Mac Bob ;) that leaves (nearly) none.
zambelli
3rd November 2006, 01:46
Could you add plain TDeint too? I'm nog a big fan of the EEDI2 method. Its picture is too soft which defeats the point of using TDeint in the first place, IMO.
WorBry
3rd November 2006, 15:30
Sure, but I'm away from home for the next day or two.
Terka
3rd November 2006, 18:29
i cant make it working :devil: . please, could someone add a avs file + dlls needed?
Terranigma
3rd November 2006, 18:52
WorBry, what parameters do you usually use with Mcbob, or do you just leave it as Mcbob()?
Edit:
Offtopic.. Sort of: Am I the only one who despises chroma more so that actual interlaced stripes?
Edit 2:
Didée, could you perhaps add in some way it'd be possible to use mcbob as an override file, or tell me how: (Please don't suggest tdeint's Clip2 or edeint parameters, 'cuz It still uses it's own thresholds. It's not adaptive like mcbob)? Thanks.
WorBry
4th November 2006, 06:08
Terka - All of the dll's required are indicated in the MCBob script.
# - 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
If you wish, you can copy all of the required dll's into the same folder (created in your AVISynth Plugins folder) as the MCBob script (saved as AVS file) and load them from the MCBob script e.g.
LoadPlugin("mvtools.dll")
LoadPlugin("mt_masktools.dll")
LoadPlugin("EEDI2.dll")
LoadPlugin("RemoveGrainSSE2.dll") *
LoadPlugin("RepairSSE2.dll") *
LoadPlugin("ReduceFlickerSSE2.dll") *
LoadPlugin("MedianBlur.dll")
*As per the SSE capability of your PC.
Works for me.
Terranigma - just MCBob()
Didée
4th November 2006, 07:15
Edit:
Offtopic.. Sort of: Am I the only one who despises chroma more so that actual interlaced stripes?
Can't answer, because I don't understand the question.
Does this aim at "using a cheaper/faster method to deinterlace chroma planes" ?
Edit 2:
Didée, could you perhaps add in some way it'd be possible to use mcbob as an override file, or tell me how: (Please don't suggest tdeint's Clip2 or edeint parameters, 'cuz It still uses it's own thresholds. It's not adaptive like mcbob)? Thanks.
Highly unclear. What d'you wanna do? Something is your "basic" deinterlacer, and it seems you want to override its decisions with something else. Where in that chain do you see MCBob? Start, middle, end?
(E.g., the statement "using Undot() as an override file", this would mean ... what?:confused:)
Sorry, but I don't get you in all points. Try using more words to describe what are the problems, and/or what you want to do or achieve.
Terka
4th November 2006, 14:44
cant load dll
LoadPlugin(PluginPath + "ReduceFlickersse2.dll")
neither
LoadPlugin(PluginPath + "ReduceFlicker.dll")
Didée
4th November 2006, 15:04
cant load dll
LoadPlugin(PluginPath + "ReduceFlickersse2.dll")
neither
LoadPlugin(PluginPath + "ReduceFlicker.dll")
Follow the links in this post (http://forum.doom9.org/showthread.php?p=894458#post894458). You're probably missing AvsRecursion.dll.
On top of that, simply forget about ReduceFlicker and MEtempNR. In the way it's currently done, it's hardly of any use, anyway ...
WorBry
4th November 2006, 15:17
Have a look at the installation notes in the ReduceFlicker readme:
All three versions of the plugin are dynamically linked and require msvcr71.dll (for Microsoft specific stuff) and AvsRecursion.dll (for recursion within Avisynth). If none of the above dlls works, probably one of these two libraries is missing. They should usually be installed in C:\windows\system32
The readme gives a link for the AvsRecursion.dll.
Edit - I see Didee beat me to it.
Terka
4th November 2006, 15:41
it was not the old AvsRecursion.dll, but old mvtools. thanks 4 help!
Terka
4th November 2006, 16:54
tried the speed, but doesnot correspond to WorBry
mvbob 1:34
mcbob 6:03
316frames DV->Huff celeron 2.5 1GB RAM
---------------------
SetMemoryMax(400)
PluginPath = "C:\Program Files\AviSynth\plugins\"
Import("C:\Program Files\AviSynth\plugins\mcbob.avs")
LoadPlugin(PluginPath + "mvtools.dll")
LoadPlugin(PluginPath + "RepairSSE3.dll")
LoadPlugin(PluginPath + "masktools.dll")
LoadPlugin(PluginPath + "eedi2.dll")
LoadPlugin(PluginPath + "RemoveGrainsse3.dll")
LoadPlugin(PluginPath + "MedianBlur.dll")
avisource("D:\4DV.avi")
MCBob() #.SelectOdd()
WorBry
4th November 2006, 17:43
Could you add plain TDeint too? I'm nog a big fan of the EEDI2 method. Its picture is too soft which defeats the point of using TDeint in the first place, IMO.
Added to results above
tried the speed, but doesnot correspond to WorBry
mvbob 1:34
mcbob 6:03
What version of MVBob are you using?
The latest public release version (14.09.06)
http://rapidshare.com/files/1978232/mvbob.avs
is somewhat slower than previous versions, such as this one (from April I think):
http://rapidshare.com/files/1978442/mvbob.avs
Again I’ve included the latter in the encoding speed/file size comparison above
Terranigma
4th November 2006, 18:03
Can't answer, because I don't understand
Highly unclear. What d'you wanna do? Something is your "basic" deinterlacer, and it seems you want to override its decisions with something else. Where in that chain do you see MCBob? Start, middle, end?
Didée, Look Here (http://forum.doom9.org/showthread.php?t=117869) :D
WorBry
4th November 2006, 18:49
I can imagine other uses for such a function, but why would you want to apply a deinterlacer to selected frames? Where does this AdaptOvr parameter reside?
Terranigma
4th November 2006, 20:12
1. I can imagine other uses for such a function, but why would you want to apply a deinterlacer to selected frames?
2. Where does this AdaptOvr parameter reside?
1. To avoid having a deinterlacer processing progressive frames. Usually on clean ntsc sources, bad frames usually pops up around scene changes, and I'd only like to have those frames processed, not the entire clip. :)
2. There isn't one yet, I'm requesting it. :D
foxyshadis
4th November 2006, 20:19
So you want a comb detector and remover. Well, look at the Vinverse fuction. (Seems to work better than Tdeint(full=false) in the minimal testing I've done, less to tweak too.)
Terranigma
4th November 2006, 20:32
So you want a comb detector and remover. Well, look at the Vinverse fuction. (Seems to work better than Tdeint(full=false) in the minimal testing I've done, less to tweak too.)
Never tried vinverse, I'll try it sometime later today, thanks :)
The way I wanted the adaptovr to function, was not actually able to detect comb; Just a simple, easier, more flexible tool then applyrange. But you do bring up an interesting addition that could be added to the adaptovr option (to detect combing). I'm thinking "adaptovr" could be used for other uses as well besides deinterlacing :)
WorBry
4th November 2006, 21:02
1. To avoid having a deinterlacer processing progressive frames. Usually on clean ntsc sources, bad frames usually pops up around scene changes, and I'd only like to have those frames processed, not the entire clip. :)
Fair enough - since this thread is/was somewhat focussed on deinterlacing interlaced video, I'd assumed that's what you were referring to. With that I'll gracefully butt out :D
Terka
6th November 2006, 15:44
the latest mvbob, but the mc bob is 4times! slower
Terranigma
6th November 2006, 18:22
the latest mvbob, but the mc bob is 4times! slower
slow = quality.
I'd prefer that mcbob was slow as possible :sly:
Chainmax
6th November 2006, 19:17
That's an odd choice, I'd rather have it turn as good a result as possible regardless of speed :p. Speed and quality are not necessarily exclusive after all.
Terranigma
6th November 2006, 19:22
That's an odd choice, I'd rather have it turn as good a result as possible regardless of speed :p.
That's what I was getting at, but For that, it'd usually take longer; like when compressing videos and choosing a higher motion search method :P
Chainmax
7th November 2006, 01:16
Of course, you're right. Hence, the mocking smiley I used in the reply :).
Terka
7th November 2006, 09:50
but WorBry had similar speed for mcbob and mvbob:
Bobber Encode Time File Size
(min:sec) (MB)
_________________________________________________
MCBob 0.3b 10:17 206
MVBob (14.09.06) 7:56 219
MVBob (April 06?) 5.15 216
SecureBob (14.09.06) 3:02 205
TDeint-EEDI2 3:07 211
TDeint 0:43 211
my test: mcbob 4times slower! then mvbob - strange
WorBry
7th November 2006, 11:18
Terka,
I've rechecked my tests, with the same results. I'll do some further tests with DV and other interlaced material...when I have a bit of time. Out of interest, what encoding times do you get with SecureBob, TDeint-EEDI2 and TDeint, using your 316 frame DV clip?
Edit: Here are the results with a 30 sec 'home' DV (Pal, Type 2) clip, again deinterlaced to 50p HuffYuv-YV12 (FFDShow) with no denoising or resizing. The DV decoder was Cedocida with 'forced' YV12 output and 'MPEG-2 interlaced' YV12 sampling.
Bobber Encode Time File Size
(min:sec) (MB)
_________________________________________________
MCBob 0.3b 19:86 379
MVBob (14.09.06) 15:26 400
MVBob (April 06?) 10:11 393
SecureBob (14.09.06) 5:50 377
TDeint-EEDI2 5:58 382
TDeint 1:17 378
The results, in terms of relative encoding speed and file size, are pretty similar to those that I posted for the TFF 576i25 YV12 clip earlier in this thread.
Chainmax
7th November 2006, 22:15
Do you notice image quality differences between SecureBob and TDeint+EEDI2? If so, can you describe them?
scharfis_brain
7th November 2006, 23:47
TDeint + EEDI2 leaves motion artifacts with complicated footage. securebob tries to avoid them byusing a far longer temporal window.
However this is exchanged by bobbing everything that 'could' be possibly a moving area. (unless securebob's static detection isn't that bad at all)
Chainmax
8th November 2006, 00:11
Could this alleged extra bobbing result in a smoother image?
scharfis_brain
8th November 2006, 00:29
huh? dunno what you mean...
motion is only affected, when there are weaving artifacts in one of both.
so try and see yourself.
zambelli
8th November 2006, 01:21
Edit: Here are the results with a 30 sec 'home' DV (Pal, Type 2) clip, again deinterlaced to 50p HuffYuv-YV12 (FFDShow) with no denoising or resizing. The DV decoder was Cedocida with 'forced' YV12 output and 'MPEG-2 interlaced' YV12 sampling.
Any kind of performance data should probably also include your processor model and speed, and the instruction sets it supports. ;)
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.