Bmf S01 Libvpx Today
This write-up describes how BMF S01 integrates libvpx as both an encoder and decoder within its graph-based processing model. BMF pipelines are constructed as directed acyclic graphs (DAGs) of modules . Each module performs a specific task: decoding, filtering, encoding, muxing, etc.
Example BMF encoder configuration:
git clone https://chromium.googlesource.com/webm/libvpx cd libvpx ./configure --enable-shared --disable-static --enable-vp9 --enable-vp8 make -j$(nproc) sudo make install BMF’s CMakeLists.txt detects libvpx using pkg-config : bmf s01 libvpx
"name": "libvpx_encoder", "params": "codec": "vp9", "bitrate": 2000000, "speed": 2, "deadline": "good_quality", "width": 1920, "height": 1080, "framerate": 30 This write-up describes how BMF S01 integrates libvpx
| BMF Parameter | libvpx Control | Description | |---------------|----------------|-------------| | bitrate | VP8E_SET_BITRATE | Target bitrate (bps) | | speed | VP8E_SET_CPUUSED | Speed/quality trade-off (-16..16) | | deadline | vpx_codec_encode() deadline arg | REALTIME , GOOD_QUALITY , BEST_QUALITY | | min_qp , max_qp | VP8E_SET_* | Quantizer limits | | auto_alt_ref | VP8E_SET_ENABLE_AUTO_ALT_REF | VP9 only | "params": "codec": "vp9"
"name": "libvpx_decoder", "params": "codec": "vp9", "threads": 4, "error_concealment": true