Pixelkunst entpixeln:Pixelige Sprites in skalierbare Vektorgrafiken wandeln
Zwei Forscher haben einen neuen Algorithmus entwickelt, der eine auflösungsunabhängige Vektordarstellung aus Pixel-Kunstwerken (Pixel Art Images) erstellt. Aus einem kleinen pixeligen Supermario-Sprite wird so eine beliebig vergrößerbare, gestochen scharfe Comic-Grafik.
Super Mario Bros.: Original vs. VektordarstellungBild:
Johannes Kopf / Dani Lischinski
Unter dem Titel " Depixelizing Pixel Art(öffnet im neuen Fenster) " stellen Johannes Kopf(öffnet im neuen Fenster) von Microsoft Research und Dani Lischinski(öffnet im neuen Fenster) von der Hebräischen Universität von Jerusalem einen neuen Algorithmus vor, der Vektorgrafiken aus Pixelkunst erzeugt, die sich dann beliebig vergrößern lassen. Dazu wandelt der Algorithmus die pixeligen Details in Regionen mit sanft variierenden Schattierungen um, die mit weichen Konturlinien voneinander abgegrenzt werden.
Die Vorlagen für den Algorithmus stammen aus Computerspielen aus den Anfängen der 90er Jahre. Sie wurden damals Pixel für Pixel gesetzt und nicht aus größeren Vorlagen heruntergerechnet. Einige dieser Sprites haben regelrechten Kultstatus erlangt, beispielsweise das Raumschiff aus Space Invaders oder die dreifarbigen Sprites aus Super Mario Bros.
Bild 4/26: Depixelizing Pixel Art: Bei manchen Vorlagen übertreibt der Algorithmus.
Bild 5/26: Depixelizing Pixel Art: Bomberman in 15 x 23 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 6/26: Depixelizing Pixel Art: Vorlage in 32 x 16 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und dem Algorithmus von Orzan, Bousseau, Winnemöller, Barla, Thollot und Salesin (rechts)
Bild 7/26: Depixelizing Pixel Art: Bomberman in 32 x 27 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Adobe Live Trace (rechts)
Bild 8/26: Depixelizing Pixel Art: Space Invaders jeweils in 8 x 11 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und bikubisch (rechts)
Bild 9/26: Depixelizing Pixel Art: Toad in 16 x 27 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 10/26: Depixelizing Pixel Art: Axe Battler in 43 x 71 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Photo Zoom 4 (rechts)
Bild 11/26: Depixelizing Pixel Art: Yoshi in 15 x 23 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Adobe Live Trace (rechts)
Bild 12/26: Depixelizing Pixel Art: Mario im Nearest-Neighbor-Verfahren (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 13/26: Depixelizing Pixel Art: Kopf aus Doom in 24 x 29 Pixeln mit Antialiasing (links). Die Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (rechts) sieht nicht gut aus.
Bild 14/26: Vektorisierungsalgorithmen im Vergleich: Photo Zoom 4 (links), hq4x (Mitte) und Adobe Live Trace (rechts)
Bild 15/26: Bomberman: Vergrößerung mit Nearest Neighbor
Bild 16/26: Bomberman: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 17/26: Skelett aus Golden Axe: Vergrößerung mit Nearest Neighbor
Bild 18/26: Skelett aus Golden Axe: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 19/26: Yoshi aus Super Mario World: Vergrößerung mit Nearest Neighbor
Bild 20/26: Yoshi aus Super Mario World: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 21/26: Bowser aus Super Mario World: Vergrößerung mit Nearest Neighbor
Bild 22/26: Bowser aus Super Mario World: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 23/26: Eric ais Vikings: Vergrößerung mit Nearest Neighbor
Bild 24/26: Eric ais Vikings: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 25/26: Setup-Icon aus Windows 3.1: Vergrößerung mit Nearest Neighbor
Bild 26/26: Setup-Icon aus Windows 3.1: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Der Algorithmus von Kopf und Lischinski setzt genau da an. Durch die aufwendige Gestaltung der einzelnen Pixel enthalten die Grafiken ausreichend Ausdruck, um daraus Vektordarstellungen zu erzeugen. Algorithmen zur Umwandlung von natürlichen Bildern liefern nach Ansicht der Forscher bei Pixelkunst keine brauchbaren Ergebnisse, denn jeder einzelne Pixel kann ein wichtiges Detail darstellen. Speziell für Pixelkunst erzeugte Algorithmen würden meist stufige Kanten liefern und nur bedingt vergrößerbare Ergebnisse liefern.
Depixelizing Pixel Art: Echtzeitdarstellung von Spielen im Blick
Die Originalpixel werden auf einem Gitter angeordnet, auf dem diagonale Nachbarn nur mit einem Punkt verbunden werden. Dadurch wirken dünne Details bei herkömmlicher Vergrößerung nicht miteinander verbunden und es entstehen Doppeldeutigkeiten, was die Verbindungen und Trennung diagonaler Nachbarn betrifft. Der von Kopf und Lischinski entwickelte Algorithmus löst diese Doppeldeutigkeiten auf, was es erlaubt, Pixelzellen neu zu formen, so dass Pixel, die zum gleichen Detail gehören, bei Vergrößerung verbunden wirken. Anschließend werden Treppeneffekte reduziert und die Formen mit an die Konturen angelegten Splines geglättet.
Die so erzeugte Vektordarstellung kann mit Standardtechniken gerendert werden.
Die beiden Forscher haben ihren Algorithmus mit Grafiken verschiedener Computerspiele ausprobiert und mit den Ergebnissen anderer Algorithmen verglichen. Auf einem Single-Core-Rechner mit 2,4 GHz benötigte der noch nicht auf Geschwindigkeit optimierte Algorithmus von Kopf und Lischinski im Median 0,62 Sekunden, um eine Pixelgrafik in eine Vektordarstellung umzuwandeln. Dabei hängt die Geschwindigkeit maßgeblich von der Zahl der extrahierten Kurven ab und variiert zwischen 0,01 und 3,06 Sekunden.
Bild 4/26: Depixelizing Pixel Art: Bei manchen Vorlagen übertreibt der Algorithmus.
Bild 5/26: Depixelizing Pixel Art: Bomberman in 15 x 23 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 6/26: Depixelizing Pixel Art: Vorlage in 32 x 16 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und dem Algorithmus von Orzan, Bousseau, Winnemöller, Barla, Thollot und Salesin (rechts)
Bild 7/26: Depixelizing Pixel Art: Bomberman in 32 x 27 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Adobe Live Trace (rechts)
Bild 8/26: Depixelizing Pixel Art: Space Invaders jeweils in 8 x 11 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und bikubisch (rechts)
Bild 9/26: Depixelizing Pixel Art: Toad in 16 x 27 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 10/26: Depixelizing Pixel Art: Axe Battler in 43 x 71 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Photo Zoom 4 (rechts)
Bild 11/26: Depixelizing Pixel Art: Yoshi in 15 x 23 Pixeln (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und Adobe Live Trace (rechts)
Bild 12/26: Depixelizing Pixel Art: Mario im Nearest-Neighbor-Verfahren (links), Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (Mitte) und hq4x (rechts)
Bild 13/26: Depixelizing Pixel Art: Kopf aus Doom in 24 x 29 Pixeln mit Antialiasing (links). Die Vektordarstellung mit dem Algorithmus von Kopf und Lischinski (rechts) sieht nicht gut aus.
Bild 14/26: Vektorisierungsalgorithmen im Vergleich: Photo Zoom 4 (links), hq4x (Mitte) und Adobe Live Trace (rechts)
Bild 15/26: Bomberman: Vergrößerung mit Nearest Neighbor
Bild 16/26: Bomberman: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 17/26: Skelett aus Golden Axe: Vergrößerung mit Nearest Neighbor
Bild 18/26: Skelett aus Golden Axe: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 19/26: Yoshi aus Super Mario World: Vergrößerung mit Nearest Neighbor
Bild 20/26: Yoshi aus Super Mario World: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 21/26: Bowser aus Super Mario World: Vergrößerung mit Nearest Neighbor
Bild 22/26: Bowser aus Super Mario World: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 23/26: Eric ais Vikings: Vergrößerung mit Nearest Neighbor
Bild 24/26: Eric ais Vikings: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Bild 25/26: Setup-Icon aus Windows 3.1: Vergrößerung mit Nearest Neighbor
Bild 26/26: Setup-Icon aus Windows 3.1: Vektordarstellung mit dem Algorithmus von Kopf und Lischinski
Die beiden haben den Algorithmus auch im Echtzeitbetrieb getestet, auch wenn er dafür noch nicht ausgelegt ist. Dabei liefert der Algorithmus robuste Ergebnisse. Bei Bildern mit Anti-Aliasing tut sich der Algorithmus allerdings schwer, wie die Forscher an einem Ergebnis aus id Softwares Doom zeigen. Zudem werden manchmal Details zu stark weichgezeichnet, was am Piktogramm eines 386er Prozessors deutlich wird.
Die Forscher erwägen, ihren Algorithmus auf höhere Leistung zu optimieren, so dass er in Videospielen eingesetzt werden kann. Dann wäre es möglich, alte Spiele auf moderner, hochauflösender Hardware in hoher Grafikqualität zu spielen.