Possibility of sharper HDMI output via integer scaling?

https://github.com/MiSTer-devel/Main_MiSTer/wiki

Moderators: Mug UK, Zorro 2, spiny, Greenious, Sorgelig, Moderator Team

User avatar
thgill
Obsessive compulsive Atari behavior
Obsessive compulsive Atari behavior
Posts: 138
Joined: Sat May 17, 2008 8:10 pm
Location: Cincinnati, OH

Re: Possibility of sharper HDMI output via integer scaling?

Postby thgill » Mon Oct 15, 2018 4:22 am

Those nearest neighbor screenshots look fantastic!

It would be great if we can have an option for that.
Like retro computers, game consoles and other obsolete junk? Check out Todd's Nerd Cave on YouTube

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Mon Oct 15, 2018 5:13 am

Here's TG-16 with nearest neighbor:
Image
(full res: https://cdn.discordapp.com/attachments/ ... g16_nn.PNG)

The more I play with it the more I appreciate the improvement in image quality

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Mon Oct 15, 2018 12:56 pm

Look how ugly is Scanlines FX.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Mon Oct 15, 2018 5:21 pm

Sorgelig wrote:Scaling algo is set at compile time. There is no way to change it in runtime.
As for quality - it depend on picture. The sample you show is kind of photo where separate pixels aren't matter.
But if HDMI resolution will be smaller and there will be text, then you will see that some scaled pixels are larger than other and picture (text) is distorted.


Here's what nearest neighbor looks like at 480p:

Image
https://cdn.discordapp.com/attachments/ ... 26/640.PNG

Image
https://cdn.discordapp.com/attachments/ ... /s3640.PNG

I think it looks great :D

For the text heavy computer cores I agree that nearest neighbor might not make sense, but for Genesis and TG-16 I think it makes a large improvement in overall image quality over polyphase or bicubic (which has a softer image and noticeable ringing). I think many of the people excited over FPGA console gaming via HDMI want razer sharp pixels with no added effects or filters, and the smaller chunk of people that like scanlines generally stick with analog to a crt from what I've observed.

Just my 2 cents. Thanks again for all great contributions to this project! I enjoy it every day :D

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Mon Oct 15, 2018 5:58 pm

New Genesis release uses NN scaling.
Scanlines effect suffer a lot with this scaling, so i had to re-work it. It doesn't fade every odd line of original video like it was before, but doing fade of lines in scaled video.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Mon Oct 15, 2018 8:31 pm

Sorgelig wrote:New Genesis release uses NN scaling.
Scanlines effect suffer a lot with this scaling, so i had to re-work it. It doesn't fade every odd line of original video like it was before, but doing fade of lines in scaled video.

Great, thank you Sorgelig and thanks to Rysha from the Classic Gaming Discord who made the attempt to use NN and took the pictures. Now thinking again to the whole scaling problem: what we have now is that Quartus VIP scaler can perform Nearest Neighbor, Bilinear, Bicubic and Lanczos and our goal is to take a low res image, i.e. Amiga at 320x240, and scale it with the best picture quality into an high res HDTV window, i.e. 1440x1080 when using 1080p. Nearest Neighbor produces the sharpest results, with no ringing artifacts, but it has the defect of uneven scaling (bad for text) and shimmering during scrolling; these defects are almost unnoticeable at high res but somehow they are still there; we have a good result especially in non text heavy videogames. Bilinear has no ringing artifacts but produces a very blurry image. Bicubic and Lanczos are progressively sharper but have ringing artifacts. In the end Bilinear, Bicubic and Lanczos are aimed to photographic images, hiding somehow the enlarged original pixels, but we want the contrary with retro computing and gaming: we want big razor sharp pixels, but we don’t want uneven text and shimmering. Ideally, we need something similar to Nearest Neighbor, but with some interpolation on the borders of enlarged pixels.
But I was thinking… why don’t we try to revert the problem?
MiSTer has a forced_scandoubler option which we saw, at the beginning of the topic, making the image better with Lanczos… but still ringing. Then Sorgelig said he was working to an arbitrary integer multiplier in order to use the largest possible factor for any resolution. Why not combining things and getting something similar to supersampling in modern gaming? My idea is this: would be possible to apply an arbitrary integer scaling with the same factor to both horizontal and vertical axis and then using Quartus VIP scaler in order to apply a bilinear (or bicubic or whatever) scaling in order to reach the final resolution? Let me do an example: we have an Amiga image with a resolution of 320x240 and we want to scale it to 1440x1080. If we use NN we get a sharp image, but uneven text, good for games, less for Workbench. If we use Bilinear we get a blurry mess, and with Bicubic and Lanczos we get an even and quite sharp image with bad ringing artifacts… but if we first integer multiply the 320x240 4x (1280x960) or even to resolutions bigger than the target window with 5x, 6x or whatever possible and then we scale it to 1440x1080 using Quartus VIP bilinear (or bicubic or whatever), probably we get razor sharp pixels and non ringing interpolation on big pixel borders. Again, something similar to supersampling in modern games.
What do you think Sorgelig? Is it a complete brain fart or could it make sense somehow?

Thank you in advance.
Regards.

Locutus73

kitrinx
Atarian
Atarian
Posts: 8
Joined: Wed Sep 26, 2018 6:03 am

Re: Possibility of sharper HDMI output via integer scaling?

Postby kitrinx » Mon Oct 15, 2018 9:45 pm

Sorgelig wrote:New Genesis release uses NN scaling.
Scanlines effect suffer a lot with this scaling, so i had to re-work it. It doesn't fade every odd line of original video like it was before, but doing fade of lines in scaled video.


Thank you so much. This is a huge improvement in video quality via HDMI. I really appreciate your openness to our feedback. I think this will go a long way to bringing in new fans of the project and making the existing ones happy :)

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Mon Oct 15, 2018 9:48 pm

