Welcome to Doom9's Forum, THE in-place to be for everyone interested in DVD conversion.

Before you start posting please read the forum rules. By posting to this forum you agree to abide by the rules.

 

Go Back   Doom9's Forum > Hardware & Software > Software players

Reply
 
Thread Tools Search this Thread Display Modes
Old 9th June 2015, 19:42   #30901  |  Link
starla
Registered User
 
Join Date: Jan 2004
Posts: 56
In case someone happens to have performance issues with madVR rendering (excluding cases where DXVA scaling seems to work) one thing that could cause it is a buggy motherboard bios.

Same HW, but different MB bios versions resulted quite different texture upload speeds:

Quote:
A8R8G8B8 Texture speed test:
default: upload 17 fps, download 138 fps
dynamic: upload 9 fps, download 8 fps, trick download 121 fps
vs.

Quote:
A8R8G8B8 Texture speed test:
default: upload 132 fps, download 167 fps
dynamic: upload 239 fps, download 9 fps, trick download 131 fps
starla is offline   Reply With Quote
Old 9th June 2015, 19:45   #30902  |  Link
SecurityBunny
Registered User
 
Join Date: Jul 2013
Posts: 76
Quote:
Originally Posted by huhn View Post
what? 23 hz is supposed to be 24000/1001 = ~23.976
Check my previous message. :P I tested both 24hz and 23hz since madshi asked for both. Setting my display to 23hz puts it in 22.99 whereas 24hz puts it at 24.00.

Though there still seems to be some type of problem if 0.88.8 can play 22.99hz with relatively full queues and the test build can't at this specific hz. Even if it isn't the norm.
SecurityBunny is offline   Reply With Quote
Old 9th June 2015, 20:29   #30903  |  Link
nlnl
Registered User
 
Join Date: Aug 2008
Posts: 176
Quote:
Originally Posted by nlnl View Post
madshi
tested new image ehancement option using this image https://cloud.mail.ru/public/abgy/uwuasurxh
the results:
Fine sharp on

fs off


can not see horisontal lines when fs off and the same with superres filter off for chroma upsampling.
madshi
I mean that horisontal lines in window (marked using arrow)
FS OFF, image inhancement

no horisontal lines
and
FS ON, image inhancement,

we see lines.
This is the test image for correct chroma upsampling (Spears & Munsil) and we should see horisontal lines with and without Fine Sharpening?

Last edited by nlnl; 9th June 2015 at 20:46.
nlnl is offline   Reply With Quote
Old 9th June 2015, 21:06   #30904  |  Link
MysteryX
Soul Architect
 
MysteryX's Avatar
 
Join Date: Apr 2014
Posts: 2,105
Madshi, I'll add one more thing about SuperRes anti-ringing. It adds distortion to the image so you have to be careful. If it's too low, it doesn't quite remove anti-ringing, but then if it is too high, the image looks "flat"

Last edited by MysteryX; 24th June 2015 at 06:02.
MysteryX is offline   Reply With Quote
Old 9th June 2015, 21:41   #30905  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 9,268
Quote:
Originally Posted by nlnl View Post
madshi
I mean that horisontal lines in window (marked using arrow)
FS OFF, image inhancement

no horisontal lines
and
FS ON, image inhancement,

we see lines.
This is the test image for correct chroma upsampling (Spears & Munsil) and we should see horisontal lines with and without Fine Sharpening?
I see lines in both cases on your screenshot, on a PC monitor with guaranteed 4:4:4 reproduction. Maybe it interacts badly with your chroma sampling test?
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 9th June 2015, 22:33   #30906  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,070
Quote:
Originally Posted by TheLion View Post
For FineSharp as Image Enhancement i would suggest:

Preset:Strength= low:0.5 medium:1.0 high:2.0
Always with linear light ON

Thinning seems fine at default for all three modes, but it's very hard to come up with a preference for me I am afraid - so I would certainly not object when this parameter is changed from default. I guess it would seem logical that the "optimum" thinning setting changes as well with different strength presets.

