View Full Version : madVR - high quality video renderer (GPU assisted)
madshi
1st February 2014, 14:29
Note that the thing should be faster if you do everything in LL YCbCr except doing LL YCbCR -> integer RGB in the quantization step. That'll only cost you 3 color space conversions per pixel instead of 7.
The cost of an extra shader pass in D3D9 is surprisingly high. It's often better to do a lot of extra calculations in a shader/kernel instead of splitting things into two passes. So adding an extra pass to convert the video to LL YCbCr would probably be slower than doing all those conversions in the error diffusion kernel itself.
For comparison purposes you could do
a) output to 3-4bit per channel to get exaggerated results
b) do a 0.0-10.0 gradient, dither it, take a screenshot and expand levels to 0-255
Yes, that should help figuring out how much of an improvement it would be.
Sorry, I tried to be clear with my "Chroma Doubling/Chroma Scaling" - it is easy to get the two confused though.
Not your fault, I think you were relatively clear, after reading it through 3 times and turning my brain into turbo mode.
Stop posting these comparison screenshots, it makes me sad that I have no GPUs capable of NNEDI3. :(
:D
Soukyuu
1st February 2014, 15:43
Stop posting these comparison screenshots, it makes me sad that I have no GPUs capable of NNEDI3. :(I feel your pain. But seeing those comparisons at least shows it IS worth the processing power.
Curious, madVR wouldn't be able to use SLI/Crossfire, would it? Like, stacking another 260GTX in my case or something (my brother has one as well)
noee
1st February 2014, 15:54
R U guys sure the 260GTX won't do NNEDI 2x with 16neurons? For SD film material that is (height <=368) this HD6570 will do NNEDI 2x 32neurons/SM FRC off/Spline64AR/random dither.
pirlouy
1st February 2014, 16:03
I know you'll tell me it's personal ant not universal, but if you had to choose between NNEDI (2x, 32 neurons) and OpenCL error diffusion, what would be your choice ?
DragonQ
1st February 2014, 16:15
R U guys sure the 260GTX won't do NNEDI 2x with 16neurons? For SD film material that is (height <=368) this HD6570 will do NNEDI 2x 32neurons/SM FRC off/Spline64AR/random dither.
My GTS 250 can't do NNEDI 2x 16 neurons even for 25p SD material. Doesn't even come close really. A GTX 260 isn't a big step up so I'd assume it couldn't handle it either. I doubt newer nVidia drivers (once they've fixed the OpenCL <-> Direct3D interop) would help with such an old card.
noee
1st February 2014, 16:23
I know you'll tell me it's personal ant not universal, but if you had to choose between NNEDI (2x, 32 neurons) and OpenCL error diffusion, what would be your choice ?
Me, right? Easy. ErrDiff is too demanding, but I'd still go with NNEDI 2x in this instance if it wasn't. Seems like the image is clearer to my eye. My profile goes with Jinc3/AR when height>400 and it appears softer in comparison, but maybe that's because it also turns SM FRC on.
6233638
1st February 2014, 16:26
I know you'll tell me it's personal ant not universal, but if you had to choose between NNEDI (2x, 32 neurons) and OpenCL error diffusion, what would be your choice ?In most cases, NNEDI3 image doubling is going to be far more noticeable than using Error Diffusion.
However, on my display Random Dither raises the black level noticeably because it's a full array local dimming LCD. (rather than edge dimming)
The difference between totally black, and not quite black is obvious in a dark room.
I don't expect that the difference will be so stark on other displays though. You might see less noise in the image, but I don't know that it will be a dramatic change.
Soukyuu
1st February 2014, 16:27
R U guys sure the 260GTX won't do NNEDI 2x with 16neurons? For SD film material that is (height <=368) this HD6570 will do NNEDI 2x 32neurons/SM FRC off/Spline64AR/random dither.A 260GTX is about equal to a 5770 from what I remember, so yours is obviously faster.
I can do 16 neurons, but the difference vs Jinc3 AR is not really visible. And 32 neurons are out of question. ~200 framedrops per minute (edit: actually, per 10 seconds) are a pretty good indicator - and that's without error diffusion.
Also, sacrificing smooth motion for NNEDI is kind of useless. Judder or slightly blurrier lines, comes out pretty much same.
Werewolfy
1st February 2014, 18:46
I was only talking specifically about chroma with the 32 neuron recommendation. Luma definitely benefits all the way up to 256 neurons. (though some images seem to work better with lower settings, but overall higher generally seems to be better)
Some small comparisons from an old 360p video I've been testing with:
Chroma Scaling: Bicubic 75 AR | Jinc 3 AR | NNEDI3 32 Neurons
http://abload.de/img/bc75ar-chroma6cch6.pnghttp://abload.de/img/j3ar-chromafoijh.pnghttp://abload.de/img/nnedi3-32-chroma16i18.png
Luma/Chroma Scaling: Nearest Neighbor | Mitchell-Netravali | Jinc 3 AR | NNEDI3 64/32 with J3AR
http://abload.de/img/nn-dialb2i98.pnghttp://abload.de/img/mn-dial4sfzo.pnghttp://abload.de/img/j3ar-dial7ceum.pnghttp://abload.de/img/nnedi3-dialbvdjm.png
And a fullscreen example: Nearest Neighbor | Mitchell-Netravali Luma/Bicubic 75 Chroma | Jinc 3 AR | NNEDI3 64/32 with J3AR
http://abload.de/thumb/nn-fulljgfr6.jpg (http://abload.de/img/nn-fulljgfr6.jpg)http://abload.de/thumb/mn-full55c1a.jpg (http://abload.de/img/mn-full55c1a.jpg)http://abload.de/thumb/j3ar-fullmnfrq.jpg (http://abload.de/img/j3ar-fullmnfrq.jpg)http://abload.de/thumb/nnedi3-fullvdfok.jpg (http://abload.de/img/nnedi3-fullvdfok.jpg)
I'm using Mitchell-Netravali in some of the examples, as that was one of the best balances between sharpness and ringing that was available at the time when I first tested this source.
As I said, the results are ridiculously good, considering the quality of the source.
Oh, Dealdy Premonition :D For video games and anime, NNEDI3 is just amazing! Some anime in DVD have a lot of aliasing, I don't even know how they have so much aliasing. With NNEDI3, it's not perfect but A LOT better than before.
It's not that performance is an issue - I just haven't seen anything where quadrupling is beneficial over simply increasing the neuron count of doubling, and in some cases it has been detrimental - but it may be because I am only scaling to 1080p
I have a video where quadrupling luma is beneficial, it's a very crappy 240p video. The difference is not huge but there is less ringing and aliasing. I only use it if scale factor is 4.0x or bigger so NNEDI3 quadruples only very low resolution videos.
Kalanoch
1st February 2014, 20:04
I use madVR almost exclusively for anime, and I've been testing the NNEDI3 luma doubling since it was fixed to work with older nVidia drivers. I have a 2560x1600 monitor so any 720p source should not need any additional luma upscaling after being doubled to 1440p. However, when comparing NNEDI3 32/64 neurons even to just Lanczos 3-taps, there is virtually no difference in image quality. Only by inspecting screenshots of the same frame can very slight differences be seen. Is this normal behavior? When using NNEDI3 to double a 480p source and then Lanc3 to upscale the rest of the way, the improvement over standard upscaling is immediately noticeable before even looking at comparison screenshots, and honestly I was expecting something similar from 720p sources.
Here are comparison shots from a few sources: http://minus.com/mXvSgpkaLG5Dj
[edit: added a set of images where I found NNEDI3 doubling does visibly improve the quality of 720p, but I've found that to be rare, at least with my test files]
All images were taken with smooth motion and debanding on. (Ignore the large frame drop counts in some of them; I get massive frame drops on all videos regardless of rendering time if the windowed overlay mode is disabled, but I can't take screenshots otherwise.)
iSunrise
1st February 2014, 20:32
I use madVR almost exclusively for anime, and I've been testing the NNEDI3 luma doubling since it was fixed to work with older nVidia drivers. I have a 2560x1600 monitor so any 720p source should not need any additional luma upscaling after being doubled to 1440p. However, when comparing NNEDI3 32/64 neurons even to just Lanczos 3-taps, there is virtually no difference in image quality. Only by inspecting screenshots of the same frame can very slight differences be seen. Is this normal behavior? When using NNEDI3 to double a 480p source and then Lanc3 to upscale the rest of the way, the improvement over standard upscaling is immediately noticeable before even looking at comparison screenshots, and honestly I was expecting something similar from 720p sources.
Here are comparison shots from a few sources: http://minus.com/mXvSgpkaLG5Dj
All images were taken with smooth motion and debanding on. (Ignore the large frame drop counts in some of them; I get massive frame drops on all videos regardless of rendering time if the windowed overlay mode is disabled, but I can't take screenshots otherwise.)
Iīm not sure what source they used on some of your animes, but just looking at the first 2 shots, the resolution is already very high to begin with, while the clarity/sharpness itself (there also arenīt may fine details, e.x. maybe the green grass in the background) isnīt very good (it already seems to be pre-processed quite heavily), but what it does have is very low aliasing (because of the processing) and itīs very blurry (blurry haze all over the picture) and that will be not be well suited for NNEDI3 to show you any "magic" improvements (meaning, your expectations are just too high for that sample).
What NNEDI3 cannot do is magically give you back any picture details. What it can do extremely well, though, is to scale your source to your desired resolution (or near it) when playing with the upscaling factor, and depending on your other settings, with very few negative side effects (basically, removing any aliasing). So it seems that you found some examples, where NNEDI3 still does what it should do, but the subjective "wow" effect isnīt as heavily pronounced as in other samples. Thatīs why you seem a bit disappointed and I concur.
NEEDI3 does an extremely good job on very low resolution sources, where there either already is a lot of aliasing present and/or there would be additional aliasing after scaling with a sharp upscaler (at least from my limited testing).
Finally, the improvements you see for your last 480p sample shots are a lot better than some of your 720p examples, because there is a lot more aliasing present and there is a lot more scaling going on when you scale it to 1600p fullscreen. NNEDI3 is really showing itīs strengths there, itīs quite impressive how almost any aliasing is magically gone. Quadrupling may be even better on that sample (but you need to try yourself).
Just FYI, I also found that NNEDI3 chroma doubling seems not to be worth it, but I am still testing. NNEDI3 4:2:2 -> 4:4:4 (chroma upscaling tab), however, gives really impressive improvements on some samples. I really like switching between 16 -> 64 neurons (because thereīs often times a really huge difference), while everything over 64 shows only very small improvements in the samples I tried. So, when I want performance I would pick 16/32 and if I want absolutely max. quality without pushing my GPU to the absolute limit (to leave some room for other processing and some breathing room) I stop at 64.
sexus
1st February 2014, 21:51
so ive been lurking for quite some time and ive noticed the addition of NNEDI3 and image doubling and opencl error diffusion , up till now ive used mitchell-netravali for image downscaling+scale in linear light and for image upscaling Jinc3AR and for chroma upscaling as well Jinc3AR , so what can i do with a gtx titan card and good ol 314.22 drivers over here ;) that makes sense , thanks in advance guys
i mainly use this setup over here http://imouto.my/configuring-potplayer-for-gpu-accelerated-video-playback-with-dxva-or-cuda-and-also-high-performance-software-decoding/
Kalanoch
1st February 2014, 21:59
Finally, the improvements you see for your last 480p sample shots are a lot better than some of your 720p examples, because there is a lot more aliasing present and there is a lot more scaling going on when you scale it to 1600p fullscreen. NNEDI3 is really showing itīs strengths there, itīs quite impressive how almost any aliasing is magically gone. Quadrupling may be even better on that sample (but you need to try yourself).
I agree, NNEDI3 works wonders for all of the 480p content I have, and even with it enabled rendering time is still under the vsync interval of 16.67ms. As you've said, aliasing is almost completely gone even with just doubling using 32 neurons, so quadrupling doesn't have much to improve on (and doesn't, in my testing).
As far as 720p goes, it is true most of my files have very low aliasing to begin with, so I searched for one that had visible aliasing to see if NNEDI3 doubling made an improvement, and this is the best I could find:
Lanc3: http://i.minus.com/ivfhq0DvDEbvw.png
NNEDI3 32neur: http://i.minus.com/ibf8wPdbjBmw6n.png
Aliasing is most noticeable with Lanc3 on the dials of the stove and the lines of the sink next to it, and NNEDI3 doubling does remove it.
cyberbeing
1st February 2014, 22:09
Only by inspecting screenshots of the same frame can very slight differences be seen. Is this normal behavior?
From my own testing on anime, I'd say this is normal. As source resolution increases, the behavior of linear interpolation algorithms improves quite a bit. If your source video does not have any aliasing or semi-broken lines, NNEDI3 doubling will have nothing obvious to improve upon. It may have slightly increased sharpness and no residual halos like madVR anti-ringing can leave, but that's about it. That said, find a release mastered at 540p from SHAFT or similar which has horrible aliasing in the source, and you'd likely see a very noticeable increase in quality from NNEDI3 doubling.
This is similar to the reason why, prior to NNEDI3, I've historically preferred and recommended Catmull-Rom for 4:2:0 -> 4:4:4 chroma upsampling in madVR for HD content. For chroma, ringing is more of a problem than aliasing and Catmull-Rom is the most mathematically accurate for 2x scaling compared to the other bicubic resamplers. Even for SD content with poor chroma quality, the difference in aliasing wasn't great enough in 0.86.11 to use something else full-time.
Now that profile support exists in madVR 0.87, a lot of possibilities open for fine-tuning settings based on resolution. I think there is no question that the benefits of NNEDI3 favor low resolution sources most. As source resolution increases to 720p and beyond, while it is still usually a net positive increase in quality in some way, the processing power requirements become prohibitive very quickly.
Edit: Kalanoch, you have the right idea with your reply to iSunrise above. Didn't see it until I had already written this based on your older post.
That's what I get for taking a 10 min break in the middle of writing. ;)
Mano
1st February 2014, 23:43
is it normal for mpc to use 1.5gb ram then another 500mb in exclusive mode playing a 322mb mkv anime?
Only if you have Avisynth or something similar running.
i dont think i have any program like that running.
Shiandow
2nd February 2014, 00:06
Hmmmm... It's an interesting idea. Though, I think I would stick to simple linear light instead of LAB, because I doubt that LAB would bring enough benefit to justify the extra conversion costs. Or what do you think? I could, however, calculate the error in linear light YCbCr and spread it to the neighbor pixels that way. That should (at least partially) losen the strict "each channel on its own" processing. Not sure how that would affect the "look" of error diffusion...
From what I can see error diffusion works linearly in the errors, since transforming the errors from LL to LL YCbCr is a linear operation this shouldn't give you a different result.
You also shouldn't forget to round using the distance in linear light, which favors darker pixels. Actually this is the part where transforming to LL YCbCr would make a difference, since this will effect which of the possible RGB values is closest.
cyberbeing
2nd February 2014, 00:08
is it normal for mpc to use 1.5gb ram then another 500mb in exclusive mode playing a 322mb mkv anime?
Do you use XySubFilter with a very high CPU queue setting of 64 in madVR?
Asmodian
2nd February 2014, 00:30
Curious, madVR wouldn't be able to use SLI/Crossfire, would it? Like, stacking another 260GTX in my case or something (my brother has one as well)
madVR does not use SLI. Actually simply enabling SLI has a huge negative performance hit, at least on my system.
For example at my 720p settings:
If I disable SLI I get 38ms rendering times, 84% GPU0 (1071Mhz), 0% GPU1 (324Mhz).
If I enable SLI I get 84ms rendering times, 79% GPU0 (1071Mhz), 30% GPU1 (836Mhz).
Oddly while in SLI mode the memory usage of both cards is identical but the memory controller for GPU1 is idle.
If I force a SLI rendering mode (AFR1 or AFR2) I get similar performance and horrible flickering (the second GPU's frames are black?). This flickering has happened with all versions of madVR I have ever used when forced into a SLI rendering mode.
I am using Titans and running drivers 327.23.
so ive been lurking for quite some time and ive noticed the addition of NNEDI3 and image doubling and opencl error diffusion , up till now ive used mitchell-netravali for image downscaling+scale in linear light and for image upscaling Jinc3AR and for chroma upscaling as well Jinc3AR , so what can i do with a gtx titan card and good ol 314.22 drivers over here ;) that makes sense , thanks in advance guys
I have a 2560x1440 monitor, if you are using a lower resolution you might be able to get away with higher settings.
I needed to setup profiles but for <720p I use:
32 neuron NNEDI3 chroma 4:2:0 -> 4:4:4
128 neuron NNEDI3 luma doubling if scaling is >= 2.0
32 neuron NNEDI3 luma quadrupling if scaling is >= 4.0
Jinc3AR image upsampling (very small performance hit relative to lanczos so might as well) ;)
Catmul-Rom AR+LL image downscaling
For >= 720p I use:
Same as above except 64 neuron NNEDI3 luma doubling if scaling is >= 2.0
No trade quality for performance options. Smooth motion on when watching 24fps on a 60Hz display.
sexus
2nd February 2014, 01:35
what happens if i just set everything to 64 neurons according to some members here 32 is different as in not acceptable compared to 64 neurons and 128 is abit too sharp then again , from what ive been reading , would like some thought on this, and what do you mean by 32 neuron NNEDI3 chroma 4:2:0 -> 4:4:4 , i know im a noob, is it chroma upscaling or the image doubling chroma aka doubling / quadrupling of chroma resolution that you mean by it, cause ive set chroma upscaling to use NEEDI3 64 neurons , is this ok, kinda confused here with all this new config stuff
Anima123
2nd February 2014, 02:11
I am just wondering if there's proper mobile video card that is capable of these heavy load of GPU of madVR. Do you guys have any recommendation for a specific laptop for htpc purpose? Usually I can easily find some for game purpose.
Asmodian
2nd February 2014, 02:50
what happens if i just set everything to 64 neurons according to some members here 32 is different as in not acceptable compared to 64 neurons and 128 is abit too sharp then again , from what ive been reading , would like some thought on this
The way I understand the tests so far is that there are individual examples where 16, 32, & 64 look different but on the whole the more the better.
is it chroma upscaling or the image doubling chroma aka doubling / quadrupling of chroma resolution that you mean by it, cause ive set chroma upscaling to use NEEDI3 64 neurons , is this ok, kinda confused here with all this new config stuff
64 is fine for chroma upscaling (4:2:0 -> 4:4:4).
I was thinking of changing my settings by turning off open cl dithering and turning up chroma upscaling. I am on a well calibrated 27" 2560x1440 IPS so I cannot see the random dither. I don't think I can see the difference either way on this display so I should probably leave chroma upscaling on 32 neurons along with random dither to save the watts. :o
Stereodude
2nd February 2014, 03:30
I am just wondering if there's proper mobile video card that is capable of these heavy load of GPU of madVR. Do you guys have any recommendation for a specific laptop for htpc purpose? Usually I can easily find some for game purpose.What features do you want to use and what sort of content are you looking to play back?
Q-the-STORM
2nd February 2014, 03:42
I am just wondering if there's proper mobile video card that is capable of these heavy load of GPU of madVR. Do you guys have any recommendation for a specific laptop for htpc purpose? Usually I can easily find some for game purpose.
I have a GTX 560M in my laptop...
no dropped frames when using NNEDI3 on chroma and image doubling (even at 256 neurons), jinc3 on image upscaling (with anti-ringing and linear light), debanding activated, smooth motion activated and all quality for performance settings disabled...
haven't come across content I haven't been able to play... though I only play up to 29.97fps, more fps is probably gonna choke...
btw I have a bug...
I open a file in mpc-hc it works great, but if I open another file without closing mpc-hc first or I drag a file into mpc-hc, I get a black frame... (i checked "use same play for each media file")... When I get the black frame I close mpc-hc by pressing X, and the process disapears in taskmanager, but when I try to open a file, mpc-hc does not open, it only shows up in taskmanager.... when I hit "end process", I can open a file again...
if I open a file and then open another file without closing mpc-hc and then open another file again, mpc-hc doesn't react at all anymore and I have to hit end process...
cyberbeing
2nd February 2014, 03:47
what happens if i just set everything to 64 neurons according to some members here 32 is different as in not acceptable compared to 64 neurons
If you were referring to my statements about this, my preference for at least 64 neurons was only for NNEDI3 Luma only. Yet since madshi earlier showed an example of how 16 neurons can produce a lot of artifacts, my misgivings about using 32 neurons are much less now.
Using NNEDI3 for 4:2:0->4:4:4 "chroma upscaling" is a bit different, as even using 16 neurons seems to beat out all other algorithms by quite a large margin in my tests. 6233638 stated earlier that he found NNEDI 32 neurons result in a good quality:performance ratio for "chroma upscaling" on his samples. I'd take his word for it that it's probably not worth going much higher than that with "chroma upscaling" unless you have a lot of GPU performance headroom to spare.
i know im a noob, is it chroma upscaling or the image doubling chroma aka doubling / quadrupling of chroma resolution that you mean by it, cause ive set chroma upscaling to use NEEDI3 64 neurons , is this ok, kinda confused here with all this new config stuff
It can be a bit confusing with the naming. madshi should probably consider "chroma upscaling" to "rgb conversion" or similar.
In any case, when someone refers to 4:2:0 -> 4:4:4 they are talking about the setting name "chroma upscaling" in madVR.
The general consensus so far about chroma "image doubling", seems to be that it has a rather poor performance:quality ratio.
For example, my testing has shown that "image doubling" set to 16 neurons for both luma and chroma, gave better results than 32 neurons luma only. Yet the problem was using both luma & chroma doubling at 16 neurons, had similar performance cost to 64 neurons "image doubling" luma only with worse quality. So while I have seen image doubling for chroma does improve quality, my GTX 770 isn't really powerful enough to enable it freely without needing to reduce the NNEDI3 luma quality or otherwise running my GPU hot and loud.
I was thinking of changing my settings by turning off open cl dithering
This is what I did a couple day ago when I reshuffled the settings of my resolution based madVR profiles. I came to the conclusion that I only really cared about the benefits of OpenCL dither on 1080p Blu-ray content, and the random dither actually had a beneficial effect on re-compressed content which may have compression artifacts or banding which I do not what to see a dither pattern for.
Asmodian
2nd February 2014, 04:50
At 720p and below NNEDI3 64 chroma upsampling feels pretty cheap (vs 32) but at 1080p it is more significant and with 4k30p NNEDI3 16 chroma upsampling is barely fast enough to use on my card. OpenCL dither has a fairly significant cost, a fairly constant 7.5 to 5 ms when using smooth motion on a 60 Hz 2560x1440 screen with a 1071Mhz Titan and Windows 8.1 :p.
For OpenCL dither vs NNEDI3 64 chroma upsampling I think I will actually stay with OpenCL dither; after more testing think I might be able to see, and enjoy, the lower noise level with high quality content (anime blu-rays). :D
On a 1080p TV I image OpenCL dither has an even better quality/performance benefit, not to mention a local dimming LCD.
cyberbeing
2nd February 2014, 06:00
On my GTX 770 ~1200Mhz the most it can handle with 720p content is around NNEDI3 32 chroma upsampling & 64 luma doubling & random dithering which brings render times to ~38ms, barely enough for 23.976fps content. It's reassuring to hear that OpenCL performance continues to scale, allowing your Titan quite a bit more head room.
I'm curious, what is the most your Titan can handle with something like 720p 60fps -> 1440p NNEDI3 scaling?
Stereodude
2nd February 2014, 06:10
I have a GTX 560M in my laptop...
no dropped frames when using NNEDI3 on chroma and image doubling (even at 256 neurons), jinc3 on image upscaling (with anti-ringing and linear light), debanding activated, smooth motion activated and all quality for performance settings disabled...
haven't come across content I haven't been able to play... though I only play up to 29.97fps, more fps is probably gonna choke...I don't think that's possible. People with much more capable desktop cards can't do what you're claiming.
Stephen R. Savage
2nd February 2014, 06:31
On my NV GT650M, the original 0.87 build gave me a black frame when using nnedi3 chroma scaling. Now on 0.87.4 I get a green frame instead.
the_weirdo
2nd February 2014, 06:40
On my NV GT650M, the original 0.87 build gave me a black frame when using nnedi3 chroma scaling. Now on 0.87.4 I get a green frame instead.
http://forum.doom9.org/showthread.php?p=1664667#post1664667
You have to downgrade to NVidia 327.23 drivers (or older) to make the OpenCL features work with NVidia.
Q-the-STORM
2nd February 2014, 06:54
I don't think that's possible. People with much more capable desktop cards can't do what you're claiming.
well... either my card can handle it, or madVR is ignoring my settings... but I don't know how that would happen...
just played a 720p24 file, GPU usage went up and stabilized on 75%....
XMonarchY
2nd February 2014, 07:09
Specs - GTX 770 2Gb with 327.23 drivers and Windows 8.1.
I use NNEDI3 Chroma Upscaling (64 neurons) with NNEDI3 Chroma & Luma Image Doubling (16 neurons) for any SD or 720p content on my 1080p LCD TV. I keep the same settings for 1080p content, so I guess that means Image Doubling is not used for 1080p, but NNEDI3 Chroma Upscaling (64 neurons) is still used. I also use OpenCL dithering, MPC-HC, LAV Video - CUVID decoder, ArgyllCMS 3DLUT.
I see that many people prefer JINC3AR for Chroma Upscaling when using NNEDI3 Image Doubling - is that a higher quality combination than using NNEDI3 for both - Image Doubling AND Chroma Upscaling? To my eyes, 1080p videos look better with NNEDI3 than with JINC3AR, but I could be wrong...
My TV is set to 4:2:2 (HDMI to HDMI, 0-255) because 4:4:4 does not allow me to calibrate CMS properly. Does that mean I am not getting the benefits of Chroma Upscaling, OpenCL dithering, and Image Doubling??? Maybe its a placebo, but NNEDI3 Chroma Upscaling with NNEDI3 Image Doubling and OpenCL dithering + extremely accurate 3DLUT looks absolutely stunning!
NNEDI3 is shown to have some "other artifacts" but I have not seen any... What are they? When would I see them?
Farfie
2nd February 2014, 07:23
well... either my card can handle it, or madVR is ignoring my settings... but I don't know how that would happen...
just played a 720p24 file, GPU usage went up and stabilized on 75%....
Well for starters, 720p to 1080p isn't image doubling, so it's not using it there. Still, my GTX 680 wouldn't even be able to do 256 neuron chroma with nothing else, let alone smooth motion, error diffusion, and luma doubling at the same time. And that's just 720->1080 like I (believe) you are doing. Perhaps you have an external monitor connected to your laptop which is higher than 1080?
cyberbeing
2nd February 2014, 07:39
well... either my card can handle it, or madVR is ignoring my settings... but I don't know how that would happen...
just played a 720p24 file, GPU usage went up and stabilized on 75%....
If your GPU is missing an OpenCL driver or libraries, madVR will silently ignore your settings.
If you run GPU-Z (http://www.techpowerup.com/downloads/2329/techpowerup-gpu-z-v0-7-6/) is the OpenCL checkbox checked?
Do you have a registry key at "HKEY_CURRENT_USER\Software\madshi\madVR\OpenCL\GeForce GTX 560M" which contains data?
Otherwise, as Farfie mentioned, image doubling likely is not being used since your screen resolution is too low, and you haven't set image doubling to "always - if upscaling is needed".
THX-UltraII
2nd February 2014, 08:24
Can someone explain to me the difference between NNEDI3 in chroma upscaling and NNEDI3 for image doubling? I m looking for the highest PQ for my setup: play 2K blu-ray content and upscale it to 4K and feed this to my native 4K display device.
Anima123
2nd February 2014, 08:32
I am considering to buy a game laptop with a GTX780M card, just to benefit from madVR's highest possible quality. Experienced with nned3 with Intel HD4000, result in lots of dropped frames, the quality of 456p videos is just amazing though. That quality is in my mind, never been achieved before.
Q-the-STORM
2nd February 2014, 08:33
You are right... I was wondering why nnedi didn't look different than jinc...
fixed opencl and now it seems to pick up my settings... (with dropped frames as expected)
it kinda sucks that madVR doesn't give a message "opencl not available, using different settings" something like that...
well... I guess it's time to build myself a new rig... madVR not at it's limit is a no-go for me ^^
can GTX 780 (Ti) handle full NNEDI settings plus opencl dithering, smooth motion, debanding etc.?
pie1394
2nd February 2014, 09:34
can GTX 780 handle full NNEDI settings plus opencl dithering, smooth motion, debanding etc.?
For 24fps FILM type contents, it should be fast enough for GTX780(900MHz,2304 CUDA, 384-bit GDDR5-6000), which is theroetically faster than HD7970 (925MHz,2048 GCN,384-bit GDDR5-5500)...
However I have posted it previously that HD7970 is even unable to handle DVD 720x480i60 16:9 contents to 1080p60 output with following options:
1. DXVA2 MPEG2 VLD (very minor mem bandwidth used on GPU)
2. Vector-adaptive deinterlacing + frame rate doubling
3. NNEDI3 Image Doubling (default --> Luma 64, Chroma16)
4. All Jinc3AR upscaling
5. debanding_with_Angle_detection
It is just fast enough to handle 54 ~ 55 fps. With OpenCL dithering, it might not even approach 50 fps ...
When madshi can rewrite everything in the OpenCL rendering pipeline, I guess the performance will be much better than the current situation with OpenCL + D3D back-and-force inter-op overhead.
In my personal opinion, OpenCL should be the better future solution if he wants to extend the support on multi-platforms or mobile devices. When the WebGL + WebCL standard's support is more mature on most browsers, it has higher chance to reuse the existing OpenCL kernel codes in the video renderer for video playback in browser -- It will be mad and fantastic to use madVR in the mobile web browsers and video players. :D
bacondither
2nd February 2014, 09:41
On a 1080p TV I image OpenCL dither has an even better quality/performance benefit, not to mention a local dimming LCD.
Random dithering was changed in the debanding testbuilds. If the pixel(s) have a integer value of 0,0,0 ie black, no dither will be applied and local dimming LCDs can shut down the backlight completly.
So why would error diffusion dither be better for local dimming LCDs?
ryrynz
2nd February 2014, 10:24
I think now more than ever having a benchmark component to MadVR would be insanely useful.
omarank
2nd February 2014, 10:29
Alright. So the next question would be, just to confirm: The problem does occur with v0.87.4 both with profiles activated and deactivated, is that correct? So it's not the profiling that is causing the problem, but the switch "only if there would be judder..." fails to work properly for you, when using v0.87.4, right? If that is correct, then please create a debug log for me with a video where SM FRC gets turned on, although it should be deactive. The log should tell me why madVR thinks it should be activated. And maybe you could also upload a small sample of that video for me to test with, so we're looking at the same thing. And if you use deint, please tell me whether you're using forced film mode or not.
Yes that is correct. I have uploaded the debug log and video sample here:
http://www.mediafire.com/?132v654vu5zfw
It's a 29.97 fps interlaced video. I am not using forced film mode, but video mode deinterlacing here.
6233638
2nd February 2014, 11:35
Random dithering was changed in the debanding testbuilds. If the pixel(s) have a integer value of 0,0,0 ie black, no dither will be applied and local dimming LCDs can shut down the backlight completly.
So why would error diffusion dither be better for local dimming LCDs?This does not apply if you are using a 3DLUT.
Random Dither only gets disabled on black if you are using madVR with the "disable calibration controls for this display" or "my display is already calibrated" options.
Error Diffusion seems to work correctly with 3DLUTs.
DarkSpace
2nd February 2014, 12:51
I finally got suspicious of my excellent OpenCL performance (my card is an AMD HD6970M), and decided to verify that Image Doubling is actually being used, and it turns out that no NNEDI features appear to be used at all. I also updated my drivers and re-tested, but the issue persists.
To test, I set my Image Upscaling algorithm to Nearest Neighbor (so I'd be able to spot it easily), and played some video at doubled resolution (with Image Doubling enabled, of course). The output had obvious NN scaling applied. I also tried to increase the video scaling factor to something a little more than 2, but the issue stayed the same.
Is this a bug (it seems to silently fail and fall back to using Image Upscaling or Image Downscaling settings, depending on whether image doubling should have resulted in a resolution smaller or larger than the output resolution), or am I doing something incredibly wrong?
Do you need a Debug Log?
cca
2nd February 2014, 12:55
I finally got suspicious of my excellent OpenCL performance (my card is an AMD HD6970M), and decided to verify that Image Doubling is actually being used, and it turns out that no NNEDI features appear to be used at all. I also updated my drivers and re-tested, but the issue persists.
To test, I set my Image Upscaling algorithm to Nearest Neighbor (so I'd be able to spot it easily), and played some video at doubled resolution (with Image Doubling enabled, of course). The output had obvious NN scaling applied. I also tried to increase the scaling factor to something a little more than 2, but the issue stayed the same.
Is this a bug (it seems to silently fail and fall back to using Image Upscaling or Image Downscaling settings, depending on whether image doubling should have resulted in a resolution smaller or larger than the output resolution), or am I doing something incredibly wrong?
Do you need a Debug Log?
Assuming you're using the latest drivers for your card, you're not supposed to increase the NNEDI factor, but decrease it. That number the lower it is, the sooner NNEDI will be used, not the opposite.
Stereodude
2nd February 2014, 14:08
However I have posted it previously that HD7970 is even unable to handle DVD 720x480i60 16:9 contents to 1080p60 output with following options:
1. DXVA2 MPEG2 VLD (very minor mem bandwidth used on GPU)
2. Vector-adaptive deinterlacing + frame rate doubling
3. NNEDI3 Image Doubling (default --> Luma 64, Chroma16)
4. All Jinc3AR upscaling
5. debanding_with_Angle_detection FWIW, I can do the following on my 7790 for DVD to 1806x1016 (odd resolution due to overscan compensation on my CRT HDTV).
1. Software MPEG2 decoding
2. madVR IVTC
3. NNEDI3 Image Doubling (Luma 64, Chroma 32)
4. All Jinc3AR upscaling
5. smooth motion on
I'm not using OpenCL error diffusion though.
DragonQ
2nd February 2014, 14:12
If you're restricting yourself to 30 fps material you're obviously going to be able to use higher settings than would work for 50/60 fps material.
iSunrise
2nd February 2014, 15:04
it kinda sucks that madVR doesn't give a message "opencl not available, using different settings" something like that...
Maybe madshi can include something like an OpenCL checkbox like GPU-Z somewhere or even better, grey out all the related OpenCL settings if it doesnīt detect working OpenCL support, so you canīt even select them. This would lower the confusion a lot.
The 8472
2nd February 2014, 15:26
If you're restricting yourself to 30 fps material you're obviously going to be able to use higher settings than would work for 50/60 fps material.
With profiles there's no need to restrict yourself anymore. Optimal settings for any scenario.
pie1394
2nd February 2014, 16:52
Just retested various samples on hand to determine what the limitation is on HD7970 with madVR 0.87.4. The safe profile rules are listed as below:
if (srcWidth > 1920) and (srcHeight > 1080) "UHD"
else if (srcWidth <= 1024) and (srcHeight <= 576) "SD"
else if ( deintFps >= 50 ) "HDi"
else "HD"
Basically all profiles share the same configuration like
- debanding + angle_detection
- image upscaling: Jinc3AR
- image downscaling: Catmull-Rom + linear-light
- Turn off all "trade quality for performance" settings
- no dithering
- no GPU DXVA2 decode
The different part is just the chroma upscaling to control the madVR's workload always below 16.6ms. In reality for Jinc3AR mode it only needs 6 ~ 10 ms with various source resoultion to 1920x1080, and 12ms for 3840x2160 source's Luma with Catmull-Rom + linear-light. Chroma NNEDI3 2x doubler + D3D-OpenCL inter-op make it increased to 13 ~ 3x ms depending on content resolution and neuron count.
[UHD]
Jinc3AR
[HD]
NNEDI3 32 neurons
[HDi]
NNEDI3 16 neurons
[SD]
NNEDI3 128 neurons
I just can say that madVR's chroma NNEDI3 4:2:0 to 4:4:4 somehow also helps the TV's super-resolution engine performance over Jinc3AR scaling on motion objects of clean BD contents with my subjective observation. Yet it is quite difficult to tell any big difference in single frame comparsion.
ps: The TV is Sony 65HX920, adjusted for normal lighting room viewing condition -- thus higher peak white and more light leakage viewed in dark room condition.
mindz
2nd February 2014, 16:55
I use a Windows font size of 125%, with this setting i cannot choose NNEDI3 as Image upscaling method:
https://www.dropbox.com/s/dd3mo7mk8vcgalm/nnedi3noshow.png
IMG doesnt work i think. Check the following link for picture:
https://www.dropbox.com/s/dd3mo7mk8vcgalm/nnedi3noshow.png
shimaflarex
2nd February 2014, 17:13
I use a Windows font size of 125%, with this setting i cannot choose NNEDI3 as Image upscaling method:
https://www.dropbox.com/s/dd3mo7mk8vcgalm/nnedi3noshow.png
IMG doesnt work i think. Check the following link for picture:
https://www.dropbox.com/s/dd3mo7mk8vcgalm/nnedi3noshow.png
No one can select NNEDI as an image upscaling method.
There's no radio button under Jinc.
You need to select NNEDI3 as an image doubling algorithm (NNEDI3 can only double the image size).
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.