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. |
22nd May 2020, 06:01 | #342 | Link | |||||||
Registered User
Join Date: Jan 2015
Posts: 1,056
|
I will be running DS9 tests soon, but for now, I'm still using Andromeda as my guinea pig for various deinterlacing methods. Just to be ABSOLUTELY sure about the relative merits of NNEDI3+Yadifmod2 versus QTGMC, I put the following script together:
Code:
mpeg2source("212.d2v") A=qtgmc(sourcematch=3,lossless=1).selecteven() B=qtgmc(sourcematch=3,lossless=1).selectodd() C=Tfm(field=1,mode=0,slow=2,mchroma=false,cthresh=1,MI=40,blockx=8,mthresh=2,clip2=A,micmatching=0) D=Tfm(field=0,mode=0,slow=2,mchroma=false,cthresh=1,MI=40,blockx=8,mthresh=2,clip2=B,micmatching=0) E=Interleave(C,D) Y=nnedi3(field=-2,nsize=3,nns=4,qual=2,etype=1) L=yadifmod2(mode=3,edeint=Y).selecteven() M=yadifmod2(mode=3,edeint=Y).selectodd() N=Tfm(field=1,mode=0,slow=2,mchroma=false,cthresh=1,MI=40,blockx=8,mthresh=2,clip2=L,micmatching=0) O=Tfm(field=0,mode=0,slow=2,mchroma=false,cthresh=1,MI=40,blockx=8,mthresh=2,clip2=M,micmatching=0) P=Interleave(N,O) stackvertical(E,P) This was the result: Remember, that's "lossless" QTGMC at the top, and Yadifmod2+NNEDI3 at the bottom. HuRr DuRr MuH aLiAsInG. Quote:
Quote:
For compatibility: AVI For variable frame rate: MP4 MP4 is an official industry standard recognized by the International Organization for Standardization as ISO/IEC 14496-14:2003, whereas MKV is developed and supported by a couple of hackers in France in their spare time, so MP4 should offer slightly better compatibility than MKV. However, this is purely speculation, and I don't know of any software that works with MP4 but not MKV. Quote:
Not Virtualdubmod or Virtualdub2 or TheVirtualdubStrikesBack or MyOwnVirtualDubWithBlackjackAndHookers... Quote:
Attempting to convert the whole episode to 23.976 is a very bad idea. Quote:
Quote:
Quote:
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. |
|||||||
22nd May 2020, 06:38 | #343 | Link | |||
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
Quote:
Quote:
Last edited by manono; 22nd May 2020 at 06:43. |
|||
22nd May 2020, 07:36 | #344 | Link |
Registered User
Join Date: Jan 2015
Posts: 1,056
|
UPDATE: I have independently confirmed the existence of at least one instance of retrograde field behavior: when the "Star Trek - Deep Space Nine" logo first fades in near the beginning of the opening credits. In addition, I'm having a hard time finding a combination of blockx and MI settings that will stop TFM from incorrectly flagging large amounts of progressive content as interlaced while still catching real interlaced content. The penalty for this is high - it causes the stars to blink in and out during space shots. I may switch to recommending blending instead of interpolation. I'll keep you all updated.
EDIT: for the sake of fairness, I tested QTGMC's performance as well. One of these images is my traditional TFM+Yadifmod2+NNEDI3 method. One of them is a variation of my method, using TFM+"Lossless" QTGMC. One of them is a variation of my method with TFM set to blend instead of bobbing/interpolation. Can you guess which is which? Finally, I recommend adding d2v="601.d2v",flags=1 to the TFM settings in both the C and D lines. This will prevent TFM from checking for interlacing during any soft pulldown, which cuts the false positive rate dramatically. The scene that benefits from this the most, by far, is the close-up of the comet's tail. EDIT #2: Get ready because this next script is going to REALLY blow your damn minds... Code:
Mpeg2source("601.d2v") A=Tfm(field=1,mode=0,slow=2,pp=2,mchroma=false,cthresh=-1,micmatching=0).converttorgb().generalconvolution(matrix = "0 -1 0 0 4 0 0 -1 0",divisor=2,auto=false).converttoyv12() B=Tfm(field=0,mode=0,slow=2,pp=2,mchroma=false,cthresh=-1,micmatching=0).converttorgb().generalconvolution(matrix = "0 -1 0 0 4 0 0 -1 0",divisor=2,auto=false).converttoyv12() C=Tfm(field=1,mode=0,slow=2,mchroma=false,cthresh=-1,clip2=A,d2v="601.d2v",flags=1,micmatching=0) D=Tfm(field=0,mode=0,slow=2,mchroma=false,cthresh=-1,clip2=B,d2v="601.d2v",flags=1,micmatching=0) interleave(C,D) It will, of course, still spoil any true 60 hz content by creating ghosting and cutting the effective frame rate, but I think that's a fair price to pay here.
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. Last edited by Katie Boundary; 24th May 2020 at 05:09. |
22nd May 2020, 09:15 | #345 | Link | |||
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
Similar aliasing, and a tad sharper than Yadif/nnedi3. Most of the time when QTGMC looks less sharp it'll be because it's removed noise, as it did for the example I posted earlier. Quote:
Quote:
Lets be fair though and check out the huge difference you can expect to see with Katie's TFM settings vs the defaults, with the exception of micmatching=0 both times. I'll confess I've only checked the same frame again. I'm sure you'll be able to post screenshots where your settings are a vast improvement, won't you? Katie TFM, Yadif/nnedi3, vs Default TFM, Yadif/nnedi3. http://www.framecompare.com/image-co...rison/77DPLNNX I assume there's a difference, as the png files are slightly different sizes. Are you not answering my question as to how you decimate for a VFR due to a lack of reading skills or because you're ignoring it? So I'll ask again. What difference would it have made. Shouldn't you check a non lobotomised version is going to look better before complaining? Where's your sample encode? Last edited by hello_hello; 22nd May 2020 at 12:02. Reason: spelling |
|||
22nd May 2020, 09:18 | #346 | Link | ||
Moderator
Join Date: Oct 2001
Location: Hawaii
Posts: 7,406
|
Quote:
Quote:
|
||
22nd May 2020, 10:30 | #347 | Link | ||
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
N=Tfm(field=0,mode=0,micmatching=0) O=Tfm(field=1,mode=0,micmatching=0) Interleave(N,O) I've no idea how you make your field order work at all for the DS9 sample. Quote:
I'm looking at an encode using your exact settings, including the field order. I don't think switching the field order to stop the frames bouncing back and forth would change that. Edit: I checked and it didn't. I assume the transitions between shots have been de-interlaced by TFM and treated as video, so the transitions need to be kept at 29.97fps to stay smooth for a VFR. How do you do about picking them out if you decimate? Last edited by hello_hello; 22nd May 2020 at 11:39. |
||
22nd May 2020, 10:31 | #348 | Link | |
Registered User
Join Date: Jan 2015
Posts: 1,056
|
All right, time to feed the troll one last time.
Quote:
The difference is that one is my method and the other isn't. And now, back to serious discussion: Flags=1 is even stricter than 5, because 5 will look for scene changes and then perform deinterlacing around those, whereas 1 will not look for interlacing in film content ever. If there are any orphaned fields around scene changes, then there will also be an interruption in the pulldown pattern, and TFM will start checking for interlacing again anyway. I'm therefore not sure what 5 would accomplish other than getting false positives around scene changes.
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. |
|
22nd May 2020, 11:23 | #349 | Link | ||
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Ah.... a Katie classic. When the discussion doesn't go her way, out come the troll accusations. Why not participate in a discussion like an adult?
Quote:
Quote:
Are you leaving the thread, or planning to finally upload a sample encode? Last edited by hello_hello; 22nd May 2020 at 11:43. |
||
22nd May 2020, 12:25 | #351 | Link | ||
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
There's a 64 bit version of DGDecode here. I know nothing about MPEG2DecPlus. I don't know which one StaxRip uses. I guess videoh would know more about the different flavours. Quote:
Avisynth outputs the average frame rate when you use TFM for the process, so you can still apply filtering to the output using a program that only supports a CFR if need be. It doesn't become VFR until the final encoding/muxing stage. Last edited by hello_hello; 22nd May 2020 at 12:48. |
||
22nd May 2020, 12:51 | #353 | Link | |
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
Of course he may do something entirely different again, such as always converting to a 23.976 or 29.97 CFR, but as his comment implied otherwise, I thought I'd ask. PS In case you missed the edit of my previous post, can you provide any insight regarding the different flavours of 64 bit DGDecode? Last edited by hello_hello; 22nd May 2020 at 13:05. |
|
22nd May 2020, 13:26 | #354 | Link |
Registered User
Join Date: Oct 2012
Posts: 7,922
|
if you bob it you should do 60 fps.
if you have a problem with 3:2 judder in the source then you are totally doomed with 30 fps because it's not even possible to get a 3:2 judder in 30 progressive with 24p source you get something far worse. in fields is 4:2:2:2. |
22nd May 2020, 14:49 | #356 | Link | |
Registered User
Join Date: Jan 2015
Posts: 1,056
|
Quote:
I've never found either to be noticeable, but it may be moot. If Joel goes with my blend approach, then there won't be any true 60 hz content left, and he might be able to safely decimate down to 48 without losing any unique frames.
__________________
I ask unusual questions but always give proper thanks to those who give correct and useful answers. |
|
22nd May 2020, 15:04 | #357 | Link | |
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
ie a 3:3:2:2 pattern vs 3:2:3:2 https://en.wikipedia.org/wiki/Telecine#2:3_pulldown This results in a 3:2 pattern using a progressive source. AssumeFrameBased SeparateFields SelectEvery(8, 0,1, 2,3,2, 5,4, 7,6,7) Weave Yadif(mode=1) Last edited by hello_hello; 22nd May 2020 at 15:09. |
|
22nd May 2020, 15:09 | #358 | Link | |
Useful n00b
Join Date: Jul 2014
Posts: 1,667
|
Quote:
Last edited by videoh; 23rd May 2020 at 01:16. |
|
22nd May 2020, 15:09 | #359 | Link |
Registered User
Join Date: Oct 2012
Posts: 7,922
|
doesn't matter if the end product is progressive.
these 3:3:2:2 stuff is in field don't forget in progressive we don't have fields so they have to be a power of 2. 3:2 judder in 720p60 is a used term but it is meant in progressive frames. |
22nd May 2020, 15:18 | #360 | Link | |
Registered User
Join Date: Mar 2011
Posts: 4,829
|
Quote:
PP=5 isn't blend de-interlacing as such. Some of the CGI sections need to be treated as video to make them smooth, during fades between shots, or probably during some text overlays, even though they're technically hard telecine. That's exactly what your method is designed to achieve isn't it? You can't bob them to 59.94fps and decimate to 48fps. Wouldn't that be much the same as de-interlacing them to 29.97 fps and decimating to 23.976? Have you tried decimating your "blend approach" to 48fps to see how it looks? |
|
Thread Tools | Search this Thread |
Display Modes | |
|
|