tvlabs/edge264

Simple H.264 decoder

解决的问题

edge264 是一款 H.264/AVC 视频解码器,旨在为现有解决方案提供高性能、跨平台的替代方案。它通过采用现代软件工程实践(例如用基于编译器的向量扩展替代手工汇编)来减少代码体积并提高执行速度。

工作原理

该解码器作为一个跨平台库,处理 H.264/AVC 比特流。它采用模拟硬件解码器的前向流水线架构,代码结构为有向无环图(DAG),以优化 L1 缓存使用。它通过利用 Clang 和 GCC 向量扩展支持多种 CPU 架构(x86、ARM、WebAssembly),无需为每个平台单独实现汇编即可在不同硬件上保持高性能。

适用人群

本项目面向需要在其应用中集成轻量、高效、可移植的 H.264 解码器的开发者。特别适合在性能和二进制大小至关重要的环境中工作的人,例如通过 WebAssembly 的 Web 应用或需要跨平台一致性的系统。

亮点

  • 支持 macOS、Linux、Windows 和 WebAssembly 跨平台。
  • 使用编译器向量扩展而非手工汇编,以提高可维护性和可移植性。
  • 实现寄存器饱和 SIMD 和即时比特流解转义等高级技术,以最大化速度。
  • 包含自定义测试套件,并支持运行时 CPU 检测以调度最快的代码路径。
  • 通过标准 CMake 接口设计,易于集成到现有项目中。

相关

  • 项目
  • 项目
  • 项目
  • 项目