17

Is there a vector-based video type, preferably open-source, so that an animated clip could be produced using "rules" instead of pixel-compression?

This would mean lossless resolution-independent video. If it does exist - a link to the specifications would be helpful.

1

6 Answers 6

20

There was one, but it fell in to disuse and isn't used very often anymore, largely because of the lack of mobile support, but also due to security issues it created. It was called Flash.

4
  • :) So that's why it's disabled on my computer! Anyway, thanks. I didn't know that it's vector-based. I assume the video codec (if that's the right term in this case) is flv. Correct?
    – ispiro
    Dec 18, 2014 at 16:30
  • 1
    OK. I now see it's SWF. Knowing about Flash being vector-based, I now found there are more, such as EVA and XARA. Thanks.
    – ispiro
    Dec 18, 2014 at 16:38
  • It is also worth pointing out I was being semi-sarcastic and semi-serious in my response. It really isn't a video format. Video, pretty much by definition, is raster, however there are playable animation formats, of which Shockwave Flash (now known as Flash) is the most commonly used. As you determined, Flash Video is a different thing and is a form of raster video designed to be embedded within a Flash animation (which has actually grown to have a full scripting system allowed inside it's execution.)
    – AJ Henderson
    Dec 18, 2014 at 17:32
  • 1
    You can still embed Flash animations in HTML5 using Ruffle.
    – niutech
    Mar 30, 2021 at 6:50
8

The University of Bath released a paper demonstrating a vector-based video codec a couple of years ago, with a press release asking "is the pixel about to die?". Strangely since then the pixel hasn't died, in fact there are even more of them around than there used to be.

You could argue that most video codecs do actually use vectors: DCT (or similar), - which is used in pretty much every video codec around - is based on the idea that you can represent any signal perfectly as the sum of several cosine waves, or in other words as a bunch of vectors added together.

But that doesn't mean you can scale a standard definition DV movie up to 4K without any loss of sharpness. The reason for this is that even though a DCT encoded image is essentially a bunch of mathematical functions, and is therefore resolution independant, the signal that they encode is limited in bandwidth to the original data that was captured; the camera is a low-pass filter, filtering out any detail finer than the resolution of the sensor (it's probably more precise to say any detail finer than the Nyquist limit of the sensor ~= 1/2 the resolution). In other words, no codec can encode information that wasn't there in the first place.

So even the University of Bath's codec can't do that thing they do in movies where you can infinitely enhance a low res, out-of-focus security camera shot until it looks like it came out of a Hasselblad.

Flash animation as AJ Henderson mentions is a pure vector based format, but it is only for content that was created as vectors, and not to be confused with Flash video (flv container) which is a raster format where the pixels are encoded with Sorenson Spark or VP6 or good ol' h.264 (which uses DCT).

4
  • Thanks. Since I'm referring to creating animation using vectors, it would be a perfect fit, though, as you've stated, it might not be a replacement for other codecs for video captured by a camera. Now I'm wondering if it's practical to write my own code to transform a set of coordinates (etc.) into a video. As opposed to using 3rd party software.
    – ispiro
    Dec 19, 2014 at 11:28
  • Sounds like you should learn how to use the HTML5 canvas element.
    – stib
    Dec 19, 2014 at 11:43
  • That's a pretty good point about the fact that most motion estimation really is kind of vector based, though not really in the context the OP is referring to since it can't scale indefinitely. That stuff from Bath is pretty impressive though. Very nice edge detection and pathing from what I could tell from the sample.
    – AJ Henderson
    Dec 19, 2014 at 15:10
  • Not just motion estimation. DCT is intra frame, it's used in lots of codecs, even the JPEG image codec.
    – stib
    Oct 16, 2015 at 6:31
7

SVG supports animation using JavaScript and the animate element. That means using a browser or embeddable renderer like WebKit to render it, though.

Older games often used their own vector animation formats. You might look into the asset formats supported by open source implementations of old game engines like ScummVM and Sarien. There are some asset extractors and editors, but I'm not sure if there are any standalone viewers, so you might have to extract the animation code yourself if you were to go this route.

May I ask what your end goal is? I'm into vector graphics for the same reason I like MODs and chip music; the more recent formats are huge and CPU hungry, and frankly it feels like cheating compared to what could be accomplished on a PC with 640k of RAM or even a Commodore 64.

1
3

Here is some research about this topic:

Resolution Independent 2D Cartoon Video Conversion https://www.researchgate.net/publication/305390110_Resolution_Independent_2D_Cartoon_Video_Conversion

Video Vectorization via Tetrahedral Remeshing http://wangchuan.github.io/archive/research/videovec/paper.pdf

Video Codec for Classical Cartoon Animations with Hardware Accelerated Playback http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca

I remember reading this last one when I was watching many cartoons and anime online a few years ago. The video resolution you get with many streaming portals, 480p (or even 720p), just doesn't do justice to these nice outline drawings when viewed on full HD/4k displays.

IIRC, the authors of said paper even provided downloads of example video files and their player back then (as a proof of concept), but I cannot find them now.

One problem with rule/computation-based animations (vector graphics;real-time rendered games, flash...) is that it's hard to predict whether the machine playing the video will be able to render the things quickly enough. But you can also have this performance problem with the usual video codecs. Some cheap laptops I owned could not decode full hd/4k videos at the speed necessary for playback...

Still, with vector/computation-based graphics, the problem is worse: There is potentially no limit to the computation power you might need to render a frame. Think about it: CGI movies could be distributed as just the code and assets used to produce them and your machine could render them at any framerate and resolution. The problem is that these movies where not designed for this. Computing a frame might take hours on your machine, not to mention that you probably don't even have enough harddisk space to store all the assets at full resolution which their renderfarm uses.

Computers of today might be able to do Toy Story in real-time though. Also, if you have a high-end gaming rig, the real-time ingame graphics cutscenes are of course also a type of resolution independent video.

2
  • Thanks, me from the past, for writing this down, I thought I would never find Video Codec for Classical Cartoon Animations with Hardware Accelerated Playback dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca again...
    – masterxilo
    Mar 25, 2019 at 14:03
  • Good point about real-time rendering. I wonder if anyone is creating films with tools like Unity and delivering them as executables.
    – stib
    Aug 6, 2019 at 1:29
0

There is a vector based codec that I've been using - but it can't live outside of editing.

Flash exports an swf file format that maintains the motion vector information when applied in After Effects (don't know if it works in Premier. DOES NOT work in Final Cut). When these files are imported into AE, they maintain their resolution regardless of scale or zoom. All other features applicable to shape layers are applicable to swfs.

Almost every other visual application does not recognize the swf format, so it's uses are very limited. But the codec DOES exist.

0

GameMaker studio supports SWF/Vector art and animation. but of course that is for video games. But I'm sure with how gamemaker works you could make your own bootable videos with it.

Not the answer you're looking for? Browse other questions tagged or ask your own question.