Answers.Body: <p>The University of Bath released a paper demonstrating a <a href="http://www.bath.ac.uk/news/2012/12/11/pixel-die/" rel="nofollow noreferrer">vector-based video codec</a> a couple of years ago, with a press release asking &quot;<em>is the pixel about to die?</em>&quot;. Strangely since then the pixel hasn't died, in fact there are even more of them around than there used to be.</p>
  <p>You could argue that most video codecs do actually use vectors: <a href="https://en.wikipedia.org/wiki/Discrete_cosine_transform" rel="nofollow noreferrer">DCT</a> (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.</p>
  <p>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.</p>
  <p>So even the University of Bath's codec can't do <a href="https://www.youtube.com/watch?v=Vxq9yj2pVWk" rel="nofollow noreferrer">that thing they do</a> 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.</p>
  <p>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).</p>
  <p><strong>EDIT</strong> Worth updating this answer with info about <a href="https://lottiefiles.com/" rel="nofollow noreferrer">Lottie</a>, which is software that makes it easy to use HTML5 vector animation. It's basically a modern replacement for flash. You can use After Effects for example to create animations directly for the web, without rendering. This is not a codec as such, it doesnt encode a raster (pixel based) image like you'd get out of a camera, that's still the job for codecs like h.264 etc.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-19T11:28:51.080Z
Answers.Text: 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.
Answers.UserDisplayName: ispiro
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-19T11:43:26.520Z
Answers.Text: Sounds like you should learn how to use the HTML5 canvas element.
Answers.UserDisplayName: stib
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-19T15:10:27.373Z
Answers.Text: 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.
Answers.UserDisplayName: AJ Henderson
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-10-16T06:31:27.630Z
Answers.Text: Not just motion estimation. DCT is intra frame, it's used in lots of codecs, even the JPEG image codec.
Answers.UserDisplayName: stib
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2014-12-19T06:41:07.570Z
Answers.LastActivityDate: 2024-02-13T05:43:50.663Z
Answers.LastEditDate: 2024-02-13T05:43:50.663Z
Answers.UserDisplayName: stib
Answers.Body: <p>SVG supports animation using JavaScript and the animate element. That means using a browser or embeddable renderer like WebKit to render it, though.</p>
  
  <p>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.</p>
  
  <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-01-10T19:47:12.613Z
