VideoHelp Forum
+ Reply to Thread
Results 1 to 28 of 28
Thread
  1. Hi,

    I have a pal dvd which is mostly have progressive frames.But some of scenes (I detected 3 different scenes for now.) interlaced .I deinterlaced the 2 scenes via qtgmc() with success but other one not deinterlaced properly.It shows blended frames.Help would be really nice.Sorry for my bad english.

    sample1 (some frames progressive , some are interlaced):
    Code:
    https://mega.nz/#!XcsmjRDC!eG5u8VfRyscnjpWjmRQO3VrDzPlbkdpaXAUlo0iNrB4

    sample2(qtgmc works but pls check it):
    Code:
    https://mega.nz/#!7Nd2HRjJ!BLnH7oudgJMrYbO9bjTX6hIC98969JQyWy6TYJnOE0c
    Quote Quote  
  2. The first sample is phase shifted and can be fixed with a simple:

    TFM()

    However, there are duplicate frames created by doing that which is often an indication of a film to PAL conversion. But those duplicate frames aren't in the usual pattern and I'd just leave them alone. Especially given that using SRestore or TDecimate to bring them down to 23.976fps doesn't work very well.

    The second one isn't field blended but the fields aren't lined up properly and QTGMC is as good a way to handle it as any, I suppose.
    Quote Quote  
  3. Some shots in the first clip were slowed by adding fields here and there. The second clip was 25i (probably just out of phase 25p) but was sped up by discarding every other frame.

    The easiest way to deal with this is to use QTGMC() and encode at 50 fps. On playback that won't be any more jerky than the source. I didn't notice any blended frames in either clip after QTGMC(preset="fast").

    You can use TFM() to field match but then you'll have duplicate frames every now and then in the first clip and more artifacts and flickering in the second clip.
    Quote Quote  
  4. Formerly 'vaporeon800' Brad's Avatar
    Join Date
    Apr 2001
    Location
    Vancouver, Canada
    Search PM
    50Hz gate weave? How bizarre.
    Quote Quote  
  5. Thank you guys!

    TFM() gives me this kind artifacts for sample1:



    How I can rid off? It's not big scene ,I can accept little bit duplicate frames without artifacts imo.

    Originally Posted by jagabo View Post
    Some shots in the first clip were slowed by adding fields here and there. The second clip was 25i (probably just out of phase 25p) but was sped up by discarding every other frame.

    The easiest way to deal with this is to use QTGMC() and encode at 50 fps. On playback that won't be any more jerky than the source. I didn't notice any blended frames in either clip after QTGMC(preset="fast").

    You can use TFM() to field match but then you'll have duplicate frames every now and then in the first clip and more artifacts and flickering in the second clip.
    How I can encode 50 fps with qtgmc? It's possible to use two different fps (I mean 50 fps & 25 fps) or should I use qtgmc 50 fps on whole movie ?Example would be nice.Thanks again.
    Quote Quote  
  6. Originally Posted by max_cady View Post
    TFM() gives me this kind artifacts for sample1:
    TFM() isn't causing that. You're screwing up the video before giving it to TFM. What you're seeing is interlaced chroma being treated as progressive. Post your entire script.

    Originally Posted by max_cady View Post
    How I can encode 50 fps with qtgmc?
    QTGMC() normally outputs double fps. Just give that to your encoder.

    Originally Posted by max_cady View Post
    It's possible to use two different fps (I mean 50 fps & 25 fps)
    It's possible but I would avoid variable frame rates. It's more difficult to deal with.

    Originally Posted by max_cady View Post
    or should I use qtgmc 50 fps on whole movie ?
    It' much easier to just encode the video at 50 fps and that will give smoother output than trying to decimate to 25 fps.

    Originally Posted by max_cady View Post
    Example would be nice.Thanks again.
    Simple:
    Code:
    Mpeg2Source("samplepalinterlaced\VTS_01_1.demuxed.d2v", Info=3) 
    QTGMC()
    Then give that to your encoder.
    Quote Quote  
  7. Thanks @jagabo!

    I checked with only sample and there's no problem so looks like my avs is problem like you said.My source have different tape transfers so needs different crops and I want to choose that option. (please don't judge me for that). Here's my avs:

    import("C:\Program Files (x86)\AviSynth 2.5\plugins\QTGMC-3.32.avs")
    LoadPlugin("D:\Programs\MeGUI_2624_x86\tools\dgindex\DGDecode.dll")
    DGDecode_mpeg2source("C:\Users\Unforgiven\Desktop\ Yol (1982)\VTS_01_1.d2v")

    aa=trim(0,13528).crop(2, 2, 0, -2)
    ab=trim(13529,14384).crop(2, 2, 0, -2).TFM() #It's also have same problem with qtgmc for only this part, no problem with other qtgmc part.It's also same problem when I add Spline36Resize(718,572) too.
    ac=trim(14385,26103).crop(2, 2, 0, -2)
    ad=trim(26104,26440).crop(2, 14, 0, -2).Spline36Resize(718,572)
    ae=trim(26441,27440).crop(2, 2, 0, -2)
    af=trim(27441,27547).crop(2, 12, 0, -2).Spline36Resize(718,572)
    ag=trim(27548,147850).crop(2, 2, 0, -2)
    ah=trim(147851,147943).crop(2, 16, 0, -2).Spline36Resize(718,572).qtgmc().selecteven()
    ai=trim(147944,148123).crop(2, 12, 0, -2).Spline36Resize(718,572)
    aj=trim(148124,148305).crop(2, 4, 0, -2).Spline36Resize(718,572)
    ak=trim(148306,164030).crop(2, 2, 0, -2)

    aa++ab++ac++ad++ae++af++ag++ah++ai++aj++ak
    Using 50 fps is necessary ? Coz that's can be gives me some trouble ,when I watch the movie with TV . Using like this with qtgmc().selecteven() is more logical or not for me?
    Quote Quote  
  8. If you encode the entire video at 50 fps you will get the smoothest motion -- assuming your player can handle 50 fps video. For example, in parts where the video was slowed, at 50 fps you might have a sequence of film frame numbers like:

    Code:
    1 1 2 2 2 3 3 4 4 5 5 6 6 6 7 7
    So you will see some frames for 2/50 second, some for 3/50 second. If you decimate with SelectEven() you'll be left with:

    Code:
    1 2 2 3 4 5 6 7
    You'll see some frames for 2/50 second and some for 4/50 second.

    Shots that were sped up by discarding fields will give you 50 fps sequences like:

    Code:
    1 1 2 3 3 4 4 5 5 6 7 7 8 8
    Some frames will be displayed for 2/50 second, some for 1/50 second. After decimation to 25 fps you'll be left with:

    Code:
    1 2 3 4 5 7 8
    Some frame will be missing. Ie, some frames will be visible for 2/50 second, some for 0/50 second.
    Last edited by jagabo; 22nd Mar 2016 at 18:44.
    Quote Quote  
  9. Thanks for the explanation, I appreciate it! I'll start to encode with qtgmc soon.Maybe noob question but I hope no need sync the audio with the video after 50 fps result.

    I have another problem with NTSC DVD , which is I try many things.Pls take a look that too:

    https://mega.nz/#!7MsQnRSL!-tEByYgo2L_Ho3yK-73VscKSrjLYHl6fgAQ0Glq8Sb8
    Quote Quote  
  10. Originally Posted by max_cady View Post
    I hope no need sync the audio with the video after 50 fps result.
    QTGMC does not change the running time. Your source is already 50 fields per second. QTGMC changes each field to a frame, 50 frames per second.
    Quote Quote  
  11. Originally Posted by max_cady View Post
    I have another problem with NTSC DVD , which is I try many things.Pls take a look that too:

    https://mega.nz/#!7MsQnRSL!-tEByYgo2L_Ho3yK-73VscKSrjLYHl6fgAQ0Glq8Sb8
    That's a field blended PAL to NTSC conversion. You can restore the original film frames with:

    Code:
    Yadif(mode=1, order=1) # or QTGMC()
    SRestore()
    That will leave you with 25p.
    Quote Quote  
  12. Thank you so much ! You really help me.

    I guess the same thing but used something like this before and it's not work properly:

    QTGMC(Preset="Slower",EZKeepGrain=1.1,Sharpness=0. 5)
    srestore(23.976)
    Quote Quote  
  13. That's because you had SRestore output 23.976fps, so one unique frame is removed every second and it plays jerky. As jagabo told you, the correct framerate is 25fps which you get using SRestore at default settings. That way the length doesn't change and you can use the audio unchanged. If you want to make it 23.976fps:

    QTGMC(Preset="Slower",EZKeepGrain=1.1,Sharpness=0. 5)
    srestore()
    AssumeFPS(23.976)


    That changes the length and you'll have to slow the audio to match.
    Quote Quote  
  14. Thanks ! I'll keep 25fps, btw yadif not work properly some of scenes so I must use qtgmc with keeping detail.
    Quote Quote  
  15. I have a problem making comparison between source and encode for this.I used qtgmc+srestore like you said and encode is anamorphic.My comparison script work everytime before , which is this . But I 'm getting "Interleave: video formats don't match" error. I try another basic comparison script ,that time problem is frames not match between. Any clue?

    Thanks for everything.
    Quote Quote  
  16. Why don't you just check the properties yourself? Replace the Interleave() line with e.Info() or s.Info().
    Quote Quote  
  17. No problem with checking to properties .I want to compare them something like this:



    e.Info() or s.Info() is not my want.Thanks again.
    Quote Quote  
  18. e.Info() and s.Info() will tell you the properties of the two videos so you can see what's different between them -- the reason why Interleave() isn't working. My guess is that the two videos have a different frame size to start with, or the second video changed ffsar so that it got resized to a different size.

    And Interleave() will not stack the two videos side by side. You want StackHorizontal() for that.
    Last edited by jagabo; 27th Mar 2016 at 08:37.
    Quote Quote  
  19. I was busy, sorry for the late answer and thanks for the reply.

    I tried the Info() for encode and source line but don't work.Encode line shows only 7 min anyway I opened them by one by via AvsPmod and it's shows properly.Here it's:

    Encode:


    Source(avs):


    Looks like there's a only change is colorspace.But I added ConvertToRGB(), ConvertToYUY2() and ConvertToYV12() to comparison script but it's not work . And I tried many thing but no hope.
    Quote Quote  
  20. Originally Posted by max_cady View Post
    Looks like there's a only change is colorspace.
    Which explains why interleaving didn't work the first time.
    But I added ConvertToRGB(), ConvertToYUY2() and ConvertToYV12() to comparison script but it's not work . And I tried many thing but no hope.
    That's not specific enough. Please post an example of a script where you tried to make the colorspaces the same. Did you add the colorspace change to each video individually, or try and add it to both at once? And if both at once, how did you do that?

    Whenever asking about AviSynth scripts not working it's a good idea to include the scripts creating the errors so we can either spot the problem in the provided scripts or try and replicate it with similar scripts. For example:

    A=AVISource("YV12Video.avi)
    B=AVISource("YUY2Video.avi").ConvertToYV12()
    StackHorizontal(A,B)

    should work.

    I guess you can tell those two frames aren't the same even though the Info says they're the same frame number. Apparently the two videos began at two different places in a longer video and if you really want to compare the exact same frames, you should align the frames better.
    Last edited by manono; 31st Mar 2016 at 00:12.
    Quote Quote  
  21. Originally Posted by max_cady View Post
    I tried the Info() for encode and source line but don't work.
    Then you didn't do exactly what I told you. Post the actual script that failed. You need to see what s.Info() and e.Info() return within the context of the script you're using.
    Quote Quote  
  22. Originally Posted by jagabo View Post
    Originally Posted by max_cady View Post
    I tried the Info() for encode and source line but don't work.
    Then you didn't do exactly what I told you. Post the actual script that failed. You need to see what s.Info() and e.Info() return within the context of the script you're using.
    Sorry guys, I posted the answer a little bit fast and forget to add some details and make some fails.

    I don't remember but probably I used different colorspaces for encode and source and it cause different colorspace thing.

    HERE is my avs for comparison and here's screens:





    And HERE is my main avs.

    And looks like they have different parity and it's the problem.But I don't have any clue why this happened?

    Thanks.
    Quote Quote  
  23. The only difference I see is the field order. Using AviSynth 2.6 I don't have any problem interleaving TFF and BFF frames but you might try adding AssumeTFF() to the Encode video making it TFF too.

    The other thing that might possibly cause problems is the odd frame width, 809. Again, AviSynth 2.6 has no problems with that as long as the video is RGB, but maybe older versions didn't like it? Try using 808 or 810 instead.

    Try using StackHorizontal() instead of Interleave() to see if that has problems too.
    Quote Quote  
  24. My free time really limited so can't answer quickly, sorry for that.

    I updated AviSynth to 2.6 and I don't even crop but no change.

    I tried to StackHorizontal() everytime and no change.

    I added AssumeTFF() to comparison script and it's have same problem.And also added the avs and encode like that and same again.

    I changed bobber and tried with srestore again and it still same.

    When I only use something like this without srestore it works and frames match (29.970 fps) but I bet it's not proper way:
    yadifmod(order=1, mode=0, edeint=NNEDI2(field=1))

    I'm just share another sample in this case, it's maybe needs to look another parts:

    https://mega.nz/#!HMt3ULJY!DDCImjYVarZ1Sh55jtBDZ1A5yGGV6sxNPEYjpm-NLaU

    TIA!
    Quote Quote  
  25. I don't have any problem with your videos and scripts. Example attached.
    Image Attached Files
    Quote Quote  
  26. I only deleted SetMtMode part coz it's not work me .Never used before, I'm using lossless pass generally.Anyway, yes it's match most of parts but not EVERY frame and it's not happen before.Here you go:



    You can check comparison frame of 181 for confirmation.
    Quote Quote  
  27. Originally Posted by max_cady View Post
    yes it's match most of parts but not EVERY frame
    SRestore doesn't return the exact same frame with random seeks. It has to be run linearly from start to end to get the same frames. Or at least needs several frames to get into sync.

    Also, many source filters will not return the exact same frame on random seeks with long GOP, out of order codecs.

    And multithreaded AviSynth may get different frames than single threaded AviSynth with SRestore and long GOP, out of order codecs.

    Seek a few seconds before the frame you want to check then move forward one frame at a time.
    Last edited by jagabo; 4th Apr 2016 at 23:02.
    Quote Quote  
  28. Thanks for the extra information! I learn something new.

    I used qtgmc+srestore before like 5-10 times but newer this problem happen , that's make me curious.Also different field order thing a interesting and still not get understand why this is happen, I renew everyting but same thing happen and used yadif+srestore with single threaded.Looks like I stick this.

    I have another problem:



    SAMPLER (Please check both):
    https://mega.nz/#!aEd12CCR!1-dvpW9_yAjbfgxXfP2SQ_EveySZGnuPDtf47CS69AY

    I hate filters when they hurt good details too much but I need something here.Grain texture is different , there is have some vertical line grains (I guess ), it's It's DVD and not compress even 4000-5000 bitrate.Also some scenes have spots etc. but that's not importand I guess.
    Quote Quote  



Similar Threads

Visit our sponsor! Try DVDFab and backup Blu-rays!