i'm not sure if i understood correctly but you are talking about supersampling when picture first is enlarged more than required and then shrinking down. Right?
i see 2 potential problems:
1) Downsizing with polyphase will also produce ringing effect as far as i know. This is how method works. It has unavoidable harmonics.
2) Oversized picture will require incredible high pixel clock to feed it into scaler. 1920x1080 already has 148MHz of pixel clock and i had to switch to parallel pixel processing to reduce it - otherwise scaler refused to work.

Actually even with current NN scaler result is not that bad. I've tried SAM Coupe with NN and on FullHD resolution it's pretty much good looking.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Tue Oct 16, 2018 12:58 am

Sorgelig wrote:New Genesis release uses NN scaling.
Scanlines effect suffer a lot with this scaling, so i had to re-work it. It doesn't fade every odd line of original video like it was before, but doing fade of lines in scaled video.


You made my day Sorgelig, thank you! :D I really appreciate the work you put into this, and I'm glad to hear you were able to rework the scanlines to work better with NN.

Is NN something we can expect with other console releases? (TG-16, NES, etc). I hope so because the benefit to those cores is equally nice.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Tue Oct 16, 2018 12:16 pm

Sorgelig wrote:i'm not sure if i understood correctly but you are talking about supersampling when picture first is enlarged more than required and then shrinking down. Right?

Mostly. I used the term supersampling just for having a reference, an example of something well known in modern gaming, which could help me to explain what I meant. Anyway I don’t mean that the original image must be mandatorily first linearly enlarged more than needed, that would be optimal, but we can enlarge even less than we need, but anyway we must first scale by an integer factor with no smoothing algorithms and then apply a final pass of bilinear filtering. This because we want something similar to NN, but we want to to apply some interpolation just on the big pixels borders, in order to smooth just the NN edge unevenness. Since bilinear samples the original image by 2x2 pixels, first enlarging linearly the image can help to obtain this goal.

Let me explain with an example.



This is a NES Super Mario World 256x224 image
SuperMarioBros_256x224.png

And this is the x character zoomed (you can see square pixels)
SuperMarioBros_256x224_zoom.png