Mode 3 is certainly not "night and day" but in my opinion the difference is relevant enough to make it the default, with mode 1 or 2 perhaps a new "trade quality for performance" checkbox. I know you hate additional options, but madVR is all about best quality first, afterall
Ok, thanks.

Quote:
Originally Posted by Hyllian View Post
To tell you the truth, my algorithm is only for 2x, as NNEDI3 or NEDI. I have used my other jinc2 shader to go from 2x to 4x. And in fact it has some ringing, though most of them come from the jinc2 pass (the last pass). I didn't use any kind of sharpener and maybe it could improve the image a bit more.
Why don't you use your super-xbr twice, like 2*2x = 4x? That's what I'm doing with NNEDI3/NEDI, too.

Quote:
Originally Posted by Hyllian View Post
My algorithm is called super-xbr, as it was derived from the standard xbr algorithm I already had developed for cartoon games some years ago and is largely used in emulators. The super-xbr is more focused in high color gradient images than cartoons, so I think it could be good for videos. For now, it's only in cg shader language and available for emulators like Retroarch. The sources are in this repository: https://github.com/libretro/common-s.../xbr/super-xbr

Unfortunately, I don't know other shaders languages to port it, but maybe you could port it and test in madVR or other players/systems. It's a bit less aggressive then the NEDI shader.

If I disable the anti-ringing I get this: http://i.imgur.com/bDA74E2.png
Ouch, looks very ugly without anti-ringing!

Which license does your super-xbr algo (and the shaders) come with? I might be interested trying it for madVR, but it depends on the license. Thanks!

Quote:
Originally Posted by SecurityBunny View Post
At 23hz (22.99hz), with 0.88.8, queues seem to fill. Not as stable / completely filled as 59/24hz (15/15 queue size), but filled. Numbers like 12-15/15 for present queue, whereas the test build it is 2-8/15 for present queue.

So it seems odd integer refresh rates aren't fixed but 3:2 pulldown & 1:1 is fine?
I know what the problem is: In v0.88.9 I extended the refresh rate fix for Direct3D11. The refresh rate fix monitors which refresh rate D3D11 tries to set, and modifies that, if needed. If I leave the refresh rate untouched, your queues fill. If I modify the refresh rate, you get the problems with the non-filling queues. In v0.88.9+ I *always* modified the refresh rate. v0.88.8 only filled the refresh rate in some very special situations. The test build walks middle ground by changing the refresh rate when D3D11 tries to set a refresh rate which is too far away from what we really want to get. In your case with 23Hz madVR sees 23p and expects 23.976Hz, but D3D11 asks for 23.000Hz. That's too far apart, so madVR changes that to 23.976Hz. And that makes the queue no filling. Nothing I can do about it, I guess.

I'm not sure exactly *why* the queues aren't filling. I mean I know it's caused by me modifying the refresh rate. But I'm not sure why modifying the refresh rate causes the queues to not fill - and only in 10bit mode. Strange. And it seems to only affect some users, not all. In any case, I've done what I could do. I think I'll call it a day now and leave things as they are in the test build.

Quote:
Originally Posted by starla View Post
In case someone happens to have performance issues with madVR rendering (excluding cases where DXVA scaling seems to work) one thing that could cause it is a buggy motherboard bios.
Yep, especially when the upload queue doesn't fill, a BIOS update has just proven one possible fix.

Quote:
Originally Posted by MysteryX View Post
Madshi, I'll add one more thing about SuperRes anti-ringing. It adds distortion to the image so you have to be careful. If it's too low, it doesn't quite remove anti-ringing, but then if it is too high, the image looks "flat"
Yes, I've seen issues with anti-ringing set to 1.0, and I think the same issues also occur with lower values, just not as strongly.

