VideoHelp Forum




+ Reply to Thread
Page 2 of 2
FirstFirst 1 2
Results 31 to 38 of 38
  1. Member
    Join Date
    Aug 2018
    Location
    Wrocław
    Search PM
    Originally Posted by Selur View Post
    This just throws up more general, not QTGMC related questions. *gig*
    Why the AddGrainC?
    Why ConvertToYUV444? Why for 'a' before and after QTGMC, but for 'b' you only convert to 444 after applying histogram.
    AddGrain for a bigger challenge, not a simple test.
    YUV444 for the same reason as the larger depth -- for greater accuracy.
    The second YUV444 is actually unnecessary.

    Because you are using a script that only uses a fraction of QTGMC.
    Okay, so your statement is only true for specific settings? Maybe it's just one filter that benefits from 16 bit (or the YUV444 conversion). Do you know which parameter in QTGMC is causing the differences.

    If it can be clearly shown, that QTGMC benefits from using 16bit and/or 444, maybe an option for this could be added to QTGMC.
    Why? QTGMC works with the parameters you give it. It's your job to give them the best.
    Quote Quote  
  2. Settings always should be adjusted to the source.
    Do you know which parameter in QTGMC is causing the differences.

    If it can be clearly shown, that QTGMC benefits from using 16bit and/or 444, maybe an option for this could be added to QTGMC.
    ?
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  3. Member
    Join Date
    Aug 2018
    Location
    Wrocław
    Search PM
    Originally Posted by Selur View Post
    Settings always should be adjusted to the source.
    Well, when dividing odd numbers (by 2, because you'll complain) I prefer not to.
    Quote Quote  
  4. Okay, so you have no clue, what happens. Thanks for clearing that up.
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  
  5. Member
    Join Date
    Aug 2018
    Location
    Wrocław
    Search PM
    You too, you didn't even know how to get to it.
    The important thing is that it works.
    Quote Quote  
  6. I took real life footage, no colorbars etc., does not resize changes borders in them etc., of course, with higher chroma resolution, it will look better,
    anyway,
    I picked up a NTSC DV.avi footage which is interesting, has lines, edges, zigzaging, uniform areas prone to banding, and it is a pan.
    Used this script using four formats to generate four clips with different format and QTGMC was applied:
    Code:
    import vapoursynth as vs
    from vapoursynth import core
    from havsfunc import QTGMC
    
    # ffms2 Source loads it as YUV411P8
    clip = core.ffms2.Source(r"D:\delorean_NTSC_DV.avi") 
    clip = clip.std.SetFrameProps(_Matrix=6, _Transfer=6, _Primaries=6)
    
    # there will be as many clips set for output as there are formats here:
    formats = [vs.YUV420P8, vs.YUV422P10, vs.YUV444P10, vs.YUV444P16]
    clips = []
    for index, format in enumerate(formats, start=1):
        c = core.resize.Bicubic(clip, format=format)
        c = QTGMC(c, Preset='Slower', TFF=False)
        c = core.resize.Bicubic(c, format=vs.YUV420P8)
        clips.append(c)
        c.set_output(index)
    
    if __name__ == '__main__':
        import view
        view.Preview(clips)
    At the end all outputs are converted to YUV420P8 because we have to compare that delivery format.
    I encoded four clips with proper naming, using crf0 (it used qp 0), so I think all should be lossless:
    https://files.videohelp.com/u/198160/clip1_420P8.mp4
    https://files.videohelp.com/u/198160/clip2_422P10.mp4
    https://files.videohelp.com/u/198160/clip3_444P10.mp4
    https://files.videohelp.com/u/198160/clip4_444P16.mp4
    each clip has about 50-60MB
    original NTSC DV (27 MB):
    https://files.videohelp.com/u/198160/delorean_NTSC_DV.avi
    Last edited by _Al_; 29th Oct 2024 at 21:52.
    Quote Quote  
  7. btw. I might include windows batch script, to post how easy to encode multiple outputs from a vapoursynth script:
    Code:
    @echo off
    set "script=E:\vapoursynth_script.py"
    set "vspipe=C:\Program Files\VapourSynth\core\vspipe.exe"
    set "ffmpeg=E:\tools\ffmpeg.exe"
    set "encoded_directory=E:\encodes"
    
    set "index=0"
    for %%f in (420P8, 422P10, 444P10, 444P16) do call :encode %%f
    pause
    exit
    
    :encode <a string>
    set /a index+=1
    "%vspipe%" "%script%" --outputindex %index% --container y4m - | "%ffmpeg%" -y -f yuv4mpegpipe -i - -c:v libx264 -crf 0 "%encoded_directory%\clip%index%_%1.mp4"
    goto :eof
    Quote Quote  
  8. @_AI_: Thanks
    On a first glance, using:
    Code:
    clip420P8 = core.lsmas.LibavSMASHSource(source="C:/Users/Selur/Desktop/compare/clip1_420P8.mp4")
    clip422P10 = core.lsmas.LibavSMASHSource(source="C:/Users/Selur/Desktop/compare/clip2_422P10.mp4")
    clip444P10 = core.lsmas.LibavSMASHSource(source="C:/Users/Selur/Desktop/compare/clip3_444P10.mp4")
    clip444P16 = core.lsmas.LibavSMASHSource(source="C:/Users/Selur/Desktop/compare/clip4_444P16.mp4")
    
    clip = core.std.Interleave([clip420P8.text.Text("420P8"), clip422P10.text.Text("422P10"), clip444P10.text.Text("444P10"), clip444P16.text.Text("444P16")])
    Sadly, I can't really see a difference. Can someone else? (Maybe I'll use subtract after work to try spotting differences)
    users currently on my ignore list: deadrats, Stears555, marcorocchini
    Quote Quote  



Similar Threads

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