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 > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 1st February 2014, 14:29   #22301  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
Quote:
Originally Posted by The 8472 View Post
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.

Quote:
Originally Posted by The 8472 View Post
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.

Quote:
Originally Posted by 6233638 View Post
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.

Quote:
Originally Posted by DragonQ View Post
Stop posting these comparison screenshots, it makes me sad that I have no GPUs capable of NNEDI3.
madshi is offline   Reply With Quote
Old 1st February 2014, 15:43   #22302  |  Link
Soukyuu
Registered User
 
Soukyuu's Avatar
 
Join Date: Apr 2012
Posts: 169
Quote:
Originally Posted by DragonQ View Post
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)
__________________
AMD Phenom II X4 970BE | 12GB DDR3 | nVidia 260GTX | Arch Linux / Windows 10 x64 Pro (w/ calling home shut up)
Soukyuu is offline   Reply With Quote
Old 1st February 2014, 15:54   #22303  |  Link
noee
Registered User
 
Join Date: Jan 2007
Posts: 530
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.
__________________
Win7Ult || RX560/4G || Ryzen 5
noee is offline   Reply With Quote
Old 1st February 2014, 16:03   #22304  |  Link
pirlouy
_
 
Join Date: May 2008
Location: France
Posts: 692
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 ?
pirlouy is offline   Reply With Quote
Old 1st February 2014, 16:15   #22305  |  Link
DragonQ
Registered User
 
Join Date: Mar 2007
Posts: 934
Quote:
Originally Posted by noee View Post
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.
__________________
TV Setup: LG OLED55B7V; Onkyo TX-NR515; ODroid N2+; CoreElec 9.2.7
DragonQ is offline   Reply With Quote
Old 1st February 2014, 16:23   #22306  |  Link
noee
Registered User
 
Join Date: Jan 2007
Posts: 530
Quote:
Originally Posted by pirlouy View Post
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.
__________________
Win7Ult || RX560/4G || Ryzen 5
noee is offline   Reply With Quote
Old 1st February 2014, 16:26   #22307  |  Link
6233638
Registered User
 
Join Date: Apr 2009
Posts: 1,019
Quote:
Originally Posted by pirlouy View Post
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.
6233638 is offline   Reply With Quote
Old 1st February 2014, 16:27   #22308  |  Link
Soukyuu
Registered User
 
Soukyuu's Avatar
 
Join Date: Apr 2012
Posts: 169
Quote:
Originally Posted by noee View Post
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.
__________________
AMD Phenom II X4 970BE | 12GB DDR3 | nVidia 260GTX | Arch Linux / Windows 10 x64 Pro (w/ calling home shut up)

Last edited by Soukyuu; 1st February 2014 at 16:48.
Soukyuu is offline   Reply With Quote
Old 1st February 2014, 18:46   #22309  |  Link
Werewolfy
Registered User
 
Join Date: Feb 2013
Posts: 137
Quote:
Originally Posted by 6233638 View Post
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


Luma/Chroma Scaling: Nearest Neighbor | Mitchell-Netravali | Jinc 3 AR | NNEDI3 64/32 with J3AR


And a fullscreen example: Nearest Neighbor | Mitchell-Netravali Luma/Bicubic 75 Chroma | Jinc 3 AR | NNEDI3 64/32 with J3AR


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 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.
Quote:
Originally Posted by 6233638 View Post
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.

Last edited by Werewolfy; 1st February 2014 at 18:48.
Werewolfy is offline   Reply With Quote
Old 1st February 2014, 20:04   #22310  |  Link
Kalanoch
Registered User
 
Join Date: Jan 2014
Posts: 10
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.)

Last edited by Kalanoch; 1st February 2014 at 23:45.
Kalanoch is offline   Reply With Quote
Old 1st February 2014, 20:32   #22311  |  Link
iSunrise
Registered User
 
Join Date: Dec 2008
Posts: 496
Quote:
Originally Posted by Kalanoch View Post
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.

Last edited by iSunrise; 1st February 2014 at 21:23.
iSunrise is offline   Reply With Quote
Old 1st February 2014, 21:51   #22312  |  Link
sexus
Registered User
 
sexus's Avatar
 
Join Date: Apr 2011
Posts: 198
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/

Last edited by sexus; 1st February 2014 at 21:55.
sexus is offline   Reply With Quote
Old 1st February 2014, 21:59   #22313  |  Link
Kalanoch
Registered User
 
Join Date: Jan 2014
Posts: 10
Quote:
Originally Posted by iSunrise View Post
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.
Kalanoch is offline   Reply With Quote
Old 1st February 2014, 22:09   #22314  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by Kalanoch View Post
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.

Last edited by cyberbeing; 1st February 2014 at 22:25.
cyberbeing is offline   Reply With Quote
Old 1st February 2014, 23:43   #22315  |  Link
Mano
Registered User
 
Join Date: Jul 2008
Posts: 54
Quote:
Originally Posted by ryrynz View Post
Quote:
Originally Posted by Mano View Post
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.
Mano is offline   Reply With Quote
Old 2nd February 2014, 00:06   #22316  |  Link
Shiandow
Registered User
 
Join Date: Dec 2013
Posts: 753
Quote:
Originally Posted by madshi View Post
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.

Last edited by Shiandow; 2nd February 2014 at 00:24.
Shiandow is offline   Reply With Quote
Old 2nd February 2014, 00:08   #22317  |  Link
cyberbeing
Broadband Junkie
 
Join Date: Oct 2005
Posts: 1,859
Quote:
Originally Posted by Mano View Post
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?
cyberbeing is offline   Reply With Quote
Old 2nd February 2014, 00:30   #22318  |  Link
Asmodian
Registered User
 
Join Date: Feb 2002
Location: San Jose, California
Posts: 4,407
Quote:
Originally Posted by Soukyuu View Post
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.

Quote:
Originally Posted by sexus View Post
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.

Last edited by Asmodian; 2nd February 2014 at 01:32.
Asmodian is offline   Reply With Quote
Old 2nd February 2014, 01:35   #22319  |  Link
sexus
Registered User
 
sexus's Avatar
 
Join Date: Apr 2011
Posts: 198
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
Quote:
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

Last edited by sexus; 2nd February 2014 at 01:41.
sexus is offline   Reply With Quote
Old 2nd February 2014, 02:11   #22320  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 504
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.
Anima123 is offline   Reply With Quote
Reply

Tags
direct compute, dithering, error diffusion, madvr, ngu, nnedi3, quality, renderer, scaling, uhd upscaling, upsampling

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 01:19.


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