tvlabs/edge264

Simple H.264 decoder

해결하는 문제

edge264는 기존 솔루션에 대한 고성능 크로스 플랫폼 대안을 제공하도록 설계된 H.264/AVC 비디오 디코더입니다. 수작업 어셈블리를 컴파일러 기반 벡터 확장으로 대체하는 등 최신 소프트웨어 엔지니어링 관행을 활용하여 코드 크기를 줄이고 실행 속도를 향상시키는 데 중점을 둡니다.

작동 방식

이 디코더는 H.264/AVC 비트스트림을 처리하는 크로스 플랫폼 라이브러리로 작동합니다. 하드웨어 디코더를 모방한 순방향 파이프라인 아키텍처를 사용하며, 코드는 L1 캐시 사용을 최적화하기 위해 방향성 비순환 그래프(DAG)로 구조화됩니다. Clang 및 GCC 벡터 확장을 활용하여 여러 CPU 아키텍처(x86, ARM, WebAssembly)를 지원하므로 플랫폼별로 별도의 어셈블리 구현 없이도 다양한 하드웨어에서 높은 성능을 유지할 수 있습니다.

대상 사용자

이 프로젝트는 애플리케이션에 가볍고 효율적이며 이식 가능한 H.264 디코더가 필요한 개발자를 위한 것입니다. 특히 WebAssembly를 통한 웹 기반 애플리케이션이나 크로스 플랫폼 일관성이 필요한 시스템과 같이 성능과 작은 바이너리 크기가 중요한 환경에서 작업하는 사람들에게 적합합니다.

주요 특징

  • macOS, Linux, Windows 및 WebAssembly에 대한 크로스 플랫폼 지원.
  • 수작업 어셈블리 대신 컴파일러 벡터 확장을 사용하여 유지 관리성과 이식성을 향상.
  • 레지스터 포화 SIMD 및 즉석 비트스트림 언이스케이프와 같은 고급 기술을 구현하여 속도를 극대화.
  • 사용자 정의 테스트 스위트를 포함하고 런타임 CPU 감지를 지원하여 가장 빠른 코드 경로를 디스패치.
  • 표준 CMake 인터페이스를 통해 기존 프로젝트에 쉽게 통합되도록 설계.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트