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.

 

Go Back   Doom9's Forum > Video Encoding > New and alternative video codecs

Reply
 
Thread Tools Search this Thread Display Modes
Old 25th March 2011, 23:34   #1  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,911
LAV CUVID Decoder - High Quality Hardware decoding for NVIDIA

LAV CUVID is DEAD. All of its functionality has been merged into LAV Video. LAV CUVID will not be developed any further.

------------------------------------------------------------------------------------------------------

Hi folks,

i would like to introduce my LAV CUVID Decoder.
It is a DirectShow Video Decoder utilizing the NVIDIA hardware decoder engine through the CUDA Video Decoding API ("CUVID").

Its still in its early stages, but its already been tested thoroughly and supports all major formats that the NVIDIA hardware can decode, which are right now H264, VC-1, MPEG2 and MPEG4-ASP (DivX/Xvid). Both progressive and interlaced types are supported.

As a bonus, when decoding interlaced content, it can do full adaptive deinterlacing, the best your GPU has to offer.

So, without further introduction, here it is!

Features
- Decoding of H264, VC-1, MPEG2 and MPEG4-ASP (each given appropriate hardware support)
- Full Adaptive Deinterlacing, including Frame Doubling (perfect smooth playback of 1080i/60 content!)
- Usable with all renderers! Including madVR, which is recommended for the best playback quality!
- NV12/YV12 output

Download
Source Code is available from my Git repository

Binarys are available here:

Version 0.13: Installer (32/64-bit, CUDA 4.0+) - 32-bit (CUDA 4.0+) - 64-bit (CUDA 4.0+) -- 32-bit (Older CUDA)

A note on the different versions: The CUDA 4.0 builds require a 270 series driver (or newer). The "Old CUDA" build should in theory work with much older drivers, in case you cannot upgrade.

Changelog -- Full changelog -- Release Notes
0.13 - 2011/09/13
- Improved resource release behavior
- Improved VC-1 in EVO with pulldown flags
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 3rd February 2012 at 07:53.
nevcairiel is offline   Reply With Quote
Old 25th March 2011, 23:35   #2  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,911
This is a decoder for NVIDIA GPUs, it does not work with ATI/AMD or Intel, and it never will!

Requirements/Recommendations
- NVIDIA PureVideo HD capable graphics card (VDPAU Feature Set A or better - see list here)
- At least 256MB of Video RAM, 512MB recommended
- Recent NVIDIA Drivers - CUDA 4.0 compatible driver recommended (270 series), older drivers may work with the "Old CUDA" build.
- Vista/7 recommended due to much improved driver handling, but XP SP3 "should work" (see hints below)

Performance
- 1080p60 decoding is only supported on VP4 hardware (VDPAU Feature Set C)
- When encountering performance issues, turning off the "HQ DXVA processing" option will yield the best gain in performance, at a minimal loss of quality.
- Using the latest driver (275.33 at the time of writing), can greatly improve the performance.

Hints
- When running on Windows XP, its recommended to turn the "Use HQ DXVA processing" setting off, its not fully supported on XP and might cause image corruption.


Known Issues
- The decoder will try to decode all video streams, and not refuse formats that are not supported.
- VC-1/MPEG4-ASP VFR content will most likely not play properly.

reserved for FAQ, etc.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 17th August 2011 at 11:55.
nevcairiel is offline   Reply With Quote
Old 25th March 2011, 23:42   #3  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,911
To say a few words about 0.1:

First: This is a very early test version, it can quite possibly blow up.

It comes without any configuration, and its only tested on VP4 (Fermi) hardware.
In the future, you will be able to configure things like:
- Use Stream Aspect Ratio (currently always on)
- Which Codecs should be active
- Should Deinterlacing be performed (currently always in "adaptive" mode)
- And whatever i can think of.

Also, it only supports NV12 output. This might change in the future, but any conversion of course gives you a performance penality, and NV12 is the native format of the decoder.

Oh, and if you're using it together with LAV Splitter on interlaced VC-1, make sure to disable the VC1 timestamp correction in the LAV Splitter settings. The next version of LAV Splitter will have this decoder added to the auto-detect mode.

BTW, if anyone is good with assembler, i could need some asm function which changes the stride of a NV12 image. My C implementation is probably quite slow.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 25th March 2011 at 23:48.
nevcairiel is offline   Reply With Quote
Old 25th March 2011, 23:46   #4  |  Link
Sebastiii
Registered User
 
Join Date: Oct 2009
Location: France
Posts: 595
Amazing

Can't register filter, maybe need minimum driver version or hardware (9600GT) ?
Thanks.
__________________
HTPC : i7 920 6Go Win10(x64) / Nvidia 1050Ti / P6T Deluxe / Harman-Kardon AVR-355.

Last edited by Sebastiii; 25th March 2011 at 23:50.
Sebastiii is offline   Reply With Quote
Old 25th March 2011, 23:46   #5  |  Link
adam777
Registered User
 
