Log in

View Full Version : DGAVCDecNV 1.0.13: GPU decoding on Nvidia


Pages : 1 2 3 4 5 6 7 8 9 10 11 12 13 [14] 15 16 17 18 19 20 21 22 23 24 25 26 27

woah!
29th October 2008, 01:27
sorry if this question is unsuitable for this thread topic, but would this setup give good de-interlaced results for sports OTA mpeg2 1080i. i ask because if it can i will invest in a nvidia card and support this program for sure. i basically use a script to resize and deinterlace and encode cmd line x264. i run a ati4850 at the moment but hey i will use whatever suits my needs.

is the deinterlacing engine in purevideo one for the better ones out there?

Guest
29th October 2008, 01:34
If you want very fine single rate deinterlacing of that material this is definitely for you. If you'd like to post an unprocessed sample, I'll run it through and post the result so that you can assess the results. I'll also advise you on card selection. You don't need a really high-end card. Mine is about as low as you can get ($50), but it still kicks some major butt.

EDIT: I just noticed you said MPEG2! You'll have to wait a bit for that. I'm working on it. But go ahead and post a sample. I'll use it as a test clip.

woah!
29th October 2008, 01:45
If you want very fine single rate deinterlacing of that material this is definitely for you. If you'd like to post an unprocessed sample, I'll run it through and post the result so that you can assess the results. I'll also advise you on card selection. You don't need a really high-end card. Mine is about as low as you can get ($50), but it still kicks some major butt.

EDIT: I just noticed you said MPEG2! You'll have to wait a bit for that. I'm working on it. But go ahead and post a sample. I'll use it as a test clip.

cool thx for the quick reply,, i am uploading a 1min clip which is 124meg in size. i will edit this post with the url as soon as its uploaded thx :)

its pretty tough source as its ice hockey footage so it should test purevideo heh...

heres the clip, and i did read your edit about mpeg2 thx.

http://tinyurl.com/6g8dzw

Guest
29th October 2008, 21:14
from the current condition of the nvidia code, what can you currently achieve towards your plans? I have everything that I need. All three are in progress. I'll probably deliver in this order:

1. Single instance double rate deinterlacing (because it's easy).

2. MPEG1/MPEG2 (because random access is already understood).

3. VC-1 (hardest because technology for random access needs to be designed, although the decoding is there already).

Sagekilla
29th October 2008, 22:03
Wait, you get MPEG-1 acceleration on the hardware? Huh, I didn't think they even had that there anymore.

rack04
29th October 2008, 23:08
Where does MKV and MP4 container support factor into your plans?

Guest
29th October 2008, 23:23
Most likely after all the raw formats are supported. Unfortunately, there's only one of me. :(

@Sagekilla

Don't you read the source code? It's right there in the Nvida header file. And why would they support MPEG2 and not MPEG1? They have to support anything that DXVA can play, and MPEG1 is still an acceptable DVD video format.

Sagekilla
29th October 2008, 23:27
I haven't looked at the source code, but I just didn't think we had hardware decoding of MPEG-1 because, relative to MPEG-2 and H.264, it's a fairly simple format. Certainly doesn't hurt, but I was just surprised by it.

Guest
29th October 2008, 23:30
It's a subset of MPEG2 so all the acceleration HW is the same; why not use it?

rack04
29th October 2008, 23:39
Most likely after all the raw formats are supported. Unfortunately, there's only one of me. :(

Yes, very unfortunate. :)

woah!
30th October 2008, 02:11
well i decided to grab a 260GTX for gaming aswell as this cuda stuff, so have donated now :) my ati4850 can go in a build elsewhere...

Guest
30th October 2008, 02:40
I'll trade you my 8500GT for it. And I'll throw in a Britney Spears DVD.

@ all

I've updated the CUDA development dialog. As always, thanks to Nvidia for their amazing support.

http://neuron2.net/dgavcdecnv/cuda/cuda.html

squid_80
30th October 2008, 04:29
2. MPEG1/MPEG2 (because random access is already understood).I will be highly surprised if HW accelerated MPEG1/MPEG2 shows any benefits over existing solutions.

woah!
30th October 2008, 05:19
I will be highly surprised if HW accelerated MPEG1/MPEG2 shows any benefits over existing solutions.

true but i want it for its deinterlacing function through purevideo on mpeg2 interlaced source. i didnt think i would get more speed either.

kemuri-_9
30th October 2008, 05:26
i tossed some dvd .vobs at cudaVideoDecode (a part of the cuda toolkit) and it was pretty nice
took ~1.5% cpu with about 19.2 MB ram allocated to it to knock it out at 60fps and deinterlaced properly

