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 5th September 2008, 01:10   #1  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
Is there a more *correct* way to IVTC? I can't seem to find one.

Hello friends - long time reader, first time poster; I'll try to keep this short. And though I have scoured the forums, I apologize in advance for my poor scouring skills if this has already been covered.

Legit TV-show DVD. DGIndex reports the VOB is NTSC, interlaced, 29.97 footage - however, inspecting frame-by-frame reveals a 3:2 (p,p,p,i,i,) pulldown in the video.

[Tangential confusion: Please correct me if this is wrong, but I was under the impression that pulldown should be seen in telecined material from a 24p source, and threrefore the frames should be flagged as such (just like a movie, or other 24p TV shows like Arrested Development that do get recognized as film in DGIndex), so it should be fairly trivial to get back the 24p source. Confused, I chose the IVTC route.]

Very straightforward IVTC script...
video=MPEG2source("episode_honor-flags.d2v")
audio=NicAC3Source("episode_honor-flags.ac3")
audiodub(video,audio)
Telecide()
Decimate()
...and I'm noticing some occasional combing (mostly scene changes), and regular residual combing on smaller scene details. I increased combing sensitivity with Telecide(vthresh=40) (default is 50) - this mostly eliminated scene-change artifacts, but I still see the residual combing in frames.

Main confusion: So the output looks pretty good, but what I guess I don't understand is why I had to make that adjustment at all - for example, what will a DVD player hooked up to a progressive TV (basically every HDTV) do? This is a very common setup and I've never noticed combing artifacts when viewing this way. Does it just *know* better than Telecide() how to handle the interlaced parts of the video? And if the source was really 24p, why is this non-trivial? Am I just missing something?

The final output will be on an HDTV (eventually one that supports native 24p) through some kind of HTPC/streaming setup that I haven't decided on yet. Is there a more recommended way do what I'm trying to do?

Thanks!
wst is offline   Reply With Quote
Old 5th September 2008, 01:16   #2  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
Looks like hard pulldown to me.
AnimeIVTC(mode=1)
__________________
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 5th September 2008, 01:34   #3  |  Link
Guest
Guest
 
Join Date: Jan 2002
Posts: 21,901
You need to post a link to an unprocessed source sample of a problematic section if you want us to do anything other than guess.
Guest is offline   Reply With Quote
Old 5th September 2008, 03:43   #4  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
Good point, neuron2 - how many frames is enough? 100 okay?
wst is offline   Reply With Quote
Old 5th September 2008, 03:47   #5  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
More than enough. Simply provide us the section that is the trickiest to IVTC.
__________________
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 5th September 2008, 04:51   #6  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,986
I'm waiting for the sample

But, without seeing it - here's my brute-force filterchain that usually works perfectly:

Code:
TFM.Vinverse.TDecimate
Vinverse comes from the DLL, not the older version that was part of MVBob (I think???)

~MiSfit
__________________
These are all my personal statements, not those of my employer :)
Blue_MiSfit is offline   Reply With Quote
Old 5th September 2008, 04:58   #7  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
I'm actually remote to my main computer and was having cutting the VOB, so pardon the 10MB file - best I could do quickly:

http://www.mediafire.com/?aibkmretaek

thetoof, it was difficult to make cuts remotely connected, so i'll have to repost in the morning if this doesn't provide anything useful. so this desn't include the clearly noticeable artifacts i mentioned, but i bet the peoples' faces in the crowd have minor combing artifacts if you ivtc look closely. i know that's splitting hairs, but if this was telecined from a 24p source, shouldn't it *always* IVTC perfectly back to 24p?
wst is offline   Reply With Quote
Old 5th September 2008, 07:13   #8  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
As I thought, it's hard telecine.
From this (kinda old, but still very useful) guide: "Hard" 3:2 pulldown. 3:2 pulled down field pattern but encoded as interlaced (pulldown was applied prior to MPEG encoding). Often you have a complete movie that is hard pulldowned; it can be IVTC'ed after doing non-FORCE FILM, but cannot be FORCE FILM'ed.
Code:
mpeg2source("wonky_telecine.d2v")
animeivtc(mode=1,aa=0)
__________________
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 5th September 2008, 09:01   #9  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,986
Any particular reason to use AnimeIVTC versus plain old TFM.Vinverse.TDecimate?

It worked perfectly fine on this sample

~MiSfit
__________________
These are all my personal statements, not those of my employer :)
Blue_MiSfit is offline   Reply With Quote
Old 5th September 2008, 12:21   #10  |  Link
Nightshiver
Quality Freak
 
Join Date: Jun 2007
Location: Area 52
Posts: 597
Because it works? Any particular reason to use TFM.Vinverse.TDecimate versus AnimeIVTC? It's a matter of preference, so everyone should be entitled to give whatever explanation they want instead of a universal one. Variety is good.
Nightshiver is offline   Reply With Quote
Old 5th September 2008, 12:47   #11  |  Link
martino
masktools2 (ab)user
 
martino's Avatar
 
