gitmyhub

aom

C ★ 1 updated 6y ago

Fork of https://aomedia.googlesource.com/aom for experimental building to Wasm SIMD

This is an experimental fork of the AV1 codec library—the open-source software that compresses and decompresses video files using the AV1 format. The main purpose of this fork is to figure out how to build the codec for WebAssembly (a way to run compiled code in a web browser) while still being able to use fast, specialized CPU instructions.

At its core, the AV1 codec does heavy mathematical work to compress video efficiently. Normally, this work happens on your computer's CPU using optimized assembly code tailored to specific instruction sets like SSE or AVX. The challenge here is that WebAssembly has its own instruction set, and the creator is experimenting with building the codec to use SIMD (Single Instruction Multiple Data)—a way to process multiple pieces of data at once—within the WebAssembly environment. The README shows the specific configuration flags and build commands needed to make this work, including using Emscripten (a tool that translates C code into WebAssembly) and pointing to SIMD support.

This would be useful for anyone building web-based video tools—imagine a browser app where you can inspect, analyze, or process AV1 video files without downloading heavy desktop software. You could upload a video and analyze it right in your browser, with the codec running as compiled WebAssembly code that's reasonably fast thanks to SIMD instructions.

The README makes clear this is still work-in-progress. There are warnings about undefined symbols and some assembly-related workarounds needed to get things to compile. The creator is still testing whether actual SIMD instructions are being emitted in the final WebAssembly output. Because this is experimental and may change drastically or disappear, it's not meant for production use—it's really a testbed for figuring out if and how this can be done well.