squid_80
30th October 2008, 06:11
Believe me I'd like to be proven wrong, but even using a card with VP3 (full mpeg2 acceleration) CUDA's decoding speed is well below dgmpgdec (not to mention more optimized decoders) and since MPEG2 requires so little cpu power these days there's no apparent speed difference when feeding x264/xvid_encraw. I can see how the deinterlacer might appeal to some but personally if the source is interlaced I keep it that way when making the backup.
VC1, now there's something interesting. Advanced profile is relatively easy to parse due to start codes - in fact, you could almost get away with just changing the mpeg2 startcode definitions.

Sagekilla
30th October 2008, 06:24
Well, given a sufficiently fast CPU any multithreaded and heavily optimized decoder can outperform the VPx hardware. All the VPx hardware out there right now is fixed clock speed, and you end up getting (more or less) the same performance decoding 720p as 1080p, for example. MPEG-2 @ 720p would decode faster than MPEG-2 @ 1080p obviously on a CPU, but if you had some ridiculously huge bitrate streams, then the VP hardware would have an edge up still.

lexor
30th October 2008, 13:45
Believe me I'd like to be proven wrong, but even using a card with VP3 (full mpeg2 acceleration)

According to CUDA Engineer reply in the dialogue that Neuron keeps track of, there is no such thing as VP3, VP2 has all the bells and whistles that VP3 is claimed to have (wikipedia is lying to us again).

lucassp
30th October 2008, 15:09
Google tells me only G98 has VP3.

Sagekilla
30th October 2008, 15:14
VP3 is VP2 with full VC-1 and MPEG-2 acceleration tweaks, but VP3 isn't an official designation. It's like we have SSSE3 and we called it SSE4 before it was identified as SSSE3, more or less.

VP3 s not an official name, but the fact is that the newer cards have extra VP hardware on them.

lexor
30th October 2008, 15:37
VP3 is VP2 with full VC-1 and MPEG-2 acceleration tweaks, but VP3 isn't an official designation. It's like we have SSSE3 and we called it SSE4 before it was identified as SSSE3, more or less.

VP3 s not an official name, but the fact is that the newer cards have extra VP hardware on them.
According to the CUDA dialogue:


[Engineer E]
The Wikipedia information is incorrect. 9600GT has the same VP2 engine just like the 9800GTX and Geforce GTX 280's

You've got even newer cards than those, sagekilla? Do tell.

