Well, it looks like I have run out of things to talk about. But I will keep an eye on the marketplace and check back in maybe a few months.
Is upscaling worth it? If one has no other options, then certainly. But otherwise, it is worth comparing to actual high-resolution content.
Below is a color upscaling using our improved upscaler, and the same part of the test image from the original high-resolution photo. Aside from sharp edges, the original content is clearly more detailed. This is not surprising since even the best upscaler only has one-fourth the number of pixels to use.
One of the fundamental problems with the VDK is that it performs two image processing passes, one to upscale and the other to compress. Both passes use block copying, which introduces errors, and the errors from the upscaler are compounded by the compressor.
This might be why Dimension went for upscaling only, they figured that dropping the compression feature would be an easy way to eliminate a large error source. In TMM’s case, they need to do both passes together with a single algorithm (or use an upscaler of better quality), greatly increase the bandwidth utilization, and have it still work fast enough for realtime decoding.
It is a hard job. Block copying is decode-friendly, but quality is poor unless blocks are split. But block splitting hurts the compression ratio. It is damned if you do and damned if you do not. There is just not enough compression at an acceptable quality level. Whatever the work with Raytheon accomplishes, I suspect it will include a sizeable departure from the block copying methodology, so we could be waiting a while.
Although I mentioned at the start of this blog that all image tests would be done in grayscale, I thought it would be nice to show the simple upscaler working in the full RGB color space. Each red/green/blue channel was processed as a grayscale image and then reintegrated for final output.
Here is the upscaled color Lenna, from 512 x 512 to 1024 x 1024:
Here is a section showing a comparison with bicubic upsampling:
I modified my simple block-copying upscaler to enlarge pixels instead of blocks. Like the Dimension upscaler, it does matching by using a 3 x 3 block centered around the target pixel to act as a context, and then looks for 6 x 6 blocks. The center 2 x 2 block is then used from the best matching 6 x 6 block. The earlier problem of edges having “knicks” is gone, but the image tends to be more posterized (or the “oil painting” effect is stronger). Some small details such as lower eyelashes are washed out. Still, it is noticeably sharper than a bicubic upsampling.
I have included upscalings (from 512 x 512 to 1024 x 1024) of both my test image and the classic Lenna.