If we want to fill a 1080p screen having a correct 4:3 aspect ratio we must stretch this image to a 1411x1080 image; notice that 1411/256=5.511 and 1080/224=4.821 because NES and SNES wasn’t stretched by the same horizontal and verical factors on CRT, so basically outputting non square pixels on old TV sets; but that doesn’t matter for our example.



Now this is an image of the 256x224 picture scaled to 1411x1080 using Nearest Neighbour
SuperMarioBros_1411x1080_NN.png

And this is the x zoomed 10 times
SuperMarioBros_1411x1080_NN_zoom.png

We can see that the image is perfectly sharp, no ringing artifacts, but we have an unevenness of rescaled pixel sizes, depending on their position; this would lead to not pleasant text and scrolling shimmering.



Now this is an image of the 256x224 picture scaled to 1411x1080 using Bilinear
SuperMarioBros_1411x1080_Bilinear.png

And this is the x zoomed 10 times
SuperMarioBros_1411x1080_Bilinear_zoom.png

We have a blurry mess, the pixels are even, but the image is unwatchable



Now things get interesting: this is an image of the 256x224 picture first integer scaled to 1024x896 (so x4 on both axis, less than we need to fill the screen) and then scaled to 1411x1080 using Bilinear
SuperMarioBros_1411x1080_4x+Bilinear.png

And this is the x zoomed 10 times
SuperMarioBros_1411x1080_4x+Bilinear_zoom.png

You can see that the image retains a certain sharpness, we don’t have any ringing, we have some fuzziness only on the pixels edges, but this enable us to have even pixel sizes, so a correctly scaled text and no shimmering during scrolling.



Sorgelig wrote:i see 2 potential problems:
1) Downsizing with polyphase will also produce ringing effect as far as i know. This is how method works. It has unavoidable harmonics.

Please watch the example above, using first integer scaling for an intermediate resolution (bigger or smaller than the desired one) and then a final pass of bilinear we don’t have any ringing artifact.

Sorgelig wrote:2) Oversized picture will require incredible high pixel clock to feed it into scaler. 1920x1080 already has 148MHz of pixel clock and i had to switch to parallel pixel processing to reduce it - otherwise scaler refused to work.

Yeah, I understand, but in my previous example I did a 4x (less than needed) first integer scaling on purpose, just to demonstrate that we don’t need an actual supersampling, meaning having a super high resolution on the first linear pass; obviously the more you integer scale in the first pass, the better the result, but I don’t think we need super high resolutions.

Sorgelig wrote:Actually even with current NN scaler result is not that bad. I've tried SAM Coupe with NN and on FullHD resolution it's pretty much good looking.

I agree that NN is not that bad especially at high resolutions, using TV at couch distance our eyesight performs the interpolation. But maybe we can have something that maintains NN benefits (no ringing and a quite sharp image), surpassing its defects (uneven pixels/text and scrolling shimmering) when using non integer scaling.

Obviously all the previous “double pass” example (integer scaling plus bilinear scaling) could be reached in a single pass algorithm I’d call “pixel edge interpolation”, maybe we can discuss it later, but I suspect that this single pass algorithm would require more work than just integer multiplying and then using Quartus Bilinear scaling.



Thank you in advance.
Best regards.

Locutus73
You do not have the required permissions to view the files attached to this post.

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Tue Oct 16, 2018 2:42 pm

The theory i actually known. I even told many times to users to enable force scandoubler to reduce magnifying rate.
Even polyphase with your example with correct amount of phases/taps won't produce noticeable artifacts. If you have time - try polyphase instead of bilinear.
Actually problem is not because polyphase is bad. It's because of amount of magnifying.

Doing two stages of zooming will require more resources. And overall management of these stages is not an easy job. Probably, it can be done selectively for couple cores like Amiga. May be.. some day..
It's not the thing to which i want to spend a lot of time.
I prefer someone will do this and contribute to project.