Quote:
Originally Posted by nlnl View Post
I mean that horisontal lines in window (marked using arrow)
FS OFF, image inhancement
no horisontal lines
and
FS ON, image inhancement,
we see lines.
This is the test image for correct chroma upsampling (Spears & Munsil) and we should see horisontal lines with and without Fine Sharpening?
Quote:
Originally Posted by nevcairiel View Post
I see lines in both cases on your screenshot, on a PC monitor with guaranteed 4:4:4 reproduction. Maybe it interacts badly with your chroma sampling test?
^ What nevcairiel said.
madshi is offline   Reply With Quote
Old 10th June 2015, 00:00   #30907  |  Link
SecurityBunny
Registered User
 
Join Date: Jul 2013
Posts: 76
Quote:
Originally Posted by madshi View Post
I know what the problem is: In v0.88.9 I extended the refresh rate fix for Direct3D11. The refresh rate fix monitors which refresh rate D3D11 tries to set, and modifies that, if needed. If I leave the refresh rate untouched, your queues fill. If I modify the refresh rate, you get the problems with the non-filling queues. In v0.88.9+ I *always* modified the refresh rate. v0.88.8 only filled the refresh rate in some very special situations. The test build walks middle ground by changing the refresh rate when D3D11 tries to set a refresh rate which is too far away from what we really want to get. In your case with 23Hz madVR sees 23p and expects 23.976Hz, but D3D11 asks for 23.000Hz. That's too far apart, so madVR changes that to 23.976Hz. And that makes the queue no filling. Nothing I can do about it, I guess.

I'm not sure exactly *why* the queues aren't filling. I mean I know it's caused by me modifying the refresh rate. But I'm not sure why modifying the refresh rate causes the queues to not fill - and only in 10bit mode. Strange. And it seems to only affect some users, not all. In any case, I've done what I could do. I think I'll call it a day now and leave things as they are in the test build.
Sounds good. The test build seems to function just fine with both 24hz and 60hz in D3D11 10-bit mode. As long as the queues fill, I would consider the issue fixed. At least would fix my problem.

Any idea why 1 prepresented frame is being dropped when using D3D11 though? With frames in advance set to 16, 15-15/15 present queue with D3D11, 15-16/16 present queue with D3D9.
SecurityBunny is offline   Reply With Quote
Old 10th June 2015, 01:17   #30908  |  Link
JackCY
Registered User
 
Join Date: Jun 2015
Posts: 15
Quote:
Originally Posted by madshi View Post
Technically not possible right now, because custom shaders are not flexible/powerful enough to run Shiandow's deband. At some point in the future, that should be possible, though.
So, where does it run right now? What HW (CPU/GPU), what part of HW (if not GPU shaders).
I might ask Shiandow about the alg. then.

Quote:
Of course my plan is to get rid of the edit boxes altogether and just offer low/medium/high. I could allow the edit boxes to be edited, but it's not that simple, then I also must parse the text and complain if the format isn't correct etc. So some extra work involved there...
Yeah I know checking user input is rather a PITA, I guess C++, gotta write too much and able to reuse only a little.
JackCY is offline   Reply With Quote
Old 10th June 2015, 02:10   #30909  |  Link
vivan
/人 ◕ ‿‿ ◕ 人\
 
Join Date: May 2011
Location: Russia
Posts: 649
Quote:
Originally Posted by JackCY View Post
So, where does it run right now? What HW (CPU/GPU), what part of HW (if not GPU shaders).
Shaders. He is talking about "custom shaders" interface. It allows to execute only single shader (but you can chain them) with input = previous output and without ability to change resolution. Those limitations is the problem, not HW.
Shiandow's deband runs in several passes: first n passes downscale image by a factor of 2 each, last one uses all of downscaled images as input (or last n passes, each using n-th image, dunno).
vivan is offline   Reply With Quote
Old 10th June 2015, 02:23   #30910  |  Link
Hyllian
Registered User
 
Hyllian's Avatar
 
