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.

 

Go Back   Doom9's Forum > Capturing and Editing Video > Avisynth Usage

Reply
 
Thread Tools Search this Thread Display Modes
Old 17th June 2008, 14:40   #1  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 536
SD upscaling and Bobbers

Hello everyone,

today i upscaled (576i) material to HD (1080p). I used this script:

Code:
qtsource("somefile",mode=2,raw="2yuv")
mvbob()
selectevery(2,1)
lanczosresize(1920,1080)
it looks pretty good and is pretty slow ~1,8fps

While researching for a descent interlacing-technique i found mvbob on scharfi's website. But is this the "state of the art" method? Are there other bobbers which are faster with same quality? Or is there a totaly different method for upscaling SD?

I'd like to have a list with all bobbers in their latest version and a comparison. Maybe we could collect infos in this thread and then i write a new thread with a list of all the different bobbers. Or is there such a list out there?

regards,
hanfrunz
hanfrunz is offline   Reply With Quote
Old 17th June 2008, 15:01   #2  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
MCBob, slower & better quality
TempGaussMC, a bit faster & better quality (for some sources, more than mcbob)
Tdeint(mode=1), a lot faster, but worse
Tdeint + external interpolator & motion mask i.tdeint(1,edeint=i.nnedi(-2),emask=i.tmm(1)), faster, lower quality
and a few others like yadif(mod)
__________________
AnimeIVTC() - v2.00
-http://boinc.berkeley.edu/-
Let all geeks use their incredibly powerful comps for the greater good (no, no, it won't slow your filtering/encoding :p)
thetoof is offline   Reply With Quote
Old 17th June 2008, 20:47   #3  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,760
The way I see it (for most content)

MCBob > TDeint (with external interpolation + motion masking) > YADIFmod > TDeint > YADIF

TDeint by itself will break sometimes, and let stray pixels through in high motion/ flashing / flickering scenes, whereas plain YADIF tends not to.

I haven't even heard of TempGaussMC - it must be new

But, since you're going for upscaling and high quality, I would say MCBob is kind of your best bet. It really, really impresses me.

Last I checked, it multithreads ok, so make sure you're doing that. You do have a multi-core machine, if you're encoding HD - right?

I would say also that for such large upscaling, a different resize, like Blackman, Spline[16/36], or maybe lanczos4 (or maybe eedi2 if you want to get really crazy /slow with it )

Honestly though, I think you're usually better off (with true interlaced sources) bobbing to 60p, and then upscaling to 720p (or just keeping 480p). The extra motion fluidity is nice.

Finally, SelectEvery(2,1) is the same as SelectOdd().

~MiSfit
Blue_MiSfit is offline   Reply With Quote
Old 18th June 2008, 04:00   #4  |  Link
WorBry
Registered User
 
Join Date: Jan 2004
Location: Here, there and everywhere
Posts: 1,184
Quote:
Originally Posted by Blue_MiSfit View Post
...or maybe eedi2 if you want to get really crazy /slow with it )
or maybe NNEDIResize_YV12 plus a light LimitedSharpen (using internal resize) if you want even crazier/slower......for 576/50p to 720/50p that is.

http://forum.doom9.org/showthread.ph...26#post1045226

I agree with Blue_Misfit, upscaling from SD to 1080p seems a bit overly ambitious, quality wise.
__________________
Nostalgia's not what it used to be

Last edited by WorBry; 18th June 2008 at 04:41.
WorBry is offline   Reply With Quote
Old 18th June 2008, 10:22   #5  |  Link
2Bdecided
Registered User
 
Join Date: Dec 2002
Location: Yorkshire, UK
Posts: 1,673
Sometimes the cleverer you try to be, the more artificial the result looks.

addgrain can help at the end sometimes.

Not sure why you are halving the temporal resolution.

