This is a hard problem. It may not even be perfectly solvable at any time in the future.
When you increase the size of any kind of raster image, you're creating new information from the old.
There's been some pretty good approaches out there, like this [1][2]. It uses a GAN topology for some impressive results, but is incredibly memory intensive and can take a very long time to run.
I've been working on something [0] for a good long while which is a less expensive approach. Instead of attempting to replicate everything 1:1, it intentionally allows some detail loss, whilst attempting to preserve everything important.
It's not ready for the public, and video still needs some significant improvements to remove some of the artifacts. But I've released one TV series upscaled with it [4], thus far.
But as it stands, at x2 and x2.5 scales, it does pretty well, with the average person preferring it to most other resizing methods. It doesn't reach the GAN-approaches quality, but you're looking at an average 12 seconds for upscaling, versus 80 seconds for the GAN approach for the same size upscaling and what people perceive as the same quality.
It already beats most of the traditional resizing algorithms pretty soundly. [3]
This is a hard problem. It may not even be perfectly solvable at any time in the future.
When you increase the size of any kind of raster image, you're creating new information from the old.
There's been some pretty good approaches out there, like this [1][2]. It uses a GAN topology for some impressive results, but is incredibly memory intensive and can take a very long time to run.
I've been working on something [0] for a good long while which is a less expensive approach. Instead of attempting to replicate everything 1:1, it intentionally allows some detail loss, whilst attempting to preserve everything important.
It's not ready for the public, and video still needs some significant improvements to remove some of the artifacts. But I've released one TV series upscaled with it [4], thus far.
But as it stands, at x2 and x2.5 scales, it does pretty well, with the average person preferring it to most other resizing methods. It doesn't reach the GAN-approaches quality, but you're looking at an average 12 seconds for upscaling, versus 80 seconds for the GAN approach for the same size upscaling and what people perceive as the same quality.
It already beats most of the traditional resizing algorithms pretty soundly. [3]
[0] https://git.sr.ht/~shakna/upscaler_analysis
[1] https://developer.ibm.com/technologies/artificial-intelligen...
[2] https://arxiv.org/pdf/1609.04802.pdf
[3] https://git.sr.ht/~shakna/upscaler_analysis/blob/master/crus...
[4] https://sixteenmm.org/blog/20200626-Gunsmith%20Hits%20HD