Krischan:
Did you ever heard about ESRGAN? It is a new method written in Python using neural network machine learning to upscale lores images into 4x hires images on the GPU with CUDA. It is using a pretrained model and the results are really stunning. For example, I've created a HQ version of Return to Castle Wolfenstein (RTCW) and Wolfenstein: Enemy Territory (ET) and created a github repository with all tools I've written and used. Included is a small tool written in Blitzmax to upscale the alpha channel of 32bit TGAs, too. It only works on a nVidia card and the VRAM should be at least 8GB! ESRGAN can run on CPU but it is incredible slow. Limitations are that the texture input size must be below 1024x640 on 8GB VRAM or it won't work. But the best results are achieved with smaller images, with 64, 128, 256 or 512 size.

I've automated the whole process and optimized it to work with RTCW/ET PK3 files as input but it can be used for other purposes, too. Take a look a my new github repository for more details and a lot of background information: RTCWHQ

Original Texture (256x256) vs. upscaled Texture (1024x1024):

Original Alpha Texture (64x64) vs. upscaled Alpha Texture (256x256)

Ingame Screenshots:

So how is it done? You first need some prerequisites and RTCWHQ. Setting up Python is a bit tricky. You first need to install Python and add some libs to it before you can run the scripts. I hope I'll remember this correct:

1. download Python 3.7 (use the Windows x86-64 executable installer which adds the PATH variables)2. install the CUDA toolkit3. go to the Pytorch website and select Stable/Windows/PIP/Python 3.7/CUDA 10.04. run the two commands shown below the selection box in a commandline window5. run this command too: pip3 install numpy opencv-python

This installs Python, pytorch, numpy and opencv which are necessary to run RTCWHQ. You can use this method to upscale any kind of images, icons, textures or whatever. There are many models out there and you can even train your own models to achieve even better results but this is rocket science. I've been happy with the model provided in my repository as the results are already sufficient to me.

Thanks to Brucey for the great freeimage.mod. I'd prefer a complete python solution but my tool also works very reliably. Here is the source: