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 10th June 2015, 02:10   #30901  |  Link
vivan
/人 ◕ ‿‿ ◕ 人\
 
Join Date: May 2011
Location: Russia
Posts: 643
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   #30902  |  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   #30903  |  Link
ryrynz
Registered User
 
ryrynz's Avatar
 
Join Date: Mar 2009
Posts: 3,646
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   #30904  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 504
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   #30905  |  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   #30906  |  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   #30907  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 504
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   #30908  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
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   #30909  |  Link
Anima123
Registered User
 
Join Date: Jun 2005
Posts: 504
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   #30910  |  Link
madshi
Registered Developer
 
Join Date: Sep 2006
Posts: 9,140
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   #30911  |  Link
toniash
Registered User
 
Join Date: Oct 2010
Posts: 131
@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   #30912  |  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
Old 10th June 2015, 12:07   #30913  |  Link
huhn
Registered User
 
Join Date: Oct 2012
Posts: 7,903
nope you shouldn't see 4:2:2. just a some lines
huhn is offline   Reply With Quote
Old 10th June 2015, 12:46   #30914  |  Link
James Freeman
Registered User
 
Join Date: Sep 2013
Posts: 919
Quote:
Originally Posted by nlnl View Post
But does Fine Sharp ON, Linear Ligt ON (image enhancement) options magically fix the problem?
Heh, No.
How can pre-processing fix a hardware trait? ... It can't.

Going to test the sharpening shaders as soon as I'll have some time.
__________________
System: i7 3770K, GTX660, Win7 64bit, Panasonic ST60, Dell U2410.
James Freeman is offline   Reply With Quote
Old 10th June 2015, 12:59   #30915  |  Link
nevcairiel
Registered Developer
 
Join Date: Mar 2010
Location: Hamburg/Germany
Posts: 10,342
Quote:
Originally Posted by nlnl View Post
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?
These patterns work by exploiting how subsampling works in the majority of PCs. If a post-processing algorithm changes the pattern, they stop working.
__________________
LAV Filters - open source ffmpeg based media splitter and decoders
nevcairiel is offline   Reply With Quote
Old 10th June 2015, 13:27   #30916  |  Link
blindbox
Registered User
 
Join Date: Jun 2010
Posts: 15
Quote:
Originally Posted by madshi View Post
Please use the advanced search for this thread, search for my user name and "FreeSync", and you should get all the answers you need.
I did. Many times. I've been following freesync on this thread for quite a while. And my question stands. Why not just set the output fps to 48 fps for a 24 fps video, and let the freesync drivers handle the rest? Maybe I'm just unable to comprehend that there's possibly a big difference between video frame delivery and game engine's frame delivery.

Unfortunately, I don't have a freesync monitor to try this myself, possibly by spoofing my refresh rate towards madvr.

Last edited by blindbox; 10th June 2015 at 13:34.
blindbox is offline   Reply With Quote
Old 10th June 2015, 13:31   #30917  |  Link
nlnl
Registered User
 
Join Date: Aug 2008
Posts: 176
Quote:
Originally Posted by nevcairiel View Post
These patterns work by exploiting how subsampling works in the majority of PCs. If a post-processing algorithm changes the pattern, they stop working.
Yes, get it, but post-processing (FS+LL) hides the problem very well.
4:2:2 side of the pattern masked very well, practically only 4:4:4 is visible.
nlnl is offline   Reply With Quote
Old 10th June 2015, 13:54   #30918  |  Link
Barnahadnagy
Registered User
 
Join Date: Apr 2014
Posts: 13
Quote:
Originally Posted by blindbox View Post
And my question stands.
Basically, it would require MadVR to deliver frames when they are needed to be displayed. This works for games (frame rendered then displayed instantly), but MadVR has a timing for the frame. However, MadVR cannot guarantee to send the frame when this time comes (No CPU time, and/or simply not precise enough timers).

This is why we have queues in FSE (apart from more stability), to let the GPU handle the presenting times of frames by using a HW circuit.

TL;DR: You need to present frames exactly when they need to be presented, with no queue. Current systems can't do this.
Barnahadnagy is offline   Reply With Quote
Old 10th June 2015, 13:55   #30919  |  Link
vivan
/人 ◕ ‿‿ ◕ 人\
 
Join Date: May 2011
Location: Russia
Posts: 643
Quote:
Originally Posted by nlnl View Post
Yes, get it, but post-processing (FS+LL) hides the problem very well.
It doesn't hide the problem, because this image doesn't demonstrate a problem.

Again, this pattern was created for easy subsampling detection. If you change this pattern - then it stops working.

Read what color subsampling is: http://en.wikipedia.org/wiki/Chroma_subsampling
vivan is offline   Reply With Quote
Old 10th June 2015, 14:22   #30920  |  Link
kalston
Registered User
 
Join Date: May 2011
Posts: 164
Quote:
Originally Posted by blindbox View Post
I did. Many times. I've been following freesync on this thread for quite a while. And my question stands. Why not just set the output fps to 48 fps for a 24 fps video, and let the freesync drivers handle the rest? Maybe I'm just unable to comprehend that there's possibly a big difference between video frame delivery and game engine's frame delivery.

Unfortunately, I don't have a freesync monitor to try this myself, possibly by spoofing my refresh rate towards madvr.
madshi has clearly said he is not interested in working on FreeSync/G-Sync support for the time being (and since all the VRR monitors are purely gaming monitors, I think we should respect that and drop the subject for the time being). It can be made to work and it will certainly happen in the future (I read something about FreeSync and WMP in Windows 10) but right now it would most likely be a waste of time for madshi to bother with this.

VRR monitors like my Rog Swift have no issue running at a fixed refresh rate compatible with virtually any content anyway (100, 120, 144, 59, 60, 85...) and I could probably even make a custom resolution if I needed to.

Last edited by kalston; 10th June 2015 at 14:33.
kalston 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 16:18.


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