squid_80
30th October 2008, 15:57
According to CUDA Engineer reply in the dialogue that Neuron keeps track of, there is no such thing as VP3, VP2 has all the bells and whistles that VP3 is claimed to have (wikipedia is lying to us again).
My information comes from the same engineers (at least their names begin with the same letters).
You've got even newer cards than those, sagekilla? Do tell. You're aiming in the wrong direction; think cheaper (http://arstechnica.com/journals/thumbs.ars/2007/06/12/nvidia-to-release-65nm-geforce-8400).

Guest
30th October 2008, 21:31
According to CUDA Engineer reply in the dialogue that Neuron keeps track of, there is no such thing as VP3, VP2 has all the bells and whistles that VP3 is claimed to have (wikipedia is lying to us again). Did you miss this from Engineer O:

"Let me know when you have a beta - I'll give it a try and see how it performs on VP3 :)"

lexor
31st October 2008, 00:19
Did you miss this from Engineer O:

"Let me know when you have a beta - I'll give it a try and see how it performs on VP3 :)"

No I didn't, but from context it seemed like it was an unreleased part that he was going to test it on. Am I wrong? Something is out with VP3 already?

ghostonline
31st October 2008, 03:25
VP3 has been out since last year with the introduction of new version of 8400gs (core G98). orginal 8400gs is G86 (VP2 only). as far as i can remember, cards base on core G86, G92, G94, G96(not so sure, they revised few times), gt200 are vp2 only. IGP 8200/8300, G98 8400 ( any other cards based on G98), possible one or 2 other G9x cores have VP3.

NV is swaping cores on the same card series all the time. just like 8400gs G86 to G98, 9600gso went from G92 to G94..

elitondimer
1st November 2008, 14:30
Here the dgavcdecnv.dll does not work

I have:
1 - XFX Geforce 8600GT
2 - Windows Vista 32-bit
3 - plugins nvcuda.dll, nvapi.dll, nvcuvid.dll in the System32 folder
4 - Driver 178.13 installed
5 - Cuda Toolkit 2.0 installed
6 - Cuda SDK installed
7 - DGAVCIndexNV 1.0.5 installed

I generated one ''file.DGA'' using DGavcdecNV.exe and in my ''file.AVS'' has the

following:

LoadPlugin ( "C: \ Program Files \ Megui \ dgAVCdecNV \ DGAVCDecodeNV.dll")
LoadPlugin ( "C: \ Program Files \ Megui \ dgAVCdecNV \ Decomb.dll")
AVCSource ( "G: \ ns70v2.dga")
fielddeinterlace ()

I loaded the CUVIDserver.exe, so I used the VirtualDub to import the file.avs, disable the priview the video, started the encode but the processor is at 100% and the video is encoded in 2 FPS. then tried to use the meGUI and the Video is at 10 FPS and 100% CPU utilization. I too disabled the display but not worked.

I'm doing something wrong? why DGAVCDecodeNV.dll don't work here?

Guest
1st November 2008, 14:46
Does it decode and display the video in VirtualDub?

What is the size of the video frames?

What happens when you omit FielDeinterlace()?

roozhou
1st November 2008, 15:48
Here the dgavcdecnv.dll does not work

I have:
1 - XFX Geforce 8600GT
2 - Windows Vista 32-bit
3 - plugins nvcuda.dll, nvapi.dll, nvcuvid.dll in the System32 folder
4 - Driver 178.13 installed
5 - Cuda Toolkit 2.0 installed
6 - Cuda SDK installed
7 - DGAVCIndexNV 1.0.5 installed

I generated one ''file.DGA'' using DGavcdecNV.exe and in my ''file.AVS'' has the

following:

LoadPlugin ( "C: \ Program Files \ Megui \ dgAVCdecNV \ DGAVCDecodeNV.dll")
LoadPlugin ( "C: \ Program Files \ Megui \ dgAVCdecNV \ Decomb.dll")
AVCSource ( "G: \ ns70v2.dga")
fielddeinterlace ()

I loaded the CUVIDserver.exe, so I used the VirtualDub to import the file.avs, disable the priview the video, started the encode but the processor is at 100% and the video is encoded in 2 FPS. then tried to use the meGUI and the Video is at 10 FPS and 100% CPU utilization. I too disabled the display but not worked.

I'm doing something wrong? why DGAVCDecodeNV.dll don't work here?

That's normal. Because DGAVCDecodeNV only reduces CPU load on decoding. Since encoding normally consumes 10x+ CPU times than decoding and so far no codecs that meGUI or VDub uses supports CUDA, you can hardly notice any speedup with DGAVCDecodeNV when encoding.

Guest
1st November 2008, 16:33
Thanks, roozhou, I didn't notice he said he'd started an encode.

On some machines there may be a small performance improvement, but the main purpose of using CUDA is to get correct decoding for the streams that are not handled by libavcodec, and to access some of the post-processing capabilities of CUDA. Also, to add support for VC-1 in the future.

elitondimer
1st November 2008, 18:28
That's normal. Because DGAVCDecodeNV only reduces CPU load on decoding. Since encoding normally consumes 10x+ CPU times than decoding and so far no codecs that meGUI or VDub uses supports CUDA, you can hardly notice any speedup with DGAVCDecodeNV when encoding.

but I still wonder why he can not use the GPU for encode the videos and have increased the speed of encode, someone help me?

Guest
1st November 2008, 22:38
You're wondering why DGAVCDecNV cannot use the GPU to encode the video?

It's very simple. DGAVCDecNV is a decoder, not an encoder.

elitondimer
1st November 2008, 23:38
You're wondering why DGAVCDecNV cannot use the GPU to encode the video?
It's very simple. DGAVCDecNV is a decoder, not an encoder.

OK, I understand. only 2 questions:
1 - It's possible use this plugin with the tmpgenc plus?
2 - you want to launch a video encoder with the power of the GPU?

Guest
1st November 2008, 23:50
1 - It's possible use this plugin with the tmpgenc plus? If that application can open Avisynth scripts, then yes.

2 - you want to launch a video encoder with the power of the GPU? I never said anything about that. I make a decoder. Go talk to the guys that make encoders. It's OT for this thread, so please drop it.

woah!
2nd November 2008, 01:45
just to let you know, i saw a driver set on nvidia's site http://www.nvidia.com/object/winxp_180.43_beta.html

Version: 180.43 which crashes your server app on my setup anyways.. back to the GeForce Release 178 WHQL Version: 178.24 and all is good. i know they were beta and this is just for reference in case anyone else has issues...

Guest
2nd November 2008, 02:57
I've informed Nvidia. Thank you.

saint-francis
3rd November 2008, 04:56
On some machines there may be a small performance improvement, but the main purpose of using CUDA is to get correct decoding for the streams that are not handled by libavcodec, and to access some of the post-processing capabilities of CUDA. Also, to add support for VC-1 in the future.

Does CoreAVC correctly handle the sources that libavcodec doesn't? If so then the advantage DGAVCdecNV has over it with directshowsource is frame accuracy?

This is an important question for me (as an ATI owner) and many others since ATI doesn't support CUDA and purchasing a new video card can be a big step.

avivahl
3rd November 2008, 13:05
@neuron2: I'm not really familiar with how it all works, but will it ever be possible to have a H.264 DirectShow decoder/filter that uses CUDA the way DGAVCDecNV does? Currently, MPC-HC and PowerDVD use DXVA (which is somewhat similar, but buggy/restricted)...

nm
3rd November 2008, 13:55
@neuron2: I'm not really familiar with how it all works, but will it ever be possible to have a H.264 DirectShow decoder/filter that uses CUDA the way DGAVCDecNV does? Currently, MPC-HC and PowerDVD use DXVA (which is somewhat similar, but buggy/restricted)...
The next version of CoreAVC should have similar CUDA support.

Guest
3rd November 2008, 13:57
Does CoreAVC correctly handle the sources that libavcodec doesn't? If so then the advantage DGAVCdecNV has over it with directshowsource is frame accuracy? Yes, that is the point of DGAVCDecNV, to be a frame accurate Avisynth source filter. Many people also find DGAVCIndexNV to be a useful little app in its own right for quickly inspecting AVC streams, getting PIDs, seeing what audio is present, etc. The NV support also brings you the PureVideo deinterlacing. And it will bring you VC-1 support in the future. For some it also brings a performance inprovement when transcoding. For fast systems, that will be modest.

Guest
3rd November 2008, 14:00
will it ever be possible to have a H.264 DirectShow decoder/filter that uses CUDA the way DGAVCDecNV does? Currently, MPC-HC and PowerDVD use DXVA (which is somewhat similar, but buggy/restricted)... Yes, of course. IIRC, CoreAVC plans to roll out CUDA support at some point.

Devilman1
3rd November 2008, 23:43
Do you plan to add ATI support? At the beginning of the post you said so, but I didn't see any other information.
Or the ATI decoding is not so friendly in this kind of operation?

Thanks

Sharc
3rd November 2008, 23:46
.....DGAVCDecNV....... And it will bring you VC-1 support in the future .....
Good news! Much appreciated :)