Join Date: Dec 2003
Posts: 179
Hi nev,
I'm unfortunately unable to utilize this decoder due to my laptop being equipped with an ATI card, but I suggest writing as clear as possible why ATI can't be supported, at least for the foreseeable future.
I suppose it won't be long before this question starts popping up.
adam777 is offline   Reply With Quote
Old 25th March 2011, 23:51   #6  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 156
When I use your LAV CUVID Decoder to play a 1280x688 movie at a 1920x1080 resolution in MPC-HC, what is doing the upsample? My GPU? The MPC-HC?

When I used ffdshow I had an Avisynth script to spline36resize my videos to 1920x1080, but when using CUVID I no longer know if it is being done by the graphics card (would this be a good thing, quality-wise?) or being done by what I have selected at the MPC-HC Resizer's drop-down box.

Nuno
__________________
Win 10 x64, Geforce GTX 660, TV Sony KD-X8509C HDMI, ASUS Xonar D2X, Core i5 750, 6GB DDR3, Creative Labs Gigaworks S750 7.1
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 25th March 2011, 23:52   #7  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,911
The decoder does not do any upscaling, so it'll be the renderer MPC-HC uses.

Quote:
Originally Posted by Sebastiii View Post
Can't register filter, maybe need minimum driver version or hardware (9600GT) ?
Which driver are you using?
The CUDA SDK 3.2 is relatively new (Jan. 2011), could be that you need at least a 260 series driver.

I can probably use a bit older SDK, and switch to dynamically loading the dlls, so such issues can be avoided.

For Hardware Support, Wikipedia to the rescue. You need at least VDPAU Feature Set A for H264 decoding, B for VC-1 and MPEG2, and C for MPEG4-ASP.
http://en.wikipedia.org/wiki/Nvidia_..._.28HD.29_GPUs

The 9600GT is a "A" Feature Set, so at least you get H264 decoding out of it.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders

Last edited by nevcairiel; 26th March 2011 at 00:00.
nevcairiel is offline   Reply With Quote
Old 26th March 2011, 00:08   #8  |  Link
SamuriHL
Registered User
 
SamuriHL's Avatar
 
Join Date: May 2004
Posts: 3,785
Oh sure. This gets released while I was just forcing my bedroom machine to use software decoding temporarily while I waited. Guess I'll go back in there and get this set up. Thank you so much, Nev!!!
__________________
HTPC1:W10 Creator Edition, I7 3770k, GTX 1060, Pioneer Elite SC-65, Panasonic 65" 1080p Plasma
Laptop: MSI GT70 Dominator
SamuriHL is offline   Reply With Quote
Old 26th March 2011, 00:16   #9  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 156
I am getting dropped frames every 5 seconds approximately when playing 1920x1080 movies, either AVC or VC-1.
I get smooth playing on 720p movies or others.
My specs are in my signature.

At the moment of playing my GPU is at 20% usage at most, measured by EVGA Precision.

I've tried EVR Custom and EVR Sync, and every option in MPC-HC, and all kind of combinations don't make a difference.
BUT, maVR is flawless. No dropped frames at all. In fact it solved my dropped frames problem with madVR when using ffdshow.

But, why is EVR Custom and Sync dropping frames?
How can I help you debug this?

Nuno
__________________
Win 10 x64, Geforce GTX 660, TV Sony KD-X8509C HDMI, ASUS Xonar D2X, Core i5 750, 6GB DDR3, Creative Labs Gigaworks S750 7.1
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 26th March 2011, 00:17   #10  |  Link
bjd
Registered User
 
Join Date: Apr 2010
Posts: 163
@nevcairel

This really is impressive work. Just testing it with my bluray collection - awesome performance with 1080p VC-1,AVC and MPEG2. No issues on a GT430 just simply amazing PQ via MadVR.

Also tested on some MPEG2 576P/50i material - works a treat.

bjd is offline   Reply With Quote
Old 26th March 2011, 00:19   #11  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 8,911
Quote:
Originally Posted by BatKnight View Post
I am getting dropped frames every 5 seconds approximately when playing 1920x1080 movies, either AVC or VC-1.
Not sure whats going on there. Do you have frame time correction on in EVR? Try enabling/disabling it, depending what you had before.

My movies play just fine in EVR Custom as well as madVR.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 26th March 2011, 00:22   #12  |  Link
SamuriHL
Registered User
 
SamuriHL's Avatar
 
