
Super Resolution from a Single Image (2009) - bsilvereagle
http://www.wisdom.weizmann.ac.il/~vision/SingleImageSR.html
======
turshija
I just can't understand how it manages to make this image
[http://www.pics.rs/i/2cuoM](http://www.pics.rs/i/2cuoM) look like this image
[http://www.pics.rs/i/IEz0N](http://www.pics.rs/i/IEz0N), especially the last
line of letters.

~~~
vog
I guess the key reason why this works so well is because the lower resolution
has been calculated from the higher resolution. So you have detailed
information on how exactly the downscaling was calculated, which enables you
to "cheat".

If you apply the same method to a completely different downscaling method, it
probably wouldn't work out as nicely.

The ultimate test would be two different photographs taken at the same time -
one with high and one with low resolution. Almost certainly this wouldn't work
out as nicely. There is a huge difference between (a) having a low-res image
due to physical effects, and (b) having a low-res image calculated by a known
algorithm where all parameters are also known.

~~~
beagle3
This is plain wrong. As others have pointed out, it is independent of the
scaling method - it just looks for similar patches (at different sizes, mirror
images, and perhaps even rotations - I don't remember) on the same image to
find the best one that matches, and uses that for information.

In this specific case, you have _all_ the letters there to match against, so
there's no surprise.

Note that it uses the _entire_ image to look for matches. If you tried to
enlarge only the last line, it would probably NOT look as good.

There's a good reason that it works: Many pictures include similar elements at
different scales, which lets you infer things from one scale to the other. In
fact, in the eighties there was a lot of hype about "fractal compression"
based on the same principle, see e.g.
[http://www.cs.northwestern.edu/~agupta/_projects/image_proce...](http://www.cs.northwestern.edu/~agupta/_projects/image_processing/web/FractalImageCompression/)
; In the end, they couldn't improve on JPEG, and has been essentially
forgotten - but ... it did match the JPEG coders at the time in terms of
compression rate (did much worse on speed and memory requirements); and, it
could decompress pictures to much larger geometry than the original while
still looking good -- technically, very similar to what is described in this
paper. Everything old is new again.

~~~
PepeGomez
>This is plain wrong. As others have pointed out, it is independent of the
scaling method - it just looks for similar patches (at different sizes, mirror
images, and perhaps even rotations - I don't remember) on the same image to
find the best one that matches, and uses that for information.

Which is much harder to do when the scaling method isn't known.

~~~
beagle3
It doesn't even have to be scaling. It will work just as well copying only
from _similar_ images (e.g., if this was a frame from a movie, they could use
nearby frames to the same effect; or if it's a picture taken of the same thing
from a different angle).

------
osdf
A lot of things happened since then. References up to spring 2014 are e.g. in
our own work to super-resolve arbitrary sized images with convolutional
en/decoders: Super-Resolution with Fast Approximate Convolutional Sparse
Coding,
[http://brml.org/uploads/tx_sibibtex/281.pdf](http://brml.org/uploads/tx_sibibtex/281.pdf)
(which still has a lot of possibilities to be extended (e.g. color) and
improved upon).

~~~
nkoren
Interesting paper; I'd be curious to see examples of how that performs. Are
any online?

~~~
osdf
No, sorry :( Clearly a TODO for some future work.

~~~
Tiki
I realize you mention there's no online example, but is your latest research
available to try ourselves, using our own source images? This is neat!

~~~
osdf
Thanks for your kind words! There is some stuff floating around, PM me.

~~~
Tiki
It appears there's no PM system available to use. (At least not on my account,
which I created to ask you this question)

~~~
osdf
Check my 'about' section here, should lead you to my mail :).

------
agumonkey
Interesting to see what some of them did since
[https://sites.google.com/site/dglasner/](https://sites.google.com/site/dglasner/)

Pretty original research.

------
radarsat1
So, if I understand from the abstract, for every pixel they look through the
image for similar "pixel neighbourhoods" of the same or varying size, and
collect them into a kind of database of examples to be used for scaling up
that pixel. Pretty cool idea!

------
crimsonalucard
This is the algorithm they use in all those movies. "Enhance!"

------
colanderman
I wonder if the same techniques could be used for compression as well.

~~~
nitrogen
Some photocopiers have actually replaced numbers with different numbers in
copied documents because of pattern-based compression:
[https://news.ycombinator.com/item?id=6156238](https://news.ycombinator.com/item?id=6156238)

~~~
ansgri
Photocopiers use Mixed Raster Content (MRC) with JBIG compression, which is
indeed able to confuse symbols at the same scale, but across-the-scales
substitution is beyond the current MRC capabilities afaik.

~~~
murbard2
One way around that problem is to use lossless compression.

Unfortunately, if you have merely 1 bit of static noise per pixel (so +/\-
0.4% intensity), you won't achieve better than 12.5% compression.

------
jewbear48
Is there an implementation of this available?

~~~
0942v8653
There is a link in the old thread:
[https://news.ycombinator.com/item?id=4242002](https://news.ycombinator.com/item?id=4242002)

~~~
CamperBob2
I guess I fail the IQ test. Where's the download link?

~~~
XaspR8d
It looks like the page header/navigation got lost in time. Archive.org shows a
lot of now-missing content [1], perhaps in the move to GitHub Pages?

In any case the download page _does_ still exist:
[http://mentat.za.net/supreme/download.shtml](http://mentat.za.net/supreme/download.shtml)

Which leads to the repo:
[https://github.com/stefanv/supreme](https://github.com/stefanv/supreme)

[1]
[https://web.archive.org/web/20140204102520/http://mentat.za....](https://web.archive.org/web/20140204102520/http://mentat.za.net/supreme/index.shtml)

------
tmaly
To clarify my understanding of this post, would it be possible using this
method to: 1\. start with a high resolution image 2\. create a low resolution
version 3\. using the low resolution version produce a high resolution version
that looks good

------
happyindeed
It has a visual style that looks like a "photorealism" painting. Quite
amazing.
[https://en.wikipedia.org/wiki/Photorealism](https://en.wikipedia.org/wiki/Photorealism)

~~~
coldtea
Hmmm? The idea of photorealism is that it should look as much as an actual
photograph (or reality) as possible. And the best such painters, do.

------
zurn
Original code @
[https://github.com/stefanv/supreme](https://github.com/stefanv/supreme)
(repost from downthread). Looks like it's BSD licensed and in Python.

~~~
ansgri
As I see from [http://mentat.za.net/supreme/](http://mentat.za.net/supreme/),
this is an implementation of wholly another method, neither single-image nor
self-similarity–based.

------
CephalopodMD
Zoom and enhance

------
dang
Discussed in 2012:
[https://news.ycombinator.com/item?id=4241266](https://news.ycombinator.com/item?id=4241266).

