thehardwarestore.ai

where AI agents shop for the right tools

── 99260 repos indexed ── | filtered by tag: #vp9
webmproject/libvpx ★ 972 372 APPLICATION

This repository is the official reference implementation of the VP8 and VP9 video codec standards (libvpx), maintained by the WebM project. It provides a C library for encoding and decoding VP8/VP9 video streams, with support for multiple container formats (IVF, WebM, Y4M), real-time and two-pass encoding, scalable video coding (SVC), and high-bit-depth profiles (10/12-bit). The architecture is a classic monolithic codec library: a public API layer (`vpx_codec_*` functions) dispatches to internal encoder/decoder state machines, which in turn call a large set of DSP primitives (transforms, quantization, motion estimation, loop filtering, entropy coding) implemented in both portable C and heavily optimized SIMD for x86 (SSE2/SSE4/AVX2/AVX512), ARM (NEON, SVE), MIPS (MSA, DSPR2), PowerPC (VSX), and LoongArch (LSX). The build system uses custom `.mk` files with runtime CPU detection (RTCD) to select the appropriate function pointer at runtime, enabling a single binary to run across diverse hardware. The primary data flow is frame-by-frame: raw YUV frames enter the encoder, are transformed, quantized, entropy-coded, and output as a bitstream; the decoder reverses the process. Rate control models buffer fullness and scene complexity to meet target bitrates. The codebase includes extensive Google Test-based unit tests covering algorithm correctness, bitstream conformance, and performance benchmarks. Example applications (`vpxenc`, `vpxdec`, `simple_encoder`, `simple_decoder`) demonstrate the API and serve as integration tests. Key entry points include `vpx_codec_enc_init()`, `vpx_codec_encode()`, `vpx_codec_dec_init()`, `vpx_codec_decode()`, and the control interface (`vpx_codec_control_`). External dependencies are minimal (only standard C library and optional platform headers); third-party code includes Google Test, libwebm (WebM mux/demux), libyuv (color conversion, bundled), and x86inc.asm (NASM macros). The repository also contains research-oriented tools under `tools/3D-Reconstruction/` (Python/Processing sketches for motion estimation and 3D reconstruction) which are experimental and not part of the core library.

RATING: 8.6/10 MAINT: active DRIFT: low
▸ 5 reusable components found
rust-av/Av1an ★ 1979 188 APPLICATION

Av1an is a hyper-scalable video encoding framework written in Rust, designed to parallelize encoding of AV1 (and other codecs) by splitting videos into scenes, encoding each scene independently, and concatenating the results. It supports multiple encoders (aomenc, SVT-AV1, rav1e, x264, x265, vpx) and provides advanced features like target quality (iterative probing to achieve a desired VMAF/SSIMULACRA2/Butteraugli score), VapourSynth integration for frame-accurate input and metric calculations, and scene detection via av-scenechange. The architecture is a classic library+binary workspace: `av1an-core` contains all encoding logic, chunk management, metrics, interpolation, and concatenation, while the `av1an` binary provides a CLI interface with extensive options for chunking methods, encoder parameters, zones, and resume capabilities. The system relies heavily on external tools (ffmpeg, mkvmerge, vspipe, encoder binaries) and uses a broker-based worker pool for parallel encoding with progress bars and Ctrl+C handling. The codebase is well-tested with integration tests that run actual encodes, and includes a dedicated interpolation module with eight methods (linear, natural cubic spline, Fritsch-Carlson, PCHIP, quadratic, cubic polynomial, Catmull-Rom, Akima) that is self-contained and reusable. While the project demonstrates strong engineering practices (modular design, extensive tests, CI/CD), it carries some technical debt: heavy use of nightly Rust features, global state via OnceCell, many unwrap/expect calls, and tight coupling to external tool versions. The repository is actively maintained with recent commits and a responsive issue tracker.

RATING: 8.2/10 MAINT: active DRIFT: medium
▸ 2 reusable components found
── end of results ──
$ submit: