Czy istnieje typ wideo dla animacji wektorowej?


10

Czy istnieje typ wideo oparty na wektorze, najlepiej o otwartym kodzie źródłowym, aby animowany klip mógł zostać utworzony przy użyciu „reguł” zamiast kompresji pikseli?

Oznaczałoby to bezstratne wideo niezależne od rozdzielczości. Jeśli tak, to link do specyfikacji byłby pomocny.

Odpowiedzi:


13

Był jeden, ale nie można go już używać często, głównie z powodu braku wsparcia mobilnego, ale także z powodu problemów z bezpieczeństwem, które stworzył. Nazywał się Flash.


:) Więc to dlaczego jest wyłączone na moim komputerze! W każdym razie dzięki. Nie wiedziałem, że jest oparty na wektorze. Zakładam, że kodek wideo (jeśli jest to właściwy termin w tym przypadku) to flv. Poprawny?
ispiro

OK. Teraz widzę, że to SWF. Wiedząc, że Flash oparty jest na wektorach, odkryłem, że jest ich więcej, takich jak EVA i XARA. Dzięki.
ispiro

Warto również zauważyć, że w swojej odpowiedzi byłem pół-sarkastyczny i pół-poważny. To naprawdę nie jest format wideo. Wideo, prawie z definicji, jest rastrem, jednak istnieją formaty animacji, z których najczęściej stosuje się Shockwave Flash (obecnie znany jako Flash). Jak ustaliłeś, Flash Video jest inną rzeczą i jest formą wideo rastrowego przeznaczonego do osadzenia w animacji Flash (która tak naprawdę urosła do pełnego systemu skryptowego w trakcie jej wykonywania).
AJ Henderson

8

Kilka lat temu University of Bath opublikował artykuł demonstrujący kodek wideo oparty na wektorze , z komunikatem prasowym z pytaniem „ czy piksel ma umrzeć? ”. Co dziwne, od tego czasu piksel nie zmarł, w rzeczywistości jest ich jeszcze więcej niż kiedyś.

Można argumentować, że większość kodeków wideo faktycznie używa wektorów: DCT (lub podobny) - który jest używany w prawie każdym kodeku wideo w pobliżu - opiera się na pomyśle, że można idealnie reprezentować dowolny sygnał jako sumę kilku fal cosinusowych, lub innymi słowy jako zbiór wektorów dodanych razem.

Nie oznacza to jednak, że można skalować film DV w standardowej rozdzielczości do 4K bez utraty ostrości. Powodem tego jest to, że chociaż obraz zakodowany w DCT jest zasadniczo zbiorem funkcji matematycznych, a zatem jest niezależny od rozdzielczości, sygnał, który kodują, jest ograniczony pasmem do oryginalnych danych, które zostały przechwycone; kamera jest filtrem dolnoprzepustowym, odfiltrowującym każdy szczegół drobniejszy niż rozdzielczość czujnika (prawdopodobnie dokładniej jest powiedzieć każdy szczegół drobniejszy niż granica Nyquista czujnika ~ = 1/2 rozdzielczości). Innymi słowy, żaden kodek nie może kodować informacji, których w ogóle nie było.

Tak więc nawet kodek z University of Bath nie może robić tego, co robią w filmach, w których można nieskończenie poprawiać ujęcia wykonane kamerą bezpieczeństwa o niskiej rozdzielczości i nieostrym, dopóki nie będzie wyglądało, jakby wyszło z Hasselblada.

Animacja Flash, jak wspomina AJ Henderson, jest czystym formatem wektorowym, ale dotyczy tylko treści utworzonych jako wektory i nie należy mylić jej z wideo Flash (pojemnik flv), który jest formatem rastrowym, w którym piksele są kodowane za pomocą Sorenson Spark lub VP6 lub good ol 'h.264 (który wykorzystuje DCT).


Dzięki. Ponieważ mam na myśli tworzenie animacji za pomocą wektorów, byłoby to idealne dopasowanie, jednak, jak powiedziałeś, może nie być zamiennikiem innych kodeków dla wideo przechwytywanego przez kamerę. Teraz zastanawiam się, czy warto napisać własny kod, aby przekształcić zbiór współrzędnych (itp.) W wideo. W przeciwieństwie do korzystania z oprogramowania innych firm.
ispiro,

Wygląda na to, że powinieneś nauczyć się korzystać z elementu canvas HTML5.
stib

To całkiem dobra uwaga na temat faktu, że większość estymacji ruchu jest rzeczywiście oparta na wektorze, choć nie w kontekście, do którego odnosi się OP, ponieważ nie można go skalować w nieskończoność. Te rzeczy z Bath są jednak imponujące. Bardzo ładne wykrywanie krawędzi i ścieżki na podstawie tego, co mogłem powiedzieć z próbki.
AJ Henderson

Nie tylko przewidywanie ruchu. DCT jest ramką wewnętrzną, jest używany w wielu kodekach, nawet w kodekach JPEG.
stib

6

