Log in

View Full Version : LAV CUVID Decoder - High Quality Hardware decoding for 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 28

mindbomb
24th May 2011, 19:30
does anyone know what happens if you try to use this on a laptop with switchable graphics?

does it automatically switch to the nvidia card and all is good?

nevcairiel
24th May 2011, 19:31
You'll probably have to force usage of the NVIDIA card.

jakmal
24th May 2011, 19:35
Sorry for the noobish questions:

1. I noticed that LAV CUVID makes use of the GPU for deinterlacing. Will the deinterlacing algorithms still be effective if the Deinterlacing option is turned off in the NVIDIA Control Panel?

2. If I use LAV CUVID in MPC-HC with EVR Custom Pres., are the post processing options such as Edge Detection / Sharpening / Dynamic Contrast set in the NVIDIA Control Panel effective?

nevcairiel
24th May 2011, 19:37
1. I noticed that LAV CUVID makes use of the GPU for deinterlacing. Will the deinterlacing algorithms still be effective if the Deinterlacing option is turned off in the NVIDIA Control Panel?

Easy enough to test, but i want to say "yes"


2. If I use LAV CUVID in MPC-HC with EVR Custom Pres., are the post processing options such as Edge Detection / Sharpening / Dynamic Contrast set in the NVIDIA Control Panle effective?

I'm quite positive they are, as thats (hopefully) independent of the source of the video. To the renderer, LAV CUVID looks like a "normal" decoder, nothing special. Unless those options are limited to DXVA, and do not work in general for any other decoders..

Edit:
Quick test shows that Sharpening and Noise Reduction work, as does the output color range. Personally, i cannot see a difference between color enhancement and dynamic contrast on/off, but maybe thats just me or the file i tried..
How do you even turn off deinterlacing? :p

LordMerlin
25th May 2011, 12:46
Good morning.
Please tell me whether the ability to change the output color format with NV12 such as YUY2 or YV12.
If not, then tell me how to configure ffdshow, which will be located in the column after LAVCUVID, that those people were of normal color and not blue?

nevcairiel
25th May 2011, 12:50
Since LAV CUVID can only output 4:2:0, YUY2 is crap. It can output YV12 however.

Its a bug in ffdshow, so you should really bring this up with the ffdshow folks.
Anyhow, just configure the ffdshow raw decoder to only accept YV12, and not any other formats, that will force LAV CUVID to output YV12.

In a future version, you'll also be able to force a pixel format in LAV CUVID.

LordMerlin
25th May 2011, 15:07
Thenk's for you. I will try this tonight.

HeadlessCow
26th May 2011, 04:05
This took a couple days longer than I meant for it to, but here are the results of 64-bit CUVID vs 32-bit CUVID (using the two sample videos from the DGDecNV benchmark thread).

Ratatouille Segment:
32bit - FPS: 64.34
64bit - FPS: 64.38

Clash of the Titans Trailer:
32bit - FPS: 110.41
64bit - FPS: 110.40

No performance difference at all (as expected).

mark0077
26th May 2011, 22:08
Use 64bit versions of avisynth / ffdshow and run some frame interpolation scripts that are very hefty on memory usage and take advantage of 64bits. See the difference then ;) 64bit has no real advantage as far as I can see other than when people push their HTPC's to the max where 64bit of certain pieces of software can yield significant performance boosts or take advantage of the +3gb memory limit. It could be the difference between you reaching your target interpolated frame rate or not, ie playable or not.. Not many people need this though but good to have it its not a huge task to add 64bit versions of software.

HeadlessCow
26th May 2011, 22:39
But that's not relevant to whether or not nev should spend time fixing issues that are preventing LAV CUVID from being ported to x64. For what you can use it for, there's no difference in speed at all.

mark0077
26th May 2011, 23:40
true true, nev can do what he likes as can any developer. All I'm sayin is no matter how many paragraphs people write on forums that 64bit has no benefit, its not strictly true and some people, although probably a very tiny majority, will benefit from it.. keyword, tiny :)

SamuriHL
26th May 2011, 23:49
Yea, well, even my assumption that it'd benefit me doing video editing was proven wrong. I asked the VRD devs about it and they showed me why video decoding/encoding won't benefit from 64 bit at all. The memory usage for even a few frames of video is very small. They require raw CPU/GPU power, not memory. The numbers they showed didn't see any significant difference between 32 and 64 bit as far as video encoding or decoding is concerned. In short they have absolutely no plans to move to 64 bit.

