View Full Version : madVR - high quality video renderer (GPU assisted)
Warner306
28th November 2016, 00:33
madVR v0.91.2 released
http://madshi.net/madVR.zip
* renamed NGU quality levels: Low -> Med, Med -> High, High -> VeryHigh
* added a new even faster NGU "Low" variant
* reworked chroma/image up/downscaling/doubling settings pages
* removed NEDI and super-xbr image doubling algorithms
* small speed improvement for NGU-Med (former NGU-Low)
* small quality improvement for NGU-Med/High (former NGU-Low/Med)
* settings dialog warns when SuperRes and NGU are enabled at the same time
* pixel shader database is compressed now to save space
I've changed the whole scaling settings logic to make things easier to understand, and to protect "normal" users from chosing bad configurations. I'm not sure if the power users will like the changes or not. Please give it a try and let me know what you think. I'm willing to consider alternatives/changes/extensions. But it's important that "normal" users are guided by the settings dialog in such a way that they choose good settings.
I've dropped super-xbr for image doubling because the new "NGU-Low" is now faster (at least for me) than super-xbr, even without SuperRes. So the only 2 remaining resolution doublers are now NGU and NNEDI3. FYI, when doing an exact 2x upscale, NGU-Low is now also faster than JincAR (without SuperRes)!
super-xbr is still available for chroma upscaling, though.
On first glance, it is much easier to understand. Thumbs up!
The only problem is that it makes a mess of my setup guide. Oh well, no big deal...
Fullmetal Encoder
28th November 2016, 00:38
Instead of all the mess you would potentially be dealing with in trying to use FreeSync/G-SYNC with madVR couldn't one simply buy a TV/monitor that's designed to produce output at the correct intervals? And maybe if more people asked for and purchased such equipment it would become more commonly available. I have been thinking for some time of getting an Eizo monitor for playback with full 24p etc. capability. It's true some of their sets are very highly priced but they usually have a cheaper version available with almost exactly the same functionalities. Has anyone out there tried such an Eizo for playback with madVR?
Skwelcha
28th November 2016, 00:39
Can't use NEEDI3 anymore, was working before on 0.91.1.
http://www.xup.in/dl,10753597/madVR_-_log.txt/
nevcairiel
28th November 2016, 00:42
Instead of all the mess you would potentially be dealing with in trying to use FreeSync/G-SYNC with madVR couldn't one simply buy a TV/monitor that's designed to produce output at the correct intervals?
TVs typically already support all relevant modes for video, at least in Europe. US TVs often lack a 50Hz mode for reasons, in case you watch PAL content.
For monitors, 24p modes may be missing, but on higher-end screens you can instead get 120Hz, which is equally good, if not better.
madshi
28th November 2016, 00:47
sorry i don't see that working for DVDs.
edit: and very common 4/3 AR 16/9 broadcast shouldn't work too.
Why? NGU could upscale 8x, then downscale to the target resolution. Just an example, of course.
The only problem is that it makes a mess of my setup guide.
Haha!
Can't use NEEDI3 anymore, was working before on 0.91.1.
What does "Can't use" mean exactly? Maybe make a screenshot of the OSD (Ctrl+J) and a screenshot of your image upscaling settings page.
Knight77
28th November 2016, 00:49
Is sanear in the nightlies 0.3? (08/2015)
Haven't done much testing, but I noticed exclusive mode seems to be working better than in previous versions (that or some MPC-HC change since July nightly).
Which nightlies? These?
https://github.com/alexmarsev/sanear/releases
Has Sanear been updated? Seen that link looks like there are no new releases since 2015...:(
Skwelcha
28th November 2016, 00:53
As soon as it tries to upscale it just hangs with the following message:
http://www.pic-upload.de/view-32195293/1.png.html
http://www.pic-upload.de/view-32195294/Zwischenablage02.png.html
http://www.pic-upload.de/view-32195293/1.png.html
http://www.pic-upload.de/view-32195294/Zwischenablage02.png.html
Downscale s on Biubic100 LL AR Relaxed, Chroma is Biubic150 AR, no upscale refinement.
Sry for the vague post, thought the log was sufficent.
Sp00kyFox
28th November 2016, 00:59
@madshi
I think it was a good idea to combine doubling and upscaling together. it seems way less ambigious for the standard user to have only one tab for this. but could you explain to us what the logic is behind the NGU options "chroma/downscale quality: automatic" and "activate only if it's useful"? this is some information the power user probably wanna know, me included.
ps: I think there is a display oversight with the OSD. when choosing NGU (very high) the OSD says "chroma > NGU-high" instead of "chroma > NGU-veryHigh" like it does with luma.
JarrettH
28th November 2016, 01:30
@madshi
I think it was a good idea to combine doubling and upscaling together. it seems way less ambigious for the standard user to have only one tab for this. but could you explain to us what the logic is behind the NGU options "chroma/downscale quality: automatic" and "activate only if it's useful"? this is some information the power user probably wanna know, me included.
ps: I think there is a display oversight with the OSD. when choosing NGU (very high) the OSD says "chroma > NGU-high" instead of "chroma > NGU-veryHigh" like it does with luma.
Also noticed that chroma quality is unselectable at low, medium settings - probably because that shouldn't be a selection then.
Question:
chroma > super-xbr
luma > ngu-med < bicubic150ar
chroma > bicubic60ar
What is bicubic60ar for? As a doubler?
Anima123
28th November 2016, 01:31
With the latest version, there's error when trying to enter full-screen mode, and using NNEDI3 neurons as image doubler.
Schwartz
28th November 2016, 01:40
Sorry but NGU doesn't hold a candle to XBR-75 for image doubling. At least with the material I'm upscaling, which is generally medium-high quality SD, NGU on various settings (tried low and high) gives me way more artifacts and obvious artificial sharpening. I'd like to suggest adding Super-XBR back, it's a great image doubler.
JarrettH
28th November 2016, 02:04
I don't know what you've done with the speed-ups, madshi, but this is a whole lot faster than 0.91.1. Even on 25 fps material, I don't have to change settings :D:cool::thanks:
I can use ngu-med (new medium) on 720p to 1080p and ngu-high (new high) with sd material on my GeForce 550 Ti
aufkrawall
28th November 2016, 02:09
Why no more old high + high quadrupling? :(
Current max quality doesn't look nice to me for quadrupling cartoons. I'd really like to be in charge how luma is scaled, any automatism is just a painful restriction...
bcec
28th November 2016, 02:11
What does "Can't use" mean exactly? Maybe make a screenshot of the OSD (Ctrl+J) and a screenshot of your image upscaling settings page.
NNEDI3 crashes for me. I am doing NNEDI3-64 for 1080->2160 doubling
bcec
28th November 2016, 02:20
Does anyone observe their render times start with x ms, and then after 10 or so seconds jumps to x+(5 to 10)ms when using NGU? It then gradually comes back and settles around x + (3-6)ms. Same behavior regardless of the scene or starting point.
I observed similar behavior when thin edges from upscaling refinement was selected, and seeing that behavior for NGU now.
MariaX9
28th November 2016, 02:32
What is the difference between "image downscaling" and the "downscale quality" setting in image upscaling?
Also i cant select the very high setting in chroma upscaling, it always switches back to high.
x7007
28th November 2016, 02:36
Should I use
Chroma Upscaling - NGU Very High + SuperRes 3 ( Do I need SuperRes 3 when using NGU in Chroma Upscaling ) ?
Image upscaling NGU - Luma Very High , Chorma Quality - Auto , Downscale Quality - Auto , Activate only if it's useful
Upscaling Refi - All Disabled
*Also i cant select the very high setting in chroma upscaling, it always switches back to high. - Same happens to me
Q-the-STORM
28th November 2016, 03:02
What is the difference between "image downscaling" and the "downscale quality" setting in image upscaling?
Also i cant select the very high setting in chroma upscaling, it always switches back to high.
image downscaling is for actually downscaling, like 2160p video on a 1080p display, or 1080p video in a 720p window.
downscale quality is for what downscaling algorithm is used after doubling, so for e.g. 720p on a 1080p display, it doubles to 1440p and then downscales to 1080p using what is set in downscale quality...
as for reverting to high, you can only use veryhigh if you use veryhigh for luma as well, you can't use high on luma and veryhigh on chroma... see 4. in my post...
Should I use
Chroma Upscaling - NGU Very High + SuperRes 3 ( Do I need SuperRes 3 when using NGU in Chroma Upscaling ) ?
Don't use Superres with NGU...
New settings look good, takes a bit to figure it out if you come from the old settings page, but it will definitely be a lot easier to get into it if you're a newbie....
1. Would be nice to still get a way to set low/med/high/veryhigh for the quadrupling step, for people that want stuff like high-high, though I do realize that would pretty much only be useful for GPUs that can't do veryhigh-med but can do high-high, so this might be a niche, which would complicate things again for normal users... maybe it's better the way it is now... on the other hand, being able to do high-low might be interesting for people that can't do high-med and would have to resort to med-low otherwise...
2. In image upscaling, it would be great if "chroma quality" and "downscale quality" would actually state what alogrithms are being used... sure you can enable it and check OSD, but it shouldn't be too much of an issue to have it say "chroma quality: high (NGU low + bicubic60 AR)"
3. What is "automatic" in qulaity settings? Dynamic depending on what other settings you use? if 2. is implemented, that would obviously answer this question, since you'd see which alogrithm is used every time, or does automatic not only change with
4. When luma high is selected, chorma veryhigh automatically reverts to high. Instead of automatically reverting, maybe display a message that it would be better to select higher luma quality than chroma. The way it is now feels like a bug.
Bug:
- with 720p -> 2160p on chroma quality normal OSD shows bicubic60 AR twice "chroma > bicubic60 AR > bicubic60 AR" shouldn't bicubic60 AR do this in one step? maybe just an OSD bug
this only happens with full 2160p, when I have a window resized to slightly smaller than 2160p, it only shows it once..
- not really a bug but maybe display the same message about superres and NGU when using NGU and superres in chroma upscaling
AngelGraves13
28th November 2016, 03:13
Thanks for the new version. Some thoughts...
- Chroma NGU-Very High isn't selectable
- Image Downscaling settings aren't used when using Image Upscaling with NGU?
- NGU Upscaling - Would like to be able to use "User" setting for downscale quality, which would use my User Specified settings in Image Downscaling. Also, please add Very High for downscale quality, which would probably use SSIM 2D100%
- Soften Edges 3 and Add Grain 4 provides the best image I've ever seen with madvr, especially when upscaling SD content. Soften Edges 3 completely removes the processed sharpness and Add Grain 4 makes the image look HD with its very fine grain structure. Enhance Details seems to further enhance the grain and make the image look sharper, but I prefer it off.
- Remove ringing artifacts is a must even with NGU. I was comparing a still of Futurama with it on and off and it removed the remaining ringing around the dark black line art.
x7007
28th November 2016, 03:14
image downscaling is for actually downscaling, like 2160p video on a 1080p display, or 1080p video in a 720p window.
downscale quality is for what downscaling algorithm is used after doubling, so for e.g. 720p on a 1080p display, it doubles to 1440p and then downscales to 1080p using what is set in downscale quality...
as for reverting to high, you can only use veryhigh if you use veryhigh for luma as well, you can't use high on luma and veryhigh on chroma... see 4. in my post...
Don't use Superres with NGU...
New settings look good, takes a bit to figure it out if you come from the old settings page, but it will definitely be a lot easier to get into it if you're a newbie....
1. Would be nice to still get a way to set low/med/high/veryhigh for the quadrupling step, for people that want stuff like high-high, though I do realize that would pretty much only be useful for GPUs that can't do veryhigh-med but can do high-high, so this might be a niche, which would complicate things again for normal users... maybe it's better the way it is now...
2. In image upscaling, it would be great if "chroma quality" and "downscale quality" would actually state what alogrithms are being used... sure you can enable it and check OSD, but it shouldn't be too much of an issue to have it say "chroma quality: high (NGU low + bicubic60 AR)"
3. What is "automatic" in qulaity settings? Dynamic depending on what other settings you use? if 2. is implemented, that would obviously answer this question, since you'd see which alogrithm is used every time, or does automatic not only change with
4. When luma high is selected, chorma veryhigh automatically reverts to high. Instead of automatically reverting, maybe display a message that it would be better to select higher luma quality than chroma. The way it is now feels like a bug.
Bug:
- with 720p -> 2160p on chroma quality normal OSD shows bicubic60 AR twice "chroma > bicubic60 AR > bicubic60 AR" shouldn't bicubic60 AR do this in one step? maybe just an OSD bug
this only happens with full 2160p, when I have a window resized to slightly smaller than 2160p, it only shows it once..
- not really a bug but maybe display the same message about superres and NGU when using NGU and superres in chroma upscaling
i'm using all Very High and still can't select the Very High on Chroma Upscaling
leeperry
28th November 2016, 03:30
Thanks for the new version :)
Must admit I never understood the point to let us choose Jinc upscaling when doubling anyway, it's much clearer now.
But could you please make the NGU+SR nagscreen a one-timer and that's it? It currently shows up everytime I click on OK :o
Will run more tests tomorrow but yes so far it seems less confusing and no less efficient as far as I can tell so GG.
I still would like to be able to increase luma NGU and disable chroma NGU if need be, this currently seems impossible? I was doing it in the previous version and what's that new "downscale quality" setting exactly?
So doubling "downscale quality" is not related to what we picked in "image downscaling"? That's very confusing.
I would also like to have sxbr back please, sometimes its EE did the magic on low-res SD.
- Remove ringing artifacts is a must even with NGU. I was comparing a still of Futurama with it on and off and it removed the remaining ringing around the dark black line art.
That's one of the most dramatic filter in mVR to my eyes, turning it off just hurts my brain huh. I rest my case that my impression is that it repairs the ringing/fringing induced by camera optics and it looks so great with NGU :)
Sunset1982
28th November 2016, 05:27
@madshi
but could you explain to us what the logic is behind the NGU options "chroma/downscale quality: automatic" and "activate only if it's useful"? this is some information the power user probably wanna know, me included.
I would like to know that too.
What settings are behind the chroma quality and downscale quality options?
How do these image upscaling options interact / depend on the normal chroma upscaling / image downscaling options?
If I select SuperXBR with SR in the chroma upscale tab, I can't choose the SR strength anymore. Bug or feature?!
JarrettH
28th November 2016, 05:50
If you read the OSD and cycle the settings, you can see which scalers are being used.
sauma144
28th November 2016, 06:04
@madshi
1) Why not creating presets based on quality or performance for newcomers?
2) Is something like "sync playback to display" from Kodi planned for madVR?
Asmodian
28th November 2016, 07:26
it was
NGU very high below nnedi3 64
NGU high below nnedi3 32
NGU mid below nnedi 16
doesn't count for polaris GPUs.
Based on my experiance and other user reports both Maxwell and Pascal also seem to be slower than expected. NGU very-high on my pascal Titan X, with v0.91.2, still has a performance hit similar to NNEDI3 128 instead of 64.
It is hard to say where the quality is equivalent, they look pretty different. :)
Edit: I quite like the new settings page, there is a lot less to setup and it is great to have downscaling after doubling be a separate option. Bicubic 60 too. :D
Automatic chroma and downscale quality seems to pick exactly what I would set, at least when not in a placebo mind set. ;)
Backflash
28th November 2016, 08:05
Sorry but NGU doesn't hold a candle to XBR-75 for image doubling. At least with the material I'm upscaling, which is generally medium-high quality SD, NGU on various settings (tried low and high) gives me way more artifacts and obvious artificial sharpening. I'd like to suggest adding Super-XBR back, it's a great image doubler.
I've been of same opinion, what you need to do is remove sharpeners superres, some antiblaot settings, everything in image enchantment and image refinement except add grain and maybe thin edges. And it looks without artifact and sharp enough.
NGU conflicts with a lot of things like that creating artifacts. Play with settings more.
Q-the-STORM
28th November 2016, 08:11
@madshi
1) Why not creating presets based on quality or performance for newcomers?
2) Is something like "sync playback to display" from Kodi planned for madVR?
1. madshi wanted to do that eventually, but to be honest, now that a bunch of algorithms have been dropped and performance of NGU is that good, there really is no need for presets... you only have a few options now and most people will simply be using NGU
2. that setting is also messing with audio, which madVR has nothing to do with... you can get the same result if you use 32bit madVR and reclock...
personally, I've always hoped that LAV would implement a slowdown/speedup feature, they would be able to slowdown/speedup audio and video and report the new framerate to the renderer... because that would mean every player that can use LAV would have a speedup/slowdown feature... would also mean I wouldn't have to keep around a 32bit player for PAL DVD content...
Backflash
28th November 2016, 08:52
http://imgur.com/a/qyVl8
I lost ability to read OSD. high into med into "random" downscaler. Is it a bug? or am I confused about steps here?
"random downscaler issue": can we please leave it for downscaling tab domain?
or maybe add what settings mean inside brackets? high(ssim1d100 ar)
it has enough space I think, same with chroma
Only these two confused me, I guess they are great if you never saw previous UI.
In far future(because it's a pain to do) would be nice to have expert and novice mode.
toniash
28th November 2016, 08:54
sorry i don't see that working for DVDs.
edit: and very common 4/3 AR 16/9 broadcast shouldn't work too.
For low-end cards it will be very useful a NGU 1,5X for 720p -> 1080p
flossy_cake
28th November 2016, 09:03
If you believe that using FreeSync/G-SYNC would be beneficial for video playback, you might be able to convince me to implement support for that by fulfilling the following 2 requirements:
1) Show me an API which allows me to define at which time in the future a specific video frame gets displayed, and for how long exactly.
Here's one example used by Frafs Test Pattern app (DX9). You can use the command line argument to select a fps limit to engage the hires timer and turn on the scrolling bar to check for dropped frames.
Source code of area where hires timer is implemented
https://sourceforge.net/p/frafstestpatt/code/HEAD/tree/trunk/_FrafsTestPattern.cpp#l872
https://sourceforge.net/p/frafstestpatt/code/HEAD/tree/trunk/src/FRHiResTimer.cpp
Note: cpu usage is quite high with the hires timer (~15% CPU load ). I was able to eliminate it by adding a 1ms sleep on line 916 of FrafsTestPattern.cpp.
Also
https://msdn.microsoft.com/en-us/library/aa964692(v=vs.85).aspx
2) Donate a FreeSync/G-SYNC monitor to me, so that I can actually test a possible implementation. Developing blindly without test hardware doesn't make sense.
I hope someone sees that and does. Unfortunately I am broke after getting mine :)
Since it already works in MPC-HCx64 + MadVR + DX11 disabled + Full Screen Exclusive Mode + SVPTube , is it possible to just have a "windowed exclusive mode"? I have tried setting a hotkey to toggle exclusive on/off while in windowed mode but no effect.
What Freesync/G-Sync will do is just multiply framerate to minimize judder, there will still most likely be judder.
Absolutely not! And why would you think there would be judder? For each 1fps increase or decrease the monitor is matching a perfect 1:1 cadence for that fps. The zig zag line does not mean "this zone is judder", its just showing which multiple of refresh rate is used. As long as it's an exact multiple the cadence will remain 1:1 and no judder or jitter is seen. In practical testing I can assure you that it is seamless even at low frame rates
http://testufo.com/#test=stutter&demo=gsync&foreground=FFFFFF&background=000000&max=12&pps=720
If you don't match them exactly (such as in your example), you get presentation jitter, and that's bad.
I think you are making an assumption about frame time deltas of 33.4ms (1 dropped frame at 60hz) and trying to apply that to a delta of +/- 5-10ms, which proves you don't own one of these variable monitors because if you did then you would already know that in D3D applications while the fps/hz meter is fluctuating up and down all over the place the motion is still seamless because the inter-frame delta is still much much lower than 1 dropped frame at 60hz. You are still thinking about everything snapping to the nearest 16.7ms which is not the case here. A rapid rise from say 24-90 in gsync will still have an average inter-frame delta that is very low and nowhere near the 33.4ms caused by 1 dropped frame at 60hz.
I would urge you to actually see or use one of these monitors at rapidly varying refresh rates before making judgement based on theory.
Windows is not a real-time OS, so there are no guarantees that madVR will be able to make that call at the appropriate time.
Of course there are no guarantees. At the end of the day the CPU is still running the application regardless of the scenario and relies on not being interrupted by other processes. If the vsync implementation is done by the CPU (such as waiting for a vsync signal) then it will be vulnerable to the same problem if some other process interrupts it.
I think you misunderstood my point. My point was, most people who are in this case (i.e. take the time to learn how to use madVR, worry about cadence…) do not typically use gaming monitors to play their videos on. Instead they use large HDTVs or projection systems, which don't support G-Sync. It's a bit weird to spend all this time getting to the perfect playback system only to use it on a 28" gamer-optimized panel just because it has G-Sync. I'm sure there are people in this case, but it's a very small niche, even among madVR users.
I use it mostly for watching youtube which is primarily a PC activity. The picture quality is just so much better with the edge enhancement, dithering and scaling algorithms etc. plus the colour space is wrong in Chrome (oranges are more red/crimson).
Having to change monitor modes for each video file or youtube video is an annoyance and many monitors don't support the necessary modes (24hz and 50hz which I use quite a lot , most European motorsports broadcasts) which forces me to use the artificial smoothing algorithm at 144hz which is kind of a patch solution, but works quite well actually and full credit to Madshi there :thanks:.
But Alt+Enter and I get 50hz gsync, perfectly smooth motion without any tricks thus proving gsync is doable and has no significant technical limitations in this application therefore everything you said about it being impossible to do smoothly is untrue because I've seen it with my own eyes (and in games with external FPS limiter RivaTuner ) :thanks:
ryrynz
28th November 2016, 09:24
0.91.2 is making some of my profiles disappear and saying there's an error in the rules because it can't find the profile.
Reverting back to 0.91.1 resolves it. Will post more info later if required, no time ATM.
madshi
28th November 2016, 09:29
As soon as it tries to upscale it just hangs with the following message [...]
Thanks, will be fixed in the next build.
could you explain to us what the logic is behind the NGU options "chroma/downscale quality: automatic" and "activate only if it's useful"?
"chroma quality: automatic" chooses Bicubic60 AR for doubling chroma, except when using NNEDI3-128/256 or NGU-VeryHigh. In that case NNEDI3-16 respectively NGU-Med is used instead.
"downscale quality: automatic" chooses Bicubic150 AR for downscaling, except when using NNEDI3-128/256 or NGU-VeryHigh. In that case SSIM1D100 is used instead.
"activate only if it's useful" currently activates doubling with a scaling factor of 1.2x or higher, and quadrupling with a scaling factor of 3.0x or higher.
Also noticed that chroma quality is unselectable at low, medium settings - probably because that shouldn't be a selection then.
Correct. At low/medium settings, speed is king, and using any sort of NGU for chroma doubling would slow things down too much. If you have enough GPU power to do chroma doubling, you really should be using NGU-High for luma doubling instead.
What is bicubic60ar for? As a doubler?
It serves as a quick chroma doubler for best "bang of the buck".
Sorry but NGU doesn't hold a candle to XBR-75 for image doubling. At least with the material I'm upscaling, which is generally medium-high quality SD, NGU on various settings (tried low and high) gives me way more artifacts and obvious artificial sharpening. I'd like to suggest adding Super-XBR back, it's a great image doubler.
Can't you use NNEDI3-16 instead? That's the one I left in for low quality SD material.
When I released v0.90.0/1, I asked for feedback which doubling algos could be deleted, and everybody said super-xbr could go as soon as NGU has the same speed. I don't remember anyone saying they would want to keep super-xbr. There were votes for keeping NNEDI3, though.
I'm not saying I won't bring super-xbr back, but I need to be convinced that it's really useful/necessary.
I don't know what you've done with the speed-ups, madshi, but this is a whole lot faster than 0.91.1.
Not sure why it's a lot faster for you, it was only supposed to be slightly faster. But I won't complain.
Why no more old high + high quadrupling? :(
Current max quality doesn't look nice to me for quadrupling cartoons. I'd really like to be in charge how luma is scaled, any automatism is just a painful restriction...
The plan is for NGU to soon quadruple directly without needing 2 steps. Which is why I designed the new settings in such a way that you can't choose separate doubling/quad quality levels for NGU. Of course if you pick "High" I could use "High" for both doubling and quadrupling, but there will be users which have a GPU which is too slow for that, while NGU-High + NGU-Med might work for them.
I was thinking that NGU-Med would not show a noticeable difference to NGU-High when used for quadrupling. Maybe I was wrong about that? Do you have a nice screenshot which shows the difference?
What is the difference between "image downscaling" and the "downscale quality" setting in image upscaling?
image downscaling is for actually downscaling, like 2160p video on a 1080p display, or 1080p video in a 720p window.
downscale quality is for what downscaling algorithm is used after doubling, so for e.g. 720p on a 1080p display, it doubles to 1440p and then downscales to 1080p using what is set in downscale quality...
^
Also i cant select the very high setting in chroma upscaling, it always switches back to high.
Will be fixed in the next build.
Should I use
Chroma Upscaling - NGU Very High + SuperRes 3 ( Do I need SuperRes 3 when using NGU in Chroma Upscaling ) ?
Image upscaling NGU - Luma Very High , Chorma Quality - Auto , Downscale Quality - Auto , Activate only if it's useful
Upscaling Refi - All Disabled
For chroma upscaling NGU Very High might be overkill. But if your GPU can do it, it shouldn't harm.
I wouldn't use SuperRes with NGU. Other than that the settings look good to me.
- Image Downscaling settings aren't used when using Image Upscaling with NGU?
No, that's what the "downscaling quality" option in the "image upscaling" section is for. I intentionally separated "image downscaling" from "downscaling after doubling", because there might be different needs for these 2 different situations, and because I didn't want to use settings from the "image downscaling" page when we're actually *up*scaling the video. For downscaling after doubling in most cases Bicubic150 AR should be good enough, while for true "image downscaling" using SSIM1D might be beneficial.
- NGU Upscaling - Would like to be able to use "User" setting for downscale quality, which would use my User Specified settings in Image Downscaling.
Why?
Also, please add Very High for downscale quality, which would probably use SSIM 2D100%
No, sorry, but that's total overkill, IMHO. I want to protect users from wasting GPU resources on algos which don't really bring any noticeable quality benefit. Using SSIM 2D100 after doubling is such a case, IMHO.
But could you please make the NGU+SR nagscreen a one-timer and that's it? It currently shows up everytime I click on OK :o
Oh well. I suppose that should be possible.
I still would like to be able to increase luma NGU and disable chroma NGU if need be, this currently seems impossible?
You can disable chroma NGU by setting "chroma quality" to "normal". You can select luma NGU directly, not sure what you mean there.
So doubling "downscale quality" is not related to what we picked in "image downscaling"? That's very confusing.
Is it? Why would the "image downscaling" settings page play any role when we actually upscale the video? I think you're stuck in the old way the settings worked. Once you understood it, it made sense, but it was kinda backwards. The new settings are very strict: The "image downscaling" options are now only used when we actually downscale the video. Every option that plays a role when we upscale the image is now actually in the "image upscaling" settings page. That is not confusing but more logical, IMHO, if you try to forget what you were used to from older madVR builds and look at this with a fresh set of eyes.
I would also like to have sxbr back please, sometimes its EE did the magic on low-res SD.
JFWIW, did you ask for super-xbr to stay when I asked for feedback when releasing v0.90.0/1?
If I select SuperXBR with SR in the chroma upscale tab, I can't choose the SR strength anymore. Bug or feature?!
Bug. Will be fixed in the next build.
2) Is something like "sync playback to display" from Kodi planned for madVR?
I don't even know what that is/does?
Automatic chroma and downscale quality seems to pick exactly what I would set, at least when not in a placebo mind set. ;)
:)
2. In image upscaling, it would be great if "chroma quality" and "downscale quality" would actually state what alogrithms are being used... sure you can enable it and check OSD, but it shouldn't be too much of an issue to have it say "chroma quality: high (NGU low + bicubic60 AR)"
I'm not sure I want to do that. It might result in new users thinking that Bicubic60 AR can't be good enough and that they should activate some sort of NGU for chroma doubling.
4. When luma high is selected, chorma veryhigh automatically reverts to high. Instead of automatically reverting, maybe display a message that it would be better to select higher luma quality than chroma. The way it is now feels like a bug.
The old "image doubling" logic behaved in a very similar way and nobody ever complained about it.
- with 720p -> 2160p on chroma quality normal OSD shows bicubic60 AR twice "chroma > bicubic60 AR > bicubic60 AR" shouldn't bicubic60 AR do this in one step? maybe just an OSD bug
this only happens with full 2160p, when I have a window resized to slightly smaller than 2160p, it only shows it once..
It's what's actually being done. Don't worry about it. It might seem wrong/wasteful, but it's done intentionally for best speed with NGU, due to how NGU works internally.
- not really a bug but maybe display the same message about superres and NGU when using NGU and superres in chroma upscaling
I thought about it, maybe I should add it.
I lost ability to read OSD. high into med into "random" downscaler. Is it a bug? or am I confused about steps here?
"random downscaler issue": can we please leave it for downscaling tab domain?
or maybe add what settings mean inside brackets? high(ssim1d100 ar)
it has enough space I think, same with chroma
Only these two confused me, I guess they are great if you never saw previous UI.
Please try to forget the previous UI logic, that will help understanding the new one better.
Downscaling quality settings are really simple: Low = Bilinear; Normal = Bicubic150 AR; High = SSIM1D100. I don't want users worry about which is which, but just trust in that my preselection makes sense. I think it's much better this way for new/normal users. Maybe power users don't like it, but seriously, would you want to use a downscaling algo other than Bicubic150 or SSIM1D100 after doubling? If so, please explain why.
For low-end cards it will be very useful a NGU 1,5X for 720p -> 1080p
Yes, but it's not technically possible. NGU will always be a pure integer (2x, 3x, 4x etc) upscaler.
Here's one example used by Frafs Test Pattern app (DX9). You can use the command line argument to select a fps limit to engage the hires timer and turn on the scrolling bar to check for dropped frames.
It's real time rendered, similar to games, not a movie with pre-recorded frames.
Source code of area where hires timer is implemented
A hires timer doesn't help. Have you read my FAQ? I asked for an API which defines at which exact point in time a frame will be shown in the future and for how long the frame will stay on screen. I'm not interested in trying to do this myself with a hires timer. The API needs to provide this functionality (and with a "hardware interrupt" supported backend, not with hires timers working in the background), otherwise it's useless for video rendering. Or do you want to have stuttering motion in situations where the CPU is busy for a few milliseconds (which is pretty normal for a Windows PC)? Relying on a hires timer to do the frame syncing would be a big step *back*, compared to the reliable motion smoothness madVR achieves today with a conventional VSync display, and I'm not interested in spending time and money on a solution which is actually a step back in motion smoothness reliability.
madshi
28th November 2016, 09:31
madVR v0.91.3 released
http://madshi.net/madVR.zip
* fixed: NNEDI3 doubling could crash in certain situations
* fixed: NGU chroma upscaling didn't allow "veryHigh"
* fixed: SuperRes strength controls were disabled for chroma upscaling
HillieSan
28th November 2016, 09:33
Comparing 0.91.1 and 0.91.2 using RX 480
0.91.1 settings
------------------
Chroma upscaling: Catmull-Rom
Image upscaling: Catmull-Rom
Luma doubling: disabled
SuperRes: off
0.91.1 with SE and AG both off
-----------------------------------
low 7.5 ms
med 14.3 ms
high 36.5 ms
0.91.1 with SE and AG both 1
-----------------------------------
low 8.5 ms
med 15.0 ms
high 36.5 ms
0.91.2 Settings
------------------
Chroma upscaling: Cubic (=BiCubic50/Catmull-Rom)
SuperRes: off
Quality settings are left on Automatic.
0.91.2 with SE and AG both off
-----------------------------------
low 5.3 ms
med 7.2 ms
high 14.0 ms
very high 42.5 ms
0.91.2 with SE and AG both 1
-----------------------------------
low 6.4 ms
med 8.0 ms
high 15.0 ms
very high 43.8 ms
I am sensitive to judder and GNU med with SR=1 and AG=1 is ok.
GNU high with SR=off and AG=off is a bit too slow.
I hope that the performance can improve a bit more.
EDIT: Did the performance change in 0.91.3?
madshi
28th November 2016, 09:39
0.91.2 is making some of my profiles disappear and saying there's an error in the rules because it can't find the profile.
Reverting back to 0.91.1 resolves it. Will post more info later if required, no time ATM.
Ouch. It's probably due to the removed image doubling settings page. I'm not sure if there's an easy fix... :(
Would it be a lot of work to redo the profiles in 0.91.1 without image doubling as part of the profiles?
Comparing 0.91.1 and 0.91.2 using RX 480
0.91.1 with SE and AG both off
-----------------------------------
low 7.5 ms
med 14.3 ms
high 36.5 ms
0.91.2 with SE and AG both off
-----------------------------------
low 5.3 ms
med 7.2 ms
high 14.0 ms
very high 42.5 ms
Not sure why very high measures slower, that shouldn't be the case, unless it's a different downscaling algorithm after doubling?
Generally, I hope that RX480 users will get a significant speed improvement from future drivers.
EDIT: Did the performance change in 0.91.3?
No.
HillieSan
28th November 2016, 09:44
Not sure why very high measures slower, that shouldn't be the case, unless it's a different downscaling algorithm after doubling?
I left downscaling on automatic. I use 1080 -> 2160. There should be no downscaling enabled, right?
madshi
28th November 2016, 09:47
Right. Not sure why it's slower then.
burfadel
28th November 2016, 09:52
In 0.91.3, if you enable NGU SuperRes shouldn't be used, and the warning message shows.
HOWEVER, what happens if you select one of the conditions for using NGU, such as 'Activate only if it's useful', or 2.0x scaling? if those conditions aren't met, it would use your other settings (for example, Jinc). In that situation, you would want SuperRes :).
HillieSan
28th November 2016, 09:52
New test
0.91.2 with SE and AG both off
-----------------------------------
low 5.3 ms
med 7.2 ms
high 13.3 ms with CQ: normal, DQ:low
very high 35.0 ms with CQ: normal, DQ:low
CQ = Chroma Quality, DQ = Downscale Quality.
mmm, Chroma Quality set to Automatic is not clear to me. What is the criteria?
ryrynz
28th November 2016, 09:53
Ouch. It's probably due to the removed image doubling settings page. I'm not sure if there's an easy fix... :(
Yeah that's what I thought.
Would it be a lot of work to redo the profiles in 0.91.1 without image doubling as part of the profiles?
Nah, not really.. but if you can't improve things then might want to release an official warning of potential breakage.
huhn
28th November 2016, 09:58
Why? NGU could upscale 8x, then downscale to the target resolution. Just an example, of course.
sorry but this is going to hurt a lot on a UHD screen
720x480-> 5760X3840 -> 3840x2160 doesn't sound viable to me.
i don't think is is possible to skip the last upscale step for every normal source.
i still think super XBR should stay.
simple reason it doesn't highlight compression artefacts as much as NGU on DVDs.
flossy_cake
28th November 2016, 09:59
It's real time rendered, similar to games, not a movie with pre-recorded frames.
A hires timer doesn't help. Have you read my FAQ? I asked for an API which defines at which exact point in time a frame will be shown in the future and for how long the frame will stay on screen. I'm not interested in trying to do this myself with a hires timer. The API needs to provide this functionality (and with a "hardware interrupt" supported backend, not with hires timers working in the background), otherwise it's useless for video rendering. Or do you want to have stuttering motion in situations where the CPU is busy for a few milliseconds (which is pretty normal for a Windows PC)? Relying on a hires timer to do the frame syncing would be a big step *back*, compared to the reliable motion smoothness madVR achieves today with a conventional VSync display, and I'm not interested in spending time and money on a solution which is actually a step back in motion smoothness reliability.
Well it's working perfectly in full screen exclusive mode so I guess I'll just be happy with that.
When you call Present , thats still a CPU command that could be blocked or delayed by the OS kernel for a few ms.
Q-the-STORM
28th November 2016, 10:05
@madshi
2) Is something like "sync playback to display" from Kodi planned for madVR?
I don't even know what that is/does?
It's basically what reclock does with 23.976fps video on a 24Hz display, it slightly increases video and audio speed (resamples audio) to match Hz of output...
I do not understand something, why do we need chroma and downscaling tabs then? if it gets selected in image upscaling menu anyway?
downscaling tab settings are being used when you are only downscaling.... "downscaling quality" in upscaling tab is being used when doubling to higher resolution and than downscaling to your display size...
chroma tab is only being used to upscale 4:2:0 chroma to 4:4:4 chroma, "chroma quality" in upscaling tab is being used to upscale further.... so chroma tab is being used with every video, regardless of resolution, chroma quality is only used when you actually upscale resolution
huhn
28th November 2016, 10:10
and as reclock it will be the work of the audio renderer not the video renderer.
if i'm not mistaken madVR suppports the new planned "reclock" feature in sanear so madVR "supports" this.
Backflash
28th November 2016, 10:15
downscaling tab settings are being used when you are only downscaling.... "downscaling quality" in upscaling tab is being used when doubling to higher resolution and than downscaling to your display size...
chroma tab is only being used to upscale 4:2:0 chroma to 4:4:4 chroma, "chroma quality" in upscaling tab is being used to upscale further.... so chroma tab is being used with every video, regardless of resolution, chroma quality is only used when you actually upscale resolution
Yeah, I got it one minute later after posting, thank you.
Basically it's condensed doubling menu, it took me way too much time to understand this simple concept.
nevcairiel
28th November 2016, 10:26
Can't you use NNEDI3-16 instead? That's the one I left in for low quality SD material..
Personally I have used super-xbr in the past over NNEDI3 because the OpenCL used for NNEDI3 is generally a bit error prone and has produced some issues, while super-xbr just works with no complications.
Most of the things I watch is clean content though, and I've been thinking if i shouldn't figure out some pre-processing step to clean up some of the lower quality sources.
So I'm not sure if i'll miss it, yet. Didn't have any time to try to test NGU yet.
burfadel
28th November 2016, 10:37
v0.91.3 works better than v0.91.1, however I am still having issues with D3D.
I have two log files. The first is playback on a Freesync monitor (it doesn't seem to like that at times), and the second is on a TV playing from the same computer. It works some of the time. If you put it into a window and the computer turns off the scree as part of power saving, it doesn't restart the video. It just freezes but audio plays. Then, when you close off the player it gets 'stuck' under processes and you have to hard shutdown the computer because using restart it just gets stuck on the restart screen.
Yes, I am using insider build 14971 x64, Crimson driver 16.11.4, but these issues presented themselves on the same older build and driver when I upgraded from a R9-280X to the RX 480 with the freesync monitor.
Where do I upload the logs? The Freesync one is 21.6 MB, the other one which only consists of a very brief playback, window mode, monitor off and back on again (where it kind of worked for the first time :S, but it did jam again) is 258 MB.
Issues only seem to affect Direct3D 11 mode, and more so under exclusive than windowed mode. The GPU can handle the settings very well, in the time of playing even in a warmish room the GPU was a couple of degrees under 60 C, so it didn't need the fans running.
madshi
28th November 2016, 10:44
New test
0.91.2 with SE and AG both off
-----------------------------------
low 5.3 ms
med 7.2 ms
high 13.3 ms with CQ: normal, DQ:low
very high 35.0 ms with CQ: normal, DQ:low
CQ = Chroma Quality, DQ = Downscale Quality.
mmm, Chroma Quality set to Automatic is not clear to me. What is the criteria?
Ah, so the chroma quality probably was causing the slowdown. I've explained the criteria a couple of posts above. FWIW, I'd recommend setting DQ to normal or auto.
sorry but this is going to hurt a lot on a UHD screen
720x480-> 5760X3840 -> 3840x2160 doesn't sound viable to me.
i don't think is is possible to skip the last upscale step for every normal source.
How about 6x? 720x480 -> 4320x2880 -> 3840x2160. I've not even started working on larger than 2x NGU algorithms yet, but you will probably be surprised about how fast they are going to be.
i still think super XBR should stay.
simple reason it doesn't highlight compression artefacts as much as NGU on DVDs.
But isn't that what NNEDI16 is for? Yes, I know, NNEDI16 is slower than super-xbr. But DVDs are really low res. Can't every GPU these days perform NNEDI16 on DVDs? Blu-Rays are a different topic, but there you really want to use NGU, don't you?
When you call Present , thats still a CPU command that could be blocked or delayed by the OS kernel for a few ms.
That's why madVR presents (up to) 16 frames in advance. At least in FSE mode these 16 frames should then be flipped via VSync hardware interrupt. You can even suspend the media player process with the task manager. All pre-presented frames will still be displayed smoothly. With 24fps, basically playback will continue to run perfectly for 0.667 seconds after you've suspended the media player process. So with the current madVR presentation logic the CPU would have to be blocked for longer than 0.667 seconds for motion to start stuttering. Now compare that to a FreeSync/G-SYNC solution, where motion would already start stuttering if the CPU is blocked for just a couple of milliseconds!
It's basically what reclock does with 23.976fps video on a 24Hz display, it slightly increases video and audio speed (resamples audio) to match Hz of output...
madVR has nothing to do with audio. So this is not something I can possibly implement.
Personally I have used super-xbr in the past over NNEDI3 because the OpenCL used for NNEDI3 is generally a bit error prone and has produced some issues, while super-xbr just works with no complications.
Fair enough. So you'd also like super-xbr to stay (or rather come back)?
Most of the things I watch is clean content though, and I've been thinking if i shouldn't figure out some pre-processing step to clean up some of the lower quality sources.
Yes, I think we really do need some good compression artifact reducer.
v0.91.3 works better than v0.91.1, however I am still having issues with D3D.
I have two log files. The first is playback on a Freesync monitor (it doesn't seem to like that at times), and the second is on a TV playing from the same computer. It works some of the time. If you put it into a window and the computer turns off the scree as part of power saving, it doesn't restart the video. It just freezes but audio plays. Then, when you close off the player it gets 'stuck' under processes and you have to hard shutdown the computer because using restart it just gets stuck on the restart screen.
Yes, I am using insider build 14971 x64, Crimson driver 16.11.4, but these issues presented themselves on the same older build and driver when I upgraded from a R9-280X to the RX 480 with the freesync monitor.
Where do I upload the logs? The Freesync one is 21.6 MB, the other one which only consists of a very brief playback, window mode, monitor off and back on again (where it kind of worked for the first time :S, but it did jam again) is 258 MB.
Issues only seem to affect Direct3D 11 mode, and more so under exclusive than windowed mode. The GPU can handle the settings very well, in the time of playing even in a warmish room the GPU was a couple of degrees under 60 C, so it didn't need the fans running.
Is FreeSync active? Can you totally disable it? Does that help?
huhn
28th November 2016, 10:56
How about 6x? 720x480 -> 4320x2880 -> 3840x2160. I've not even started working on larger than 2x NGU algorithms yet, but you will probably be surprised about how fast they are going to be.
of cause this sounds a lot better. but we are not that far yet.
But isn't that what NNEDI16 is for? Yes, I know, NNEDI16 is slower than super-xbr. But DVDs are really low res. Can't every GPU these days perform NNEDI16 on DVDs? Blu-Rays are a different topic, but there you really want to use NGU, don't you?
not sure. i haven't used NGU properly yet. i still have a polaris GPU and i don't like to judge scaling algorithm without watching an movie or something.
i was never a fan of nnedi3 anyway. i'm currently using XBR for everything.
i haven't installed the new madVR version because i simply need XBR for now. but i didn't bring that up as a reason to leave XBR in there because i still hope this will change in the "future".
i could order a new RX 480 for my gaming PC and let them send it to you for about a month or something like that.
i'm not a programmer but this sound like a lot of work for something that should work out of the box and just thinking the card is defect when shipped gives me nightmares...
madshi
28th November 2016, 11:05
I've no idea why the RX480 is so slow with NGU. I can only imagine that the drivers have issues with what my PS3.0 shaders are doing, for some weird reason. I might still try running the NGU shaders in D3D11, but I'm not convinced it will make a difference. I'm hopeful the problem might be fixed by newer drivers at some point. If you can't wait, it might make sense to replace the RX480 with an NVidia card, for the time being...
That said, I'm considering bringing back super-xbr next weekend.
vBulletin® v3.8.11, Copyright ©2000-2026, vBulletin Solutions Inc.