Log in

View Full Version : DGAVCDecNV 1.0.13: GPU decoding on Nvidia


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

Audionut
4th June 2009, 12:53
What's the deal with directx on windows 2000? Can it be updated. Have you upgraded to the latest nvidia drivers too.

opieant
4th June 2009, 15:02
What's the deal with directx on windows 2000? Can it be updated. Have you upgraded to the latest nvidia drivers too.

Windows 2000 goes up to DirectX 9.0c just like XP. As for the nVidia drivers, generally just installing the latest XP drivers works fine. The release notes say "NVIDIA Display Driver for Windows 2000/XP" and the driver setup detects 2000 and says "NVIDIA Windows 2000 Display Drivers" at the top of the screen, so nVidia doesn't seem to have completely sworn off 2000 support just yet.

Only the very latest nVidia CUDA driver release (v185.85) shows any real signs of problems with 2000. It wouldn't install its control panel properly and led to a BSOD on startup. The startup BSOD problem could be worked around with the help of the "XP API Support Tool for Win2K" and the control panel probably could have been installed at that point too. Those issues are probably just a matter of nVidia recently deciding to call on XP API functions for some minor operations out of convenience and without realizing it breaks some support on 2000. The previous CUDA driver version (v181.20) installs and reboots fine except that the nVidia control panel application crashes on startup (no BSOD, just a normal application crash), but that is easily fixed by installing the user32.dll from the "XP API Support Tool for Win2K." From what I've experienced and recall, all "XP" driver releases prior to that install and function without a hitch under 2000.

FYI, I had the v185.85 CUDA drivers installed on 2000 when I tested upgrading it to XP. During XP setup the nVidia driver setup was triggered in the background so that the nVidia control panel was present when the XP install finished.

ultratoto14
8th July 2009, 10:22
Hi all, i've just changed my hardware to go to a core i7 920@4Ghz, I measured framerate of DGDecodeNV to 46 fps.
My avs script is as simple as the AVCSource. Using -threads 0 in x264 command line, my cpu usage is around 40-60%.
The encoding speed is not 46 but almost 20 fps.
So if the frame server is not the limit, there's cpu power available, why is it not faster ?

Guest
8th July 2009, 13:32
You're asking me why your *encoding* is not faster when I provide the *decoder*?

ultratoto14
8th July 2009, 20:48
Sorry for the misunderstanding, the question is not directly for you. I'm very pleased of the performances of the decoder, just want to know if someone has the same problem, if a solution exists, just to be oriented.

kemuri-_9
8th July 2009, 21:22
you don't provide your encoding settings which highly affect threading/cpu performance in combination with information about the source (mostly resolution).

so for the moment that lack of information is the reason why you're not bottlenecking at the decoder as you desire.

ultratoto14
8th July 2009, 21:32
x264.exe" --pass 1 --bitrate 8116 --stats DGSourceNV2.stats --level 4.1 --bframes 3 --b-adapt 2 --weightb --direct auto --filter 1:1 --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 24000 --vbv-maxrate 24000 --qcomp 0.5 --merange 12 --threads auto --progress --no-psnr --no-ssim --subme 2 --partitions none --me dia --output NUL DGSourceNV2.avs

x264.exe" --pass 2 --bitrate 8116 --stats DGSourceNV2.stats --level 4.1 --ref 4 --mixed-refs --bframes 3 --b-adapt 2 --weightb --direct auto --filter 1:1 --trellis 2 --partitions p8x8,b8x8,i4x4,i8x8 --8x8dct --ipratio 1.1 --pbratio 1.1 --vbv-bufsize 24000 --vbv-maxrate 24000 --qcomp 0.5 --me umh --merange 12 --threads auto --progress --no-psnr --no-ssim --output DGSourceNV2.264 DGSourceNV2.avs

Source are Quantum of solace Bluray z2 (h264) and Golden Compass z2 (vc1) -> 1920x1080 result.

Guest
8th July 2009, 23:18
It's OT for this thread. Take it elsewhere.

halsboss
19th July 2009, 06:39
Back to this after a break ... and I can't remember what to use to demux a .MP4 into elementary streams for use with this tool. Anyone care to suggest something easy (preferably command-line, but not fixated on it).

Also, is .mp4 support likely any time soon ?

edit: ah, I remember "coreavc-haali's GDSMux to convert that to an MKV which DGAVCDecNV likes"

kemuri-_9
19th July 2009, 07:34
it would be easier to use mp4box's extraction feature to demux the elementary stream from the .mp4.

i've never been a fan of gdsmux since it does things through directshow (iirc) which is known for its problems.

JeffBDVS
3rd August 2009, 05:55
NVBeta4 issue with PureVideo double rate deinterlacing:

