Posts: 41
Threads: 13
Joined: Nov 2017
hi,
is there a way to specify a opencl device instead of the default one (i have 2 devices - intel and nvidia and i want to use nvidia one)
Posts: 10.927
Threads: 56
Joined: May 2017
QTGMC for Vapoursynth has the following parameters:
QTGMC(Input, Preset='Slower', TR0=None, TR1=None, TR2=None, Rep0=None, Rep1=0, Rep2=None, EdiMode=None, RepChroma=True, NNSize=None, NNeurons=None, EdiQual=1, EdiMaxD=None, ChromaEdi='', EdiExt=None, Sharpness=None, SMode=None, SLMode=None, SLRad=None, SOvs=0, SVThin=0., Sbb=None, SrchClipPP=None, SubPel=None, SubPelInterp=2, BlockSize=None, Overlap=None, Search=None, SearchParam=None, PelSearch=None, ChromaMotion=None, TrueMotion=False, Lambda=None, LSAD=None, PNew=None, PLevel=None, GlobalMotion=True, DCT=0, ThSAD1=640, ThSAD2=256, ThSCD1=180, ThSCD2=98, SourceMatch=0, MatchPreset=None, MatchEdi=None, MatchPreset2=None, MatchEdi2=None, MatchTR2=1, MatchEnhance=0.5, Lossless=0, NoiseProcess=None, EZDenoise=None, EZKeepGrain=None, NoisePreset='Fast', Denoiser=None, FftThreads=1, DenoiseMC=None, NoiseTR=None, Sigma=None, ChromaNoise=False, ShowNoise=0., GrainRestore=None, NoiseRestore=None, NoiseDeint=None, StabilizeNoise=None, InputType=0, ProgSADMask=None, FPSDivisor=1, ShutterBlur=0, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=4, Border=False, Precise=None, Tuning='None', howSettings=False, ForceTR=0, TFF=None, pscrn=None, int16_prescreener=None, int16_predictor=None, exp=None, alpha=None, beta=None, gamma=None, nrad=None, vcheck=None, opencl=False)
see https://github.com/HomeOfVapourSynthEvol...avsfunc.py, line 682+
so as you can see by default this is not possible. (which is why Hybrid doesn't support it)
That said, looking through the source code using openCL will use core.nnedi3cl.NNEDI3CL and core.eedi3m.EEDI3CL.
Looking at those filters:
NNECI3CL:
nnedi3cl.NNEDI3CL(clip, int field[, bint dh=False, bint dw=False, int[] planes, int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, int device=-1, bint list_device=False, bint info=False]
see: https://github.com/HomeOfVapourSynthEvol...h-NNEDI3CL
EEDI3CL:
edi3m.EEDI3CL(clip clip, int field[, bint dh=False, int[] planes, float alpha=0.2, float beta=0.25, float gamma=20.0, int nrad=2, int mdis=20, bint hp=False, bint ucubic=True, bint cost3=True, int vcheck=2, float vthresh0=32.0, float vthresh1=64.0, float vthresh2=4.0, clip sclip=None, int opt=0, int device=-1, bint list_device=False, bint info=False])
both with:
device: Sets target OpenCL device. Use list_device to get the index of the available devices. By default the default device is selected.
this could be added.
=> So atm. the default graphic card will be used. If your NVIDIA card is the default it will be used otherwise the intel card will be used.
QTGMC could be adjusted to use a specific graphic card.
I created an issue inside the havsfunc repository ( https://github.com/HomeOfVapourSynthEvol.../issues/12) asking the maintainer of havsfunc to add this.
Yes, I could add this myself, but it would be a pain to always remember it whenever havsfunc changes.
-> in case Holy (the maintainer) won't add this I might create a custom version of it, but I'd prefer to avoid it.
Cu Selur
Posts: 10.927
Threads: 56
Joined: May 2017
Good news, Holy adjusted havsfunc to support device selection.
-> will add support for it in Hybrid with the next release.
(will send you a link to a dev version for testing once I find time to adjust Hybrid)
Cu Selur
Posts: 41
Threads: 13
Joined: Nov 2017
14.04.2018, 15:44
hohoho so quick response sir ...
thanks a lot
(14.04.2018, 11:40)Selur Wrote: QTGMC for Vapoursynth has the following parameters:
QTGMC(Input, Preset='Slower', TR0=None, TR1=None, TR2=None, Rep0=None, Rep1=0, Rep2=None, EdiMode=None, RepChroma=True, NNSize=None, NNeurons=None, EdiQual=1, EdiMaxD=None, ChromaEdi='', EdiExt=None, Sharpness=None, SMode=None, SLMode=None, SLRad=None, SOvs=0, SVThin=0., Sbb=None, SrchClipPP=None, SubPel=None, SubPelInterp=2, BlockSize=None, Overlap=None, Search=None, SearchParam=None, PelSearch=None, ChromaMotion=None, TrueMotion=False, Lambda=None, LSAD=None, PNew=None, PLevel=None, GlobalMotion=True, DCT=0, ThSAD1=640, ThSAD2=256, ThSCD1=180, ThSCD2=98, SourceMatch=0, MatchPreset=None, MatchEdi=None, MatchPreset2=None, MatchEdi2=None, MatchTR2=1, MatchEnhance=0.5, Lossless=0, NoiseProcess=None, EZDenoise=None, EZKeepGrain=None, NoisePreset='Fast', Denoiser=None, FftThreads=1, DenoiseMC=None, NoiseTR=None, Sigma=None, ChromaNoise=False, ShowNoise=0., GrainRestore=None, NoiseRestore=None, NoiseDeint=None, StabilizeNoise=None, InputType=0, ProgSADMask=None, FPSDivisor=1, ShutterBlur=0, ShutterAngleSrc=180, ShutterAngleOut=180, SBlurLimit=4, Border=False, Precise=None, Tuning='None', howSettings=False, ForceTR=0, TFF=None, pscrn=None, int16_prescreener=None, int16_predictor=None, exp=None, alpha=None, beta=None, gamma=None, nrad=None, vcheck=None, opencl=False)
see https://github.com/HomeOfVapourSynthEvol...avsfunc.py, line 682+
so as you can see by default this is not possible. (which is why Hybrid doesn't support it)
That said, looking through the source code using openCL will use core.nnedi3cl.NNEDI3CL and core.eedi3m.EEDI3CL.
Looking at those filters:
NNECI3CL:
nnedi3cl.NNEDI3CL(clip, int field[, bint dh=False, bint dw=False, int[] planes, int nsize=6, int nns=1, int qual=1, int etype=0, int pscrn=2, int device=-1, bint list_device=False, bint info=False]
see: https://github.com/HomeOfVapourSynthEvol...h-NNEDI3CL
EEDI3CL:
edi3m.EEDI3CL(clip clip, int field[, bint dh=False, int[] planes, float alpha=0.2, float beta=0.25, float gamma=20.0, int nrad=2, int mdis=20, bint hp=False, bint ucubic=True, bint cost3=True, int vcheck=2, float vthresh0=32.0, float vthresh1=64.0, float vthresh2=4.0, clip sclip=None, int opt=0, int device=-1, bint list_device=False, bint info=False])
both with:
device: Sets target OpenCL device. Use list_device to get the index of the available devices. By default the default device is selected.
this could be added.
=> So atm. the default graphic card will be used. If your NVIDIA card is the default it will be used otherwise the intel card will be used.
QTGMC could be adjusted to use a specific graphic card.
I created an issue inside the havsfunc repository (https://github.com/HomeOfVapourSynthEvol.../issues/12) asking the maintainer of havsfunc to add this.
Yes, I could add this myself, but it would be a pain to always remember it whenever havsfunc changes.
-> in case Holy (the maintainer) won't add this I might create a custom version of it, but I'd prefer to avoid it.
Cu Selur
i i have red this this is a reason for my question.
now i have another one - how to use dgindexnv and im libs with vapoursync? tried to copy them near anywhere ...
Posts: 10.927
Threads: 56
Joined: May 2017
Quote:now i have another one - how to use dgindexnv and im libs with vapoursync? tried to copy them near anywhere ...
?im libs? <- no clue what you want to say,.. lost in translation
vapoursync <- I suspect you mean Vapoursynth
To use DGDecNV:
- the DGNV files:
- DGDecodeNV.dll
- DGIndexNV.exe
- license.txt
- need to be placed into the 'Hybrid\64bit\vsfilters\SourceFilter\DGDecNV' folder.
- 'Filtering->Vapoursynth->Misc->Input->Use DGDevNV when avaialable' needs to be enable
Cu Selur
Posts: 10.927
Threads: 56
Joined: May 2017
Send you dev version for testing which allows to set the openCL device for QTGMC.
Cu Selur
Posts: 41
Threads: 13
Joined: Nov 2017
Posts: 10.927
Threads: 56
Joined: May 2017
14.04.2018, 21:46
(This post was last modified: 14.04.2018, 21:46 by Selur.)
Hybrid will look for the DGIm files in 'Hybrid\64bit\vsfilters\SourceFilter\DGDecIM', so you need to place them an the license.txt there and enable 'Filtering->Vapoursynth->Misc->Input->Use DGDevIM when available'.
Cu Selur
Posts: 41
Threads: 13
Joined: Nov 2017
looks working fine,
now with dgindex nv the encoding speed together with deinterlace is 17 fps instead of 5
thx
Posts: 41
Threads: 13
Joined: Nov 2017
it seems that opencl qtgmc part is not running on nvidia for some reasons. but i can combine decode on nvidia and deinterlace on intel ...
|