SamuriHL
27th May 2011, 00:13
Is there any benefit to building against this?

namaiki
27th May 2011, 02:21
does anyone know what happens if you try to use this on a laptop with switchable graphics?

does it automatically switch to the nvidia card and all is good?

Do you mean the old manual switching nVIDIA Hybrid Graphics, or the newer and software driven nVIDIA Optimus?

mindbomb
27th May 2011, 04:25
nvidia optimus

namaiki
27th May 2011, 05:21
Oh, it's CUDA so I think it should automatically call for usage of the nVIDIA GPU.

It would work, but it would also eat up battery life.

nevcairiel
27th May 2011, 06:59
Is there any benefit to building against this?

It offers x64 support again, afaik, other then that, the only difference is a higher driver requirement. (for this use-case)

e-t172
27th May 2011, 07:37
Use 64bit versions of avisynth / ffdshow and run some frame interpolation scripts that are very hefty on memory usage and take advantage of 64bits. See the difference then ;) 64bit has no real advantage as far as I can see other than when people push their HTPC's to the max where 64bit of certain pieces of software can yield significant performance boosts or take advantage of the +3gb memory limit. It could be the difference between you reaching your target interpolated frame rate or not, ie playable or not.. Not many people need this though but good to have it its not a huge task to add 64bit versions of software.
But that's not relevant to whether or not nev should spend time fixing issues that are preventing LAV CUVID from being ported to x64.

Actually, it is. If LAV CUVID is restricted to 32-bits, it means all other filters are restricted to 32-bit. Which means an ffdshow video filter would be restricted to 32-bit. Which means the Avisynth plugin in ffdshow would be restricted to 32-bit. Which means Avisynth would be restricted to 32-bit. Which means mark0077's frame interpolation filter is restricted to 32-bit. So in the end, mark0077's cannot benefit from the advantages of 64-bit for its frame interpolation filter.

The main problem with the whole 32/64 bit issue is not about the offending filter itself. The main problem is, if a filter is only available in 32-bit, you can't connect it (directly or indirectly) to any 64-bit filter. Thus the 32-bit only filter "contaminates" the whole playback chain. This could make a difference if you're using CPU-intensive, memory-hungry filters in said chain like mark0077 does.

robpdotcom
27th May 2011, 07:58
I think some people should be more appreciative of the work the developers are doing - which they are doing for free - and not bug them with requests that they have already made clear they are not interested in implementing.

Developers like madshi and nevcairiel could very easily develop these splitters/decoders/renderers/etc., and just keep them all to themselves for their own personal use. Is it not enough that they share their work with us, work out bugs that probably would never affect them, and give us nice GUI's that most of us would be totally lost without?

I think there should be a lot less bugging, and a lot more butt kissing.

I'm not directing this any anyone personally, and I'm not interested in getting in some web argument over it, but it just seems to me that there isn't near enough appreciation for the work these guys do.

ppp0941
27th May 2011, 08:39
using this decoder,I got a serious problem
The motion of music video (XVID) I played become not smooth
(using default setting or "no DXVA interpo and Double Framing")

At the first time, I thought it was a problem because of not using reclock
But later, I find that was a problem caused by LAV CUVID DECODER
And I'm 100% sure about this




And there's also one thing I don't understand
why the output aspect will be 1.98:1 instead of 1.77:1 when playing 16:9 movies using CUVID?

madvr pin info:
- Connection media type:
Video: NV12 2048x810 (16:9) 29.97fps

but the movie is 1440x810

LordMerlin
27th May 2011, 09:04
Hi all.
The question arose, if my motherboard has built-in Nvidia 9400 and still have a discrete 430 then can we unite as a power. Or for example to choose to what specific device will be decoding?

nevcairiel
27th May 2011, 09:13
Its currently not possible to choose which card does the decoding, it'll pick the first one it finds thats CUDA compatible.
It may be possible to add this in the future.

And there's also one thing I don't understand
why the output aspect will be 1.98:1 instead of 1.77:1 when playing 16:9 movies using CUVID?

madvr pin info:
- Connection media type:
Video: NV12 2048x810 (16:9) 29.97fps

but the movie is 1440x810

Don't worry about this. The renderer requests a certain stride, so the video frame is extended to 2048 pixels, but it still only contains 1440 pixels. In the Media Type, you can see the actual size in the rcSource/rcTarget elements.

