[RESOLVED] Using nvidia "functions" with dgindexnv.exe

Support forum for DGDecNV
Post Reply
DAE avatar
mastrboy
Posts: 36
Joined: Wed Oct 27, 2010 10:28 am

[RESOLVED] Using nvidia "functions" with dgindexnv.exe

Post by mastrboy »

Can we use nvidia's control panel functions with dgindexnv, in example, to offload antialiasing to the GPU?

Best way to explain what i mean is with a screenshot:
Image

Let's say i set Anisotropic filtering to 16x with this, will dgindexnv decoding then do a 16x filtering or will the video be unaffected?

Basicly i'm looking for a way to speed up antialiasing of HD sources as setmtmode in avisynth is not exactly bug-free and usually crashes...
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by admin »

Those functions are not available for CUVID postprocessing. Until they are added to the CUVID API, I cannot invoke them. I can, however, write my own CUDA postprocessors. It's something I've been considering, but probably my first one will be for deinterlacing better than PureVideo or for denoising.
DAE avatar
mastrboy
Posts: 36
Joined: Wed Oct 27, 2010 10:28 am

Re: Using nvidia "functions" with dgindexnv.exe

Post by mastrboy »

just as i initially thought, had to ask anyway...

Then i'm stuck with setmtmode for now...
DAE avatar
lych
Posts: 5
Joined: Fri Oct 08, 2010 1:30 am

Re: Using nvidia "functions" with dgindexnv.exe

Post by lych »

OH COOL!!! I hope your first one will be a denoiser. Avisynth script denoisers can be painfully slow (like mc_spuds, MCTemporalDenoise, etc...).
DAE avatar
Didée
Posts: 22
Joined: Wed Oct 27, 2010 2:19 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by Didée »

lych wrote:OH COOL!!! I hope your first one will be a denoiser. Avisynth script denoisers can be painfully slow (like mc_spuds, MCTemporalDenoise, etc...).
Those are highly sophisticated denoising scripts, making very big effort to come to an optimal result. An important part of the big effort is active motion search / motion compensation.
In contrast, a basic plain filter like TemporalSoften or RemoveGrain is extremely fast. Of course.

If/when admin comes up with CUDA denoising filters, they will (most probably) be more similar to TemporalSoften or RemoveGrain, not complicated like mc_spuds or MCTemporalDenoise. Also, most probably they will not perform active motion search. (No matter what marketing hype you read all over the internet - GPUs are not well suited to perform active motion search.)

***

Regarding "Using NVidia functions for anti-aliasing":

It seems you don't have the right picture of what is going on. It's not the question if or how you can or cannot access those functions. The point is that those functions are not suited at all to perform antialiasing of video content. It's a completely different ballgame!

Basically, just for imagination: The functions for AntiAliasing and Anisotropic Filtering are used when you have an abstract model of a scenery (say, controlpoints of a wireframe), and are going to render a representation of that onto a grid with fixed resolution (i.e. the screen, with a resolution of X by Y pixels). The D3D functions help to make the result of this rendering process visually more pleasing.

Now, when you have a video, then the data for NVidia's functions to work don't even exist! All you have is a set of pixels, and those D3D functions can not be used on that.


Again, but shorter: AntiAliasing and Anisotropicfilter is used when you transform an abstract model into discrete pixels.
In a video source, you don't have an abstract model to begin with. You only have the discrete pixels. NV functions are not made to work with that.
User avatar
admin
Posts: 4551
Joined: Thu Sep 09, 2010 3:08 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by admin »

Welcome to the forum, Didée. 8-)

My aims are modest. Obviously, as you say, I am not going to be able to implement TGMC on the GPU. I hope only to offer some reasonably useful denoising that won't eat up CPU. Or, some better deinterlacing than PureVideo. The former is easier of course, since there is *no* denoising available in CUVID, so it won't be hard to better it. :lol:
DAE avatar
lych
Posts: 5
Joined: Fri Oct 08, 2010 1:30 am

Re: Using nvidia "functions" with dgindexnv.exe

Post by lych »

Would it be possible to use the cpu for motion search estimation and the gpu for the actual denoising? Sort of a cpu + gpu combo thing? Actually, a complex denoiser on the gpu is sort of a dream/fantasy of mine (damn I'm a geek). I would be happy with something like mplayer's denoiser (hqdn3d is the avisynth port of it) on the gpu.
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by Guest 2 »

Didée wrote:If/when admin comes up with CUDA denoising filters, they will (most probably) be more similar to TemporalSoften or RemoveGrain, not complicated like mc_spuds or MCTemporalDenoise. Also, most probably they will not perform active motion search. (No matter what marketing hype you read all over the internet - GPUs are not well suited to perform active motion search.)
Shouldn't be easier to implement a hybrid solution, such as MVTools for searching and CUDA for denoising?
DAE avatar
Didée
Posts: 22
Joined: Wed Oct 27, 2010 2:19 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by Didée »

A hybrid version of MVTools+CUDA doesn't sound very promising to me. If you look at e.g. MDegrain2, you'll find the whole thing spends like 65% of its time on SuperClip+VectorSearch, 25% on the (block overlapped) compensation while the denoiser fetches pixels, and only 10% time on the actual denoising. (Don't quote me on those figures! - they're very rough estimates, and of course it depends heavily on the MAnalyse settings, which can be faster or much slower even).
It's obvious that a potential MVTools->MotionSearch/CUDA->denoise Hybrid would offer not that much of a speedup. Also, the interaction of {making the GPU use the CPU-prepared data) is not exactly trivial, and surely will add more overhead to the complete chain. Add to that that you can multithread a pure MDegrain-script and get an immense performance boost. But as soon as the GPU enters the game, multithreading the CPU part may become much harder, perhaps even impossible.

I happily would be wrong on this whole matter ... but my hopes are little.
DAE avatar
Guest 2
Posts: 903
Joined: Mon Sep 20, 2010 2:18 pm

Re: Using nvidia "functions" with dgindexnv.exe

Post by Guest 2 »

Didée wrote:A hybrid version of MVTools+CUDA doesn't sound very promising to me.
Didée, you are crystal clear, as always.

Which kind of motion search (if any) do vReveal and other similar GPU engines use?
Post Reply