Hacker News new | ask | show | jobs
by crazygringo 4934 days ago
Slightly side question:

If JPG and video codecs already store information in terms of wavelets, frequencies, or whatever have you --

Are there any programs that will render JPG or videos at a higher-than-native resolution?

I know you're not gaining any extra signal. But if you have a 320x240 video, and you want to play it full-screen at 1280x960 -- instead of rendering at 320x240 and then naively upscaling 4x, would some kind of direct codec rendering to 1280x960 possibly produce more accurate results?

If the codec/format is doing a good job at extracting "meaning" from the original image for its compression, it seems like it ought to.

4 comments

Basically, no.

For audio, there's spectral band replication which works well in a large part because harmonics make audio rather correlated across multiple frequencies. Images have much less correlation, and thus processing in the frequency domain is less useful.

Additionally, especially with codecs with a small DCT like JPEG, it's been shown that once you reach a certain quantizer (throwing away all higher frequencies, effectively downscaling in the frequency domain), it becomes better to do a traditional downscale + upscale around the lossy coding.

Or, to put it another way, you can exploit the properties of a how a specific lossy codec discards information to get closer to the original image (deblocking filters are the most common example). There is a significant amount of research on this topic for JPEG. But if you could exploit the properties of the DCT or wavelets for better upscaling, it would work equally well as a codec-agnostic algorithm. Frequency transforms are perfectly reversible assuming infinite precision math, after all.

No, but there are some really interesting fractal image compression algorithms that can do that and "synthesize" more detail than is in the original: http://en.wikipedia.org/wiki/Fractal_compression#Resolution_...
My guess would be that those upscalers in TVs and whatnot do that..

edit: While googling i didn't find good information on how those hardware upscalers work, but it seems to be the case that it's mostly some pixel based stuff with edge detection and interpolation based on the resulting pixel map.

For a JPG file, the result would be identical.