Index a 1080i60 AVCHD clip from a Panasonic HMC150
Point an .avs script file to the resulting .dga file
Script Text: DGSource("00014.dga", deinterlace=2)
Load the .avs script into VirtualDub
Check File Information: Verify that frame rate is 59.94fps
Play or scrub in VirtualDub.

Result: only half of the frames play back. At the halfway point, VirtualDub displays a freeze frame for the rest of the clip. When I go to the end of the clip I can get the second half frames to appear if I step or seek backwards. But when I try to play or scrub forward again, the frame just freezes from that point. This issue also shows up in any files exported from VirtualDub. The issue does not occur inside of DGAVCIndexNV during play or preview.

Workaround: Use single-rate PureVideo deinterlacing.

System:
Vista 64 SP2
GTX280 with the 190.38 drivers
VirtualDub 1.8.8/build 30091
AviSynth 2.5.7.0 (MT build)

If you want a sample stream, let me know and I'll email a link to you.

-Jeff

Guest
3rd August 2009, 13:33
Fixed in NV beta 5:

http://neuron2.net/dgavcdecnv/NVbeta5.zip

If you have previously downloaded beta 5 to get the fix for MPEG, you need to re-download it to get this fix for AVC and VC1.

JeffBDVS
3rd August 2009, 14:25
I guess I jumped the gun about an hour ago. I was going to report that it didn't work here for AVC. I'll try again now.

Email with a link to the problem AVCHD stream is on its way to you, Don.

-Jeff

Guest
3rd August 2009, 14:29
I tested your stream with the corrected beta 5 and it was fine with deinterlace=2.

JeffBDVS
3rd August 2009, 15:06
Works a treat now. Thanks, Don.

-Jeff

JeffBDVS
11th August 2009, 20:54
New problem with NVBeta5. DGMPGIndexNV doesn't properly recognize as interlaced, an elementary MPEG2, I-frame-only high@high, 100 Mbps CBR file. The info box shows its structure as Frame/Field. DGIndex 1.5.2 does recognize it properly as interlaced.

NV and DGIndex logs and index files attached.

-Jeff

Guest
11th August 2009, 21:01
In the non-NV version "Frame Type" is the value of progressive_frame and "Coding Type" is I, P, or B frame. In the NV version, "Frame Type" is I, P, or B frame and there is no field that reports progressive_frame. I should bring them into alignment.

Frame/Field refers to the sequence: If the sequence is shown as "Frame/Field", then some frames may be coded progressively, some coded interlaced, and some pulled down.

Why aren't you using beta 7?

JeffBDVS
11th August 2009, 21:18
It's not just the info window. The output isn't interlaced either, and it should be. Both the NV window and VirtualDub from AviSynth show deinterlaced frames. I wasn't clear enough in my original post. I'm sorry.

Why aren't you using beta 7?
Because I didn't know there was a Beta 7? :)

-Jeff

Guest
11th August 2009, 21:38
It's not just the info window. The output isn't interlaced either, and it should be. Both the NV window and VirtualDub from AviSynth show deinterlaced frames. LOL. You'll have to give me a stream sample if you want me to believe that.

The only thing I can think of is that it has soft pulldown and you don't have Honor Pulldown selected under Video/Field Operation.

JeffBDVS
11th August 2009, 22:02
Here's the link to the sample stream:

Interlaced M2V File (http://bellunevideo.com/tutorials/1080i60_DG.m2v)

Attached is a screenshot with the export parameters from Adobe Premiere Pro, and the .ini file for DGMPGIndexNV Beta 7.

-Jeff

Guest
11th August 2009, 22:41
I opened your sample in beta 7. I set Video/Display HD Full-Sized. I hit F5. The video clearly shows the combing.

I serve the video with my script into VirtualDub and play. The video clearly shows the combing.

I add SeparateFields() to my script and open it in VirtualDub. I step through and can see field rate motion.

Do you have all your windows set to half size? That simulates a deinterlacer.

JeffBDVS
11th August 2009, 23:21
I opened your sample in beta 7. I set Video/Display HD Full-Sized. I hit F5. The video clearly shows the combing.

I serve the video with my script into VirtualDub and play. The video clearly shows the combing.

I add SeparateFields() to my script and open it in VirtualDub. I step through and can see field rate motion.

Do you have all your windows set to half size? That simulates a deinterlacer.
Nope. I configured Beta 7 exactly as you described in the quote above. Two new weird observations:

If I load the clip and then select Display HD full size, the very first frame shows the combing. But if I step or seek through the clip, all subsequent frames appear deinterlaced.
If I select Display HD Full Sized and *then* load the clip, not even the first frame shows the combing.

Based on those 2 observations, I suspect a display driver problem here on my end. I do have the 190.38 drivers.

Thanks for taking the time to check this out. That you cannot reproduce the issue means I've got some serious troubleshooting in my future.

-Jeff

EDIT: In item #1, not *all* of the subsequent frames appeared deinterlaced. I found that the very last 2 frames of the clip also showed combing.

JeffBDVS
12th August 2009, 00:27
The fact that the 2 last frames in the clip showed the combing gave me an idea. My idea worked.

Workaround:

Find any frame in the clip that is showing the combing.
Set the In/Out points to create a short segment that encompasses at least one "combed" frame.
Preview (F5)
Reset the In/Out points to encompass the whole clip.
Save Project.

So far, resetting the In/Out points seems to do the trick. After using the workaround, all frames in NV and in VirtualDub show up as interlaced.

Without the workaround, all the frames show up as deinterlaced. (Except for the first one and the last two, as mentioned above.)

Definitely odd. I have no idea what could cause this behavior.

-Jeff

Zelos
15th August 2009, 11:27
Hi there,

sorry if i don't undestand the use of DGAVCDecodeNV , but does it distress the cpu for encoding from h264 source ?

thanks

Audionut
15th August 2009, 12:39
Yes, decoding h.264 is cpu intensive. These tools decode h.264 using the GPU.

Zelos
15th August 2009, 12:53
oh that is a great tool so !
So it might use cuda right ?

kemuri-_9
15th August 2009, 13:00
oh that is a great tool so !
So it might use cuda right ?

it does use CUDA to access the GPU's VP2 engine to decode the video directly on the card.

Zelos
15th August 2009, 13:13
can someone post the difference speed between :
- just cpu with megui
- using DGAVCDecNV with megui

thanks :)

