October 14, 2022
Upscale SDK comparison
Good image upscaling is an invisible image upscaling with a maximum upscaling pixel ratio. Spatiotemporal rendering with blue noise and Halton pixel distribution is the key for retina and high-resolution real-time rendering. NVIDIA, AMD, and Intel all provide upscaling SDKs that are very easy to use to integrate libraries for modern APIs. Tellusim Engine supports them all. We decided to compare the upscaling quality with the same input data under different conditions.
An extreme upscaling ratio of 1:36 can make Full HD (1920×1200) resolution from 13h DOS mode (320×200). Let’s see how low we can go without high image degradation. We will start from 200 % (1:4) and go to an extreme 600 % (1:36).
The first test is the checkerboard test with simple animated objects. Nvidia DLSS shows the best quality but starts shaking after 400%. AMD FSR2 is stable in all modes. We will omit any conclusions of Intel XeSS quality because it’s running on Nvidia GPU.
The second test is just a lower camera position with the checkerboard going to the horizon. Same results here:
Let’s take a look at a game-like scenario with dynamic lighting and animation, relatively low color contrast, and a lot of blue noise. All the upscaling libraries have the same input data with blue noise and volumetric lighting. The target rendering resolution is 2K. The source image size for 600% mode is only 428×241, but the upscaler turns it to the target resolution.
Overall, AMD FSR2 is the most stable at all resolutions, with even better denoising than DLSS 2.4. The results from DLSS 3.0 and XeSS running on Intel GPU will be added later.
Uncompressed screenshots:
- Scene 1 DLSS 2.4 static: 100% 200% 300% 400% 600%
- Scene 1 FSR 2.1.1 static: 100% 200% 300% 400% 600%
- Scene 1 DLSS 2.4 motion: 100% 200% 300% 400% 600%
- Scene 1 FSR 2.1.1 motion: 100% 200% 300% 400% 600%
- Scene 2 DLSS 2.4 static: 100% 200% 300% 400% 600%
- Scene 2 FSR 2.1.1 static: 100% 200% 300% 400% 600%
- Scene 2 DLSS 2.4 motion: 100% 200% 300% 400% 600%
- Scene 2 FSR 2.1.1 motion: 100% 200% 300% 400% 600%
- Scene 3 DLSS 2.4 static: 100% 200% 300% 400% 600%
- Scene 3 FSR 2.1.1 static: 100% 200% 300% 400% 600%
The following models were used in the scene: