Gibt es einen Videotyp für Vektoranimationen?

10

Gibt es einen vektorbasierten Videotyp, vorzugsweise Open Source, so dass ein animierter Clip mithilfe von "Regeln" anstelle der Pixelkomprimierung erstellt werden kann?

Dies würde verlustfreies, auflösungsunabhängiges Video bedeuten. Wenn es existiert, wäre ein Link zu den Spezifikationen hilfreich.

ispiro
quelle

Antworten:

13

Es gab eine, die jedoch nicht mehr verwendet wurde und nicht mehr sehr oft verwendet wird, hauptsächlich aufgrund des Mangels an mobiler Unterstützung, aber auch aufgrund von Sicherheitsproblemen, die dadurch verursacht wurden. Es wurde Flash genannt.

AJ Henderson
quelle
:) So , dass die , warum es auf meinem Computer deaktiviert ist! Trotzdem danke. Ich wusste nicht, dass es vektorbasiert ist. Ich gehe davon aus, dass der Video-Codec (wenn dies in diesem Fall der richtige Begriff ist) flv ist. Richtig?
Ispiro
OKAY. Ich sehe jetzt, dass es SWF ist. Da ich wusste, dass Flash vektorbasiert ist, stellte ich jetzt fest, dass es weitere gibt, wie z. B. EVA und XARA. Vielen Dank.
Ispiro
Es ist auch erwähnenswert, dass ich in meiner Antwort halb sarkastisch und halb ernst war. Es ist wirklich kein Videoformat. Video ist per Definition ein Raster, es gibt jedoch abspielbare Animationsformate, von denen Shockwave Flash (jetzt als Flash bekannt) am häufigsten verwendet wird. Wie Sie festgestellt haben, ist Flash Video eine andere Sache und eine Form von Rastervideo, das in eine Flash-Animation eingebettet werden soll (die tatsächlich so erweitert wurde, dass ein vollständiges Skriptsystem in der Ausführung zulässig ist).
AJ Henderson
8

Die University of Bath veröffentlichte vor einigen Jahren ein Papier, in dem ein vektorbasierter Video-Codec demonstriert wurde. In einer Pressemitteilung wurde gefragt, ob das Pixel bald sterben wird . Seltsamerweise ist das Pixel seitdem nicht mehr gestorben, es gibt sogar noch mehr davon als früher.

Man könnte argumentieren, dass die meisten Videocodecs tatsächlich Vektoren verwenden: DCT (oder ähnliches) - das in so ziemlich jedem Videocodec verwendet wird - basiert auf der Idee, dass Sie jedes Signal perfekt als Summe mehrerer Kosinuswellen darstellen können. oder mit anderen Worten als eine Reihe von Vektoren, die zusammenaddiert werden.

Dies bedeutet jedoch nicht, dass Sie einen DV-Film mit Standardauflösung ohne Schärfeverlust auf 4K skalieren können. Der Grund dafür ist, dass obwohl ein DCT-codiertes Bild im Wesentlichen eine Reihe von mathematischen Funktionen ist und daher unabhängig von der Auflösung ist, das Signal, das sie codieren, in der Bandbreite auf die ursprünglichen Daten beschränkt ist, die erfasst wurden; Die Kamera ist ein Tiefpassfilter, der jedes Detail herausfiltert, das feiner als die Auflösung des Sensors ist (es ist wahrscheinlich genauer, jedes Detail feiner als die Nyquist-Grenze des Sensors zu sagen ~ = 1/2 der Auflösung). Mit anderen Worten, kein Codec kann Informationen codieren, die überhaupt nicht vorhanden waren.

Selbst der Codec der University of Bath kann das nicht , was sie in Filmen tun, in denen Sie eine unscharfe Überwachungskamera mit niedriger Auflösung unendlich verbessern können, bis sie aussieht, als stamme sie aus einem Hasselblad.

Die von AJ Henderson erwähnte Flash-Animation ist ein reines vektorbasiertes Format, jedoch nur für Inhalte, die als Vektoren erstellt wurden, und nicht zu verwechseln mit Flash-Video (FLV-Container), einem Rasterformat, in dem die Pixel mit Sorenson Spark codiert werden oder VP6 oder gutes altes h.264 (das DCT verwendet).

stib
quelle
Vielen Dank. Da ich mich auf das Erstellen von Animationen mit Vektoren beziehe , wäre dies eine perfekte Lösung. Wie Sie bereits erwähnt haben, ist dies möglicherweise kein Ersatz für andere Codecs für Videos, die von einer Kamera aufgenommen wurden. Jetzt frage ich mich, ob es praktisch ist, meinen eigenen Code zu schreiben, um einen Satz von Koordinaten (usw.) in ein Video umzuwandeln. Im Gegensatz zur Verwendung von Software von Drittanbietern.
Ispiro
Klingt so, als sollten Sie lernen, wie Sie das HTML5-Canvas-Element verwenden.
Stib
Das ist ein ziemlich guter Punkt in Bezug auf die Tatsache, dass die meisten Bewegungsschätzungen wirklich vektorbasiert sind, obwohl sie nicht wirklich in dem Kontext stehen, auf den sich das OP bezieht, da sie nicht unbegrenzt skaliert werden können. Das Zeug aus Bath ist allerdings ziemlich beeindruckend. Sehr schöne Kantenerkennung und Pfadfindung nach dem, was ich aus der Probe entnehmen konnte.
AJ Henderson
Nicht nur Bewegungsschätzung. DCT ist ein Intra-Frame, es wird in vielen Codecs verwendet, sogar im JPEG-Bildcodec.
Stib
6

