Since local Starlight is very slow I started looking for ways to speed it up and found something that might be useful to share.
Starlight runs fastest when the input resolution already matches the target output resolution. So what I started doing is pre-upscaling my videos to the target resolution using a simple Lanczos filter in FFmpeg before feeding them into Starlight locally. The result of such pre-upscaling is blurry of course, but Starlight does not seem to care and still sharpens the output well.
Both undershooting and overshooting the target resolution slows things down. So if your target is 1080p, feeding it 480p or 2160p will both be slower than just feeding it a blurry 1080p. The FFmpeg command is simply: ffmpeg -vf scale=1920:1080:flags=lanczos
Has anyone else noticed this? Curious if there are any downsides I might be missing.
Here are some screenshots to make my claim more substantiated and initiate a discussion.
I had a 720x480 DVD source. I deinterlaced it, denoised it with nlmeans, downscaled to 512x384 (as it is a 405-line TV image from 1963), and then upscaled it (in ffmpeg with Lanczos) to 1280x960, which was also my target resolution for Starlight Mini. So, formally, Starlight Mini did not upscale video, but by all means, given the drastically increased sharpness, there was an upscale, which took around 4-6x less time than upscaling from 512x384 directly.
Interesting, just tested it with 480p 3x upscale to 1440p took 20m 40sec while 1440p to 1440p took 20m 46sec . There are some slight quality differences too, 480p to 1440p SLM had a very slight quality advantage compared to 1440p to 1440p SLM.
Interesting. Thank you for testing. So, the shorter time for 1440p to 1440p enhancement is not reproduced. I wonder if it may depend on GPU. I have a MacBook Pro M4 48GB with an integrated GPU. What is your configuration? And how long was the video?