Join Date: Oct 2006
Location: PAL-I :(
Posts: 235
I think he was asking for actual reasons why one should use a over b and not a counter question...
__________________
My x264 builds (win32 only up to rev965) and useless AviSynth functions -- use at your own risk
martino is offline   Reply With Quote
Old 5th September 2008, 15:50   #12  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
Okay, so it's definitely a hard pulldown - thank you for the confirmation. So a hard pulldown will never have flags.

Can you guys give some more current feedback, or opinions based on your own experiences with different IVTC algorithms? A lot of the info floating around is dated and fairly limited (most of what I read said Decomb IVTC was the most advanced) - or specefic to anime.

Bonus: Does anyone know what DVD playing hardware will do with hard pulldown'd content? Like, does it IVTC? My crappy old DVD player seems to be smart enough to get good enough looking output to my progressive HDTV.

Thanks again for the feedback. I'm going to run some tests with your recommended IVTC algos and post the results.
wst is offline   Reply With Quote
Old 5th September 2008, 16:34   #13  |  Link
um3k
Registered User
 
Join Date: May 2007
Posts: 220
I think most progressive DVD players do IVTC the hard way regardless of hard or soft pulldown. So hard pulldown will give the same results as soft pulldown. Of course, my cheap Coby DVD player just dumb-bobs everything, but anyways...
um3k is offline   Reply With Quote
Old 5th September 2008, 18:01   #14  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
um3k, what does it mean to IVTC the "hard way"? By bobbing?

thetoof, your animeIVTC filter looks excellent. Though it took a while to get it working (my plugins are in a networked location so I can't autoload) - think you used enough plugins? Either way, it automatically handled the areas I was having problems with - thanks! (I assume aa is only on for anime?)

Does animeIVTC do anything with noise - like, is there any reason to not deblock (cpu=4) when ingesting the d2v and/or a light STMedianFilter(5,10,3,6) at the end? I think whoever encoded these DVDs added gaussian noise to the source to prevent gradient/low-freq blocking on their crappy encoder - I'm trying to filter some of that out, and I don't want to lose a lot of detail by accident if your script is filtering as well.

Blue, I'm going to try out your suggestion and see how it stacks up to animeIVTC.

Thanks again for all the info.
wst is offline   Reply With Quote
Old 5th September 2008, 20:38   #15  |  Link
wst
Registered User
 
Join Date: Aug 2008
Posts: 30
Blue's suggestion, TFM.Vinverse.TDecimate, also performs swimmingly in comparison to my original script, and automatically nabbed all of the problem areas. Thanks! I'm actually having trouble telling the two IVTC's outputs apart. So, I now have the opposite problem: two ways to do this. I know this is often a personal preference, but - CPU performance aside - are there any advantages/disadvantages to using one of these two IVTC strategies over the other?
wst is offline   Reply With Quote
Old 5th September 2008, 21:09   #16  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,986
My reason for asking was simply speed. AnimeIVTC is a great script, and it's extremely powerful and easy to use for more demanding IVTC.

But, why bother with all that overhead. I assume it's slower than simple TFM.Vinverse.TDecimate (though I don't really know).



What matters is that you got good results in the end!

~MiSfit
__________________
These are all my personal statements, not those of my employer :)
Blue_MiSfit is offline   Reply With Quote
Old 6th September 2008, 14:43   #17  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
Main reason why to use AnimeIVTC? It often leads to a better output, though it's slower than the usual methods (12 secs vs 8 secs to process your sample).
aa is for anti-aliasing (not needed for your clip)
It does nothing with noise (but aa=4 will in the next version)

MiSfit's suggestion is a tad worse than animeivtc(mode=1,aa=0,precision=0) and what I suggested you does this + kill the combing that could have gone through with vinverse.

It's true that the output is very similar, but when you compare some tricky frames, you'll see a difference.
This is frame #249 (after IVTC):
tfm().vinverse().tdecimate()
animeivtc(1,aa=0)
__________________
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 6th September 2008, 19:56   #18  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,986
Hmm.. It's a mixed bag for me.

While I prefer AnimeIVTC's output, it doesn't seem true to the source.

From an IVTC perspective, there's less aliasing on the light panel on the ceiling (very cool, how was that accompllished?)

But, your version is darker and seems to be slightly denoised.

I prefer the result, visually, but it seems less accurate.

??

~MiSfit
__________________
These are all my personal statements, not those of my employer :)
Blue_MiSfit is offline   Reply With Quote
Old 7th September 2008, 03:42   #19  |  Link
thetoof
Sleepy overworked fellow
 
Join Date: Feb 2008
Location: Maple syrup's homeland
Posts: 933
nnedi and tdeint are the big helpers here against aliasing

Actually, I find animeivtc's output more accurate... look how the two lines of writing on the door become a big white sploch with tfm.vinverse.tdecimate
For the "denoising" (I see it more as deblocking for this clip), I think it's due to tdeint that blends the frames of the internally bobbed clip, but still, it helps detail recovery from a frame infested by blocks, so I don't see it as a bad thing.
Yes, it's darker (could also be due to the blending of two frames in a section where luma changes a lot bewteen every one of 'em), but it looks very good temporally... (nothing ugly comes out during playback)
__________________
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 7th September 2008, 06:53   #20  |  Link
Blue_MiSfit
Derek Prestegard IRL
 
Blue_MiSfit's Avatar
 
Join Date: Nov 2003
Location: Los Angeles
Posts: 5,986
I'm not saying it looks bad!

I think it looks fantastic!

The issue (to me) is that I think IVTC should just be IVTC. Deblocking and so forth should happen in separate steps. Just me

NNEDI+TMM+TDeint are fantastic in this scenario!

~MiSfit
__________________
These are all my personal statements, not those of my employer :)
Blue_MiSfit is offline   Reply With Quote
Reply

Tags
dvd, interlaced, ivtc, ntsc, pulldown

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 03:33.


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