Answers.Text: A link from [this answer](https://stackoverflow.com/a/22795632/1224775) to "Is there a way to convert SWF into SVG format?" at Stack Overflow may be useful in the future [Macromedia Flash (SWF) to SVG Converter](http://swf2svg.sourceforge.net/). "Animations are planned to be implemented in the next versions."
Answers.UserDisplayName: User5910
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2016-06-22T01:11:18.220Z
Answers.LastActivityDate: 2016-06-22T01:11:18.220Z
Answers.UserDisplayName: Sean Lynch
Answers.Body: <p>Here is some research about this topic:</p>
  
  <p>Resolution Independent 2D Cartoon Video Conversion
  <a href="https://www.researchgate.net/publication/305390110_Resolution_Independent_2D_Cartoon_Video_Conversion" rel="nofollow noreferrer">https://www.researchgate.net/publication/305390110_Resolution_Independent_2D_Cartoon_Video_Conversion</a></p>
  
  <p>Video Vectorization via Tetrahedral Remeshing
  <a href="http://wangchuan.github.io/archive/research/videovec/paper.pdf" rel="nofollow noreferrer">http://wangchuan.github.io/archive/research/videovec/paper.pdf</a></p>
  
  <p>Video Codec for Classical Cartoon Animations with Hardware Accelerated Playback
  <a href="http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca" rel="nofollow noreferrer">http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca</a></p>
  
  <p>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.</p>
  
  <p>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.</p>
  
  <p>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...</p>
  
  <p>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.</p>
  
  <p>Computers of today might be able to do <em>Toy Story</em> 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.</p>
  
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-03-25T14:03:22.217Z
Answers.Text: 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 http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca again...
Answers.UserDisplayName: masterxilo
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2019-08-06T01:29:46.297Z
Answers.Text: Good point about real-time rendering. I wonder if anyone is creating films with tools like Unity and delivering them as executables.
Answers.UserDisplayName: stib
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-09-10T21:48:50.060Z
Answers.LastActivityDate: 2017-09-10T21:48:50.060Z
Answers.UserDisplayName: masterxilo
Answers.Body: <p>There is a vector based codec that I've been using - but it can't live outside of editing.</p>
  
  <p>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.</p>
  
  <p>Almost every other visual application does not recognize the swf format, so it's uses are very limited.  But the codec DOES exist.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2015-10-13T19:20:58.647Z
Answers.LastActivityDate: 2015-10-13T19:20:58.647Z
Answers.UserDisplayName: user11846
Answers.Body: <p>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. </p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2017-03-05T00:14:54.263Z
Answers.LastActivityDate: 2017-03-05T00:14:54.263Z
Answers.UserDisplayName: LordFenixNC
Answers.Body: <p>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.</p>
  
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-18T16:30:07.573Z
Answers.Text: :) 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?
Answers.UserDisplayName: ispiro
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-18T16:38:31.777Z
Answers.Text: 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.
Answers.UserDisplayName: ispiro
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-18T17:32:44.890Z
Answers.Text: 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.)
Answers.UserDisplayName: AJ Henderson
Answers.ContentLicense: CC BY-SA 4.0
Answers.CreationDate: 2021-03-30T06:50:42.033Z
Answers.Text: You can still embed Flash animations in HTML5 using [Ruffle](https://ruffle.rs/).
Answers.UserDisplayName: niutech
Answers.ContentLicense: CC BY-SA 3.0
Answers.CreationDate: 2014-12-18T16:27:10.857Z
Answers.LastActivityDate: 2014-12-18T16:27:10.857Z
Answers.UserDisplayName: AJ Henderson
Body: <p>Is there a vector-based video type, preferably open-source, so that an animated clip could be produced using "rules" instead of pixel-compression?</p>
  
  <p>This would mean lossless resolution-independent video. If it does exist - a link to the specifications would be helpful.</p>
  
Comments.ContentLicense: CC BY-SA 4.0
Comments.CreationDate: 2021-03-30T06:55:07.550Z
Comments.Text: Have a look at [Vectorly Video Vectorization](https://medium.com/vectorly/video-vectorization-dc6d54653f73).
Comments.UserDisplayName: niutech
Tags: <video><file-formats><codec>
Title: Is there a video type for vector animation?
UserDisplayName: ispiro
ThreadText: # Is there a video type for vector animation?
  
  (Asked by: username_0 on 2014-12-18)
  
  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.
  
  **Tags:** video, file-formats, codec
  
  > **Comments:**
  > **username_1**: Have a look at [Vectorly Video Vectorization](https://medium.com/vectorly/video-vectorization-dc6d54653f73).  
  
  ---
  
  ## 6 answers
  
  ### Answer by username_3 on 2014-12-18. Score: 22 | Accepted answer
  
  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.
  
  > **Comments:**
  > **username_0**: :) 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?  
  > **username_0**: 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.  
  > **username_3**: 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.)  
  > **username_1**: You can still embed Flash animations in HTML5 using [Ruffle](https://ruffle.rs/).  
  
  ---
  
  ### Answer by username_2 on 2014-12-19. Score: 12
  
  The University of Bath released a paper demonstrating a [vector-based video codec](http://www.bath.ac.uk/news/2012/12/11/pixel-die/) 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](https://en.wikipedia.org/wiki/Discrete_cosine_transform) (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](https://www.youtube.com/watch?v=Vxq9yj2pVWk) 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 username_3 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).
  
  **EDIT** Worth updating this answer with info about [Lottie](https://lottiefiles.com/), which is software that makes it easy to use HTML5 vector animation. It's basically a modern replacement for flash. You can use After Effects for example to create animations directly for the web, without rendering. This is not a codec as such, it doesnt encode a raster (pixel based) image like you'd get out of a camera, that's still the job for codecs like h.264 etc.
  
  > **Comments:**
  > **username_0**: 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.  
  > **username_2**: Sounds like you should learn how to use the HTML5 canvas element.  
  > **username_3**: 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.  
  > **username_2**: Not just motion estimation. DCT is intra frame, it's used in lots of codecs, even the JPEG image codec.  
  
  ---
  
  ### Answer by username_4 on 2016-06-22. Score: 8
  
  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.
  
  > **Comments:**
  > **username_5**: A link from [this answer](https://stackoverflow.com/a/22795632/1224775) to "Is there a way to convert SWF into SVG format?" at Stack Overflow may be useful in the future [Macromedia Flash (SWF) to SVG Converter](http://swf2svg.sourceforge.net/). "Animations are planned to be implemented in the next versions."  
  
  ---
  
  ### Answer by username_6 on 2017-09-10. Score: 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.
  
  > **Comments:**
  > **username_6**: 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 http://dcgi.felk.cvut.cz/publications/2005/sykora-isvc-vccca again...  
  > **username_2**: Good point about real-time rendering. I wonder if anyone is creating films with tools like Unity and delivering them as executables.  
  
  ---
  
  ### Answer by username_7 on 2015-10-13. Score: 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.
  
  
  ---
  
  ### Answer by username_8 on 2017-03-05. Score: 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.
  
  
  ---
  
  