Log in

View Full Version : MCBob


Pages : 1 2 3 [4]

Didée
22nd December 2009, 19:31
That source is progressive with phase shift. You don't want to use MCBob on that. Not at all. You want to use source.TFM() there. Better quality, less artifacts, and a billion times faster.

(edit - removed comment about source1 - both sources are of same type.)

cy
22nd December 2009, 20:09
I would have sworn it was interlaced.
What on earth is "progressive with phase shift"?
And what is the purpose of it?
Another weapon in the movie industries fight against quality?

Edit: And how do you tell the difference?
What do i look for?

Edit2: Just tried a TMF() and it doesn't look better to me.
On the contrary, there are many scenes that have residual combing, worse than i ever saw with MCBob on this source.
Some scenes look alright though, and maybe slightly better than the MCBob ones, but overal it's worse imo.

screenie here (http://users.edpnet.be/cy/screenies.rar)

Edit3: After some more pixel peeping...there's definately more combing left with TMF than with MCBob, most of the time.
There is however less aliasing in certain straight lines. I guess because there's no bobbing and eedi2 (or nnedi2) involved. Not sure what to think of this all though. The TMF thing is of course much faster.
Still haven't figured out what this phase shifting thing is. I do know however, it should be forbidden by law. As should interlacing.

Edit4: Am i correct in thinking the stream was progressive to begin with, then split up into fields and then weaved again, but 1 field "temporally" shifted. Like, frame 1= field1 and field3, frame2=field2 and field4...
Is this correct?
If so, then what is the purpose of it? To make our lives more miserable?

Didée
22nd December 2009, 23:26
Harrr, seems I have to start with Adam and Eve? Yaba-daba-doooo .....


In a progressive frame, two fields do form the full frame.

Progressive / phase shift means that the two fields that belong to one progressive frame are not present in one frame, but in two different frames.


Progressive:

a b c d e
A B C D E


Progressive/phase shift:

a b c d e
B C D E F


On your samples, try

mpeg2source("source1.d2v")
doubleweave().selectodd()

All interlacing is gone, since this gets the two belonging-together fields from two frames, and puts them together in one frame.

This case is "hard" or "constant" phase shift. The usual case is "dynamic" phase shift, where the distribution of fields is changing over time. Sometimes they're shifted, sometimes they're not, sometimes they're shifted the other way round ... For these cases of dynamic phase shift, it is pretty unreasonable to put everything together manually. For this, filters like TFM or Telecide do the job, they search automatically for those fields that fit together.


After putting together the fields, residual combing still may be present. Par ex, your samples do so. The reason is (mostly) an encoding issue, due to the fact that the fields which belong together were not encoded together (i.e. progressive), but independently (i.e. interlaced). (In mpeg-2 world, interlaced encoding is always less effective and more erroneous than progressive encoding.)


Hence, try this on your samples:

mpeg2source("source1.d2v")
doubleweave().selectodd()
Vinverse()


In practice, you normally would swap doubleweave/selectodd with TFM or Telecide, in order to avoid checking the whole source manually for changes of the phase shift. I can't tell if you need to tweak parameters for TFM/Telecide, or if their defaults are sufficient and following them with Vinverse is enough. Just try and see.

cy
23rd December 2009, 00:08
Alright..got it.
And thank you for your patience to explain things to me (and others) which i know are very basic to you.
For the average guy, this stuff is difficult you know.
It seems, all i ever do is try to fix my shoddy dvd's.

SubOne
6th January 2010, 13:41
I read through this entire thread, and I am confused beyond all recognition. All I want to do is convert 60i footage to 60p. (Or maybe 120p). Which version should I download? I have a Core 2 Duo overclocked to 4 GHz and 4GB RAM. I have time on my hand, looking for the best possible quality, but it shouldn't take an hour for a second of footage or so.

So, yes, I would be grateful if someone could direct a relative newbies like us in the right direction. 60i to 60p, what do I download (which version) for the Plugin folder, and what is the final Avisynth script like (after AVISource)?

BTW, I have downloaded all the prerequisites in the "latest" mod, i.e. v03u4, so I believe I am set to download the right version/mod and a simple script.

thetoof
6th January 2010, 19:34
If you want quality and flicker-free output, check http://avisynth.org/mediawiki/TempGaussMC (newest versions near the end of the discussion thread)

Revgen
6th January 2010, 21:53
^Some people don't want denoising. Even with Didee's noise-reduction recommendations, it still removes noise.

thetoof
6th January 2010, 22:46
Granted, but he only asked for quality bobbing and mentioned being a "relative newbie", which means he was most likely unaware of tgmc. Being the newest hq bobber, I felt it was worth posting about it.

SubOne - As for MCBob usage if you want to use it in the end, put all the requirements .dll in the plugins folder of avisynth (program files), as well as the .avs scripts renamed to .avsi for autoload and call it this way:

xxxsource
mcbob()

that's it

SubOne
7th January 2010, 06:11
Granted, but he only asked for quality bobbing and mentioned being a "relative newbie", which means he was most likely unaware of tgmc. Being the newest hq bobber, I felt it was worth posting about it.

SubOne - As for MCBob usage if you want to use it in the end, put all the requirements .dll in the plugins folder of avisynth (program files), as well as the .avs scripts renamed to .avsi for autoload and call it this way:

xxxsource
mcbob()

that's it

Thanks, that's what I did! I was wondering how to get 120p though. Or will Mflow on Mvtools on 60p do that better?

Will try TGMC, but am not looking for denoising of any sort.

thetoof
7th January 2010, 06:28
sure TGMC denoises a bit, but it is not a denoiser; it's a high quality bobber - probably the most stable around, the price being losing some noise/grain.

Why do you need 120fps?? 60 is already quite fluid.

Read these 2 posts about bobbing vs framerate conversion http://forum.doom9.org/showthread.php?p=1358568#post1358568

It's in the same thread as tgmc btw.

2Bdecided
7th January 2010, 14:26
An ideal bobber has got to do something with noise though.

If it works really well on the picture content (i.e. restoring all the "missing" spatial and temporal information), but leaves the noise as it is, then the noise will have half the spatial or temporal resolution of the image!

So you've either got to add noise to make it match, or remove noise to make it go away.

IMO. YMMV! ...but don't argue until you've thought it through - this is a deceptively complex point. It's one of the reasons why dumb bob looks so soft - the perceived resolution of any noise is decreased dramatically (as well as the wanted image, of course!).

Cheers,
David.

SubOne
7th January 2010, 20:00
sure TGMC denoises a bit, but it is not a denoiser; it's a high quality bobber - probably the most stable around, the price being losing some noise/grain.

Why do you need 120fps?? 60 is already quite fluid.

Read these 2 posts about bobbing vs framerate conversion http://forum.doom9.org/showthread.php?p=1358568#post1358568

It's in the same thread as tgmc btw.

I was actually going for a super slow motion. But of course, interpolation has nothing to do with bobbing, but I was wondering if it was a part of these mods.

Anyway, I tried a vast variety of bobbers, and I am impressed with TGMC beta 1 mod 2. Though it is still very slow as I am working with full HD 1080p lossless content. I have put Edimode=NNEDI2, Smode=0 and Sharpness=0, which speeds up considerably, but still, 5 hours for a 3.5 minute clip is painfully slow. Any suggestions? Or is this the best I can do? As I said, I don't want to compromise on quality too much.

On a side note, if I were to interpolate this 60p footage to 120p, would you suggest Mflowfps?

Didée
7th January 2010, 21:11
Don't ask me for handling of full-HD content - my rig does a panic shutdown when faced with such. :D

Perhaps one thing - with 1080i footage, you might want to try blocksize=32, maybe with overlap=8. This might suffice, and should be a bit faster. Also, as mentioned several times, use small temporal radii, like TGMC(1,1,1,...) or even (1,1,0,...)

In respect to doing Interlaced -> TGMC -> SloMo(MFlowFPS), some days ago I used the following small mod within TGMC as a quick shortcut:
[...]

# apply sharpness limiting (SLmode 3|4), or has "draft" been requested?
stage3 = (draft==2) ? t .subtitle("Draft 2")
\ : (draft==1) ? t1 .subtitle("Draft 1")
\ : (SLmode==3) ? ( (SLrad<2) ? stage2.repair(edi,1) : stage2.repair(stage2.repair(edi,12),1) )
\ : (SLmode==4) ? stage2.mt_clamp(pmax,pmin,Sovs,Sovs,U=3,V=3)
\ : stage2

# factor = 4 # => 1/4 speed
#---------------------------------
# sup33=stage3.MSuper(pel=_pel,sharp=_shrp)
# stage3 = stage3.MFlowFPS(sup33,bvec1,fvec1,num=factor*FramerateNumerator(edi),den=FramerateDenominator(edi)).assumefps(Framerate(edi))

# if "border" was active, crop it back again
(border) ? stage3.crop(0,4,-0,-4)
\ : stage3

[...]

Didée
7th January 2010, 21:18
{explaining the noise/bob dilemma}
I thought it through, but won't argue ... since I'm completely with you here. That post made my day. Thank you! :)

