Follow Slashdot blog updates by subscribing to our blog RSS feed


Forgot your password?
Google Media Mozilla News

VP8 Decoder Implemented In Flash Using Alchemy 94

An anonymous reader writes "Mozilla's Chris Double has an interesting post on his blog about a port of the VP8 decoder to Flash. He writes, 'Ralph Hauwert has been posting on twitter about work he's done on getting WebM decoding to work by compiling the libvpx source code using Adobe's Alchemy technology. Alchemy is a research project that allows compilation of C and C++ libraries into code that runs on the ActionScript virtual machine used by Flash.' Of course, it's very slow and Adobe says that they'll bring native VP8 support to Flash in due course, but implementing a VP8 decoder in ActionScript is an interesting project nonetheless."
This discussion has been archived. No new comments can be posted.

VP8 Decoder Implemented In Flash Using Alchemy

Comments Filter:
  • WebM is the container
    --- VP8 is the video
    --- Vorbis is the audio

    Why didn't Google use Ogg for the container? I see Google's also developed a WebP format for pictures, also based on VP8.

    • I'm too busy to look up the details exactly, but two possibilities:

      1. The container, as well as the codecs, are potentially patent-encumbered, so it's easier to steer clear.

      2. The container isn't part of the patent concern, but there are companies who aren't sure of that (see #1). So it's easier to get adoption if they steer clear.
      • by Sylak ( 1611137 )
        OGG container is patent-free, but it's probably the issue with most open-source adoption, where because it's pre-existing and has is open-source, they don't trust it
        • Well, you can say it's "patent-free", but that's a meaningless phrase.

          To legally be able to say "X is patent-free", you would need to, in every different patent/legal jurisdiction[the matrix of where a patent can be registered and the areas where different laws apply to that patent], you proactively go through court proceedings and prove EVERY single current and pending patent that hasn't expired doesn't apply to X, and have the judge rule in your favor, then go through all appeals, if any.

          Assuming of cours

    • Re: (Score:3, Informative)

      MPEG4/h264 vs. VP8 comparison (h264 slightly better): []

      HE-AACplus vs. Vorbis (HEAAC wins): []

      WebP vs. JPEG (WebP wins): []

      • Re:So let's see: (Score:4, Insightful)

        by Anonymous Coward on Friday January 14, 2011 @01:34PM (#34880020)

        I take issue with the HEAACplus vs Vorbis comparison you chose.

        At the sort of bitrates that are actually used in streaming HD video all lossy encoders are essentially transparent, even old war horses like MP3. Performance at lower bitrates is academic at best. Vorbis beats all comers in the 80-96kbps range, and HEAACplus beats all comers under 64kbps, but neither is relevant to HD streaming video.

        • Performance at lower bitrates is academic at best.

          Not if you're on dialup or a cellphone. You want the lowest bitrate possible while still keeping good quality. For example the radio station I listen to at work streams at a mere 12kbit/s HEAAC and sounds... well not great but close to FM quality. Vorbis sounds like it was squeezed through a shortwave radio.

          "Vorbis beats all comers in the 80-96kbps range"

          It doesn't beat HE-AAC (AACplus) which still has better sound on the high frequencies.

    • by AvitarX ( 172628 )

      I don't know why .ogg was not used, as according to this is where .ogg excels.

      MKV is definitely superior to OGM though (Matroska is modest on this point int their faq).

      look at the table here: [] to see MKV vs OGM

      4.3 in the linked PDF is probably why WebM was created (a pure subset of Matroska I believe).

      I can't find any support, but I believe I read somewhere that OGM was week in seeking vs MKV (don't know how this compares to WebM).

      • Re:So let's see: (Score:4, Informative)

        by BZ ( 40346 ) on Friday January 14, 2011 @01:28PM (#34879950) [] under "Benefits of Matroska" describes the seeking issues in some detail. The summary is that ogg requires you to read more separate bits to seek correctly, and each separate bit ends up having to be a separate HTTP request in the context of web streaming. So your latency starts to bite you when seeking. It's not an issue if you don't have to seek or if you have the whole file already. But for the youtube use case, neither is true, typically.

    • by Goaway ( 82658 )

      "WebM" is not really the container, it's an overall name for VP8 and Vorbis in a container that is a subset of the MKV format.

      Also, they probably did not choose Ogg because it is a bit of a horrible mess and programmers in general don't like it at all.


      webm stands for Web Media (not Web Matroska). It is a subset of Matroska with only the necessary features required for video (and audio) to play over the web. As of today, it is supported by web browsers like Chrome, Firefox and Opera. Some video websites like YouTube are already streaming 360p and 720p in the webm format using the HTML5 feature of these browsers. Our tools, like mkvalidator and mkclean, already support webm files; the new version of Haali's Media Splitter can handle webm files; and support in mkvtoolnix has already been added to the next release.

      So it is simpler to implement on lighter devices like phone perhaps..

    • To put it shortly - Ogg sucks, and Matroska rules. Compare the two formats and you will see why. Matroska allows encoding almost any data and synchronizing it in the stream completely forward and backwards compatibly, with no need to develop bit-field mappings, unlike Ogg.
  • as much as useless timewasting project.
    I would have preferred spending those resources into making a better/faster/leaner VP8 decoder!
  • Wow! Flash is Turing Complete! Who woulda thunk it? Now if only it could be implemented in Javascript so as to also be unusable within another interpreted / bytecode environment....

  • Actually, its not that interesting. "Engineer implements random protocol with miscellaneous sdk." The fact that a programmer gets a toolset to do something shouldn't be news. Even if the toolset is used for something it wasn't intended, a well designed toolset should handle unforeseen scenarios with some dexterity anyway. A mildly interesting hack, sure. Headline worthy? No.
  • I think that one of the features of Silverlight was that it was possible to write a codec in c# and it was fast enough to process video, so that could be an interesting task for someone with enough time: Testing what performs better, decoding vp8 in flash or silverlight, without native support in neither platform

  • I'm sure someone has already reflected on this, but the thought hit my slow brain at first today:

      [li] A project like Firefox could never have succeeded in a web-landscape where license-payments were needed to implement a web browser.

      [li] Without Firefox, we would most likely still be stuck with IE.

  • []

    What does Alchemy include?

    The Alchemy tool chain includes a set of tools for building, testing and debugging C/C++ projects, example projects and documentation. It is based largely on the LLVM compiler project.

    What is LLVM?

    LLVM is a set of tools for creating and manipulating "low level virtual machine" bytecode. LLVM includes gcc/g++ based front-ends for converting arbitrary C and C++ code to LLVM bytecode. (

Today is the first day of the rest of your lossage.