libde265 is a robust, LGPL-licensed C library implementing the H.265/HEVC video codec standard. It provides a full decoder (Main profile with range extensions) and an experimental encoder. The library is designed for integration into media software (e.g., libheif, GStreamer, VLC) and includes a clean C API (de265.h) for decoding and a similar API for encoding. Internally, it features a modular architecture with SIMD acceleration for x86 (SSE4.1, AVX2, AVX512) and ARM (NEON), a branchless CABAC decoder, multi-threading via WPP and tiles, and a function-pointer-based acceleration abstraction. Example applications include a command-line decoder (dec265), encoder (enc265), and a Qt-based visual debugger (sherlock265). The codebase is actively maintained with CI/CD, fuzzing, and conformance testing, though the encoder remains experimental with incomplete features. The library is production-grade for decoding and has been battle-tested by downstream projects.
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.
The GoPro CineForm SDK is a production-grade, wavelet-based video codec library (SMPTE VC-5 super-set) implementing the full CineForm compression pipeline: recursive spatial/temporal wavelet transforms, quantization with rate control, run-length + Huffman entropy coding, and tag/value bitstream framing. It exposes a layered architecture: a C core codec engine (Codec/), high-level EncoderSDK (with asynchronous encoder pools) and DecoderSDK (with thumbnail fast-paths and output format negotiation), plus supporting libraries for color space conversion and scaling (ConvertLib/), geometric mesh warping for GoPro lens correction (WarpLib/), and an Active Metadata engine handling 3D LUTs, CDL color corrections, and timecode. Both encoder and decoder C APIs (CFHD_OpenEncoder/CFHD_EncodeSample, CFHD_OpenDecoder/CFHD_DecodeSample) are the primary integration points, with TestCFHD and WaveletDemo as example tools. The codec is cross-platform (Windows, macOS, Linux) and built with CMake, with a GitHub Actions CI workflow. The codebase is mature and battle-tested in commercial video production, with heavy SIMD (MMX/SSE2) hand-optimization in the wavelet and color conversion paths. However, it carries significant technical debt: large monolithic translation units (e.g., ImageScaler.cpp, DemoasicFrames.cpp with thousands of lines), extensive #ifdef platform conditionals, large blocks of disabled #if 0 code, hardcoded debug paths, and dated SIMD (Pentium 3 MMX) that underutilizes modern AVX-512 hardware. Several latent bugs exist (e.g., a copy-paste index error in ScaleB64ARow), and the FSM/Huffman entropy tables (Common/table17.inc, table18.inc) are checked-in generated artifacts that may silently drift from their generator. Overall it is a strong, working codec with cleanly separable infrastructure components, but the surrounding code style shows its commercial origins and accumulated debt.