SVG unterstützt Animationen mit JavaScript und dem Animationselement. Dies bedeutet jedoch, dass Sie zum Rendern einen Browser oder einen einbettbaren Renderer wie WebKit verwenden.

Ältere Spiele verwendeten oft ihre eigenen Vektoranimationsformate. Sie können sich die Asset-Formate ansehen, die von Open Source-Implementierungen alter Spiele-Engines wie ScummVM und Sarien unterstützt werden. Es gibt einige Asset-Extraktoren und -Editoren, aber ich bin mir nicht sicher, ob es eigenständige Viewer gibt. Daher müssen Sie den Animationscode möglicherweise selbst extrahieren, wenn Sie diesen Weg gehen möchten.

Darf ich fragen, was Ihr Endziel ist? Ich mag Vektorgrafiken aus dem gleichen Grund, aus dem ich MODs und Chipmusik mag. Die neueren Formate sind riesig und CPU-hungrig, und ehrlich gesagt fühlt es sich wie Betrug an, verglichen mit dem, was auf einem PC mit 640 KB RAM oder sogar einem Commodore 64 erreicht werden könnte.

Sean Lynch
quelle
2

Hier einige Recherchen zu diesem Thema:

Auflösungsunabhängige 2D-Cartoon-Videokonvertierung https://www.researchgate.net/publication/305390110_Resolution_Independent_2D_Cartoon_Video_Conversion

Video-Vektorisierung über Tetrahedral Remeshing http://wangchuan.github.io/archive/research/videovec/paper.pdf

Video-Codec für klassische Cartoon-Animationen mit hardwarebeschleunigter Wiedergabe http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca

Ich erinnere mich, dass ich diesen letzten gelesen habe, als ich vor einigen Jahren viele Cartoons und Anime online gesehen habe. Die Videoauflösung, die Sie mit vielen Streaming-Portalen (480p (oder sogar 720p)) erhalten, wird diesen schönen Umrisszeichnungen auf Full-HD / 4k-Displays einfach nicht gerecht.

IIRC, die Autoren dieses Papiers, haben damals sogar Downloads von Beispielvideodateien und deren Player bereitgestellt (als Proof of Concept), aber ich kann sie jetzt nicht finden.

Ein Problem bei regel- / rechnerbasierten Animationen (Vektorgrafiken; in Echtzeit gerenderte Spiele, Flash ...) besteht darin, dass es schwer vorherzusagen ist, ob die Maschine, auf der das Video abgespielt wird, die Dinge schnell genug rendern kann. Sie können dieses Leistungsproblem aber auch mit den üblichen Video-Codecs haben. Einige billige Laptops, die ich besaß, konnten keine vollständigen HD / 4K-Videos mit der für die Wiedergabe erforderlichen Geschwindigkeit dekodieren ...

Bei vektor- / rechnerbasierten Grafiken ist das Problem jedoch noch schlimmer: Die Rechenleistung, die Sie möglicherweise zum Rendern eines Frames benötigen, ist möglicherweise unbegrenzt. Denken Sie darüber nach: CGI-Filme können nur als Code und Assets verteilt werden, mit denen sie erstellt wurden, und Ihr Computer kann sie mit jeder Framerate und Auflösung rendern. Das Problem ist, dass diese Filme nicht dafür entwickelt wurden. Das Berechnen eines Frames kann auf Ihrem Computer Stunden dauern, ganz zu schweigen davon, dass Sie wahrscheinlich nicht einmal über genügend Festplattenspeicher verfügen, um alle Assets in voller Auflösung zu speichern, die von der Renderfarm verwendet werden.

Computer von heute können Toy Story jedoch möglicherweise in Echtzeit ausführen. Wenn Sie ein High-End-Gaming-Rig haben, sind die Echtzeit-Ingame-Grafik-Zwischensequenzen natürlich auch eine Art auflösungsunabhängiges Video.

masterxilo
quelle
Vielen Dank, ich aus der Vergangenheit, für das Aufschreiben. Ich dachte, ich würde nie wieder einen Video-Codec für klassische Cartoon-Animationen mit hardwarebeschleunigter Wiedergabe finden. Dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca ...
Masterxilo
Guter Punkt zum Echtzeit-Rendering. Ich frage mich, ob jemand Filme mit Tools wie Unity erstellt und als ausführbare Dateien liefert.
Stib
0

Es gibt einen vektorbasierten Codec, den ich verwendet habe - aber er kann nicht außerhalb der Bearbeitung leben.

Flash exportiert ein SWF-Dateiformat, das die Bewegungsvektorinformationen beibehält, wenn es in After Effects angewendet wird (weiß nicht, ob es in Premier funktioniert. Funktioniert NICHT in Final Cut). Wenn diese Dateien in AE importiert werden, behalten sie ihre Auflösung unabhängig von Skalierung oder Zoom bei. Alle anderen Funktionen, die für Formebenen gelten, gelten für SWFS.

Fast jede andere visuelle Anwendung erkennt das SWF-Format nicht, daher sind seine Verwendungsmöglichkeiten sehr begrenzt. Aber der Codec existiert.

user11846
quelle
0

GameMaker Studio unterstützt SWF / Vector Art und Animation. aber das ist natürlich für Videospiele. Aber ich bin mir sicher, dass Sie mit der Funktionsweise von Gamemaker Ihre eigenen bootfähigen Videos erstellen können.

LordFenixNC
quelle