Sorgelig wrote:it's more complex than you think.
While vertical resolutions don't vary much and have just few variations, the horizontal resolutions vary significantly.
pixel clock can be 5.5,6,7,8,10 MHz and many other. And regardless amount of pixels in horizontal, roughly aspect ratio is always 4:3.
So, even native resolutions in many cases require non-integer scaling to look proper.
Some time ago i've started to work on option where vertical resolution is set to max integer scaling and let the scaler stretch the horizontal resolution to make 4:3 or 16:9 aspect ratio. Basically it almost eliminates artifacts.
I didn't finish it yet, as i lave little interest in it.
Sorgelig wrote:Some time ago i've started to work on option where vertical resolution is set to max integer scaling and let the scaler stretch the horizontal resolution to make 4:3 or 16:9 aspect ratio. Basically it almost eliminates artifacts.
Sorgelig wrote:I didn't finish it yet, as i lave little interest in it.
cacophony wrote:It really illustrates the massive sharpness improvement of the recent change
Sorgelig wrote:Artifacts are not avoidable with free scaling. If you want to reduce artifacts, enable force scandoubler in INI and use lowest HDMI resolution. Your monitor/TV will upscale it further with possible better quality.
Sorgelig wrote:So, you compare Analog Super NT which is tweaked for single core and most likely just use integer scaling? As far as i know it uses HQ2x and HQ3x scaling - both are integer. HQ2x is designed for exactly 2x2 scaling and it's implemented in MiSTer. HQ3x i didn't look - probably it's 3x3 scaling. Even with HQ2x you need 4x pixel clock which for some cores close to maximum possible clock. 3x will need 9x pixel clock which will be beyond the clock possible for core.
Sorgelig wrote:And by the way, if someone would contribute his knowledge of scaling in HDL code, then it would appear in the cores if it will be applicable. It won't appear from just wishes.
Locutus73 wrote:Would you be contrary if anyone hypothetically would design a fully open source scaler in order to replace the proprietary one in MiSTer?
Sorgelig wrote:The scaling algo used in MiSTer is Polyphase with LANCZOS_2 coefficients.
Probably, custom coefficients with correct amount of phases and taps can reduce artifacts. There is even adaptive algo which can use different coefficients on detected edges. If someone wants to play with it and find a better coeffs, then i would be glad.
Actually HDL knowledge is almost not required besides the knowing how to start compilation
It's mostly math than HDL.
Sorgelig wrote:Do not edit qsys file manually. You have to load QSys designer in Quartus. Usually double click on qsys file inside the Quartus will open the QSys.
It's not easy to provide the quick guide for Quartus/Qsys usage. Please use google and docs provided by Altera/Intel. It's not like 5 mins play and it's ready. You need to spend some time and patience.
Sorgelig wrote:nearest neighbor is good only for integer scaling. For non-integer scaling it looks like rubbish.
The quality of scaling increase in this direction: nearest neighbor -> bicubic -> polyphase
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.