This is a pretty old paper, but I hadn't seen the live demo. That's pretty cool.<p>A problem with this algorithm is that it's pretty slow. It would be hard to use it for real time scaling.<p>I think that it's pretty cool though for any precalculated conversion to vector format. It would also be pretty cool if there were software that allowed you to create a pixel art image with a live preview in this format and the ability to export into a vector format.<p>One of the benefits of pixel art IMO is that it's got a pretty distinct style and its simplicity and restrictions means it's easy to be aware of composition where if you are given an unrestricted canvas that freedom can make it hard to know where to start. If you are given a 8x8 pixel grid to indicate "happy" there's only so many ways to do it, a symbolic heart, a little smiley face, etc. Given a whole sheet of paper you'll have more difficulty.<p>With the high res displays, there's more to consider than just the upscaling of old programs, the fact is people (especially indie game devs) still want to work with pixel art, and the number of titles with the term "8-bit" in their name that have come out recently. Part of that's because it's in vogue now, but a big part of it is simply that a poor artist can make a passable 24x24 sprite.<p>But it's still a shame that on high res displays they end up looking like a blocky mess. If you had a program that let you author your sprites under the same conditions, but let you preview an upscaled version and left you with a vector image (or high res texture with mip maps) you can make use of the fidelity while maintaining the simplicity. I think that would be cool.
I wish they would use this in Windows 8. As far as I can tell, their scaling algorithm for 4k displays is: scale up 2x using nearest neighbor, then randomly drop pixels to get back to 125% or 150%. The result is horrifyingly bad. Not just kind of bad, but unusably bad. (Adding insult to injury, they ClearType the text <i>before</i> scaling.)
The issue with depixelizing pixel art is that you need an AI that can identify semantically what the features in the sprite are. When you look at Mario you know you're looking at a stout little man with a hat, you can identify his eyes, ears, nose, hair, hat, moustache, shirt, gloves, overalls and shoes. Given that knowledge, if I were to depixelize Mario's sprite, I'll know the rough shape of his shoes and where the shading should go and what shape it should have, i.e. I can reason what the 3D shape is and how the 2D shape was derived from that. I'll also be able to identify which lines were put there to make sure separate elements can be legible and not make those thicker than needed. Or that his eyes blend with his hat simply because there aren't enough pixels to make them separate.<p>For simple shapes, like the background, their algorithm works really well, but for complex objects it fails, because it distorts details that were put in with very careful thought and completely depend on the resolution. Such small sprites rely a lot on being looked at by someone who can identify semantically what they're looking at, and any really successful depixelization solution will need to be able to understand what basic shapes the sprite is made of based on what it's supposed to represent.
A C++ LGPL implementation of this has been as been developed as part of last year Inkscape GSoC and is available as a standalone library: <a href="https://launchpad.net/libdepixelize" rel="nofollow">https://launchpad.net/libdepixelize</a><p>It will be released in the next Inkscape major version, expected soon :)
The authors of this paper also have other amazing image processing/optimization algorithms. Eg: Deblurring, Optimizing Color Consistency, Content-aware Automatic Photo Enhancement, Object Discovery and Segmentation in Internet Images and more:<p>Dani Lischinski's page: <a href="http://www.cs.huji.ac.il/~danix/" rel="nofollow">http://www.cs.huji.ac.il/~danix/</a><p>Johannes Kopf page: <a href="http://johanneskopf.de/" rel="nofollow">http://johanneskopf.de/</a>
Sometimes the Vector Magic results are truly magical; striking poses become even more striking when the figure is reduced to a collection of simpler shapes.
I thought this looked familiar! It is from 2011 <a href="https://research.microsoft.com/en-us/um/people/kopf/pixelart/" rel="nofollow">https://research.microsoft.com/en-us/um/people/kopf/pixelart...</a>
From when this first came out:<p><a href="https://news.ycombinator.com/item?id=2601347" rel="nofollow">https://news.ycombinator.com/item?id=2601347</a><p><a href="https://news.ycombinator.com/item?id=2578706" rel="nofollow">https://news.ycombinator.com/item?id=2578706</a>
Does anyone know where I can find an implementation of this? I can't even figure out what to call it. They just refer to it as "our method."
I chose to embrace the Pixels, myself: <a href="http://vulariter.wordpress.com/tag/jewel-punk/" rel="nofollow">http://vulariter.wordpress.com/tag/jewel-punk/</a>
I'm amazed to find that no one has mentioned that ScummVM has implemented some of these algorithms for years and they work pretty nice with the classical games.
HQ4X and Ours are the clear winners if you <i>must</i> resample like this; the downsides are that HQ4X occasionally has jaggies and Ours makes makes a lot of fine details look "blobby".<p>The Vector Magic results reminded me a lot of this:
<a href="http://www.cowboybooks.com.au/html/acidtrip1.html" rel="nofollow">http://www.cowboybooks.com.au/html/acidtrip1.html</a>
I did a GPU version in 2012 for my course project. For small size sprite, it runs roughly the same or even slower than the original paper. Anyone interested in finishing this and maybe try this on realtime emulator? <a href="http://yzhwang.github.io/depixelization/" rel="nofollow">http://yzhwang.github.io/depixelization/</a>
I think the most interesting aspect of this is the internal shading. I haven't seen any other algorithm that manages that while maintaining sharp edges overall.<p>I imagine it would end up with pretty weird results though when a sprite was on top of a background that with similar enough colors to trigger the shading detection at its edges.
I wrote an implementation of this in common lisp when they published it:<p><a href="http://dev.crazyrobot.net/2011/07/12/pixelart-to-vector/" rel="nofollow">http://dev.crazyrobot.net/2011/07/12/pixelart-to-vector/</a>
Amazing image zoom algorithm, t creates a hires version of a low res image. I would love to see this image zoom feature implemented the in ImageMagick.
It would be interesting to see a pixelart/emulator scaler that was temporally aware - that is, able to use context from near or all relevant sprite frames to get additional detail/context. This would require a compositing emulator, as some others have discussed, but I could see it producing notably superior results, given it would have much more source data to work with.
Something related that I stumbled upon some time ago (submitted to HN, got one upvote):
<a href="http://gpuhacks.wordpress.com/2013/07/08/signed-distance-field-rendering-of-color-bit-planes/" rel="nofollow">http://gpuhacks.wordpress.com/2013/07/08/signed-distance-fie...</a>
I needed some depixelation software for some graphics awhile back, so I threw together a quick program that depixelates using various technologies.<p><a href="https://github.com/kstenerud/depixelate" rel="nofollow">https://github.com/kstenerud/depixelate</a><p>So far it supports HQX, XBRZ, and Scale2x.
Proper Video here :- <a href="https://research.microsoft.com/en-us/um/people/kopf/pixelart/supplementary/video_multi_comparison_4x_h264.mp4" rel="nofollow">https://research.microsoft.com/en-us/um/people/kopf/pixelart...</a>
Here's the home page: <a href="http://research.microsoft.com/en-us/um/people/kopf/pixelart/" rel="nofollow">http://research.microsoft.com/en-us/um/people/kopf/pixelart/</a>
It actually looks like as if you took the polylines from EPX and used the points as the CVs for a biquadratic or bicubic interpolating spline (e.g. Catmull-Rom), you'd be very close to their result already.
I think hq4x is the best. Microsoft's curves too much - and while it can look good/stylized for some pieces, it's ultimately inaccurate and warps many of the pieces from their original form.
The Secret of Mana ones made my eyes leak, not gonna lie. Awesome graphics technology update not withstanding, that game was an integral part of my teenage years.
actually running the hqx algo on the art and then throwing it through ANY vectorisation engine with a slight roundness comes on top of any of these.<p>And Microsoft is not really being fair to Vector Magic here, there's a ton of settings there to improve that rendering depending on what you want...
I can't believe noone linked this so far. <a href="https://www.youtube.com/watch?v=3uoM5kfZIQ0&hd=1" rel="nofollow">https://www.youtube.com/watch?v=3uoM5kfZIQ0&hd=1</a>