Michael Bebenita, a Research Engineer at Mozilla, recently posted a fascinating article on the development of AV1, a next-generation video codec. If you’re interested in how new media formats are created, I highly recommend reading the full article.
What caught my eye is the discussion of porting the AV1 bitstream analyzer to the Web:
The input to the analyzer is usually small (an encoded bitstream), but the output is very large. […] The ideal solution is to run the analyzer directly in the browser and thus eliminate the need to download analyzer output.
That’s where WebAssembly comes in. WebAssembly is a new, low-level format for programs on the Web. It’s an open standard being developed by Mozilla, Microsoft, Google, and Apple, so it will eventually work in all browsers. Crucially, Bebenita explains, “WebAssembly has support for 64 bit math, and once that’s ready [the AV1 Bitstream Analyzer will] be switching over to WebAssembly.”
Fortunately, Emscripten already has experimental support for compiling to WebAssembly, so the AV1 workflow will remain the same: develop a single codebase in C and use Emscripten to compile that to the Web for testing. In this way, WebAssembly will play an integral role in the development of next generation video codecs.
About Dan Callahan
Engineer with Mozilla Developer Relations, former Mozilla Persona developer.