Also, it's important to think that magnifying should work for any possible resolutions. Especially some computers like Amiga has big range of possible resolutions. For example non-interlace super hires mode (1280x256) gives vertically stretched pixels and this two-stages zooming won't give good result as you won't be able to pre-zoom it due to 1280pixel. Then if you apply bilinear zoom vertically, you will get very blurry image. Probably first stage of zoom can be independent in V and H axis.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Tue Oct 16, 2018 3:38 pm

Sorgelig wrote:The theory i actually known. I even told many times to users to enable force scandoubler to reduce magnifying rate.

I’m sure you know the theory, no doubts about it. I wanted to see with my eyes if what I had in my mind actually could work; so I used GIMP (GNU Image Manipulation Program) in order to perform the exact theoretical steps.

Sorgelig wrote:Even polyphase with your example with correct amount of phases/taps won't produce noticeable artifacts. If you have time - try polyphase instead of bilinear.
Actually problem is not because polyphase is bad. It's because of amount of magnifying.

Sure I have time, nothing compared to the time you put in the project; but I cannot tweak parameters, I can just select the algorithm.

Here it is 4x integer scaling plus Bicubic
SuperMarioBros_1411x1080_4x+Bicubic.png

And this is a 10x zoom on the x
SuperMarioBros_1411x1080_4x+Bicubic_zoom.png

Again ringing



Here it is 4x integer scaling plus Lanczos3
SuperMarioBros_1411x1080_4x+Lanczos3.png

And this is a 10x zoom on the x
SuperMarioBros_1411x1080_4x+Lanczos3_zoom.png

And again ringing

Bilinear seems to work best and, as far as I know, it’s the only algorithm not introducing ringing because it doesn’t attempt to sharpen the final image; sharpening is an high pass filter and band limiting filters introduce ringing.



Sorgelig wrote:Doing two stages of zooming will require more resources. And overall management of these stages is not an easy job. Probably, it can be done selectively for couple cores like Amiga. May be.. some day..

I was thinking to something with a single line buffer in order to x4 (or whatever) line by line and then fetching the Quartus VIP scaler in order to not introduce lag (like a whole framebuffer would do)… but I’m not an HDL dev, so maybe it’s a brain fart. I was hoping that the integer scaler work you said you started back then and then stopped for lack of interest could be reused in order to implement something like this and still using Quartus VIP for convenience (i.e. framerate conversion). Obviously a scaler written from scratch for pixel art could give an ideal result with one single pass, but I was thinking to an “easy” approach, possibly recycling code. I think something like this could benefit both computers cores (for text readability) and console cores (for scrolling shimmering and, again, text). It’s basically what I described some posts ago as Super NT’s interpolation setting (again, don’t get me wrong, I’m not making comparisons, I’m just using an example I know in order to explain myself a little better).

Sorgelig wrote:It's not the thing to which i want to spend a lot of time.
I prefer someone will do this and contribute to project.

Fair, this is an open source interest driven project. Unluckily I’m not able to code HDL (I’m a software guy, I could help with main executable or some scripts), so sharing ideas and doing some GIMP proof of concepts is the best I can do. Just some brainstorming.

Sorgelig wrote:Also, it's important to think that magnifying should work for any possible resolutions. Especially some computers like Amiga has big range of possible resolutions. For example non-interlace super hires mode (1280x256) gives vertically stretched pixels and this two-stages zooming won't give good result as you won't be able to pre-zoom it due to 1280pixel. Then if you apply bilinear zoom vertically, you will get very blurry image. Probably first stage of zoom can be independent in V and H axis.

I agree, two distinct factors could help in these edge cases, the important thing is the first stage must be integer multiplying. Probably 1280x256 would work with x1 horizontal and x4 vertical. Do you have any other edge case in mind?

Thank you in advance.
Regards.

Locutus73
You do not have the required permissions to view the files attached to this post.

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Tue Oct 16, 2018 4:01 pm

Locutus73 wrote:Do you have any other edge case in mind?

