Log in

View Full Version : How does non-integer upscaling work?


luquinhas0021
19th April 2017, 15:31
In integer upscaling, is created a P x P matrix, with (P x P) - 1 interpolated pixels, being P a natural number.
In non-integer upscaling, like 1.66 x 1.66 upscaling, how is it done? how can it calculate the coordinates of the new pixels in the interpolate kernel?
I am talking about this: for example, 2 x 2 upscaling, pixel P(0,0), the coordinates of the interpolated pixels are P(0.5,0), P(0,0.5) and P(0.5,0.5).

nevcairiel
19th April 2017, 16:52
It works the same way, you just use appropriate factors.

wonkey_monkey
19th April 2017, 17:42
I just always use a 4x4 matrix whether I'm upscaling or downscaling by 2, or by 4, or by 3.1415927. Maybe this is the wrong thing to do, but it's simple (ish) and it works.

raffriff42
19th April 2017, 18:02
http://avisynth.nl/index.php/Resampling (http://avisynth.nl/index.php/Resampling#The_Nyquist.E2.80.93Shannon_sampling_theorem)

The Nyquist–Shannon sampling theorem asserts that the uniformly spaced discrete samples are a complete representation of the signal if its bandwidth is less than half its sampling rate. (source: wikipedia (http://en.wikipedia.org/wiki/Nyquist-Shannon_sampling_theorem)).

In theory the continuous signal can be reconstructed as follows... Now that you have the original continuous signal (or an approximation limited by sample rate, bit depth and window size) all you have to do is re-sample it at a different rate.