logo Sign In

Post #1014469

Author
camroncamera
Parent topic
Info: The Ultimate Super Resolution Technique
Link to post in topic
https://originaltrilogy.com/post/id/1014469/action/topic#1014469
Date created
30-Nov-2016, 6:06 AM

Fascinating idea, I’d love to see some examples.

Your “cheesecloth” analogy is similar to an untested super-resolution concept of mine; I imagine a still frame of limited spatial resolution, say 960x540 (1/4 of 1920x1080 HD), in a digitized image sequence. If the goal is to upscale the still image with real detail rather than interpolated pixels, first I would like to enlarge the chosen still image in an unusual manner: copy the chosen 960x540 still image “X” as a layer atop a blank 1920x1080 “O” canvas, where the 960 horizontal pixels and 540 vertical pixels are spaced out with blank (transparent) pixels between each sequential picture element.

For example, Pixel Row 001, Column 001 of the still image (upper right-hand corner, presumably) fits on pixel 0001,0001 of the canvas. Pixel 0001,0002 of the canvas is left blank. Canvas “O” Pixel 0001,0003 contains Image “X” Pixel 001,002. Canvas “O” pixel 0001,0004 is left blank, but Image “X” pixel 001,003 is mapped to Canvas “O” position 0001,0005, and so on for the remainder of canvas line 1.

Canvas line 2 is left completely blank all the way across. However, Canvas position 0003,0001 is filled with Image Pixel 002,001, but Canvas position 0003,0002 is left blank. Then the spaced out pixel pattern repeats.

In other words, we are stripping each image pixel away from its neighbor, row by row and column by column, and putting one blank pixel space between them. We aren’t throwing away any pixels, but we are shuffling each image pixel over (along rows) or down (columns) in a quasi checkerboard fashion.

In text form (monospaced font would work best):
Image “X” at 4 pixels x 3 rows:
XXXX
XXXX
XXXX

Image “X” scaled by a factor of 4 with typical spatial interpolation, where only “X” are unprocessed pixels and “x” are interpolated pixels (false detail is 75% of the upscaled image):
XxXxXxXx
xxxxxxxx
XxXxXxXx
xxxxxxxx
XxXxXxXx
xxxxxxxx*

Canvas “O” at 8 pixels x 6 rows:
OOOOOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO

Image “X” layered atop Canvas “O” with no scaling, in upper left corner:
XXXXOOOO
XXXXOOOO
XXXXOOOO
OOOOOOOO
OOOOOOOO
OOOOOOOO

Image “X” layered onto Canvas “O” with every-other pixel spacing beginning at 0001,0001:
XOXOXOXO
OOOOOOOO
XOXOXOXO
OOOOOOOO
XOXOXOXO
OOOOOOOO

So far what I have tried to illustrate is a small image that has been peppered onto a larger canvas without destructive upscaling. However, think of the pixel “peppers” landing in a strict grid pattern, and the canvas as clear glass rather than white canvas.

Other than the example of a typical spatial upscale with the very large number of interpolated pixels, we have upscaled nothing, nor performed any super-resolution upscaling. So next let us choose another still frame from our image sequence, ideally one which is nearly identical to the earlier chosen frame, such as the very next frame. Little, if any, motion of the camera or subject… perhaps the film grain is the biggest change from the previously chosen still frame… perfect! We will now repeat the peppering of the image “Y” pixels onto a canvas of exactly 4 times the image’s dimensions; however there is an important change from the earler expansion. This time, the still image “Y” pixels will be remapped as follows:

Image “Y” layered onto Canvas “O” with every-other pixel spacing beginning at 0001,0002:
OYOYOYOY
OOOOOOOO
OYOYOYOY
OOOOOOOO
OYOYOYOY
OOOOOOOO

We will choose two more still images from the image sequence and repeat the pixel remapping, each onto a 4X canvas, this time beginning on canvas line 2.

Image “Z” layered onto Canvas “O” with every-other pixel spacing beginning at 0002,0001:
OOOOOOOO
ZOZOZOZO
OOOOOOOO
ZOZOZOZO
OOOOOOOO
ZOZOZOZO

Image “W” layered onto Canvas “O” with every-other pixel spacing beginning at 0002,0002:
OOOOOOOO
OWOWOWOW
OOOOOOOO
OWOWOWOW
OOOOOOOO
OWOWOWOW

With the four separate expanded canvases we’ve created, we are now ready to combine them into a single super-resolution image by stacking them, allowing the solid pixels to show through the transparent layered blank canvas pixels to reveal a single image composite:
XYXYXYXY
ZWZWZWZW
XYXYXYXY
ZWZWZWZW
XYXYXYXY
ZWZWZWZW