not edge case but ability to be flexible. HDL is not like traditional programming where you can just define the array for line buffer and multiply the data to required amount. In HDL you have data coming sequentially by pixel at pixel clock. If you want to magnify it then you have to create another pixel clock at which you will pass the data to output. Also you need to synchronize the data between clocks.
There are other alternative technics available - but all of them are not as easy as in traditional programming. At the end you will have the code which will run at very high clock which will be hard to constrain and make it work reliably.
Sure it's possible to write, but i don't have much experience in high clock FPGA design (it require other kind of knowledge) and prefer to use existing scaler IP.
I've wrote primitive HDMI scaler which does only integer scaling. It works but pretty unstable.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Tue Oct 16, 2018 4:18 pm

Sorgelig wrote:Sure it's possible to write, but i don't have much experience in high clock FPGA design (it require other kind of knowledge) and prefer to use existing scaler IP.
I've wrote primitive HDMI scaler which does only integer scaling. It works but pretty unstable.

I see... First of all excuse me if I do stupid questions to your eyes, but as I said, I’m a software guy. Now I have a curiosity: is it possible to think about your integer scaler not directly fetching the HDMI, but doing the “first pass” and fetching the Quartus VIP Bilinear scaler for the final pass and actual HDMI output?

Regards.
Locutus73
Last edited by Locutus73 on Tue Oct 16, 2018 4:21 pm, edited 1 time in total.

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Tue Oct 16, 2018 4:31 pm

It's possible, but as i've said it's quite unstable. It uses DDR3 for buffer and due to instability it may corrupt the Linux memory as well.

vanfanel
Atari User
Atari User
Posts: 35
Joined: Tue Oct 09, 2018 10:19 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby vanfanel » Wed Oct 17, 2018 10:12 am

So here's where this NN stuff originated. So sad it's by default now on Genesis core... I hope it does not propagate to other cores, really. Looks like rubbish on non-integer scaling, full of crawling. Consoles didn't look like this back in the day: analog displays just didn't show razor-sharp pixels or crawling, but fuzzy pixels and crawling-free scrolling. As I have said, NN destroys the video of the core on most HD displays.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Wed Oct 17, 2018 4:10 pm

vanfanel wrote:So here's where this NN stuff originated. So sad it's by default now on Genesis core... I hope it does not propagate to other cores, really. Looks like rubbish on non-integer scaling, full of crawling. Consoles didn't look like this back in the day: analog displays just didn't show razor-sharp pixels or crawling, but fuzzy pixels and crawling-free scrolling. As I have said, NN destroys the video of the core on most HD displays.


You're the first person who has expressed disappointment in the change, and there are quite a few people on the Classic Gaming Discord that are absolutely thrilled with the improvement. I do not see any crawling on my 4k tv.

vanfanel
Atari User
Atari User
Posts: 35
Joined: Tue Oct 09, 2018 10:19 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby vanfanel » Wed Oct 17, 2018 4:16 pm

cacophony wrote:
vanfanel wrote:So here's where this NN stuff originated. So sad it's by default now on Genesis core... I hope it does not propagate to other cores, really. Looks like rubbish on non-integer scaling, full of crawling. Consoles didn't look like this back in the day: analog displays just didn't show razor-sharp pixels or crawling, but fuzzy pixels and crawling-free scrolling. As I have said, NN destroys the video of the core on most HD displays.


You're the first person who has expressed disappointment in the change. There are about 30 people on the Classic Gaming Discord that are absolutely thrilled with the improvement. If the fuzzy analog look is so important to you I'd suggest using ... uhh analog output :o