SVG obsługuje animację przy użyciu JavaScript i elementu animowanego. Oznacza to jednak użycie przeglądarki lub renderera, który można osadzić, takiego jak WebKit, do jej renderowania.

Starsze gry często używały własnych formatów animacji wektorowych. Możesz przyjrzeć się formatom zasobów obsługiwanym przez implementacje otwartych źródeł starych silników gier, takich jak ScummVM i Sarien. Istnieje kilka programów do wyodrębniania zasobów i edytorów, ale nie jestem pewien, czy istnieją jakieś niezależne przeglądarki, więc może być konieczne samodzielne wyodrębnienie kodu animacji, jeśli wybierzesz tę drogę.

Czy mogę zapytać, jaki jest twój cel końcowy? Interesuję się grafiką wektorową z tego samego powodu, dla którego lubię mody i układy muzyczne; nowsze formaty są ogromne i wymagają dużej mocy obliczeniowej, i szczerze mówiąc, to jest oszustwo w porównaniu do tego, co można osiągnąć na komputerze PC z 640k pamięci RAM lub nawet Commodore 64.


2

Oto kilka badań na ten temat:

Rozdzielczość Niezależna konwersja filmów animowanych 2D https://www.researchgate.net/publication/305390110_Resolution_Independent_2D_Cartoon_Video_Conversion

Wektoryzacja wideo za pomocą Tetrahed Remeshing http://wangchuan.github.io/archive/research/videovec/paper.pdf

Kodek wideo do klasycznych animacji animowanych ze sprzętowym przyspieszonym odtwarzaniem http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca

Pamiętam ten ostatni, kiedy kilka lat temu oglądałem wiele kreskówek i anime online. Rozdzielczość wideo uzyskiwana dzięki wielu portalom streamingowym, 480p (lub nawet 720p), po prostu nie oddaje tych ładnych rysunków konturowych, gdy ogląda się je na ekranach Full HD / 4k.

IIRC, autorzy wspomnianego artykułu nawet podali do pobrania przykładowe pliki wideo i ich odtwarzacz (jako dowód koncepcji), ale nie mogę ich teraz znaleźć.

Jednym z problemów z animacjami opartymi na regułach / obliczeniach (grafika wektorowa; gry renderowane w czasie rzeczywistym, flash ...) jest to, że trudno jest przewidzieć, czy maszyna odtwarzająca wideo będzie w stanie wystarczająco szybko renderować. Ale możesz mieć ten problem z wydajnością ze zwykłymi kodekami wideo. Niektóre tanie laptopy, których posiadałem, nie mogły dekodować filmów Full HD / 4k z prędkością niezbędną do odtwarzania ...

Mimo to w przypadku grafiki opartej na wektorze / obliczeniach problem jest gorszy: potencjalnie nie ma ograniczenia mocy obliczeniowej potrzebnej do renderowania ramki. Pomyśl o tym: filmy CGI mogą być dystrybuowane jako kod i zasoby użyte do ich wytworzenia, a twoja maszyna może je renderować z dowolną szybkością klatek i rozdzielczością. Problem polega na tym, że te filmy nie zostały zaprojektowane do tego celu. Obliczenie ramki może zająć wiele godzin na twoim komputerze, nie wspominając już o tym, że prawdopodobnie nie masz wystarczającej ilości miejsca na dysku twardym do przechowywania wszystkich zasobów w pełnej rozdzielczości, z których korzysta ich renderfarm.

Dzisiejsze komputery mogą być w stanie tworzyć Toy Story w czasie rzeczywistym. Ponadto, jeśli masz wysokiej klasy sprzęt do gier, przerywniki graficzne w czasie rzeczywistym są oczywiście rodzajem wideo niezależnego od rozdzielczości.


Dziękuję, ja z przeszłości, za spisanie tego. Myślałem, że nigdy więcej nie znajdę kodeka wideo do klasycznych animacji animowanych ze sprzętowym przyspieszonym odtwarzaniem dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca ponownie ...
masterxilo,

Dobra uwaga na temat renderowania w czasie rzeczywistym. Zastanawiam się, czy ktoś tworzy filmy za pomocą narzędzi takich jak Unity i dostarcza je jako pliki wykonywalne.
stib

0

Istnieje kodek wektorowy, którego używałem - ale nie może żyć poza edycją.

Flash eksportuje format pliku SWF, który zachowuje informacje o wektorze ruchu po zastosowaniu w After Effects (nie wiem, czy działa w trybie Premier. NIE DZIAŁA w Final Cut). Po zaimportowaniu tych plików do AE zachowują swoją rozdzielczość niezależnie od skali i powiększenia. Wszystkie pozostałe funkcje mające zastosowanie do warstw kształtów mają zastosowanie do plików SWF.

Prawie każda inna aplikacja wizualna nie rozpoznaje formatu SWF, więc jego zastosowania są bardzo ograniczone. Ale istnieje kodek.


0

Studio GameMaker obsługuje grafikę i animację SWF / Vector. ale oczywiście dotyczy to gier wideo. Ale jestem pewien, jak działa gamemaker, dzięki czemu można tworzyć własne filmy rozruchowe.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.