Join Date: Jun 2014
Posts: 42
Quote:
Originally Posted by madshi View Post
Why don't you use your super-xbr twice, like 2*2x = 4x? That's what I'm doing with NNEDI3/NEDI, too.
Ok, for your wishes --> http://i.imgur.com/C1xv6Pr.png

That's using the shaders two times. The anti-ringing is ON two times!

Quote:
Originally Posted by madshi View Post

Ouch, looks very ugly without anti-ringing!
I like it, besides the rings, of course. It's so much more organic! I think the anti-ringing destroys some textures beyond the rings, kkk. You should use jinc as a second pass.

Quote:
Originally Posted by madshi View Post

Which license does your super-xbr algo (and the shaders) come with? I might be interested trying it for madVR, but it depends on the license. Thanks!
For now it's GPL, though I don't mind to change it for any use. I chose that only because Retroarch was using it.

Last edited by Hyllian; 10th June 2015 at 02:55.
Hyllian is offline   Reply With Quote
Old 10th June 2015, 02:54   #30911  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 2,782
Quote:
Originally Posted by Hyllian View Post
Ok, for your wishes --> http://i.imgur.com/C1xv6Pr.png

That's using the shaders two times. The anti-ringing in on two times!
That does look pretty good to me, I'd be interested in comparing results.
ryrynz is offline   Reply With Quote
Old 10th June 2015, 03:25   #30912  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 403
Quote:
Originally Posted by ryrynz View Post
That does look pretty good to me, I'd be interested in comparing results.
Beside of that, the power consumption does matter, at least in the sense it can be spared for other image enhancement computing.
Anima123 is offline   Reply With Quote
Old 10th June 2015, 03:44   #30913  |  Link
blindbox
Registered User
 
Join Date: Jun 2010
Posts: 15
I'm sorry to bring up the topic on FreeSync again, but can't madVR force the output FPS (that is, the 3d/DirectX FPS) to be an integer multiple of the video, and let Freesync or G-Sync handle the rest?

i.e. a 24 fps video is converted to 48 fps by frame doubling/repeating, then let the output FPS be equal to the output video FPS (in this case, 48 dx9 fps) and since it falls into the Free/G-Sync working range, Free/G-sync gets activated.

From what I've read with regards to G-Sync and FreeSync, the game developers don't have to do anything to implement them. It's all driver side. The only thing it requires is that the FPS must be in the working range. And the game must be in full screen.

I haven't seen this suggested so I decided to point this out.

Last edited by blindbox; 10th June 2015 at 03:49. Reason: Edited some terms. I'm not sure what you guys call the output FPS. Composition FPS? Overlay FPS? So I decided to use Dx9 FPS
blindbox is offline   Reply With Quote
Old 10th June 2015, 05:00   #30914  |  Link
MistahBonzai
Registered User
 
Join Date: Mar 2013
Posts: 101
Quote:
Originally Posted by nevcairiel View Post
I see lines in both cases on your screenshot, on a PC monitor with guaranteed 4:4:4 reproduction. Maybe it interacts badly with your chroma sampling test?
Same here on HDTV with verified 4:4:4 chroma capability.
MistahBonzai is offline   Reply With Quote
Old 10th June 2015, 08:04   #30915  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 403
I did some testing of SuperRes for different resolution video files and these settings found to be quite good to my eyes.

For 1024x576 -> 1920x1080, the following settings are used
image doubling: off
Chroma upscaling: Bicubic 75 + AR + SuperRes
image upscaling: Bicubic75 + AR
image downscaling: Catmull-Rom + AR + LL
upscaling refinement: passes 2, medium, strength 0.65, sharpness 0.25, softness 0.25, anti-aliasing 0.15, anti-ringing 0.14, refine the image only once after upscaling is complete


While with 720x406 -> 1920x1080, difference with the former settings as following:
image doubling: NEDI
upscaling refinement: choose refine the image after every ~2x upscaling step produces better result, less blocky (the original compressed video has block artefacts).

Since when 1024x576 -> 1920x1080, if the image doubling was used, it ends up with a DOWNSCALING to reach the screen resolution, while 720x406 ends up with an UPSCALING, I guess similar effect might stands to videos with other resolutions.

With 1024x576 -> 1920x1080 files, the non-double defaults does not produce good quality at least for Bicubic 75 + AR upscaling. Actually I have tried SuperRes with other upscaling algorithms, including bilinear, it seems SuperRes works well with Bicubic and Bilinear, not with other algorithms, to my eyes of course.

One question, if using image doubling with 1024x576 -> 1920x1080 and 'choose refine the image after every ~2x upscaling step' is chosen with upscaling refinement settings, would the refinement been applied twice, or just once after doubling; how exactly it's working with 'refine the image only once after upscaling is complete' set to yes?
Anima123 is offline   Reply With Quote
Old 10th June 2015, 08:34   #30916  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,070
Quote:
Originally Posted by SecurityBunny View Post
Any idea why 1 prepresented frame is being dropped when using D3D11 though? With frames in advance set to 16, 15-15/15 present queue with D3D11, 15-16/16 present queue with D3D9.
That's a limitations of DX11.

Quote:
Originally Posted by Hyllian View Post
Ok, for your wishes --> http://i.imgur.com/C1xv6Pr.png

That's using the shaders two times. The anti-ringing is ON two times!
Thanks! Looks quite promising to me eyes!

Quote:
Originally Posted by Hyllian View Post
I like it, besides the rings, of course. It's so much more organic! I think the anti-ringing destroys some textures beyond the rings, kkk. You should use jinc as a second pass.
In some image areas ringing is beneficial, in others not. I think we would get better results by using your algo once, then sharpening the result in a clever way, then run your algo again, then sharpen it again. The sharpening should have a similar effect to running jinc. Of course the sharpening would need to have some anti-ringing incorporated, too. A combination of LimitedSharpenFaster (AviSynth script) and FineSharp should work well.

Quote:
Originally Posted by Hyllian View Post
For now it's GPL, though I don't mind to change it for any use. I chose that only because Retroarch was using it.
If you could change that to (or dual license it as) MIT or BSD license, that would be most awesome! Of course I would give you proper credit in my readme file (and later in some credits window, if I ever add one, not sure yet). If you find MIT/BSD too generous, LGPL would also work, but if I could choose, I'd *strongly* prefer MIT/BSD.

Quote:
Originally Posted by blindbox View Post
I'm sorry to bring up the topic on FreeSync again
Please use the advanced search for this thread, search for my user name and "FreeSync", and you should get all the answers you need.

Quote:
Originally Posted by Anima123 View Post
I did some testing of SuperRes for different resolution video files and these settings found to be quite good to my eyes.

For 1024x576 -> 1920x1080, the following settings are used
image doubling: off
Chroma upscaling: Bicubic 75 + AR + SuperRes
image upscaling: Bicubic75 + AR
image downscaling: Catmull-Rom + AR + LL
upscaling refinement: passes 2, medium, strength 0.65, sharpness 0.25, softness 0.25, anti-aliasing 0.15, anti-ringing 0.14, refine the image only once after upscaling is complete


While with 720x406 -> 1920x1080, difference with the former settings as following:
image doubling: NEDI
upscaling refinement: choose refine the image after every ~2x upscaling step produces better result, less blocky (the original compressed video has block artefacts).

Since when 1024x576 -> 1920x1080, if the image doubling was used, it ends up with a DOWNSCALING to reach the screen resolution, while 720x406 ends up with an UPSCALING, I guess similar effect might stands to videos with other resolutions.

With 1024x576 -> 1920x1080 files, the non-double defaults does not produce good quality at least for Bicubic 75 + AR upscaling. Actually I have tried SuperRes with other upscaling algorithms, including bilinear, it seems SuperRes works well with Bicubic and Bilinear, not with other algorithms, to my eyes of course.

