Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion. Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules. |
|
![]() |
|
Thread Tools | Search this Thread | Display Modes |
![]() |
#1 | Link |
Guest
Join Date: Jan 2002
Posts: 21,907
|
DGDecIM: Frame-accurate Avisynth source filter for QuickSync
I've made enough progress on supporting the Intel Media SDK in DGDec to start a new thread. I plan to have DGDec support both nVidia and Intel decode engines but for the purposes of this thread I will call it DGDecIM.
The chick has poked its head through the eggshell but still has to wriggle its whole body out. What I have done is this: I made a DGI for an AVC stream (panama.264 famous in another thread) using DGIndexNV in the normal way. Then I modified DGDecodeNV to support the Intel decode engine using the same DGI file. Random access is working fine and I get over 200fps for a 1080p stream with 8% CPU usage in QuickSync mode. Pretty fine! The implementation uses what I called a potential simplified design in the DGMVCSource thread, so that one thread and consequent synchronization (with large Windows scheduling delays) is eliminated, significantly increasing the decode frame rate. Before releasing a beta, I still need to add VC1 and MPEG2 and generally check robustness and end of stream handling. Also, I can consider adding support for Intel HW cropping/resizing, deinterlacing, IVTC, etc., and add MVC support. But things are looking good! ----- Current version: http://neuron2.net/misc/dgdecim_b20.zip ----- NOTES ON POSTING IN THIS THREAD: Rules 3 and 11 (rules) are enforced broadly in this thread and posters are asked to make sure all posts have useful technical content and/or report defects. Requests about status of developments, expressions of approval or disapproval thereabout, chit-chat, and other random nontechnical posts are eschewed and may be deleted. I believe this policy results in a more useful and readable thread. Thank you for your understanding and cooperation. Posts reporting defects should provide a source stream, the Avisynth script, and instructions for demonstrating the defect with that same source stream and script. Last edited by Guest; 3rd April 2014 at 15:26. |
![]() |
![]() |
![]() |
#4 | Link |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Status update: I have implemented the EOS stream handling and it is working fine. I have added support for MPEG2 and VC1. Unfortunately, the current HW support for VC1 is broken (http://software.intel.com/en-us/forums/topic/494916) and a fix is expected possibly at the end of February. The VC1 support works fine in SW mode (which is way slower of course) so I will release a beta that forces SW mode for VC1 input. I want to do a little more testing and then I'll give you guys a beta, possibly as early as tomorrow.
|
![]() |
![]() |
![]() |
#5 | Link |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Here is beta 1:
http://neuron2.net/misc/dgdecodeim_b1.zip As mentioned earlier, this requires you to use DGIndexNV to create your index file. I am working on an indexer that can be used without Nvidia. Please read the Notes.txt document for usage information. Your feedback will be appreciated. EDIT: In some initial tests, QuickSync appears about 20-25% faster than CUVID. Last edited by Guest; 16th February 2014 at 17:18. |
![]() |
![]() |
![]() |
#6 | Link |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
1080i MPEG2 Intel engine:
Code:
Number of frames: 10001 Length (hhh:mm:ss.ms): 000:05:33.700 Frame width: 1920 Frame height: 1080 Framerate: 29.970 (30000/1001) Colorspace: YV12 Frames processed: 10001 (0 - 10000) FPS (min | max | average): 79.22 | 320.96 | 191.33 CPU usage (average): 11% Thread count: 31 Physical Memory usage (peak): 565 MB Virtual Memory usage (peak): 715 MB Time (elapsed): 000:00:52.272 Code:
Number of frames: 10001 Length (hhh:mm:ss.ms): 000:05:33.700 Frame width: 1920 Frame height: 1080 Framerate: 29.970 (30000/1001) Colorspace: YV12 Frames processed: 10001 (0 - 10000) FPS (min | max | average): 68.01 | 261.23 | 141.07 CPU usage (average): 13% Thread count: 6 Physical Memory usage (peak): 526 MB Virtual Memory usage (peak): 625 MB Time (elapsed): 000:01:10.896 |
![]() |
![]() |
![]() |
#8 | Link |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
1080p H264 (Blu-Ray) Intel engine:
Code:
Number of frames: 10000 Length (hhh:mm:ss.ms): 000:06:57.083 Frame width: 1920 Frame height: 1080 Framerate: 23.976 (24000/1001) Colorspace: YV12 Frames processed: 10000 (0 - 9999) FPS (min | max | average): 50.13 | 338.37 | 170.68 CPU usage (average): 4% Thread count: 31 Physical Memory usage (peak): 571 MB Virtual Memory usage (peak): 691 MB Time (elapsed): 000:00:58.591 Code:
Number of frames: 10000 Length (hhh:mm:ss.ms): 000:06:57.083 Frame width: 1920 Frame height: 1080 Framerate: 23.976 (24000/1001) Colorspace: YV12 Frames processed: 10000 (0 - 9999) FPS (min | max | average): 50.31 | 172.54 | 89.84 CPU usage (average): 3% Thread count: 4 Physical Memory usage (peak): 475 MB Virtual Memory usage (peak): 556 MB Time (elapsed): 000:01:51.307 |
![]() |
![]() |
![]() |
#10 | Link |
Registered User
Join Date: Dec 2002
Location: Region 0
Posts: 1,436
|
I have a troublesome 1080i MPEG-2 TS sample for you.
AVS script: Code:
LoadPlugin("C:\HDTV Tools\DGDecIM\DGDecodeIM.dll") DGSource("test_clip2.dgi",engine=0)
|
![]() |
![]() |
![]() |
#13 | Link |
Registered User
Join Date: May 2006
Posts: 3,964
|
Here a problematic VC-1 interlaced source.
SW decoding (engine=1); NVIDIA GForce 9600GS. |
![]() |
![]() |
![]() |
#14 | Link | |
Registered User
Join Date: Mar 2012
Location: Texas
Posts: 1,635
|
Hi neuron2,
Tried various Blu-ray/DVD sources and they all work with the Nvidia engine, but with the Intel engine VirtualDub instantly just hangs and no error message. In AVSMeter I get the following message: Quote:
Last edited by Reel.Deel; 16th February 2014 at 21:29. Reason: typo |
|
![]() |
![]() |
![]() |
#15 | Link | |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Quote:
loadplugin("dgdecodeim.dll") dgsource("file.dgi") #uses Intel dgsource("file.dgi", engine=0) # uses Intel dgsource("file.dgi", engine=1) #uses CUVID |
|
![]() |
![]() |
![]() |
#16 | Link | |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Quote:
|
|
![]() |
![]() |
![]() |
#17 | Link | |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Quote:
|
|
![]() |
![]() |
![]() |
#20 | Link |
Guest
Join Date: Jan 2002
Posts: 21,907
|
Intel supports SW decoding also, so intuitively you wouldn't need an iGPU for that. Unless...even the SW support requires the appropriate Intel driver, which would not be installed on a system without an iGPU. We can do some tracing to see what is really true.
|
![]() |
![]() |
![]() |
Thread Tools | Search this Thread |
Display Modes | |
|
|