As you can see in the line you posted, the Aspect Ratio of 16:9 is also not lost.

ney2x
27th May 2011, 11:13
using this decoder,I got a serious problem
The motion of music video (XVID) I played become not smooth
(using default setting or "no DXVA interpo and Double Framing")

At the first time, I thought it was a problem because of not using reclock
But later, I find that was a problem caused by LAV CUVID DECODER
And I'm 100% sure about this

Same here, avi's (DivX) doesn't play smoothly but H.264 videos are smooth. Using GTX 560 Ti, latest MPC-HC, LAV Filters, madvr/EVR, Reclock. The reason I am reporting avi problems is because I got rid of other codecs installed in my system and I'll be using LAV CUVID as my main decoder.

ppp0941
27th May 2011, 11:48
Using GTX 560 Ti, latest MPC-HC, LAV Filters, madvr/EVR, Reclock.

I've just found that reclock can't work with LAV CUVID DECODER
The clock never show green since using CUVID



(oh yes..wrong setting..sorry:stupid:)

nevcairiel
27th May 2011, 12:06
I've just found that reclock can't work with LAV CUVID DECODER
The clock never show green since using CUVID

Then you're using it wrong.
Its working just perfectly for me in conjunction with ReClock.

HeadlessCow
27th May 2011, 16:14
yes that's it, the main card is an ATI and has the screens connected to it.

If you try to insert LAV CUVID into the filter graph using GraphEdit, do you get this error?


---------------------------
GraphEdit
---------------------------
These filters cannot agree on a connection. Verify type compatibility of input pin and output pin.

No combination of intermediate filters could be found to make the connection. (Return code: 0x80040217)
---------------------------
OK
---------------------------


I've got a GF 240 as a secondary card that I use for other CUDA/CUVID stuff, but I'm having trouble getting LAV CUVID to work and was wondering if I was having the same issue as you :)

kennae
27th May 2011, 17:54
I myself use CUVID for everything else than xvid since it doesnt seem to work for me. Just a black screen.
I use madvr, lav filters, ffdshow (for sharpen and deband), lav cuvid and ac3filter. This isn't really a problem since I can use ffdshow video for xvid, but would be nice to let CUVID do all the decoding.

nevcairiel
27th May 2011, 18:00
Sounds like your hardware just doesnt support it.
H264, VC1 and H264 will work on all cards that are at least VP2. They'll use partial or full acceleration, depending how its available.
MPEG-4 ASP (XVID) is only supported on VP4 cards, thats all 4xx/5xx, and a few 2xx cards, like the 240.

I do plan to detect this automatically in the future, so that it will refuse XVID decoding if its not supported.

ney2x
27th May 2011, 18:37
@nevcairiel

Avi (XviD) doesn't play smoothly (stutter) on my setup. I have GTX 560 Ti and using latest MPC-HC v.1.5.2.3154. In the chains are: LAV Splitter --> LAV CUVID --> madvr --> LAV Audio --> Reclock. Already tried to removed reclock, same result and replaced madvr with EVR, same result. What do you think is the culprit?

nevcairiel
27th May 2011, 18:42
Repeating your problem will not magically solve it.
AVI files are just crap, they don't have proper timestamps, and as soon as you have a format with B-Frames, all hell breaks lose. Maybe this can be improved at some point, but if you suffer from the issue, i recommend using another decoder.

kennae
27th May 2011, 20:45
Sounds like your hardware just doesnt support it.
H264, VC1 and H264 will work on all cards that are at least VP2. They'll use partial or full acceleration, depending how its available.
MPEG-4 ASP (XVID) is only supported on VP4 cards, thats all 4xx/5xx, and a few 2xx cards, like the 240.

I do plan to detect this automatically in the future, so that it will refuse XVID decoding if its not supported.

Thanks for clearing this up. I have GTX 260.

nevcairiel
27th May 2011, 20:50
Yes, the 260 only is VP2, no XVID support there.

Nevilne
27th May 2011, 22:00
Love this decoder, but can't quite set it as default because:

-Crashes on vfr content
-Seeking multiple times locks the player

And my video card is too slow for 60fps or 1080p content, would it be possible to make it fallback to other decoders as a preset/rule?

nevcairiel
27th May 2011, 23:15
If you hand off 1080p decoding to a software decoder again, you could just use that software decoder for all your content. I see no point in using this.