One question, if using image doubling with 1024x576 -> 1920x1080 and 'choose refine the image after every ~2x upscaling step' is chosen with upscaling refinement settings, would the refinement been applied twice, or just once after doubling; how exactly it's working with 'refine the image only once after upscaling is complete' set to yes?
I've just double checked my source code to be extra sure what I'm saying is correct:

If you activate "refine after every ~2x upscaling step", madVR splits the upscaling into as many upscaling steps as needed to reach the target resolution. It usually does exact 2x upscaling steps, except for the very last upscaling step, which is done with the exact factor needed to reach the target resolution. For 2x steps it doesn't matter if you use image doubling or not, the behaviour is the same. E.g. if you have image doubling activated, madVR uses NNEDI3/NEDI to double resolution. If you don't have image doubling activated, madVR doubles resolution with your selected upscaling algorithm (e.g. Jinc). Some examples:

scaling factor 1.9x -> upscaling 1.9x + superres
scaling factor 2.2x -> upscaling 2.2x + superres
scaling factor 2.3x -> upscaling 2x + superres + upscaling 1.3x + superres
scaling factor 4.1x -> upscaling 2x + superres + upscaling 2.1x + superres

Please note that the upscaling factors 1.3x and 2.1x mentioned above are not fully correct, but you will probably know what I mean. Also please note that e.g. upscaling by 1.9x might include image doubling + downscaling, if you've activated NNEDI3/NEDI doubling.

If you deactivate "refine after every ~2x upscaling step", madVR first scales in the same way as v0.87.21 would do, and then runs superres only once directly after upscaling (or doubling + up/downscaling) is complete. Superres is skipped in this situation if the overall upscaling factor is smaller than 1.125x.

1024x576 -> 1920x1080 is less than 2x in both directions, so superres will only be applied once, regardless of your settings. So you could leave "refine after every ~2x upscaling step" activated all the time, it would not change anything.

Last edited by madshi; 10th June 2015 at 08:40.
madshi is offline   Reply With Quote
Old 10th June 2015, 08:52   #30917  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 403
My observations still stand then, it seems that I don't like image doubling when the scale factor less than 2.0 when the downscaling C-R AR LL involved, which is consistent with my pm to you.

Madshi, maybe a detailed status report for the process would help us better understand it. Right now ctrl+J didn't show things correctly according to you explain in the post above.

Last edited by Anima123; 10th June 2015 at 08:59.
Anima123 is offline   Reply With Quote
Old 10th June 2015, 08:59   #30918  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,070
Maybe you simply don't like the look of CatmullRom AR LL for downscaling? It does have higher aliasing levels than just CatmullRom AR. Just turn LL off if you don't like it!
madshi is offline   Reply With Quote
Old 10th June 2015, 10:15   #30919  |  Link
toniash
Registered User
 
Join Date: Oct 2010
Posts: 115
@madshi

" Superres is skipped in this situation if the overall upscaling factor is smaller than 1.125x"

Why?
SuperRes can be very useful as a sharpener even on not upscaled images.

Another question: How processing changes when SuperRes is "applied first"?

Last edited by toniash; 10th June 2015 at 10:22.
toniash is offline   Reply With Quote
Old 10th June 2015, 11:05   #30920  |  Link
nlnl
Registered User
 
Join Date: Aug 2008
Posts: 176
Quote:
Originally Posted by nevcairiel View Post
I see lines in both cases on your screenshot, on a PC monitor with guaranteed 4:4:4 reproduction. Maybe it interacts badly with your chroma sampling test?
Yes, you are right. Pioneer 5090 TV (video mode) does have problem with 4:4:4 reproduction.


But does Fine Sharp ON, Linear Ligt ON (image enhancement) options magically fix the problem?
nlnl is offline   Reply With Quote
Reply

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

Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT +1. The time now is 02:28.


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