Why should I need a CRT display to get something that I had a day ago? Just because you got what you wanted (and got horrible video artifacts in the process that you can't apparently see), there's nothing preventing Sorgelig from adding an option to use the previous filter. We both can have what we like. Anyway, if this is spreading among cores, I'd like to know because it's the end of the MiSTer for me if everything is going to look so utterly grainy and shimmering.
The fact that you can't see shimmering on scroll, it doesn't means others can't.

Take Sonic1, Japanese version, and look at moving clouds on Green Hill Zone, for example: compare the irregular movement with NN and the SMOOOOTH movement we had previously with the old scaling algorithm.

It's not only about how things look, but about how things move. NN ruins it all. You're free to like something so horrid because your reasoning is that, since you have a 4K tv, pixels must be sharp, but it's NOT the same for all of us.
Last edited by vanfanel on Wed Oct 17, 2018 4:28 pm, edited 1 time in total.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Wed Oct 17, 2018 4:27 pm

vanfanel wrote:
cacophony wrote:
vanfanel wrote:So here's where this NN stuff originated. So sad it's by default now on Genesis core... I hope it does not propagate to other cores, really. Looks like rubbish on non-integer scaling, full of crawling. Consoles didn't look like this back in the day: analog displays just didn't show razor-sharp pixels or crawling, but fuzzy pixels and crawling-free scrolling. As I have said, NN destroys the video of the core on most HD displays.


You're the first person who has expressed disappointment in the change. There are about 30 people on the Classic Gaming Discord that are absolutely thrilled with the improvement. If the fuzzy analog look is so important to you I'd suggest using ... uhh analog output :o


Why should I need a CRT display to get something that I had a day ago? Just because you got what you wanted (and got horrible video artifacts in the process that you can't apparently see), there's nothing preventing Sorgelig from adding an option to use the previous filter. We both can have what we like. Anyway, if this is spreading among cores, I'd like to know because it's the end of the MiSTer for me if everything is going to look so utterly grainy and shimmering.


As was already mentioned earlier in this thread, this scaling option can only be set at compile time. So it's either one or the other unless Sorgelig is willing to start providing two builds. I think all those horrible video artifacts you're seeing have everything to do with the 1360x768 monitor you're using.

vanfanel
Atari User
Atari User
Posts: 35
Joined: Tue Oct 09, 2018 10:19 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby vanfanel » Wed Oct 17, 2018 4:41 pm

cacophony wrote:
As was already mentioned earlier in this thread, this scaling option can only be set at compile time. So it's either one or the other unless Sorgelig is willing to start providing two builds. I think all those horrible video artifacts you're seeing have everything to do with the 1360x768 monitor you're using.


No: My monitor is perfectly fine. You have a 4K monitor, which has a native resolution of 3840x2160, which is an integer multiply of Genesis 320x240. That's why you don't see shimmering / crawling (be warned you will see these artifacts anyway if this bad idea propagates to other cores whose resolutions are not divisible by 3840x2160...so you would do good to support me on the petition for an option).
My monitor is perfectly valid, it's a good HDMI monitor I bought years ago and does not have ANY problem. I don't have to throw it away just because you have an ultra-4K-special-mk-ultra screen in your room. It's an HDMI display and it looks fine unless I feed it some badly-scaled resolution. And it has been displaying the MiSTer Genesis core perfectly well until this petition of yours.

@Sorgelig: I see that the scaling method is in sys/vip.qsys, in

Code: Select all

<parameter name="ALGORITHM_NAME" value="NEAREST_NEIGHBOUR" />

Wouldn't it be possible to pass this value or POLYPHASE as a parameter on core/menu boot? That way, it could be configured as a general option for cores supporting it.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Wed Oct 17, 2018 4:47 pm

vanfanel wrote:
cacophony wrote:
vanfanel wrote:So here's where this NN stuff originated. So sad it's by default now on Genesis core... I hope it does not propagate to other cores, really. Looks like rubbish on non-integer scaling, full of crawling. Consoles didn't look like this back in the day: analog displays just didn't show razor-sharp pixels or crawling, but fuzzy pixels and crawling-free scrolling. As I have said, NN destroys the video of the core on most HD displays.


You're the first person who has expressed disappointment in the change. There are about 30 people on the Classic Gaming Discord that are absolutely thrilled with the improvement. If the fuzzy analog look is so important to you I'd suggest using ... uhh analog output :o


Why should I need a CRT display to get something that I had a day ago? Just because you got what you wanted (and got horrible video artifacts in the process that you can't apparently see), there's nothing preventing Sorgelig from adding an option to use the previous filter. We both can have what we like. Anyway, if this is spreading among cores, I'd like to know because it's the end of the MiSTer for me if everything is going to look so utterly grainy and shimmering.
The fact that you can't see shimmering on scroll, it doesn't means others can't.

Take Sonic1, Japanese version, and look at moving clouds on Green Hill Zone, for example: compare the irregular movement with NN and the SMOOOOTH movement we had previously with the old scaling algorithm.

It's not only about how things look, but about how things move. NN ruins it all. You're free to like something so horrid because your reasoning is that, since you have a 4K tv, pixels must be sharp, but it's NOT the same for all of us.


I compared Sonic (JPN) version for the latest core vs the version from the 10th, and the smoothness of movement for the clouds look identical.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Wed Oct 17, 2018 4:51 pm

vanfanel wrote:Wouldn't it be possible to pass this value or POLYPHASE as a parameter on core/menu boot? That way, it could be configured as a general option for cores supporting it.

Nope, that's a value used at compile time to build two completely different scalers.

Just out of curiosity, did you look at the static proof of concept image with the integer x4+bilinear few posts ago? You can't judge shimmering with a static image tho...

Regards.
Locutus73
Last edited by Locutus73 on Wed Oct 17, 2018 4:56 pm, edited 1 time in total.

cacophony
Atari maniac
Atari maniac
Posts: 79
Joined: Sun Jul 22, 2018 11:14 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby cacophony » Wed Oct 17, 2018 4:54 pm

vanfanel wrote:
cacophony wrote:
As was already mentioned earlier in this thread, this scaling option can only be set at compile time. So it's either one or the other unless Sorgelig is willing to start providing two builds. I think all those horrible video artifacts you're seeing have everything to do with the 1360x768 monitor you're using.


No: My monitor is perfectly fine. You have a 4K monitor, which has a native resolution of 3840x2160, which is an integer multiply of Genesis 320x240. That's why you don't see shimmering / crawling (be warned you will see these artifacts anyway if this bad idea propagates to other cores whose resolutions are not divisible by 3840x2160...so you would do good to support me on the petition for an option).
My monitor is perfectly valid, it's a good HDMI monitor I bought years ago and does not have ANY problem. I don't have to throw it away just because you have an ultra-4K-special-mk-ultra screen in your room. It's an HDMI display and it looks fine unless I feed it some badly-scaled resolution. And it has been displaying the MiSTer Genesis core perfectly well until this petition of yours.


I've tried NN with the NES, TG-16, and SMS cores as well and the results are equally pleasing. I also haven't heard any complaints from people with 1080p TVs.

And to be clear, I would much prefer an option that allows selection of scaling method, it just doesn't sound possible. But the majority of people using HDMI out will probably be at 1080p or 4k resolution, no? So perhaps your example isn't representative of most users?
Last edited by cacophony on Wed Oct 17, 2018 4:57 pm, edited 1 time in total.

Locutus73
Captain Atari
Captain Atari
Posts: 170
Joined: Wed Feb 07, 2018 6:13 pm

Re: Possibility of sharper HDMI output via integer scaling?

Postby Locutus73 » Wed Oct 17, 2018 4:55 pm

cacophony wrote:I compared Sonic (JPN) version for the latest core vs the version from the 10th, and the smoothness of movement for the clouds look identical.


The higher the resolution (1080p is high) and the greater the TV/Couch distance, the less you see NN defects, mantaining all its pros, since eyesight does all the needed interpolation.

Regards.

Locutus73

Sorgelig
Fuji Shaped Bastard
Fuji Shaped Bastard
Posts: 2838
Joined: Mon Dec 14, 2015 10:51 am
Location: Russia/Taiwan

Re: Possibility of sharper HDMI output via integer scaling?

Postby Sorgelig » Wed Oct 17, 2018 4:55 pm

vanfanel wrote:Wouldn't it be possible to pass this value or POLYPHASE as a parameter on core/menu boot?

no.
Read my previous posts. It's compile-time option (pre-processor conditional compilation).


Return to “MiSTer”

Who is online

Users browsing this forum: THaase and 9 guests