ney2x
28th May 2011, 04:02
Repeating your problem will not magically solve it.
AVI files are just crap, they don't have proper timestamps, and as soon as you have a format with B-Frames, all hell breaks lose. Maybe this can be improved at some point, but if you suffer from the issue, i recommend using another decoder.

Thanks for the explanation regarding avi files... Hope to see an improvement regarding this.:helpful:

sparksab
28th May 2011, 16:31
AVI files are just crap, they don't have proper timestamps, and as soon as you have a format with B-Frames, all hell breaks lose.

What about remux to MKV to resolve this problem ?

Cyber-Mav
28th May 2011, 23:38
Love this decoder, but can't quite set it as default because:

-Crashes on vfr content
-Seeking multiple times locks the player

And my video card is too slow for 60fps or 1080p content, would it be possible to make it fallback to other decoders as a preset/rule?

what card do you have?

roozhou
29th May 2011, 02:52
Repeating your problem will not magically solve it.
AVI files are just crap, they don't have proper timestamps, and as soon as you have a format with B-Frames, all hell breaks lose. Maybe this can be improved at some point, but if you suffer from the issue, i recommend using another decoder.
H264 in AVI is actually AnnexB in AVI. If you cannot handle H264 in AVI correcly, you probably cannot handle elementary stream either.

nevcairiel
29th May 2011, 09:29
I thought we were talking about XVID. :p

ney2x
29th May 2011, 12:10
I thought we were talking about XVID. :p

Just want to say that Im talking about XVID not H264 in AVI.

Anyways, I finally managed to smoothly play AVI's using LAV CUVID, but, ffdshow is in the chain (ffdshow raw video).
External Filters in MPC-HC are as follows:
1. File Source (ASync.)
2. LAV Splitter
3. LAV CUVID Decoder
4. ffdshow Video Decoder
5. LAV Audio Decoder

* all prefer under merit

CruNcher
29th May 2011, 15:04
Just want to say that Im talking about XVID not H264 in AVI.

Anyways, I finally managed to smoothly play AVI's using LAV CUVID, but, ffdshow is in the chain (ffdshow raw video).
External Filters in MPC-HC are as follows:
1. File Source (ASync.)
2. LAV Splitter
3. LAV CUVID Decoder
4. ffdshow Video Decoder
5. LAV Audio Decoder

* all prefer under merit

hmm is your renderer output NV12 or YV12 ?
could you please try to reproduce this http://forum.doom9.org/showpost.php?p=1501021&postcount=559 with your Vista/7 Aero setup ?

ney2x
29th May 2011, 16:12
@CruNcher

I read somewhere in ffdshow thread that NV12 has bug that's why I ticked/used only YV12, and it's the best colorspace for madvr.

CruNcher
29th May 2011, 16:21
yeah i guess no further testing is needed and it's indeed the NV12 code (also tests with other colorspace converter show this) but it would be good to be absolutely sure :) so thick NV12 and if you get the same gray scale half green output like show in the screenshot in my post then we would have another hit (madvr) also i would like to know if EVR crashes like VMR does on XP :)

adam777
29th May 2011, 16:30
@CruNcher

I read somewhere in ffdshow thread that NV12 has bug that's why I ticked/used only YV12, and it's the best colorspace for madvr.

There WAS a bug, already fixed :)

ney2x
29th May 2011, 17:16
There is a half-green output here when I tick NV12, using the filters in my last post and using madvr. But, EVR-CP has no green output (perfect output).

Config 1 = half green
Windows 7 x64 Ultimate (Aero On), LAV Filters 0.28, LAV CUVID 0.6, ffdshow rev.3861 (NV12), Reclock 1.8.7.5, MPC-HC 1.5.2.3158, madvr 0.61

Config 2 = smooth (no half green or whatsoever)
same as above except renderer, EVR-CP

SamuriHL
29th May 2011, 17:23
I've seen that, as well.

nevcairiel
29th May 2011, 17:31
Known problem in ffdshow raw and NV12. And no, it was not fixed.

markanini
29th May 2011, 19:48
Known problem in ffdshow raw and NV12. And no, it was not fixed.
That clears up the issues I had.

betaking
30th May 2011, 04:29
TO:nevcairel can you make no longer required to be installed VC2010 runtime a new build ?like lav filters?

ranpha
30th May 2011, 06:42
TO:nevcairel can you make no longer required to be installed VC2010 runtime a new build ?like lav filters?

If you build LAV CUVID Decoder from the source, the requirement isn't needed anymore.