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. |
![]() |
#1 | Link |
Registered User
Join Date: Jan 2008
Posts: 20
|
Need advice on partially interlaced film
Hello,
I've already started a discussion here and i am following now the advice by Groucho2004 to post a short sample (ca.16MB) of what i call critical: http://www64.zippyshare.com/v/42433169/file.html I'm having issues finding the right de-interlacing method since a few parts of the film won't get de-interlaced properly. A good example is at 00:08 (the guy in white t-shirt on the right). I also would be happy to get advices on how to optimize the image (denoising etc.) for good compressibility since i focus on a x264 encode in the end. Thanks in advance and sorry for my ignorance. I think this one is a good example to learn. |
![]() |
![]() |
![]() |
#2 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,401
|
There is nothing special about the interlaced structure, no special deinterlacing strategy is needed. It is a standard 60i NTSC video (60 distinct fields per second), and any deinterlacer should deal with it.
The strange thing is the color resolution. There is noticeable color gloom going on, and the red colors exhibit those funny vertical stripes, in particular in the area of "white" surfaces. Could it be the video was shot with a 4:1:1 DV camera system? (I know them from hearsay, but haven't seen much of them yet.) Deinterlacing is not the problem here, but the color is. I feel something like Code:
[bob/deinterlace] turnleft.separatefields mergechroma(vinverse).weave.blur(0,1).turnright mergechroma(awarpsharp2) ![]()
__________________
- 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!) |
![]() |
![]() |
![]() |
#5 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,401
|
Compare: simple deinterlacing with e.g. Yadif (left) -vs- pre-processing + TGMC (right):
![]() ![]() Video samples: <klick> Is this acceptable?
__________________
- 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!) |
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Jan 2008
Posts: 20
|
Hell yeah! I have just compared this second frame with a bunch of trial & error rips i've done. Yours looks much better!
Could you post the avs script and anything i should know, please? Thanks a bunch, didée! Oh i see that's yours http://avisynth.org/mediawiki/TempGaussMC :lol: Last edited by pereant; 9th June 2011 at 21:48. |
![]() |
![]() |
![]() |
#7 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,401
|
Yes. Though one could/should use QTGMC instead. I'm just being nostalgic.
Basically it's not about the deinterlacer. The color problems are processed separately. Q/TGMC is "only" there to give a stable deinterlacing and good compressibility. ![]() Code:
# setmtmode(5,4) # only if you're using an Avisynth-MT build SetMemoryMax(256) LoadPlugin("DGDecode.dll") LoadPlugin("RemoveGrainSSE2.dll") LoadPlugin("RepairSSE2.dll") LoadPlugin("mt_masktools-25.dll") LoadPlugin("MVTools2.dll") LoadPlugin("NNEDI3.dll") LoadPlugin("VerticalCleanerSSE2.dll") LoadPlugin("AddGrainC.dll") LoadPlugin("awarpsharp2.dll") Import("TGMC_b2.avsi") # should be QTGMC, of course mpeg2source("Original.d2v") # setmtmode(2) # see 1st line above o = last x = o.separatefields.deblock(30) x0 = x.gsharp() x = x.mergeluma(x.removegrain(20).removegrain(20),0.0999).mt_lutxy(x,"x y < x 1 + x y > x 1 - x ? ?",U=2,V=2) x = x.mergechroma(x.blur(1)) x1 = x.mergechroma(x.lanczosresize(x.width,x.height*2).awarpsharp2(depth=6,thresh=128,blur=2).lanczosresize(x.width,x.height)) x2 = x.mergechroma(x.lanczosresize(x.width,x.height*2).awarpsharp2(depth=12,thresh=192,blur=2).lanczosresize(x.width,x.height)) x = mt_merge(x,x1,x2,Y=2,U=4,V=5).weave() # no mask-merging, just joining 3 channels ;-) x.tempgaussmc_beta2(1,1,2,edimode="nnedi3",sharp=1) .gnoise(2,0.6).gnoise(1,1.25) return(last) #----------------------------------------- function gsharp(clip c, float "str") { str = default(str, 1.51) mt_lutxy(c,c.removegrain(11),"x x y - abs 1 1.6 / ^ "+string(str)+" * x y - x y - abs 0.001 + / * +",U=3,V=3) } function gnoise(clip c, int str, float ss) { grr=blankclip(c,width=round((c.width*ss)/4.)*4,height=round((c.height*ss)/4.)*4).mt_lut("x",Y=-128).addgrainc(str,0) c.mt_adddiff(grr.bicubicresize(c.width,c.height,-.2,.6),U=2,V=2) } ![]() Don't ask me how to get this into MeGUI. Never have used it.
__________________
- 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!) |
![]() |
![]() |
![]() |
#10 | Link |
Registered User
Join Date: Jul 2010
Posts: 448
|
Try :
Code:
x.QTGMC( "Faster", TR0=1,TR1=1,TR2=2, SubPelInterp=1 ).gnoise(2,0.6).gnoise(1,1.25) Last edited by -Vit-; 9th June 2011 at 23:11. |
![]() |
![]() |
![]() |
#11 | Link | |
Registered User
Join Date: Jan 2008
Posts: 20
|
To google a download source for awarpsharp2 is truly a challenge
![]() But thankfully i found out it‘s all here. Quote:
![]() At the moment the first pass is running (complete film 1h9m): 12 hours elapsed, 6 hours remaining - looking forward to the second pass x-D Thanks so much to all of you and esp. didée |
|
![]() |
![]() |
![]() |
#12 | Link |
͡҉҉ ̵̡̢̛̗̘̙̜̝̞̟̠͇̊̋̌̍̎̏̿̿
Join Date: Feb 2009
Location: No support in PM
Posts: 720
|
If you do a two-pass encoding with a slow script, you should first render the script result to a lossless file (or even multiple files), and use this file for your encoding. Because:
1. the script will be executed only once, meaning significant time gain, and 2. it minimizes the risks of crashing
__________________
dither 1.28.1 for AviSynth | avstp 1.0.4 for AviSynth development | fmtconv r30 for Vapoursynth & Avs+ | trimx264opt segmented encoding |
![]() |
![]() |
![]() |
#15 | Link |
͡҉҉ ̵̡̢̛̗̘̙̜̝̞̟̠͇̊̋̌̍̎̏̿̿
Join Date: Feb 2009
Location: No support in PM
Posts: 720
|
x264 --qp 0 --keyint 4 --preset ultrafast
should work fine.
__________________
dither 1.28.1 for AviSynth | avstp 1.0.4 for AviSynth development | fmtconv r30 for Vapoursynth & Avs+ | trimx264opt segmented encoding |
![]() |
![]() |
![]() |
#17 | Link | |
Registered User
Join Date: Jan 2011
Location: Donetsk
Posts: 58
|
Quote:
|
|
![]() |
![]() |
![]() |
#18 | Link |
Registered User
Join Date: Apr 2002
Location: Germany
Posts: 5,401
|
Oops.
Code:
x = mt_merge(x0,x1,x2,Y=2,U=4,V=5).weave() # no mask-merging, just joining 3 channels ;-)
__________________
- 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!) |
![]() |
![]() |
![]() |
Tags |
artefacts, denoise, grain, interlace, ntsc |
Thread Tools | Search this Thread |
Display Modes | |
|
|