i have core i7 920 and would like to know if i have to sell it :)

Guest
15th August 2009, 13:13
oh that is a great tool so!
Yes, but don't overestimate its impact on timesaving when transcoding, because decoding is a relatively small load compared to encoding. The savings can be useful on a low end CPU, but negligible on a high end CPU.

Zelos
15th August 2009, 13:25
humm ok i see, i will make a try to check the benefits , so.
thanks for all replies :)

Guest
15th August 2009, 13:30
The other benefits are correct decoding for many streams that the alternative decoders have issues with, such as some VC1 streams, and access to GPU deinterlacing, cropping, and resizing.

Zelos
15th August 2009, 15:48
ok i see , thanks.
Is the power of the graphic card will determine the average speed ?

Guest
15th August 2009, 15:50
Is the power of the graphic card will determine the average speed ? Average speed of what? And what do you mean by "power of the graphic card"? Your question is too vague to answer.

Audionut
15th August 2009, 16:18
My understanding is that the VP2 engine is the same on all GPU's.
So decoding speed would only be affected by memory clock and bus width I guess.

Zelos
15th August 2009, 16:46
My understanding is that the VP2 engine is the same on all GPU's.
So decoding speed would only be affected by memory clock and bus width I guess.

yes right sorry for my bad english :p

creamyhorror
24th August 2009, 17:13
http://neuron2.net/dgavcdecnv/dgavcdecnv.html

Your site seem to be down:

redirects to http://gs12.inmotionhosting.com/suspended.page/

"This Site Is Temporarily Unavailable.
If you are the site owner, please contact the billing/support department as soon as possible."

Guest
24th August 2009, 17:50
It's up again. Somebody was attacking my forum and blew out my CPU usage. I've taken the forum down until I find a solution.

paulvdb
29th August 2009, 10:26
Your new beta 8 causes problems with ITV HD. Indexing works fine but when I try to load the avs in virtualdub I get the following error message:

Avisynth open failure:
Evaluate: System exception - Access Violation
(I:\TheBill.avs, line 8)

Line 8 is the line with DGSource. The same avs works ok with beta 5. I tried this on Windows XP x64 and Windows 7 RC x64. I also tried it with Channel 4 HD and BBC HD and they worked ok with beta 8 so the problem seems to be specific to ITV HD. Sample stream that shows this error: http://members.home.nl/pvdbelt/TheBillSample.ts

Guest
29th August 2009, 15:30
Got it fixed locally. Beta 9 comes later today. Thanks for pointing it out.

Guest
29th August 2009, 15:48
NV beta 9 is released. It has a lot of fixes.

http://neuron2.net/dgavcdecnv/NVbeta9.zip

JungleBoy
1st September 2009, 18:35
ITV HD audio sync
I've noticed that ITV HD uses an AC3 audio sync time of either -999999ms or +999999ms.
They appear to be using a PCR PID instead to sync the video and audio.
The Video and PCR PIDs can be defined in DGAVCINDEXNV but it says in the manual under Detect PIDs: PAT/PMT,
"Note that unless you use the Log Timestamps function, the PCR PID is not used and can be ignored."
Here's the manual: http://neuron2.net/dgavcdecnv/DGAVCIndexNVManual.html
The question is, what is the Log Timestamps function ?
I see the Video PID in the DGA file but not the PCR PID.

I'm using DGAVCINDEXNV v1.0.13

