Shijan, I Think i found what we need For the qtgmc problem.
https://github.com/HomeOfVapourSynthEvol...-TDeintMod
it’s called TDeintmod and meatwad already compiled this ages ago. It’s on his server.
Selur, is there a way when using Reverse telecine VIVTC with qtgmc and needi3 as the deinterlacer it can Use the TDeintMod, instead of TDeint?
TDeintmod only sends combed Interlaced frames to Qtgmc, and leaves progressive ones alone. (original TDeint sends all which potentially causes jaggies)
Thanks.
Posts: 785
Threads: 16
Joined: Mar 2020
Filtering -> Other -> VFM - popup error window "Got an empty value for 'vsOVFMMChroma', please report to Selur!"
Also with default settings it gives me this error
Failed to evaluate the script:
Python exception: VFM: Invalid mi threshold specified
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
File "/Volumes/temp/Hybrid Temp/tempPreviewVapoursynthFile03_34_07_533.vpy", line 32, in <module>
clip = core.vivtc.VFM(clip=clip, order=0, blockx=4, blocky=4)
File "src/cython/vapoursynth.pyx", line 2069, in vapoursynth.Function.__call__
vapoursynth.Error: VFM: Invalid mi threshold specified
Posts: 785
Threads: 16
Joined: Mar 2020
Updated DotKill ERROR https://www.mediafire.com/folder/wvdlnja...qrek88a7bp
Failed to evaluate the script:
Python exception: There is no function named DotKill
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
File "/Volumes/temp/Hybrid Temp/tempPreviewVapoursynthFile07_40_22_590.vpy", line 24, in <module>
clip = core.dotkill.DotKill(clip=clip)
File "src/cython/vapoursynth.pyx", line 1934, in vapoursynth.Plugin.__getattr__
AttributeError: There is no function named DotKill
AA -> Santiag EMPTY vsViever screen when i use Type: sangnom or Type: selectHV/sangnom/sangnom
Posts: 10.556
Threads: 57
Joined: May 2017
04.09.2020, 16:33
(This post was last modified: 04.09.2020, 16:55 by Selur.)
Quote: What exactly wrong with ProRes?
It's not lossless and as such not a good choice as intermediate format.
Quote:By the way how about add CineForm codec to Hybrid export options?
https://github.com/gopro/cineform-sdk
a. I don't have a solution for all currently used tools in Hybrid
b. like you notice yourself, there are still tons of problems to get all the Vapoursynth stuff working
-> adding new stuff would just be stupid
Quote:Selur, is there a way when using Reverse telecine VIVTC with qtgmc and needi3 as the deinterlacer it can Use the TDeintMod, instead of TDeint?
What makes you think QTGMC uses TDeint?
When looking at https://github.com/Selur/VapoursynthScri...avsfunc.py I see no call of tdeint or tdeintmod in QTGMC.
-> I think you misunderstood something.
Quote:Filtering -> Other -> VFM - popup error window "Got an empty value for 'vsOVFMMChroma', please report to Selur!"
Like I wrote before I need details to reproduce this.
Quote:Also with default settings it gives me this error:
...
Invalid mi threshold specified
...
the defaults would used:
[ode]
clip = core.vivtc.VFM(clip=clip, order=0, mode=1)
clip = core.vivtc.VDecimate(clip=clip)# new fps: 23.976
[/code]
you used:
clip = core.vivtc.VFM(clip=clip, order=0, blockx=4, blocky=4)
-> I adjusted the code to limit mi to blockx*blocky
Quote:Updated DotKill ERROR ...
clip = core.dotkill.DotKill(clip=clip)
is the proper syntax, seems like either the library is broken or something hinders Vapoursynth from loading the library.
-> Not a Hybrid bug.
Quote:AA -> Santiag EMPTY vsViever screen when i use Type: sangnom or Type: selectHV/sangnom/sangnom
Looking at the script https://github.com/Selur/VapoursynthScri...avsfunc.py in line 195 Santiag uses:
c.sangnom.SangNom(order=field, aa=aa)
which is a correct call using SangNom ( https://github.com/dubhater/vapoursynth-sangnom) so assuming you have libsangnom.dylib it should work.
Just tested on Windows and it seems like there's a bug in Santiag, since using SangNom gives:
SangNom: the _FieldBased frame property must be either 1 (bottom field first) or 2 (top field first) when order is 0 (double rate output). Did you forget to invoke DoubleWeave before SangNom?
-> it's a bug in the Santiag script, it should be using 'SangNomMod' instead of Sangnom or be adjusted.
Posted an issue about it over at: https://github.com/HomeOfVapourSynthEvol.../issues/35
will adjust havsfunc for Hybrid to use sangnommod and remove the sangnom option for MacOS.
Cu Selur
ps.: uploaded a new version which removes sangnom form Santiag and fixed the mi restriction.
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Selur,
I think i miss spoke
In VIVTC i understood that TDeint is used as post-processor (something to get rid of the combed frames IVTC misses),
You recently added qtgmc and needi3 to VIVTC as a deinterlacer of residual combed frames.
Shijan has said that when using qtgmc and needi3 that there are jaggies on straight lines oriented diagonally. But not on the vivtc internal deinterlacer.
This has been mentioned before and people have suggested that TDeint is the culprit for miss catagorizing progressive frames as combed. And hence TDeintmod was created. As it will only send combed frames.
So what i gather you are saying is VIVTC does not call or use TDeint in any form or function. (i Also know qtgmc likewise doesn’t use TDeint)
Because if VIVTC does use TDeint, i was asking if we could substitute TDeintMod instead.
Hope that makes sense,
f = 1 #field
clip = core.vivtc.VFM(clip, mode = 0, order=f, mi = 74, cthresh = 8) #IVTC
def conditionalDeint(n, f, orig, deint):
if f.props._Combed:
return deint
else:
return orig
deint = core.tdm.TDeintMod(clip, order=1, edeint=core.nnedi3.nnedi3(clip, field=1)) #Deinterlacer goes here!
#deint = havsfunc.QTGMC(clip, TFF=True, Preset="Medium", InputType=2 ) #Slower alternative, untested
combProps = clip #Get _Combed flag from VFM
#combProps = core.tdm.IsCombed(clip) #Get _Combed flag from IsCombed.
clip = core.std.FrameEval(clip, functools.partial(conditionalDeint, orig=clip, deint=deint), clip)
clip = core.vivtc.VDecimate(clip)
Posts: 10.556
Threads: 57
Joined: May 2017
Atm. VIVTC does use it's inner deinterlacer by default and I added the options to use QTGMC or NNEDI3 for it.
It doesn't use TDeint. (I could modify Hybrid to use TDeintMod additionally to NNEDI3 and QTGMC, but that might not solve your problem if that was caused by the usage of TDeint.)
Cu Selur
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
(04.09.2020, 17:00)Selur Wrote: Atm. VIVTC does use it's inner deinterlacer by default and I added the options to use QTGMC or NNEDI3 for it.
It doesn't use TDeint. (I could modify Hybrid to use TDeintMod additionally to NNEDI3 and QTGMC, but that might not solve your problem if that was caused by the usage of TDeint.)
Cu Selur True if it never used tdeint to begin with, adding something may add more issues to it.
Or by not having it, It’s like “on” by default, meaning by default all frames are being sent to qtgmc or needi3, and maybe having tdeintmod which has “IsCombed“ built in which is a utility function to check whether or not a frame is combed and stores the result (0 or 1) as a frame property named _Combed. It's intended to be used within std.FrameEval to process only combed frames and leave non-combed frames untouched.
I honestly dont know if what I’m saying makes sense. And i wouldn’t even begin to know if it fixes what shijan mentioned happens (jaggies).
It is a tough call, maybe an alternative test build with tdeintmod that shijan could play around with. If he thinks it’s pointless and you think it is pointless, then i am ok with not adding it.
i’m literally scouring videohelp for similar situations either in vapoursynth or avisynth, and taking note of their solutions. And ask this forum if they think the solution would work with our setup. In the meantime i will look for other options.
P.S. Meatwad is finished compiling anime4k
https://www.mediafire.com/folder/wvdlnja...lnjapm1vvw
thank you for the info.
Posts: 785
Threads: 16
Joined: Mar 2020
Filtering -> Other -> VFM - fixed now (no more popup error window)
Hope developers will edit Santiag to use SangNom instead of SangNomMod.
DotKill is loading but gives error in Hybrid. Here is info from Terminal.
/usr/local/bin/vspipe --info /Users/shph/Desktop/test.vpy -
Script evaluation failed:
Python exception: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib
Traceback (most recent call last):
File "src/cython/vapoursynth.pyx", line 2244, in vapoursynth.vpy_evaluateScript
File "src/cython/vapoursynth.pyx", line 2245, in vapoursynth.vpy_evaluateScript
File "/Users/shph/Desktop/test.vpy", line 20, in <module>
core.std.LoadPlugin('/Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib')
File "src/cython/vapoursynth.pyx", line 2069, in vapoursynth.Function.__call__
vapoursynth.Error: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib
Posts: 10.556
Threads: 57
Joined: May 2017
04.09.2020, 20:21
(This post was last modified: 04.09.2020, 20:22 by Selur.)
Python exception: Plugin /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib already loaded (com.vapoursynth.dotkill) from /Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib
seems like it's already loaded and loaded again,...
core.std.LoadPlugin('/Library/Frameworks/VapourSynth.framework/lib/vapoursynth/dotkill64.dylib')
is the problem.
I checked the script Hybrid generates here and that line isn't included there.
-> must be your self-written script which tries to load a library that is already loaded
----
Dev versions are in the 'experimental'-folder of my GoogleDrive, which is linked on the download page.
Posts: 785
Threads: 16
Joined: Mar 2020
Yes, it is just a test script. Plugin already in autoload folder and i load it with script again.
If script reports that plugin already loaded - it means that loading works.
|