Cheers,
David.
2Bdecided is offline   Reply With Quote
Old 18th June 2008, 11:40   #6  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 536
Okay i tried to use MCBob, but i get different errors (removeflicker.dll can't be loaded, mt_??? not found...). Can i download a MCBob-package (needi-version) with all plugins somewhere? Or can someone give a list of all links with working versions of each plugin?

@2Bdecided
after mvbob() i got 50fps, but i want 25fps. The scenes will be mixed with real 25p material, so i need the same framerate and progressive material.

hanfrunz

Last edited by hanfrunz; 18th June 2008 at 11:44.
hanfrunz is offline   Reply With Quote
Old 18th June 2008, 11:46   #7  |  Link
2Bdecided
Registered User
 
Join Date: Dec 2002
Location: Yorkshire, UK
Posts: 1,673
Oh, you want to mix SD and 1920x1080p25 (HD) material - and this is the script for up-convering the SD to match the resolution and framerate of the HD?

I collected all the links to the mcbob required filters here:
http://www.hv20.com/showthread.php?t=2876
...but that's for the EEDI2 version. You need to grab the NNEDI version from elsewhere (and NNEDI itself).

Cheers,
David.
2Bdecided is offline   Reply With Quote
Old 18th June 2008, 11:53   #8  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
You can also get all the up-to-date functions in the requirements.7z of animeivtc.
Use selecteven() or selectodd() to cut your temporal resolution by half.
__________________
AnimeIVTC() - v2.00
-http://boinc.berkeley.edu/-
Let all geeks use their incredibly powerful comps for the greater good (no, no, it won't slow your filtering/encoding :p)
thetoof is offline   Reply With Quote
Old 20th June 2008, 11:59   #9  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 536
so i got mcbob() to work. thanks to thetoofs requirements.7z.
BUT how to i process YUY2-Video? It says: "only planar color spaces are supported" Is there a YUY2 version of MCBob or is it impossible, because some of the used plugins can't process YUY2?

regards,
hanfrunz
hanfrunz is offline   Reply With Quote
Old 20th June 2008, 12:09   #10  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,394
Not impossible, but hard. See here.

Feel free to make a YUY2 version. Me, I won't.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 20th June 2008, 12:12   #11  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 536
OMG i'll have a look at the code...
hanfrunz is offline   Reply With Quote
Old 20th June 2008, 12:17   #12  |  Link
GodofaGap
Registered User
 
Join Date: Feb 2006
Posts: 823
Of course you can also ask yourself if you really need it to work in YUY2.
GodofaGap is offline   Reply With Quote
Old 20th June 2008, 14:08   #13  |  Link
hanfrunz
Registered User
 
hanfrunz's Avatar
 
Join Date: Feb 2002
Location: Germany
Posts: 536
Yes definitely. My source is Digital Betacam which is 4:2:2 and if i resize in yv12 i would loose half of my color resolution. Which is bad enough because of 4:2:2.
hanfrunz is offline   Reply With Quote
Old 20th June 2008, 14:15   #14  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,394
Code:
YUY2source
yd  = Yadif(mode=1)
mcb = ConvertToYV12(interlaced=true).MCBob().ConvertToYUY2()

mcb.MergeChroma(yd)
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 20th June 2008, 14:48   #15  |  Link
2Bdecided
Registered User
 
Join Date: Dec 2002
Location: Yorkshire, UK
Posts: 1,673
Oh Didée, how could you make his life so easy? Surely this is much better...

Code:
YUY2source

ui=utoy()
vi=vtoy()

up=ui.ConvertToYV12(interlaced=true).mcbob().ConvertToYUY2()
vp=vi.ConvertToYV12(interlaced=true).mcbob().ConvertToYUY2()

yp=last.converttoyv12(interlaced=true).mcbob().ConvertToYUY2()

ytouv(up,vp,yp)


(Actually, it crashes for me - not sure why).

Cheers,
David.
2Bdecided is offline   Reply With Quote
Old 20th June 2008, 16:13   #16  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,394
MCBob uses fixed idx values, so it can be called only once in a script. Your script crashes because of idx collisions.

To use MCBob (or TempGaussMC) on a YUY2 source, a possible trick would be this:

Code:
c = YUY2source
stackhorizontal(c,c.UtoY(),c.VtoY())

ConvertToYV12(interlaced=true)
MCBob
ConvertToYUY2()

YtoUV( crop(width/2,0,width/4,height), crop(width-width/4,0,width/4,height), crop(0,0,width/2,height) )
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Old 20th June 2008, 20:53   #17  |  Link
Gavino
Avisynth language lover
 
Join Date: Dec 2007
Location: Spain
Posts: 3,407
Quote:
Originally Posted by Didée View Post
MCBob uses fixed idx values, so it can be called only once in a script.
That seems a pity. Can you elaborate on what the problem is? Perhaps someone here can suggest a solution.

Since MCBob is implemented as a function, I'm surprised it can't be made robust against multiple instances interfering with each other. Is it a threading problem? Or a problem in one of the plugins it uses?
Gavino is offline   Reply With Quote
Old 20th June 2008, 22:30   #18  |  Link
scharfis_brain
brainless
 
scharfis_brain's Avatar
 
Join Date: Mar 2003
Location: Germany
Posts: 3,637
It is just the idx-issue.

One could open mcbob() to allow to give an offset for the idx used within mcbob()

but I am to lazy to implement it.
__________________
Don't forget the 'c'!

Don't PM me for technical support, please.
scharfis_brain is offline   Reply With Quote
Old 23rd June 2008, 14:40   #19  |  Link
LaTo
LaTo INV.
 
LaTo's Avatar
 
Join Date: Jun 2007
Location: France
Posts: 701
Quote:
Originally Posted by Gavino View Post
That seems a pity. Can you elaborate on what the problem is? Perhaps someone here can suggest a solution.

Since MCBob is implemented as a function, I'm surprised it can't be made robust against multiple instances interfering with each other. Is it a threading problem? Or a problem in one of the plugins it uses?
open the mcbob.avsi and replace this line "idx_1 = 10" by "idx_1 = rand()"...
LaTo is offline   Reply With Quote
Old 23rd June 2008, 16:51   #20  |  Link
Didée
Registered User
 
Join Date: Apr 2002
Location: Germany
Posts: 5,394
Quote:
Originally Posted by LaTo View Post
"idx_1 = rand()"
The court issues twenty strikes on the plantars for putting contingency into a supposed-to-be-deterministic context.
__________________
- We´re at the beginning of the end of mankind´s childhood -

My little flickr gallery. (Yes indeed, I do have hobbies other than digital video!)
Didée is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 20:47.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2020, vBulletin Solutions Inc.