Guest
1st September 2009, 18:51
That's a leftover from copying and pasting from the DGIndex manual. DGAVCIndexNV does not have the Log Timestamps function.

I've noticed that ITV HD uses an AC3 audio sync time of either -999999ms or +999999ms. I can't make any sense out of this. Can you post a link to a short sample stream so I can see if there is anything out of the ordinary going on?

Set-top boxes sync their local clock to the PCR time. Then the audio and video is played by presenting a unit when its PTS matches the local clock. That means audio and video units with the same PTS are presented together, therefore it is sufficient just to consider the offset between the audio and video PTSs.

You can get the PCR PID from the PAT/PMT table accessible under the Stream menu. Usually it is the same as the video PID, but not always.

JungleBoy
1st September 2009, 19:41
Here's 1 minute 95MBytes file of the ITV HD mux.
It contains ITV HD and Brit Shorts TV and a bunch of radio channels.
If you put the TS file through tsmuxerGUI you'll see the audio delay of the ITV HD AC3 stream.
http://www.mediafire.com/download.php?yujkelygjvt

[Note: I edited this excerpt from a 22Gbyte TS file of the complete multiplex.
I haven't been able to extract the video from this excerpt].

Here's a picture:
http://i250.photobucket.com/albums/gg276/34blw/itvhd-mux.jpg

I've been putting the complete mux through tsmuxerGUI to convert the H222 to H264.
I also set the AC3 audio delay to something like -870ms.
The video and audio is approximately in sync in the created m2ts file but could be out by +/-100ms.

Is there a way of finding out the time difference between the video and audio streams ?

Guest
1st September 2009, 20:28
Sorry, an *edited* TS is not helpful. Just use DGSplit to split the first 100MByte of the *original* TS and upload that. Thank you.

JungleBoy
1st September 2009, 22:00
itvhdmux22.ts (100 MB)
24 seconds of the ITV HD/Brit Sports TV multiplex:
http://www.mediafire.com/download.php?dm0djemijgd

Putting this file through tsmuxerGUI (only ticking the H264 and AC3 boxes) converts the H222 to H264.
The AC3 audio delay needs setting to about -750ms to get the audio approximately in sync.
The video/audio PIDs of 3401/3402 (or 0x0d49/0x0d4A) change to 4113/4352 (or 0x1011/0x1100) in the M2TS file.
Viewing the M2TS file with TS Packet Editor shows the PCR PID on 0x1001.

The first 4.5 minutes of the original TS contains the message saying that ITV HD was unavailable (as nothing was being transmitted at the time) so I picked file 22 from DGSplit that contained some dialogue.
What is the procedure for getting the correct audio sync delay for the final MKV ?

ITV have been to a lot of trouble to obfuscate their streams it seems.
TS Packet Editor is also able to convert the H222 to H264 but I finish up with no audio at all.
I found that by recording the entire mux I was more likely to capture stuff that was needed to decode ITV HD.

Guest
1st September 2009, 23:50
I can't help you with tsmuxer or the other tools. I can only tell you how to do it with my tools.

I loaded the stream in DGAVCIndexNV. The tables are non-standard (which explains the problems everyone is having) but by looking at raw PIDs and experimenting, I determined there is AVC video on 0xd49 and AC3 audio on 0xd4a. Use Audio Demux to set up for demuxing only audio stream 0xd4a. Then Save Project.

Now, you make a standard AVS with the audio adjusted by the reported -225ms and everything plays in perfect sync.

vid=dgsource("itvhdmux22.dga",resize_w=1280,resize_h=720)
aud=nicac3source("itvhdmux22 PID d4a 2_0ch 48KHz 256Kbps DELAY -225ms.ac3").delayaudio(-0.225)
audiodub(vid,aud)

I think it's funny that they throw away half the horizontal resolution but still call it HD.

JungleBoy
2nd September 2009, 00:42
I was only using tsmuxerGUI to filter out all the other streams just leaving the ITV HD streams and then feeding the M2TS into TS Packet Editor to edit out the adverts then loading the final M2TS file into DGAVCIndexNV. It also converted the h222 to h264.
I'll try loading the TS directly and see what happens.

Guest
2nd September 2009, 00:45
It also converted the h222 to h264. You're apparently unaware that this is silly. You must have overheard it on a bus or something.

I'll try loading the TS directly and see what happens. I already told you what happens!

You can likely use the same process on your edited TS, as long as you get the remapped PIDs correct.

JungleBoy
2nd September 2009, 00:58
Yes, I get the same result, I didn't realise you can feed the entire mux into DGAVCIndexNV.
The only problem is how to edit out the adverts before feeding into DGAVCIndexNV.
Any suggestions ?

Guest
2nd September 2009, 01:37
You can use trims in your script or use your TSPacket editor. The output should be usable in DGAVCDecNV.