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. |
|
|
Thread Tools | Search this Thread | Display Modes |
15th November 2013, 08:18 | #1 | Link |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
Hard-telecined 29.97fps DVD of NTSC TV with field blending? (+ interlaced resizing?)
This is a US TV show that was never blended in TV airings or any other NTSC release. None of the footage was from a PAL source. The DVD is slightly cropped and resized in both directions, so my theory is that the problem was somehow introduced by doing interlaced resizing.
I have a clean source for this particular episode from another's company's release, but they've only put out 4 episodes so I'm hoping to repair the other 151 in this flawed box set. Samples: MMPR-54_LG.m2v (normal pulldown) MMPR-54_SF.m2v (pulldown + blending) Here is the script I used to view them side-by-side: Code:
A = MPEG2Source("MMPR-54_LG.d2v").Trim(3,0) B = MPEG2Source("MMPR-54_SF.d2v") StackHorizontal(A,B) Bob() Code:
LG: AA BB BC CD DD SF: AA BB [B/C][C/B] [C/D][D/C] DD In the pattern notation above, "C" is the only frame that I need to unblend. Ghosts of it exist across 4 fields. Any way? |
15th November 2013, 18:56 | #2 | Link | |
Registered User
Join Date: Feb 2002
Location: California
Posts: 2,695
|
Quote:
Code:
loadPlugin("C:\Program Files\AviSynth 2.5\plugins\Srestore\mt_masktools-25.dll") Import("C:\Program Files\AviSynth 2.5\plugins\Srestore\srestore.avs") source=mpeg2source("E:\Documents\Dnload\UNPACK\MMPR-54_SF.d2v") bob(source,-0.2,0.6) srestore(frate=23.976, omode=6) |
|
15th November 2013, 22:17 | #3 | Link |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
Thanks, but that's just picking one of the four blended fields and trying/failing to use the clean frames for the rest. Is there no way to actually deblend them to get something resembling the original C frame?
Frames 7,8,11,15,1619,20 still exhibit dark halos around her arms and bloomed contrast on them. Probably thanks to the onscreen text confusing things. After it goes away, the problem frames are 1 in 4 as expected: 79,83,87... And then at the angle change it messes up and starts duplicating frames. IVTC followed by deinterlacing to pick one of the bad fields produces a better result, but again does nothing to address the ghosted aspects: Code:
MPEG2Source("MMPR-54_SF.d2v") A = Bob(-0.2,0.6).SRestore(frate=23.976, omode=6) B = DoubleWeave().SelectEvery(10, 0,2,4,7).Trim(0,115)+DoubleWeave().SelectEvery(10, 0,3,6,8).Trim(116,0) B = B.TDeint(full=false) StackVertical(A,B) |
7th December 2013, 15:31 | #4 | Link |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
I suppose it would help to more accurately identify the problem. The artifacts actually look like "burn/dodge" in an image editing application like Photoshop rather than actual blending. Does anyone have an idea for how to reverse that?
|
9th December 2013, 20:14 | #6 | Link |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
Shouldn't be any trick. Right-click and Save As or disable whichever browser plugin is providing the ability to play M2V files. (Assuming Chrome or something doesn't have playback support built-in.)
|
9th December 2013, 22:02 | #7 | Link | |
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Thanks. That did it. I expected clicking on the link would take me to the download.
Quote:
Interleave(TFM(field=1), TFM(field=0)) SRestore(omode=4, speed=3) TDecimate(Mode=2,rate=23.976) It's partially from a script jagabo came up with on videohelp.com to solve a different problem. I haven't a clue how to get rid of that dark crap around her body on different frames but if, as you say, it exists across four fields, then maybe it's not possible. Maybe the script above improves the problem, maybe it just shifts the dark 'halos' to different frames than the ones you listed. |
|
10th December 2013, 10:41 | #8 | Link |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
Thanks for your suggestion. I do want it field-matched for the clean fields yes, but that part isn't giving me problems. It's just the ghosts/burns/halos that I want to find a solution for. I'm not even sure how to simulate the issue to begin thinking about inverting the process.
|
30th December 2013, 01:17 | #9 | Link | |
Registered User
Join Date: Sep 2005
Location: Vancouver
Posts: 600
|
From Wikipedia:
Quote:
I've found that leaving the bad frames interlaced and applying Vinverse generally looks better than deinterlacing, as the intensity of the halos are reduced to 50%. This can still be improved upon, because sometimes the bottom field looks notably better (when the "next" film frame is particularly similar to the "current" film frame and the "previous" film frame particularly differs) and sometimes the top field looks notably better (vice versa). I thought maybe these can be picked out and swapped in by using YDifferenceFromPrevious and YDifferenceToNext. Do you have any idea how that could be scripted? The numbers don't seem to agree with my eyes. Bottom field better than Vinverse Top field better than Vinverse (the numbers for "X" in the screenshots are wrong due to a misplaced command in my initial script) Code:
MPEG2Source("MMPR-54_SF.d2v") X = DoubleWeave().SelectEvery(10, 0,2,4,7).Trim(0,115)+DoubleWeave().SelectEvery(10, 0,3,6,8).Trim(116,0) A = X.Vinverse() B = X.TDeint(full=false) C = X.TDeint(order=1,full=false) L = StackVertical(X.Subtitle("X: Residual interlacing").SubDiff(),B.Subtitle("B: Top field (dark halos from prev)").SubDiff()) R = StackVertical(A.Subtitle("A: Vinverse").SubDiff(),C.Subtitle("C: Bottom field (dark halos from next)").SubDiff()) StackHorizontal(L,R) function SubDiff(clip c) { c.ScriptClip("Subtitle(String(YDifferenceFromPrevious),y=20)").ScriptClip("Subtitle(String(YDifferenceToNext),y=40)") } Last edited by ChiDragon; 30th December 2013 at 01:28. |
|
|
|