View Full Version : DGAVCDecNV 1.0.13: GPU decoding on Nvidia


Pages : [1] 2

Guest
13th September 2008, 14:11
ATTENTION: If you do not use an Nvidia graphics card 8xxx or higher, this thread is not for you!

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

If you want to assess the GPU performance, please read the section "Disable Display" in the users manual. And set the playback speed to Maximum under Options/Playback Speed! I am still optimizing frame rates and CPU utilization. Be aware that when serving through AVCSource() the performance will be comparable to that obtained with the display disabled (Disable Display option enabled).

I'm also interested in finding out what streams fail with GPU decoding, so please report them, preferably with stream details and a sample.

Guest
13th September 2008, 14:29
My results for a 1920x1080 PAFF stream from the Hauppauge HD PVR with display disabled are:

Frame rate: 46 fps
CPU utilization: 2%

My machine is Intel E8500 dual core @ 3.8GHz on ASUS Rampage Formula. Graphics card is eVGA 8500GT.

Atak_Snajpera
13th September 2008, 15:04
Jesus I've just bought 4850 :(

Guest
13th September 2008, 15:09
I might support ATI also. For now, let's get Nvidia done.

Sagekilla
13th September 2008, 15:09
So you're telling us.. we're going to get GPU acceleration of decoding that we can actually frame serve? :) I'll hop on my desktop and try this out. I have a 9800 GTX on that computer. I'll go pop in some blu-ray discs and make sure those work properly too. I'm most concerned with the performance on those, since transcoding a Blu-ray is a massive pain.


Edit: Unfortunately, I couldn't even copy nvapi.dll. It was locked by some process.. Trying to find out which one now.

Inventive Software
13th September 2008, 15:28
Don't have an NVIDIA GPU to test this with, but I'll be watching with baited breath. :)

Selur
13th September 2008, 15:34
@Sagekilla: "Trying to find out which one now." -> Unlocker (http://ccollomb.free.fr/unlocker/) might help :)

Sagekilla
13th September 2008, 15:34
Well I can't seem to actually figure out how to copy nvapi.dll without Windows throwing a hissy fit about it. I'm hesitant to copy the new NVApi.dll (dated Aug 2008) over the old one (Feb 2008) in my system32 directory, but I'll give it a shot I suppose. All in the name of faster decoding I suppose..

Got Unlocker working.. Unfortunately I have explorer.exe, taskeng.exe, and rundll32.exe using it on my laptop. My desktop is using it for rundll32.exe, nvsvc32.exe, and ntune.exe.

I hate dependencies.

G_M_C
13th September 2008, 15:42
Jesus I've just bought 4850 :(

I was just in time to cancel my order when i read about this upcoming release.

I'll wait some time before i decide to go Nv though, and i might still get the 4850 even if DGIndex doesn't Ati support Ati, cause i think is better imho. But in the mean time i give all kudo's to Neuron2 for this step in development, and i'll keep watching progress !

Guest
13th September 2008, 15:46
Well I can't seem to actually figure out how to copy nvapi.dll without Windows throwing a hissy fit about it. I'm hesitant to copy the new NVApi.dll (dated Aug 2008) over the old one (Feb 2008) in my system32 directory, but I'll give it a shot I suppose. All in the name of faster decoding I suppose..

Got Unlocker working.. Unfortunately I have explorer.exe, taskeng.exe, and rundll32.exe using it on my laptop. My desktop is using it for rundll32.exe, nvsvc32.exe, and ntune.exe.

I hate dependencies.You may not have to do that. Have you tried step 1 in my post? What happened?

Sagekilla
13th September 2008, 15:47
Still, I'd like to see both supported -- If either side comes out on top (and I usually go with the one who has the faster card) then if that one happens to be unsupported I'm in a bit of an unfortunate position :(

@neuron2: On my both my computers I received the error message on simply opening DGAVCNV saying:

ERROR: cuInt failed (100)

Hit Yes to continue ....



On my desktop where I had a Blu-ray available to open with:

GPU decoder: Failed to create video decoder.

Guest
13th September 2008, 15:48
BTW, guys. You can have a secondary Nvidia card next to your ATI and still use it for decoding.

Guest
13th September 2008, 15:49
If we can't get the DLL thing sorted, I'll contact Nvidia about it, but you can always install the CUDA driver and toolkit:

http://www.nvidia.com/object/cuda_get.html

Sagekilla
13th September 2008, 15:50
Is it just the CUDA driver that's needed? I tried installing the SDK and that did nothing for me.

I'm installing Driver --> toolkit now, I'd really love to get this running.

Guest
13th September 2008, 15:53
I don't know the install details yet. You need to install the CUDA driver and toolkit to do it the kosher way. I am hoping to find a way to avoid that for users.

When you install the CUDA driver say Yes when they ask if you want to replace your existing (possibly newer) driver.

Guest
13th September 2008, 15:55
On my desktop where I had a Blu-ray available to open with:

GPU decoder: Failed to create video decoder.
Don't know what you're trying to do here. Open what with? And open with what?

Sagekilla
13th September 2008, 15:58
I was using DGAVCNV to open a m2ts file ripped from a Blu-ray, after I got the first error message and I clicked "yes" to ignore this, I got the second one too. But that shouldn't be anything unusual since it already told me something failed to initialize. This was before I had the "correct" dlls btw ;)

Guest
13th September 2008, 16:02
What is your situation now?

Sagekilla
13th September 2008, 16:10
Now my computer won't start up.. I'll get back to you on this, my main desktop has been having various issues for a while now. I think it's a bit overdue for a reinstall of XP.

Guest
13th September 2008, 16:12
OK, guys, let's keep it simple for now until I get definitive details about it.

Install the CUDA driver and toolkit. Then unzip DGAVCIndexNV into a directory and run it from there. That should work. Works for me!

CruNcher
13th September 2008, 16:19
AMD Athlon 64 X2 Toledo 2.2 GHz
8800 GT (G92 512MB)
Forceware: 177.92 (Forcewithin Physix Driver Cuda enabled)
Windows XP SP3

Source: Construction Run (Casino Royale Blu-Ray)

DGavcindex Preview (F5)

Libavcodec = 10 fps 50% CPU (1 Full core)
Nvidia = 18 fps 40% CPU
Nvidia = 44 fps 15% CPU (Disable Display)

Nice i didn't had todo anything just extract and start and it seems to work :)

Tough i see with the Display on heavy Kernel Peaks like on a VMR9 surface see http://forum.doom9.org/showthread.php?t=140767 tough it's constantly peaking while DGAvcindex is previewing

Zwitterion
13th September 2008, 16:20
1920x1080 AVC stream from Blu-ray M2TS:

~45 fps
~3-5 % CPU

Q6600, 8800GT (177.92 beta), WinXP SP3 x86


I didn't need to shuffle any dll's around. I also didn't need to install the CUDA toolkit or SDK. Didn't get any error messages either.

Guest
13th September 2008, 16:23
Great, thank you! Then Sagekilla must have system issues.

Sagekilla
13th September 2008, 16:23
Installing the latest CUDA driver and the toolkit gave me the same 2 errors I mentioned before. I think this is more or less a cosequence that I actually have multiple copies of the files that need to be used, I have another copy of all the files you included in your AVC package in my system32, one of which (nvapi) is dated older than the one included.


Looks like it's time to get the good old XP install disc out again..

Guest
13th September 2008, 16:24
I've tried it on several machines and it seems clear that for some reason the AMD CPUs show higher utilization. I'm investigating that.

Guest
13th September 2008, 16:27
Installing the latest CUDA driver and the toolkit gave me the same 2 errors I mentioned before. I think this is more or less a cosequence that I actually have multiple copies of the files that need to be used, I have another copy of all the files you included in your AVC package in my system32, one of which (nvapi) is dated older than the one included.


Looks like it's time to get the good old XP install disc out again.. The error is CUDA_ERROR_NO_DEVICE. Run DXVA Checker and tell me the result. It's not going to work unless your DXVA situation is OK.

Guest
13th September 2008, 16:30
Time to get busy on DGAVCDecodeNV. :)

Inventive Software
13th September 2008, 16:31
You're making me real jealous at this point Don. :p

On a separate note, how easy is it to integrate/separate for MPEG-2 and VC-1?

Sagekilla
13th September 2008, 16:31
Where can I find this DXVA checker? I can't seem to find it.

The odd thing is my DXVA works perfect on my x264 files and my blu-ray discs on both systems..

Atak_Snajpera
13th September 2008, 16:32
Looks like it's time to get the good old XP install disc out again..
or maybe it's time for Vista SP1 :)

Sagekilla
13th September 2008, 16:34
Off Topic: I prefer not -- I've used Vista SP1 for a length period of time on my laptop and there's many things that simply do not suit me. Call me old fashioned but I still prefer XP over Vista. There's too many nuances in the OS that bother me when I'm using it. I'm not ready to waste another few hundred dollars on a new OS when I have my XP SP2 disc right here.


On topic: SS: http://img.photobucket.com/albums/v621/Sagekilla/DXVA.png

Atak_Snajpera
13th September 2008, 16:35
http://bluesky23.hp.infoseek.co.jp/index.html#DXVAChecker

Guest
13th September 2008, 16:35
DXVA Checker:

http://bluesky23.hp.infoseek.co.jp/dxvac/DXVAChecker_1900.zip

Yes, integrating MPEG, AVC, and VC1 is now thinkable. None of this stuff is easy. :)

Sagekilla
13th September 2008, 16:39
Thanks, I just found it. I posted the sample in my last post :)

Inventive Software
13th September 2008, 16:39
@Sagekilla: You have no H.264 hardware decoder with that chip.

EDIT: Blame Wikipedia for not giving PureVideo details for the card. Apparantly, it does, but I'd look at what drivers you have, and see whether it can be enabled in Control Panel.

Guest
13th September 2008, 16:43
No, that is the same thing my check shows. And see here:

http://www.nvidia.com/object/cuda_learn_products.html

Do you have HW acceleration enabled in your display properties?

I'll ask Nvidia what could cause this.

Sagekilla
13th September 2008, 16:45
@Inventive Software

Are you certain? http://en.wikipedia.org/wiki/Comparison_of_Nvidia_graphics_processing_units#Features_4 Also can you explain this if I don't have a hardware decoder? Link: http://img.photobucket.com/albums/v621/Sagekilla/HWDG.png


I'm getting DXVA fine in MPC, but I don't know why I can't get it in DGAVC.

Inventive Software
13th September 2008, 16:51
Spot my edit. ;) I mis-read, but still, my first suggestion would be to update the drivers. NVIDIA have a habit of occasionally changing a few settings between driver revisions. :)

Sagekilla
13th September 2008, 16:52
That it does.. Oddly though, I'm running the latest CUDA driver + toolkit as listed on the website -- yet still nothing! :( I believe it was the 177.84 driver I downloaded.

Guest
13th September 2008, 16:58
Maybe your system has seized the CUDA context. Try turning off DXVA wherever it may be enabled. Turn everything off for ffmpeg, for example. Just for testing...

Diodato
13th September 2008, 17:23
Works right of the box. But I have the CUDA SDK installed.

WinXP SP3
E6600@3.0GHz
8800 GTS 512MB
nVidia display drivers v177.84

Source: sat DVB-S2 stream (1920x1080, HP@L4.0)
FPS: 45-50
CPU: 6-11%

Nice work Donald!

Atak_Snajpera
13th September 2008, 17:41
it would be nice if somebody could test speed during transcoding from blu-ray -> x264 rip. (software decoding vs hardware decoding)

Guest
13th September 2008, 17:42
it would be nice if somebody could test speed during transcoding from blu-ray -> x264 rip. (software decoding vs hardware decoding)
That can't be done until I complete DGAVCDecodeNV. Coming soon as I've already worked through all the quirks of using the GPU.

Sagekilla
13th September 2008, 18:02
I had to delete all the dlls except nvcuvid.dll on my laptop, but I got it working on my laptop. I installed the SDK beforehand to make sure this would work. I still don't want to try anything since I have several processes -- including a scheduler --- depending on nvapi.dll that I don't feel safe replacing my system32 copy.

C2D @ 2.16 GHz
8600M GT
Vista SP1 w/ CUDA 177.84 drivers + toolkit
12 - 17% CPU
38 - 48 fps (averaging 46ish, only dips to 38 rarely)
Source: Pirates of the Carribean 3, blu-ray rip


So it's definite something went bad with my desktop. I'm going to disregard this since I'll be reinstalling XP on it anyway.


@neuron2: Let me know when you get a working copy. I'll be glad to do some beta testing for you on my laptop. My last transcode (PoTC3) took 80 hours on a 2 GHz Opteron 170. Decoding Blu-Ray + light filtering (Read: MVDegrain3) + high compression in x264 => 0.6 - 0.7 fps in x264. So, this would be a HUGE benefit to have ;)

lucassp
13th September 2008, 18:19
Works right out the box with ForceWare 177.92 (no CUDA SDK/Toolkit installed) on: 8800GT 512MB, XP SP3, C2D E8400@3,5GHz!

Yoshiyuki Blade
13th September 2008, 18:24
Ok, before I go ahead and install the CUDA kit, here are the error messages I'm getting:

- Upon opening DGAVCIndexNV, I recieve the warning message, "ERROR: cuInit failed (100)" Hit yes to continue blah blah, cancel to supress...
- Attempting to open an AVCHD video file gives me this error message, "GPU decoder: Failed to create video decoder"
- When closing the program I get a warning. "cuvidDecodePicture: 400" Hit yes to continue blah blah, cancel to supress...

The two DLL files you included with the program were actually already in the SysWOW64 folder (basically System32 for 64-bit Windows OSes), and the same error messages came up before and after I replaced them. Using an 8800 GTX. I'm going to install the 3 files right now. I've done this before to test the Folding@Home GPU client so it should be no problem to install.

kemuri-_9
13th September 2008, 18:27
It's working fine for me.
worked right out of the zip on my
8600 GT (512MB)
XP x64 SP2
Phenom 9850

took 2 mins to run through my AVC .TS that's 24min @ 720p60.
the standard libavcodec version couldn't even decode these .TS files either!

while it was saving the project i was watching the process explorer graphs for it, was using 25% CPU utilization (1 core)
about 50% of the 25% was attributed to kernel times for the I/O

in play mode it does 43 fps with 20% cpu utilization, half still with kernel times

Daodan
13th September 2008, 18:46
Tested a bit with a 25mbit 1080p30. With display disabled I get ~40fps with 8800gt 256mb and 10% off e6400 oc. I get 120fps with coreavc in timecodec. The cuda way should be faster however while encoding that output as well.

Sagekilla
13th September 2008, 18:49
I found what might be a bug -- If I exit DGAVCNV while previewing a movie (disable display is checked) I simply get an error message from windows telling me the program has stopped working. No other debug info. On another note, I've also noticed the issue with half the CPU usage being towards kernel usage. Take a look here: http://img.photobucket.com/albums/v621/Sagekilla/kernusage.png

lucassp
13th September 2008, 18:53
Using an 8800 GTX.

It doesn't work with G80 GPU's: Geforce 8800 GTX, 8800 Ultra, 8800 GTS 640MB/320MB!

Sagekilla
13th September 2008, 18:56
I think those GPUs have bitstream decode only.. I could be wrong.

Yoshiyuki Blade
13th September 2008, 18:58
It doesn't work with G80 GPU's: Geforce 8800 GTX, 8800 Ultra, 8800 GTS 640MB/320MB!

Yeah, I posted concerns on the main thread here: http://forum.doom9.org/showthread.php?p=1182305#post1182305. It was still worth a shot though.

I installed all the necessary files with pretty much the same errors as before. Gonna try it on my bro's 8400M GS.

CruNcher
13th September 2008, 19:11
Btw for all Nvidia users please can some confirm this behaviour (especialy on G92) http://forum.doom9.org/showthread.php?t=140767 :) would be nice if you could post your results there about this issue if you have the time :)

crypto
13th September 2008, 19:23
@neuron2: On my both my computers I received the error message on simply opening DGAVCNV saying:

ERROR: cuInt failed (100)

Hit Yes to continue ....




GPU decoder: Failed to create video decoder.

Same here, I also get both errors. The first when starting DGAVCIndexNV. The second when loading a stream. Plus when ending

cuvidDecodePicture: 400

Hit Yes to ....

CUDA is installed. Badaboom is running ok.

menlvd
13th September 2008, 19:26
waiting for DGAVCIndexNV.dll :)...

Inventive Software
13th September 2008, 19:31
@crypto: what card you running? Tried the DXVA checker Donald linked to in the 1st page?

ATTENTION EVERYBODY: This does NOT work with first generation 8 series cards based on the G80 GPU. These include the 8800 GTX, 8800 GTS 320MB / 640MB, and 8800 Ultra cards, as they do not have the VP2 PureVideo decoding engine.

Those with these cards reporting them working would do well to tell me so I can edit this statement. :)

Sagekilla
13th September 2008, 19:31
I still have to work out some issues with my desktop -- I'm not fully sure what's wrong with the system so it could be a number of things. My problem may or may not be related to yours.

kemuri-_9
13th September 2008, 19:33
waiting for DGAVCIndexNV.dll :)...
that would be DGAVCDecodeNV.dll

crypto
13th September 2008, 19:41
OK, I got it running. :)

Here are my results with TS 1080i PAFF 25 Hz:
FPS is 42-45
CPU is at 0 (That's zero) ???

@Inventive Software
GTS 8600 on Vista Ultimate 32 Bit Q6600

bob0r
13th September 2008, 19:47
Where do i read the FPS?

The FPS box at the bottom is empty here.
(8800 gts g92)

Guest
13th September 2008, 19:49
OK, I got it running. :) What did you have to do to solve the issue?

Guest
13th September 2008, 19:50
Where do i read the FPS?

The FPS box at the bottom is empty here.
(8800 gts g92) In the usual place in the Info dialog. What happens when you have display enabled? Does it play and display? Maybe you have single step set for playback.

Guest
13th September 2008, 19:51
CPU is at 0 (That's zero) Sorry, I'll try to optimize it.

bob0r
13th September 2008, 19:52
I used it out of the zip straight away.

Disable Display indeed reports FPS now, running on a bluray disc.

Guest
13th September 2008, 19:54
I found what might be a bug -- If I exit DGAVCNV while previewing a movie (disable display is checked) I simply get an error message from windows telling me the program has stopped working. No other debug info. Can't duplicate it.

On another note, I've also noticed the issue with half the CPU usage being towards kernel usage. Take a look here: http://img.photobucket.com/albums/v621/Sagekilla/kernusage.png Is one color kernel and the other app? How would I know that? Why does my display show only one trace?

Bear with me, I'm a noob.

Guest
13th September 2008, 19:56
I used it out of the zip straight away.

Disable Display indeed reports FPS now, running on a bluray disc. It should be there for play, too, but you have to wait a few seconds for stats to accumulate.

crypto
13th September 2008, 19:56
@neuron2
It seems those having trouble are on Vista. It could be, there are different DLLs for XP and Vista. Did you ship those for XP?

BTW. Fantastic Job. Playback is flawless even for PAFF streams. I am really impressed.

Guest
13th September 2008, 19:58
Thanks for the kind words, and to all for your test results. Doom9 people are the best!

I don't know about the Vista issue. Have you looked at the Nvidia CUDA Zone site?

OK, I'm going to be gone for a while. Guess what I am working on. :)

bob0r
13th September 2008, 19:58
FPS varies around 44-48fps with 42 low and 54 peak.

Atak_Snajpera
13th September 2008, 20:00
Thanks for the kind words, and to all for your test results. Doom9 people are the best!
Yeah! You are the best example, man! :)

crypto
13th September 2008, 20:02
What did you have to do to solve the issue?

I removed the following DLLs from your package:
nvcuvid.dll
nvapi.dl
nvcuda.dll

and used these from the badaboom package:
nvcuvid.dll
nvdec.dll

nvapi and nvcuda where in my system32 directory. I have not installed the SDK (yet).

Guest
13th September 2008, 20:03
Hmm is it normal when DGAVCIndexNV is running the preview, i can't play any 1080p x264 .mkv smooth anymore?
Shouldn't that be CPU only with coreavc? :) I have to tell you that DGAVCIndexNV (and DGIndex, and DGAVCIndex) all have horribly inefficient YV12->RGB24 conversion for display. I'll be working on it but it is not important because when serving you don't have any display. What happens when you try it with the display disabled?

BetaBoy
13th September 2008, 20:03
Congrats neuron2!

Guest
13th September 2008, 20:05
Yeah! You are the best example, man! :) We're both forgetting rule 12, oops.

juGGaKNot
13th September 2008, 20:17
BTW, guys. You can have a secondary Nvidia card next to your ATI and still use it for decoding.

Does it matter what card ? a 8500GT is as good as a GTX260 ?

Guest
13th September 2008, 20:21
Here is my new generic decoder API:

extern int decoder_open(void (*Alloc)(int, int),
void (*FrameComplete)(void),
void (*Error)(char *, int),
int (*Info)(const char* fmt, ...),
unsigned char **frame_store);
extern int decoder_close(void);
extern int decoder_flush(void);
extern int decoder_reset(void);
extern int decoder_decode_nalu(unsigned char *buf, int len);
extern int decoder_set_mode(int); The decoder_open() call passes a pointer to the YV12 store for the decoded picture and pointers to callbacks as follows:

Alloc: called when a video sequence is seen to allow the app to allocate memory, also provides the frame size

FrameComplete: called when the app should receive a picture for display/serving

Error: called for a fatal error

Info: called for an info popup

The decoder_set_mode() call puts the decoder into a stepping or playing mode.

Guest
13th September 2008, 20:22
Does it matter what card ? a 8500GT is as good as a GTX260 ? It's been discussed. Almost, yes, except for memory bandwidth.

juGGaKNot
13th September 2008, 20:27
Wake up! This is only for decoding.

Yeah, I'm going to sleep now :|.

Atak_Snajpera
13th September 2008, 20:36
Looks like perfection, no more quad core's for encoders just a low price nVidia card next to your ATI
Wake up! This is only for decoding.

Sagekilla
13th September 2008, 21:06
@neuron2: Sorry, I was making assumptions that people knew what the graphs meant usually! Green is total CPU usage, and red presents the portion that the kernel is using. In this case it looks like nearly half of the cpu usage is from the kernel alone. DGAVCNV only used maybe 12 - 13% cpu but the total CPU usage was closer to 25%.

By the way, is this more or less optimized?

Edit: I'll try to reproduce my error again. I want to see if it happens twice -- I only saw it once when I decided to exit while I was still previewing.
Edit 2: Odd, the error seems to have been a one shot deal. I haven't had it again.

Guest
13th September 2008, 21:29
By the way, is this more or less optimized? Well I have avoided stupid things but there are some things that still need to be investigated. The connection to DX/D3D is a possible area for improvement. But I'm pretty happy serving 1920x1080 46fps @ 2% on my machine. As long as we can feed x264 faster than it can encode, we are golden.

Guest
13th September 2008, 21:30
Congrats neuron2!
Thank you.

BTW, any word on the CoreAVC API/SDK?

Sagekilla
13th September 2008, 21:47
Yes indeed, I'm glad you have this here now. Having my CPU usage for decoding basically halved (perhaps a third even, my desktop has a faster GPU) is a godsend.. Goodbye 0.7 fps decodes! :)

I absolutely cannot wait to test this on my monster of a setup.. GPU decoding on my desktop with a 9800 GTX, filter using MVDegrain3, pass it off with TCP serving to my laptop and encode it.

kemuri-_9
13th September 2008, 22:02
Edit 2: Odd, the error seems to have been a one shot deal. I haven't had it again.
I've gotten a bunch of spontaneous errors before.
And now trying it again, it's no longer working at all; spitting out some of the standard 'no supported GPU' errors :confused:

Guest
13th September 2008, 22:08
Reboot.

Dreassica
13th September 2008, 22:36
Works here too, ha to install badaboom and the drivers as well as copy the 2 files Crypto had to copy to the dir dgaindexnv is located in.
24 fps with max 28 on a 8800gts 512MB

Guest
13th September 2008, 23:13
The PureVideo deinterlacer looks REALLY good but reduces the frame rate by 25% (i.e., rate is 75% of the rate without deinterlacing) on full HD. I'll expose it as an option in the next alpha.

Blue_MiSfit
13th September 2008, 23:23
Awesome!!!

Currently downloading the CUDA driver for Vista x64 here... I *thought* I had it installed, but it wasn't working (the cuinit error).

Will report back ASAP!

Thanks Don!

-Derek

Blue_MiSfit
13th September 2008, 23:41
Okay, so i have the CUDA driver installed, and when I open DGAVCIndexNV I get the "failed to find CUDA compatible D3D device" error.

I have an 8800gt, which is both CUDA and DXVA compatible.

Vista x64 being a naughty little child perhaps?

Has anyone else gotten this working with Vista x64?

~MiSfit

rack04
13th September 2008, 23:49
Where do I get DGAVCDecodeNV.dll? It's not included in the zip file.

Guest
14th September 2008, 00:17
Has anyone else gotten this working with Vista x64? You'll have to do some research over at the Nvidia CUDA Zone website. Let us know when you find out.

Guest
14th September 2008, 00:17
Where do I get DGAVCDecodeNV.dll? It's not included in the zip file. You have to pay extra for that.

[Just kidding. I'm still working on it.]

menlvd
14th September 2008, 00:24
You have to pay extra for that.

Just kidding. I'm still working on it.

LoL :p

Ranguvar
14th September 2008, 00:27
LOL :p

I have Windows XP Pro SP2 x64, and a GeForce 9600GT 512MB. DGAVCIndexNV worked for a while (with bugs, explained later), until each time I started it, it wouldn't find my video card. I copied the files as mentioned, installed the CUDA driver and toolkit, and rebooted, and now it appears to be working again.

So, bugs.

1.) There is a significant amount of artifacting during playback in the indexer with DS's x264-encoded Touhou sample (here (http://mirror05.x264.nl/Dark/Flash/MountainofFaith.mp4)), and especially the lossless Touhou sample (here (http://mirror05.x264.nl/Dark/force.php?file=./LosslessTouhou.mkv)). I don't know if it's also in the decoded stream through AviSynth+DGAVCDecode.

2.) If I play either of those samples in the indexer, and then quit before stopping playback (with display on) I usually get the errors "cuvidMapVideoFrame: 201" and the same with the number 205, after I exit.

3.) In the lossless sample, if I seek to the middle of the video and then hit Play, the video does not play and no info is reported.

...and now I get the CUDA-compatible D3D device error again. :/


Thanks for your work, neuron2 :) Can't wait until this works well - it was able to play the non-lossless sample at 147+fps with no CPU usage (display off) before it stopped working. Promising :)

Guest
14th September 2008, 00:27
Let me know how you like the deinterlacer.

http://neuron2.net/dgavcdec/dgavcindexnv100a2.zip

Ranguvar
14th September 2008, 00:29
Is that the only change? If so, I won't test it, as there are critical problems on my system right now with it. But if there's fixes, I shall test and see if it works better.

Great work :)

Guest
14th September 2008, 00:29
1.) There is a significant amount of artifacting during playback in the indexer with DS's x264-encoded Touhou sample (here (http://mirror05.x264.nl/Dark/Flash/MountainofFaith.mp4)), and especially the lossless Touhou sample (here (http://mirror05.x264.nl/Dark/force.php?file=./LosslessTouhou.mkv)). I don't know if it's also in the decoded stream through AviSynth+DGAVCDecode. MP4 and MKV files are not yet supported, just as with DGAVCIndex.

Ranguvar
14th September 2008, 00:30
MP4 and MKV files are not yet supported, just as with DGAVCIndex.

I used the demuxed .h264 stream.

Atak_Snajpera
14th September 2008, 00:34
Let me know how you like the deinterlacer.
I would like to see some screenshots (yadif vs NV deiterlacer)

Guest
14th September 2008, 00:35
I used the demuxed .h264 stream. Thanks for giving those to me. :devil:

Ranguvar
14th September 2008, 00:37
Did you see my long post right before you announced a2? Just making sure, since you posted right after me and may not have seen it :)

And what do you mean? :p Just demux with MP4Box/mkvextract, which is what I did :)

Guest
14th September 2008, 00:38
I used the demuxed .h264 stream. I tried your MP4 after demuxing with Yamb. I don't see any artifacts.

I'm not interested in installing any MKV demuxers.

Ranguvar
14th September 2008, 00:43
Must be my system then? I am definitely getting artifacts. Unfortunately, I can't show you a screenshot, as DGAVCIndexNV doesn't feel like detecting my card right now. Maybe later :)

Try the lossless one, though - the video is basically unwatchable for me at least.


EDIT: What?? Why? So you want me to demux the stream and then give it to you? :confused:

Guest
14th September 2008, 00:51
Must be my system then? I am definitely getting artifacts. Unfortunately, I can't show you a screenshot, as DGAVCIndexNV doesn't feel like detecting my card right now. Maybe later :) Did you try demuxing with Yamb? I've heard of issues with MP4Box.

Try the lossless one, though - the video is basically unwatchable for me at least. As I said, I'm not interested in installing any MKV tools.

If you have RAW or TS streams that play fine with CoreAVC and don't with DGAVCIndexNV, then I am interested, else not.

Guest
14th September 2008, 00:53
I have Windows XP Pro SP2 x64 You need to check whether CUDA video decoding is supported on 64-bit windows.

Ranguvar
14th September 2008, 00:54
Did you try demuxing with Yamb? I've heard of issues with MP4Box.

As I said, I'm not interested in installing any MKV tools.

If you have RAW or TS streams that play fine with CoreAVC and don't with DGAVCIndexNV, then I am interested, else not.

YAMB is MP4Box. It's just a GUI for it. And actually, I did use YAMB.

You said you didn't want MKV tools after I suggested it (you edited).

And it should be, considering NVIDIA offers a CUDA driver specially for x64, which I am using.

Ranguvar
14th September 2008, 00:56
Your attitude is in danger of turning me off.

I'm just confused as to why you have such an aversion to MKV. I'll upload the raw stream, if that's what it takes.

Guest
14th September 2008, 00:56
Did I understand you correctly and you have 64-bit Windows?

Ranguvar
14th September 2008, 00:57
Yes :)

Guest
14th September 2008, 00:58
I'm just confused as to why you have such an aversion to MKV. I don't want to clutter my system with things I don't need or want.

I'll upload the raw stream, if that's what it takes. I already demuxed it and played it with no problems, but if you'd like me to try your raw, we can rule out demuxing as the problem for you.

Guest
14th September 2008, 01:01
Did you install the 64-bit CUDA driver and toolkit from the Nvidia CUDA download site? Did you say yes to overwrite your current driver?

Ranguvar
14th September 2008, 01:02
We can get the most out of CUDA if the rest of our machine does not slow down the ability to feed the insatiable power of NVIDIA stream processors. For maximum speed we should use 64-bit Windows on at least a quad core machine with lots of RAM and large, fast disk drives. Before configuring a new 64-bit system, check the NVIDIA web site to make sure that 64-bit drivers are available for the Windows operating system you plan to install. At the present writing, Windows XP x64 has been used for development of x64 support by manifold.net.

blahblahforfivecharacterlimit

EDIT: Yes, I did :)

Sagekilla
14th September 2008, 01:07
neuron2, I'll post the raw H.264 file demuxed from the mkv if you'd like. I believe I have a copy of it on my system somewhere.

Guest
14th September 2008, 01:08
Sure, go ahead. Thank you.

Guest
14th September 2008, 01:08
@Ranguvar

Are you able to run the samples in the CUDA SDK?

Ranguvar
14th September 2008, 01:17
Uninstalled driver, rebooted, installed driver (CUDA WinXP x64), rebooted - exact same problems.

I will try, one second please.

Sagekilla
14th September 2008, 01:18
Here's the Lossless Touhou sample, I wasn't able to get the other (mp4) one because I don't have a mp4 demuxer on my system at the moment. Still, this should be very helpful.

It'll be here: http://www.mediafire.com/?sharekey=52d10c65d4ff45aad2db6fb9a8902bda, upload finishes in ~3 mins. They're 7zipped, if you're unable to extract 7z I'll see if I can cut a sample in half for you in a second.


Edit: What's the ETA on the decoder for Avisynth? I'd love to get a jump on it and try it on a blu-ray.

Ranguvar
14th September 2008, 01:25
Yes (http://i33.tinypic.com/29w1e0l.png), I can run the sample CUDA apps from the SDK :) (x64 SDK). (yes, it's XP, just skinned)

(I am using CUDA 2.0, for sure, don't know why it says 1.1)

kemuri-_9
14th September 2008, 01:35
Reboot.
yeah yeah, finally did the M$ Winblows fixall
working again on my XP x64.

also installed the cuda toolkit and sdk

Guest
14th September 2008, 01:37
I am using CUDA 2.0, for sure, don't know why it says 1.1) "It" means what? Sounds like you have a munged up install.

Ranguvar
14th September 2008, 01:39
Look at the command windows in the pic I linked.

Guest
14th September 2008, 01:43
What is the exact error that you get?

SquallATF
14th September 2008, 01:45
I have used driver version 177.92 on windows 2003 x64, the DGAVCIndexNV runs very well.
ps run on this version drivers don't need nvapi.dll and nvcuda.dll, all of the dll have include in driver.

Audionut
14th September 2008, 01:50
Sweet. Thanks neuron.

Works perfect with 177.98. About 44fps with display disabled on 1920x1088 content from a blu-ray. 8800gt 512 G92.

This will make shrinking blu-rays a whole lot quicker.


I didn't have to move any dll's.

kemuri-_9
14th September 2008, 01:52
I have used driver version 177.92 on windows 2003 x64, the DGAVCIndexNV runs very well.
ps run on this version drivers don't need nvapi.dll and nvcuda.dll, all of the dll have include in driver.

on my xp x64, nvcuvid.dll is necessary, but it came with the CUDA SDK, so I personally don't need it....
*glares at x64 version of dll's*

Zwitterion
14th September 2008, 02:00
1.) There is a significant amount of artifacting during playback in the indexer with DS's x264-encoded Touhou sample (here (http://mirror05.x264.nl/Dark/Flash/MountainofFaith.mp4)), and especially the lossless Touhou sample (here (http://mirror05.x264.nl/Dark/force.php?file=./LosslessTouhou.mkv)). I don't know if it's also in the decoded stream through AviSynth+DGAVCDecode.

Hardware acceleration for lossless AVC streams is not supported, or is it?

SquallATF
14th September 2008, 02:01
on my xp x64, nvcuvid.dll is necessary, but it came with the CUDA SDK, so I personally don't need it....
*glares at x64 version of dll's*
32bit dlls are in %SYSTEMROOT%\SysWOW64

kemuri-_9
14th September 2008, 02:10
32bit dlls are in %SYSTEMROOT%\SysWOW64
no duh
i was referring to how it would be nice to see an x64 bit version eventually (though it will probably long into the future for when avisynth's x64 support comes along.... after i die of old age probably)

kemuri-_9
14th September 2008, 02:17
Hardware acceleration for lossless AVC streams is not supported, or is it?

http://kemuri9.net/forumpics/losslessTouhou.png
that looks like a no

squid_80
14th September 2008, 03:59
(though it will probably long into the future for when avisynth's x64 support comes along.... after i die of old age probably)
You do know there are x64 builds of avisynth available, right? You could always offer to help instead of making derogatory comments.

neuron2: Good luck getting DGAVCDecodeNV working... watch out for CUDA_ERROR_INVALID_CONTEXT errors, they can happen when GetFrame is called by a different thread than the one which created the filter (if you create the context in the constructor).

kemuri-_9
14th September 2008, 04:11
You do know there are x64 builds of avisynth available, right? You could always offer to help instead of making derogatory comments.

and you do know that it's only x64 support in 3.0 which is pretty pre-alpha right now too!
and i don't know much about elementary aspects of video to help with the development,
sure i can read code, but making it for something you know hardly about is WAY different.

I wasn't purposely being derogatory, but it seemed to come across that way,
just saying that avisynth has always been slow to develop from it's sheer complexity...

Guest
14th September 2008, 04:49
neuron2: Good luck getting DGAVCDecodeNV working... I'm already decoding frames with it. I'm now working on the copying of the picture to GetFrame()'s output frame, pulldown, and sundry things. It's looking good.

watch out for CUDA_ERROR_INVALID_CONTEXT errors, they can happen when GetFrame is called by a different thread than the one which created the filter (if you create the context in the constructor). My filter constructor creates a server thread that stays alive until filter destruction. The server thread owns the CUDA context and does the decoding. The GetFrame() function signals the server thread with an event and then waits to be signalled back with a frame.

I'm not sure I will be able to support mutiple AVCSource() calls in a script. I think it's unusual anyway.

squid_80
14th September 2008, 04:50
and you do know that it's only x64 support in 3.0 which is pretty pre-alpha right now too!No, it's a mixture of 2.5.5 and 2.5.6. It lives in avisynth's CVS tree with the tag avisynth64. Core builds and plugins are available from my homepage (http://members.optusnet.com.au/squid_80).

squid_80
14th September 2008, 04:58
My filter constructor creates a server thread that stays alive until filter destruction. The server thread owns the CUDA context and does the decoding. The GetFrame() function signals the server thread with an event and then waits to be signalled back with a frame.That's good news; using cuCtxPushCurrent/cuCtxPopCurrent to float the context seems to be horribly slow.

Sagekilla
14th September 2008, 05:03
I'm a bit scared about who could possibly be using multiple AVCsources for a single file. I'd think that by the point you're using multiple H.264 inputs, it'd be a good idea to convert to an intermediate format if you're doing that heavy editing.

AtomX
14th September 2008, 05:52
All worked well in terms of loading the footage and making the .dga. I can already tell that this is a vastly significant improvement over the non-NV-enabled DGAVCIndex (at least with the footage that I've been working with). For one, I can actually scrub through the footage and play it perfectly fine within the program without it crashing, which is something I can't do with the normal DGAVCIndex.

I've been working on trying to establish a cohesive workflow when working with Blu-Ray footage. Right now, my current workflow is as follows:

1) Rip blu-ray disc with AnyDVD HD
2) Demux the .m2ts file with Elecard XMuxer (demux's to a .h264 file)
3) Process the .h264 file with DGAVCIndex
4) Run the .dga through AVS
5) Bring the AVS into VDubMod
6) Encode the entire stream using Lagarith
7) End up with a lossless version of the blu-ray stream that is roughly 10x the original file size.

I've been working with DVD files for many years now and I've never really had to convert the entire film to lossless in order to work with it (run the VOB through DGIndex, process via, AVIsynth, works fine). Unfortunately through, with the 1080p blu-ray files, the resulting AVS file is extremely unstable. I can't seek through it in VDub whatsoever without it crashing immediately, and I certainly can't import it into any kind of editing program without it crashing. So if DGAVCIndexNV fixes that, you will be my hero :)

I will be looking very much forward to the decoder DLL!

EDIT: Also, forgot to mention, I did indeed have to install the CUDA drivers/toolkit from the nvidia site. I'm running an 8600 GT.

EDIT 2: I just realized that I actually can now import the m2ts file directly without having to demux it! Hallelujah!! :D

Ranguvar
14th September 2008, 07:52
kemuri, would you mind detailing how you got it to work exactly, since you're have XP x64 like me? :)

Thanks!

Daodan
14th September 2008, 07:58
Hm, with version a2 i can't use the preview anymore (with dispay on). I press f5, it just freezes, no deinterlacer enabled. If I switch back to old one, it works.

Comatose
14th September 2008, 08:00
that looks like a no
Probably because it's lossless. Can't be bothered to check if it SHOULD support it, but I don't see why it should D: (as it was aimed to decode Blu-ray and HD DVD)

lucassp
14th September 2008, 09:20
http://www.mediafire.com/?j2xpbxgmt0c

MBAFF Stream that doesn't work. Please check it neuron2!

Daodan
14th September 2008, 09:44
Plays fine here. There's a glitch when protv logo starts to appear but it's there with software decoders too.
Can't wait for the dll to be available and see how big are the benefits, there is clearly nice potential here for boosting encoding speed.

bob0r
14th September 2008, 10:20
@Neuron2
(When the CoreAVC blocking bug is fixed) ... and you possibly ever get an SDK will it be possible to use both CPU and GPU for decoding?

Guest
14th September 2008, 13:52
Hm, with version a2 i can't use the preview anymore (with dispay on). I press f5, it just freezes, no deinterlacer enabled. If I switch back to old one, it works. No change other than the deinterlacer option. Maybe you have single step set for playback.

Guest
14th September 2008, 13:55
@Neuron2
(When the CoreAVC blocking bug is fixed) ... and you possibly ever get an SDK will it be possible to use both CPU and GPU for decoding? I don't know what you mean by "use both". Do you mean will I support CoreAVC for decoding? I can't answer that until I see an API/SDK for it. I would want to, but don't know yet how feasible it is.

CoreAVC is apparently not very interested in the idea as they continue to tease me but they haven't really decided yet, I think.

bob0r
14th September 2008, 14:40
Thats the way they do business, ill slap BetaBoy when he is online again :)

What i meant was, will dgavcdec use cpu and gpu at the same time when further developed?

kemuri-_9
14th September 2008, 14:54
kemuri, would you mind detailing how you got it to work exactly, since you're have XP x64 like me? :)

Thanks!

Hmm... it worked pretty well without any direct interference.
But try downloading it, deleting all the .dlls that come with it and copying over
C:\Program Files (x86)\NVIDIA Corporation\NVIDIA CUDA SDK\bin\Win32\Release\nvcuvid.dll to somewhere that's in the PATH environment (sysWOW64 would be good)
or just adding that directory to the path.
the other 2 .dlls are already in PATH dirs, so you won't need them


C:\Program Files (x86)\NVIDIA Corporation\NVIDIA CUDA SDK\bin\Win32>which nvcuda.dll
C:\WINDOWS\system32\nvcuda.dll

C:\Program Files (x86)\NVIDIA Corporation\NVIDIA CUDA SDK\bin\Win32\Release>which nvapi.dll
C:\WINDOWS\system32\nvapi.dll

C:\Program Files (x86)\NVIDIA Corporation\NVIDIA CUDA SDK\bin\Win32>dir /w C:\Windows\SysWOW64 | grep nv
nvapi.dll
nvcuda.dll

C:\Program Files (x86)\NVIDIA Corporation\NVIDIA CUDA SDK\bin\Win32>which nvcuvid.dll
C:\myStuff\DLLs\nvcuvid.dll < PATHed dir


but it's also been very finicky for me. if it stops working saying it can't find a GPU decoder, it'll need to restart to work again.

If we had the source code for DGAVCIndexNV, i could try compiling a x64 binary and see if that works without hitches.

No, it's a mixture of 2.5.5 and 2.5.6. It lives in avisynth's CVS tree with the tag avisynth64. Core builds and plugins are available from my homepage (http://members.optusnet.com.au/squid_80).

too bad i'm used to 2.5.8 now :< but i'll check it out from the cvs

Guest
14th September 2008, 14:55
What i meant was, will dgavcdec use cpu and gpu at the same time when further developed? No, it won't. It's interesting, but complex, and for transcoding, it's likely better to give all the CPU to the encoder. The encoding is the bottleneck.

Esurnir
14th September 2008, 15:09
Error : Failed to Find a CUDA-Compatible D3D Device (2)

Running folding@home GPU on my pc (and doing 2500 iteration per second as I speak) I find it hard to believe. (and no I don't run folding@home while running dgAVCdec)

Actual configuration : 177.92 Forceware Physx cuda enabled drivers
2* 8800GT in SLI

lucassp
14th September 2008, 15:36
Plays fine here. There's a glitch when protv logo starts to appear but it's there with software decoders too.

I didn't mention that it plays fine using alpha 1 and it doesn't play at all using alpha 2 (tested with deinterlacing enabled and disabled).

kemuri-_9
14th September 2008, 15:38
Error : Failed to Find a CUDA-Compatible D3D Device (2)

Running folding@home GPU on my pc (and doing 2500 iteration per second as I speak) I find it hard to believe. (and no I don't run folding@home while running dgAVCdec)

Actual configuration : 177.92 Forceware Physx cuda enabled drivers
2* 8800GT in SLI
That's the error i've come across and needs to be restarted in order to fix it (as i haven't found/seen another way to fix yet).
-Edit-
this is also affecting the CUDA SDK software too, so it's not specific to DGAVCIndexNV

Guest
14th September 2008, 15:43
I didn't mention that it plays fine using alpha 1 and it doesn't play at all using alpha 2 (tested with deinterlacing enabled and disabled). I accidentally had playback speed set to single step in the shipped INI file for alpha 2. Can you check that?

Best to delete the INI file and let a new one be created.

Yoshiyuki Blade
14th September 2008, 16:11
Glad to report that everything works fine on an 8400M GS, using Vista32.

lucassp
14th September 2008, 16:24
I accidentally had playback speed set to single step in the shipped INI file for alpha 2. Can you check that?

Best to delete the INI file and let a new one be created.

Thanks! It works fine now :)

steaa
14th September 2008, 16:27
Initally the application gave the "cuInt failed (100)" error when starting it up, and then when loading a file it gave the message "GPU decoder: Failed to create video decoder.". After copying the DLL files to System32 also, I had the same result.
I removed the dll files from System32 and then after installing CUDA driver and toolkit, it opened fine and loaded a file OK without any problem.


Nvidia 9600GT / Q6600 G0 Stepping / Windows XP (32Bit)

Results for BBC HD stream (1080i) -
Display enabled - 43 ~ 45fps. CPU - ~23%
Display disabled - 62 ~ 65fps. CPU - ~8%

Results for HD Suisse stream (720p) -
Display enabled - 71 ~ 74fps. CPU - ~23%
Display disabled - 106 ~ 113fps. CPU - ~7%

Guest
14th September 2008, 16:48
Thanks, guys.

DGAVCDecodeNV is well along. I expect to have an alpha in a day or two.

Ranguvar
14th September 2008, 18:23
Followed kemuri's instructions, but I still get artifacts with the non-lossless Touhou (link posted a while back), and the ther bugs mentioned in my first post. I also have the problem where eventually, it refuses to start, and I need to reboot.

Indexed with DGAVCIndex and decoded with DGAVCDecode: http://i37.tinypic.com/4qk6f8.png
Snapshot of the preview in DGAVCIndexNV (I had no way of playing the DGAVCIndexNV DGA, of course, so the flaw may only be in the preview): http://i36.tinypic.com/26449e1.png
I did not try DGAVCIndex's preview to see if it also has the flaw, as it does not let me seek to a specific frame, or even do anything to seek besides huge jumps and playback/pause.

Obviously, one uses different YV12 coefficients, but that's beside the point. Look at the bullets fired from the player. And no, this is not the lossless video, this is a "normal" H.264 stream. Other frames exhibit problems, too.

Alpha 2 used, w/o deinterlacing.

Sagekilla
14th September 2008, 20:12
Just would like to say, thanks for such a wonderful creation :) Greatly appreciate having hardware decode of H.264 for transcoding.

Guest
14th September 2008, 22:20
@Ranguvar

Please tell me what artifacts you are talking about. I looked at both your PNGs and I don't see anything. It's so frustrating when people just post a screenshot and go "see!". Make a circle around it or say it in words. I'm not a mind reader.

Ranguvar
14th September 2008, 22:26
There are huge differences between the correct DGAVCIndex one and the bad DGAVCIndexNV one.


DGAVCIndex (correct): http://i37.tinypic.com/4qk6f8.png
DGAVCIndexNV (modified to show artifact areas): http://i38.tinypic.com/2s7gkkj.png

G_M_C
14th September 2008, 22:32
Don't know if this is relevant or not; But does this new version have the same "DXVA"-limitations as other HW-assisted/DXVA decoders ?

i.e. Does it do L 5.1 x264's as well ?

Zwitterion
14th September 2008, 22:40
There are huge differences between the correct DGAVCIndex one and the bad DGAVCIndexNV one.


DGAVCIndex (correct): http://i37.tinypic.com/4qk6f8.png
DGAVCIndexNV (modified to show artifact areas): http://i38.tinypic.com/2s7gkkj.png
Probably the video can't be decoded by the GPU. I doubt that this is DGAVCIndexNV's fault. Try running it in MPC-HC and check the MPC Video Decoder whether DXVA is enabled or not.

It would be great if DGAVCIndexNV contained a check, so that people don't accidentally decode unsupported streams.

CruNcher
15th September 2008, 00:46
Yeah people create all kind of complexitys that are just to much for sane Hardware Decoders :) these block failures look exactly like the ones i experience with some X264 content and CoreAVC though might be not of the same nature but indeed ffdshow (libavcodec) doesn't show these kind of errors as it has a very primative error correction and can hide stream errors to some degress it seems (same for Mainconcepts Decoder) and these errors can also directly happen in the encoder not only because the stream has been damaged @ the transport. So i guess it would hide such occasional block errors very well from the viewer, CoreAVC can't do this but i guess Nvidias Hardware Decoder should also be able todo it like libavcodec does, as they expected it's being used for DVB watching :)

Guest
15th September 2008, 01:54
I see the artifacts now. Thank you.

I have a directory where I am collecting bad streams for CUDA. This has joined the collection. I'll be sending them to Nvidia for analysis. They've already fixed one bug exposed by some of my streams.

Ranguvar
15th September 2008, 05:07
Thanks very much :)

AtomX
16th September 2008, 00:40
So I realize that I'm being impatient, but I can't help but try and feed my curiosity. Has there been any progress on the decoder DLL? I'm really excited to start playing around with it.

Guest
16th September 2008, 00:48
Posted one day ago:

http://forum.doom9.org/showthread.php?p=1183558#post1183558

What do you want, hourly updates? I do have a life, you know. :)

It's basically working but there are some hangs on seeking that I am working on. If I don't sort it out in a few days I'll put out an alpha that at least does straight linear encode so that you can assess the effectiveness of the entire process when transcoding.

kemuri-_9
16th September 2008, 00:57
It's basically working but there are some hangs on seeking that I am working on. If I don't sort it out in a few days I'll put out an alpha that at least does straight linear encode so that you can assess the effectiveness of the entire process when transcoding.
sweet... looking forward to that at least.

AtomX
16th September 2008, 01:34
Posted one day ago:

http://forum.doom9.org/showthread.php?p=1183558#post1183558

What do you want, hourly updates? I do have a life, you know. :)

It's basically working but there are some hangs on seeking that I am working on. If I don't sort it out in a few days I'll put out an alpha that at least does straight linear encode so that you can assess the effectiveness of the entire process when transcoding.

Heh sorry to come off as a pest. As I said, I knew I was being impatient. Just excited to hear about progress, not trying to rush you at all.

Guest
16th September 2008, 02:14
I've just now found and fixed the problem with random access. I haven't coded anything for end of file yet so it just blows up. That shouldn't take me long. Looks good for an alpha tomorrow. The CUDA engine is a finicky beast and you have to get all your ducks in a row to reset it gracefully for a seek.

Ranguvar
16th September 2008, 02:51
Excellent! I remember that one. Does it also fix the error message pop-ups if you quit while playing?

Guest
16th September 2008, 03:49
Excellent! I remember that one. Does it also fix the error message pop-ups if you quit while playing? I don't know what you are talking about.

Ranguvar
16th September 2008, 11:12
2.) If I play either of those samples in the indexer, and then quit before stopping playback (with display on) I usually get the errors "cuvidMapVideoFrame: 201" and the same with the number 205, after I exit.

blahforcharacterlimit

Guest
16th September 2008, 13:40
That's in DGAVCIndexNV and I was talking about a fix to DGAVCDecodeNV. Still, I have managed now to duplicate it and I'll fix it. Thank you for reminding me about it.

Guest
17th September 2008, 14:51
Everything was looking good. I could open my indexed stream in VirtualDub, play and preview, and seek around.

Then I decided to try an encode. I fired up HCEnc and started an encoding. As the second pass began, HCEnc started reporting a mismatch in the number of frames between the first and second passes. Hmm, that's odd. And the resulting M2V was garbage.

Then I tried a simple HUFFYUV encode in VirtualDub. Worked great. Then a Cedocida DV encode. Worked great. Note that these are one-pass codecs.

Then I tried MeGUI with CE-Baseline. It crashed when I added the job to the queue. Then I tried DivX. It crashed.

So now I'm thinking, these guys are opening the AVS file twice or something, creating multiple instances of AVCSource(). So I opened the script in VirtualDub. Fine. Then I opened it again in VirtualDub, leaving the first one open too. Oops. The timeline looked just like the garbled M2V from HCEnc.

So the situation now is that I will try to verify my theory about the multiple opens and see if there is any mitigation for it (floating CUDA contexts?).

But be aware this has a strong potential to be a deal killer.

kemuri-_9
17th September 2008, 15:05
so there's a restriction that can only have one instance of the script open at once?

that shouldn't stop you from continuing to develop it, many encoders encode to lossless (ffvh, ffv1, lags, etc.) first
then encode the lossless in their lossy encoder of choice, so they wouldn't have problems using it.

Sharktooth
17th September 2008, 15:13
neuron2 cant you just fake the instances? i mean if the AVCSource() is using the same input, just redirect the second or nth instance to the first...

Guest
17th September 2008, 15:49
neuron2 cant you just fake the instances? i mean if the AVCSource() is using the same input, just redirect the second or nth instance to the first... I was thinking about that on the drive to work. I'll see if it can work. As long as the instances don't try to operate at the same time, it could be OK.

Meanwhile, do you know how MeGUI works inside? Am I correct that it opens the script several times? Why would it crash when I just add the job to the queue?

Sharktooth
17th September 2008, 16:01
yes, it opens several times coz before enqueuing the script is alredy open for displaying the preview. also megui stores 2 custom variables in the avs script for AR.
so when you hit enqueue the script is opened again for reading those vars and other stuff.
however the lack of multi-tasking (or multi-instancing) in cuda is quite a limiting factor.

Guest
17th September 2008, 16:12
yes, it opens several times coz before enqueuing the script is alredy open for displaying the preview. also megui stores 2 custom variables in the avs script for AR.
so when you hit enqueue the script is opened again for reading those vars and other stuff.
however the lack of multi-tasking (or multi-instancing) in cuda is quite a limiting factor. Ouch. CUDA can allow multi-instancing through floating contexts. I'll have to see if I can get it working. Every CUDA context switch would have to force the filter into seek mode.

After more thought, I don't think you can redirect an open filter instance to another one. I'd have to ask IanB about it, but I don't think Avisynth has that capability.

Quark.Fusion
17th September 2008, 16:49
How it will behave if another program uses CUDA? (i.e. F@H)

Sagekilla
17th September 2008, 16:59
Neuron2: Would you keep it still though, even if it completely bombs on 2-pass? There's still HUGE benefit for transcoding to an intermediary formats or for 1-pass CRF in x264.

I still would love to have a GPU accelerated decoder that can work for 1-pass CRF.


Edit: Any chance I could get my hands on that dll? ;)

Guest
17th September 2008, 17:21
Let me try it with 1-pass CRF and if it's OK I'll let you have it.

Sagekilla
17th September 2008, 17:24
Thanks! :) Greatly appreciate it.


Edit: neuron2, the behavior you describe effectively makes AVCSource() non-deterministic when it's called multiple times, correct?

Quark.Fusion
17th September 2008, 17:24
I think you can do two pass with that behaviour if you restart program before second pass.

Guest
17th September 2008, 17:59
I think you can do two pass with that behaviour if you restart program before second pass. Please pay attention. You cannot even queue the job in MeGUI.

Guest
17th September 2008, 18:01
x264 1-pass CRF encode works fine. I got 60 fps encode rate for 640x480 material. I don't normally do encodes, so I don't know if that is good.

I'll give it out this evening.

crypto
17th September 2008, 18:24
@neuron
Thanks for the update. I can't wait to check it out. Single instance should be ok for me.

CruNcher
17th September 2008, 18:39
thx neuron, that's great news these days 2pass encoding is anyways slowly dieing :)

kemuri-_9
17th September 2008, 19:25
thx neuron, that's great news these days 2pass encoding is anyways slowly dieing :)

uhhh no, plenty of people still use 2pass, it'll never die.

Quark.Fusion
17th September 2008, 19:31
Please pay attention. You cannot even queue the job in MeGUI.
Sorry, I'm using console, so just don't understand why it may fail in it (and I don't have build to test). Hope you will fix bug.

Guest
17th September 2008, 19:40
OK, I see. Sorry for my confusion. I'll try a 2-pass with x264 CLI tonight and let you know what happens.

Sagekilla
17th September 2008, 20:02
@kemuri-_9: That may be true, but crf is a very attractive alternative if you want a slightly faster encode (especially with prefiltering, or transcoding HD content) with consistent quality across the whole encode. Both are valid for what they're best in (2-pass for specific size, crf for specific quality).

Guest
17th September 2008, 20:12
Guys, please take 2-pass argument elsewhere.

Guest
18th September 2008, 02:49
Validated for x264 CLI one pass only:

http://neuron2.net/misc/DGAVCDecodeNV.zip

DO NOT post bug reports about this not working with MeGUI, etc.

This version will expire on 9-30-08. I hope to have a multi-instance version by then.

kemuri-_9
18th September 2008, 03:13
sweeeeeeeeeeeeeeeeeeeeeeeeeeeeeetttttttttttttttttt

Guest
18th September 2008, 03:34
Oops, redownload to get the users manual.

Set deinterlace=true for PureVideo deinterlacing. I'll be curious to see comparisons to Yadif, etc. It looks good to me, but remember a) I haven't used the fancy decombers a lot, and b) I'm a geezer; my eyes don't work good.

rack04
18th September 2008, 04:20
First of all, I want to personaly thank you for all your hard work. When I place the dll file into my avisynth plugin directory and load MeGUI avisynth script creator I get the following error message:

http://i11.photobucket.com/albums/a199/rack04/untitled-2.jpg

Now before you jump to conclusions, no I'm not trying to encode using the .dll. I'm not trying to create a script using the dll, though it appears that the dll file is automatically loaded.

Guest
18th September 2008, 12:55
http://neuron2.net/misc/NV.zip

Zip password is gpudecode

Put nvcuvid.dll somewhere in your DLL search path. System32 is good.

Preliminary tests indicate little significant speedup versus software decoding. Let's see what some other people achieve.

This is intended for testing with X264 CLI one-pass only. Do not put it in your Avisynth plugins directory. Do not try to use it with any GUI. Posts reporting issues with that will be ignored.

Audionut
18th September 2008, 13:23
Thanks. Your efforts are appreciated.

Snake91
18th September 2008, 14:03
System:
Windows XP SP3
nvidia 8800GT 1GB
ForceWare 177.98
Q6600 2.8Ghz

Playing speed: 43-60 fps (min-max), I tested on BD streams (Jumper and Transformers)
CPU usage: 4%

But when I try to save the project I get the usual cpu utilization (about 25% on only 1 core) and decoding speed

Thanks for your work

Guest
18th September 2008, 14:04
@Snake91

We're testing encoding using x264 via DGAVCDecodeNV. What is your point?

Anyway, there is no decoding done when saving a project.

Snake91
18th September 2008, 14:09
Ok, I will try very soon a CRF encode to try the improvement

Guest
18th September 2008, 14:16
Thank you for your testing.

Guest
18th September 2008, 14:30
I ran a quick test with a CRF encode of 1280x720 material.

E8500 @ 3.8 GHz

NV GPU: 27.9 fps

CoreAVC via DSS: 28.4

Apparently CoreAVC is so good that its CPU utilization is comparable to the overhead of managing decoding on the GPU (memory transfers host<->device, etc.). It's hard to believe, so I'll look to see if I've missed something.

I'm beginning to think this is a dead end, since things can only get better on the CPU versus the GPUs, which are "cast in silicon".

Maybe I'll update the regular versions with the latest libavcodec code while we wait for a CoreAVC API/SDK.

Sagekilla
18th September 2008, 14:44
I do have some good news in regards to the deinterlacing of vp2.

The following image was deinterlaced using a simple TempGaussMC():
http://img522.imageshack.us/img522/7932/tempgaussmcdeintym5.jpg

The following with the VP2 Deint:
http://img143.imageshack.us/img143/214/vp2deintkg1.jpg


I used very naive settings of the default, just to play the role of a new user who doesn't know better. The deinterlacer is very very sharp.

Guest
18th September 2008, 14:51
Maybe that's the saving grace! :)

Nice shots, thanks for posting.

BTW, I noticed with CoreAVC via DSS(), it blend deinterlaced, even though I have deinterlacing turned off in its control panel. It also included my clip 4 times in the output! I haven't used CoreAVC much but I was somewhat surprised. Any idea what is going on?

Turtleggjp
18th September 2008, 14:57
To be honest, I think that the decoding on the GPU is a neat idea, but in the end should be an option for those with the right hardware who want to try squeezing a little more speed out of their encodes. I'm concerned though that eventually the limitations of DXVA on these cards may begin to hinder this great program's ability to work. I agree that the PAFF accuracy is nice (haven't gotten to try it myself yet though) but I know how difficult it can be sometimes to make hardware based tasks like this work consistently. The thought of only one instance at a time is scarry too, as I sometimes do more than one encode at once, or may in the future be reading from more than one source at once (doing a fade between two of my camera's clips comes to mind).

Bottom Line: I feel that hardware acceleration is better for realtime critical applications (playback). However for applications like transcoding, a pure software solution is better, since speed is nice, but not critical, and it can grow as needed without being as you say "cast it silicon."

edit: That de-interlaced footage does look nice! Does it change the fps to 60 like DGbob does? (assuming of course the source was 30i).

Guest
18th September 2008, 15:02
I already said several times that I'm not dropping the pure SW solution.

And nobody said the single instance version is anything more than a test version for encoding speeds.

Why are you raising these bogeymen???

Sagekilla
18th September 2008, 15:05
Yes, indeed.. I'll need to test on a longer interlaced source to see how well a "good" deinterlacer will fare vs AVCSource(deinterlace=true) speed wise. By "good" I mean to say one that would produce very similar results without being horribly slow At the very least, we have quite possibly a fast and high quality decoder + deinterlacer for those annoying 30i sources.


Edit: I forget where I got the source now, but it was thanks to some searching on the doom9 forums for an interlaced H.264 m2ts source did I find it.
Edit 2: neuron2, is it safe to assume you used DSS() using graphedit to connect CoreAVC as the decoder?

Turtleggjp
18th September 2008, 15:09
I already said several times that I'm not dropping the pure SW solution.

And nobody said the single instance version is anything more than a test version for encoding speeds.

Why are you raising these bogeymen???

Sorry, I was just trying to give my opinions. I wasn't trying to beg you to keep the pure SW solutions.

squid_80
18th September 2008, 15:20
I ran a quick test with a CRF encode of 1280x720 material.

E8500 @ 3.8 GHz

NV GPU: 27.9 fps

CoreAVC via DSS: 28.4
You could try it with a single core - you might be pleasantly surprised. (Windows can be limited to a specific number of cores by using the /numproc=X switch in c:\boot.ini.)
BTW, I noticed with CoreAVC via DSS(), it blend deinterlaced, even though I have deinterlacing turned off in its control panel. It also included my clip 4 times in the output! I haven't used CoreAVC much but I was somewhat surprised. Any idea what is going on? The clip looping 4 times I would dismiss as a directshowsource side-effect, but the deinterlacing is a mystery - coreavc can't do blending (the "Blend" option shows one field and discards the other, which is why it was renamed "Single Field" in 1.8.0).

Guest
18th September 2008, 15:24
Edit 2: neuron2, is it safe to assume you used DSS() using graphedit to connect CoreAVC as the decoder? I just made a script with DirectShowSource("file.264"). Is that wrong?

Sagekilla
18th September 2008, 15:25
@squid_80: For the single core users who happen to have a very fast GPU, this is indeed very useful.

On another note, while this is an extremely unusual case, I'm curious how much speed up I can afford on two machine setup with TCPServer --> TCPSource.

@neuron2: I'm not completely sure. My normal routine is Directshowsource("graph.grf") with graph.grf being a filter graph of source file --> CoreAVC. I don't know if doing it your way could produce different results.

Audionut
18th September 2008, 15:53
I just ran a quick test on my e6750 @ 3.6Ghz and 8800gt 512m.

BD source croped and resized to 1280,528

In virtualdubmod encoding to huffyuv with software = 21fps
same with hardware = 34-42fps

encoding to x264 ("turbo" settings) with software decoder = 21 fps
same with hardware = 29 fps.

And i've seen the purevideo de-interlacer at work, I like it alot.

Sorry, it's not alot more detailed, but it's been a big day and I should be sleeping.

edit: neuron, did i read correctly, you are using 8600 gpu?
I'd like to see some tests from someone with a 9800gtx*2 or 280 core even in sli.

CruNcher
18th September 2008, 16:10
Nice Deinterlacing results though i wouldn't have suspected that it beats something as advanced as TempgaussMC last time my visual subjective impression was it was on the same level then yadif, definitely more tests with different sources need to be done :)
Im gonna test DgdecodeNV as fast as i can though currently PC resources are not available :(

@Audionut
As Donald already said it's equal for every Nvidia card they are all clocked with 400 mhz (VP1/2 core) <- (No Software yet can change that no Software even knows that this Clock is existing, it was revealed here almost as a Worlds First exclusive, not really that suprising its a own Hardware core though nobody knew how high it's clocked) so the only difference is the Memory Bandwith and most probably stuff like the Deinterlaceing could be a big amount faster as here the Shader Clock i think plays a role :) else for Progressive it should be really steady for us all and the results posted here show that it indeed is :)

Turtleggjp
18th September 2008, 16:18
Yeah, the graph option is better, since you can build the graph yourself and guarantee what decoder is being used. I always use either a .m2ts file or .mkv file as my source, and then run that to the desired decoder (CoreAVC for AVC, WMV Decoder DMO for VC-1). Seeking can be unstable with this method though, which is why your DGAVCIndex/DGAVCDecode program is so valuable. :)

Inventive Software
18th September 2008, 16:32
A direct comparison between this (DGAVCDecodeNV) and the software DGAVCDecode (currently Alpha 35 IIRC) would be most welcome, as I don't have an NVIDIA-capable GPU to test this with (ATI Xpress 1150 or NVIDIA GeForce FX5200 :(). Same settings, same encoder, please. :)

Comatose
18th September 2008, 16:40
neuron2: If you get the latest CoreAVC, then it has a tray icon when it's loaded like ffdshow.

And wow, the deinterlacer is really nice. I might have to trade cards with my brother so I get a 9600GT (got a 8800GTS 320MB now).

rack04
18th September 2008, 16:48
A direct comparison between this (DGAVCDecodeNV) and the software DGAVCDecode (currently Alpha 35 IIRC) would be most welcome, as I don't have an NVIDIA-capable GPU to test this with (ATI Xpress 1150 or NVIDIA GeForce FX5200 :(). Same settings, same encoder, please. :)

As soon as I get off work I'll compare these using the following settings.

DGAVCDecode

LoadPlugin("[PATH\]DGAVCDecode.dll")
AVCSource("[PATH\]Transporter_DGAVCDecode.dga")
Spline36Resize(1280,544)

"[PATH\]x264.exe" --crf 18 --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --filter -1:-1 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "[PATH\]Transporter_DGAVCDecode.mp4" "[PATH\]Transporter_DGAVCDecode.avs"

DGAVCDecodeNV

LoadPlugin("[PATH\]DGAVCDecodeNV.dll")
AVCSource("[PATH\]Transporter_DGAVCDecodeNV.dga")
Spline36Resize(1280,544)

"[PATH\]x264.exe" --crf 18 --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --filter -1:-1 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "[PATH\]Transporter_DGAVCDecodeNV.mp4" "[PATH\]Transporter_DGAVCDecodeNV.avs"

Directshow

DirectShowSource("[PATH\]Transporter.mp4",fps=25,audio=false)
Spline36Resize(1280,544)

"[PATH\]x264.exe" --crf 18 --ref 5 --mixed-refs --bframes 3 --b-adapt 2 --b-pyramid --b-rdo --bime --weightb --filter -1:-1 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "[PATH\]Transporter_Directshow.mp4" "[PATH\]Transporter_Directshow.avs"

crypto
18th September 2008, 17:29
Ok, here are my results dgavcdecode vs. dgavcdecodeNV:

First good news: Using x264 cli two pass encodings are no problem.
Second good news: Acceleration is massive especially on the first pass.
Third good news: The quality of the final encode seems to be higher. I don't know why and have to do more tests.

Source: 1080p30 Apple music clip downscaled to 720p30
CPU: Q6600 2.4GHz
GPU: GF 8600 GTS 1.450 GHz

dgavcdecode:
pass #1: encoded 6580 frames, 32.68 fps, 4811.95 kb/s
pass #2: encoded 6580 frames, 21.48 fps, 5005.68 kb/s
x264 [info]: SSIM Mean Y:0.9689052
x264 [info]: PSNR Mean Y:41.892 U:48.994 V:48.284 Avg:43.078 Global:42.345 kb/s:5005.53


dgavcdecodeNV:
pass #1: encoded 6580 frames, 57.11 fps, 4811.95 kb/s
pass #2: encoded 6580 frames, 24.45 fps, 5005.42 kb/s
x264 [info]: SSIM Mean Y:0.9691189
x264 [info]: PSNR Mean Y:41.931 U:49.607 V:49.447 Avg:43.258 Global:42.404 kb/s:5005.27

nm
18th September 2008, 18:16
Third good news: The quality of the final encode seems to be higher. I don't know why and have to do more tests.
Perhaps there is some hardware postprocessing going on even when the video is not deinterlaced. Denoising might cause such a difference, for example. You could do some lossless encodes with both hardware and software decoding and compare the output frame-by-frame.

CruNcher
18th September 2008, 19:23
Ahh right crypto you should make sure your settings in the Control Panel dont include Nvidias Denoiseing or Sharpening Post Pro (Shaders) crazy maybe it can applied this way too :D

Diodato
18th September 2008, 23:21
A quick test of the Nvidia deinterlacing capabilities. I'm impressed.

The source is a crapy Main@L4.0 ~7.5Mb/s 25fps
(Beijing Olimpics 2008 Opening Ceremony 1080i CCTV.ts)

http://rapidshare.com/files/146436434/NVdeinterlace.zip.html

All Nvidia processings are turned off (edge=off, noise=off).

blubberbirne
18th September 2008, 23:24
I don't get the decoder to work :(

Using Vista SP1 64bit here.

LoadPlugin: unable to load "DGAVCDecodeNV.dll"

The DLL is in the same directory with the avs script.

Guest
18th September 2008, 23:30
Do you have CUDA drivers installed? Do you have an Nvidia card? Which one? Did you put nvcuvid.dll in System32?

Guest
18th September 2008, 23:31
Ahh right crypto you should make sure your settings in the Control Panel dont include Nvidias Denoiseing or Sharpening Post Pro (Shaders) crazy maybe it can applied this way too :D Umm, what is this control panel you're all talking about?

Ranguvar
18th September 2008, 23:31
NVIDIA driver control panel.

rack04
18th September 2008, 23:52
Don't really know how to translate the results but here goes:

Q6600
8800GT

DGAVCDecode
http://i11.photobucket.com/albums/a199/rack04/CRF_DGAVCDecode.jpg

DGAVCDecodeNV
http://i11.photobucket.com/albums/a199/rack04/CRF_DGAVCDecodeNV.jpg

Directshow
http://i11.photobucket.com/albums/a199/rack04/CRF_Directshow.jpg

JK1974
19th September 2008, 00:46
Sorry for getting off-topic in-between the lines - between all this discussion on deinterlacing - I will come back to this point later on. ;)

I also checked DGAVCIndexNV on two XP SP3 machines with GeForce 8600 GT, and it is really fantastic. No more artifacts on my AVCHD recordings of my Canon HF100 (which I had with DGAVCIndex before).

When trying to install it on the second machine, the plug-in did not load. I installed the latest drivers 177.92 (which seems to be beta; from the "the force within" promotion section of the site), tried it with the "special" cuda drivers, installed the toolkit, nothing worked until I checked again with Sysinternals Processmon. It was finally the nvcuvid.dll which was missing in the system32 directory - after installing this I could even remove the cuda toolkit and reinstall the latest (beta) drivers.

I still have some remarks on the tool itself:
- When doing a SeparateFields(), BFF seems to be used although even DGAVCIndexNV itself says that it is TFF. Currently, I would have to set an AssumeTFF() before in any script handling with the fields.
- I think it has not really clearly been said: TempGaussMC is a bobber which makes an 1080i50 being a 1080p50 while the NVIDIA deinterlacer just outputs 1080p25. This might be interesting for Blu-ray ripping but when it is about scaling while preserving the fields e.g. for an AVCHD-to-DVD conversion, this deinterlacing is useless IMHO - or did I miss something?
- One little request: Could you please add the extension "mts" to the list of ts-streams in DGAVCIndexNV? It´s the extension used by Canon AVCHD-Cams. ;)

Guest
19th September 2008, 01:38
I also checked DGAVCIndexNV on two XP SP3 machines with GeForce 8600 GT, and it is really fantastic. No more artifacts on my AVCHD recordings of my Canon HF100 (which I had with DGAVCIndex before). Yes, it solves the problem of broken libavcodec.dll.

When trying to install it on the second machine, the plug-in did not load. I installed the latest drivers 177.92 (which seems to be beta; from the "the force within" promotion section of the site), tried it with the "special" cuda drivers, installed the toolkit, nothing worked until I checked again with Sysinternals Processmon. It was finally the nvcuvid.dll which was missing in the system32 directory - after installing this I could even remove the cuda toolkit and reinstall the latest (beta) drivers. Good to know. Thanks for reporting your experiences.

I still have some remarks on the tool itself:
- When doing a SeparateFields(), BFF seems to be used although even DGAVCIndexNV itself says that it is TFF. Currently, I would have to set an AssumeTFF() before in any script handling with the fields. SeparateFields() separates based on the parity of the clip. DGAVCDecode and DGAVCDecodeNV currently blindly set parity to BFF, because I haven't done the code to determine it and set it yet; it's been on my to-do list for a long time. Since most h264 streams are TFF, I will change it to set TFF, atleast until I get time to do it properly. It involves some parsing of PIC timing SEIs when field or frame repeats are present and other things.

- I think it has not really clearly been said: TempGaussMC is a bobber which makes an 1080i50 being a 1080p50 while the NVIDIA deinterlacer just outputs 1080p25. This might be interesting for Blu-ray ripping but when it is about scaling while preserving the fields e.g. for an AVCHD-to-DVD conversion, this deinterlacing is useless IMHO - or did I miss something? You can't make a DVD at double rate, it has to be 29.97 for NTSC, so your point is kind of moot. But anyway, there are a lot of applications of single-rate deinterlacing. Why do you think single-rate deinterlacers exist? :)

- One little request: Could you please add the extension "mts" to the list of ts-streams in DGAVCIndexNV? It´s the extension used by Canon AVCHD-Cams. I think I can probably manage that.

Sagekilla
19th September 2008, 02:52
As a note to everything, please remember that my deinterlacer comparison was very naive, I never changed the TempGaussMC settings so it could theoretically do better.

lexor
19th September 2008, 03:37
Don't really know how to translate the results but here goes:

Q6600
8800GT


to me it says one of two things:

1) If AVS is something more than "open file", then avs is a bottleneck negating advantages of hardware decoding

2) If AVS just contains an "open file" statement, then CPU cycles freed up by hardware decoding of source are inconsequential

Either way, at least we get greater stream compatibility (with paff and such). Still too bad we don't get encoding speed boost.

rack04
19th September 2008, 04:03
to me it says one of two things:

1) If AVS is something more than "open file", then avs is a bottleneck negating advantages of hardware decoding

2) If AVS just contains an "open file" statement, then CPU cycles freed up by hardware decoding of source are inconsequential

Either way, at least we get greater stream compatibility (with paff and such). Still too bad we don't get encoding speed boost.

So are you saying that they results are skewed because I resized in the avs?

Sagekilla
19th September 2008, 04:31
I suppose when it comes to using faster settings, the GPU decoding definitely comes out on top. I'm curious how this would benefit a Core 2 Quad overclocked to 3.2 GHz :) Those would be -really- starved for data between my decoding Blu-ray, filtering, and encoding.

Sulik
19th September 2008, 06:25
Unless decode is the bottleneck (ie encode runs at 50+fps) and/or CPU is pegged at 100%, the speed boost for having even infinitely fast decoding would be small. As the numbers from rack04 show, a ~10fps encode gets a 2-5% speed boost.

Sagekilla
19th September 2008, 06:29
As I said, I'm curious what the results would be on a workhorse like I just described :) I plan on upgrading to such a system in the near future so this will be helpful having one thing offloaded from my chain.

Also, the encode doesn't need to run at "50+ fps" for it to be a bottleneck. The decode eats up a significant portion of my cpu time on my desktop computer, where I have a lowly Opteron 170.

JK1974
19th September 2008, 06:30
You can't make a DVD at double rate, it has to be 29.97 for NTSC, so your point is kind of moot. But anyway, there are a lot of applications of single-rate deinterlacing. Why do you think single-rate deinterlacers exist? :)


:)
I thought that the deinterlacers are just for all those TV-to-DivX encoders that don´t care about fluid movements.
Concerning the DVD at double rate:
For creating high-quality downconversions of the HD material to SD material, the HD material has first to be bobbed to 1080p50 at best quality (this takes huge time with TempGaussMC). Just then, you can scale it down at high quality. The resulting 576p50 has then to be weaved to 576i50.
Any possibility to bob it to 1080p50 at a comparable quality like the deinterlacer would also be a great improvement for a lot of users - at least at PAL land ;)

Sagekilla
19th September 2008, 06:33
@JK1974: There was a thread on this before. Yes, bobbing with a very high quality bobber like TGMC would produce the best results in both 1080p and 576p, but the reality was that there was VERY little difference between a dumb bob and smart bob when downsizing to 576p.

JK1974
19th September 2008, 07:33
@JK1974: There was a thread on this before. Yes, bobbing with a very high quality bobber like TGMC would produce the best results in both 1080p and 576p, but the reality was that there was VERY little difference between a dumb bob and smart bob when downsizing to 576p.

Thanks a lot for your clarification - don´t have the time to check the forum daily, so I must have missed it. With dumb bob you mean a simple SeparateFields()? Going to check if I find this thread...

blubberbirne
19th September 2008, 08:04
Do you have CUDA drivers installed? Do you have an Nvidia card? Which one? Did you put nvcuvid.dll in System32?

Yes, i have 177.84 installed, and also the Cuda SDK. My Card is a GTX260. And i also put the nvcuvid.dll in the System32 Folder.

qyqgpower
19th September 2008, 08:41
@blubberbirne
you are running vista 64bit, so may be the nvcuvid.dll(is it a 32bit runtime?) should be in the SysWoW64 folder

roozhou
19th September 2008, 08:58
Great work!
Will there finally be a standalone dshow filter that can be used for real-time playback? That will be an alternative way to DXVA.

squid_80
19th September 2008, 10:18
Great work!
Will there finally be a standalone dshow filter that can be used for real-time playback? That will be an alternative way to DXVA.
What would be the point? If your card supports this, it already supports DXVA.

Quark.Fusion
19th September 2008, 10:43
DXVA don't support post-processing. BTW resizing and sharpening also can be done at GPU :)

Best benefit will be if someone combine decoding, lanczos/blackman/spline resizing and FFT3DGPU in one package to avoid transfer of image back and forth. (Like this (http://avisynth.org/oldwiki/index.php?page=GPU_001))

NanoBot
19th September 2008, 10:54
Hi,

since Sagekilla asked for a comparision between DGAVCIndex and DGAVCIndexNV on a quadcore CPU, a ran a few tests.

My PC is a Q6600 @ 3,4GHz with 2GBytes DDR2-800 RAM running at 756MHz. The graphics card is a 9600GT with forceware 177.83 drivers, and the OS is Windows XP Pro 32bit. To get DGAVCIndexNV to run, I only had to unpack it and to copy the nvcuvid.dll into my system32 directory, like instructed. Both the denoising and the sharpening sliders in the Nvidia control panel where set to 0% during this tests.


The first clip I used for my tests is a DVB recording from "Anixe HD", which is about 2 minutes long. It is 1080i50, the footage seems to be shot with a video camera, since it really is interlaced, it has an AR of 1,78:1 and looks very clear ( no noise or grain )

1.) Decoded with DGAVCDecode and encoded as interlaced:


LoadPlugin("D:\MPEG\AVISYNTH\PLUGINS\DGAVCDecode.DLL")
AVCsource("anixe.dga")

D:\MPEG\megui\tools\x264>x264.exe --crf 22.0 --level 4.1 --ref 4 --mixed-refs --no-fast-pskip --bframes 3 --b-rdo --bime --weightb -
-trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --interla
ced --output "H:\anixe.mkv" "G:\Aufnahmen\anixe.avs"

avis [info]: 1920x1080 @ 25.00 fps (3023 frames)
x264 [warning]: NAL HRD parameters require VBV max bitrate and buffer size to be specified
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:14 Avg QP:21.34 size:229347
x264 [info]: slice P:1330 Avg QP:23.36 size: 65230
x264 [info]: slice B:1679 Avg QP:25.90 size: 20724
x264 [info]: consecutive B-frames: 9.8% 41.6% 17.0% 31.5%
x264 [info]: mb I I16..4: 13.0% 50.0% 37.0%
x264 [info]: mb P I16..4: 1.4% 6.9% 3.2% P16..4: 44.7% 15.1% 10.9% 0.0% 0.0% skip:17.8%
x264 [info]: mb B I16..4: 0.1% 0.3% 0.3% B16..8: 39.7% 1.1% 2.0% direct: 6.7% skip:49.8% L0:36.9% L1:54.5% BI: 8.6%
x264 [info]: 8x8 transform intra:58.1% inter:55.6%
x264 [info]: ref P L0 52.5% 20.0% 12.9% 4.0% 3.7% 2.1% 3.6% 1.2%
x264 [info]: ref B L0 65.5% 20.6% 7.2% 2.4% 3.0% 1.3%
x264 [info]: ref B L1 70.9% 29.1%
x264 [info]: SSIM Mean Y:0.9713192
x264 [info]: kb/s:8254.2

encoded 3023 frames, 5.64 fps, 8254.32 kb/s

2.) Decoded with DGAVCDecodeNV with "deinterlace=false" and encoded as interlaced:


LoadPlugin("D:\MPEG\AVISYNTH\PLUGINS\DGAVCDecodeNV.DLL")
AVCsource("anixe_nv.dga", deinterlace=false)

D:\MPEG\megui\tools\x264>x264.exe --crf 22.0 --level 4.1 --ref 4 --mixed-refs --no-fast-pskip --bframes 3 --b-rdo --bime --weightb -
-trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --interla
ced --output "H:\anixe_nv.mkv" "G:\Aufnahmen\anixe_nv.avs"
avis [info]: 1920x1080 @ 25.00 fps (3026 frames)
x264 [warning]: NAL HRD parameters require VBV max bitrate and buffer size to be specified
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:14 Avg QP:21.01 size:228003
x264 [info]: slice P:1162 Avg QP:22.76 size: 66468
x264 [info]: slice B:1850 Avg QP:24.86 size: 16716
x264 [info]: consecutive B-frames: 9.0% 18.8% 25.3% 46.9%
x264 [info]: mb I I16..4: 12.9% 47.7% 39.4%
x264 [info]: mb P I16..4: 1.3% 7.5% 3.3% P16..4: 40.3% 15.9% 11.0% 0.0% 0.0% skip:20.9%
x264 [info]: mb B I16..4: 0.1% 0.2% 0.3% B16..8: 37.4% 0.9% 1.5% direct: 5.2% skip:54.5% L0:33.0% L1:58.9% BI: 8.1%
x264 [info]: 8x8 transform intra:59.7% inter:55.5%
x264 [info]: ref P L0 56.6% 22.8% 8.5% 3.8% 2.7% 2.1% 2.3% 1.2%
x264 [info]: ref B L0 71.8% 20.6% 3.7% 2.0% 1.0% 0.9%
x264 [info]: ref B L1 76.9% 23.1%
x264 [info]: SSIM Mean Y:0.9719650
x264 [info]: kb/s:7359.7

encoded 3026 frames, 5.99 fps, 7359.81 kb/s

3.) Decoded with DGAVCDecodeNV with "deinterlace=true" and encoded as progressive:


LoadPlugin("D:\MPEG\AVISYNTH\PLUGINS\DGAVCDecodeNV.DLL")
AVCsource("anixe_nv.dga", deinterlace=true)

D:\MPEG\megui\tools\x264>x264.exe --crf 22.0 --level 4.1 --ref 4 --mixed-refs --no-fast-pskip --bframes 3 --b-rdo --bime --weightb -
-trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --output
"H:\anixe_nv_deint.mkv" "G:\Aufnahmen\anixe_nv_deint.avs"
avis [info]: 1920x1080 @ 25.00 fps (3026 frames)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:14 Avg QP:19.71 size:161555
x264 [info]: slice P:1117 Avg QP:21.46 size: 54310
x264 [info]: slice B:1895 Avg QP:23.47 size: 14413
x264 [info]: consecutive B-frames: 8.6% 15.1% 22.5% 53.8%
x264 [info]: mb I I16..4: 10.8% 70.6% 18.7%
x264 [info]: mb P I16..4: 1.8% 14.8% 1.6% P16..4: 41.4% 11.9% 7.8% 0.0% 0.0% skip:20.7%
x264 [info]: mb B I16..4: 0.2% 0.7% 0.1% B16..8: 32.7% 0.7% 1.1% direct: 6.1% skip:58.3% L0:34.0% L1:58.0% BI: 7.9%
x264 [info]: 8x8 transform intra:80.1% inter:68.1%
x264 [info]: ref P L0 74.8% 13.3% 7.6% 4.2%
x264 [info]: ref B L0 89.6% 7.0% 3.4%
x264 [info]: SSIM Mean Y:0.9820854
x264 [info]: kb/s:5964.2

encoded 3026 frames, 9.01 fps, 5964.27 kb/s


The second clip I used is also a DVB recording, this time from "Premiere HD", which also is about 2 minutes long. It is 1080i50 and seems to be shot on celluloid since the footage is progressive. This clip has an AR of 1,85:1 and looks quite noisy to be, might be film grain.


4.) Decoded by DGAVCDecode and encoded as progressive:


LoadPlugin("D:\MPEG\AVISYNTH\PLUGINS\DGAVCDecode.DLL")
AVCsource("Premiere.dga")

D:\MPEG\megui\tools\x264>x264.exe --crf 22.0 --level 4.1 --ref 4 --mixed-refs --no-fast-pskip --bframes 3 --b-rdo --bime --weightb -
-trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --output
"H:\Premiere.mkv" "G:\Aufnahmen\Premiere.avs"
avis [info]: 1920x1080 @ 25.00 fps (2977 frames)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:42 Avg QP:14.42 size:171198
x264 [info]: slice P:2020 Avg QP:16.96 size: 84495
x264 [info]: slice B:915 Avg QP:19.28 size: 27135
x264 [info]: consecutive B-frames: 39.6% 55.8% 2.1% 2.5%
x264 [info]: mb I I16..4: 14.2% 77.5% 8.4%
x264 [info]: mb P I16..4: 2.4% 11.8% 0.7% P16..4: 45.1% 20.9% 10.1% 0.0% 0.0% skip: 8.9%
x264 [info]: mb B I16..4: 0.3% 0.8% 0.0% B16..8: 35.5% 0.8% 1.3% direct:16.4% skip:44.8% L0:43.3% L1:50.3% BI: 6.3%
x264 [info]: 8x8 transform intra:78.7% inter:60.6%
x264 [info]: ref P L0 57.8% 20.9% 11.3% 9.9%
x264 [info]: ref B L0 80.5% 10.5% 9.0%
x264 [info]: SSIM Mean Y:0.9782869
x264 [info]: kb/s:13617.7

encoded 2977 frames, 5.89 fps, 13617.88 kb/s

5.) Decoded by DGAVCDecodeNV with "deinterlace=false" and encoded as progressive:


LoadPlugin("D:\MPEG\AVISYNTH\PLUGINS\DGAVCDecodeNV.DLL")
AVCsource("Premiere_nv.dga",deinterlace=false)

D:\MPEG\megui\tools\x264>x264.exe --crf 22.0 --level 4.1 --ref 4 --mixed-refs --no-fast-pskip --bframes 3 --b-rdo --bime --weightb -
-trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --me umh --threads auto --thread-input --sar 1:1 --progress --no-psnr --output
"H:\Premiere_nv.mkv" "G:\Aufnahmen\Premiere_nv.avs"
avis [info]: 1920x1080 @ 25.00 fps (2980 frames)
x264 [info]: using SAR=1/1
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:37 Avg QP:14.35 size:149138
x264 [info]: slice P:1752 Avg QP:16.64 size: 78769
x264 [info]: slice B:1191 Avg QP:19.28 size: 25838
x264 [info]: consecutive B-frames: 24.9% 59.9% 10.1% 5.0%
x264 [info]: mb I I16..4: 14.3% 77.9% 7.8%
x264 [info]: mb P I16..4: 2.4% 12.1% 0.5% P16..4: 44.7% 20.5% 10.0% 0.0% 0.0% skip: 9.9%
x264 [info]: mb B I16..4: 0.2% 0.7% 0.0% B16..8: 39.4% 0.6% 1.2% direct:14.4% skip:43.4% L0:39.8% L1:54.4% BI: 5.8%
x264 [info]: 8x8 transform intra:80.1% inter:60.0%
x264 [info]: ref P L0 63.5% 18.4% 12.5% 5.6%
x264 [info]: ref B L0 81.5% 11.8% 6.7%
x264 [info]: SSIM Mean Y:0.9784119
x264 [info]: kb/s:11697.7

encoded 2980 frames, 6.41 fps, 11697.84 kb/s


Since the second clip is noisy, I ran two more tests on this one while adjusting the denoiser slider in the Nvidia control panel to 25% and 51%. Nevertheless this has no impact on the result, both the performance and the file size are not influenced in anyway by the adjustment of the denoise slider. This makes me think that might it be necessary do explicitely activate the denoise postprocessing through the cuda api.


My preliminary conclusions are:

When using a quadcore CPU, offloading the decoding process to the GPU without deinterlacing at least atm speeds up things about 5% - 10%. This is a good step into the right direction, but it's such a big one as somebody might have hoped for. Nevertheless I suppose that the performance gain by GPU decoding might be much higher when using a single ore a dual core CPU.

On the other hand, the GPU decoding has a huge impact when used together with the GPU deinterlacing feature. Here I could observe a performace gain over 50%.

I also observed that decoding the video through the GPU seems to have an notable impact on the picture quality resulting in a significantly higher compressibility of the video during the encoding process.

And at last, the libavcodec.dll seems to have a bug which makes it loosing 3 frames compared to GPU decoding.

Subsuming the results of my tests it's my opinion that, even at this early stage of development, the usage of the GPU decoding through DGAVCDecodeNV is absolutely recommendable, if you own a suitable graphics card. Even if you might "only" get a speedup of 5% - 10% in the worst case, the better compressibility, the better picture quality and the very good deinterlacing feature are making DGAVCDecodeNV superior over DGAVCDecode.


C.U. NanoBot

lucassp
19th September 2008, 10:58
DXVA don't support post-processing. BTW resizing and sharpening also can be done at GPU :)

Best benefit will be if someone combine decoding, lanczos/blackman/spline resizing and FFT3DGPU in one package to avoid transfer of image back and forth. (Like this (http://avisynth.org/oldwiki/index.php?page=GPU_001))

All the HQV tests have shown that DXVA capable cards can do sharpening, noise reduction and other post-processing.

Firstly you need FFT3DGPU ported to CUDA because right now it uses the Direct3D backend.

So we need a good CUDA programmer to do all this :)

Daodan
19th September 2008, 10:59
Better picture quality? That, I think, shouldn't happen. Do you have maybe comparison pics? Or did you mean only when deinterlacer is used, compared to software ones?

NanoBot
19th September 2008, 11:03
Hi Daodan,

perhabs I used a misleading verbalization:

Decoding through libavcodec.dll gives me macroblock errors, which results in a loss of compression. Those errors are gone if I use GPU decoding.
So "better picture quality" was the wrong term in that context, I should have used "better decoding result".

C.U. NanoBot

Quark.Fusion
19th September 2008, 11:07
AFAIK DXVA can't do FFT-NR, high-quality resize and limited sharpening — so you get medium quality NR, bilinear or at most bicubic resize and don't-know-what sharpening.
And if you want to encode that to view later on your not-so-powerful notebook or HTPC — you out of luck with DXVA.

blubberbirne
19th September 2008, 11:19
@blubberbirne
you are running vista 64bit, so may be the nvcuvid.dll(is it a 32bit runtime?) should be in the SysWoW64 folder

Great tip, i will test it, when i'm at home

sazanon
19th September 2008, 11:22
Great tip, i will test it, when i'm at home

Yes, it works that way

Guest
19th September 2008, 11:52
Thanks a lot for your clarification - don´t have the time to check the forum daily, so I must have missed it. With dumb bob you mean a simple SeparateFields()? Going to check if I find this thread... Please take this off-topic discussion to the appropriate thread.

JK1974
19th September 2008, 12:08
Please take this off-topic discussion to the appropriate thread.

I have found the thread in the meantime, so no more discussion on this apart from a little request: If there is a special bobbing function inside the drivers that can be implemented with just a few commands, please give it a try - we can compare the results then - in a separate thread ;)

squid_80
19th September 2008, 12:26
I haven't tried it but bobbing should be possible by setting the deinterlace mode to cudaVideoDeinterlaceMode_Bob and toggling the second_field flag of the CUVIDPROCPARAMS struct when mapping the frame (set to 0 when an even frame is requested, 1 for an odd frame). No idea if this functionality is implemented in cuda yet though.

rack04
19th September 2008, 13:15
As I said, I'm curious what the results would be on a workhorse like I just described :) I plan on upgrading to such a system in the near future so this will be helpful having one thing offloaded from my chain.

Also, the encode doesn't need to run at "50+ fps" for it to be a bottleneck. The decode eats up a significant portion of my cpu time on my desktop computer, where I have a lowly Opteron 170.

My Q6600 was running at 3.2GHz.

Guest
19th September 2008, 13:16
It affects the entire infrastructure of DGAVCIndex and DGAVCDecode. Even if CUDA can support it, I don't plan to.

Sagekilla
19th September 2008, 20:24
I suppose this is, at the very least, a big win for anyone with a nvidia card and some HD interlaced material :)

Inventive Software
19th September 2008, 20:42
Ok, here are my results dgavcdecode vs. dgavcdecodeNV:

First good news: Using x264 cli two pass encodings are no problem.
Second good news: Acceleration is massive especially on the first pass.
Third good news: The quality of the final encode seems to be higher. I don't know why and have to do more tests.

Source: 1080p30 Apple music clip downscaled to 720p30
CPU: Q6600 2.4GHz
GPU: GF 8600 GTS 1.450 GHz

dgavcdecode:
pass #1: encoded 6580 frames, 32.68 fps, 4811.95 kb/s
pass #2: encoded 6580 frames, 21.48 fps, 5005.68 kb/s
x264 [info]: SSIM Mean Y:0.9689052
x264 [info]: PSNR Mean Y:41.892 U:48.994 V:48.284 Avg:43.078 Global:42.345 kb/s:5005.53


dgavcdecodeNV:
pass #1: encoded 6580 frames, 57.11 fps, 4811.95 kb/s
pass #2: encoded 6580 frames, 24.45 fps, 5005.42 kb/s
x264 [info]: SSIM Mean Y:0.9691189
x264 [info]: PSNR Mean Y:41.931 U:49.607 V:49.447 Avg:43.258 Global:42.404 kb/s:5005.27
Wow, that's a big increase! Same encoder settings I assume? :)

Don't really know how to translate the results but here goes:

Q6600
8800GT

DGAVCDecode
http://i11.photobucket.com/albums/a199/rack04/CRF_DGAVCDecode.jpg

DGAVCDecodeNV
http://i11.photobucket.com/albums/a199/rack04/CRF_DGAVCDecodeNV.jpg

Directshow
http://i11.photobucket.com/albums/a199/rack04/CRF_Directshow.jpg
Only a slight increase, but it helps. Good one. :)

Atak_Snajpera
19th September 2008, 22:49
I suppose this is, at the very least, a big win for anyone with a nvidia card and some HD interlaced material
Exactly! High-quality deinterlacer for free along with PAFF decoding are the most important for me however I'm ATI user :)

ooferomen
19th September 2008, 23:51
Vista SP1
Athlon64 3500+ 2.25ghz
1GB ram
8400GS with VP3

i took a 1080p hd-dvd clip and cropped a few lines off the top and bottom then bilinear resized to 640x352 and encoded using megui iphone profile.

no gpu:
pass 1 encoded 2168 frames, 6.03 fps, 1003.51 kb/s
pass 2 encoded 2168 frames, 6.06 fps, 1000.23 kb/s

gpu:
pass 1 encoded 2170 frames, 11.91 fps, 1003.26 kb/s
pass 2 encoded 2170 frames, 12.06 fps, 1000.27 kb/s

crypto
20th September 2008, 00:25
Wow, that's a big increase! Same encoder settings I assume? :)

You mean between the test runs (NV vs. non-NV)? Sure.
Between the passes? No. I was using my normal "production" batches for ATV (Main Profile 5 MB/s), which are optimized on multi pass. There is even some heavy preprocessing (LFS) on pass #2. Without it would be a lot faster. I think, I redo the tests with some simpler scripts.

Exactly! High-quality deinterlacer for free along with PAFF decoding are the most important for me however I'm ATI user :)
Exactly the point.
I would also add: high boost on fast first passes and on single pass encodes at high fps (HD realtime encoding)

All in all a big win. Thanks Don.

Guest
20th September 2008, 00:42
I'm going to try to fix multi-instance this weekend. It probably won't support interleaved access, but at least the GUIs will be able to do two-pass (hopefully) without choking to death.

ooferomen
20th September 2008, 03:57
is it too much work to implement mpeg2/vc1 decoding? nvidia's vp3 has the same level of decoding for mpeg2/vc1 as vp2 has for h264. getting that purevideo deinterlacing for mpeg2 1080i would be cool :)

Guest
20th September 2008, 04:11
Please read existing threads thoroughly.

crypto
20th September 2008, 08:57
I'm going to try to fix multi-instance this weekend. It probably won't support interleaved access, but at least the GUIs will be able to do two-pass (hopefully) without choking to death.

I hope this is not too complicated. This is clearly an issue of the GUI and not of dgavcdecodenv. Multipasses are clearly sequentially serialized. There is no need to overlap them.

I know, that there is currently no place for additional features, but would it be possible to access the scaler via CUDA maybe in a similar way like the deinterlacer.

lucassp
20th September 2008, 12:38
Which chips support full hardware VC-1 decoding?
Which chips have VP3? I didn't hear anything about it.

Sharktooth
20th September 2008, 15:00
I hope this is not too complicated. This is clearly an issue of the GUI and not of dgavcdecodenv. Multipasses are clearly sequentially serialized. There is no need to overlap them.

I know, that there is currently no place for additional features, but would it be possible to access the scaler via CUDA maybe in a similar way like the deinterlacer.
issue of the gui?
so if you cant to a stackorizontal or stackvertical with 2 avc sources is still an "issue of the GUI"?
i dont think so.

Guest
20th September 2008, 15:25
Hey Sharktooth,

Why does MeGUI have to open the script twice? Why can't you open the script once and then just start requesting at frame 0 again for the encode phase?

And if preview is disabled, why do you open the script for it anyway?

I found that you can do multipass DivX in VirtualDub because it opens the filter once only and then starts requesting again at frame 0 for the second pass.

HCEnc also opens the script twice. It makes no sense to me, even for other reasons such as memory efficiency.

pwolfamv
20th September 2008, 22:20
Do not put it in your Avisynth plugins directory. Do not try to use it with any GUI.

too late... It works though, no issues :P simple script resizing down to 640x360 is giving me +10fps while encoding in vdub using PicVideo mjpeg codec.

Only thing worth mentioning would be that seeking is still slow.

i'm not really into h264 encoding so this is the best way for me test something, heh.

Pookie
21st September 2008, 21:20
I've been feeding it AVCHD camcorder files from various sources and the vast majority have worked flawlessly. The two I'm posting seem to seize the transcoding 4-6 frames short of completion when running them through x264 or VirtualDub

17MB
http://www.mediafire.com/?jamzuytnvso

8MB
http://www.mediafire.com/?tg1pysyytfw

Guest
21st September 2008, 23:45
Thanks, Pookie, I'll have a look at it. I can always rely on you for good trouble reports giving me everything I need to duplicate it without me having to ask!

On another front... Woo hoo! I have multi instance working. And it supports interleaving from different processes, too, not just serialized (most of the GUIs are serial, however, and I can't vouch for the performance if you do interleaved access). I tested it in 2-pass HCEnc, which went mammary glands up before (gotta watch out for rule 4, doncha know). New package coming tonight or tomorrow then.

What I did was move all CUDA code and variables into the filter instance DGAVCDecoder object. Then each new filter instance starts up an entire complete new CUDA instance. CUDA already manages context switching between threads. I can open a script in two instances of VirtualDub and step and seek independently without them interfering with each other. I was shocked to see CUDA managing that without me having to explicitly push/pop contexts, but hey, no complaints from me. :)

I also did it for DGAVCIndexNV, so that you can open multiple DGAVCIndexNV instances at once if you so desire, although I don't see much reason for that.

rack04
21st September 2008, 23:49
Thanks, Pookie, I'll have a look at it. I can always rely on you for good trouble reports giving me everything I need to duplicate it without me having to ask!

On another front... Woo hoo! I have multi instance working. And it supports interleaving from different procees, too, not just serialized (most of the GUIs are serial, however, and I can't vouch for the performance if you do interleaved access). I tested it in 2-pass HCEnc, which went mammary glands up before (gotta watch out for rule 4, doncha know). New package with extended expiration tonight or tomorrow then.

Excellent work.

Atak_Snajpera
22nd September 2008, 00:13
Can somebody check if .avs with hardware decoding work in Sony Vegas or adobe premiere

Guest
22nd September 2008, 00:15
You might want to wait for the new version as I don't know if those apps open the script more than once. With the new version, I don't see why there would be any problem, as long as they can already open AVS scripts.

Atak_Snajpera
22nd September 2008, 00:22
now I am really thinking about selling my just bought 4850. Hardware decoding AVCHD footage via avs in premiere or vegas = priceless :) ATI WEAK UP!!!!

Zwitterion
22nd September 2008, 00:42
Can you tell CUDA which field to keep when Deinterlacing? Then, with two instances of DGAVCDecodeNV, one could hack together a CUDA bobber.

a=DGAVCDecodeNV_AVCSource("00001_NV.dga", deinterlace=true, order=1)
b=DGAVCDecodeNV_AVCSource("00001_NV.dga", deinterlace=true, order=0)

Interleave(a,b)

Guest
22nd September 2008, 00:52
Can you tell CUDA which field to keep when Deinterlacing? Then, with two instances of DGAVCDecodeNV, one could hack together a CUDA bobber.

a=DGAVCDecodeNV_AVCSource("00001_NV.dga", deinterlace=true, order=1)
b=DGAVCDecodeNV_AVCSource("00001_NV.dga", deinterlace=true, order=0)

Interleave(a,b) Brilliant! Yes, in fact you can. I'll see if it works and, if so, add the parameter.

Sharktooth
22nd September 2008, 00:52
Hey Sharktooth,

Why does MeGUI have to open the script twice? Why can't you open the script once and then just start requesting at frame 0 again for the encode phase?

And if preview is disabled, why do you open the script for it anyway?

I found that you can do multipass DivX in VirtualDub because it opens the filter once only and then starts requesting again at frame 0 for the second pass.

HCEnc also opens the script twice. It makes no sense to me, even for other reasons such as memory efficiency.
there are multiple reasons. changing that behaviour would mean changing a lot of code and using a single instance would also mean you cant re-use the avs for other tasks.

Guest
22nd September 2008, 01:19
Brilliant! Yes, in fact you can. I'll see if it works and, if so, add the parameter. Both instances returned the same field, so I wrote to Nvidia about it. It may be a CUDA bug.

Guest
22nd September 2008, 01:20
there are multiple reasons. Your not telling us what the reasons are suggests that you don't know what they are. :)

using a single instance would also mean you cant re-use the avs for other tasks. That doesn't sound right. Why can't you re-use the AVS just as you can load the same script multiple times in VirtualDub?

Anyway, it's a moot point as I have multi-instance working, but I was curious about that design decision.

Guest
22nd September 2008, 01:52
now I am really thinking about selling my just bought 4850. Hardware decoding AVCHD footage via avs in premiere or vegas = priceless :) ATI WEAK UP!!!! As I mentioned, I believe you can install an Nvidia card as a secondary adapter and CUDA will work just fine with it.

Guest
22nd September 2008, 02:18
Only thing worth mentioning would be that seeking is still slow. It depends on your IDR or RPS frequency. If you have 300 frame long GOPs, then yes, seeking can be slow. But it's pretty fast for my 25 frame GOPs. Also, be aware that a random seek is only needed when you ask for a frame either behind the last one or more than 10 frames ahead (otherwise the decoder just decodes linearly until the needed frame is reached). Not too many scripts do that. The torture script is Reverse(). :)

rack04
22nd September 2008, 02:39
How will the end user update CUDA when Nvidia fixes these problems? Are they part of the Nvidia drivers, CUDA toolkit, or CUDA SDK?

Sharktooth
22nd September 2008, 03:25
Your not telling us what the reasons are suggests that you don't know what they are. :)

That doesn't sound right. Why can't you re-use the AVS just as you can load the same script multiple times in VirtualDub?

Anyway, it's a moot point as I have multi-instance working, but I was curious about that design decision.
well, megui stores the AR in the avs, so it have to read it before the encoding (and that requires an instance since we read the AR using a wrapper) and then during the encoding... also megui keeps an instance open for displaying the preview (you can also watch the preview while encoding)... also the user may want to open another instance of another avs or even the same for multiple encodings even after an encoding has been started... also megui has multiple workers so there may be more than one instance running... etc...
so, in short, having a single instance will cripple many megui functionalities and would require workarounds everywhere in the code.
however, since you've sorted the instancing problems, we're all happy :)

tre31
22nd September 2008, 06:04
As I mentioned, I believe you can install an Nvidia card as a secondary adapter and CUDA will work just fine with it.

Well just thought I'd add this since it is kind of relevant, and for ATI users its the final blow, time too get an nvidia card for CUDA me thinks. In a nutshell - no access too UVD via Stream SDK.

http://forums.amd.com/devforum/messageview.cfm?catid=328&threadid=99872&enterthread=y

Atak_Snajpera
22nd September 2008, 07:10
Well just thought I'd add this since it is kind of relevant, and for ATI users its the final blow, time too get an nvidia card for CUDA me thinks. In a nutshell - no access too UVD via Stream SDK.
This may change if they will feel that they are staying behind... So WEAK UP Canadians!!!!

As I mentioned, I believe you can install an Nvidia card as a secondary adapter and CUDA will work just fine with it.
true but i dont like to have two GFX in my small case.

lucassp
22nd September 2008, 07:35
true but i dont like to have two GFX in my small case.

I guess a low profile 8400 won't hurt a lot :)

Quark.Fusion
22nd September 2008, 12:10
How will the end user update CUDA when Nvidia fixes these problems? Are they part of the Nvidia drivers, CUDA toolkit, or CUDA SDK?
Update drivers.

Guest
22nd September 2008, 12:59
Here's the multi-instance version, also with the bobbing capability.

http://neuron2.net/dgavcdec/dgavcdecnv100a3.zip

EDIT: MeGUI somehow manages to crash in d3d9.dll when enqueueing the job. I don't know why at this time.

Renzz
22nd September 2008, 13:23
Just trying the new version but am now getting "ERROR: Failed to find CUDA-compatible D3D device(2)" error when running the GUI. Previous version worked fine. I have an 8600GT running on Vista SP1. I've tried moving the supplied DLLs into system32 but still get the same error.

Guest
22nd September 2008, 13:27
Just trying the new version but am now getting "ERROR: Failed to find CUDA-compatible D3D device(2)" error when running the GUI. I don't know what you mean by "when running the GUI".

kemuri-_9
22nd September 2008, 13:36
I don't know what you mean by "when running the GUI".

referring to DGAVCIndexNV, when i've gotten that error, a restart was in order to fix.

Renzz
22nd September 2008, 13:40
I don't know what you mean by "when running the GUI".

I mean when running DGAVCIndexNV.exe.

Just to confirm, do we need to do anything with the supplied DLLs? Should they be in the same directory as DGAVCIndexNV.exe or moved to windows/system32?

Guest
22nd September 2008, 13:44
The DLLs are the same as with the previous version. They should all be in system32 (for Windows XP).

You say that DGAVCIndexNV alpha 2 works and alpha 3 doesn't?

That's hard to believe because the only change was to the name of a windows event (changed name to NULL to avoid name space collision for multiple instances).

Please put alpha3 and alpha 2 EXEs right next to each other in the same directory (to rule out any path differences) and try again.

Renzz
22nd September 2008, 14:51
Please put alpha3 and alpha 2 EXEs right next to each other in the same directory (to rule out any path differences) and try again.

So alpha 2 was failing in the same way, despite working ok a few days ago. I reinstalled the NVIDIA drivers - and they still both failed. Finally, I deleted the NV DLLs from the directory containing dgavcindexnv.exe - and they both now work.

So a word of warning to Vista users - don't use the two DLLs supplied in the package (nvapi.dll and ncuda.dll) as I think they are from Winxp and must be different to the Vista ones (which are already in system32). Looks like nvcuvid.dll is still needed.

Guest
22nd September 2008, 15:20
I'm glad you got it working and thank you for reporting your experiences. I will make a document summarizing all these findings.

First, though, I am going to use the debugger to see why MeGUI crahes things when none of the other apps do.

Inventive Software
22nd September 2008, 16:10
It's MeGUI... there's a reason I don't use it and stick with the CLI tools themselves. IMHO, it's gone down-hill in trying to make itself an all-in-one app.

Did the CUDA Bob end up working properly then? I'm amazed that's allowed, really. How does it compare to, say, DGBob?

Zwitterion
22nd September 2008, 16:24
The only interlaced material I have is the bonus content in SD from a Blu-ray. I tried to decode it with dgavcdecnv100a3 and got weird artifacts:
http://img225.imageshack.us/img225/8017/artdq7.th.png (http://img225.imageshack.us/my.php?image=artdq7.png)http://img225.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
It looks like it decodes the stream, but messed up the lines or something like that.
The indexer shows no such artifacts and I can preview the deinterlacer there.
Here (http://rapidshare.com/files/147441106/00014.m2ts.html) is a sample (first 15 MB of the stream). Can anyone else replicate it?

Guest
22nd September 2008, 16:44
It's MeGUI... there's a reason I don't use it and stick with the CLI tools themselves. IMHO, it's gone down-hill in trying to make itself an all-in-one app. If it's coded in some silly managed language, I'm not going to bother trying to debug it.

Did the CUDA Bob end up working properly then? I'm amazed that's allowed, really. How does it compare to, say, DGBob? Yes, it seems to work fine. Why would you be amazed? Allowed by what? I haven't done any comparisons yet.

Guest
22nd September 2008, 16:45
The only interlaced material I have is the bonus content in SD from a Blu-ray. I tried to decode it with dgavcdecnv100a3 and got weird artifacts Post your script please.

Zwitterion
22nd September 2008, 16:49
Post your script please.
DGAVCDecodeNV_AVCSource("00014.dga")
Does it decode fine for you?

Sharktooth
22nd September 2008, 16:49
If it's coded in some silly managed language, I'm not going to bother trying to debug it.
i have a gf6800 so i cant help here...

Guest
22nd September 2008, 16:53
Does it decode fine for you? I can't get file sharing sites behind my corporate firewall, so I can't answer that until this evening.

Inventive Software
22nd September 2008, 18:04
Yes, it seems to work fine. Why would you be amazed? Allowed by what? I haven't done any comparisons yet.

I'm amazed that it's so simple to implement and NVIDIA would allow something like that. If I'm honest, I thought they'd lock you to their PureVideo de-interlacer.

On a separate note, don't you have an FTP people can post to, or am I thinking of someone else? :)

Atak_Snajpera
22nd September 2008, 18:22
So a word of warning to Vista users - don't use the two DLLs supplied in the package (nvapi.dll and ncuda.dll) as I think they are from Winxp and must be different to the Vista ones (which are already in system32). Looks like nvcuvid.dll is still needed.
There is simple solution : if OS=6.0 then use system32dlls else use dlls in main direcory

blubberbirne
22nd September 2008, 19:11
what the hell is going on :devil:

i test the new version with some orf hd test file (1280x720 50P)

First Pass: encoded 3618 frames, 19.61 fps, 4972.53 kb/s
Second Pass: encoded 3618 frames, 87.28 fps, 4994.29 kb/s

i used these settings:


x264.exe --pass 1 --bitrate 5000 --stats ".stats" --level 4.1 --bframes 3 --b-adapt 2 --direct auto --filter -1:-1 --subme 2 --partitions none --vbv-bufsize 50000 --vbv-maxrate 50000 --me dia --threads auto --thread-input --progress --no-psnr --no-ssim --output NUL "dga.avs"
pause
x264.exe --pass 2 --bitrate 5000 --stats ".stats" --level 4.1 --bframes 3 --b-adapt 2 --direct auto --filter -1:-1 --subme 2 --partitions none --vbv-bufsize 50000 --vbv-maxrate 50000 --threads auto --thread-input --progress --no-psnr --no-ssim --output "video.mp4" "dga.avs"
pause

can't belive it, but the encoded video works fine here :thanks:

TL0
22nd September 2008, 19:32
what the hell is going on :devil:

Your first pass is slower because of frame decision, second pass does not have to do this and is much faster because of your lowered quality settings.

blubberbirne
22nd September 2008, 19:33
Your first pass is slower because of frame decision, second pass does not have to do this and is much faster because of your lowered quality settings.

normaly i get ~12fps in second pass with these settings

TL0
22nd September 2008, 19:37
You should maybe ask one of the x264 developers about this then, I looked at your settings and they are almost indentical for both passes, except for --me hex on second pass. :confused:

DarkZell666
22nd September 2008, 20:02
Simple : you're using --b-adapt 2, which is much slower in the first pass than on the second (since it does all it's magic in the first pass).

blubberbirne
22nd September 2008, 20:13
hey, the second pass is the problem ;) Its "ultra" fast for HD Encoding ;)

Guest
22nd September 2008, 20:15
First time I've ever had a complaint that my software is too fast. :)

AtomX
22nd September 2008, 20:34
I am very happy to report that everything works flawlessly as far as I can find (flawlessly for my workflow anyway). Here's how it goes:

1. Process an M2TS file from a ripped blu-ray (in this case, The Girl Who Leapt Through Time) through DGAVCIndexNV
2. Create an AVS script to process the .dga
3. Open up my Premiere project that uses an MJPEG encode of the movie (made from the blu-ray, originally using the old DGAVCIndex
4. Replace the footage with the new AVS script
5. Everything is in it's right place and works perfectly (granted it's slow, but I mean, it's 1080p. I would never expect it to be)

I can export from Premiere in full 1080p and everything works great. What I had to do before was demux the m2ts file to a .h264 file, process that through DGAVCIndex, and then bring that into VDub to encode it to both MJPEG and to Lagarith (resulting in an enormous file, and the encode time was very significant), and then bait and switch between the two.

So basically, having this new workflow is going to save me a ton of HD space and a lot of time. Thanks a ton! :D

Ranguvar
22nd September 2008, 21:22
My #1 request: Linux support. There is CUDA for Linux. If any Linux devs are willing to help neuron2, then, since I don't believe he uses Linux at all? :)

Atak_Snajpera
22nd September 2008, 21:33
Neuron2 - Will you add simple support for .MKV?
It would be great if I could import mkv generated by eac3to directly without demuxing.

blubberbirne
22nd September 2008, 21:36
oh yes, mkv support would be great. i have many avc records muxed to mkv here.

Guest
22nd September 2008, 22:03
Where is the spec for the MKV container?

rack04
22nd September 2008, 22:09
Where is the spec for the MKV container?

Is this (http://www.matroska.org/technical/specs/index.html) what you're looking for?

nm
22nd September 2008, 22:57
My #1 request: Linux support. There is CUDA for Linux. If any Linux devs are willing to help neuron2, then, since I don't believe he uses Linux at all? :)
Unfortunately Cuda Linux SDK doesn't contain the necessary video decoding functions, probably because the display driver doesn't support VP2 in any way.

Guest
22nd September 2008, 23:17
Linux talk not welcome here! Please go to the Linux forum. Thank you. :)

Guest
23rd September 2008, 01:53
The only interlaced material I have is the bonus content in SD from a Blu-ray. I tried to decode it with dgavcdecnv100a3 and got weird artifacts:
http://img225.imageshack.us/img225/8017/artdq7.th.png (http://img225.imageshack.us/my.php?image=artdq7.png)http://img225.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
It looks like it decodes the stream, but messed up the lines or something like that.
The indexer shows no such artifacts and I can preview the deinterlacer there.
Here (http://rapidshare.com/files/147441106/00014.m2ts.html) is a sample (first 15 MB of the stream). Can anyone else replicate it? Please re-download alpha 3. I have repaired it. I was not honoring the pitch of the Avisynth YV12PICT. Silly me.

Thank you for pointing this out!

http://neuron2.net/dgavcdec/dgavcdecnv100a3.zip

Snowknight26
23rd September 2008, 03:45
You might like to update your first post/title too.

Guest
23rd September 2008, 04:17
You might like to update your first post/title too. Great idea, Snowknight26, thank you! I've done it.

squid_80
23rd September 2008, 06:02
My #1 request: Linux support. There is CUDA for Linux. If any Linux devs are willing to help neuron2, then, since I don't believe he uses Linux at all? :)The cuda video decoder only works with direct3d at the moment. OpenGL support is promised for the future.

hklck516
23rd September 2008, 11:40
this version can support MeGUI ?

using Vista x64 SP1

ReferenceDivx
23rd September 2008, 11:59
Great work neuron2! Its people like you who motivate me to do great work.

My setup consists of a q6600 cpu, 8500gt, and 2gb of memory. Tests where run on a raid array.
I'm using Vista 32bits and such got rid of nvapi.dll and nvcuda.dll

compared vs ffdshow filter (my usual method).

Video is 1080p from a bluray with no post processing .

C:\Program Files\megui\tools\x264>x264.exe --pass 1 --bitrate 10345 --stats "tes
t.stats" --level 4.1 --keyint 14 --min-keyint 2 --bframes 2 --direct auto --filt
er -1:-1 --subme 2 --partitions none --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 1
4475 --vbv-maxrate 24000 --qcomp 0.5 --me dia --merange 12 --threads auto --thre
ad-input --progress --no-psnr --no-ssim --output NUL "E:\output\test\test4.avs"
--mvrange 5
avis [info]: 1920x1080 @ 23.98 fps (3431 frames)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:328 Avg QP:12.01 size: 86392
x264 [info]: slice P:1900 Avg QP:12.93 size: 67376
x264 [info]: slice B:1203 Avg QP:14.08 size: 33267
x264 [info]: consecutive B-frames: 35.1% 27.0% 37.9%
x264 [info]: mb I I16..4: 70.0% 0.0% 30.0%
x264 [info]: mb P I16..4: 38.0% 0.0% 0.0% P16..4: 19.2% 0.0% 0.0% 0.0% 0
.0% skip:42.9%
x264 [info]: mb B I16..4: 6.2% 0.0% 0.0% B16..8: 18.9% 0.0% 0.0% direct:
21.7% skip:53.2% L0:32.7% L1:38.5% BI:28.8%
x264 [info]: final ratefactor: 17.07
x264 [info]: direct mvs spatial:93.6% temporal:6.4%
x264 [info]: kb/s:10978.1
encoded 3431 frames, 17.10 fps, 10980.39 kb/s

first pass went from 14.04 to 17.10 a 22% increase


C:\Program Files\megui\tools\x264>x264.exe --pass 2 --bitrate 10345 --stats "tes
t.stats" --level 4.1 --keyint 14 --min-keyint 2 --bframes 2 --direct auto --filt
er -1:-1 --subme 2 --partitions none --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 1
4475 --vbv-maxrate 24000 --qcomp 0.5 --merange 12 --threads auto --thread-input
--progress --no-psnr --no-ssim --output "E:\output\test\test.264" "E:\output\tes
t\test4.avs" --mvrange 511 --aud --nal-hrd
avis [info]: 1920x1080 @ 23.98 fps (3431 frames)
x264 [info]: using cpu capabilities: MMX2 SSE2Fast SSSE3 Cache64
x264 [info]: slice I:328 Avg QP:12.43 size: 78128
x264 [info]: slice P:1900 Avg QP:13.51 size: 61252
x264 [info]: slice B:1203 Avg QP:13.97 size: 35959
x264 [info]: consecutive B-frames: 35.1% 27.0% 37.9%
x264 [info]: mb I I16..4: 70.1% 0.0% 29.9%
x264 [info]: mb P I16..4: 35.1% 0.0% 0.0% P16..4: 21.9% 0.0% 0.0% 0.0% 0
.0% skip:43.0%
x264 [info]: mb B I16..4: 6.3% 0.0% 0.0% B16..8: 20.3% 0.0% 0.0% direct:
22.5% skip:51.0% L0:28.8% L1:34.0% BI:37.2%
x264 [info]: direct mvs spatial:86.1% temporal:13.9%
x264 [info]: kb/s:10357.0
encoded 3431 frames, 22.07 fps, 10363.72 kb/s

second pass went from 11.77 to 22.07 a 88% increase

Inventive Software
23rd September 2008, 13:44
this version can support MeGUI ?

using Vista x64 SP1

MeGUI is NOT supported. Read the whole thread to find out why.:rolleyes:

EDIT: Donald! Matroska specifications: http://www.matroska.org/technical/index.html. Also check out http://haali.net/mkv.

Guest
23rd September 2008, 13:52
this version can support MeGUI ?
Your error appears to indicate that you aren't finding the DLLs. Make sure that nvcuvid.dll is in the right directory for Vista 64. It's been mentioned several times in the thread how to get things working in Vista 64.

But anyway, once you find the DLLs, MeGui will crash. I need to post in the MeGui development thread about that.

Sagekilla
23rd September 2008, 14:25
@Inventive Software, the latest version does in fact support MeGUI I believe. neuron2 finished the multi instancing so you can use it properly with MeGUI.

Inventive Software
23rd September 2008, 14:26
I was under the impression that MeGUI still had quirks that prevented it from working properly. :confused:

Sagekilla
23rd September 2008, 14:28
The quirks were the fact that MeGUI opens a file several times to check for various parameters. In the case of AVCSource(), it didn't like being called multiple times before.

I believe this was changed, but I could be wrong.

Guest
23rd September 2008, 14:28
@Inventive Software, the latest version does in fact support MeGUI I believe. neuron2 finished the multi instancing so you can use it properly with MeGUI. My post right above yours says it doesn't work!

I'll repeat it all again:

Yes, AVCSource() now supports multi-instance. But MeGUI does not play nice and crashes. All other apps I have tried work fine. I don't know why MeGUI crashes and I don't plan to try to debug it. Someone needs to report it to the MeGUI developers.

Sagekilla
23rd September 2008, 14:30
Apologies, I missed your post when I posted.

Inventive Software
23rd September 2008, 14:32
My post right above yours says it doesn't work!

So I'm not going nutso then! Good to know. ;)

Sharktooth
23rd September 2008, 14:52
im the only "active" dev... but i already said i cant debug coz i havent a CUDA enabled videocard.

Guest
23rd September 2008, 15:07
What's MEGUI written in and how hard would it be for me to get a build environment up and running?

Sharktooth
23rd September 2008, 15:11
c#... managed code... exactly what you hate...

Turtleggjp
23rd September 2008, 16:58
+1 vote for MKV support, since I'll be using that for all my TV shows this season. I hope you will bring it to the non-NVIDIA version as well, so my laptop can use it too.

Also, you said that you would be able to support VC-1 as well. Will this be fairly simple to add, or will you need to go through a lot of the trial and error stuff you went through getting DGAVCIndex as far along as it is today? I know the decoding part will be easily handled by the CUDA drivers, but I know there's a lot that goes into the indexing as well. No big rush as far as I'm concerned, since the only place I get VC-1 files is from Blu Rays, and I usually don't need to do frame accurate editing on those. Thanks again for all your hard work!

Matt

Atak_Snajpera
23rd September 2008, 17:18
Also, you said that you would be able to support VC-1 as well.
Do nvidia's cards support VC-1 decoding???

Guest
23rd September 2008, 17:28
Do nvidia's cards support VC-1 decoding??? Yes, of course.

The VC-1 is defined as an available codec in the cuda header files, too. I haven't tried it yet but will soon.

Theoretically, the CUDA interface is the same for all video types, so if it works it should not be hard to integrate.

turbojet
23rd September 2008, 17:52
nice work, I have just one little issue that may or may not be resolvable. I often use radmin 3.2 between the 2 computers I have at home. It seems like when I disconnect from radmin it freezes x264 encoding if decoded with dgavcdecnv. Radmin (http://www.radmin.com) has a 30 day trial period I'd really appreciate it if it could be looked at.

LaTo
23rd September 2008, 18:09
nice work, I have just one little issue that may or may not be resolvable. I often use radmin 3.2 between the 2 computers I have at home. It seems like when I disconnect from radmin it freezes x264 encoding if decoded with dgavcdecnv. Radmin (http://www.radmin.com) has a 30 day trial period I'd really appreciate it if it could be looked at.

why using radmin? tightVNC is free and really good...

turbojet
23rd September 2008, 18:22
Well I use it at work regularly, and I was able to obtain some licenses from work. They bought a bigger package then they needed, but it didnt cost them any extra, volume pricing. So I didn't actually have to pay for it. I've never had much luck with vnc on windows, slower then im used to and random disconnects, especially when more than one is connected. Even on linux I choose nx over vnc if its for long amounts of time.

Comatose
23rd September 2008, 19:44
Probably because it uses a virtual video driver or something and it screws with NVIDIA's driver. Remote Desktop does this too.

lucassp
23rd September 2008, 20:51
Do nvidia's cards support VC-1 decoding???

it seems like only a low end chip has full VC-1 Decoding Support over DXVA:

http://forums.nvidia.com/lofiversion/index.php?t74108.html

ndkamal
23rd September 2008, 20:55
Hello Neuron2, you make a FANTASTIC JOB, with your software, a graphic card like the GeForce 9500GT (70 €) is more powerful than two C2Q Q9300 (400 €) in transcoding. Thanks a lot !!!!

Guest
23rd September 2008, 21:00
Don't thank me too hard yet. I have to tell you that for the NV versions I am going to a model like jdobbs has for DVD Rebuilder Pro. That's the reason that the current binaries have an expiration. I plan to roll it out before they expire.

ndkamal
23rd September 2008, 21:06
A question for blubberbirne what is your processor and what is the fps in second pass with this ?

rack04
23rd September 2008, 21:09
Don't thank me too hard yet. I have to tell you that for the NV versions I am going to a model like jdobbs has for DVD Rebuilder Pro. That's the reason that the current binaries have an expiration. I plan to roll it out before they expire.

Looking forward to it.

DarkZell666
23rd September 2008, 21:15
hey, the second pass is the problem ;) Its "ultra" fast for HD Encoding ;)

You used --subme 2 and no partitions, so 80~fps on 720p looks quite normal if you have a quad-core machine :)

Seriously, do compare with --b-adapt 1, I believe it's not the second pass that's too fast but the first pass that's slown down ^^' (though you only used 3 b-frames, hmm wierd).

Please post some test results if you want this settled :)

Guest
24th September 2008, 01:11
I've published my development dialog with Nvidia. It will be interesting to developers.

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

I have also rolled out the licensed version.

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

There will not be any more free versions of DGAVCDecNV available after the current alpha expires next month.

Dark Eiri
24th September 2008, 02:17
Hey neuron2, do you plan on doing a version of DGIndex for MPEG-2 with GPU decoding anytime soon? I know it wouldn't be a massive improvement since MPEG-2 decoding is not that CPU intensive as H264, but it would be nice, since the deinterlacer would be GPU processed.

DGAVCdevNV is really impressive. Totally worth the $15!

Sagekilla
24th September 2008, 02:29
Just curious, is the licensing fee a fee that nvidia requires, or is this towards you? I don't mind either way, but if it's towards you I'm all the more eager to donate :)

@Dark Eiri: True that MPEG-2 doesn't require as much CPU, but when you deal with very high bitrates (the early blu-rays) there's still some benefit.

Guest
24th September 2008, 02:40
Just curious, is the licensing fee a fee that nvidia requires, or is this towards you? I don't mind either way, but if it's towards you I'm all the more eager to donate :) There is nothing payable to Nvidia:

http://developer.download.nvidia.com/licenses/general_license.txt

Guest
24th September 2008, 02:41
Hey neuron2, do you plan on doing a version of DGIndex for MPEG-2 with GPU decoding anytime soon? I know it wouldn't be a massive improvement since MPEG-2 decoding is not that CPU intensive as H264, but it would be nice, since the deinterlacer would be GPU processed. I plan to enable it for MPEG2 and VC1.

DGAVCdevNV is really impressive. Totally worth the $15! Waiting for your donation...

Sagekilla
24th September 2008, 02:43
Aha, well I'll be sending some money your way in a bit :)

rebkell
24th September 2008, 02:54
I just tried to make a contribution from the link you have with a Credit Card, but I don't think it went through, but the message is a little confusing: I'll check my email for the next day and if nothing shows up, I'll do it again.

The message I got when I submitted:


Sorry — your last action could not be completed

If you were making a purchase or sending money, we recommend that you check both your PayPal account and your email for a transaction confirmation during the next day.

If you came to this page from another website, please return to that site (don't use your browser's Back button) and restart your activity.

If you came from PayPal's website, click the PayPal logo in the upper-left corner to return to our home page and restart your activity. You might have to log in again.

Guest
24th September 2008, 03:13
Let's see what happens and I'll call PayPal tomorrow too. Thanks for letting me know.

BTW, the licensed version has a fix for the bug with non-detection of the GPU that required a reboot. Nvidia sent it to me today.

Guest
24th September 2008, 03:29
@rebkell

I just called PayPal and they say everything is fine and in fact a donation arrived from someone else while I was on the phone with them. They think it is some problem with your account or credit card info.

I'd prefer people to PM or email me with issues like this, so we can keep to technical things in the thread.

tre31
24th September 2008, 04:13
I've published my development dialog with Nvidia. It will be interesting to developers.

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


Interesting read, quality support!
and finally well done neuron2 - good too see that gpu power being used for something, and if you do the same for mpeg-2 (au dvb-t = mpeg-2) there is no doubt in my mind that nvidia gets my vote for my next gfx purchase.

Been interesting watching this thread, and the speed (and enthusiam) with which you have working prototypes - impressive. :)

Deinorius
24th September 2008, 08:50
I plan to enable it for MPEG2 and VC1. Will that be as one program or a program for each codec?
As one program, you can call it later DGGPUIndex. :devil:

SeeMoreDigital
24th September 2008, 09:04
As one program, you can call it later DGGPUIndex. :devil:Works for me....

Atak_Snajpera
24th September 2008, 10:44
There will not be any more free versions of DGAVCDecNV available after the current alpha expires next month.
I hope you are not planing to do the same for DGAVCDec (powered by libavcodec) ...

Comatose
24th September 2008, 10:47
Yup...

Anyway, I'm looking into getting a job now :P

lucassp
24th September 2008, 11:07
Will that be as one program or a program for each codec?
As one program, you can call it later DGGPUIndex. :devil:

"Free" and high quality MPEG2 Deinterlacing sounds good :)

jj666
24th September 2008, 12:12
Donated. Professional software at a budget price.

Thanks a lot!

-jj-

CruNcher
24th September 2008, 14:45
Wow nice to see Nvidias open approach here though i wish you would also get in contact here with ATI and give them a chance to react, but still im a little surprised why Nvidias approach for Windows is so open though for Linux nothing is being done yet :( , never the less it's great to see Nvidia cares about this support and also Open Source approaches even if it's currently only the case for 1 Platform in terms of Video Support :)
Also it shows that Nvidia cared about 100% spec compliance and that most problems are coming from the streams themselves :)

btw neuron2

1- If decode runs in the same thread than display (ie: calling map() directly from within the display callback), the video processor will be idle (frequently happens, especially for frames where display order == decode order) In this case, the amount of performance drop depends directly on the speed of the transfer to sysmem and the speed of the GPU.
Is this currently what happens when Display is Enabled and Playback Speed drops from 45 fps down to roughly 12 fps ?


When getting full VP utilization, without any 3D bottleneck, the perf of the 8500GT should be very close to a 9800GTX, since IIRC the video processor is clocked at the same speed on both, though this could depend on the manufacturer (usually it is running at 450MHz, but some low-end GPUs are only running VP at 400MHz).

Does this also suggests that there is something in Nvidias Firmware that controls this clockspeed aside of the Shader clock itself ?

Guest
24th September 2008, 14:51
You didn't read the dialog carefully! You missed the places where Nvidia talks about how they are making a cross-platform version and cutting the connection to DX/D3D.

To be honest, I have had very bad experiences with ATI products. I am not all that keen about it. Also, I see some posts elsewhere saying that the required API is not yet exposed, and may not be.

To answer some other questions:

I will try to integrate MPEG/AVC/VC1 but if not feasible they will be separate.

I have no plans to license the libavcodec version (though I could because I access the GPL part via a DLL).

I'm not going to get rich through my stuff, I just thought it would be nice to cover my website hosting and keep the beer flowing while I do my coding. :)

Ranguvar
24th September 2008, 15:57
What?? The GPU indexer will not be FOSS?

Wouldn't be such a bad thing if NVIDIA didn't announce that they were making the CUDA decoding multi-platform, as you said. Now at the same time there's both hope for a GNU+Linux port, and it is lost.

/me hopes NVIDIA's CUDA support is as good as you say, because the sooner there's a FOSS fork or patch to DGIndex/DGAVCIndex with GPU decoding, the better.


Please don't take this as unappreciative for the great work you've done, or too critical of your decision. I understand your reasons. I am just a very big advocate of FOSS.
By the way, how are you planning on copyrighting it? If I'm not mistaken, jackei also did work on the original DVD2AVI, and some code is likely still in DGAVCIndexNV... are you planning on rewriting it, or on simply using a one-size-fits-all FOSS GUI and CLI interface to a FOSS old-style decoder, and your copyrighted GPU decoder if they paid up, the decoders as DLLs?

Bitowzky
24th September 2008, 16:11
Can someone provide me the link to apha 3 version? I'd like to test it, before i buy it. Thanks

DarkZell666
24th September 2008, 16:17
Wouldn't be such a bad thing if NVIDIA didn't announce that they were making the CUDA decoding multi-platform, as you said. Now at the same time there's both hope for a GNU+Linux port, and it is lost.

Did I miss something or isn't it also allowed to write closed-source + commercial products for linux ? Or did I misunderstand your statement ?

Inventive Software
24th September 2008, 16:27
People are quite within their rights to make a program run on Linux and charge people for the privilege of doing so, without making the source available. Intel's compiler for example. :)

@donald: I was surprised to find you'd employed a "license" strategy for DGAVCDecNV, but I guess you're the one writing the program, originally in response with PAFF hassle (i.e no response from libavcodec devs), so you're quite within the right to ask for a small charge as "beer money", as you so succinctly put it. ;) All power to you, and if you end up making 5 figures out of it, that shows the user base you have. :)

As Ranguvar has loosely written, I hope ATI are not only taking note, but wanting to add support alongside NVIDIA in this program. :D

Guest
24th September 2008, 17:38
Wouldn't be such a bad thing if NVIDIA didn't announce that they were making the CUDA decoding multi-platform, as you said. Now at the same time there's both hope for a GNU+Linux port, and it is lost. You think I'm incapable of coding for Linux platforms?

There's nothing recognizable left from DVD2AVI in my current DGAVCIndexNV code base, and DGAVCDecodeNV is written from scratch. But DGMPGDec as it currently stands could not be closed.

G_M_C
24th September 2008, 22:14
Good for you Neuron2, no shame in trying to keep some costs down. Alas, i don't own a NV card, and don't plan to. So my hopes still lay with a software and/or Ati version. In the mean time i stick to alpha 35 for the software-version; But congrats on this first mile-stone :)

Atak_Snajpera
24th September 2008, 22:21
I was going to add DGAVCIndexNV to RipBot package but since this software won't be free I had to abandon this idea. I will also stay with my 4850 and libavcodec...

tre31
24th September 2008, 22:28
As Ranguvar has loosely written, I hope ATI are not only taking note, but wanting to add support alongside NVIDIA in this program. :D

Going from my experience with ATI and their dxva and deinterlacing technologies as they currently stand, I would say they would need too change quite a few things within the SDK and their driver model too even have access too the UVD chip, its not undoable I don't think, but do they have the desire too allow access too it? time will tell. ATI has only recently gotten behind opensource and their Windows drivers have followed the 'locked down' path pretty much since their initial catalysts - perhaps a change of thought processes is in order.

Another thing too also consider that is if they open up a UVD api via their Stream SDK is their implementation of protected video path's secure - may be the real reason why they can't/won't allow access to it.

Warrex
25th September 2008, 00:21
There will not be any more free versions of DGAVCDecNV available after the current alpha expires next month.

Wow, did not see this coming. :eek: I think this is really a bad day for the doom9 community. Asking for donations is totally fine especially if someone needs the money to be able to continue his great work but I doubt that licensing models are the right way to go.

IMHO the software/code contributed here should stay free. This is escpecially important for other people offering free software who rely on your work like Atak_Snajpera (Ripbot264) or others. If more people choose to go that way it will slow the community down and might destroy what it is now. Btw.: I also own a Radeon 4850. Just my 2 cents on the whole licensing idea.


Something like the following is even more annoying considering how many DRM infested programs require doing things when you change your PC: "Your activation is tied to your system drive that carries the C: partition. So if you replace that drive, please email me for a new license file."

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

See here also: http://forum.doom9.org/showthread.php?t=141409

Guest
25th September 2008, 00:24
I don't want this thread to devolve into an argument about how I make my work available. It's for technical discussion of the program. That is a warning that OT strikes can follow. Send me a PM or open a new thread in General about it, but don't further pollute this thread.

Warrex
25th September 2008, 00:58
Okay, sorry, I did not know that this was purely technical here. I opened a thread for anyone willing to discuss licensing models in software/code contributed on Doom9.net here:


http://forum.doom9.org/showthread.php?p=1187889#post1187889

Zwitterion
25th September 2008, 01:14
some issues with dgavcdecnv100a3:

- when doing "bobbing-with-two-dgavcdecnv-instances", only the use_top_field=true frames are correctly deinterlaced. The use_top_field=false frames look interpolated.
http://img255.imageshack.us/img255/6240/gpudeintth4.th.png (http://img255.imageshack.us/my.php?image=gpudeintth4.png)http://img255.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)
Also, when adding more instances like:
a=DGAVCDecodeNV_AVCSource("00014.dga", deinterlace=true, use_top_field=true)
b=DGAVCDecodeNV_AVCSource("00014.dga", deinterlace=true, use_top_field=false)
c=DGAVCDecodeNV_AVCSource("00014.dga", deinterlace=true, use_top_field=true)
d=DGAVCDecodeNV_AVCSource("00014.dga", deinterlace=true, use_top_field=false)
Interleave(a,b,c,d)
... only 'a' will be correctly deinterlaced from the top field, all other instance will be interpolated from the bottom field (even 'c').

- when bobbing, going forward in the stream too fast can result weird artifacts. I'm no expert, but I guess the instances desyncronize at higher fps, or the video processor/CUDA gets overloaded or something like that.

- more than four instances crash virtualdubmod instantly without error message.

- when using a single instance of DGAVCDecodeNV, use_top_field=false results in the same stream as use_top_field=true. IIRC this was a CUDA bug, though.


Great work so far, I'm looking forward to VC-1 and MPEG2 decoding and will donate soon.

Guest
25th September 2008, 01:20
Yes, there are some issues with the bobbing solution and the current implementation is a hack due to an nvcuvid.dll deficiency. When I update the dialog with the recent correspondence you will see what is going on in that regard. Engineer O has said that he will try to get it working properly. And given what he has done so far, I expect it to be resolved.

I'm working on MPEG integration and MKV container support right now.

xopowo
25th September 2008, 02:51
Intel Xeon X3360
nVidia GeForce 8600GTS
2GB RAM (who cares)
Windows XP Professional SP3

I installed it (couldn't figure out the whole missing license thing), but I gladly paid since I've been using free stuff for years and its the least I could do. Got the license, I can demux files fine.

**EDIT** I had to drop the nvcuvid.dll in the system32 dir to get it to work**

Couple of Questions if I may:

#1 - When I 'encode' , 'transcode' (whatever), my h264 content to, say xvid, in vdubmod ... I'm seeing same exact fps than what I normally see (with same CPU usage). so, "how" do I know if I'm using anything correctly or not? Or perhaps better stated ... I don't know what I'm doing.

#2 - when one turns deinterlace=true after the .dga file in the AVCSource line in my .avs file; will that actually deinterlace the file, or do I still need a plugin to perform that action?

#3 - when people are stating that they are getting 60fps at 0% CPU usage ... what are they referring to? Just the rendering of the AVC file itself? In other words, it has nothing to do with 'encoding/transcoding' (I don't know the correct vernacular).

Thanks for answering, and thanks Donald for everything you do (rule violation??)

Guest
25th September 2008, 03:03
**EDIT** I had to drop the nvcuvid.dll in the system32 dir to get it to work** As described in the Quick Start document. :)

#1 - When I 'encode' , 'transcode' (whatever), my h264 content to, say xvid, in vdubmod ... I'm seeing same exact fps than what I normally see (with same CPU usage). so, "how" do I know if I'm using anything correctly or not? Or perhaps better stated ... I don't know what I'm doing. If you have a powerful machine, the gains in terms of transcoding performance may not be significant. You can read the thread and see who gets boosts and who doesn't. Even without the boost, you have correct decoding (libavcodec is still deficient), and you have the deinterlacer. You will also have VC1 and MKV soon. There is no existing frame accurate server for VC1!

#2 - when one turns deinterlace=true after the .dga file in the AVCSource line in my .avs file; will that actually deinterlace the file, or do I still need a plugin to perform that action? Yes, it will deinterlace even if you haven't saved the project with it turned on in DGAVCIndexNV. I thought of linking them but thought "Why?".

#3 - when people are stating that they are getting 60fps at 0% CPU usage ... what are they referring to? Just the rendering of the AVC file itself? In other words, it has nothing to do with 'encoding/transcoding' (I don't know the correct vernacular). We were talking about playing the file in DGAVCIndexNV with the display disabled in the Video menu. That should be comparable to the serving through Avisynth. If you are encoding then obviously that is added on top.

xopowo
25th September 2008, 04:34
ok, by adding:

AVCSource("1.dga", deinterlace=true)

The output file (lagarith) was deinterlaced (what seems to be very well) [I'm working with a 1080i h264 source file]

Is there something else I can add that will provide frame decimation so that I don't have to use 'any' plugins at all in my script for sources that require IVTC?

If that were the case, I would be a happy guy here (less work for me in backing up my shows).

Additionally, when dealing with 720p content, I have been reading this thread, and it seems that one can do this:

a=AVCSource("file.dga",deinterlace=true,use_top_field=true)
b=AVCSource("file.dga",deinterlace=true,use_top_field=false)
Interleave(a,b)

???

To achieve 29.97fps (from 59.94)?

Please be kind to me, I'm new at this stuff for the most part.

Guest
25th September 2008, 05:07
Is there something else I can add that will provide frame decimation so that I don't have to use 'any' plugins at all in my script for sources that require IVTC?Just to be clear, you wouldn't want to use the deinterlace option for IVTC. The 3:2 support in PureVideo is not currently exposed via the CUDA interface. I will ask Nvidia if there are any plans to do that. So for now, IVTC must be done externally. For soft telecining, you can do it by ignoring pulldown flags in DGAVCIndexNV. Do you have hard telecined sources?

Additionally, when dealing with 720p content, I have been reading this thread, and it seems that one can do this:

a=AVCSource("file.dga",deinterlace=true,use_top_field=true)
b=AVCSource("file.dga",deinterlace=true,use_top_field=false)
Interleave(a,b)

To achieve 29.97fps (from 59.94)? No, that's for getting 59.94 from 29.97.

Tell me more about your source material. Better yet, post an unprocessed source sample. Then I can advise you properly.

xopowo
25th September 2008, 07:15
http://www.megaupload.com/?d=RI51NIK1

Two files there.

1080i which requires deinterlace (of course) and decimation (since it should be 23.976fps).

720p which requires halving the framerate to bring it "back" to 29.97fps.

Not sure if this is what you were asking for?

Bottom line - I tried with deinterlace=true in the line with the 1080i (subsequently had to decimate in the script as well) and it turned out really well. I'm asking if one can add something (in addition to) that will allow for decimation as well as deinterlace (without having to use a filter in my script).

I understand what you wrote above, so I guess that's not possible. But, what is needed in order to get the 59.94fps down to 29.97, other than separatefields()? Are there options?

Guest
25th September 2008, 14:19
1080i which requires deinterlace (of course) and decimation (since it should be 23.976fps). It's hard telecined, i.e., 3:2 pulldown without flags. You shouldn't deinterlace that. You should do IVTC in your script. As I said the PureVideo 3:2 engine is not yet accessible.

720p which requires halving the framerate to bring it "back" to 29.97fps. It's progressive at 59.94 without dups, i.e., every frame is a new picture. If you want 29.97, just put SelectEven() in your script. It has essentially no overhead.

stax76
25th September 2008, 15:53
Sorry if this was asked before but I don't get the point of hardware decoding, isn't the decoder mostly used for transcoding and shouldn't rather the encoder use the hardware instead?

lexor
25th September 2008, 16:06
Sorry if this was asked before but I don't get the point of hardware decoding, isn't the decoder mostly used for transcoding and shouldn't rather the encoder use the hardware instead?

The point is in freeing up CPU for encoding by moving source decoding to GPU. As for encoding needing hardware, CUDA in its current state is no good for that (as per x264 dev experience, and DS actually saying he'd rather learn GPU assembly then use CUDA for encoding)

Zwitterion
25th September 2008, 16:08
Another bug (affects both DGAVCDecNV and DGAVCDec):
When indexing the M2TS of Die Hard (over 2 hours long, nearly 30 GB big), an error message appears at frame 138187 (or at frame 162775 for DGAVCDec) that says:
"Could not allocate memory: AllocPPS: slice_group_id"

At this point, memory usage for DGAVCIndexNV.exe is at 137148 kilobytes. Maybe this is a limit? Trying to use the same instance of DGAVCIndexNV.exe again fails right at the start of the indexing with the same error message.

I couldn't cut out a sample, because the error doesn't appear with small streams.

Dark Shikari
25th September 2008, 16:10
The point is in freeing up CPU for encoding by moving source decoding to GPU. As for encoding needing hardware, CUDA in its current state is no good for that (as per x264 dev experience, and DS actually saying he'd rather learn GPU assembly then use CUDA for encoding)I'd less so say its "no good" and moreso say that the effort required would be very large and require a much larger team with much more CUDA expertise. Its certainly possible, but it would just be an enormous amount of effort, since the hardest part is you simply can't port just "one function" of the encoder due to the latency.

Plus, well, we saw what happened with Badaboom.

Guest
25th September 2008, 16:15
Another bug (affects both DGAVCDecNV and DGAVCDec):
When indexing the M2TS of Die Hard (over 2 hours long, nearly 30 GB big), an error message appears at frame 138187 (or at frame 162775 for DGAVCDec) that says:
"Could not allocate memory: AllocPPS: slice_group_id"

At this point, memory usage for DGAVCIndexNV.exe is at 137148 kilobytes. Maybe this is a limit? Trying to use the same instance of DGAVCIndexNV.exe again fails right at the start of the indexing with the same error message.

I couldn't cut out a sample, because the error doesn't appear with small streams. Tell me what DVD to buy and I'll get it and duplicate the issue. Is it the BluRay version available in the USA? And how did you rip it? In the meantime, I'll look at my PPS management code. It shouldn't need all that memory.

Guest
25th September 2008, 16:22
Sorry if this was asked before but I don't get the point of hardware decoding, isn't the decoder mostly used for transcoding and shouldn't rather the encoder use the hardware instead? In addition to what the others have answered, I'll say again why I did it:

1. Speedup of transcoding for some machines.

2. Correct decoding of streams that libavcodec still has problems with.

3. Access to the PureVideo deinterlacing and possibly the 3:2 engine to come.

4. Decoding of VC1 to come.

5. Integration of MPEG, AVC, and VC1 into one application.

Inventive Software
25th September 2008, 16:35
Sorry if this sounds completely pointless, but on the filter page on your site, do you periodically update the correspondance between you and NVIDIA?

Guest
25th September 2008, 16:35
At this point, memory usage for DGAVCIndexNV.exe is at 137148 kilobytes. OK, I found the memory leak. I'll release new versions this evening.

Guest
25th September 2008, 16:36
Sorry if this sounds completely pointless, but on the filter page on your site, do you periodically update the correspondance between you and NVIDIA? I plan to. I published that right after I got the multi-instance working. There is some more back-and-forth since then that I will add soon. I'll try to keep it current.

Inventive Software
25th September 2008, 16:41
Excellent! I must be going mental then, cos I swore there was some new material in that page... I only read it yesterday! Ah well.... time to section meself! :D

sh0dan
25th September 2008, 19:36
Congrats on your new software, Donald. You seriously deserve some beer money for all your hard labour!

May I humbly suggest, that you put a slightly more informative text into your "Missing License" dialog; as usual I didn't RTFM, and I had no idea what to do. Maybe you could also allow it to decode the first 10% of a given clip, just as a teaser. MP4/MOV parsing would also be exceptionally useful, since MPEG4 seems to become a quite common container.

CUDA development is very interesting - especially if they get their async interface working optimally. Keep up the great work!

Guest
25th September 2008, 19:49
I can use the "beer money" to buy the MP4 spec I need. I've just used some it at lunchtime to buy the BluRay Disk I need to test memory leak issue reported above.

You suggestion on the licensing is a good one. I will do something about that.

Zwitterion
25th September 2008, 20:34
I've just used some it at lunchtime to buy the BluRay Disk I need to test memory leak issue reported above.
It's this one (http://www.blu-ray.com/movies/movies.php?id=557). Sorry, after I read your post #395 I thought you wouldn't need the Blu-ray after all so I didn't respond. :o
I'm using AnyDVD 6.4.6.9, "rip to image", "keep protection", then Virtual CloneDrive to load the image. This way I don't need the physical disc the whole time.

Guest
26th September 2008, 00:35
The fix is released at my web site. Thank you for pointing it out.

Atak_Snajpera
26th September 2008, 00:44
Another bug (affects both DGAVCDecNV and DGAVCDec)
is DGAVCDec fixed as well?

Guest
26th September 2008, 00:49
I'm doing it now. Patience please.

Sagekilla
26th September 2008, 01:34
neuron2: I have a feature request. Would it be possible to merge DGAVCIndex and DGAVCIndexNV into one program, and offer a license to enable GPU decoding? I could imagine that for AVCSource() you could call it like so: AVCSource("file.dga",GPU=true,deinterlace=true). I'd think that you could somehow just have it check for a license key before it allows GPU decoding.

Just a thought :) It would be nice to see but if it's not possible then no worries.

Guest
26th September 2008, 01:51
I could probably do it, but it's not high on the list of priorities compared to VC1 support, MPEG integration, and MKV/MOV support. Thanks for the suggestion.

lucassp
26th September 2008, 06:08
I could probably do it, but it's not high on the list of priorities compared to VC1 support, MPEG integration, and MKV/MOV support. Thanks for the suggestion.

There's a very limited amount of GPUs supporting full VC-1 Decoding, so you could put it on a lower priority.

Comatose
26th September 2008, 06:27
Will MKV/MOV support be in DGAVCIndex as well?

ultratoto14
26th September 2008, 07:14
Test it for the first time, it's impressive. I think about a new feature. I think that cuda have optimized functions to resize the image. Is there a possibility to serve already resized frames ? As 1920x1080 -> 1280x720 is CPU consuming.

Great job.

turbojet
26th September 2008, 08:08
any news on the radmin/windows rdp causing encodes to hang?
you'll have another customer if this issue is resolved.

drelin
26th September 2008, 09:46
Just a question.

I've installed the CUDA driver, and now the Hardware accelration on POWERDVD (7.3) not run. If I desactive the PureVideo Acceleration on POWERDVD, the display is correct (but I lost the Hardware accelration) and the pureVideo activated no video displayed (black sreen with error message and video run).

Anybody have a solution for that ?


Thank and sorry for my bad english.

drelin
26th September 2008, 10:08
OK

I 've found the solution.
Just a update of POWERDVD is needed for DXVA works correctly.

Guest
26th September 2008, 12:56
Will MKV/MOV support be in DGAVCIndex as well? Yes, the two will track. The only difference will be use of the GPU for decoding.

yonta
26th September 2008, 12:56
Setup;
E8200@2.66G
9600GT
2GB RAM
Source is Blu-ray 1080p
dgavcdecnv 1.0 alpha3

script used;
LoadPlugin("f:\dgavcdecnv100a3\DGAVCDecodeNV.dll")
AVCSource("f:\test.gpu.dga")
Crop(0, 144, -0, -136)
LanczosResize(1280, 528)

LoadPlugin("f:\dgavcdeca35\DGAVCDecode.dll")
AVCSource("f:\test.dga")
Crop(0, 144, -0, -136)
LanczosResize(1280, 528)


x264 987 logs;
F:\samples>x264.exe --bframes 3 --ref 5 --crf 18 --direct auto --weightb --me umh --subme 6 --b-rdo --mixed-refs --bime --trellis 1 --no-fast-pskip --level 4.1 --progress --threads 3 --output DGAVCDecode.mkv DGAVCDecode.avs
avis [info]: 1280x528 @ 23.98 fps (2414 frames)
.
.
.
x264 [info]: PSNR Mean Y:46.967 U:49.524 V:49.814 Avg:46.782 Global:42.528 kb/s:5658.03
encoded 2414 frames, 5.84 fps, 5658.21 kb/s


F:\samples>x264.exe --bframes 3 --ref 5 --crf 18 --direct auto --weightb --me umh --subme 6 --b-rdo --mixed-refs --bime --trellis 1 --no-fast-pskip --level 4.1 --progress --threads 3 --output DGAVCDecodeNV.mkv DGAVCDecodeNV.avs
avis [info]: 1280x528 @ 23.98 fps (2414 frames)
.
.
.
x264 [info]: PSNR Mean Y:46.967 U:49.523 V:49.814 Avg:46.782 Global:42.528 kb/s:5651.09
encoded 2414 frames, 6.69 fps, 5651.28 kb/s


So, I get approx. 0.85fps speedup.

If the full movie has 200000 frames, using DGAVCDecodeNV will finish encoding about 1h12min earlier.

Guest
26th September 2008, 12:56
Test it for the first time, it's impressive. I think about a new feature. I think that cuda have optimized functions to resize the image. Is there a possibility to serve already resized frames ? As 1920x1080 -> 1280x720 is CPU consuming. I'll ask Nvidia if is possible.

Guest
26th September 2008, 13:00
any news on the radmin/windows rdp causing encodes to hang?
you'll have another customer if this issue is resolved. Please explain in detail what I need to do to duplicate this issue. What environment, what software, what operations.

lucassp
26th September 2008, 13:43
I'll ask Nvidia if is possible.

It should work, but you have to do "real" CUDA programming for that.

http://forums.nvidia.com/index.php?showtopic=60853

Guest
26th September 2008, 14:11
I meant possible with the nvcuvid.dll interface.

turbojet
26th September 2008, 14:35
neuron2 for the radmin\microsoft rdp issue. You might have rdp (remote desktop protocol) installed, check for computer properties, advanced settings, remote, and tick allow if it isnt already.Otherwise you'll need to install radmin (http://www.radmin.com/) on a dgavcindexnv capable computer. Start an encode, and if you either login or logout from either service the encoder hangs.

Guest
26th September 2008, 14:58
Do I need to have two machines and login remotely? If you want this looked at you're going to have to spoon feed me.

Give me an exact step by step of what to install and do.

Quark.Fusion
26th September 2008, 14:59
Donald, what about to make free version with limit to half of source framerate for example? It will not be suited for realtime decoding, but provide good demo of technology. Also with heavy encoding settings I'm don't think that 1-5% speedup is worth 15$.

Guest
26th September 2008, 15:09
Also with heavy encoding settings I'm don't think that 1-5% speedup is worth 15$. As I have said many times, the speedup is not the only reason for this software to exist. If you don't think it offers you anything, then don't buy it.

jeffy
26th September 2008, 15:20
@Quark.Fusion: When you encounter a stream badly decoded by anything but DGAVCDecNV, then you might find the worthiness in it.

turbojet
26th September 2008, 15:20
neuron2 with radmin you can do it on one box, radmin will crash after a few seconds after you login but it will halt the encoding

drelin
26th September 2008, 15:45
I've a problem.
DGAVCDecNVindex run correctly, and I can save the projet.
But I can load the avs file in MEGUI (the soft close immediatly) and when i want to test directly with X264 command line I see teh error message :
"RAWYUV imput requires a resolution" ??.

If you have any suggestion for a solution ?

THX.

DarkZell666
26th September 2008, 15:55
I've a problem.
DGAVCDecNVindex run correctly, and I can save the projet.
But I can load the avs file in MEGUI (the soft close immediatly) and when i want to test directly with X264 command line I see teh error message :
"RAWYUV imput requires a resolution" ??.

If you have any suggestion for a solution ?

THX.

I believe the problem with MeGUI has already been explained earlier in the thread.

Post your script though, there's probably something missing in it.

Guest
26th September 2008, 16:07
MeGUI situation is documented.

For the x264 CLI, post your script and your x264 command line.

Guest
26th September 2008, 16:50
neuron2 with radmin you can do it on one box, radmin will crash after a few seconds after you login but it will halt the encoding Do I have to install the server or the viewer or both? Assuming I install it, how do I login to it in the manner you are talking about?

I did ask for a step-by-step. I just don't have time to do experiments to figure things out.

EDIT: OK, I have remote desktop working. Now, what do I do exactly? Do I connect and start the encode and then disconnect? Do I start it locally and then connect from remote? You gotta tell me what to do.

EDIT 2: I remote connected and tried to start DGAVCIndexNV. I get a CUDA init failure 100. I have written to Nvidia about it. Probably something related to the DX/D3D init.

Guest
26th September 2008, 17:30
Nvidia responds as follows:

That's unfortunately an OS limitation because the display driver gets unloaded with remote desktop operation. The exception would be VNC, which is more gpu-friendly in that regard.

The workaround, then, is TightVNC as previously mentioned.

turbojet
26th September 2008, 18:32
Bummer. VNC is ok software, I like that its open and free. But it really reduces my ability to work as I mentioned before with sluggish performance and random dropouts.
Thanks for checking with nvidia. I'll go see if radmin can work around this.

bond
26th September 2008, 20:02
I can use the "beer money" to buy the MP4 spec I need. mp4 specs are freely available:
http://standards.iso.org/ittf/PubliclyAvailableStandards/c041828_ISO_IEC_14496-12_2005(E).zip

Guest
26th September 2008, 20:25
Not quite. Try getting -14 and -15.

But don't worry, I have them now.

ultratoto14
26th September 2008, 20:33
I use x264 command line as meGui crashes every time. I usually use staxrip but it crashes too. What are the recommended front-end for X264 and XVID encoding with DGAVCIndexNV ?

Guest
26th September 2008, 20:43
I use MeGUI to generate the command line and then copy it out to run with CLI.

rack04
26th September 2008, 21:53
I use MeGUI to generate the command line and then copy it out to run with CLI.

This doesn't work with two pass profiles.

rebkell
26th September 2008, 22:03
This doesn't work with two pass profiles.

It does if you have one in history. You just have to substitute the current input and output source and destination.

Guest
26th September 2008, 22:46
@rebkell

What do you mean by "have one in history"? Can you please give us a step-by-step? Thanks!

@all

I just installed the Nvidia driver 178.13 which came out within the last few days and my High Profile, Level 5.1 streams now decode properly. The problem with non-detection of the CUDA device requiring a reboot is also believed to be fixed by this driver version.

rebkell
26th September 2008, 23:01
@rebkell

What do you mean by "have one in history"? Can you please give us a step-by-step? Thanks!

@all

I just installed the Nvidia driver 178.13 which came out within the last few days and my High Profile, Level 5.1 streams now decode properly. The problem with non-detection of the CUDA device requiring a reboot is also believed to be fixed by this driver version.

Well, it's actually in the log tab, just run a two pass job(really short one if you like) with the parameters you want for the encode.

After it's through, go to the Log tab and expand the Job(s) one of the lines will be very long and it's the x264 encode line, just right click it and Edit Text->Node and it will open the command line for the first pass in notepad. It will contain the exact command used by x264 for the encode. Do the same for the second pass to get the final pass command line.

Guest
26th September 2008, 23:16
just run a two pass job(really short one if you like) with the parameters you want for the encode.. Sorry to be such a dimwit, but how can I do that if MEGUI crashes when I open the file?

rebkell
26th September 2008, 23:28
Sorry to be such a dimwit, but how can I do that if MEGUI crashes when I open the file?

Not sure how to do it if it crashes, here's a typical two pass command line, I'm using the old profile of Xbox-PS3, with a few tweaks on the keyint and min-keyint stuff. The bitrate is calculated from the number of frames times the bitrate to figure out the final size.

"C:\Program Files\megui\tools\x264\x264.910.modified.exe" --pass 1 --bitrate 3400 --stats "G:\Junk\Bones\Bones0405.stats" --level 4.1 --keyint 60 --min-keyint 1 --bframes 3 --direct auto --subme 1 --analyse none --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 9000 --vbv-maxrate 24000 --qcomp 0.5 --me dia --merange 12 --threads auto --thread-input --progress --no-psnr --no-ssim --output NUL "G:\Junk\Bones\Bones0405.avs"

"C:\Program Files\megui\tools\x264\x264.910.modified.exe" --pass 2 --bitrate 3400 --stats "G:\Junk\Bones\Bones0405.stats" --level 4.1 --keyint 60 --min-keyint 1 --ref 3 --mixed-refs --bframes 3 --b-rdo --bime --weightb --direct auto --subme 6 --analyse p8x8,b8x8,i4x4,i8x8 --8x8dct --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 9000 --vbv-maxrate 24000 --qcomp 0.5 --me umh --merange 12 --threads auto --thread-input --progress --no-psnr --no-ssim --output "G:\Junk\Bones\Bones0405.mkv" "G:\Junk\Bones\Bones0405.avs"


Don't know if it helps, there's not a significant difference between the first pass and the 2nd pass, you can check it out.

xopowo
27th September 2008, 17:44
I don't know if I'm the only one experiencing this, but if I have a script that looks like this:

AVCSource("1.dga", deinterlace=true) ++ AVCSource("2.dga", deinterlace=true)

Then when virtualdubmod gets to the second AVCSource, it crashes with some error that says it can't be "read."

If I run them seperately, then both of them work fine. Also, once an AVS is loaded into vdubmod, and then if one closes that file, and tries to load another one (without physically closing the program), vdubmod crashes again based on the same type of message. Something is getting hung up is my guess?

Guest
27th September 2008, 18:09
I can't duplicate any of that. What version are you using?

xopowo
28th September 2008, 05:54
AVISynth 2.5.7 and v1.0.1 of the program.

xopowo
28th September 2008, 07:47
Also, two more questions:

I guess only one thread can be addressed at one time? I thought this was fixed? Neither vdub can be accessed with more than one instance at a time, nor can x264 from CLI.

Additionally, I know that you (Donald) had mentioned building a ts cutter for h264 since there isn't a good one out there. If this is still something that you intend to pursue, is it possible that it could use the purevideo CUDA things as well (as opposed to DirectShow and/or haali)?

Guest
28th September 2008, 13:34
I'm sorry but multi-instance is working fine and you are the only person reporting an issue. Let me think about it and then send you a debugging build to try to find out what is happening for you. In the meantime what is the exact error you get when you load the script the second time?

An intitial version of a cutter would use libavcodec for broadest compatibility, but don't look for this to arrive any time soon.

xopowo
28th September 2008, 17:27
http://img375.imageshack.us/img375/8156/vdubmoderrorcm2.th.jpg (http://img375.imageshack.us/my.php?image=vdubmoderrorcm2.jpg)http://img375.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)

That is what happens when I try to open two instances of vdubmod. Also, when I run x264.exe from CLI, the first one runs, the second one starts to go, then just stops (it doesn't give an error); it just doesn't do anything.

ultratoto14
28th September 2008, 19:57
I search in windows error log to see if the problem with meGui is the same than Staxrip. I've got two different cases :

meGui :
Application défaillante MeGUI.exe, version 0.3.0.2017, horodatage 0x48d8f4c3, module défaillant DGAVCDecodeNV.dll, version 1.0.0.0, horodatage 0x48dc15d3, code d’exception 0xc0000005, décalage d’erreur 0x000044ac, ID du processus 0x1514, heure de début de l’application 0x01c9219ae07f4a02.

StaxRip :

Application défaillante StaxRip.exe, version 1.1.1.0, horodatage 0x4875d9fb, module défaillant d3d9.dll_unloaded, version 0.0.0.0, horodatage 0x4791a65d, code d’exception 0xc0000005, décalage d’erreur 0x71acf03c, ID du processus 0x9d4, heure de début de l’application 0x01c920dbe791eefd.

Sorry for the language, I'm French. This is strange that the DGAVCDecodeNV.dll installed is not 1.0.0.0 but 1.0.1.0.

I tried to create multiple instances of the DGAVCDecodeNV and have no problem with two virtualdubmod.

Tell me if you want me to test something.

Guest
28th September 2008, 21:58
http://img375.imageshack.us/img375/8156/vdubmoderrorcm2.th.jpg (http://img375.imageshack.us/my.php?image=vdubmoderrorcm2.jpg)http://img375.imageshack.us/images/thpix.gif (http://g.imageshack.us/thpix.php)

That is what happens Just tell me with an exact error message in text. Your link is all screwed up and I can't see anything.

when I run x264.exe from CLI, the first one runs, the second one starts to go, then just stops (it doesn't give an error); it just doesn't do anything. I'm supposed to guess what your CLI commands were???

Also, provide a link to a stream sample that I can use to duplicate this.

Guest
28th September 2008, 22:00
Sorry for the language, I'm French. Yes, but that doesn't help me. Can you please take a stab at translating it?

jeffy
28th September 2008, 22:57
meGui :
Application défaillante MeGUI.exe, version 0.3.0.2017, horodatage 0x48d8f4c3, module défaillant DGAVCDecodeNV.dll, version 1.0.0.0, horodatage 0x48dc15d3, code d’exception 0xc0000005, décalage d’erreur 0x000044ac, ID du processus 0x1514, heure de début de l’application 0x01c9219ae07f4a02.

StaxRip :

Application défaillante StaxRip.exe, version 1.1.1.0, horodatage 0x4875d9fb, module défaillant d3d9.dll_unloaded, version 0.0.0.0, horodatage 0x4791a65d, code d’exception 0xc0000005, décalage d’erreur 0x71acf03c, ID du processus 0x9d4, heure de début de l’application 0x01c920dbe791eefd.



Application défaillante = Faulting application
horodatage = time stamp
module défaillant = faulting module
code d’exception = exception code
décalage d’erreur = fault offset
ID du processus = process id
heure de début de l’application = application start time

Let me guess the OS, Windows Vista.

ultratoto14
29th September 2008, 07:26
You're right, Windows Vista 32 SP1.

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?

Guest
5th October 2008, 00:54
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 said quite clearly in my post above that I plan to transfer the frame in shared memory.

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? Again, as I said above, it is a managed application, and for some reason that I have not yet discovered, managed applications crash on the second D3D instantiation.

meatwad
5th October 2008, 03:02
I'm experiencing a bug. X264 hangs at 99.9% with VirtualDubMod and ASXGui 1.9.4. I'm not sure why it's not closing? The two programs use different builds of X264 and it's happening in both XP and Vista.

LoRd_MuldeR
5th October 2008, 03:13
I'm experiencing a bug. X264 hangs at 99.9% with VirtualDubMod and ASXGui 1.9.4. I'm not sure why it's not closing? The two programs use different builds of X264 and it's happening in both XP and Vista.

Does it happen also when running x264 via CLI? Any other filter in addition to DGAVCDecNV in your Avisynth script?

BTW: x264 + VDubMod means you use x264 VfW, which probably is not the best idea...

meatwad
5th October 2008, 04:25
I just use the Nvidia Pure Deinterlace option:

loadplugin("Z:\dgavcdecnv102\DGAVCDecodeNV.dll")
avcsource("__vid__", deinterlace=true)

VFW for virtualdub is correct, but ASXGui 1.9.4 uses CLI. I'll use a different CLI of X264 with it and see what happens. I just thought it was weird that it hangs with both programs in two different operating systems. I'm sure the problem is on my end because no one else seems to be experiencing it.

meatwad
5th October 2008, 05:31
Testing CLI now. hopefully it doesn't hang.

meatwad
5th October 2008, 05:54
With CLI it hangs at 81.9% of the encode job. Something's not right with my system.

meatwad
5th October 2008, 06:17
I tried one more time with CLI and it hung at 99.9%. If I use a directshow source it doesn't hang. It only hangs if I use DGAVCDecodeNV. I've tested it with 3 different versions of X264. I'll keep messing with it.

Guest
5th October 2008, 13:36
Can you cut the end of the stream where it hangs and post a link to it?

Also, try it with DGAVCDec (not NV) and let me know what happens.

meatwad
5th October 2008, 17:34
http://www.zshare.net/download/200136624c2bfc26/

I'll get back to you in a few minutes on DGAVCDec.

meatwad
5th October 2008, 17:45
All went well with DGAVCDec. Except of course the nasty PAFF blocks.

meatwad
5th October 2008, 18:11
This isn't looking good for me. It behaves exactly the same in XP, Vista 32 and Vista 64. It will get to around 99% and not close. It's more than likely something about my system:

Q6600
Gigabyte p35-ds3r
EVGA 9800gt 512mb
4gb ram
1.5tb raid 0 array.

It's done this from day one, but I assumed it was virtualdub. I'd never tried to do a complete encoding with another program until the other day. That's when I realized it wasn't virtualdub.

The memory and video card are brand new so I suppose I should run a memory check. It's not overclocked either.

Guest
5th October 2008, 18:16
Does it happen with all streams?

meatwad
5th October 2008, 18:27
Yes it does. I'm using the Cuda Driver and Cuda SDK. I've tried avisynth 2.57 and the beta.

meatwad
5th October 2008, 18:38
My memory test is at 50% with no errors and I'm suspecting my GPU. I can transplant the GPU into another PC and install the necessary software, but you'd have to send me a new key for it or a test version with expiration.

GPU: EVGA 512-P3-N975-AR 9800GT 512M

I can also do a bare install of XP with the necessary software to test the decoder in case it's something I have installed in all three OS that's causing the problem.

ReferenceDivx
5th October 2008, 22:13
It seems to be working fine for me. I never installed the cuda sdk though. Maybe your x264 switches aren't correct since they changed some of the options a couple of days ago.

meatwad
5th October 2008, 22:51
It still hangs even with a clean minimal install. The only codec I installed was YV 12.

@ReferenceDivx I've tested several builds and the results are the same. I don't have the sdk or the toolkit installed this time. Just the Cuda Driver. I'm going to put the card in a different machine and see if it still hangs. I hate to ask DG for another key.

LoRd_MuldeR
5th October 2008, 22:53
Maybe your x264 switches aren't correct since they changed some of the options a couple of days ago.

When using invalid options x264 will simply complain and abort right at the beginning.
But it certainly doesn't start to encode and then decides to stall at 99.9% :p

meatwad
5th October 2008, 22:58
BTW, I've tried to use different compressors like XVID and the encoder will still hang at the end.

Zwitterion
5th October 2008, 22:59
meatwad, what do you mean by cuda driver? This one?
http://www.nvidia.com/object/winxp_178.13_whql.html

LoRd_MuldeR
5th October 2008, 23:04
BTW, I've tried to use different compressors like XVID and the encoder will still hang at the end.

What if you open the AVS script in VirtualDub and seek all the way to the end?

meatwad
5th October 2008, 23:21
Yes. I was just about to post that I believe it completes the encode, just the encoder doesn't close. In VirtualDub I can see the completed encode but I have to stop the encoder. If I stop X264 CLI when it hangs I can't view the video. Naturally I can't do any batch encoding running like this.

@Zwitterion: I've been using this one from the CUDA page NVIDIADisplayWinVista(177_84)Int.exe, I believe I tried the regular driver as well since others have said they used it without any issues. I'll try it again before I move the card to another system.

I really appreciate everyone's help with this. Sorry I'm such a pain DG.

Update: I just found that if I seek to the end and then go back it locks up VirtualDub.

meatwad
5th October 2008, 23:35
I just tested with 178.13_geforce_winvista_32bit_english_whql.exe installed and I'm still getting the same results.

meatwad
6th October 2008, 07:01
I found what was wrong, it doesn't like my avc .ts streams. It will work with other avc sources but not my transport streams (even if they're demuxed). Neuron2, could you please add support for them in a future release? I'll send you all the samples you need.

They're all I really work with. I would forever be in your debt if you could also get it to decode the same type of avc streams in .vdr (video disk recorder) format.

Also, were you able to get the sample to encode with vdub or x264 cli?

Guest
6th October 2008, 13:42
Also, were you able to get the sample to encode with vdub or x264 cli?
I am able to duplicate your issue with the file that you provided. So I'll try to fix it today.

EDIT: OK, I know what is happening. When you hit EOF the decode thread is waiting for a signal from the decoder to say that a requested frame is available, but the EOF processing doesn't send that signal to allow the decode thread to terminate. I don't know why it was happening only on these streams, but it's a design issue, so I'll release an update ASAP.

meatwad
6th October 2008, 19:36
You are far and above the cut. Thank you so much for addressing the issue. I've included a link to a sample avc .vdr file so you can see the similarities. They are a pain to work with, unlike the mpg version (just rename the files to .mpg and they'll work with most anything). Linux gurus probably eat them for breakfast, but it takes me several steps to get a finished .mkv file. The streams inside the vdr file should be the same make as the transport stream sample.

http://www.zshare.net/download/200884986b8c802a/

If you don't have the time to look at the sample don't worry about it. Just fixing the transport stream issue is more than enough.

Once again, thank you for making such a wonderful product.

Casimir666
6th October 2008, 20:36
@neuron2
Marc99 post a message on the mpc-hc thread that puzzle me :
http://forum.doom9.org/showpost.php?p=1191981&postcount=4468

The weird things is that VSFilter is not supposed to be compatible with DXVA for 2 reasons :
- IMediaSample::GetPointer is not supposed to return buffer (because it's DX Surface)
- Video decoder cannot initiate the DXVA negociation with EVR (because of intermediate filters)

But marc99 screenshot show that mpc detect H264 bitstream mode. Mpc-hc show this only if :
- Someone ask interface IDirectXVideoDecoderService on the EVR
- Someone successfully call IDirectXVideoDecoderService::CreateVideoDecoder


So I have a small question for you : are you using the IDirectXVideoDecoderService interface one way or another in your AVISynth filter (asking to EVR filter or using Media foundation)?

Guest
6th October 2008, 20:41
So I have a small question for you : are you using the IDirectXVideoDecoderService interface one way or another in your AVISynth filter (asking to EVR filter or using Media foundation)? No. If you follow the Nvidia development dialog at my website, you'll know exactly what I am using.

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

Casimir666
6th October 2008, 22:10
No. If you follow the Nvidia development dialog at my website, you'll know exactly what I am using.

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


Ok thank you for you answer, it's a really interesting dialog.

Guest
7th October 2008, 05:08
@meatwad

Your issue has made it to the Nvidia development dialog, as it appears to expose a regression in nvcuvid.dll. Scroll to the bottom of the dialog and you'll see the analysis.

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

meatwad
7th October 2008, 05:37
I was hoping it was going to be something minor, but I have faith they'll come through. You were right about Nvidia being extremely helpful. It's in their best interest after all as it will help them sell more GPUs (and I'm proof of that).

Pookie
8th October 2008, 01:00
@meatwad - sounds like the same problem I was experiencing -

http://forum.doom9.org/showthread.php?p=1186758#post1186758

Guest
8th October 2008, 01:17
Oh, I'm glad you reminded me about that. I have meatwad's stream working and just now tested with yours and they're not yet fixed. Investigating...

Guest
8th October 2008, 21:14
OK, Pookie, I've figured out the problem with your streams.

The stream is sending a lump of 8 PPSs every so often. When I seek, though, I was just injecting the previous 5 known PPSs, so the decoder was silently discarding the frames with orphaned PPSs, and when I reached the end of the stream, my app thought there were more frames to come but the decoder couldn't provide any more. I have to rethink my heuristics for SPS/PPS injection on a seek. For now I've bumped it to inject the last 15 prior to the seek point. I should be able to think of something a little more intelligent, however, as I do have the stream indexed at that point and know about all the PPSs.

I spent two days being confused because I thought the problem was caused by end of stream handling when all along it was caused by start of stream handling!

Also, Nvidia has delivered a new nvcuvid.dll with better performance and some bug fixes. So I'll make a release tonight with that, the temporary PPS fix, and the fix for meatwad. That should keep us going until I redesign the SPS/PPS heuristics properly.

Guest
9th October 2008, 03:07
1. Fixed an uninitialized variable in the CUDA parser creation that could cause random suboptimal decoding performance.

2. Changed handling of NALUs with forbidden_zero_bit set. They are now silently discarded.

3. Fixed a problem that could cause a stream to not be properly flushed on end of stream, which in turn could cause DGAVCDecNV to hang.

4. Fixed D3D device object leak for XP.

5. Improved the heuristic for SPS/PPS injection when seeking. This fixes some other cases of hanging at the end of the stream.

6. Added a safety timeout for end of stream hangs (although I think they are all solved now).

7. Updated the Nvidia Development dialog at my web site.

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

I'm still working on compatibility with managed applications, i.e., the COM server solution.

Guest
9th October 2008, 03:17
I've included a link to a sample avc .vdr file so you can see the similarities. They are a pain to work with, unlike the mpg version (just rename the files to .mpg and they'll work with most anything). Linux gurus probably eat them for breakfast, but it takes me several steps to get a finished .mkv file. The streams inside the vdr file should be the same make as the transport stream sample. Do you have any information on what these VDR streams are inside, i.e., specs? What do you use to demux them?

meatwad
9th October 2008, 03:34
I've been using elecard xmuxer. I'll post a link with a sample already demuxed.

Guest
9th October 2008, 03:39
I don't need the demuxed sample!

Testing Elecard now, standby...

Guest
9th October 2008, 03:41
Hmm, Elecard works, but I can't recognize the file type in my hex editor.

meatwad
9th October 2008, 03:50
Unfortunately I don't have a clue either. I've asked in some Linux forums but no one responded. I'd probably just put this on the back burner as you have much bigger fish to fry with all your other projects. Besides, I'm looking forward to your avc cutter and you've already done more than enough for me in the last few days. Thanks again for the fix and I'll test it out later tonight.

Guest
9th October 2008, 03:55
Ah, OK, it's PES. I can handle that. :) I'll put it on the container to-do list with MKV and MP4.

meatwad
9th October 2008, 04:03
I do believe another donation will be heading your way soon. Thanks again.

meatwad
9th October 2008, 04:42
I just gave it a test drive and it works GREAT! Hopefully Pookie will have the same results.

Quark.Fusion
10th October 2008, 19:59
Is it ever possible to generate index on the fly, if target request frames in linear pattern? This can greatly reduce time for encoding stream.

Guest
10th October 2008, 20:17
Is it ever possible to generate index on the fly, if target request frames in linear pattern? This can greatly reduce time for encoding stream. If you aren't using random access, there's no need for an index at all.

What is this great time reduction you are talking about? The time for indexing is small compared to encoding.

Quark.Fusion
10th October 2008, 21:36
Indexing time isn't so small if you encode BD to some small device at realtime speed. And before encoding I'm usually set cropping and denoise filters — which I can't before index completes.

So how to open file without indexing, will «AVCSource("00001.m2ts")» work? (Your documentation says that it need dga file)
Tried with DGAVCDecode — it says:Avisynth open failure:
AVCSource: The input file is not a DGA project file.

Sagekilla
10th October 2008, 21:42
@Quark.Fusion: Here's a little trick: Try opening the m2ts file in DSS (Directshowsource("file.grf")) and then start indexing the file in DGAVCIndex(NV). Apply filters as necessary on your video in AvsP w/ the DSS instance ;)

I do this kind of multitasking all the time and it works great.

Quark.Fusion
10th October 2008, 21:53
Yeah, great idea, but it crashes…

Sagekilla
10th October 2008, 21:56
Eh? Which crashes? Cause I've never had an issue doing this before.

Audionut
10th October 2008, 22:42
Hi neuron2,

Getting this error on a file.

PicParset 0 references an invalid (uninitialized) Sequence Parameter Set with ID 0, expect the unexpected.


A couple of samples.


33 is the first 500 or so frames
55 is a random selection from the middle


No problems on this file with the software version.

Guest
10th October 2008, 22:56
@Quark.Fusion

Sorry, no, I don't intend to support anything like that. Just make yourself a cup of coffee, or balance the checkbook, while your stream is indexing. Or make a small project using the range feature first. Then start your full project. You can tweak using the small project while the full one is cranking.

@Audionut

I'll look at it this evening.

@all

I ditched the COM idea because it's a PITA, with all the GUIDs, registry stuff, etc. I have to make shared memory anyway to pass the frame, so I'm using it also to implement an RPC mechanism. So that together with some events and a mutex gives me all I need without the COM insanity. The way it will look to the user is that you first open a CUDA decoder server application. You can minimize it but as long as it stays alive the CUDA decoder is available to clients, i.e., AVCSource() instances. The clients access it using the named shared memory, events, and mutex. I'll publish the interface, the server source code, and a basic client so that it can be re-used. My DG client applications will remain closed.

Guest
11th October 2008, 05:29
No problems on this file with the software version. Actually, it affects DGAVCIndex also.

I found two problems:

1. I assumed a too small size for the SPSs that I store. Your stream had bigger ones!

2. A later edition of the AVC standard added some new profile_idc values that I had to allow for.

With these fixes your streams play fine. I'll release fixes for DGAVCDec and DGAVCDecNV tomorrow.

Audionut
11th October 2008, 06:51
Thanks.

Unless the errors are somehow affecting the information display, this stream also has a max bitrate of over 60Mbps.
Way out of spec, for both the 4.1 level it's encoded at, and the blu-ray spec.

edit: I just checked the software version results, and it shows max bitrate 58.475Mbps.

LigH
11th October 2008, 09:07
Could you please add the hardware requirements to the documentation?

I remember differences in the grade of hardware support by the variants of the GeForce 8xxx family, and I wonder if this project requires a minimum variant (I mean, on-board / mobile IGPs and low-cost variants like 8300/8400{M} might not support DXVA enough to be of use for AVC decoding).

"Minimum hardware requirement: GeForce 8500" would be a probably sufficient example to know that one needs a stand-alone graphic card and may not get an on-board solution to work (if that is the case; but if IGP/Mobile are fine, let's say "8xxx").

TechARP - Desktop GPUs: Nvidia (http://www.techarp.com/showarticle.aspx?artno=88&pgno=3)
TechARP - Mobile GPUs: Nvidia (http://www.techarp.com/showarticle.aspx?artno=98&pgno=1)

Audionut
11th October 2008, 09:21
"Minimum hardware requirement:

Device supporting CUDA.

http://www.nvidia.com/object/cuda_learn_products.html

Looks like any 8xxx series hardware or higher.

ATTENTION: If you do not use an Nvidia graphics card 8xxx or higher, this thread is not for you!

crypto
11th October 2008, 10:05
@Quark.Fusion
@all

I ditched the COM idea because it's a PITA, with all the GUIDs, registry stuff, etc. I have to make shared memory anyway to pass the frame, so I'm using it also to implement an RPC mechanism. So that together with some events and a mutex gives me all I need without the COM insanity. The way it will look to the user is that you first open a CUDA decoder server application. You can minimize it but as long as it stays alive the CUDA decoder is available to clients, i.e., AVCSource() instances. The clients access it using the named shared memory, events, and mutex. I'll publish the interface, the server source code, and a basic client so that it can be re-used. My DG client applications will remain closed.
I like the new idea and I was sceptical with the COM idea (out-of-process) from the beginning. It is also great to have an open documented interface.

I also wanted to ask, if the current dgavcindex is open source, as a have read about it, but never found sources.

Guest
11th October 2008, 13:30
Unless the errors are somehow affecting the information display, this stream also has a max bitrate of over 60Mbps.
Way out of spec, for both the 4.1 level it's encoded at, and the blu-ray spec.. Can you tell me the stream and the exact steps you went through to get a display of that large a max bitrate? I can't get it to happen.

@crypto

Not open source at this time.

Audionut
11th October 2008, 13:55
This is from the full stream of the sample posted earlier. "Die hard 1. Region B"

Gathered using the software version.

I'll post the hardware version when an encode i have running is finished.

Stream Type: AVC Elementary
Profile: reserved [49]
Level: 4.1
Frame Size: 1920x1080
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 23.976024 fps
Colorimetry: BT.709* [2]
Frame Structure: Frame
Frame Type: not yet
Coded Number: 167235
Playback Number: 167235
Frame Repeats: 0
Field Repeats: 0
Bitrate: 0.097
Bitrate (Avg): 28.751
Bitrate (Max): 58.475
Elapsed: 0:22:38
Remain: 0:00:01
FPS:
Info: Finished!

edit: rip blu-ray to hdd with anydvd. demux .264 with tsmuxer. open with dgavcindex. save project.

Guest
11th October 2008, 14:00
demux .264 with tsmuxer What is the reason for this step versus opening the transport directly in DGAVCIndexNV?

squid_80
11th October 2008, 14:22
Looks like any 8xxx series hardware or higher....Except for the 8800 Ultra/GTX/GTS, Telsa S870/D870/C870, Quadro Plex 1000 and Quadro FX 5600/4600.
One of the cheapest cards available, the 8400, contains VP3 instead of VP2 like the others - but this makes no change to H264 decoding, only VC1 and MPEG2 are improved.

Guest
11th October 2008, 14:30
I just checked the software version results, and it shows max bitrate 58.475Mbps. We may be talking apples and oranges. The max bitrate displayed by DGAVCIndexNV is the highest rate seen in all the one second periods of the stream. So it's an "instantaneous" bit rate. When you speak of the "max bitrate" of a blu-ray, you may be referring to the largest allowed average bitrate. You can have high peaks without breaking the buffering. Note that your average rate is well within spec.

In any case, to compare the two they must be defined the same way, and I don't know how the spec defines "max bitrate". Do you?

Audionut
11th October 2008, 14:33
What is the reason for this step versus opening the transport directly in DGAVCIndexNV?

I've gotta demux the audio and subs, so might as well demux the video as well. Also, not all movies are stored in one TS. Tsmuxer will combine all parts into one stream.

Guest
11th October 2008, 14:34
Ah, thank you.

Audionut
11th October 2008, 14:35
and I don't know how the spec defines "max bitrate". Do you?

http://www.blu-ray.com/faq/

Section 2.4

Audionut
11th October 2008, 14:39
And here for h.264.

http://en.wikipedia.org/wiki/H.264

Under section levels. How accurate the wiki is though, is anyone's guess.

BTW. I've only seen 1 blu-ray so far out of about 35 that has had a max bitrate under the 40mbps of the spec.
And IIRC about 2 or 3 with max bitrates above 50mbps. The limit of level 4.1.

Guest
11th October 2008, 14:57
* Fixed a problem that could cause large SPSs to not be processed, resulting in decode failures.

* Revised the NALU parser to allow for some missing profile_idc values.

* Added lines CODED and PLAYBACK in the DGA file to provide the number of coded and playback frames.

* Added a workaround for the Windows bug that (rarely) caused the DGAVCIndexNV window to open off the screen.

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

foxyshadis
11th October 2008, 18:04
And here for h.264.

http://en.wikipedia.org/wiki/H.264

Under section levels. How accurate the wiki is though, is anyone's guess.

BTW. I've only seen 1 blu-ray so far out of about 35 that has had a max bitrate under the 40mbps of the spec.
And IIRC about 2 or 3 with max bitrates above 50mbps. The limit of level 4.1.

Your assumption is incorrect. A level specifies minimum necessary support. Any hardware spec can go beyond a strict level requirement, or throw levels out altogether, the hardware spec is the only thing that matters. The bluray specs aren't even public, so real VBV values required to even get a valid max bitrate for that purpose are only guesses at this point.

Audionut
11th October 2008, 23:31
Your assumption is incorrect.

On the contrary, the wiki clearly states, Max video bitrate for given levels. Max frame size, Max macroblocks per second.

How accurate the wiki is though, is anyone's guess.

A level specifies minimum necessary support.


A level is a specified set of constraints imposed on values of the syntax elements in the bitstream. These constraints may be simple limits on values.
Alternatively they may take the form of constraints on arithmetic combinations of values (e.g. picture width multiplied
by picture height multiplied by number of pictures decoded per second).

http://forum.doom9.org/showthread.php?t=138967&highlight=levels
http://akuvian.org/src/x264/ITU-T_H264.pdf.gz

Guest
12th October 2008, 00:30
Guys, I'd like to ask you to please take this to a new thread or PM. Thank you.

Guest
16th October 2008, 00:00
Some good news...

My local build is working with MEGUI. This is not the server version but rather just based on the current code but implementing a single D3D instance shared by floating contexts, as recommended by Nvidia.

I want to do a little more testing before releasing a beta for testing.

MEGUI does some real goofy stuff internally. It opens the script 7 times for a simple 2-pass encode!

ultratoto14
16th October 2008, 07:40
Fantastic news, this is what we need. Thanks for your great work neuron2.

G_M_C
16th October 2008, 10:28
[...]It opens the script 7 times for a simple 2-pass encode!

7 times :eek:

Might be time for me to automate things another way, without Megui :o

rack04
16th October 2008, 21:09
Some good news...

My local build is working with MEGUI. This is not the server version but rather just based on the current code but implementing a single D3D instance shared by floating contexts, as recommended by Nvidia.

I want to do a little more testing before releasing a beta for testing.

MEGUI does some real goofy stuff internally. It opens the script 7 times for a simple 2-pass encode!

Great news Donald. Well done.

tre31
17th October 2008, 08:52
Some good news...
MEGUI does some real goofy stuff internally. It opens the script 7 times for a simple 2-pass encode!

Dare I say it - yes I will, bit sloppy, even though I use MeGUI myself and like it, but 7 times, fair enough I could understand - once for the preview, and a few for the encode (depending on no# of cores), but that exceeds even that amount (would be 5 in a quad core machine). There is no reason too even have the preview open while encoding anyway .. and sorry neuron2 I know you want too keep the thread clean.

screw
17th October 2008, 09:51
Some experience with DGAVCIndexNV on NVIDIA Quadro NVS140M (Lenovo T61 notebook).
Although there is no certain info about V2 existence on this chip on NVIDIA site, I did give a try, since my previous attempt with GeForce 8800GTS failed (I had to read all discussion thread more carefully).

Well, back to Quadro NVS 140M - it works but not on full HD resolution. I could run DGAVCIndexNV on smaller sample videos:
720x400 ~ 200 FPS in preview mode,
1280x720 ~ 90 FPS.
When I did try to open 1920x1080 clip, DGAVCIndexNV fails to initialize video decoder:
"GPU decoder: Failed to create video decoder (100)"
Possibly it is some limitation of chipset, although DXVAChecker does report ability to decode H.264 up to 1920x1080.

Another issue - did try to encode to something else (Xvid, MPEG-2). Xvid went fine (I did use VirtualDub on .AVS script), but CCE SP2 Trial did fail with Exception 0xC0000005 in all attempts. Any ideas what might be the reason for this CCE crush?
The same clip when used with DGAVCIndex (libavcodec) and DGAVCDecode works normally on CCE.

Added later info 19.10.2008:

I did try also encoding to MPEG-2 with HC_enc (0.23) and QuEnc (0.72). Both failed exactly the same way - Exception 0xC0000005.
Can anyone report the success with MPEG-2 encoding if DGACVDecodeNV is used in .AVS script?

Comatose
17th October 2008, 11:29
Dare I say it - yes I will, bit sloppy, even though I use MeGUI myself and like it, but 7 times, fair enough I could understand - once for the preview, and a few for the encode (depending on no# of cores), but that exceeds even that amount (would be 5 in a quad core machine). There is no reason too even have the preview open while encoding anyway .. and sorry neuron2 I know you want too keep the thread clean.
I think it opens that many times to check for Avisynth errors before every step, so it can display them to you instead of x264 returning an error and all you get is "error" in the Queue tab.

tre31
18th October 2008, 01:06
I think it opens that many times to check for Avisynth errors before every step, so it can display them to you instead of x264 returning an error and all you get is "error" in the Queue tab.

Apologies again neuron2 (why is it your threads get hijacked - I guess its good that your work provokes discussion ;) )
----
I was under the belief that x264 can output too sout and serr (standard out and standard error streams) so therefore there isn't really a need for the extra as MeGUI could just monitor those streams and do whatever it wants with the info (it does already with the fps, time, etc), so it really doesn't justify extra avisynth processes running just for monitoring (actually it doesn't make much sense at all too me). Then again I haven't looked at the MeGUI code, so I may just be spouting crap. :D

kemuri-_9
18th October 2008, 16:22
sorry for helping the hijack here...

x264 writes the log information (debug, info, warnings, etc. depending on the level of info you want: see --verbose and --quiet) to stderr by default, and the code is hardcoded for that, so it can't output video data to stderr.
x264 can write to stdout though by specifying the out file as -

the thing is iirc,
A. megui already monitors the stderr stream for displaying the progress statistics and x264 error/info within megui
B. I don't recall megui natively supporting x264 writing to stdout, it wants x264 to write to a file.
C. megui handles more programs than just x264, so i believe point B is related to not all the programs it deals with having stdout support.

i have only a vague idea why megui would open the avs script that many times as i don't use it regularly; that would be to check the video parameters (AR, FPS, etc.) and then from opening it, it would find errors.
But of course this is just speculation within reason. would have to ask Sharktooth on why it actually opens that many times.

so a bit back on topic...
hows the progress on testing that floating context version build coming along?
because honestly once that stabilizes the whole multiopening conflict within megui and any other encoding programs, the problem becomes moot.

Guest
22nd October 2008, 05:46
hows the progress on testing that floating context version build coming along? The floating context solution ran into problems. MEGUI starts a new thread for each frame request! That severely stresses the CUDA context switches. In addition, there were unexplained crashes that I could not debug due to lack of source code for nvcuvid.dll.

But there is good news. I went back to my server idea and just tonight completed the implementation of DGAVCDecodeNV based on the client-server model. It works just fine and MEGUI works without issues.

Interestingly, a global mutex was not required because MEGUI is well behaved about closing the script each time before re-opening it again. I may add one later anyway, but it's not required to support MEGUI.

I hope to roll this out tomorrow evening after doing a code review. I also plan to release the source code for the server as well as a primitive GUI client (though not the source code for DGAVCDecodeNV). That will enable other people to use the CUVID decoder in their own applications.

lexor
22nd October 2008, 13:03
Neuron, I was following the CUDA dialogue you keep track of on your site with interest, and I was wondering if the code provided by NVidia engineer (NV12->YUY2) is under any form of licence or if it's otherwise inadvisable to just take it from there and use it. Also if it is free-for-all kind of a deal, your last recorded message reads that you are using an updated version of that function. Is that the second one posted there, or have they sent you an even newer one?

Thanks.

Guest
22nd October 2008, 13:07
Neuron, I was following the CUDA dialogue you keep track of on your site with interest, and I was wondering if the code provided by NVidia engineer (NV12->YUY2) is under any form of licence or if it's otherwise inadvisable to just take it from there and use it. Also if it is free-for-all kind of a deal, your last recorded message reads that you are using an updated version of that function. Is that the second one posted there, or have they sent you an even newer one? It's the second version in the dialog. I understand that it is not licensed. You may want to test the interlaced/progressive handling, as I have not done that yet.

Guest
23rd October 2008, 04:14
Things are still bubbling. The thing is that ideally I'd like to be able to support a script like this:

a=AVCDecode("file.dga").reverse()
b=AVCDecode("file.dga")
interleave(a,b)

...which with a file of frames 0-95 would give:

95 0 94 1 93 2 92 3 ...

In other words, a script should support multiple independent AVCSource() instances. The script above worked with earlier versions of nvcuvid.dll when opening with VirtualDub. But now there are two problems:

1. Doing this with the latest nvcuvid.dll crashes. Nvidia has been informed.

2. It never worked with the managed apps like MEGUI, which crashed when trying to instantiate a second decoder instance.

Assuming that Nvidia can fix 1 leaves us still with 2. 2 can be fixed either with the server model (working fine) or the floating context model (working with issues probably solvable). But both these solutions preclude ever doing the multiple independent decodes, because only one decoder is ever instantiated.

It seems like a big loss to give up multiple instantiation. So I'm tempted to hold off on the server model rollout and work the issues 1 and 2 some more in hopes of solving them. But then users won't have a MEGUI solution in the meantime.

Or I can rollout the server now and perhaps have to abandon it later. One advantage of the server model is that the decoder code is always in one place and fixing bugs there, or adding features there, fixes all applications that use it. And the server model is simple and robust. So there's something to be said for the server model.

So I don't know what to do. :( Your thoughts will be appreciated. Is it really so bad to lose multiple instantiation?

Sagekilla
23rd October 2008, 04:17
Why would you have to abandon the server model though? It seems like it has no disadvantages.

Guest
23rd October 2008, 04:21
Why would you have to abandon the server model though? It seems like it has no disadvantages. I'd abandon it if issues 1 and 2 were solved because it cannot support more than one AVCSource() in a script (i.e., cannot support multiple instantiation). You could not do this, for example:

AVCSource("fileA.dga")++AVCSource("fileB.dga")

There is a way to support that with the server model by forcing every GetFrame() call to do a full decoder reset. But the performance would be horrible.

Sagekilla
23rd October 2008, 04:28
Well #1 seems like it could be, or should be, a very simple fix -- something that nvidia can resolve for us (hopefully). MeGUI on the other hand.. Perhaps we can work with the developers to make it not crash.

Both seems completely solvable, just requires someone to actually do it. I wish I knew enough code to help on #2 :(

Guest
23rd October 2008, 04:39
MeGUI on the other hand.. Perhaps we can work with the developers to make it not crash It's not MEGUI's fault. It's something to do with managed code. It's still a mystery.

kemuri-_9
23rd October 2008, 05:46
hmmm.....
the server model works for megui for a single instantiation call, but not for several and the 'normal' method (once fixed) supports multiple instantiation....
then how viable would it be to have both?

Seeing at how there are the people who would like to do complicated multiple instantiation and then the megui users.

probably hitting an over generalization here:
but i would say that the multiple instantiation users will probably encode the file to a lossless with filtering they will perform, which they will then use that in megui
- removing the necessity for DGAVCDecodeNV withing megui.
and then the megui users generally want to straight-shot convert a single video.
- without multiple instantiation capability.

sure if they both worked simultaneously people would be foaming out of the mouth in joy,
but hey if it absolutely requires two versions, i think people could live with that; we should be happy to get anything at all.

As for the file concatenating idea, what cuda restrictions are there in place to prevent you from doing
so within the project .dga and only having one AVCSource() call (like DGAVCIndex and DGIndex)?
is there any chance of getting it worked out with nvidia, or is it an absolute no-go?

- mp4box's stream concatenation feature can be used for files that have the same properties as a workaround for that if it doesn't ever work out....

.... geh, what a wall of text :<

tre31
23rd October 2008, 06:39
hmmm.....
the server model works for megui for a single instantiation call, but not for several and the 'normal' method (once fixed) supports multiple instantiation....
then how viable would it be to have both?


Different solutions for different problems, perhaps once you do get a working nvcuvid.dll again, just have that for people who want multiple instancing, and they can encode manually via cmd line, and for the MeGUI folk use the server model.

Alternatively perhaps keep the code managed so that both can be contained within the same app even but selection via options/preferences too keep it all in one app rather than dividing it up based on what the end user wants too do, better too keep it in one imho (but may mean some code repetition - but honestly who's worried about memory/storage space these days on recent machines).

Just an idea...
----
edit: Just make sure that its documented (hell even well tool-tipped) what the difference's are and whats best for what use.

Quark.Fusion
23rd October 2008, 07:09
Storage is still matters — shadow copies for example can eat space pretty fast if you will do massive writes. That requires separate storage for temporary data — it's not something that comes for free.

Memory also heavily matters in 32-bit apps, fft3dgpu for example eat allocation space in that way, so it's not possible to use it two times on HD content. If you add memory requirement for encoding and decoding, mvtools processing, etc — you will suffer from insufficient address space. (Sorry for my english)

tre31
23rd October 2008, 09:15
Storage is still matters — shadow copies for example can eat space pretty fast if you will do massive writes. That requires separate storage for temporary data — it's not something that comes for free.

Memory also heavily matters in 32-bit apps, fft3dgpu for example eat allocation space in that way, so it's not possible to use it two times on HD content. If you add memory requirement for encoding and decoding, mvtools processing, etc — you will suffer from insufficient address space. (Sorry for my english)

Your english is fine, however I think you misunderstood what I meant, what I actually meant was - the size of the executable will increase, hence it will initially consume more memory as it has too be loaded into memory too be executed, as for the actual size of memory it consumes that won't really change as it is only executing either one or the other options (one being multi-instancing, the other being server based).

Anyway its up too neuron2, I was just offering an idea that encompases both, since both seem too be valid solutions too different problems. :)

Guest
23rd October 2008, 15:48
Actually, it turns out that AVCSource()++AVCSource() works fine with the server because the uses of the decoder are serialized. It's only when you interleave their usage that problems arise. So I'll go ahead and release the server version tonight.

Sagekilla
23rd October 2008, 23:47
How odd.. I don't suppose most people would realistically use two sources interleaved, would they?

Quark.Fusion
24th October 2008, 00:28
Overlay? Can be used in game video recordings for example. (using x264 instead of lossless as intermediate format before editing)

Guest
24th October 2008, 05:23
OK, I'm rolling out the server version. Nvidia already fixed problem 1 described above but problem 2 remains intractable for now. Some notes:

* I strongly recommend killing the MEGUI preview before starting the encode. You can leave it open if you want to be perverse, but if you navigate in it after starting encoding, kiss your life goodbye. And don't say I didn't warn you.

* DGAVCIndexNV still uses a built-in GPU decoder; the server does not have to be active. But again for the same reason as above, kill DGAVCIndexNV before trying to execute scripts.

* Don't even think about writing a script that in any way interleaves access to multiple instances of AVCSource(). It's OK if they are serialized, e.g., AVCSource()++AVCSource(). Note that normal PureVideo bobbing without multiple instances is coming.

* The server is licensed, so either put it in the same directory as DGAVCIndexNV.exe, or put a copy of your license.txt file with its executable.

* Tomorrow I will release a basic server client with source code, so that you can use the server in your own applications.

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

blubberbirne
24th October 2008, 20:27
great work. but i have some problem with megui. i encode some sample file. the encoded file don't play smooth. it lags

Guest
24th October 2008, 20:35
What have you done to try to diagnose your problem? I ask because you've given me nothing to go on. I doubt it has anything to do with DGAVCDecNV.

blubberbirne
24th October 2008, 22:26
oh sorry, have many work at the moment :( will test it more tomorrow.

I test some small Premiere HD Stream. I only load the dga project in avs script an encode it with dxva hq profile in megui. source file playes finde. but the encoded one has terrible lags.

and sorry about my english

Guest
24th October 2008, 22:35
Post a link to a sample of the encoded video that shows the lag. I want to see if it plays cleanly on my (fast) system.

Guest
25th October 2008, 02:11
I've released the sample client package with source code. It works with the CUVID Server contained in DGAVCDecNV 1.0.5. The package contains documentation for the CUVID Server interface. I would be interested in any ideas for improving the interface.

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

crypto
25th October 2008, 10:44
Thanks for making this available. I like the server concept and find it extremely interesting. Wouldn't this also be ideal to recombine the NV and non-NV lines of dgavcindex?

Inventive Software
25th October 2008, 11:21
No, because the license models are different.

Guest
25th October 2008, 14:03
The license model is not an obstacle. The features could be combined with only the NV support being controlled by the license file. In other words, to turn on NV support you need the license file, but not for libavcodec operation.

The thing is, though, I am highly pessimistic about libavcodec ever being fixed to the level needed for proper operation in a frame accurate seeking application. For me, NV is the only viable way right now. Maybe CoreAVC will come through with an API, but I'm not holding my breath.

rack04
25th October 2008, 17:32
* I strongly recommend killing the MEGUI preview before starting the encode. You can leave it open if you want to be perverse, but if you navigate in it after starting encoding, kiss your ass goodbye. And don't say I didn't warn you.

Does this also apply to Auto Encode? Using this feature closes the preview before allowing the user to select the output size and addition content. Just wondering because this freezes MeGUI when using DGAVCDecNV 1.0.5.

Guest
25th October 2008, 17:36
I never heard of Auto Encode. I'll look into it. Please tell me the exact steps you take to cause a freeze.

rack04
25th October 2008, 18:27
I never heard of Auto Encode. I'll look into it. Please tell me the exact steps you take to cause a freeze.

Load the script into the AviScript Script input. The preview is opened when the script is loaded. Go to Tools and then AutoEncode. This is where the freeze happens. If I close the preview before clicking on AutoEncode is does not freeze. I use AutoEncode to set the output size and to mux the audio and chapters with the video.

Guest
25th October 2008, 18:35
Load the script into the AviScript Script input. I can't make any sense of that. Can you try again, please?

If I close the preview before clicking on AutoEncode it does not freeze. Seems to me that you should follow my strong recommendation then. :)

rack04
25th October 2008, 18:41
I can't make any sense of that. Can you try again, please?

Sure.

http://i11.photobucket.com/albums/a199/rack04/untitled-2.jpg

http://i11.photobucket.com/albums/a199/rack04/untitled1.jpg

Seems to me that you should follow my strong recommendation then. :)

See that's why I asked because this isn't actually doing any encoding, yet. :rolleyes:

Guest
25th October 2008, 18:45
Thanks for the clarification and for pointing out the issue. I'll have a look at it. In the meantime, close the preview window. Does that allow encoding to proceed normally with AutoEncode?

rack04
25th October 2008, 18:53
Thanks for the clarification and for pointing out the issue. I'll have a look at it. In the meantime, close the preview window. Does that allow encoding to proceed normally with AutoEncode?

So far so good. I'll let you know if 15 hours when it finishes. :p

BTW. The script is:

LoadPlugin("C:\Program Files\DGAVCIndexNV\DGAVCDecodeNV.dll")
AVCSource("F:\Blu-ray\Forbidden Kingdom.dga")

ultratoto14
25th October 2008, 19:07
Finished my first encode with staxRip and DGAVCIndex. Very happy that the server version resolve encountered problems.

Like blubberbirne, my encode lags, it seems to have duplicate frames instead of all frames.

Guest
25th October 2008, 19:15
Like blubberbirne, my encode lags, it seems to have duplicate frames instead of all frames. That's not good. I'll try to duplicate it. Any further materials you can provide to help me duplicate it will be appreciated.

ultratoto14
25th October 2008, 19:24
I just tried to open the AVS in virtualDub, pressing the right narrow to play the file i can see the lags in live, but if i return to a previous point in the movie and replay the same part, I cannot reproduce it again.
So this is unpredictable. What do you need ?

Guest
25th October 2008, 19:33
Playing the AVS will not be smooth, as DGAVCDecodeNV is not designed as a player application. But returning on the timeline gets frames from the Avisynth cache, which will not have decoding delays. So it is normal.

The important question is: Does your encoded file have unexpected duplicate frames?

lexor
25th October 2008, 19:35
ultra (and everyone else with the problem) what decoder are you using? I tested the old preview of avcsourceNV (during early development, i hijacked my friend's machine to play around since I don't have NV), and did encounter such a problem (the lag), but then I played the output on PS3 and it was smooth as silk. I assumed at the time it was libav decoding issue (ffdshow) or faulty mp4 splitting in haali. Though I'm not sure what triggers it and what it has to do with the source frameserver (one would think it's the output x264 profile that matters).

ultratoto14
25th October 2008, 19:40
Ok, effectively, there is duplicate frames. In one of them the frame seems cut in the middle with a shift between the up part and the down part (a man walking on the snow, his trunk is no more in front of his legs). In this case the old frame is repeated on the up part, only the down part is the new frame.

I encode the same part of the movie three times : 2 with AVCSource from DGAVCDecodeNV, one from directshow. Same encoder settings, the two NV based encodes lags at different moment, the one form directshow doesn't.

Guest
25th October 2008, 19:45
OK, thank you. I know from your description exactly what is happening. The server is re-using the shared memory before the client is done with it. I'll release a fix ASAP. Thank you for your very clear and valuable trouble report.

@lexor

There are two unrelated meanings for "lag" here. I'm sure it's clear now after you realize the issue I mentioned just above.

Guest
25th October 2008, 20:02
I have fixed CUVIDServer.exe and replaced it in the 1.0.5 zip file.

Please re-download 1.0.5 and try again with the new CUVIDServer.exe.

ultratoto14
25th October 2008, 20:24
Tested, no more duplicate frames ... but now my frame is shifted to the right about a few pixels. The remaining right part of the frame is on the left

8958

Guest
25th October 2008, 20:31
Oh crud, a cropping rectangle with cropping on the left.

I need a stream like this. Please post a link to a piece of the unprocessed source. It doesn't have to be very big.

Thank you.

ultratoto14
25th October 2008, 21:13
It takes me a long time since i have a very slow internet connection, here is the sample you want http://www.mediafire.com/?sharekey=ee3a5fd37f656c1cab1eab3e9fa335caf4cff8d127bac7ae.

8800 GTS 512Mo

Guest
26th October 2008, 00:35
Thank you.

But there is no cropping rectangle and I cannot duplicate the issue. I made a basic script with just AVCSource() and then encoded in MEGUI with DXVA HD Fast.

Please tell me exactly what you did to make that happen. Include your script, MEGUI profile, and everything up to and including how you made that frame grab. I can't fix a problem if I can't duplicate it.

Zwitterion
26th October 2008, 00:59
Please tell me exactly what you did to make that happen.
I get that problem, too.
Indexed the sample using 1.0.5, started the server and opened the dga file with DGAVCDecodeNV_AVCSource("sample.dga"). Viewing in VirtualDubMod.

Guest
26th October 2008, 01:09
It doesn't happen for me. Does it show wrong in DGAVCIndexNV?

Does it show wrong using 1.0.4 (non server version)?

Please post the log from a preview.

Guest
26th October 2008, 01:15
Whoops, I'm duplicating it with the uploaded binaries. Stand by...

Guest
26th October 2008, 01:21
Redownload 1.0.5. I forgot that DGAVCDecodeNV.dll was updated also. :o

Zwitterion
26th October 2008, 01:33
Works now. :)

Guest
26th October 2008, 01:33
Thanks guys, what would I do without you?

EDIT: I just updated the sample CUVID Client application as well.

ultratoto14
26th October 2008, 08:06
I wake up and my problems are gone !! Thank you.

tofans
26th October 2008, 21:50
Sorry, if this is a bit offtopic, but which method of deinterlacing is used by the PureVideo deinterlacer?
How does it compare to Yadif or even Mcbob in terms of Quality?
I understand there is no way of choosing a particular method in the nvidia control panel. Is there a difference in terms of method/quality between the XP and Vista drivers?

I guess my basic question is: If I have an interlaced source and want to archive good quality, should I use Yadif or PureVideo?

Guest
27th October 2008, 00:00
If you look through the 16 pages of the thread, somewhere you will find some screenshots. In my opinion, PureVideo is better and faster than the available Avisynth filters.. It does only single rate for now (no bobbing).

I don't think there's any difference between XP and Vista, as it is a hardware function.

Sagekilla
27th October 2008, 00:56
Indeed, I did a mini comparison of TempGaussMC (using naive defaults) vs the built in VP deinterlacing and nvidia's implementation came out on top. IMO, for the naive user who just wants it to work right, the deinterlacing interface provided by DGAVCDecNV is very handy, or well anyone who wants good deinterlacing :)


If I find more interlaced H.264 sources I'll post the results too.

Edit: Here (http://forum.doom9.org/showthread.php?p=1185415#post1185415) are the results

Audionut
27th October 2008, 15:58
Strange error using with x264 on Vista 64.


avis [error]: unsupported input format (DIB )
x264 [error]: could not open input file 'd:\test.avs'

I've used the same workflow I have always used on winxp.

The avs file loads fine in virtualdub and mpc.
And as far as I can tell it is yv12.

edit: and it works with the same x264.exe in megui but not the cli.

ultratoto14
27th October 2008, 16:05
@Neuron2 :
1 - I use TSMuxer, eac3to and DGAVCindexNV to extract audio from a m2ts file. The 3 resulting ac3 are exactly the same (great !!) but the one extracted from DGAVCindexNV is marked with a delay of -265 ms. And when remuxed with this delay, the file is not in sync. I tried two others files muxed with TSMuxer and the -265 ms is present every time.
Do you have any clue on that ?
2 - What is the roadmap of DGAVCindexNV : VC1/MPEG2 support ?

Thanks for all, my first encode with the CUVidServer is grrrrreeeeaaaattt.

Guest
27th October 2008, 16:09
Strange error using with x264 on Vista 64.

avis [error]: unsupported input format (DIB )
x264 [error]: could not open input file 'd:\test.avs'

I've used the same workflow I have always used on winxp.

The avs file loads fine in virtualdub and mpc.
And as far as I can tell it is yv12.

edit: and it works with the same x264.exe in megui but not the cli. Provide:

1. The version of DGAVCDecNV you are using.
2. The x264 CLI command that fails, and the version of the x264.exe you used.
3. Your exact script.
4. A piece of the unprocessed source stream that will allow me to duplicate your issue.

But if the exact same thing doesn't fail on XP, you're on your own because I don't use Vista 64.

Audionut
27th October 2008, 16:13
1. latest.
2. --crf 18.0 --level 4.1 --keyint 24 --min-keyint 2 --ref 3 --mixed-refs --bframes 3 --b-adapt 2 --weightb --direct auto --subme 7 --trellis 1 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct
--qpmin 1 --qpstep 6 --ipratio 1.3 --pbratio 1.1 --vbv-bufsize 40000 --vbv-maxrate 40000 --scenecut -1 --me umh --threads auto --thread-input --aq-mode 0 --progress --no-psnr
--no-ssim --output "output" "input"
3. loadplugin("d:\dgavcdecodenv.dll")
avcsource("d:\test.dga")
spline36resize(1280,544)
removegrain()
4.Give me a minute.

The error occured with a basic loadplugin, avcsource script aswell.

Guest
27th October 2008, 16:15
1 - I use TSMuxer, eac3to and DGAVCindexNV to extract audio from a m2ts file. The 3 resulting ac3 are exactly the same (great !!) but the one extracted from DGAVCindexNV is marked with a delay of -265 ms. And when remuxed with this delay, the file is not in sync. I tried two others files muxed with TSMuxer and the -265 ms is present every time.
Do you have any clue on that ? If you give me an unprocessed source stream that includes the beginning of the stream and has an AV sync event like a door slam or someone talking, then I can investigate.

2 - What is the roadmap of DGAVCindexNV : VC1/MPEG2 support ?

Things I'd like to do:

PureVideo bobbing
VC-1
MPEG1/2

Guest
27th October 2008, 16:17
The error occured with a basic loadplugin, avcsource script as well. But not on vanilla 32-bit XP?

And what happens if you just load the script into VirtualDub?

Where did you put nvcuvid.dll? You should not use nvcuvid64.dll. You should put nvcuvid.dll in your sys32wow directory. That may not be the exact name but it is something like that. :)

Also, check the Nvida driver version. It must support CUDA.

Audionut
27th October 2008, 16:31
1. no

2. works fine. Also works fine with the same x264.exe in megui.

3. Didn't put anywhere, but tried system32 and syswow64, didn't make any difference. Works in megui without me putting it anywhere.

4. latest driver 180.43 iirc.


See pm for sample.

Edit. It seems awfully strange that it doesn't work in cli but does in megui.

Guest
27th October 2008, 16:54
Your answer to 1 is ambiguous. Does it or does it not work fine on 32-bit XP?

You have to put the correct DLL in the correct place! Get rid of all the existing nvcuvid.dll and nvcuvid64.dll and put the nvcuvid.dll from the zip file into the correct directory for Vista 64 32-bit DLLs. I don't lknow what that is as I don't use Vista 64.

Audionut
27th October 2008, 17:30
Worked fine on 32-bit xp.

There are no nvcuvid or nvcuvid64.dll's on my system. I tried putting nvcuvid.dll in the correct directory. It didn't make a difference.

Guest
27th October 2008, 18:11
I can't help you with Vista 64. Sorry. When you figure it out, please let us know.

ultratoto14
27th October 2008, 21:19
I put two samples of files with delay not detected by other programs here : http://www.mediafire.com/?sharekey=ee3a5fd37f656c1cab1eab3e9fa335caf4cff8d127bac7ae

adiabatic
28th October 2008, 07:06
MEGUI does some real goofy stuff internally. It opens the script 7 times for a simple 2-pass encode!

I noticed this in the changelog for the 0.3.0.3005 dev Oct 23 release of MeGUI:

"Removed filename passed to new VobinputWindow as SetConfig passes it anyway.This way OpenVideo isn't called twice."

Any chance that this simplifies things?

ultratoto14
28th October 2008, 11:29
Hello neuron2, do you know if there are options about frame deblocking or filtering on the Nvidia cuda interface ?

Guest
28th October 2008, 13:19
Any chance that this simplifies things? I don't know, but it appears to be irrelevant at this point as the current version of DGAVCDecNV works with MEGUI.

@ultratoto14

I don't know, but in any case, there are no options for such a thing exposed in the CUVID interface.

Guest
28th October 2008, 13:38
I put two samples of files with delay not detected by other programs here : http://www.mediafire.com/?sharekey=ee3a5fd37f656c1cab1eab3e9fa335caf4cff8d127bac7ae I appreciate your effort but one appears to have no audible audio and the other does not contain an AV sync event that I can use to judge the real sync. It needs to be long enough to include someone talking, a door slam, or something like that (of course with nothing cut between then and the start of the stream.

Different programs can see different delays depending upon how they do their demuxing, etc.

Guest
28th October 2008, 14:16
I decided to unlicense the CUVID Server and release its source code under GPL.

http://neuron2.net/dgavcdecnv/cuvidserver100.zip

ultratoto14
28th October 2008, 15:36
Just another question about the roadmap :
As the current release work for h264 but allow only one instance at a time, isn't it more simple to support VC1 and mpeg2 in this release and after that give more time for bobbing, etc ?
(I really miss VC1 support, :p)

Guest
28th October 2008, 15:52
The bobbing solution won't require multi instances.

The priorities are not entirely in my control. Much depends on Nvidia deliverables.

kemuri-_9
28th October 2008, 18:18
The priorities are not entirely in my control. Much depends on Nvidia deliverables.

from the current condition of the nvidia code, what can you currently achieve towards your plans?

crypto
29th October 2008, 01:08
I decided to unlicense the CUVID Server and release its source code under GPL.

http://neuron2.net/dgavcdecnv/cuvidserver100.zip
:thanks:

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.

Renzz
5th November 2008, 10:22
Can I make a minor, aesthetic request? Could the server process be made to run in the System Tray? As far as I can see, it doesn't need to be a windowed process and it would be nice to keep it out the way - I do like a tidy desktop :)

slip_
5th November 2008, 11:45
G80 chips don't have VP2, so you'll need to get a new graphics card.

Is this true ?? :( :( :(

What Nvidia driver version are you running?

Using version 178.08

Guest
5th November 2008, 14:04
Is this true ?? It's not fully clear to me. I think it may be, as Nvidia just told me that indeed that card does not have the VP2. On the other hand, I think it works for Badaboom and crypto and bob0r have things working with it. E.g.:

http://forum.doom9.org/showthread.php?p=1183174#post1183174

Hopefully they will comment on it, or you could PM them about it.

I have recently upgraded to a 9600GT, and the performance is leaps and bounds above the 8500GT.

Guest
5th November 2008, 14:19
Can I make a minor, aesthetic request? Could the server process be made to run in the System Tray? Good idea, I'll do that.

nm
5th November 2008, 14:42
It's not fully clear to me. I think it may be, as Nvidia just told me that indeed that card does not have the VP2. On the other hand, I think it works for Badaboom and crypto and bob0r have things working with it. E.g.:

http://forum.doom9.org/showthread.php?p=1183174#post1183174
bob0r has the 512 MB G92 version of 8800 GTS instead of 320 MB G80.

crypto
5th November 2008, 20:06
..I think it works for Badaboom and crypto and bob0r have things working with it
...
Hopefully they will comment on it, or you could PM them about it.
I have a 8600 GTS 256MB (not 8800 GTS) and DGAVCDecNV working with it.

I guess DGAVCDecNV does not only need CUDA (which is supported on 8800 GTS) but also a VP2.

The 8600 GTS (G84) has a VP2, the 8800 GTS (G80) not (with the exception of the 512 MB model which has a G92).
Sorry for that.

As I see it, all GPUs since G84 have a VP2 and can be used with DGAVCDecNV.

GeForce 8300 GS
GeForce 8400 GS
GeForce 8500 GT
GeForce 8600 GS
GeForce 8600 GT
GeForce 8600 GTS
GeForce 8800 GS
GeForce 8800 GT
GeForce 8800 GTS 512MB only

All GeForce 9 series

ultratoto14
6th November 2008, 09:32
I have some problems with the CUDA server. I've got 2Go of memory. Windows has 1Go of free memory when the AVS starts. After a while, the Cuda server takes only few megs but windows complains about low memory and want to close only CUDA Server. When i close the server it crashes Firefox. Is it a bad shared memory allocation this is random but it occurs 3 times on 10 encodes.

Guest
6th November 2008, 13:27
There is no dynamic allocation at all in the server. And the shared memory is completely static.

There is a memory sizing issue with 1920-wide clips that I have fixed in my local build. Maybe it's related. I'll release a new version tonight with that fix, minimize to systray, and double rate deinterlacing.

ultratoto14
6th November 2008, 13:31
This is on a 1920 clip. So i wait for it to launch my encode. Thanks again for your work.

Guest
6th November 2008, 13:52
I also just reviewed the code and I see that I haven't freed the shared memory when the server is closed! So if you've opened and closed it multiple times you may accumulate orphaned memory. I have just now fixed that and will release it tonight.

Guest
7th November 2008, 14:40
Sorry, release got delayed by a crisis in transport parsing. Shooting for this evening.

Guest
8th November 2008, 01:09
1. Added support for double rate deinterlacing.

2. Released shared memory properly on termination.

3. Fix memory issue causing crash with latest Nvidia drivers.

4. Fix for streams with cropping on the right.

5. Server opens in the system tray.

6. Fix problem with transport streams that have a PES header split between transport packets.

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

ultratoto14
9th November 2008, 20:55
Still have memory problem with the last version. I'm trying to encode Irobot Blu-ray EUROPE version to 8Gb 1080p. There's free memory on my computer even if windows complains there's not. It happens when i launch a compressibility check. @ 77% of compressibility check -> memory crash. I tried to launch directly the encode, it stops working on the first pass a few frame before the end. Just stop serving frames. The Server runs, if i cancel the first pass and tried another script just after, the script get frames. So i think there's something between the client and the server. If you need more infos...

Guest
9th November 2008, 21:23
What OS are you on?

Can you post a clip that will allow me to duplicate the server hang? For example, cut from the end of the stream.

ultratoto14
9th November 2008, 22:09
I'm on Windows Vista 32 ultimate. I will try to cut a part of the clip to see if it crashes again. 8998

Here is what i get sometimes on the server too.

Guest
10th November 2008, 00:52
I'll install StaxRip if I have to, but you have to give me a stream and a process that I can use to duplicate your issue.

Do these things happen outside of StaxRip too?

ultratoto14
10th November 2008, 18:14
I tried again and the first pass lock at 165020 frame of 165048. I tried to cut out and encode only the 10000 last frames and the encode was not locked. As it seems to lock only on full encode, do you have a debug version of the server to log on my machine(i cannot send you the complete blu-ray ...)

Guest
10th November 2008, 18:18
Please give me the blu-ray disk details so I can buy it to reproduce your issue.

As a workaround, you can try adding this to your script:

trim(0,165019)

Loss of a second at the end should not be a big deal.

ultratoto14
10th November 2008, 19:46
This is the last thing i will do, i want to help you finding a bug if there's one. Thanks.

Guest
10th November 2008, 21:19
You won't give me the blu-ray disk details so that I can get it to duplicate your issue?

If you don't give me a link to purchase the blu-ray, there's no way I can help you any further.

ultratoto14
10th November 2008, 21:42
Here is the blu-ray IRobot European version. http://www.amazon.fr/I-Robot-Blu-ray-Will-Smith/dp/B0011R8UMQ/ref=sr_1_1?ie=UTF8&s=dvd&qid=1226349676&sr=8-1

Guest
10th November 2008, 21:49
Just to confirm...

Is that the actual disk that you ripped?

How did you rip it?

Does this happen outside StaxRip?

ultratoto14
13th November 2008, 08:27
I finally demux the h264 stream from the main m2ts with tsMuxer. During the process, tsMuxer complains about unwanted h264 frames in the stream. I finally got it working by removing the 100 last frames as you suggested.

drelin
13th November 2008, 18:01
Hello, just a suggestion for a future version :

On the Cuvidserv module, can you integrate the creation of a "dummy" avi file (like as makeavis with ffdshow) for the frame serving ? For use with encoder not accpet avs script.

Thank you and sorry for the bad english.

ultratoto14
15th November 2008, 21:59
I rerip the I robot movie, it seems that the blu ray is deffective. This is not a problem of DGAVCIndexNV. Sorry of i wasted your time.

Clumpco
29th November 2008, 23:23
Just a post to thank Neuron2 and relate a painless installation of DGAVCDecNV.

The results are more than satisfactory...
Index Version 1.0.6
Dll Version 1.0.5.0
Server Version 1.0.1

Megui updated 28/11/08
Asus EN9600GT Matrix (the fan didn't even come on!)
Q6600 on Asus P5B at stock speed, 2GB Ram at 4-4-4-12 @ 824MHz

Using GPU basically halves encode time (when tested with the PD-PS3-Xbox360_Fast profile and a basic avscript).
Also the computer stayed far more reactive during encoding, despite MeGui task being set to "Higher than normal"

* First pass
using software frame server : 17.12 fps
using the Nvidia GPU : 39.81 fps
* Second pass
using software frame server : 16.92 fps
using the Nvidia GPU : 31.20 fps

Basic avs template script:

LoadPlugin("D:\HDTrials\Cuda\DGAVCDecodeNV.dll")
avcsource("__vid__")
LanczosResize(1280,720)

x264 command lines:

--pass 1 --bitrate 3112 --stats "****" --level 4.1 --bframes 3 --weightb --direct auto --subme 2 --partitions none --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 9000 --vbv-maxrate 24000 --qcomp 0.5 --me dia --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output NUL "***"

--pass 2 --bitrate 3112 --stats "***" --level 4.1 --bframes 3 --weightb --direct auto --subme 5 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 9000 --vbv-maxrate 24000 --qcomp 0.5 --threads auto --thread-input --sar 1:1 --progress --no-psnr --no-ssim --output "***" "***"

I am currently encoding with a much more complex profile. Previously I got about 7 fps on pass 1, currently I am getting 12 fps.

Here us the first pass command line

--pass 1 --bitrate 3213 --stats "***.stats" --level 4.1 --bframes 5 --b-adapt 2 --b-pyramid --weightb --direct auto --deblock -3:-3 --subme 2 --partitions none --me dia --merange 32 --threads auto --thread-input --aq-strength 0.5 --sar 1:1 --progress --no-psnr --no-ssim --output NUL "***.avs"

So so far so good and I am a very happy camper.

Guest
30th November 2008, 02:25
Hello, just a suggestion for a future version :

On the Cuvidserv module, can you integrate the creation of a "dummy" avi file (like as makeavis with ffdshow) for the frame serving ? For use with encoder not accpet avs script.

Thank you and sorry for the bad english. Yes, I will do that. Thank you for the suggestion.

Guest
30th November 2008, 02:27
So far so good and I am a very happy camper. Good to know. Thank you for your test results.

leeperry
1st December 2008, 00:17
is there a way to use this thing in ffdshow somehow ?
so you get 100% GPU h264 decoding and can use LSF on top of it ? :D

Guest
1st December 2008, 00:22
What's stopping you from using LSF on it as is?

Sagekilla
1st December 2008, 00:30
I suppose he wants to get GPU decoding so he has more CPU to run LSF. That should be possible within ffdshow though.

leeperry
1st December 2008, 00:32
What's stopping you from using LSF on it as is?
nothing, but I mean can we replace CoreAVC by this thing in ffdshow, w/o changing filenames each time or sumthing

and do you know which cards are VP3 ? noone agrees on that :rolleyes:

some say even the 9600GT is VP2, and so would be the 9500GT.

how about the G92-150-A2 9600GSO ?

:thanks:

Guest
1st December 2008, 00:37
nothing, but I mean can we replace CoreAVC by this thing in ffdshow, w/o changing filenames each time or sumthing Gosh, you know "or sumthing" just leaves me wondering still what the heck you are after. CoreAVC is a DirectShow filter. Why can't you just use my source filter as is, why do you have to use it through DirectShow? I don't know what you are referring to when you talk about changing file names.

and do you know which cards are VP3 ? noone agrees on that I don't know but I will ask Nvidia for you.

leeperry
1st December 2008, 00:43
I don't know but I will ask Nvidia for you.
great news, thanks! better talk to God than to his saints..

apparently only G98 would be VP3..

well I wanna use it in DS with Reclock and Haali's Renderer + ffdshow A/V post-processing

but I guess it's not quite possible to make a call through the AVS filter of ffdshow...

Guest
1st December 2008, 01:10
You won't answer my questions, so hasta la vista.

leeperry
1st December 2008, 01:14
You won't answer my questions, so hasta la vista.
the part about DS ? well I wanna use it to GPU decode h264 and use it in KMPlayer/MPC.

pero no es un problema, hasta luego ;)

squid_80
1st December 2008, 03:23
VP3 has been out since last year with the introduction of new version of 8400gs (core G98). orginal 8400gs is G86 (VP2 only).

The current 8400GS models are the only cards that use VP3, nothing else. It is not faster for H264 since VP2 already had full bitstream acceleration, but is meant to be better for MPEG2/VC1.

ghostonline
1st December 2008, 03:47
The current 8400GS models are the only cards that use VP3, nothing else. It is not faster for H264 since VP2 already had full bitstream acceleration, but is meant to be better for MPEG2/VC1.

I have no idea why you are quoting my words. what you wrote has nothing to do with my original words confused:

did anyone here say anything about vp3 vs vp2 on h264???
I didn't, I am pretty sure about this part.

anyway, G98 8400gs may still be the only desktop model that has vp3, but it is not the only model that has vp3.

Guest
1st December 2008, 03:53
the part about DS ? well I wanna use it to GPU decode h264 and use it in KMPlayer/MPC.

pero no es un problema, hasta luego ;)
If you are looking for a player, try MPC Home Theater version, which supports DXVA.

squid_80
1st December 2008, 04:30
I have no idea why you are quoting my words. what you wrote has nothing to do with my original words confused:

Sorry for the confusion, I was quoting you to demonstrate to leeperry that the topic has already been covered in this thread and that the information available on wikipedia etc. is generally inaccurate.

leeperry
1st December 2008, 11:22
If you are looking for a player, try MPC Home Theater version, which supports DXVA.
well that's the thing.
I wanna use CUDA to decode H264 so I can use ffdshow A/V on top of it.
DXVA in MPC means no ffdshow.....
Sorry for the confusion, I was quoting you to demonstrate to leeperry that the topic has already been covered in this thread and that the information available on wikipedia etc. is generally inaccurate.
well the 9500GT is also G98.
and from what DXVAChecker tells me, it seems to support full bitstream H264 & VC1

Guest
1st December 2008, 14:13
I don't have any plans to write a DirectShow filter. But you could write one based on my open source code for the CUVID server and client.

kai0n7
1st December 2008, 17:45
Hi Donald,

I'm having an issue when using DGAVCDecNV which I hope you might be able to help me out with:

When I use the "trim" function in avisynth, the frame numbers don't seem to be matching up to what I see when I view the whole file. For example, I open my avs file in Virtualdub, and want to isolate a scene that plays between frames 1000-2000. When I add the trim command with that frame range specified to the script, it seems to be starting at frame 1002. In order to get all the frames I want, I need to change the start of the trim to 998. This happens with every bluray stream I've ripped thus far.

My apologies if this is a known issue that has already been covered.

Guest
1st December 2008, 18:35
This happens with every bluray stream I've ripped thus far. Then please provide a source stream fragment and script that will allow me to duplicate the issue.

EDIT: I've now duplicated it. Investigating...

kai0n7
2nd December 2008, 00:23
Then please provide a source stream fragment and script that will allow me to duplicate the issue.

EDIT: I've now duplicated it. Investigating...

Well, since I went through the trouble, here's a link to the sample clip you requested anyways:

http://www.megaupload.com/?d=RR7BDFGW

Here's the script:

LoadPlugin("C:\Program Files\AviSynth 2.5\plugins\DGAVCDecodeNV.dll")
avcsource("D:\00002.dga")
Trim(133,351)

It's weird... the only time it hasn't occurred for me is if I play the file from beginning to end in virtualdub, then seek until I find the trimming points. If I seek right after opening the file, usually it pulls this weirdness.

Hope its something simple. ^_^

Clumpco
2nd December 2008, 00:24
Neuron2

One or two little bugs.

I used to use the Nvidia mpeg decoder for my Sat card viewer (DVBViewer) - now if the CUVID server is running the video pauses every second or so. Obviously fixed by choosing a different mpeg decoder but a bit of a niggle all the same.

I had a bluescreen a short time after I began the second pass on a Megui/x264 encode.

EventID 1003
Code erreur 1000008e, paramètre 1 c000001d, paramètre 2 d33c0005, \
paramètre 3 baa67a30, paramètre 4 00000000.

This is usually a driver/hardware problem if I remember correctly and may actually have nothing to do with DGAVCDecNV.

I have turned down Megui priority to "Normal" and done another encode since with no problems.

Cheers

Guest
2nd December 2008, 01:03
Hope its something simple. Not simple, but not too hard. libavcodec drops nondecodable orphaned frames while CUDA does not. I needed to allow for that difference. It will happen only with open GOPs, so you must have the Treat I as IDR option enabled. If you disable that it won't happen. Anyway, I have fixed it and will release it soon. Thank you for your trouble report.

Guest
2nd December 2008, 01:07
I used to use the Nvidia mpeg decoder for my Sat card viewer (DVBViewer) - now if the CUVID server is running the video pauses every second or so. Obviously fixed by choosing a different mpeg decoder but a bit of a niggle all the same. What do you mean by "CUVID server is running"? You mean sitting there idle in the taskbar, or actively decoding? If the former it's a bug, if the latter, what do you expect, given that the processes have to share the GPU? I'm surprised the latter case works at all and doesn't garble up the encode.

I had a bluescreen a short time after I began the second pass on a Megui/x264 encode. Maybe your machine is not fully stable. Is it overclocked?

Clumpco
2nd December 2008, 08:02
What do you mean by "CUVID server is running"? You mean sitting there idle in the taskbar, or actively decoding? If the former it's a bug, if the latter, what do you expect, given that the processes have to share the GPU? I'm surprised the latter case works at all and doesn't garble up the encode.

When it happened the server was idling. I turned if off and the problem stopped. However it does not seem to happen if I haven't been encoding, only after the server has been used. I will do some testing this evening and try to define the exact circumstances.

Maybe your machine is not fully stable. Is it overclocked?

The machine was rock solid before I swapped out my 7600 for the 9600. No CPU overclock, memory is 900MHz underclocked at 824 MHz and no graphics overclocking. I have two 120mm case fans and a 120mm fan in the psu. CPU cooler is an Asus Silent Square.

However, like you, I suspect a stability problem because fitting the 9600 (and the latest driver - 180.48) also broke Xvid (cured by a re-install) and h164ts_cutter refuses to show any video except immediately after a re-boot.

I know that this thread is probably not the correct place to discuss this if it is my machine that is at fault rather than your excellent software, but if anyone has any ideas?

Cheers

hklck516
2nd December 2008, 17:42
dgavcdecnv can support deinterlace - MBAFF or not ??

Clumpco
2nd December 2008, 18:06
When it happened the server was idling. I turned if off and the problem stopped. However it does not seem to happen if I haven't been encoding, only after the server has been used. I will do some testing this evening and try to define the exact circumstances.

Spot on Neuron2! It only actually starts pausing if some frame serving/encoding goes on while using the NVidia mpeg decoderboth (It doesn't do it if indexing). If you stop encoding, the pauses continue and only shutting down the server or the decoder clears it.

SO not a bug after all. However it might be an idea to test if the NVidia mpeg encoder is being used when frame serving starts and issuing a warning?

I suspect that the blue screen might be linked to me having run
both together and not having stopped/restarted the server before doing another encode.

h164ts_cutter problem looks as if it's linked to the Cyberlink h264 decoder being broken - removing it now.

Cheers

Guest
2nd December 2008, 18:28
dgavcdecnv can support deinterlace - MBAFF or not ?? Your question is unclear so I'll make some statements and hope to answer you.

DGAVCDecNV can decode MBAFF correctly.

DGAVCDecNV can deinterlace via Nvidia PureVideo.

You can alternatively deinterlace using any Avisynth deinterlacer in your Avisynth script.

If I've missed your point, please clarify it.

ultratoto14
2nd December 2008, 19:24
Hi neuron2, any news on MPEG2 and VC1 support ?

Guest
2nd December 2008, 19:57
Hi neuron2, any news on MPEG2 and VC1 support ? http://forum.doom9.org/showthread.php?t=142961

Guest
2nd December 2008, 20:34
* Fix bug in demuxing of DTS audio tracks.

* Fix problem with random access.

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

ultratoto14
2nd December 2008, 23:25
Great, i follow this thread and do not see the other, will try it as soon as i get a source. Thanks for your work.

leeperry
4th December 2008, 13:19
I don't have any plans to write a DirectShow filter. But you could write one based on my open source code for the CUVID server and client.
that's too bad....coz if you wanna go shareware I believe there's far more $$$ to make from a DXVA decoder that's compatible w/ ffdshow & any video renderer/player, than w/ some Avisynth plugin for encoders.

plus I see you're also working on VC1, that would be a nice combo.

CoreAVC isn't gonna support CUDA before a long while, and their CoreVC1 vaporware isn't gonna show up anytime soon either.

you're the code guru and the ffdshow coders are registered users of this forum, maybe a simple option could make your server compatible w/ ffdshow using an AVS call ?

CruNcher
4th December 2008, 13:37
indeed a direct implementation via the Ncuvid API inside ffdshow would rock so selecting Nvidia in the Dropdown instead of libavcodec and then adding Nvidias De-Interlacer to the De-Interlacing Options ;)
Leeperry there are already a lot of DXVA Decoder available MPC- Video Decoder, Cyberlink , Intervideo (Corel), Arcsoft, Elecard (DivX) currently

video_magic
4th December 2008, 13:46
Perhaps I will appear as a fool, perhaps not.

Many of these experts, including Neuron2, have given of their time whether it be coding-knowledge, contributions in code, or general advice to newbies - so the majority of us - recipients of their kindness in sharing, should probably be thankful.

If you are going to file bug-reports, spend a little extra time before posting, prepare - post usefully.

Be thankful if you haven't paid nor contributed. Complaints or wishes? - ask and give details rather than just complain.

leeperry
4th December 2008, 14:11
Leeperry there are already a lot of DXVA Decoder available MPC- Video Decoder, Cyberlink , Intervideo (Corel), Arcsoft, Elecard (DivX) currently
well yeah, I'm the one who translated the official MPC HC website from french to english, I know that ;)

but they only work in NV12 and/or VMR9/EVR(on Vista), and you can't add ffdshow post-processing...and on ATI cards you get that lousy red blockiness(the drivers are unable to do progressively upsampled chroma RGB32).

so adding support for neuron2's code in ffdshow would allow post-processing in combination w/ DXVA...in any video renderer/player you want....be it MCE/WMP/KMP in EVR(on XP)/VMR7/HR/Mplayer OGL renderers.

that'd be a major leap for HTPC's I think.

CruNcher
4th December 2008, 14:24
that's why i said a direct implementation would rock (that wouldn't be DXVA) it would give GPU supported editing possibilities via Dshow :)
you can't get the frames via DXVA only direct via Ncuvid :)

leeperry
4th December 2008, 14:31
that's why i said a direct implementation would rock (that wouldn't be DXVA) it would give GPU supported editing possibilities via Dshow :)
you can't get the frames via DXVA only direct via Ncuvid :)
yeah OK, I meant "GPU accelerated" not "DXVA" then ;)

Guest
4th December 2008, 14:36
It's worth thinking about, I suppose.

CruNcher
4th December 2008, 14:41
@leeperry
the era of "GPU acceleration" is over we are in the era of complete Bitstream Video Decoding on consumer PC systems now, as long as you only work via Ncuvid there is practically 0 cpu utilization :)

leeperry
4th December 2008, 16:45
It's worth thinking about, I suppose.
well that would finally be true "no b/s" GPU decoding :eek:

no more NV12 only/VMR9 only/"no ffdshow PP for you coz you've been a naughty boy" :D

plus CoreAVC would be pointless, as most ppl who are using it at this point don't wanna go DXVA because it's L4.1/NV12 only

I'd be happy to register for it, and many ppl too(especially on AVS/HCFR) :thanks:

vucloutr
4th December 2008, 17:01
Hi, I got a problem with DGAVCDecNV.
Actually I wanted to compare the decoding quality of DGAVCDecNV to DGAVCDec.
Thereby I stunbled onto something I didn't expect.

With AvsP I just loaded the appropiate .dll and used AVCsource().

from "Die Welle" Blu-ray
DGAVCDec .............. DGAVCDecNV .............. DGAVCDecNV "reverted"
http://thumbnails5.imagebam.com/1959/61a4b719587848.gif (http://www.imagebam.com/image/61a4b719587848) http://thumbnails7.imagebam.com/1959/1f368019587849.gif (http://www.imagebam.com/image/1f368019587849) http://thumbnails11.imagebam.com/1959/311d1f19589481.gif (http://www.imagebam.com/image/311d1f19589481)

from "Hellboy" Blu-ray
DGAVCDec .............. DGAVCDecNV .............. DGAVCDecNV "reverted"
http://thumbnails5.imagebam.com/1960/68aa1919590367.gif (http://www.imagebam.com/image/68aa1919590367) http://thumbnails8.imagebam.com/1960/304f3319590369.gif (http://www.imagebam.com/image/304f3319590369) http://thumbnails6.imagebam.com/1960/1918a319590370.gif (http://www.imagebam.com/image/1918a319590370)

DGAVCDec seems to be correct, the actual picture of the frame decoded with DGAVCDecNV is slighty offset and stretched.
I had the impression as if it was decoded to 1920x1088 and then cut at the bottom to 1920x1080.
To "revert" that I added 8 lines at the bottom of the frame (->1920x1088) and resized it back to 1920x1080
et voilà the result was the same as the frame DGAVCDec decoded.

Setup:
DGAVCDec 1.0.6, DGAVCDecNV 1.0.6, Windows Server 2008 x64, 8800GTS512 180.48whql driver.
It's the same with DGAVCIndexNV, also 1.0.8 and DGVC1Dec/IndexNV.
I know of another user (Vista x64, 8800GT 512MB, 177.35) with the same problem.

Prolly a Nvidia bug?

if needed: "Die Welle" 20MB .m2ts sample (http://www.uploadbigfiles.net/download.php?file=882sample.m2ts) created with DGSplit. (P4$5VV0RD: --- )

marc99
4th December 2008, 18:49
well that would finally be true "no b/s" GPU decoding :eek:

no more NV12 only/VMR9 only/"no ffdshow PP for you coz you've been a naughty boy" :D

plus CoreAVC would be pointless, as most ppl who are using it at this point don't wanna go DXVA because it's L4.1/NV12 only

I'd be happy to register for it, and many ppl too(especially on AVS/HCFR) :thanks:

Now NVidia decoder support L5 level (13 reference frames in 1080p).

litkaj
5th December 2008, 14:53
To "revert" that I added 8 lines at the bottom of the frame (->1920x1088) and resized it back to 1920x1080
et voilà the result was the same as the frame DGAVCDec decoded.

If you've resized then that's not going to be the same output as DGAVCDec. Same resolution, yes, same output, no.

I was going to buy this to support the author (even though most of the stuff I encode is MPEG2 1080i -> H.264 720p), but the lack of a demo and this glitch has me worried that for the occasional encode where I do want to use it, that I won't be able to. Can anyone else verify that this bug exists?

Guest
5th December 2008, 15:14
Be patient, please. I fix bugs when they are reported but I've just finished fixing some stuff on DGAVCDec. Now I can work on this.

litkaj
5th December 2008, 15:38
Be patient, please. I fix bugs when they are reported but I've just finished fixing some stuff on DGAVCDec. Now I can work on this.

So you've duplicated it then? If so, that was my only concern.

I read through close to 40 pages of this thread and hadn't seen anyone else complain of that issue. I was wondering if it was something that only affected a few people.

Guest
5th December 2008, 16:13
No, I have not duplicated it. I am still investigating.

Initially, I opened the sample in DGAVCIndex and DGAVCIndexNV and did Save BMP. The two BMPs were binary exactly the same. Now I am checking the DGAVCDecode(NV) output...

Guest
5th December 2008, 17:14
Hi, I got a problem with DGAVCDecNV.
Actually I wanted to compare the decoding quality of DGAVCDecNV to DGAVCDec.
Thereby I stumbled onto something I didn't expect. Using DGAVCDec 1.0.7 and DGAVCDecNV 1.0.8, I am unable to duplicate your issue.

Test 1:
Open your sample stream in DGAVCIndex and then do Save BMP. Repeat with DGAVCIndexNV. The resulting BMPs are bitwise identical.

Test 2:
Serve the video via basic script using DGAVCDecode.dll to VirtualDub. Copy frame to clipboard and then save it using Paint. Repeat for DGAVCDecodeNV.dll. The resulting BMPs are bitwise identical.

Earlier versions of DGAVCDecNV did not handle cropping rectangles properly. Please retest with the version given above. Also, be sure to update the CUVID server and nvcuvid.dll with the ones in the zip file.

Renzz
5th December 2008, 17:16
Spotted a minor issue in the documentation - the parameter "Deinterlace" to AVCSource is no longer a bool but an int (in DGAVCDecodeNVManual.html).

vucloutr
5th December 2008, 17:31
strange though.

here with DGAVCIndex 1.0.7 + DGAVCIndexNV 1.0.8

http://www.imagebam.com/image/a3983b20099687

Guest
5th December 2008, 17:49
I can't see the image because of my firewall. Can you say it in words? Also, how are you making the image? Is it from the same sample you uploaded? Did you try my two tests above?

rack04
5th December 2008, 19:33
I have noticed a discrepancy in the description of the detected audio streams from the audio demux and the audio section of the information panel.

The source file is "Hellboy 2" Blu-ray m2ts.

Notice in the audio demux listbox stream 1100 is labeled as "L+R" and in the audio section of the information panel it is labeled as "C+L+R+SL+SR 48 1536"

http://i11.photobucket.com/albums/a199/rack04/DG1.jpg

http://i11.photobucket.com/albums/a199/rack04/DG2.jpg

BTW, is it possible to give these appropriate names, i.e. DTS Master Audio, TrueHD?

vucloutr
5th December 2008, 20:04
Well, I just redownloaded dgavcdecnv108.zip and suddenly, magically everything is fine. :eek: (i've almost gone nuts at this point..)

So I just looked up the two different "dgavcdecnv108.zip" files.
You updated the nvcuvid.dll right? I had downloaded dgavcdecnv108.zip before you reuploaded it with the updated nvcuvid.dll.
Seemingly the bug was in the old nvcuvid.dll:

DGAVCIndexNV 1.0.8 to the left with new nvcuvid.dll, to the right with old nvcuvid.dll
http://hdimage.org/images/qd45srs44yz37n83tw87_finally_thumb.png (http://hdimage.org/viewer.php?file=qd45srs44yz37n83tw87_finally.png)

dunno what to say finally.. hm..
problem solved, thanks anyway. :)

Guest
5th December 2008, 20:24
The source file is "Hellboy 2" Blu-ray m2ts. May I please have a sample that will allow me to duplicate your issue?

Guest
6th December 2008, 00:50
Spotted a minor issue in the documentation - the parameter "Deinterlace" to AVCSource is no longer a bool but an int (in DGAVCDecodeNVManual.html). Thanks. I'll fix it right now.

rack04
6th December 2008, 03:16
May I please have a sample that will allow me to duplicate your issue?

Is a 10 mb sample cut using dgsplit sufficient?

http://www.megaupload.com/?d=RVSRQ0VK

Guest
6th December 2008, 04:30
problem solved, thanks anyway. I don't get the "anyway" part.

Guest
6th December 2008, 04:40
Is a 10 mb sample cut using dgsplit sufficient? Obviously not! I can't duplicate the issue, because when I do a preview that stream doesn't show up.

Please give me enough to actually duplicate your issue. Thank you.

rack04
6th December 2008, 15:21
Obviously not! I can't duplicate the issue, because when I do a preview that stream doesn't show up.

Please give me enough to actually duplicate your issue. Thank you.

Well the video showed for me. Anyways I'll work on it and get back to you.

Guest
6th December 2008, 16:11
Well the video showed for me. Anyways I'll work on it and get back to you. I did not say the video does not display!

Your report is that a DTS stream shows up different in the Audio Demux menu and the Information display. But when I preview, the DTS stream never shows up in the Information display. The sample is too small and doesn't include the start of that audio stream.

rack04
6th December 2008, 23:49
I did not say the video does not display!

Your report is that a DTS stream shows up different in the Audio Demux menu and the Information display. But when I preview, the DTS stream never shows up in the Information display. The sample is too small and doesn't include the start of that audio stream.

Does this serve you any better?

http://www.megaupload.com/?d=QOFWY2M6

Guest
7th December 2008, 01:01
Well, sort of.

Um, are you even trying to duplicate the issue with the streams you give me? Because again, pid 1100 doesn't show up in the Info dialog. But that in itself is a problem, though it is not the same one you reported. I'll work on that and if you give me a stream that lets me duplicate your reported issue, I can work on that too.

rack04
7th December 2008, 01:15
Well, sort of.

Um, are you even trying to duplicate the issue with the streams you give me? Because again, pid 1100 doesn't show up in the Info dialog. But that in itself is a problem, though it is not the same one you reported. I'll work on that and if you give me a stream that lets me duplicate your reported issue, I can work on that too.

No, I'm purposely submitting files that doesn't exhibit the bug that I reported. :confused: Come on!

Each file that I have uploaded shows the 1100 stream as DTS L+R in the Audio Demux and C+L+R+SL+SR 48 1536 in the information panel.

Guest
7th December 2008, 01:45
What version of DGAVCDecNV are you using?

I've tried again with 1.0.8 and if I "Preview" I don't see the stream in the Info dialog. If I "Save Project" I see it and it doesn't match the Audio/Demux screen. So I can duplicate your issue. Don't get mad at me, I specifically said "preview", and you never mentioned that you were Saving Project.

rack04
7th December 2008, 01:57
What version of DGAVCDecNV are you using?

I've tried again with 1.0.8 and if I "Preview" I don't see the stream in the Info dialog. If I "Save Project" I see it and it doesn't match the Audio/Demux screen. So I can duplicate your issue. Don't get mad at me, I specifically said "preview", and you never mentioned that you were Saving Project.

I'm using 1.0.8. Yes, I was saving project. I only mentioned the "bug" because using eac3to I knew that the first audio stream was DTS-HD (MA) 7.1 and DGAVCIndexNV was reporting DTS 2.0.

Guest
7th December 2008, 02:25
OK, thank you. Investigating...

Clumpco
7th December 2008, 10:03
Hmm I am still having problems here, but I do not know if it DGAVC or MeGui that is at fault (or me?).
The CUVIDServer becomes unresponsive and encoding stops.
This happened when I was encoding two vids at once (by mistake, but I left it running to see what happpened).
The first pass on video1 terminated OK but the second pass stalled immediately (not even a % finished).
The first pass on video2 carried on but then hung 1 hour later at 97%.

The CUVID server icon became unresponsive and had to be killed.
MeGui managed to shut itself down when asked.
x264 was still in the process list.
A reboot was required to get the CUVID server running again.

I have also managed to hang the server by doing this:
Start Megui, load an avs, close the video screen because it was the wrong avs, load another avs.
This seems to hang megui and the server.

(using latest DGAVCNV version)

TIA

Audionut
7th December 2008, 11:11
Start Megui, load an avs, close the video screen because it was the wrong avs, load another avs.
This seems to hang megui and the server.

That's a Megui problem. I'm having the same issue regardless of source.

Clumpco
7th December 2008, 11:19
That's a Megui problem.
I suspected as much.
Thanks fir the confirmation.

Guest
7th December 2008, 15:04
This happened when I was encoding two vids at once Don't do that.

Clumpco
7th December 2008, 16:37
Don't do that.
Yes, I have seen the result :-(
Great if you want to watch two programmes at once.

Guest
7th December 2008, 20:25
DGAVCDecNV is not for watching.

HymnToLife
8th December 2008, 14:26
My results for a 1920x1080 PAFF stream from the Hauppauge HD PVR with display disabled are:

Frame rate: 46 fps
CPU utilization: 2%

My machine is Intel E8500 dual core @ 3.8GHz on ASUS Rampage Formula. Graphics card is eVGA 8500GT.

Just so I can compare my results, how did you calculate this? By opening an AVS with only the AVCSource() line in VDub (AVC stream from a Blu-Ray) and running a "video analysis pass", I get ~40fps (Athlon 64 FX-62 dual core @ 2,8 GHz, GeForce 8600GT, Vista x64).

I guess it makes sense since we have about the same graphics card that we get about the same results though your CPU is much better than mine. However, CPU usage gets very high too. Is there a way to make sur it is actually using the GPU?

And by the way, loading the AVS in a player works perfectly well for watching, and should be more widely supported that loaging the M2TS directly (and would allow for some light filtering in AVS too).

Guest
8th December 2008, 14:36
Just so I can compare my results, how did you calculate this? Preview in DGAVCIndexNV with the Disable Display option enabled. The FPS shows at the bottom of the Info dialog.

However, CPU usage gets very high too. Try it again with the method above.

Is there a way to make sure it is actually using the GPU? There is no code in there to use anything else!

Clumpco
8th December 2008, 14:53
DGAVCDecNV is not for watching.

Donald, please credit me with a little more intelligence than that.

If you run two parallel encodes in MeGui, both using DGAVCDecNV as a frame server, you get a mixture of bands from both files. Hence my quip about it being useful if you want to watch two at once.

However, and on a more serious note, I have noticed that running h264ts_cutter at the same time as your frameserver results in artefacts in the cut .ts. This I find astonishing because AFAIK h264ts_cutter only does any rendering except while you are searching through the video for cut points. But there must be a link because h264ts_cutter will also cause a BSOD in some cases (which it never does if your frameserver isn't working).

It would also appear that playing any video while frameserving can have catastrophic results.

Is it possible to index another .ts while frameserving to x264? I suspect not either.

Your code should have some check of whether there is already an instance serving frames when it is called.

All this makes capturing/encoding a very linear process and reduces the benefit of the high framerates obtained.
I cannot capture from a sat card while indexing/encoding.
I cannot index another file while encoding or capturing.
I cannot edit a .ts while indexing/encoding.

HymnToLife
9th December 2008, 22:58
Reporting since I don't think it's normal: if I have this:

AVCSource("tokikake.dga")
Trim(42972, 43000)

and open it in VDub or feed it to x264, I have blocking (http://itsuki.fkraiem.org/stuff/tokikake_blocking.jpg), but not if I remove the Trim() and just seek to the frame. Blocking also does not happen if I use DGAVCDec (non-NV) and, even more funny, adding an FFT3DGPU() to my script gets rid of the blocking as well but only if it is placed before Trim().

Source sample needed?

Guest
9th December 2008, 23:44
Source sample needed?
Yes, please. I need to be able to duplicate your issue.

HymnToLife
10th December 2008, 00:28
Hmm, big thread is big, what is the correct method to cut a sample from the TS?

Guest
10th December 2008, 00:39
You can split it into pieces using DGSplit, for example.

HymnToLife
10th December 2008, 01:48
Is setting start and end points in DGAVCIndexNV and then choosing "Save and demux video" a good way to get a stream sample? (the problem is reproductible with a stream obtained that way.)

Guest
10th December 2008, 05:34
Certainly, that is fine if it allows me to duplicate your issue. Please provide a link to the stream and the script and instructions for duplicating the issue. I'm very keen to address issues with random access, as it is the raison d'etre of the DG tools. Thank you for your willingness to help with debugging.

HymnToLife
10th December 2008, 06:44
http://itsuki.fkraiem.org/stuff/tokikake_cut.avs.demuxed.264

Create DGA file normally, then make an AVS script like this:

DGAVCDecodeNV_AVCSource("blah.dga")
Trim(90, 0)

and open in VDub.

(EDIT: Note the key point is accessing at frame 90, the problem does not happen with e.g. Trim(89, 0).)

Guest
10th December 2008, 15:12
Thank you.

The encoding is very unusual and I'm not yet sure it is fully legal. Where did this stream come from?

HymnToLife
10th December 2008, 23:11
Thank you.

The encoding is very unusual and I'm not yet sure it is fully legal. Where did this stream come from?

Original Japanese Blu-ray.

Guest
11th December 2008, 01:01
Interesting. The POCs are goofy in the stream (i.e., wrong) and I'm tempted to simply say that the stream is wrong. But there is a way to fix it. Instead of looking at the POCs of the first two pictures of the GOP to decide if it is open, I can look at the picture types. I've tried it and it fixes the problem so I'll probably go with that. I'm porting the AV sync fixes and I'll include this with the next release if it doesn't break anything else.

HymnToLife
11th December 2008, 02:24
Other small question: is it safe to work on a DGAVCDec (non-NV) script in VDub while there is a DGAVCDecNV script encoding?

Guest
11th December 2008, 04:07
Is it safe to work on a DGAVCDec (non-NV) script in VDub while there is a DGAVCDecNV script encoding? As long as you are working on different files. You wouldn't want to rewrite the DGA file while the decoder is using it. :)

Guest
12th December 2008, 21:19
I have noticed a discrepancy in the description of the detected audio streams from the audio demux and the audio section of the information panel. I have fixed this problem. The fix will be in the next release

BTW, is it possible to give these appropriate names, i.e. DTS Master Audio, TrueHD? If someone can tell me how to detect those audio types, I can probably do it.

madshi
12th December 2008, 23:42
If someone can tell me how to detect those audio types, I can probably do it.
This is with m2ts container, right? If so, you can use the stream type:

0x03: MP2 (MPEG-1 Audio Layer II)
0x04: MP2 (MPEG-2 Audio Layer II)
0x0f: AAC (MPEG-2 Part 7 Audio)
0x11: AAC (MPEG-4 Part 3 Audio)
0x80: LPCM (only if format id descriptor is 'HDMV')
0x81: AC3
0x82: DTS
0x83: TrueHD+AC3
0x84: E-AC3
0x85: DTS-HD High Resolution
0x86: DTS-HD Master Audio
0x87: E-AC3
0xA1: E-AC3 (secondary audio)
0xA2: DTS Express (secondary audio)

Guest
13th December 2008, 00:04
Thank you, rack04 and madshi.

Guest
13th December 2008, 00:13
Also, would you gents happen to have M2TS samples with these new audio types?

nautilus7
13th December 2008, 00:45
0x83: TrueHD+AC3 http://www.sendspace.com/file/miye0c
0x86: DTS-HD Master Audio http://www.sendspace.com/file/eoboij
0x84: E-AC3 or 0x87: E-AC3 http://www.sendspace.com/file/08wkhg

I will upload samples with the ids below tomorrow.

0xA1: E-AC3 (secondary audio)
0xA2: DTS Express (secondary audio)

Guest
13th December 2008, 01:09
Thank you!

rica
13th December 2008, 02:03
DTS-HD-HR into m2ts container:
http://www.mediafire.com/?sharekey=610f03b89c15442e91b20cc0d07ba4d26a1f79f1876d365a

You will find the modified pcm by Pcm2Tsmu and raw pcm under the same folder. (audio.pcm is raw and audiopcm_out.m2ts is modified by Pcm2Tsmu)

Guest
13th December 2008, 02:06
Thank you!

moviefan
13th December 2008, 19:11
Just for curiousity, neuron2, have you planned creating a GPU based decoder for H264 and VC1 for ATI cards, using ATI's stream API? I would be very interested in that and I assume a lot others who own ATI graphics cards.

Sulik
13th December 2008, 20:00
@moviefan: I don't think ATI's Stream API provides any video-decode-related functionality.

CruNcher
13th December 2008, 20:39
i wouldn't say so though if UVD will be accessible we gonna see December 16, but it would be bad in public if it wouldn't as Nvidia provides it for Windows same as for Linux :)
Though sure Ati could decide only Licensed 3rd Party ISVs but why should they makes no sense except if they cant provide a secure way to the UVD part without interfering with Blu-Ray security :)

Guest
14th December 2008, 02:39
DTS-HD-HR into m2ts container:
http://www.mediafire.com/?sharekey=610f03b89c15442e91b20cc0d07ba4d26a1f79f1876d365a Are you sure? Looks like DTS HD Master Audio to me.

rica
14th December 2008, 03:53
Are you sure? Looks like DTS HD Master Audio to me.

No, i'm not sure.

Looks like MA:

http://bluray.highdefdigest.com/1416/27dresses.html

But eac3to gives this information:

[C:\>eac3to\eac3to E: 1)
M2TS, 1 video track, 5 audio tracks, 19 subtitle tracks, 1:50:49
1: Chapters, 25 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: DTS Hi-Res, English, 5.1 channels, 24 bits, 3018kbps, 48khz
(core: DTS, 5.1 channels, 24 bits, 1509kbps, 48khz)
4: DTS, Italian, 5.1 channels, 24 bits, 768kbps, 48khz
5: DTS, Spanish, 5.1 channels, 24 bits, 768kbps, 48khz

(Btw PowerDVD gives the same info...)

While it gives this info for Close Encounters BD:

C:\>eac3to\eac3to E: 1)
M2TS, 1 video track, 2 audio tracks, 20 subtitle tracks, 2:17:13
1: Chapters, 20 chapters
2: h264/AVC, 1080p24 /1.001 (16:9)
3: TrueHD/AC3, English, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 448kbps, 48khz)
4: DTS Master Audio, English, 5.1 channels, 24 bits, 48khz
(core: DTS, 5.1 channels, 24 bits, 1509kbps, 48khz)

Guest
14th December 2008, 05:12
Hmm, strange. Maybe you should ask madshi about it.

nautilus7
14th December 2008, 13:59
I really think eac3to gives the correct format. It's very precise.

EDIT: rica, what is this sample (audio.dtshd.m2ts)? Is this a remux? Using tsmuxer perhaps? Maybe that buggy program uses wrong id for the audio track. Send a sample from the original file. If you are willing to help, please send original samples.



(neuron2, the samples i promised will be up soon. Do you want them to have VC-1 video only? You will add these changes to your other apps as well, correct?)

Guest
14th December 2008, 14:51
(neuron2, the samples i promised will be up soon. Do you want them to have VC-1 video only? You will add these changes to your other apps as well, correct?) I'm working on DGAVCDec(NV) right now, so I prefer AVC at this point. But I'll happily accept samples with VC-1 too. Yes, I will update the other apps next. I was hoping to release something today, so it would be helpful if you could upload your samples ASAP. Thank you.

rica
14th December 2008, 15:07
I really think eac3to gives the correct format. It's very precise.

EDIT: rica, what is this sample (audio.dtshd.m2ts)? Is this a remux? Using tsmuxer perhaps? Maybe that buggy program uses wrong id for the audio track. Send a sample from the original file. If you are willing to help, please send original samples.


The sample cut by eac3to first, recut/remuxed to m2ts by TSMuxer. But it is not the source of the issue.

Here is a direct cut from the original by clip.exe (27_cut.m2ts):
http://www.mediafire.com/?sharekey=610f03b89c15442e91b20cc0d07ba4d2585f4ee94eb39148

I'm uploading a direct cut by eac3to into the same folder as well. (27_cut.dtshd raw audio)

Edit: Uploaded...

madshi
14th December 2008, 15:37
Hmm, strange. Maybe you should ask madshi about it.
I've found that some streams do not strictly follow the specs. E.g. sometimes there's an E-AC3 track with a stream_type for AC3 or vice versa. The same might be true with DTS-HD High Resolution vs. DTS-HD Master Audio.

eac3to only does rough stream_type checks. E.g. all AC3 and E-AC3 stream_type streams are running through the same general parser which supports both AC3 and E-AC3. And all DTS related stream_type streams are running through one and the same DTS parser which supports all types of DTS streams. The exact stream parameters are then determined by parsing the audio bitstream. This way eac3to cannot be confused by incorrect stream_type values.

nautilus7
14th December 2008, 15:43
I'm working on DGAVCDec(NV) right now, so I prefer AVC at this point. But I'll happily accept samples with VC-1 too. Yes, I will update the other apps next. I was hoping to release something today, so it would be helpful if you could upload your samples ASAP. Thank you.
I mixed the threads that's why i mentioned vc-1. I meant h.264.

Anyway, give me 1 hour (top) because i have to change hdds to find the proper samples.

nautilus7
14th December 2008, 16:39
National Treasure 2 sample (http://www.sendspace.com/file/kh0ktd)

track list
1: h264/AVC, 1080p24 /1.001 (16:9)
2: h264/AVC, 480p24 /1.001 (20:11)
3: TrueHD/AC3, 5.1 channels, 48khz
(embedded: AC3, 5.1 channels, 640kbps, 48khz)
4: AC3 Surround, 2.0 channels, 192kbps, 48khz
5: AC3, 5.1 channels, 640kbps, 48khz
6: AC3, 5.1 channels, 640kbps, 48khz
7: AC3, 5.1 channels, 640kbps, 48khz
8: AC3, 5.1 channels, 640kbps, 48khz
9: AC3 Surround, 2.0 channels, 192kbps, 48khz, dialnorm: -27dB
10: DTS Express, 2.0 channels, 24 bits, 192kbps, 48khz

Jumper sample (http://www.sendspace.com/file/gpudia)

track list
1: h264/AVC, 1080p24 /1.001 (16:9)
2: h264/AVC, 480p24 /1.001 (20:11)
3: DTS Master Audio, 5.1 channels, 24 bits, 48khz
(core: DTS, 5.1 channels, 24 bits, 1509kbps, 48khz)
4: DTS, 5.1 channels, 24 bits, 768kbps, 48khz
5: DTS, 5.1 channels, 24 bits, 768kbps, 48khz
6: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -27dB
7: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -27dB
8: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -27dB
9: AC3, 2.0 channels, 224kbps, 48khz, dialnorm: -27dB
10: DTS Express, 2.0 channels, 16 bits, 192kbps, 48khz

Transformers sample (http://www.sendspace.com/file/fpxtiz)

track list
1: h264/AVC, 1080p24 /1.001 (16:9)
2: h264/AVC, 480p24 /1.001 (20:11)
3: TrueHD/AC3, 5.1 channels, 48khz, dialnorm: -27dB
(embedded: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB)
4: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB
5: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB
6: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB
7: AC3, 5.1 channels, 640kbps, 48khz, dialnorm: -27dB
8: AC3 Surround, 2.0 channels, 192kbps, 48khz, dialnorm: -27dB
9: E-AC3, 2.0 channels, 192kbps, 48khz, dialnorm: -27dB

rica
14th December 2008, 17:06
nautilus7,

DTS-HD HR is still missing since we are not sure yet whether my cut is HR or MA.

Edit: Ok, i've found one. Gonna upload soon.

Last Edit: Here it is:

Hitman:

http://www.mediafire.com/?sharekey=610f03b89c15442e91b20cc0d07ba4d25eaa14c0f07f9723

1: h264/AVC, 1080p24 /1.001 (16:9)
2: DTS, 5.1 channels, 24 bits, 768kbps, 48khz, -769ms
3: DTS Hi-Res, 5.1 channels, 24 bits, 3018kbps, 48khz (core: DTS, 5.1 channels, 24 bits, 1509kbps, 48khz), -1003ms
4: DTS, 5.1 channels, 24 bits, 768kbps, 48khz, -769ms
5: DTS, 5.1 channels, 24 bits, 768kbps, 48khz, -769ms
6: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -27dB, -865ms
7: AC3, 5.1 channels, 448kbps, 48khz, dialnorm: -27dB, -865ms
8: AC3 Surround, 2.0 channels, 224kbps, 48khz, dialnorm: -27dB, -545ms
9: Subtitle (PGS)

rica
14th December 2008, 23:08
I checked again; latest versions of both TMT and PDVD give the same info: (TMT 2.1.6.126, PDVD 8.0.2217a.00)
27 is DTS-HD HR; eac3to/madshi is right.

moviefan
16th December 2008, 15:28
A general question: I've experimented with encoding speeds and wonder, if it makes a huge difference when the GPU decodes the video stream. I created a blank clip with AviSynth at 1920x1080 and encoded that with x264. I got something around 15 fps or so, which should be close to a GPU decoding (in terms of CPU usage when decoding because there are no details - completely black picture), right? So am I right saying if the CPU isn't REALLY fast, x264 is the bottleneck anyway and decoding only a couple of frames per second isn't too much of an effort for a C2D CPU. So since x264 cannot encode so fast due to the CPU, it only requires some few frames per second which takes only little CPU usage (for the decoding). The impact of a GPU decoded video stream increases, when the CPU is able to encode at let's say real time or something like that, when this amount of frame decoding would take a lot CPU usage. Is this theory correct?

Comatose
16th December 2008, 15:43
The idea is that x264 will use 100% of your CPU. A decoder can eat some of the available CPU, and even if it's very little (because of the general slowness), some of us do veeeeeeeeery long encodes so even 1% CPU has a big impact in the long run.

rack04
16th December 2008, 15:49
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.

This may be appropriate here.

Renzz
25th December 2008, 12:42
Had my first ever crash of CUVID server while trying to encode. Windows Event log shows:

Faulting application CUVIDServer.exe, version 0.0.0.0, time stamp 0x49328ce7, faulting module nvcuvid.dll, version 0.0.0.0, time stamp 0x4937286b, exception code 0xc0000005, fault offset 0x00039399, process id 0x1624, application start time 0x01c9667ee9e9ae00.

On examination of the source TS, there is a broadcast glitch at the point that I get the crash. DGAVCIndex doesn't complain and creates the DGA file ok - it's just the Server that doesn't like it.

I've cut the relevant portion out here (60MB):

http://www.mediafire.com/?sharekey=014635695f2c1f3bd2db6fb9a8902bda

The glitch is about 75% of the way through.

Should the code handle glitches like this, or is a crash likely if you have glitches in the original stream?

Thanks, and Happy Christmas!

chr2000
25th December 2008, 12:47
a question, why set Disable Display, the CPU ulity is about 10% in my computer, which is compared with 40% CPU ulity when Enable Display.
why I/O will consum so much cpu resource? isn't the display card push the YUV file to monitor directly?
if the process of coverting yuv to RGB consumed much cpu resource? then is there any display card support YUV input directly?

ultratoto14
2nd January 2009, 19:31
Hi neuron2, I recorded a stream from DVB-T in france.
Frame Size 1440x1080
SAR 4:3
Display Size 1920x1080

When i load the dga via DGAVCDecodeNV the resulting frame is 1440x1080. Is it the normal behavior ?
Happy new year.

Guest
2nd January 2009, 20:22
Yes. You need to resize anamorphic video in your Avisynth script.

ultratoto14
2nd January 2009, 21:16
Ok thanks

crypto
3rd January 2009, 13:23
Yes. You need to resize anamorphic video in your Avisynth script.
Or, from the quality aspect, it would be better to keep it this way and flag the recode as anamorphic.

jonathonsunshine
4th January 2009, 11:38
the following were my results from encoding a 1080p avc stream croppped at resized to 1280x528 (via avisynth). I did it the three different ways that I know, of dgAVCdec , dgAVCdecNV and finally, wrapping the stream in the matroska container and loading it with directshowsource

The stream was 20 seconds and had an average bitrate of 30 and a max of 41

I am encoding with 2gb ddr2 ram, 1066mhz, a Intel CPU, Q6600 / GeForce 8800GS 384mb DDR3 ram.

1st pass 2nd pass

dgAVCdec 100a26
14.61 fps 7.55 fps

dgAVCdecNV 108
23.76 fps 8.11 fps

ffdshow-libav
19.73 fps 7.65 fps

to be quite frank, I was really expecting a bit more...

So um... I'm not a programmer but are there any plans for down the line, having the GPU handle cropping and resizing as well ?

I took the encoded 1280x528 steam, indexed and encoded it the three different ways without any resizing and got the following results.

1st pass 2nd pass

dgAVCdec 100a26
26.52 fps 9.98 fps

dgAVCdecNV 108
30.19 fps 10.14 fps

ffdshow-libav
26.96 fps 10.00 fps


So it would appear to me that offsetting the decoding of the stream itself bears very little benefit but if it could be used also to handle resizing of the image, then that would result in a 30% speed increase.

On another note, (and I did 1st do a search of the thread for "saver" and didn't find anything but i'm sure this has point has been raised before), I have had to disable the screensaver.

Selur
4th January 2009, 13:25
@jonathonsunshine: "to be quite frank, I was really expecting a bit more..." Why? Decoding normally is not the major work that needs to be done during reencoding to h264. If you use high speed settings with (--me hex, --subme 1,..) speed difference might be higher, since decoding speed will become a greater factor. ;)

Audionut
4th January 2009, 14:16
If you use high speed settings with (--me hex, --subme 1,..) speed difference might be higher, since decoding speed will become a greater factor. ;)

As can be seen from the first pass encoding times. Much greater difference.

yesgrey
4th January 2009, 14:24
I've noticed two small errors in DGAVCIndex (and NV) User Manuals, in the DGV Format section:
1-"DGAVCIndexProjectFile" should be "DGAVCIndexFile" or "DGAVCIndexFileNV"
2-"AUD 80,c0" should be "AUDIO 80,c0"

yesgrey
4th January 2009, 14:46
The d2v files included the colorimetry info. Is this information also included in the dga files? It's shown in the info dialog during the project creation, but I cannot find it in the dga file...

rack04
4th January 2009, 15:07
dgAVCdec 100a26

Why are you using such and old version?

http://neuron2.net/dgavcdec/dgavcdec108.zip


to be quite frank, I was really expecting a bit more...

Well Frank, it might serve you well to read this.

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.

Guest
4th January 2009, 16:02
And to get a VC-1 source filter that supports random access. :)

Guest
4th January 2009, 16:09
I'm not a programmer but are there any plans for down the line, having the GPU handle cropping and resizing as well? Thanks for your test results and the information about screensavers. I will ask Nvidia about your question above.

Guest
4th January 2009, 16:09
I've noticed two small errors in DGAVCIndex (and NV) User Manuals Thank you for pointing these out.

Guest
4th January 2009, 16:10
The d2v files included the colorimetry info. Is this information also included in the dga files? It's shown in the info dialog during the project creation, but I cannot find it in the dga file... It's not in the DGA file but it is in the log file.

yesgrey
4th January 2009, 17:27
It's not in the DGA file but it is in the log file.

Thanks. I think it would be safer to also put it in the dga, in case we delete the log... but ok, I just have to be carefull and only delete the log after all the work has been done.:)

hajj_3
4th January 2009, 18:39
has development started on an ATI version of this app yet neuron or are you waiting for their equivalent of CUDA to improve or waiting for API's that will allow you to create an ATI version?

This app is looking very nice indeed.

Guest
4th January 2009, 19:04
has development started on an ATI version of this app yet neuron or are you waiting for their equivalent of CUDA to improve or waiting for API's that will allow you to create an ATI version? How do you expect me to do anything in the absence of an API?

hajj_3
4th January 2009, 19:17
ahh, didnt realise they hadn't released the API's, are they planning to release them or have they not released any info about their plans with API's?

Guest
4th January 2009, 19:22
Off topic for this thread and you'd have to ask them. I am not privy to their business plan.

Chefkoch_ico
6th January 2009, 09:24
regarding license.

I just donated and got the license.

I am going to return my new graphics card and get a different one ("Point of View" vs EVGA, both 9600GT) since its too loud and the fan not controlable. Not automatic or by software.

Do I need a new license for it afterwards?

Best regards

Guest
6th January 2009, 14:49
You won't need a new license.

BTW, my BFG 9600GT was making noise too, but it was a subtle "chirping". It turned out to be a small piezoelectric speaker intended to alarm an undervoltage condition. I'm sure there was no undervoltage. Anyway, I just covered the little exit hole of the speaker and it's inaudible now.

Guest
9th January 2009, 21:39
1. Added support for the new audio types found on BluRay disks.

2. Improved the audio delay calculation.

3. Removed the Treat I as IDR option as it is now always enabled.

4. Machine ID now not tied to system partition, so machine ID changes will be rare.

5. Updated the CUVID server to 1.0.3.

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

madshi
10th January 2009, 08:23
3. Removed the Treat I as IDR option as it is now always enabled.
Just for my own interest: Doesn't this result in artifacts during seeking? I mean, I've been told that if you seek to an I (non IDR) frame with h264, you're in danger of getting artifacts. Aren't we supposed to look for "recovery point SEIs"?

Guest
10th January 2009, 08:56
If the GOP is open, then the decoder backs off by one GOP and then decodes enough frames to get back to the seeked-to frame. This is exactly the same thing done in DGMPGDec.

rica
11th January 2009, 03:24
Neuron,
you've given me a lot of homework to do at the weekend :)

Guest
11th January 2009, 03:29
rica, you've helped me so much in the past with your testing and feedback, I want to acknowledge that. :thanks:

rica
11th January 2009, 03:43
You are welcome my friend.
I always appreciated your endless efforts; to be grateful is on my side.
Thanks a lot one more time btw.
I gonna try to do my best.

Denner
12th January 2009, 11:53
Hi.

Stumbled upon this thread in my search for quicker x264 encoding, and this might help me do that, am I correct ?

If i understand correctly DGAVCDecNV is a filter ( or is it a program ) that will frame serve for me leaving all of my Intel quad core's processing power free to do the x264 encoding, and in that way help me achieve faster encoding speeds ?

I got a Geforce 9400 GT card, but is that a fast enough graphics card or wont it help me at all ?

I will gladly donate ( pay ) for the filter, but I am a little concerned that I have misunderstood what DGAVCDecNV is and how to use it :confused:

Guest
12th January 2009, 14:50
It's discussed several times in this thread. Bottom line: speedup will be quite modest on fast systems because decoding requires a small fraction of the total decoding+encoding load. On some slower systems it can give a useful speedup. The motivation for using the GPU is to get correct decoding, access to the PureVideo postprocessor, and support for VC1.

Denner
12th January 2009, 16:21
Ok I am sorry if it was a stupid question, just wanted to ask before I buy it from you :p

rica
12th January 2009, 20:41
Denner, i can suggest you to use DGAVC so as to have an idea.
It is a free, software based decoder+frame Server using Libav Codec instead of nVidia's HW based decoder.
I'm about to open a topic on BD retranscoding via DGAVCNV and DGVC1NV.

Denner
12th January 2009, 22:43
Cool and thanks, I will try it out :)

Guest
16th January 2009, 05:51
It's early days and all that, but I thought you might be interested to know that I just decoded and displayed my first MKV file with AVC video in DGAVCIndexNV. I adapted low-level MKV parsing code provided to me by Haali. :thanks:

There's still a lot of work to do, especially with DGAVCDecodeNV and audio demuxing, but it looks like there's nothing to stop me from implementing full MKV support. With DivX backing MKV+AVC now, I think it will be a useful addition to the DG tools.

In case you're wondering, I made my own MKV file with mkvtoolnix. :)

Sharc
16th January 2009, 07:28
.... but it looks like there's nothing to stop me from implementing full MKV support. With DivX backing MKV+AVC now, I think it will be a useful addition to the DG tools.

In case you're wondering, I made my own MKV file with mkvtoolnix. :)
Cool, thanks!

ultratoto14
16th January 2009, 18:30
It's early days and all that, but I thought you might be interested to know that I just decoded and displayed my first MKV file with AVC video in DGAVCIndexNV. I adapted low-level MKV parsing code provided to me by Haali. :thanks:

There's still a lot of work to do, especially with DGAVCDecodeNV and audio demuxing, but it looks like there's nothing to stop me from implementing full MKV support. With DivX backing MKV+AVC now, I think it will be a useful addition to the DG tools.

In case you're wondering, I made my own MKV file with mkvtoolnix. :)

Congratulations.

rica
17th January 2009, 20:58
It's early days and all that, but I thought you might be interested to know that I just decoded and displayed my first MKV file with AVC video in DGAVCIndexNV.


Congrats :thanks:

Clumpco
19th January 2009, 08:02
Donald, please credit me with a little more intelligence than that.....

..... All this makes capturing/encoding a very linear process and reduces the benefit of the high framerates obtained.
I cannot capture from a sat card while indexing/encoding.
I cannot index another file while encoding or capturing.
I cannot edit a .ts while indexing/encoding.
I have come back to my original post to apologise for being rather shirty. I was struggling with glitches, sync problems and generally being a bear of little brain at the time. I'm sorry.
The server/decoder is excellent software and I would be lost without it.

Since I posted I have changed my sat card (got a Skystar HD2 - highly recommendable) and this new one will work in the bottom PCI slot. The previous one would only work in the 2nd slot which put it right next to my double-width 9600GT. This was leading to overheating problems which explains why I could not index/frameserve while capturing - obviously the extra heat from the 9600GT engine during this operation was just enough to cause the sat card to glitch seriously.

Keep up the good work!

xopowo
19th January 2009, 09:22
I have come back to my original post to apologise for being rather shirty. I was struggling with glitches, sync problems and generally being a bear of little brain at the time. I'm sorry.
The server/decoder is excellent software and I would be lost without it.

Since I posted I have changed my sat card (got a Skystar HD2 - highly recommendable) and this new one will work in the bottom PCI slot. The previous one would only work in the 2nd slot which put it right next to my double-width 9600GT. This was leading to overheating problems which explains why I could not index/frameserve while capturing - obviously the extra heat from the 9600GT engine during this operation was just enough to cause the sat card to glitch seriously.

Keep up the good work!

Don't sweat it man. I've been using this since day one of its release and I can't live without it either. There is one thing in particular that bugs the crap out of me that happens with CUVIDServer, but I just deal with it since there is no other option. So, I know where you're coming from. I guess the next time when you get frustrated, make sure that what you "can" and "cannot" do is troubleshot at your level before you blame the software.

The issue I have with CUVIDServer is 99.999% soimething with it though, or so I would think :)

popper
19th January 2009, 12:12
ahh, didnt realise they hadn't released the API's, are they planning to release them or have they not released any info about their plans with API's?

its OT here (you can open up and directly link a new thread related to ATI UVD ASIC use if you like)but for a one time reference here, i asked Bridgeman about this UVD ASIC subject and pointed him to neuron2's and BetaBoys VS2 ASIC API work....heres the basic information known at this time...

"Mr bridgeman the ATI/AMD Executive in charge of the current code/documentation releases and ATI market push, has been asked to work with the open code initatives and provide the equivanent NV/VS2 ATI UVD API documentation were he stated in the very professional developer relations manner last week

"bridgeman:we are going to look into opening up UVD, I just can't make any commitments until we have actually gone through the investigation and it won't be quick. ...."
and he confirmed ATT after i asked will it take months, "bridgeman:For open source, yes,"

the one point of light at the moment (but probably not relevant in this case unless the open/closed code developers of NV cuda/VS2 apps have a personal interest in also producing UVD code in the future for [non] windows platform), is this, Bridgeman also said "I expect fglrx will have it sooner" when refering to that long month on months wait for the open source vendors.

potentially that means any org or business looking to use and/or port the closed ATI/AMD fglrx driver or use any of the "UVD" capabilitys could potentialy get hold of the required API documentation, work with Bridgeman, and impliment it into their products...."

CruNcher
19th January 2009, 12:50
Popper it's typical for the Industry it's slow (@ releasing stuff they have developed the last 2 years and finished laying around) and fooling the consumer when ever it can, but Nvidia is currently far far ahead of ATI they even run them over in Video which is was ATIs dominating Market space for years they run over ATIs Xilieon platform also with Tegra @ it's back and the Ion Platform too and Ati has Paper laying around and talks about "we investigate" that's pathetic just pathetic it shows that this company is not able currently to react fast enough to the market and it's competitors, i wonder how his explanation impacted their share on wall street :D

Guest
19th January 2009, 14:12
There is one thing in particular that bugs the crap out of me that happens with CUVIDServer, but I just deal with it since there is no other option. What is it about the server that bugs you?

rack04
19th January 2009, 14:23
Only "problem" that I've noticed with CUVIDServer is that if I choose to cancel an encode CUVIDServer hangs. I have to ctrl-alt-del to get it to close.

Esurnir
19th January 2009, 22:12
Only "problem" that I've noticed with CUVIDServer is that if I choose to cancel an encode CUVIDServer hangs. I have to ctrl-alt-del to get it to close.

I confirm, when you stop x264 (by a -hard stop- like two time control C and not let it end "gently") cuvidserver hang and no other encode can be done. Happen in my case too.

menlvd
23rd January 2009, 23:21
neuron2
any chance to get worked in xp x64 CUVIDServer?

Guest
23rd January 2009, 23:54
I don't have XP 64.

Audionut
24th January 2009, 10:35
Do you have a changelog from 1.0.8 to 1.0.10?

edit: cuvidserver works fine in vista and windows 7 64bit. Or are you requesting a 64bit build menlvd?

edit: nevermind, it's in the release notes. Thanks Don.

menlvd
24th January 2009, 14:19
Do you have a changelog from 1.0.8 to 1.0.10?

edit: cuvidserver works fine in vista and windows 7 64bit. Or are you requesting a 64bit build menlvd?

edit: nevermind, it's in the release notes. Thanks Don.

no, in my wxp x64 sp2 even don't start :(

jeffy
24th January 2009, 14:44
@menlvd: Do you have a supported GPU?

menlvd
24th January 2009, 14:50
@menlvd: Do you have a supported GPU?

eepp, dgavcindexnv working fine, using 181.22 forceware drv

Guest
24th January 2009, 17:57
Good news...MKV support for video is working all the way through to frame accurate serving via DGAVCDecodeNV.

I want to do some regression testing for ES and TS and then I'll make a test release.

Then I need to add audio support.

blubberbirne
24th January 2009, 19:29
good news neuron2

deets
25th January 2009, 10:55
this is the only bit of kit i found that can handle itvhd streams, thanks very much :)

Guest
25th January 2009, 16:56
Here's a test version for MKV support. No audio yet. Feedback will be appreciated. Use the same CUVID server and nvcuvid.dll as for 1.0.10. This version uses a revised DGA file format, so you'll have to remake your existing projects if you want to open them with this version.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

When reporting problems, please provide a stream sample that I can use to duplicate the issue.

Deinorius
25th January 2009, 17:11
Am I right, that you are testing it with NVversion and after then adopting it to the libav-version?

Guest
25th January 2009, 17:26
I haven't decided yet. I don't know if I want to do anything more with the libavcodec version. I'd rather spend my time making a version that works with CoreAVC.

Deinorius
25th January 2009, 17:34
If libavcodec or CoreAVC (I'd love it :) ) I don't care. But like much more others I don't own a CUDA featuring nvidia card. This is the critical part of the story.

woah!
25th January 2009, 20:33
mkv processing seems ok even though it seems to choose 29.97fps unless forced to 23.976fps which the mkv is (original avc video from a bluray + 1 audio stream). also dont skip through the mkv with the slider, it will hang. just load the mkv and process it straight away. you cant skip through the finished avs script either.

rebkell
25th January 2009, 20:50
I haven't decided yet. I don't know if I want to do anything more with the libavcodec version. I'd rather spend my time making a version that works with CoreAVC.

That would be nice, I'm happy with my ATI cards, and I would definitely be all over a CoreAVC app.

Guest
25th January 2009, 23:17
mkv processing seems ok even though it seems to choose 29.97fps unless forced to 23.976fps which the mkv is (original avc video from a bluray + 1 audio stream). also dont skip through the mkv with the slider, it will hang. just load the mkv and process it straight away. you cant skip through the finished avs script either. How can I fix it if you don't give me a stream?

I even asked explicitly for that in my post!

Guest
25th January 2009, 23:27
MKV test version is withdrawn for further testing.

rica
25th January 2009, 23:37
neuron,
I've been busy with reinstalling everything today so i haven't found the opportunity giving it a go.
I was about to be ready to try.

Guest
26th January 2009, 00:14
Thanks. I found it's broken for GOPs smaller than 16 frames. In the shop for repairs...

rica
26th January 2009, 00:32
Awaiting, thanks.

Guest
27th January 2009, 02:00
OK, the MKV test version is back on the road:

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

Please provide test streams with your problem reports.

I added some pop-up messages to notify you of possible problem conditions. Please let me know if you see any of them.

xopowo
27th January 2009, 02:53
What is it about the server that bugs you?


When I load my avs script into vdubmod (I have to have to server running). Say I make frame cuts, then close the file and then reopen it to have it open honoring the cuts. CUVIDServer will keep frames in memory.. So, if there was a video frame (non-black) in memory, than if I start to encode from there, that frame, even if not included with the cuts that I made; will be part of the final encode. Don't know why it does that, but it does it every time.

The only way around this that I know of is to make cuts in vdubmod, close the app, close cuvidserver, reopen the server, then vdubmod, load the avs and then it's good. I don't know if this is happening to anyone else, but it happens to me everytime.

Guest
27th January 2009, 03:17
Say I make frame cuts, then close the file and then reopen it to have it open honoring the cuts. I don't use VirtualDubMod so I ask this: Why do you have to close and re-open the file? How do you close it?

When you exit VDM, the filter gets deinstantiated, which should clear the CUVID server. I don't know what happens if you just do File/Close video file. If VDM doesn't deinstantiate the source filter, then there can be trouble.

Guest
27th January 2009, 05:30
I've updated the Nvidia Development dialog to cover the period of the VC1 development and the ongoing MKV support.

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

The updated material starts here:

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

xopowo
27th January 2009, 07:44
I don't use VirtualDubMod so I ask this: Why do you have to close and re-open the file? How do you close it?

When you exit VDM, the filter gets deinstantiated, which should clear the CUVID server. I don't know what happens if you just do File/Close video file. If VDM doesn't deinstantiate the source filter, then there can be trouble.


Perhaps "cuts" wasn't the best way in which to describe it. When I make trims would be more appropriate. Then, when the trims are saved into the avs file, then I re-open the file so that the script will load with the applicable trims. When this happens, if there was a video frame that was viewed with the server running, then even though I load the script again with the appropriate trims, that video frame is stuck in memory somehow and it will actually encode into the video even if that particular frame is outside of the boundary of the trims that were specified.

Does that perhaps explain it better? It makes sense to me, but that obviously does nobody but myself any good.

**edit** If I hit file/close, or just re-open the avs with the trims in it, or if I physically close the application and re-launch it ... this particular anomoly happens each time. I 'have' to exit the cuvid server and relaunch it to clear any frames that it may have in memory.

Guest
27th January 2009, 07:49
I guess you are using the AVS script editor?

You should tell me exactly what menu items you select, etc., as I am not a user of that and when you say "I re-open the file" that means nothing to me because I don't know what you are actually doing in the program to make that happen.

I also don't know how VDM refreshed the AVS script and whether it deinstantiates the filter. If it isn't deinstantiating it to reload the script then it won't work. I'm willing to work to make third party apps work right with the server, but VDM is abandoned for a long time.

Guest
27th January 2009, 07:51
Do you happen to have the CUVID deinterlacer enabled?

Sharc
27th January 2009, 20:29
...... I added some pop-up messages to notify you of possible problem conditions. Please let me know if you see any of them.
Spares cues in this Matroska file. Seeking may be slow.

Guest
27th January 2009, 21:36
And is seeking slow?

rica
27th January 2009, 21:46
I get this:

http://img338.imageshack.us/img338/6286/neuronmkv01wq2.th.jpg (http://img338.imageshack.us/my.php?image=neuronmkv01wq2.jpg)

with this mkv:

http://www.sendspace.com/file/hsogkj

That is working with TMT and MPC-HC.

The method i used:

On the fly cut from original disc as is with head.exe.
Remux video to mkv with eac3to or GraphStudio. (both files don't work.)

_ _ _ _

Guest
27th January 2009, 21:57
"This" doesn't help me because I cannot see the image through my firewall. Can you give it to me in words?

Eragon4ever
27th January 2009, 22:01
"Timecode tracking failure."

rica
27th January 2009, 22:06
I put an attachment to my previous post.

Guest
27th January 2009, 22:13
Redownload the version. I updated it to fix that yesterday evening.

Sharc
27th January 2009, 22:27
And is seeking slow?
Yes, slow.

rica
27th January 2009, 22:29
Redownload the version. I updated it to fix that yesterday evening.

OK, i've revized; thanks.

rica
27th January 2009, 22:44
:)What is next; it is DGVC1NV's turn?

Guest
27th January 2009, 22:57
Patience, my friend. I have to solve a few issues and add audio support first.

~bT~
27th January 2009, 23:41
And is seeking slow?

i cant seek at all. would u like a sample?

edit: after i saved the project, it let me seek.

i then tried to open another mkv and it crashed. had to restart cuvid server. loaded the mkv again, no seeking..saved the project, seeking works :)

rica
28th January 2009, 00:08
I have to solve a few issues and add audio support first.

Flac is gonna be an additional audio file which you will support as well with mkv decoding; i guess?

Guest
28th January 2009, 01:31
I found the cause of the long hang on some files. Please wait for a fix before testing further.

I plan to demux all audio types.

rica
28th January 2009, 02:06
BTW, i've been awaiting you to make a CUDA encoder tool since i know you are the best in those CUDA things.
Still no hope on Cyberlink's Power Director 7 to me.

Guest
28th January 2009, 05:07
I fixed the seeking in the MKV test version. It should be really fast now without any hangs.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

I'm learning way more than I wanted to know about Matroska files. :)

A CUDA encoder is a massive project. Ask Dark_Shikari about it. ;)

Audionut
28th January 2009, 05:29
A CUDA encoder is a massive project. Ask Dark_Shikari about it. ;)

I'd search for his previous responses before doing that. ;)

Sagekilla
28th January 2009, 06:12
I'd not even ask about a CUDA encoder to begin with. Discussion of it has popped up -many- times and it's a no go because of the extensive resources required. Unless you have a lot of coders who are willing to put time and effort into optimizing code for CUDA, it's not happening. IIRC, one huge issue Dark Shikari had was getting functions to run fast enough to make it worthwhile.

@neuron2: Thanks for adding mkv support :) No need for me to demux a mkv for doing comparisons of my encodes anymore!

yeye69
28th January 2009, 15:07
How about Linux version?:)

Inventive Software
28th January 2009, 15:53
How about Linux version?:)

Care to port AviSynth and neuron2's DG toolset to Linux? ;)

Guest
28th January 2009, 16:10
Port DirectShow too while you're at it because NVCUVID needs it.

Inventive Software
28th January 2009, 17:13
Port DirectShow too while you're at it because NVCUVID needs it.

What? No stand-alone? Poor NVIDIA. :(

Guest
28th January 2009, 17:34
They're working on disconnecting it from DirectShow.

Guest
29th January 2009, 15:10
I've added audio demuxing. Note that some formats are not supported yet. If you hit one of them you'll get a popup asking you to send me a sample. :) I need samples to implement the support.

Be sure to update with the included nvcuvid.dll.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

kemuri-_9
29th January 2009, 15:45
I've added audio demuxing. Note that some formats are not supported yet. If you hit one of them you'll get a popup asking you to send me a sample. :) I need samples to implement the support.

which ones don't you have supported yet? might be easier to
A. compare against a non-supported list and give you samples for the ones on the list rather than trying to hunt
B. compare against a supported list and give you samples for things not on the list.

i imagine B would be easier to do as you know what you've implemented and may forget listing some formats for A.

Guest
29th January 2009, 16:15
The documentation of audio CodecIDs is incomplete, so by hunting I will find out ones that are in use but not documented. Anyway, here are the ones I currently support (because I have samples):

A_AC3
A_MPEG/L1
A_MPEG/L2
A_MPEG/L3
A_DTS

Kurtnoise
29th January 2009, 18:23
A_AAC
A_EAC3
A_FLAC
A_PCM/INT/LIT
A_REAL
A_TTA1
A_VORBIS
A_WAVPACK4

http://haali.cs.msu.ru/mkv/codecs.pdf

http://samples.mplayerhq.hu/Matroska/
http://www.bunkus.org/videotools/mkvtoolnix/samples/

Guest
30th January 2009, 00:35
Added support for A_AAC in MKV files.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

What's the priority on the remaining formats?

rica
30th January 2009, 01:15
Added support for A_AAC in MKV files.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

What's the priority on the remaining formats?

I think ac3, dts, aac and flac is enough for mkv since DTS-HD and TrueHD are not supported by matroska for now.

Stream Type: Matroska
Profile: High
Level: 4.1
Frame Size: 1920x1080
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 23.976024 fps
Colorimetry: BT.709 [1]
Frame Structure: Frame
Frame Type: I
Coded Number: 257
Playback Number: 257
Frame Repeats: 0
Field Repeats: 0
Bitrate: 27.122
Bitrate (Avg): 13.526
Bitrate (Max): 27.122
Audio Stream: 1: A_FLAC 48000 6ch "und"
Elapsed: 0:00:00
Remain: 0:00:00
FPS:
Info: Finished!

For m2ts, all formats seem to be supported:

Stream Type: Transport [192]
Profile: High
Level: 4.1
Frame Size: 1920x1080
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 23.976024 fps
Colorimetry: BT.709 [1]
Frame Structure: Frame
Frame Type: I
Coded Number: 217
Playback Number: 217
Frame Repeats: 0
Field Repeats: 0
Bitrate: 35.124
Bitrate (Avg): 34.615
Bitrate (Max): 35.383
Audio Stream: 1100: DTS HDHR C+L+R+SL+SR 48 1536
Audio Stream: 1101: DTS C+L+R+SL+SR 48 768
Audio Stream: 1102: DTS C+L+R+SL+SR 48 768
Audio Stream: 1103: DTS C+L+R+SL+SR 48 768
Audio Stream: 1104: AC3 3/2 48 448
Elapsed: 0:00:01
Remain: 0:00:00
FPS:
Info: Finished!


Stream Type: Transport [192]
Profile: High
Level: 4.1
Frame Size: 1920x1080
SAR: 1:1
Display Size: 1920x1080
Frame Rate: 23.976024 fps
Colorimetry: BT.709 [1]
Frame Structure: Frame
Frame Type: I
Coded Number: 258
Playback Number: 258
Frame Repeats: 0
Field Repeats: 0
Bitrate: 27.123
Bitrate (Avg): 13.697
Bitrate (Max): 27.123
Audio Stream: 1100: TrueHD AC3 3/2 48 640
Audio Stream: 1101: AC3 3/2 48 640
Audio Stream: 1102: AC3 3/2 48 640
Audio Stream: 1103: AC3 3/2 48 640
Audio Stream: 1104: AC3 3/2 48 640
Audio Stream: 1105: AC3 2/0 48 192
Audio Stream: 1a00: E-AC3 2/0 48 192
Elapsed: 0:00:01
Remain: 0:00:00
FPS:
Info: Finished!

Thanks neuron.



_ _ _

Guest
30th January 2009, 01:25
Added support for A_FLAC in MKV files.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011test.zip

I'd like to release this, so please beat on it.

rica
30th January 2009, 01:37
Sorry, but i haven't understood the difference with previous version?
That already gave me the flac.

Guest
30th January 2009, 01:45
No, the previous version displayed FLAC as the detected audio type, but if you tried to demux it, you got an error. With the latest version you get a demuxed FLAC file. :)

rica
30th January 2009, 02:15
Please check this:

http://www.sendspace.com/file/gvhic6

Guest
30th January 2009, 05:57
I'd really appreciate it if you'd say if you think there's a problem and what it is.

You may need to download it again as I updated it shortly after posting the new version.

The demuxed .flac plays fine in WinAmp.

Be aware that I demux to raw flac, while mkvextract by default puts it into an ogg wrapper. Do you need it to be in an ogg wrapper or are you drawing my attention to something else?

rica
30th January 2009, 11:50
I couldn't get demuxed flac; that was the problem.
So i should reload DGAVCNV; thanks.

Guest
30th January 2009, 14:46
Both versions would have demuxed the FLAC.

rica
30th January 2009, 18:12
Reloaded again; it's working :thanks:

Guest
30th January 2009, 19:27
* Fixed a bug in the handling of multiple slice frames. This affected the stream provided by rica, so update to this version for proper handling of the stream.

* Added CLI support for audio demuxing for MKV files.

* Updated the users manuals.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011rc1.zip

Snowknight26
30th January 2009, 20:10
DTS-HD is supported by mkv, contrary to what rica says, so maybe that one?

rica
31st January 2009, 19:59
DTS-HD is supported by mkv, contrary to what rica says, so maybe that one?

What???

rica
31st January 2009, 22:24
DTS-HD is supported by mkv, contrary to what rica says, so maybe that one?

Interesting.
Thanks snow; dtsHD-HR and dtsHD-MA is supported by mkvmergegui.
Here is the method i used:
Demux/remux video to mkv and demux audio to dts with eac3to 3.0.5 and remux to mkv with mkvmergegui 2.4.2.
Here are the results:

General
Complete name : C:\Users\rica\Desktop\TEST\video_dtsHD.mkv
Format : Matroska
File size : 37.0 MiB
Duration : 8s 50ms
Overall bit rate : 38.6 Mbps
Encoded date : UTC 2009-01-31 19:13:05
Writing application : mkvmerge v2.4.2 ('Oh My God') built on Jan 18 2009 17:30:28
Writing library : libebml v0.7.7 + libmatroska v0.8.1

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 4 frames
Muxing mode : Container profile=Unknown@0.0
Codec ID : V_MPEG4/ISO/AVC
Duration : 8s 41ms
Bit rate : 34.0 Mbps
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16/9
Frame rate : 23.976 fps
Standard : NTSC
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive
Bits/(Pixel*Frame) : 0.684

Audio
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Format profile : HRA
Codec ID : A_DTS
Duration : 8s 50ms
Bit rate mode : Constant
Bit rate : 3 045 Kbps
Channel(s) : 6 channels
Channel positions : Front: L C R, Surround: L R, LFE
Sampling rate : 48.0 KHz
Resolution : 24 bits

General
Complete name : C:\video_dtsMA.mkv
Format : Matroska
File size : 23.2 MiB
Duration : 9s 426ms
Overall bit rate : 20.6 Mbps
Encoded date : UTC 2009-01-31 20:00:47
Writing application : mkvmerge v2.4.2 ('Oh My God') built on Jan 18 2009 17:30:28
Writing library : libebml v0.7.7 + libmatroska v0.8.1

Video
ID : 1
Format : AVC
Format/Info : Advanced Video Codec
Format profile : High@L4.1
Format settings, CABAC : Yes
Format settings, ReFrames : 2 frames
Muxing mode : Container profile=Unknown@0.0
Codec ID : V_MPEG4/ISO/AVC
Duration : 9s 416ms
Width : 1 920 pixels
Height : 1 080 pixels
Display aspect ratio : 16/9
Frame rate : 23.976 fps
Resolution : 24 bits
Colorimetry : 4:2:0
Scan type : Progressive

Audio
ID : 2
Format : DTS
Format/Info : Digital Theater Systems
Format profile : MA
Codec ID : A_DTS
Duration : 9s 426ms
Bit rate mode : Variable
Channel(s) : 6 channels
Channel positions : Front: L C R, Surround: L R, LFE
Sampling rate : 48.0 KHz
Resolution : 24 bits



Here are the sample files:

dtshd-HR:

http://www.mediafire.com/?sharekey=a6135ffd0b243e3067cd7f7bd65f7eef7abc06429f53ec11c95965eaa7bc68bc

dtshd-MA:

http://www.sendspace.com/file/g9fzhm

Previous test version extracts those audio files. Here it is: (you have to put your own licence.txt instead of the fake one i put.)

[link deleted]

while 1.0.11 rc1 can not.
_ _ _ _

Guest
1st February 2009, 03:52
I fixed the problem with audio demuxing. Please redownload rc1.

http://neuron2.net/dgavcdecnv/dgavcdecnv1011rc1.zip

Thanks for pointing it out, rica.

rica
1st February 2009, 11:33
It's working now; thanks :)

xopowo
1st February 2009, 18:20
The serial number that was generated for me when I bought the license works ... on WinXP. Now that I'm using Win7 (xp is jacked up), the same serial won't work. How does one generate a new number? Or is it just a matter of asking? I'm using the same computer, so don't know why anything would be different, but who knows.

Esurnir
1st February 2009, 21:35
The serial number that was generated for me when I bought the license works ... on WinXP. Now that I'm using Win7 (xp is jacked up), the same serial won't work. How does one generate a new number? Or is it just a matter of asking? I'm using the same computer, so don't know why anything would be different, but who knows.

Just ask Neuron2 again, he was kind enough to send me a serial after my desktop machine decided to say good buy to this cruel world.

madshi
2nd February 2009, 08:54
@neuron2, I've just added MKV demuxing to eac3to, too. You may want to peek into the eac3to thread once in a while cause users are posting funny MKV samples there to keep me busy. Just in case you're interested in collecting more strange samples... :)

Guest
5th February 2009, 03:14
* Added support for Matroska (MKV) input streams.

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

~bT~
5th February 2009, 19:35
^ thanks Don.

rica
5th February 2009, 22:36
Thanks neuron :)

meatwad
6th February 2009, 13:48
Has anyone been able to use the GPU deinterlacer with StaxRip? The problem is that I can't alter the avs file to add the line to AVCSource. Even if I try to manually edit the avs file StaxRip still won't process it. I'll ask in the StaxRip Forum as well if no one here has been successful.

Could there possibly be an alternate form of syntax I could use to get the Nvidia Deinterlacer to work? I can easily add it in the line below it like any other function, just not on the AVCSource line:

AVCSource("%source_file%")
deinterlace=true

Naturally that doesn't deinterlace, but it crashes if I try to alter it to this:

AVCSource("project.dga", deinterlace=true)

ultratoto14
6th February 2009, 14:37
it's deinterlace=1

AVCSource("project.dga", deinterlace=1)

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

meatwad
6th February 2009, 15:31
I saw that when I was going over the manual, but it totally slipped my mind. Thanks--I hope it works.

ultratoto14
6th February 2009, 18:08
@neuron

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

In the samples, there is

AVCSource("project.dga", deinterlace=true)

instead of

AVCSource("project.dga", deinterlace=1)

Guest
6th February 2009, 18:22
Fixed. Thank you for pointing it out. :thanks:

Guest
7th February 2009, 03:03
I've updated the CUVID server and client to support MPEG1 and MPEG2 video.

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

You can probably guess what's coming next.

After that my plan is to combine all three variants into one. Then I will add "output trimmed TS" as well as multiple ranges.

woah!
7th February 2009, 06:47
I've updated the CUVID server and client to support MPEG1 and MPEG2 video.

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

You can probably guess what's coming next.

After that my plan is to combine all three variants into one. Then I will add "output trimmed TS" as well as multiple ranges.

seeing only source code in the zip file for server version?

Guest
7th February 2009, 07:02
I added the EXE so please re-download it.

rica
7th February 2009, 19:05
I've updated the CUVID server and client to support MPEG1 and MPEG2 video.
****
You can probably guess what's coming next.
***
Then I will add "output trimmed TS" as well as multiple ranges.

Congrats :)

Sagekilla
7th February 2009, 23:25
Thanks for all your work neuron2! Looking forward to become a supporter as soon as I get out of my poor-college-student situation ;)

laserfan
8th February 2009, 16:44
I've updated the CUVID server and client to support MPEG1 and MPEG2 video... You can probably guess what's coming next.

After that my plan is to combine all three variants into one.I'm surprised there hasn't been more reaction to this! Although I have (finally) learned when-and-how to invoke DGIndex.exe and DGAVCIndexNV.exe and DGVC1IndexNV.exe and CUVIDServer.exe and which .d2v or .dgv or .dga goes-with-which it will be great if any UI streamlining can be done, so THANKS DG IN ADVANCE! Sign me up for any alphas-or-betas! :)

xopowo
9th February 2009, 04:48
Is there a memory leak in CUVIDServer 1.0.4? I'm using Win 7 64-bit and encoding with x264.exe and the memory used by the server has grown from 262mb to now 690mb in 19 minutes. I only have 4gb of memory. Is 64gb recommended :)

avs is just "1.dga", deinterlace=1)

not doing anything fancy ... decimating after that, no cropping or resize

I was looking at x264.exe memory usage ... cuvidserver passed it ... now, 22 minutes into the encode, it's at 867mb!

Guest
9th February 2009, 05:40
Is there a memory leak in CUVIDServer 1.0.4? I'm using Win 7 64-bit and encoding with x264.exe and the memory used by the server has grown from 262mb to now 690mb in 19 minutes. I only have 4gb of memory. Is 64gb recommended :)

avs is just "1.dga", deinterlace=1)

not doing anything fancy ... decimating after that, no cropping or resize

I was looking at x264.exe memory usage ... cuvidserver passed it ... now, 22 minutes into the encode, it's at 867mb! Funny you should ask. I just reported that to Nvidia today. I'll keep you informed.

Can I have your full script please?

I thought it only happens with random access. Decimation could force that.

Guest
10th February 2009, 03:34
The memory leak has been fixed. All NV tools have been updated with the fixed nvcuvid.dll, so redownload any of them to get the fixed DLL.

@xopowo

Please advise if this fixes your issue.

Deinorius
11th February 2009, 21:12
@neuron2
The Core Team just updated CoreAVC to 1.9.0.0 (http://www.coreavc.com/index.php?option=com_content&task=view&id=27&Itemid=1) with CUDA-Support. Would be interesting, if it's more efficient than VP2-Part.
I never read it but is it possible for DGAVCIndexNV to index LV 5.0/5.1 Streams?

Rectal Prolapse
11th February 2009, 22:01
I am pretty sure CoreAVC CUDA still requires a videocard with VP2 support. Someone I know has a G80 NVIDIA card (8800GTS 640) and CUDA is not selectable in CoreAVC 1.9 - so that would support that theory.

~bT~
11th February 2009, 22:04
^ i believe u are correct.. vp2 or higher is needed for cuda.

Deinorius
11th February 2009, 22:09
Damn, I hoped it could be more. So it's not really reasonable. The only sense it does for me to decode non-DXVA compatible Streams, but that's it. At least other DXVA Video decoder can use ATI UVD too.

Guest
12th February 2009, 00:49
I never read it but is it possible for DGAVCIndexNV to index LV 5.0/5.1 Streams? Yes, no problem.

Audionut
12th February 2009, 01:37
From the CoreAVC thread.

I think it would be better if DGAVCIndexNV didn't rely on nvcuvid.dll being in system32; the program location is stored in the .dga file so why can't DGAVCDecodeNV load nvcuvid.dll from there?

I do not have a copy of nvcuvid.dll anywhere on my comp other than dg***decodenv folders.
The closet I have is nvcuda.dll

edit: and everything works fine that way too.

Guest
12th February 2009, 03:42
Both DGXXXIndexNV.exe and CUVIDServer.exe must be able to find nvcuvid.dll. DGXXXDecodeNV.dll does not need it and so is irrelevant. Thus, the two EXEs must see the DLL via the Windows DLL search path:

http://msdn.microsoft.com/en-us/library/7d83bc18(VS.80).aspx

If you have those two EXE's in the same directory with nvcuvid.dll, everything will be fine.

It is reasonable to have the CUVID Server in its own directory, as well as to have the DG tool variants in their own directories. That is why I recommended to put nvcuvid.dll in system32, so that multiple copies of it are not required.

I will give some thought to a solution that doesn't require multiple copies and doesn't overwrite the version installed by the Nvidia driver install. Ideas are welcome.

~bT~
12th February 2009, 10:38
i installed this driver: 181.20_geforce_winvista_32bit_international_whql

when i moved nvcuvid.dll to system32, it never overwrote anything.. :confused:

squid_80
12th February 2009, 10:57
i installed this driver: 181.20_geforce_winvista_32bit_international_whql

when i moved nvcuvid.dll to system32, it never overwrote anything.. :confused:
All nvidia driver versions after 181.20 should include nvcuvid.dll.

~bT~
12th February 2009, 11:18
^ i'm a 100% sure it didn't coz i was waiting for the overwrite confirmation to pop up.

or is it card dependant? i have 8600gs.

squid_80
12th February 2009, 11:49
^ i'm a 100% sure it didn't coz i was waiting for the overwrite confirmation to pop up.

or is it card dependant? i have 8600gs.

All nvidia driver versions AFTER 181.20 should include nvcuvid.dll.

.....

~bT~
12th February 2009, 11:56
^ lol, gotcha. so we are both correct :p

Audionut
12th February 2009, 14:08
All nvidia driver versions after 181.20 should include nvcuvid.dll.

They don't. I've installed 181.21, 181.22 and an old 185.xx beta.

None have included it.

I will give some thought to a solution that doesn't require multiple copies and doesn't overwrite the version installed by the Nvidia driver install. Ideas are welcome.

My l33t programing skills are showing here.
Can you include the dll into the exe's?

Aren't you combing all 3 decodeNV's into the same exe? Then you would only have the 1 exe and 1 dll.

Can you run a check on the version of the dll in system32 folder and overwrite with your copy if newer?

Create installers. Overwrite dll in install folder if its older than the new decodenv being installed.


I really don't see the problem though. Download zip, Extract, run exe.

.

menlvd
12th February 2009, 14:21
what can be wrong
last dgavcdecnv
sys win7 x64
drv 181.22
using 2 pass encoding
1 pass processed fine, but 2 even start (w/o manual close and starting again CUVIDServer.exe)
in sys wxp-sp3 32 everything is fine

Guest
12th February 2009, 14:40
What encoder and encoding GUI do you use?

menlvd
12th February 2009, 14:57
What encoder and encoding GUI do you use?

latest x264 1109 x64
not using gui
simple run from scrip or run from cmd
sample "D:\minep\me_gui\tools\x264\avs2yuv.exe" -raw "D:\temp\bd-taken\taken.dga.avs" - | "D:\minep\me_gui\tools\x264\x264.1109.kMod.core2.x64.exe" --pass 1 --bitrate 11000 --vbv-maxrate 40000 --vbv-bufsize 62500 --keyint 240 --min-keyint 1 --ref 5 --bframes 3 --deblock -3,-3 --partitions all --8x8dct --me umh --trellis 2 --subme 9 --weightb --mixed-refs --no-fast-pskip --threads 6 --no-psnr --no-ssim --level 4.1 --progress --aq-mode 1 --aq-strength 1.7 --psy-rd 1.1:0.1 --b-adapt 2 --output "d:\123.mkv" --sar 1:1 --direct auto --no-dct-decimate --b-pyramid --qpmax 35 --qcomp 1 --qpmin 5 --ratetol 3 --merange 24 --pbratio 1.2 --ipratio 1.3 --stats "d:\stats.stats" - 1920x816
and then try to start second pass but no progress w/o restart cuvidsrv
will try install latest forceware 182.05, but i'll don't think thats solve problem

Guest
13th February 2009, 02:36
1. When serving video, replace copies of leading orphaned B frames with copies of the first decodable frame.

2. Fixed blocking on seeks with deinterlace=1.

3. Fixed false sync lock for M2TS files.

4. Fixed problem where stepping by GOP backward could wrap from the start of the file to the end of the file.

5. Closing the window while a play/preview is running caused a CUVID popup error. Fixed.

6. Enable "Disable Display" option only after a file is loaded. This prevents a crash scenario.

7. Fixed nvcuvid.dll memory leak.

8. Update CUVID Server to version 1.0.4.

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

Guest
13th February 2009, 02:40
@menlvd

I don't have win7 x64 so I'm not sure how to help you.

What happens without the avs2yuv.exe silliness? In other words, just open the script directly with x264.

squid_80
13th February 2009, 03:15
They don't. I've installed 181.21, 181.22 and an old 185.xx beta.

None have included it.
Hmm seems I missed noticing 181.22 had jumped from beta to offical. So any official drivers after 181.22 should include nvcuvid.dll.
I don't know where you've got the 185.xx beta from, sounds wrong to me since the beta driver released earlier this week is 182.05.

menlvd
13th February 2009, 06:06
@menlvd

I don't have win7 x64 so I'm not sure how to help you.

What happens without the avs2yuv.exe silliness? In other words, just open the script directly with x264.
w/o avs2yuv.exe run only x86 x264.exe - but no problem
seems to be a avsyuv produce bug that can cause broblem with cuvidsvr

xopowo
13th February 2009, 08:21
Unfortunately, I just replaced everything with the new version(s) and the memory leak is still incredibly bad :(

Here is the AVS script I'm using ...

LoadPlugin("C:\encode\Dlls\DGAVCDecodeNV.dll")
AVCSource("1.dga")
selecteven()

That's it. Nothing more when doing a 720p source to bring it back to 29.97fps from 59.97

OS - Windows 7 (64-bit) Build 7000
CPU - Intel Xeon x3360
Memory - 4GB DDR2 800
Video - nVidia GeForce 9600 GSO (768mb)
Avisynth - 2.57
VirtualDubMod 1.5.10.2 (virtualdub doesn't work for me)

7 minutes into the encode, and CUVIDServer.exe went from 23772k (at launch) to 644040k.

Longer encodes, the server crashes (when it eats about 1.7gb of memory). There is a dialogue box that pops up that just says "server" and an 'OK' button (nothing legible).

I don't know what to tell you other than even with the new version, it still leaks badly.

nvcuvid.dll has to be located in \Windows\System\ in order for it to work for me (as opposed to \system32\)

Let me know if you need more information.

I just tested the same exact avs file with VirtualDub version 1.8.8 (32-bit version) and the same exact results. CUVIDServer.exe crashed on that one 18:47 into the encode with memory at 1,688,596K ... yikes!

meatwad
13th February 2009, 10:36
xopowo, I believe it's a Windows 7 problem. I experienced the same thing with the 32 bit version. The same jobs in XP went through without a hitch.

Guest
13th February 2009, 14:27
xopowo, I believe it's a Windows 7 problem. Me too. I'll mention it to Nvidia to see what they think.

laserfan
13th February 2009, 17:00
I just had an unexpected result in an encoding: I had used eac3to to make an .mkv file, indexed it with v1.0.11 and re-encoded with x264, and my encode is "off" by 3 frames from the original, messing-up the I-frames I'd specified and thus my chapter marks. Puzzling over this I noticed my XP Pro x64 setup has your updated nvcuvid.dll in my SysWOW64 directory, but an older version from 16-Dec-08 in my system32 folder. Brand-new to 64-bit OS, I'd read that (counterintuitively) 32-bit dlls were to go into SysWOW64 and 64-bit into system32 (so the older nvcuvid.dll must likely be from my Nvidia 9600display card driver installation).

Should I have placed the 08-Feb-09 (new) nvcuvid.dll into system32 instead, replacing the one that's there? Trying to sort this before I re-run my encoding (8 hours) with the newer 1.0.12... :o

UPDATE: Well I put DG's nvcuvid.dll into system32 and rebooted and it didn't crash. Realized also that I run CUVID Server from its own directory so tried using procexp to ID which dll it was using. Can't tell--neither the Dec version nor DG's identifies itself in any way that I can tell. Guess if no one has advice for me I'll try 1.0.12 and do it again (hell I dunno if this has anything to do with frames being "off" anyway)...

UPDATE2: And in fact it doesn't seem to be the problem--I still am "off" by 3 frames. Going to start-over from scratch, extracting as .h264 not .mkv.

Still, would appreciate if someone knows if replacing nvcuvid.dll everywhere (sysWOW64, system32, every tool location) is the right thing to have done. That's where I'm at now.

Guest
14th February 2009, 01:00
Everybody please re-download 1.0.12. It had a bad bug in DGAVCDecodeNV.dll.

Guest
14th February 2009, 01:27
@laserfan

Put my nvcuvid.dll into the same directory as DGAVCIndexNV.exe. Also, put it in the same directory as CUVIDserver.exe, if that differs from the former. Then you won't have to put it in a system directory.

Regarding your three-frame discrepancy, redownload 1.0.12 and try with that. If it still occurs tell me how to duplicate it, providing a stream if necessary.

laserfan
14th February 2009, 02:08
Put my nvcuvid.dll into the same directory as DGAVCIndexNV.exe. Also, put it in the same directory as CUVIDserver.exe, if that differs from the former. Then you won't have to put it in a system directory.Thanks--I suspected maybe the .exes would take the "path of least resistance" to find the .dll but wasn't sure.

Re: 3 frames off, I have a couple other things to try (along w/your fixed version) and appreciate your offer of help!

jj666
14th February 2009, 08:31
They don't. I've installed 181.21, 181.22 and an old 185.xx beta.

None have included it.


The 185.20 driver was alpha quality and not officially released, there's a comment from a mod here that says it is not recommended for use by Nvidia due to broken functionality:

http://www.nvnews.net/vbulletin/showpost.php?p=1890381&postcount=28

Cheers,

-jj-

laserfan
14th February 2009, 20:24
Everybody please re-download 1.0.12. It had a bad bug in DGAVCDecodeNV.dll.My "3 frames off at start" problem is no more. Thanks for making this available on a Friday night!