woah!
4th November 2008, 01:54
Yes, that is the point of DGAVCDecNV, to be a frame accurate Avisynth source filter. Many people also find DGAVCIndexNV to be a useful little app in its own right for quickly inspecting AVC streams, getting PIDs, seeing what audio is present, etc. The NV support also brings you the PureVideo deinterlacing. And it will bring you VC-1 support in the future. For some it also brings a performance inprovement when transcoding. For fast systems, that will be modest.

sorry to ask this again, but just to clear my mind of this, i know this is AVCindex but will you be adding mpeg2 NV decode to this app, or maybe to your other app DGIndex ?

avc and vc1 of course makes sense, but using purevideo to deinterlace mpeg2 content before passing to the encoder would be great :) i have lost the plot it seems...

Guest
4th November 2008, 02:09
Do you plan to add ATI support? At the beginning of the post you said so, but I didn't see any other information.
Or the ATI decoding is not so friendly in this kind of operation? It's possible but unlikely. I simply have too much on my plate already and I own an Nvidia card, so...

Guest
4th November 2008, 02:11
sorry to ask this again, but just to clear my mind of this, i know this is AVCindex but will you be adding mpeg2 NV decode to this app, or maybe to your other app DGIndex? One way or another I will have CUDA support for MPEG2. It's a feature that I need myself, so the likliehood of rapid implementation is very high. Higher than VC-1. But right now I am just finishing up double rate deinterlacing for DGAVCDecNV.

Sagekilla
4th November 2008, 03:51
neuron2, is the double rate deint is already present in hardware? or did you have to do extra tricks with single rate to get double rate too?

Guest
4th November 2008, 04:01
It's already present. The only trickiness needed is in the random access code of DGAVCDecodeNV. It uses a single instance of the decoder.

slip_
5th November 2008, 01:53
Hi!

I've muxed out a .264 file (from a Bluray disc with tsmuxer), and when I tried to load it the following error message is appeard:
GPU decoder: Failed to create video decoder [100]
CUDA driver, sdk, toolkit is installed, i've started the server application, and the dll file is in the right place (Windows\SysWOW64)

My pc details:
OS: Vista Business x64 SP1
CPU: AMD Athlon 64 X2 64 6000+
GPU: 8800GTS 320MB (NV50/G80 revision A2)

I hope that somebody can help me

Guest
5th November 2008, 02:29
What Nvidia driver version are you running?

nm
5th November 2008, 07:24
GPU: 8800GTS 320MB (NV50/G80 revision A2)
G80 chips don't have VP2, so you'll need to get a new graphics card.