View Full Version : madVR - high quality video renderer (GPU assisted)
huhn
5th February 2017, 04:01
Here's a little comparison comparing various algorithms when upscaling pixel art (highly aliased sources):
low-res original (http://madVR.com/mario/org.png) -- | -- Jinc (http://madVR.com/mario/Jinc.png) -- | -- waifu2x (http://madVR.com/mario/waifu2x.png) -- | -- NGU very high (http://madVR.com/mario/NGUveryHigh.png) -- | -- super-xbr 100 (http://madVR.com/mario/superxbr.png) -- | -- NNEDI3-16 (http://madVR.com/mario/nnedi16.png) -- | -- NNEDI3-256 (http://madVR.com/mario/nnedi256.png) -- | -- NGU pixart low (http://madVR.com/mario/NGUpixartLow.png) -- | -- NGU pixart med (http://madVR.com/mario/NGUpixartMed.png) -- | -- NGU pixart very high (http://madVR.com/mario/NGUpixartVeryHigh.png)
As you can see, with sources like this, linear resamplers like Jinc fail. Also the standard "NGU Very High" and even the mighty waifu2x fail here. super-xbr does fine, after all that's exactly what it was made for. But best in class are NNEDI3 and NGU pixart.
Which do you prefer?
(Zooming a little into the images will reveal more.)
i think the general lines on NGU pixart low are to thin it get's better with medium but with very high the background lines are really strange/uneven and nnedi3 wins there hands down.
even NGU veryhigh wins there most of the part the line thickness is really good! but there or other obvious issues with NGU very high.
mario him self looks "best with pixart very high. his eyes are to small but compared to super XBR they are pretty good.
i have a huge problem selecting a winner here...
Luma only wouldn't be much (if any) faster.
NGU low will probably be slower on Polaris, but on other GPUs it's nearly the same speed as super-xbr.
so my last standing argument is that NGU is "hit or miss". super XBR works with everything.
huhn
5th February 2017, 04:12
2) Is it possible for Chroma to scale in 1-step like Super-XBR when doubling? Like If I've selected NGU High for Chroma Scaling and selected NGU High for Luma Doubling, to just have the option under it for Chroma Doubling grey out and have it scale in a single step without the need for doing Bicubic 60?
it can't be done. NGU can only do x2 scaling (x4 too but what ever) and not all scaling operation are x2.
and on top of it quadrupling chroma is questionable...
NGU-VeryHigh still performs quite slow on my 1080 GTX and drops frames down to 0-2 render queue, so it's still unuseable. Maybe in another 2 years when there's video cards fast enough. Same for Chroma. High works ok, but cuts it pretty close for 24p content. 30p and higher content is not possible with NGU because it can't render fast enough with any current graphics card. I never figured out how to make profiles, so I just make one setting for all content.
my 1060 can do 1080p23 -> 2160p23 NGU very high luma only without problems.
ryrynz
5th February 2017, 04:19
Which do you prefer?
NICE. The low preset is terrible though IMO, I would remove it as the improvement from low to medium is quite considerable. I need to play with it more to state which I prefer, it's going to take some time..
I still do prefer the slightly softer more natural look of NNEDI3, but a softer downscaler or soften edges 1 might make it comparable.
Any possibility for control of sharpness within the algorithm or do we have to rely on additional resizers and postprocessing?
AngelGraves13
5th February 2017, 04:26
my 1060 can do 1080p23 -> 2160p23 NGU very high luma only without problems.
I have a 1440p screen, so it has to scale back down and the render times are about +-35ms, which is far too high for 1080p content, as it can sometimes spike past 42ms, throwing off audio sync.
Guess I'll stick with either Jinc or Super-XBR.
Looking forward to getting that 27 inch 4K HDR monitor this year from Asus :)
huhn
5th February 2017, 04:46
still no problem for my 1060 and quite some headroom left.
Sunset1982
5th February 2017, 10:23
Is there a way to set Hotkeys for different profiles?
If there will be a new NGUsmooth variant for lower quality sources, it might make sence to be able to change the profile ota when watching high or low quality material.
nevcairiel
5th February 2017, 10:44
Is there a way to set Hotkeys for different profiles?
Check the settings of the profile groups, you can assign a keyboard shortcut there.
Sunset1982
5th February 2017, 11:17
Check the settings of the profile groups, you can assign a keyboard shortcut there.
ah ok, thx. Is there a madvr key table anywhere, to see what keys are free and which are used?
madshi
5th February 2017, 12:07
i think the general lines on NGU pixart low are to thin it get's better with medium but with very high the background lines are really strange/uneven and nnedi3 wins there hands down.
even NGU veryhigh wins there most of the part the line thickness is really good! but there or other obvious issues with NGU very high.
mario him self looks "best with pixart very high. his eyes are to small but compared to super XBR they are pretty good.
i have a huge problem selecting a winner here...
NICE. [...] I need to play with it more to state which I prefer, it's going to take some time..
I still do prefer the slightly softer more natural look of NNEDI3, but a softer downscaler or soften edges 1 might make it comparable.
Any possibility for control of sharpness within the algorithm or do we have to rely on additional resizers and postprocessing?
Have you tried zooming into the images to see the differences more clearly?
For example, here are NNEDI3-256 (http://madVR.com/mario/nnedi256-300.png) and NGU pixart med (http://madVR.com/mario/NGUpixartMed-300.png) at 300% zoom. Where does NNEDI3 look more natural here? The "M" in "TIME" looks better with NNEDI3-256. In every other part of the image, I personally prefer NGU pixart med. NNEDI3 also has a lot of very noticeable artifacts. And btw, NNEDI3-256 is about 3000% slower compared to NGU pixart med (!!!).
Or let's look at a photo instead of a game screenshot. The low-res photo (http://madVR.com/mario/clownOrgBox.bmp) was downscaled using a box filter so it has more aliasing than usual. Here's again how NNEDI3-256 (http://madVR.com/mario/clownNNEDI3-256.png) and NGU pixart med (http://madVR.com/mario/clownNGUpixartMed.png) compare.
I suppose I could offer even softer NGU pixart variants, but is it really needed? I posted a pixart image comparison with a very old very aliased game screenshot because that's really the hardest image type to get upscaled nicely. I think with real world images NGU and NNEDI3 look very similar.
Would be great if you could do some real world comparisons.
so my last standing argument is that NGU is "hit or miss". super XBR works with everything.
Are NNEDI3 and NGU pixart "his or miss", too? I think they beat super-xbr pretty much all the time.
I do not want to leave Polaris users behind, though, so I might keep super-xbr for the time being, just because it's probably still noticeably faster than NGU pixart for Polaris users.
For comparison sake, here are the super-xbr 300% Mario (http://madVR.com/mario/superxbr-300.png) zoomed image, and the clown zoomed by super-xbr (http://madVR.com/mario/clownSuperxbr.png). Look at the front wheel in the clown image. It's still quite aliased when using super-xbr. Less so with NNEDI3-256, and even less so with NGU pixart med.
The low preset is terrible though IMO, I would remove it as the improvement from low to medium is quite considerable.
It's true that "medium" is a noticeable improvement over "low", but it's also a bit slower. There may be users whose GPU can perform "low" but not "medium". So why remove "low"? Is it really *that* terrible? If I compare it to NNEDI-16, IMHO NGU pixart "low" competes just fine. Or try comparing "low" to the regular (non-pixart) NGU variant!
cork_OS
5th February 2017, 12:07
New NGU med+ is definitely outperform sXBR in terms of quality and could replace it completely. NGU smooth also looks even a bit softer than NNEDI3.
However, right now it's hard to talk about speed because NGU smooth a) doesn't have high mode; b) seems doesn't have 4x mode.
Personally I rarely use NNEDI3 and I have nothing to say in it's favor. But why it's so important to drop out NNEDI3 instead of drop out something like Spline?
Additionally, it's still a big difference in sharpness between sXBR/NNEDI3/NGU smooth and plain NGU. Maybe there is a room for some intermediate NGU variant?
Neo-XP
5th February 2017, 12:22
Did you combine the halo removal with NGU upscaling? That's not recommended.
Yes I did. It should be specified somewhere that they don't work well together I think.
I switched to FineDehalo (with aviSynth) to remove ringing and dark halos and the result is amazing with one of these settings (I use low) :
FineDehalo(thmi=128, thlimi=50, thlima=50, contra=1.0) # low
FineDehalo(thmi=128, thlimi=50, thlima=100, contra=1.0) # medium
FineDehalo(thmi=128, thlimi=100, thlima=100, contra=1.0) # high
Nothing strange about it. We already discussed earlier that I'm using strict downscaling now, which I might change to relaxed in the next official build.
It's actually the downscaling algo, which makes the difference. VeryHigh uses SSIM. Lower versions use strict Bicubic150 which can be a lot softer. See my previous comment on that.
Yes please, change it to relaxed by default or at least give us the choice to use relaxed instead of strict.
As NGU should be used for high quality sources, strict is not good because it removes too many details.
I don't need sharpeners anymore with NGU like it is in v0.91.1, which is a very good thing, because they always add some kind of artifacts as a counterpart.
I hope that the next official build will allow :
- to disable automatic image quadrupling, but still be able to use 2x supersampling
- more chroma doubling algorithms (to replace Bicubic60 AR by Lanczos3 AR)
- to choose the scaling factor at which image doubling is enabled, without having to set profiles
- to use NGU < veryHigh with relaxed AR setting instead of strict
- some tweaks for NGU (sharpen, artifact removal control, etc)
- to test all combinations without limitations and without having to switch versions to compare quality and performance (an expert mode ?)
It seems like you are adapting NGU to be used with all kind of source material, to get kid of all the other doublers. I don't know if it is a good thing or not... but "NGU pixart" looks promising !
cork_OS
5th February 2017, 12:39
For example, here are NNEDI3-256 (http://madVR.com/mario/nnedi256-300.png) and NGU pixart med (http://madVR.com/mario/NGUpixartMed-300.png) at 300% zoom. Where does NNEDI3 look more natural here?
Well, 2 5 6 numbers looks a bit better with NNEDI3 at my taste.
ryrynz
5th February 2017, 12:53
It's true that "medium" is a noticeable improvement over "low", but it's also a bit slower. There may be users whose GPU can perform "low" but not "medium". So why remove "low"? Is it really *that* terrible? If I compare it to NNEDI-16, IMHO NGU pixart "low" competes just fine. Or try comparing "low" to the regular (non-pixart) NGU variant!
I haven't compared numbers but wasn't it said that NGU pix is about 3x faster than NNEDI3? I tested on some 640x480 anime and the lines were terribly jagged with the low setting, NNEDI3 16 neurons is far superior in that situation, and that should be the starting point for it. Maybe it's not terrible in certain situations, like the image you posted? This probably shows it in the best light.. It's not good with low res line art. Maybe something closer to medium for the low setting would be better. What sort of performance difference really is there between them? I'm not running 0.90.5 on my GTX 960 so image quality is really the only thing I can look at using integrated graphics.
madshi
5th February 2017, 13:23
I haven't compared numbers but wasn't it said that NGU pix is about 3x faster than NNEDI3? I tested on some 640x480 anime and the lines were terribly jagged with the low setting, NNEDI3 16 neurons is far superior in that situation, and that should be the starting point for it. Maybe it's not terrible in certain situations, like the image you posted? This probably shows it in the best light.. It's not good with low res line art. Maybe something closer to medium for the low setting would be better. What sort of performance difference really is there between them? I'm not running 0.90.5 on my GTX 960 so image quality is really the only thing I can look at using integrated graphics.
I think NGU pixart medium is about twice as fast as NNEDI3-16. NGU pixart low is maybe 20-30% faster than medium, which is not such a dramatic difference, so maybe I should just drop low.
Can you post a screenshot of the original size anime, so I can compare for myself? How does NGU pixart medium compare to NNEDI3-16 with this image?
huhn
5th February 2017, 14:35
Have you tried zooming into the images to see the differences more clearly?
i have to zoom in i try to judge these very small images on a UHD screen.[/quote]
For example, here are NNEDI3-256 (http://madVR.com/mario/nnedi256-300.png) and NGU pixart med (http://madVR.com/mario/NGUpixartMed-300.png) at 300% zoom. Where does NNEDI3 look more natural here? The "M" in "TIME" looks better with NNEDI3-256. In every other part of the image, I personally prefer NGU pixart med. NNEDI3 also has a lot of very noticeable artifacts. And btw, NNEDI3-256 is about 3000% slower compared to NGU pixart med (!!!).
my problem is tht NGU pixart looks to thin on some parts compared to other scaler and compared to the source.
on real world images the difference is really small on the images i have tested so far.
speed is hard to judge on a modern GPU that is change the clock all the time.
Or let's look at a photo instead of a game screenshot. The low-res photo (http://madVR.com/mario/clownOrgBox.bmp) was downscaled using a box filter so it has more aliasing than usual. Here's again how NNEDI3-256 (http://madVR.com/mario/clownNNEDI3-256.png) and NGU pixart med (http://madVR.com/mario/clownNGUpixartMed.png) compare.
I suppose I could offer even softer NGU pixart variants, but is it really needed? I posted a pixart image comparison with a very old very aliased game screenshot because that's really the hardest image type to get upscaled nicely. I think with real world images NGU and NNEDI3 look very similar.
Would be great if you could do some real world comparisons.
comes for sure but it needs time. for the time i agree on this.
but i never was a friend of nnedi3 anyway.
Are NNEDI3 and NGU pixart "his or miss", too? I think they beat super-xbr pretty much all the time.
I do not want to leave Polaris users behind, though, so I might keep super-xbr for the time being, just because it's probably still noticeably faster than NGU pixart for Polaris users.
For comparison sake, here are the super-xbr 300% Mario (http://madVR.com/mario/superxbr-300.png) zoomed image, and the clown zoomed by super-xbr (http://madVR.com/mario/clownSuperxbr.png). Look at the front wheel in the clown image. It's still quite aliased when using super-xbr. Less so with NNEDI3-256, and even less so with NGU pixart med.
It's true that "medium" is a noticeable improvement over "low", but it's also a bit slower. There may be users whose GPU can perform "low" but not "medium". So why remove "low"? Is it really *that* terrible? If I compare it to NNEDI-16, IMHO NGU pixart "low" competes just fine. Or try comparing "low" to the regular (non-pixart) NGU variant!
to be totally honest super XBR looks terrible on mario. his face looks deformed...
the lines are generally way to thick on top of it.
super XBR is bad on the clown too. it is simply not perfect in removing aliasing.
madshi
5th February 2017, 14:51
my problem is tht NGU pixart looks to thin on some parts compared to other scaler and compared to the source.
on real world images the difference is really small on the images i have tested so far.
speed is hard to judge on a modern GPU that is change the clock all the time.
Thing is, NNEDI3 lines get thinner and thinner, as you increase the neuron count. And my NNEDI3 implementation uses the quite small kernel size of 8x4. I had tried 8x6 and it produced sharper/thinner lines. I wanted to use it, but it had too many artifacts, so I decided to use 8x4. I think if I used 8x6, the look would be nearer to NGU pixart, but with much more artifacts.
I find it hard to decide how thin an upscaled line should really be when upscaling pixel art. We don't have a groundtruth to compare to in this case, so it's a matter of "interpretation" or taste.
I've not really designed NGU pixart to create thin lines, I've tried to create aliased images which have a high-res groundtruth (by using box filter downscaling), and then built NGU pixart by trying to upscale the aliased downscaled images in such a way that they get as near to the original hi-res image as possible. The thin lines are a result of this approach. I think NNEDI3 tries to do the same, but just doesn't reach the same quality level at the small 8x4 kernel size, which is why the NNEDI3 lines are sometimes a bit thicker than those produced by NGU pixart.
burfadel
5th February 2017, 15:05
I like the NGU-pixart. I think if you took all aspects of the picture and rated them, NGU-pixart would come out on top even if it may not be the winner for certain aspects.
There is probably a slight sharpness reduction .If you could use the right sharpener after NGU-pixart, and before any other process including downscale, I think this could be overcome. There is the option of adaptive sharpen etc, but that happens after everything else (I believe), and not part of the resize chain. What would it look like if it were done as part of the chain, maybe employing some of the principles used in Didee's SeeSaw avisynth script?
huhn
5th February 2017, 15:20
pixelart image are perfect images. so we can do some stuff we can't do with other images.
so the NN x2 upscald line thickness is a good indictor for a "neutral" line thickness.
with NGU pixart the upscaled image has still a line thickness of 1 pixel and very small boarder.
the lines on the background hills are to thin. NGU pixart is even changing the boarder size from time to time..
BTW. NGU veryhigh is pretty much perfect 2 pixel lines. ignoring all the other problems.
edit:
it produces some ugly chroma bleeding in the clouds and other white parts:
https://picload.org/image/rocllwow/mariochromaissue.png
i guess it comes from the half pixel shift
nnedi3 has this problem too but way less.
citrixscu
5th February 2017, 16:21
I have a 1440p screen, so it has to scale back down and the render times are about +-35ms, which is far too high for 1080p content, as it can sometimes spike past 42ms, throwing off audio sync.
Guess I'll stick with either Jinc or Super-XBR.
Looking forward to getting that 27 inch 4K HDR monitor this year from Asus :)
Do you find any perceptable quality differences between using NGU to upscale to 2160 and then another algorithm to get you back to 1440? I am in the same position and tend to alternate back and forth between NGU luma high and Jinc AR. The only real difference I see is the rendering times are quite a bit higher with the NGU method, for valid reasons.
Xaurus
5th February 2017, 16:25
can you post an image of the OSD with nnedi 3 selected?
i should be able to tell you what is going on.
and make sure the driver you are using are not installed by windows.
I am not sure if this was directed at my post, but if it was here's what you asked for.
http://imgur.com/a/Z7oYm
Note that I only run NGU since it was implemented, so I had to adjust the profile temporarily to run NNEDI3 instead.
Also, I only use drivers downloaded from the geforce website. And I uninstall the previous one with DDU.
As you can see from the screenshot, it all looks fine. Those frame drops/repeats was just from me pausing and unpausing. I never got around to find out whether this spike of frame drops would have happened by using NNEDI3 instead. Are you hinting that it is NGU that could be the cultprit?
huhn
5th February 2017, 16:33
wasn't for you and i don't quote a post if it is directly over mine.
looks like it was removed/delete.
but it was a problem with GPU driver and not working nnedi3.
looks like the driver installed by windows 10 was the issue.
if i notice this i sometimes add/edit a "RIP context" or something like that.
Xaurus
5th February 2017, 17:11
huhn,
Well for what it's worth, I just watched an episode now with NNEDI3 instead of NGU and guess what - no frame drop spikes... :confused:
CruNcher
5th February 2017, 17:24
NEDDI 3 is generally less costly especially if you have a powerful CPU/GPU combination.
What you see are drops based on the fact that the GPU Shader and Driver have problems to hold the Performance at a given resolution the overhead eats everything and NGU is thirsty for Shaders it eats them alive and depending on the overall System stability state you could run into all kind of performance mulithread issues on Windoze resulting in frames get droped and then the big buffers wont help either anymore.
cyberscott
5th February 2017, 18:29
FYI, I'm running Windows 10 64 bit with a Nvidia GeForce GTX 1080 and up-scaling everything to 3840x2160p59.
Trying out the new "pixel art" NGU.
I ran through several clips of 480p animated material of varying quality, starting with my current settings of chroma NNEDI3-32 and Luma doubling NNED13-64 neurons; quadrupling 32 neurons.
I then compared the same 480p clips with NGU pixel art with NGU set to "'very high" for both chroma and luma.
So far, it works extremely well and could replace NNEDI3 in my set up for SD content.
It does provide a "smooth" looking picture for SD and not overly sharp as the original NGU for SD content. Lines look good too, aliasing is kept in check, at least to my eyes.
Also, I averaged 3-4 millisecond less rendering times with the pixel art NGU than with NNEDI3.
So far, a very nice improvement for standard def up-scaling in this test build, Madshi. :D Keep up the great work!
Georgel
5th February 2017, 18:50
@madshi
Thank you for answering all our questions!
I'm still curious about this; I am watching FHD videos, especially anime on a 2560 x 1440 display. Should I be using NNEDI or XBR or NGU for best results?
Also, regarding the new NGU pixart, I will try to give you a subjective order of how I prefer the images from the samples selected earlier:
Jinc < Waifu2x < NGU Very High <NNEDI 256< NNEDI 16 < NGU Pixart Very High< NGU Pixart Low = NGU Pixart Med < Super XBR
I will try to generate a series of samples by myself and maybe the results will be different, but this is the preliminary thoughts about the samples provided. for the sample provided, when zoomed in at a 300% factor.
When viewed at 100% of it's zoom, the order changes radically:
Jinc < SuperXBR < NNEDI 16 < NNEDI 256 < NGU Very High < Waifu2x <NGU Pixart Very High < NGU Pixart Med < NGU Pixart Low
I hope that it helps you out - this is just my subjective opinion on the samples given though, sorry if it digresses from anyone else's.
returning to my question, I understand that watching 1920 x 1080 materials on an 2560 x 1440 display is not the best idea, but which algo would be best for anime?
AngelGraves13
5th February 2017, 18:50
Do you find any perceptable quality differences between using NGU to upscale to 2160 and then another algorithm to get you back to 1440? I am in the same position and tend to alternate back and forth between NGU luma high and Jinc AR. The only real difference I see is the rendering times are quite a bit higher with the NGU method, for valid reasons.
Honestly, there isn't much point in doubling and scaling down. Too many conversions will screw with the image quality. I'm just going to go back to Jinc as it still looks the best and performs great. Maybe a scaler that's superior will show up at some point, but for now, Jinc is the gold standard in scaling.
madshi
5th February 2017, 18:59
pixelart image are perfect images. so we can do some stuff we can't do with other images.
so the NN x2 upscald line thickness is a good indictor for a "neutral" line thickness.
with NGU pixart the upscaled image has still a line thickness of 1 pixel and very small boarder.
the lines on the background hills are to thin. NGU pixart is even changing the boarder size from time to time..
BTW. NGU veryhigh is pretty much perfect 2 pixel lines. ignoring all the other problems.
Why does a 1 pixel wide line in the source image have to result in an exact 2 pixel wide line in the upscaled image? When talking about highly aliased sources, there's no guarantee that assumption must be true. If you want each source pixel to map exactly to a 2x2 pixel in the upscaled image, basically you can do nearest neighbor upscaling. The pixel art specific algos like NNEDI3 and NGU pixart work differently. They take each source pixel as a given pixel and don't make any fixed assumptions on how the "missing" pixels in the upscaled image should look like. Instead they try to understand the overall image structure and then decide which interpolated pixels have the highest probability of being correct.
If you look at the NNEDI3-256 image, the lines are not exactly 2 pixels, either. Some of them are sharper/thinner than that, too. But you already said you never liked NNEDI3, either. Maybe that's why?
When talking about "hand drawn" pix art like Mario or other games, where each pixel was carefully set by an artist, I suppose another different algorithm could be designed which does make some assumptions like a 1 pixel wide line should double to a 2 pixel wide line. But if you think about aliased Anime videos, there could be many different reasons for why they could be aliased. One good reason is that at some point someone might have simply dropped every other line or colum (aka nearest neighbor downscaling). When doing that, a 1 pixel wide line in the low-res image could either be a 1-pixel wide line in the high-res image, or a 2-pixel wide line, or something in between.
it produces some ugly chroma bleeding in the clouds and other white parts:
https://picload.org/image/rocllwow/mariochromaissue.png
i guess it comes from the half pixel shift
nnedi3 has this problem too but way less.
The chroma bleeding probably comes from using Bicubic60 for chroma upscaling. Try switching to NGU pixart very high quality. That will result in NGU pixart to be used for the chroma channels, too. That should reduce chroma bleeding.
I ran through several clips of 480p animated material of varying quality, starting with my current settings of chroma NNEDI3-32 and Luma doubling NNED13-64 neurons; quadrupling 32 neurons.
I then compared the same 480p clips with NGU pixel art with NGU set to "'very high" for both chroma and luma.
So far, it works extremely well and could replace NNEDI3 in my set up for SD content.
It does provide a "smooth" looking picture for SD and not overly sharp as the original NGU for SD content. Lines look good too, aliasing is kept in check, at least to my eyes.
Also, I averaged 3-4 millisecond less rendering times with the pixel art NGU than with NNEDI3.
So far, a very nice improvement for standard def up-scaling in this test build, Madshi. :D Keep up the great work!
Finally some good news - thanks! :)
So would you say image quality is the same as before with 3-4 milliseconds saved? Or is image quality slightly better or worse than before? Can you see a difference in quality between NGU pixart Very High and NGU pixart Medium?
I'm still curious about this; I am watching FHD videos, especially anime on a 2560 x 1440 display. Should I be using NNEDI or XBR or NGU for best results?
IMHO, if your source is clean (meaning no visible aliasing and no noticeable compression artifacts), standard NGU is the best algorithm to use. If your source is highly aliased (some low-res Anime sources seem to be), NGU pixart or NNEDI3 might be the best solution instead. Not sure what to do with sources that have lots of compression artifacts.
Also, regarding the new NGU pixart, I will try to give you a subjective order of how I prefer the images from the samples selected earlier:
Jinc < Waifu2x < NGU Very High <NNEDI 256< NNEDI 16 < NGU Pixart Very High< NGU Pixart Low = NGU Pixart Med < Super XBR
I will try to generate a series of samples by myself and maybe the results will be different, but this is the preliminary thoughts about the samples provided. for the sample provided, when zoomed in at a 300% factor.
When viewed at 100% of it's zoom, the order changes radically:
Jinc < SuperXBR < NNEDI 16 < NNEDI 256 < NGU Very High < Waifu2x <NGU Pixart Very High < NGU Pixart Med < NGU Pixart Low
It's interesting that you like super-xbr much more when zoomed at 300% and much less in 100% view. It's also interesting that you seem to like NGU pixart low quite a lot. It does have visible more aliasing in the final image compared to NGU pixart medium, so I find that a bit surprising.
Neet009
5th February 2017, 19:28
NGU-VeryHigh still performs quite slow on my 1080 GTX and drops frames down to 0-2 render queue, so it's still unuseable.
Do you try setting the player's power management mode to "Prefer maximum performance" on NV control panel?
1) Do you think NNEDI3 looks better? Or the new NGU pixart variant?
2) How does performance compare for you?
3) Can I replace NNEDI3 with NGU pixart in the next official build (pretty please)?
4) Can I replace super-xbr (for luma doubling, only) with NGU pixart in the next official build?
1)I have tested some aliased low-res anime content, I think NGU pixart did a good job of reducing aliasing and some artifacts even better than NNEDI3. I compared NGU pixart-very high with NNEDI3-128, the sharpeness is similar, but NGU pixart is cleaner and use less performance.
2) NGU pixart-very high is faster than NNEDI3-128, but a little slower than NNEDI3-64 (Graphics card is GTX 1060 6GB)
3)IMO, yes, I think NGU pixart is good enough to replace NNEDI3.
4)I don't use super-xbr at all so I have no comment.
pose
5th February 2017, 19:43
madshi, i just tested NGU pixart very high VS NNEDI3 256 on low quality SD anime source. Both look VERY similar. Performance wise NGU is 12ms while NNEDI3 is 21ms. Great job!
madshi
5th February 2017, 19:45
1)I have tested some aliased low-res anime content, I think NGU pixart did a good job of reducing aliasing and some artifacts even better than NNEDI3. I compared NGU pixart-very high with NNEDI3-128, the sharpeness is similar, but NGU pixart is cleaner and use less performance.
2) NGU pixart-very high is faster than NNEDI3-128, but a little slower than NNEDI3-64 (Graphics card is GTX 1060 6GB)
3)IMO, yes, I think NGU pixart is good enough to replace NNEDI3.
4)I don't use super-xbr at all so I have no comment.
madshi, i just tested NGU pixart very high VS NNEDI3 256 on low quality SD anime source. Both look VERY similar. Performance wise NGU is 12ms while NNEDI3 is 21ms. Great job!
That's good to hear, thank you guys!
Can you comment on how you would rate NGU pixart "low" and "medium" quality compared to NNEDI3?
CruNcher
5th February 2017, 19:52
Did somebody already tested if that new Maxwell Compute Optimization mode (most probably different software async sheduling mode) has any impact on the Cuda Hybrid Decoder or MadVRs NNEDI3 latency wise or in general on Cuvid OpenCL/Directcompute/Cuda on for example GM204 in a multi CPU/GPU Render workflow ?
Does it bring a measurable stability improvement ?
https://vgy.me/4YioPN.png
huhn
5th February 2017, 19:54
Why does a 1 pixel wide line in the source image have to result in an exact 2 pixel wide line in the upscaled image? When talking about highly aliased sources, there's no guarantee that assumption must be true. If you want each source pixel to map exactly to a 2x2 pixel in the upscaled image, basically you can do nearest neighbor upscaling. The pixel art specific algos like NNEDI3 and NGU pixart work differently. They take each source pixel as a given pixel and don't make any fixed assumptions on how the "missing" pixels in the upscaled image should look like. Instead they try to understand the overall image structure and then decide which interpolated pixels have the highest probability of being correct.
If you look at the NNEDI3-256 image, the lines are not exactly 2 pixels, either. Some of them are sharper/thinner than that, too. But you already said you never liked NNEDI3, either. Maybe that's why?
When talking about "hand drawn" pix art like Mario or other games, where each pixel was carefully set by an artist, I suppose another different algorithm could be designed which does make some assumptions like a 1 pixel wide line should double to a 2 pixel wide line. But if you think about aliased Anime videos, there could be many different reasons for why they could be aliased. One good reason is that at some point someone might have simply dropped every other line or colum (aka nearest neighbor downscaling). When doing that, a 1 pixel wide line in the low-res image could either be a 1-pixel wide line in the high-res image, or a 2-pixel wide line, or something in between.
it looks pretty extreme in this case
it doesn't seem to do the same for other sources where the line is not exactly 1 pixel. to be honest i haven't found any problem with NGU pixart for other sources yet.
it looks like and set and forget scaler.
or with other words i haven't found a "miss" for normal sources yet.
and of cause the x2 scaled image doesn't need a 2x line but some more close to it.
The chroma bleeding probably comes from using Bicubic60 for chroma upscaling. Try switching to NGU pixart very high quality. That will result in NGU pixart to be used for the chroma channels, too. That should reduce chroma bleeding.
with very high and very high chroma issue is gone.
notable here is that the issue is mostly in the top left and the image is shifted to the top left.
and NGU pixart low and medium should work too or not?
running NGU medium AND NGU low on chroma to sounds ridiculously expensive.
if bicubic 60 Ar can't deal with it than there should be another cheap way to fix.
if it is 2x NGU "super low" x2 or something else doesn't matter to me as long as it doesn't add the same artifacts.
madshi
5th February 2017, 20:06
Did somebody already tested if that new Maxwell Compute Optimization mode (most probably different software async sheduling mode) has any impact on the Cuda Hybrid Decoder or MadVRs NNEDI3 latency wise or in general on Cuvid on for example GM204 in a multi CPU/GPU Render workflow ?
Does it bring a stability improvement ?
Someone earlier reported a very minor performance increase (1ms lower rendering time or something), but no dramatic change.
it looks pretty extreme in this case
it doesn't seem to do the same for other sources where the line is not exactly 1 pixel. to be honest i haven't found any problem with NGU pixart for other sources yet.
it looks like and set and forget scaler.
or with other words i haven't found a "miss" for normal sources yet.
So if performance were identical to super-xbr we could get rid of super-xbr? It's not there yet, though.
with very high and very high chroma issue is gone.
notable here is that the issue is mostly in the top left and the image is shifted to the top left.
and NGU pixart low and medium should work too or not?
running NGU medium AND NGU low on chroma to sounds ridiculously expensive.
if bicubic 60 Ar can't deal with it than there should be another cheap way to fix.
if it is 2x NGU "super low" x2 or something else doesn't matter to me as long as it doesn't add the same artifacts.
Well, the issue occurs mainly because the Mario test image has such extreme aliasing. The issue occurs simply because NGU pixart removes the aliasing, while Bicubic60 does not. So in all those places where NGU pixart has removed the aliasing, the Bicubic60 upscaled chroma channel doesn't fit the luma channel, anymore. This problem should be quite rare with real life content.
But this issue shows that chroma doubling quality *does* sometimes matter, which is also why when choosing NGU Very High, "let madVR decide" does activate NGU for chroma doubling, too.
huhn
5th February 2017, 20:14
But this issue shows that chroma doubling quality *does* sometimes matter, which is also why when choosing NGU Very High, "let madVR decide" does activate NGU for chroma doubling, too.
but NGU medium into NGU low?
if NGU low is the fastest we have right now why not double low.
i think doubling chroma again is fine if it avoids issue like this.
but the performance cost is very high.
something that is never going to happen with super XBR BTW.
So if performance were identical to super-xbr we could get rid of super-xbr? It's not there yet, though.
a little bit early to say this but yeah there is a chance i'm not missing super XBR.
CruNcher
5th February 2017, 20:15
Someone earlier reported a very minor performance increase (1ms lower rendering time or something), but no dramatic change.
Performance is one thing stability another not always more performance means better/smoother render output and stability over time and that option seems to conquer AMD in those regards finally to overcome/workaround Hardware restrictions that most probably is by default enabled on Paxwell and now found it's way into the Maxwell Driver.
madshi
5th February 2017, 20:16
True, I've not heard anything about stability.
AngelGraves13
5th February 2017, 20:20
Do you try setting the player's power management mode to "Prefer maximum performance" on NV control panel?
I use Adaptive globally. There's no need to use Maximum at any time, unless an application profile calls for it. It's a waste of energy and doesn't offer any performance improvement over Adaptive, which basically ramps up/down when needed.
As I mentioned before, I have a 1440p screen and going from 1080p to 2160p and then back down to 1440p is a huge waste of resources. I don't really like doublers, and prefer scalers that can go from point A to point B in a single pass. Doubling goes from point A to point C and then back to point B. Double then downscale... what's the point?
NGU Pixart does look quite good though, and basically fixes the issues I had with NGU, i.e., that it was too sharp and aliased.
Ver Greeneyes
5th February 2017, 20:42
As I mentioned before, I have a 1440p screen and going from 1080p to 2160p and then back down to 1440p is a huge waste of resources. I don't really like doublers, and prefer scalers that can go from point A to point B in a single pass. Doubling goes from point A to point C and then back to point B. Double then downscale... what's the point?
Your reasoning is sound, but it's just a fact of life that a lot of the most advanced scalers can only double, either for performance reasons or by design. You might still get a better result by doubling with a really advanced scaler and downscaling than by upscaling with a less advanced scaler.
CruNcher
5th February 2017, 21:01
True, I've not heard anything about stability.
Gonna do some tests with Optix and the Hybrid H.265 Decoder while running MadVR NNEDI3
Though Optix most probably would be already efficient seeing how the current driver stalls it while using CPU/GPU simultaneously.
Georgel
5th February 2017, 21:16
@madshi
Just tested how it plays out.
The new NGU looks best at Very High with my own video materials (mostly anime).
Georgel
5th February 2017, 21:24
on second thought: NGU Pix new algo doesn't work well enough for 1440P.
The idea is that it looks much better than all the other algorithms with Anime that comes from a low quality source but you will need something stronger than a GTX 1080 to use it at very high in both chroma and image upscaling.
Thunderbolt8
5th February 2017, 22:35
is there any new addition or tweaking of chroma upscaling with the new test build?
btw I have 26ms average stats with NGU medium for chroma upsampling, 35ms for high and >100ms for the very high setting (no other scaling involved; regular build). how come theres such a big difference for very high?
madshi
5th February 2017, 23:20
something that is never going to happen with super XBR BTW.
True.
on second thought: NGU Pix new algo doesn't work well enough for 1440P.
The idea is that it looks much better than all the other algorithms with Anime that comes from a low quality source but you will need something stronger than a GTX 1080 to use it at very high in both chroma and image upscaling.
Not well enough compared to what? The only important question for me right now is if NGU pixart can replace NNEDI3 or not, because that's what it was designed for.
is there any new addition or tweaking of chroma upscaling with the new test build?
Not sure what you mean.
btw I have 26ms average stats with NGU medium for chroma upsampling, 35ms for high and >100ms for the very high setting (no other scaling involved; regular build). how come theres such a big difference for very high?
Very high has always been much more expensive than High, when using NGU. At some point I might add one more quality level between High and Very High, but now it is what it is.
Thunderbolt8
5th February 2017, 23:38
Not sure what you mean.what I mean is does chroma upsampling with NGU pixelart now look slightly different that with the regular scaler? (or will it be that way in the future)
madshi
5th February 2017, 23:50
The test build uses NGU pixelart instead of the regular NGU algo everywhere, for luma and chroma, so you guys can test if I can finally throw out NNEDI3 or not.
Thunderbolt8
6th February 2017, 00:21
yeah, but since I hardly do any scaling atm, I am more interested just in changes of chroma upsampling and wondered if there are any differences between the regular algo and pixelart as well when it comes just to chroma upsampling
cyberscott
6th February 2017, 00:52
So would you say image quality is the same as before with 3-4 milliseconds saved? Or is image quality slightly better or worse than before? Can you see a difference in quality between NGU pixart Very High and NGU pixart Medium?
I'd say the picture quality with NGU pixart Very High looks a little better, or equal, depending on the source material. Definitely not worse with any material. :) Shaving off a few milliseconds is always a nice bonus!
There is slight loss of sharpness to my eyes with NGU pixart set to Medium. What really surprised me is there isn't a huge drop in quality between Very High to Medium. It also saves an additional 5 to 7 milliseconds of render time at Medium which is impressive. If I had less capable hardware, I'd have no issue with using the Medium setting. I'll stick with Very High for now with SD, because I can. :p
Hyllian
6th February 2017, 00:58
Here's a little comparison comparing various algorithms when upscaling pixel art (highly aliased sources):
low-res original (http://madVR.com/mario/org.png) -- | -- Jinc (http://madVR.com/mario/Jinc.png) -- | -- waifu2x (http://madVR.com/mario/waifu2x.png) -- | -- NGU very high (http://madVR.com/mario/NGUveryHigh.png) -- | -- super-xbr 100 (http://madVR.com/mario/superxbr.png) -- | -- NNEDI3-16 (http://madVR.com/mario/nnedi16.png) -- | -- NNEDI3-256 (http://madVR.com/mario/nnedi256.png) -- | -- NGU pixart low (http://madVR.com/mario/NGUpixartLow.png) -- | -- NGU pixart med (http://madVR.com/mario/NGUpixartMed.png) -- | -- NGU pixart very high (http://madVR.com/mario/NGUpixartVeryHigh.png)
As you can see, with sources like this, linear resamplers like Jinc fail. Also the standard "NGU Very High" and even the mighty waifu2x fail here. super-xbr does fine, after all that's exactly what it was made for. But best in class are NNEDI3 and NGU pixart.
Which do you prefer?
(Zooming a little into the images will reveal more.)
Holy! I like "NGU pixart" with games!
Any chance to release its sources? It would be very useful with emulators! :)
Georgel
6th February 2017, 01:06
Not well enough compared to what? The only important question for me right now is if NGU pixart can replace NNEDI3 or not, because that's what it was designed for.
I see now.
NGU pixart is probably good to replace NNEDI3.
I only use NNEDI3 at 16 neurons - NGU very high is slower than NNEDI at 16 neurons in same conditions.
Example :
NNEDI3 at 16 neurons is slower than NGU at high
NGU pixart at very high takes double the time to process compared to NNEDI3 at 16 neurons.
More precise examples:
NGU high ~5ms
NNEDI3 at 16 neurons ~8ms
NGU very high ~16ms
If everything else was kept the same.
ryrynz
6th February 2017, 01:31
Is that because chroma doubling is occurring or is very high that much more demanding? (3x)
Does anyone else feel that low doesn't quite cut it?
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.