SubOne
8th January 2010, 10:32
Thanks a lot Didee. blocksize=32 works like a charm, though small radii leaves weird artifacts of sorts. Perhaps because there's quite a bit of motion in some places. Speed is fine. Painfully slow, but the timing is perfect with my sleep pattern. :)

wqcr
8th April 2010, 14:39
Hi,
I have packed all the needed stuff to work with MCBob to single ZIP file. Useful for total newbies, just unpack everything to your Avisynth plugin directory and call MCBob from your script. I also added NNEDI version - function MCBobNNEDI(). (Maybe someone did this already, in this case, just ignore or delete my post) :)

Link (http://dl.dropbox.com/u/861828/other/mcbob_plugins.zip)

PS: Thank you very much for this deinterlacer!

Terka
13th April 2010, 19:38
Hi,
correct me if im wrong when reading the mcbob script


alt_1 = MFlowInter(bobbed_Clip,bw_vec2,fw_vec2,time=50.0,thSCD1=64*18,thSCD2=227)
looks like wrong. probably should be

alt_1 = bobbed.MFlowInter(srch_super ,bw_vec2,fw_vec2,time=50.0,thSCD1=64*18,thSCD2=227)
am i correct and is this a bug, or i am mistaken?

Terranigma
28th April 2010, 00:37
Well today, I decided to update my unofficial mcbob script again to include more interpolator types other than nnedi2, so now it includes all 3 versions of the nnedi interpolator (nnedi, nnedi2, nnedi3) + EEDI2, which is controlled by "EDIType".

Usage: "MCBobU"
EEDI2 = EDIType 1
NNEDI = EDIType 2
NNEDI2 = EDIType 3
NNEDI3 = EDIType 4

Also added the "maxd" parameter for EEDI2, and nsize/qual for NNEDI2/3

Download (http://www.zshare.net/download/754581419c33ba78/)


nnedi3 can be downloaded here (http://bengal.missouri.edu/~kes25c/nnedi3.dll)

Terranigma
3rd May 2010, 07:00
Well here we go again. This will be my last update for this script in a while (until there's some drastic changes such as a MVTools3?). This time, I changed the way selecting interpolators work. It's now handled by a string; the same way as it functions in TempGaussMC, e.g. EdiMode="nnedi2" instead of EDIType=3. Also cleaned up the script a bit. Read the script in a text editor to see what's been altered.

The main purpose for updating this script is to support tritical's new nnedi3 (beta) interpolator, and any additional parameters that may arise, and last night, tritical updated his nnedi3 filter with a new adjustable parameter.. nns (which i've added to the script). You can check out tritical's post about the change here (http://forum.doom9.org/showthread.php?p=1396771#post1396771), and can alternatively download the mcbob script with the latest change here (http://www.zshare.net/download/7566822791516601/).

ajp_anton
23rd August 2010, 19:33
Why does the script still use the function VinverseD when vinverse.dll is included in the package?
I got ~10% speed increase just by removing those "D"'s from the script, and I can't see any difference in the output.

Didée
23rd August 2010, 20:48
Because I don't care anymore about this dinosaur. MCBob contains some nice technical tidbits, but the concept as a whole is flawed.

ajp_anton
23rd August 2010, 21:41
I was talking about the scripts posted by Terranigma. And MCBob still gives me the best results on some videos.

Terranigma
24th August 2010, 00:24
I was talking about the scripts posted by Terranigma. And MCBob still gives me the best results on some videos.

There's subtleties--although minute at best--that made me keep the slower Vinverse in use for MCBob. Mainly it has to do with borders specifically. I don't know what specific changes tritical (porter of Vinverse.dll) employed to get an extra boost out of Vinverse (other than porting it to an avisynth filter dll), but sometimes, depending on the source, the top border gets blurred a bit.

Here's an example:

Vinverse by Didée:
http://a.imageshack.us/img839/8807/vinversedide.png

Vinverse by tritical:
http://a.imageshack.us/img214/5654/vinversetritical.png

Also, by default (iirc), the original version of Vinverse is a tad bit stronger than Vinverse.dll

Livesms
4th February 2012, 18:18
Any updates for McBob since Terranigma posted MCBobUv5.7zip ?

real.finder
2nd July 2020, 05:13
update u7 https://raw.githubusercontent.com/realfinder/AVS-Stuff/Community/avs%202.5%20and%20up/MCBob.avsi

HBD and new things