Join Date: May 2004
Posts: 3,785
Ok, initial impressions. WOW! This is AWESOME! My "problem" MKV that nothing does well is Golden Compass. It's a blu-ray rip and is VC-1. Nothing really plays it well, including DXVA, at 24Hz. Before I came out and saw you had released this, I had set up ArcSoft video decoder to handle VC-1 decoding. It pegged the CPU but was decent enough to watch. With your decoder, CPU utilization went down to about 25% or so, which for that machine, is VERY good. Had no problems with subtitles or video. Next up was an AVC MKV blu-ray rip. CPU was again good, but, unfortunately, when skipping around in the video to test certain parts I got a very odd thing going on. It gives me a green block overlay in the middle of the screen. It comes and goes quite a bit. I haven't tried other AVC movies to see if that's reproducible or not. Don't forget that my goal here is to pump this out to madVR in MPC-HC, so, that's how I'm testing this. I didn't see these issues with CoreAVC on that same video.
__________________
HTPC1:W10 Creator Edition, I7 3770k, GTX 1060, Pioneer Elite SC-65, Panasonic 65" 1080p Plasma
Laptop: MSI GT70 Dominator
SamuriHL is offline   Reply With Quote
Old 26th March 2011, 00:38   #13  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 156
Quote:
Originally Posted by nevcairiel View Post
Not sure whats going on there. Do you have frame time correction on in EVR? Try enabling/disabling it, depending what you had before.

My movies play just fine in EVR Custom as well as madVR.
Nope, it was off, but enabling it didn't change anything.
The graph is a mess, even playing at 24Hz I used to have a perfect straight green line, but with CUVID it is a mess, full of spikes.

I've found that disabling Wait For Flushes stops the dropping frames but now I get noticeable tearing and stuttering.

But like I said, madVR is almost perfect.
Any ideas?

Nuno
__________________
Win 10 x64, Geforce GTX 660, TV Sony KD-X8509C HDMI, ASUS Xonar D2X, Core i5 750, 6GB DDR3, Creative Labs Gigaworks S750 7.1
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 26th March 2011, 00:42   #14  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 4,600
Thank you.

I did a short test with a 9200M GS (VP3 feature set B) and it will attempt to open ASP, which is bound to fail of course: the screen stays black. H.264 and VC1 worked fine in a short test. It will also attempt to decode H.264 with the resolutions not supported by VP3 which will also result in a black screen.
sneaker_ger is offline   Reply With Quote
Old 26th March 2011, 00:45   #15  |  Link
sneaker_ger
Registered User
 
Join Date: Dec 2002
Posts: 4,600
Quote:
Originally Posted by Sebastiii View Post
Amazing

Can't register filter, maybe need minimum driver version or hardware (9600GT) ?
Thanks.
Did you install the VC++2010 runtime components yet?
sneaker_ger is offline   Reply With Quote
Old 26th March 2011, 00:59   #16  |  Link
BatKnight
Registered User
 
BatKnight's Avatar
 
Join Date: Oct 2008
Location: Portugal
Posts: 156
More feedback.
I've done testing and testing and got to a conclusion: When playing an AVC/H.264/x264 1920x1080 MKV the audio doesn't match/sync with lips after seeking. This happened on all my AVC movies. This only happens with 1920x1080 AVC videos, with 1920x800 or lower then I can't reproduce it...

With VC-1 movies the audio matches/syncs perfectly with lips and I've randomly seeked and couldn't make it unsync.

Nuno

PS: Tested it with madVR, with Aero on and off
__________________
Win 10 x64, Geforce GTX 660, TV Sony KD-X8509C HDMI, ASUS Xonar D2X, Core i5 750, 6GB DDR3, Creative Labs Gigaworks S750 7.1
MPC Home-Cinema
madVR
LAV Filters
BatKnight is offline   Reply With Quote
Old 26th March 2011, 01:37   #17  |  Link
yesgrey
Registered User
 
Join Date: Sep 2004
Posts: 1,295
nevcairiel,

I just want to say a big thanks!

I was hoping that someone would bring something like this, so that I could be able to watch those WVC1 interlaced music concerts with hardware deinterlacing. It's working very good with me.

yesgrey is offline   Reply With Quote
Old 26th March 2011, 02:02   #18  |  Link
Sebastiii
Registered User
 
Join Date: Oct 2009
Location: France
Posts: 595
Quote:
Originally Posted by sneaker_ger View Post
Did you install the VC++2010 runtime components yet?
Yep

I think it's nev answer me need recent driver and surely more recent video card

Thanks, will update this soon
__________________
HTPC : i7 920 6Go Win10(x64) / Nvidia 1050Ti / P6T Deluxe / Harman-Kardon AVR-355.
Sebastiii is offline   Reply With Quote
Old 26th March 2011, 02:06   #19  |  Link
ranpha
Registered User
 
Join Date: Feb 2008
Posts: 334
Running my test files over this decoder (testing mostly XviD files first), but I am very impressed by the decoder-level deinterlacing capabilities.
ranpha is offline   Reply With Quote
Old 26th March 2011, 02:09   #20  |  Link
SamuriHL
Registered User
 
SamuriHL's Avatar
 
Join Date: May 2004
Posts: 3,785
No one else is seeing the issue I'm having with a greenish rectangle showing up in AVC playback?
__________________
HTPC1:W10 Creator Edition, I7 3770k, GTX 1060, Pioneer Elite SC-65, Panasonic 65" 1080p Plasma
Laptop: MSI GT70 Dominator
SamuriHL is offline   Reply With Quote
Reply

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 11:37.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2017, vBulletin Solutions Inc.