View Full Version : DGAVCDecNV 1.0.13: GPU decoding on Nvidia
xopowo
29th September 2008, 15:01
Just tell me with an exact error message in text. Your link is all screwed up and I can't see anything.
VirtualDubMod.exe - Application Error
The instruction at "0x06d897a8" referenced memory at "0x6db4240". The memory could not be "read".
Click on OK to terminate the program
**Other than bad grammar, that is exactly what the message says when trying to load the exaxt same .avs file into two different instances of vdubmod. The first one can open it, the second one will give this error everytime. When the second one has to be closed becasue of this, the first one is still open and works fine.
Additionally, when there is a file open, and say one steps through and makes trims, once trims are saved, and then the .avs is reloaded into the same vdubmod session (that you just made trims from), it gives the same error as above and the program crashes. The 'hex referenced numbers' are canged however (0x091997a8, 0x01c04240)
I'm supposed to guess what your CLI commands were???
The CLI commands I used were these:
I opened up two cmd windows and typed the same exact thing in both. First cmd window I hit 'enter' to start encoding, it does. Second window, I hit enter to start encoding, it starts, then just stops (there is no error message given, it just won't do it).
x264.exe --pass 1 --bitrate 2500 --stats "C:\backup\test1.stats" --bframes 3 --b-pyramid --filter -1:0 --subme 2 --partitions none --vbv-maxrate 25000 --me dia --threads 4 --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output NUL "C:\backup\test1.avs"
x264.exe --pass 1 --bitrate 2500 --stats "C:\backup\test2.stats" --bframes 3 --b-pyramid --filter -1:0 --subme 2 --partitions none --vbv-maxrate 25000 --me dia --threads 4 --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output NUL "C:\backup\test1.avs"
**the only difference between the two is creating a different .stats file which would need to be done.**
Also, provide a link to a stream sample that I can use to duplicate this.
The stream would be any 1080i stream that DGAVCDecNV has to demux and be used (on my computer). If everyone in the world is able to do exactly what I can't do as referenced above, then there is something wrong on this end. I'm confident that it has nothing to do with hardware, this is a software thing since everything else works fine. Maybe a avisynth version issue? Maybe a vdubmod issue? I don't know.
When I do the same tests using DGDecode on mpeg2 content, everything works. I have not tried with DGAVCDecode.
Guest
29th September 2008, 15:05
Does it happen with the latest VirtualDub (not VirtualDubMod)?
SpAwN_gUy
29th September 2008, 22:59
Cool... PayPal does not even have a Country, where i live, listed...
Guest
29th September 2008, 23:10
Version 1.0.2 changes:
* New version of nvcuvid.dll that improves high-level error recovery.
* Fixed quirks in the bobbing solution for DGAVCDecodeNV.
* Fixed decode failure when no PPS 0 exists.
* Improved robustness of transport parsing.
http://neuron2.net/dgavcdecnv/dgavcdecnv.html
xopowo
30th September 2008, 05:57
Does it happen with the latest VirtualDub (not VirtualDubMod)?
VirtualDub 1.8.3 - it will just close without an error. So, short answer is yes. Only difference is absence of error message. I don't know if that is the latest (its the latest one I have).
First one opens fine, second instance is a no-go.
Zwitterion
30th September 2008, 06:43
* Fixed quirks in the bobbing solution for DGAVCDecodeNV.
Now if deinterlacing with a single instance, a low quality deinterlacing filter seems to be used (jaggy lines like in the pic above).
When bobbing, the every two frames are a bit different, but they are both reconstructed from the same field.
Using the usual avisynth commands from the manual.
saemonz
30th September 2008, 10:30
how can I use this software in megui?
same AVS?
LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\DGAVCDecodeNV.dll")
AVCSource("D:\movie\STREAM\zzz.test.dga")
ultratoto14
30th September 2008, 10:54
I tried many tools and only a few are compatible with DGAVCDecodeNV.
My experiments:
Good:
- Cli's
- Avidemux vi avsproxy
- VirtualDubMod directly
Bad:
- meGui
- StaxRip
- Xvid4Psp
I continue testing...
Guest
30th September 2008, 11:55
(jaggy lines like in the pic above) What pic is that? Can you provide the source sample as well, please?
Guest
30th September 2008, 11:56
how can I use this software in megui?
same AVS?
LoadPlugin("C:\Program Files\GordianKnot\AviSynthPlugins\DGAVCDecodeNV.dll")
AVCSource("D:\movie\STREAM\zzz.test.dga") You can't. Read the release notes.
saemonz
30th September 2008, 12:12
You can't. Read the release notes.
Only support VirtualDubMod!!
Guest
30th September 2008, 12:46
Please write a full sentence so that I may have at least a chance of understanding your point.
Guest
30th September 2008, 13:31
@xopowo
Have you tried installing the latest version of the Nvidia drivers: 178.13? Also, please ensure that you have only one instance of nvcuvid.dll present and that it is the one shipped with the version of DGAVCDecNV that you are using (which should be 1.0.1 or 1.0.2). Make sure you have one version of the DLL in your system32 directory and no others anywhere else (including your Avisynth plugins directory and the directory that DGAVCDec is installed and its subdirectories).
What video card do you have? How much memory does it have?
saemonz
30th September 2008, 15:06
Please write a full sentence so that I may have at least a chance of understanding your point.
I always encoded BD AVC to x264 by megui, Could you tell me how to use DGAVCDecNV in megui.:thanks: I can't find in mannual
Guest
30th September 2008, 15:08
Try asking the MEGUI authors.
ultratoto14
30th September 2008, 15:48
Is the dga created with DGAVCindexNV and DGAVCindex are compatible ? I'm asking this as I would use DGAVCindex to set up staxrip or megui and just change to DGAVCIndexNV in avs script before launching the job.
Guest
30th September 2008, 16:15
Is the dga created with DGAVCindexNV and DGAVCindex are compatible ? I'm asking this as I would use DGAVCindex to set up staxrip or megui and just change to DGAVCIndexNV in avs script before launching the job. They are not compatible.
Zwitterion
30th September 2008, 17:22
What pic is that? Can you provide the source sample as well, please?
Sorry, I had not much time this morning.
I'm referring to this pic here:
http://forum.doom9.org/showpost.php?p=1187893&postcount=380
The sample is still here (It's frame 92):
http://forum.doom9.org/showpost.php?p=1187105&postcount=298
dgavcdecnv102 gives the following result:
http://img157.imageshack.us/img157/891/101vy9.th.png (http://img157.imageshack.us/my.php?image=101vy9.png)http://img157.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
command line:
DGAVCDecodeNV_AVCSource("00014.dga", deinterlace=true)
It seems to interpolate the top field and keep the bottom field, even though use_top_field=true is used by default.
xopowo
1st October 2008, 14:14
@xopowo
Have you tried installing the latest version of the Nvidia drivers: 178.13? Also, please ensure that you have only one instance of nvcuvid.dll present and that it is the one shipped with the version of DGAVCDecNV that you are using (which should be 1.0.1 or 1.0.2). Make sure you have one version of the DLL in your system32 directory and no others anywhere else (including your Avisynth plugins directory and the directory that DGAVCDec is installed and its subdirectories).
What video card do you have? How much memory does it have?
NVIDIADisplayWin2K(177_84)Int.exe ** that is the name of the driver I'm using. I went to the nVidia site again and this is the only one that it lets me download?
nvcuvid.dll - I have one on the box and it is in the \system32 folder.
VIDEO CARD -
GPU Type : GeForce 8600 GTS
GPU Clocks : Core 675 MHz / RAM 1008 MHz
GPU Memory : DDR3 256MB
Guest
1st October 2008, 14:39
http://www.nvidia.com/object/winxp_178.13_whql.html
It's quite possible that you don't have enough memory on your GPU card.
Audionut
1st October 2008, 14:57
edit: Nevermind. I'll learn to RTFM.
rack04
1st October 2008, 15:04
I'm getting an error.
Loadplugin: unable to load "c:\DGAVCDecodeNV.dll"
AVS script.
loadplugin("C:\DGAVCDecodeNV.dll")
avcsource("d:\rock\test.avs")
Have you tried what neuron2 suggested in the first post?
2. If that does not work, please move the nvapi.dll and nvcuda.dll to the Windows System32 directory (don't move nvcuvid.dll).
Audionut
1st October 2008, 15:13
Well the manual actually states.
You also need to copy the nvcuvid.dll DLL that ships with DGAVCDecNV into your Windows System32 directory.
BTW, I got it working.
livetoflyfish
1st October 2008, 17:26
LONG time lurker... 1st time poster.
It's quite possible that you don't have enough memory on your GPU card.
What video card is recommended? I currently have a GeForce 8500 GT w/ 256MB 128-bit GDDR2 in one computer and a Quadro FX 570 w/ 256MB in another. The NVidia website reports that the FX 570 has "PureVideo HD Technology" and CUDA although I can't find specific reference to VP2.
I'm giving it a try on the 8500 tonight and I'll report back.
Guest
1st October 2008, 20:11
For multi-instance, you're going to need a lot of memory. My 8500GT card has 1024MB.
BTW, regarding problems in MEGUI, etc., I am working on a solution such that all instances use a single instance of D3D and float the CUDA contexts. If this succeeds it will have the useful consequence of dramatically reducing memory needs for multi-instance.
I'm not concerned about the overhead of floating contexts because in practice the usage is serialized.
hajj_3
1st October 2008, 20:45
neuron, have you done tests to see what speed difference different cards make, is the ram alot more important than the clock speeds or the memory speeds? Would help quite alot of people.
I know this is off topic but does the amount of ram make a massive difference for DXVA-HD-Balanced x264 profile in megui? As i use the following tools to create my 720p bluray encodes and not dgavc:
GraphStudio, Eac3to, x264, AVSP, AviSynth, FFmpeg source, MeGUI, Haali, ffdshow, SurCode DTS, Arcsoft DTS DLLs, Arcsoft Total media.
Guest
1st October 2008, 21:42
I've not run any tests as I have only one card.
I won't answer OT questions here and no-one else should either.
Sagekilla
1st October 2008, 23:14
Would it theoretically be possible to utilize two cards to help with multi instance decoding? I could imagine the instances would be split between the two.
Guest
1st October 2008, 23:20
Let's get the basic operation working and stable before looking for exotic scenarios.
screw
2nd October 2008, 08:10
To neuron2:
Well, may be little offtopic, but I am confused. I would like to pay for your product, but have no PayPal account and would like to avoid creating the one. On your WEB page you were stating: "Note that you do not need to have a PayPal account; you can pay with a credit card account also.", but when I do go to "Donate" page, the only option is to create the PayPal account... Is there the way to pay by Credit card WITHOUT creating this account?
Screw
Guest
2nd October 2008, 11:57
At the bottom left of the screen is a line:
Don't have a PayPal account?
At the end of the line below that is a link:
Continue
Hit that link and you'll be able to donate by credit card.
screw
2nd October 2008, 15:41
Sorry, but when I do open your "Donate" link, for me there is no such a choice as you did describe:
http://img515.imageshack.us/img515/4928/ppnolinkzh2.png
May be there is something wrong with my browser (IE) or firewall.
I shall try to find another solution than.
Screw
Inventive Software
2nd October 2008, 16:03
Clicking the donate link on the relevant page on neuron2.net brings up this: (UK, FF3)
http://img204.imageshack.us/img204/9913/neuron2donatejm2.jpg (http://imageshack.us)
http://img204.imageshack.us/img204/neuron2donatejm2.jpg/1/w801.png (http://g.imageshack.us/img204/neuron2donatejm2.jpg/1/)
Guest
2nd October 2008, 16:17
Can't see upload sites at work. You'll have to wait until tonight for any comment, or else attach the image instead and I can approve it right away.
DarkZell666
2nd October 2008, 16:40
@Inventive Software & Screw : Paypal shows me the specific link neuron2 mentions, and clicking on it points me the same page you both have; ie: a page to pay with a credit card without an account :p
It seems depending on what cookies you have in your cache, the website doesn't display the same info :)
rebkell
2nd October 2008, 17:41
Can't see upload sites at work. You'll have to wait until tonight for any comment, or else attach the image instead and I can approve it right away.
Here's the image as an attachment:
screw
2nd October 2008, 17:41
Well, I do guess, it more likely depends from which country I am reaching this PayPal page. Possibly PayPal does not accept direct payments from some countries, like Latvia.
OK, I shall find the another way.
Screw
DarkZell666
2nd October 2008, 17:49
Well, I do guess, it more likely depends from which country I am reaching this PayPal page. Possibly PayPal does not accept direct payments from some countries, like Latvia.
OK, I shall find the another way.
Screw
Screw, the page you're looking at actually allows you to pay WITH a credit card and WITHOUT creating an account.
ReferenceDivx
2nd October 2008, 18:54
It looks like things are progressing quite nicely. Neuron2 i just sent you $15. Its the first time I've paid for software in sometime. Can't wait to see whats next from you. I hope to do an analysis of power consumption with and without your software in the near future.
livetoflyfish
3rd October 2008, 01:59
Alright, both of my systems:
Q9300, Quadro FX 570 w/ 256mb
E6600, Geforce 8500 GT w/ 256mb
performed in the exact same manor. They both indexed BD AVC material. With a simple avsynth script loading just the indexed file, the full res video played choppy in Media Player Classic. They both encoded material using virtualdubmod and WMV9 VCM. Trying to encode video either through Windows Media Encoder or through WMV encoder scripting crashed the program. Why WMV? Simply because I've been doing it for years and I know it.
I have money burning a hole in my pocket to go get an 8500 GT with 1Gb of memory. I'll probably hold off while to see how this progresses:
BTW, I am working on a solution such that all instances use a single instance of D3D and float the CUDA contexts. If this succeeds it will have the useful consequence of dramatically reducing memory needs for multi-instance.
ReferenceDivx
3rd October 2008, 02:45
Since megui is not working yet i created my own 2pass x264 launcher program. You can get the program and source code here. http://www.hddvdstrikesback.com/vers/x264launcher.zip
Example command line
x264launcher.exe c:\movie\ 8000 1
x264 must be in C:\Program Files\megui\tools\x264\
The output directory must contain test.avs
The second argument is the desird bitrate
Select 0 for standalone hd-dvd fast and 1 for standalone hd-dvd
Select 2 for standalone Bluray fast and 3 for standalone Bluray
Example of useage below for hd-dvd fast
x264launcher c:\input 8000 0
saemonz
4th October 2008, 04:51
Since megui is not working yet i created my own 2pass x264 launcher program. You can get the program and source code here. http://www.hddvdstrikesback.com/vers/x264launcher.zip
Example command line
x264launcher.exe c:\movie\ 8000 1
x264 must be in C:\Program Files\megui\tools\x264\
The output directory must contain test.avs
The second argument is the desird bitrate
Select 0 for standalone hd-dvd fast and 1 for standalone hd-dvd
Select 2 for standalone Bluray fast and 3 for standalone Bluray
Example of useage below for hd-dvd fast
x264launcher c:\input 8000 0
What type of your NV display card? How fast pass2 when you use standalone Bluray?
ReferenceDivx
4th October 2008, 05:37
I have a 8500gt and a q6600 cpu. I can encode the 2nd pass of the Bluray standalone profile at around 6.15fps. FFdshow give me about 5.90fps. The first pass is about 10-13% faster with dgavcdecnv though. I'm still in the process of testing.
These figures are for full 1080p24 input and output, with no filtering.
saemonz
4th October 2008, 07:32
We have same hardware, Have you try to disable display.(This option is intended for getting an idea of the performance of the GPU's decoding engine. When this option is enabled, all display operations are disabled except for one: the FPS field of the Info dialog is updated. If you load your stream, select this option, and start a preview, the FPS field will show the raw decoding rate of the GPU decoder as implemented in DGAVCIndexNV. Note that the conversion from YV12 to RGB24 used when display is enabled is very CPU intensive. So if you want to assess the frame rate and CPU utilization of the GPU decoder, it is necessary to disable the display.)
CPU usage 99%?
ReferenceDivx
4th October 2008, 09:33
1080p has over twice the number of pixels as 720p. So I imagine that it would be about half the speed as 720 encoding.
Guest
4th October 2008, 15:52
My findings so far on the problem with crashing in MEGUI, etc...
It appears that all the managed applications (you know, the .NET crud) crash when trying to allocate a second D3D instance. The crash is within the Microsoft D3D CreateDevice() function. I can't trace it and there is nothing useful on the web about this issue.
Using floating CUDA contexts is not a viable solution because they must all be within one process. If the encoder applications use multiple processes, we're screwed. In any case, it seems like a better system-wide solution to have a HW resource support separate client processes.
So, my plan is to package the GPU decoder as an out-of-process local COM server. That way, only one D3D instance is ever needed. I know that the first instantiation always succeeds with the managed applications; for example, the preview screen works in MEGUI but it crashes when you enqueue the job. A useful side effect will be a reduction in memory requirements. And it will be valuable to have a COM GPU decoder that can be re-used by other applications!
So it may take some time to get this working as COM programming is new for me. I do have a simple server and client working, however, and I am now plugging in the decoder. The frame will be returned to the Avisynth filter in shared memory.
We'll just have to see if this solves the problem, as it is hard to predict what gotchas might arise.
squid_80
4th October 2008, 16:36
Just for kicks, try testing with a CoInitialize(0); call directly before CreateDevice and see if that helps at all.
ultratoto14
4th October 2008, 17:23
Nice to see that you detected the problem, continue you're good work.
Guest
4th October 2008, 17:40
Just for kicks, try testing with a CoInitialize(0); call directly before CreateDevice and see if that helps at all. It doesn't help.
crypto
4th October 2008, 19:31
So, my plan is to package the GPU decoder as an out-of-process local COM server. That way, only one D3D instance is ever needed.
Out-of-process COM servers are factor 10 to 16 times slower than inproc. Where will be the interface level? I suspect that if you plan to transport decoded images over COM, you will lose all speed advantages of hardware decoding.
I am still not sure what the problem with MeGUI is. I can run multiple instances of vdub GPU AVS scripts. What is so special with MeGUI?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.