1P by GN⁺ | ★ favorite | 댓글 1개
  • dav2d는 VideoLAN 커뮤니티가 개발하는 AV2용 고속 디코더로, 앱·브라우저·운영체제에서 바로 쓸 수 있는 구현을 목표로 함
  • AV2는 AV1의 후속 로열티 없는 코덱으로 약 25% 효율 개선이 관측되지만, 디코딩 복잡도는 AV1의 약 5배에 이름
  • dav1d가 AV1 보급 초기에 고속 소프트웨어 디코더 역할을 했듯, dav2d도 프로덕션 품질 디코더를 사양 초기부터 준비 중
  • 현재 트리는 AVM v15 디코더를 기능적으로 완성했고 8비트·10비트를 지원하며, 정확성·적합성·최적화에 집중하고 있음
  • x86 AVX2, ARM NEON, 초기 RISC-V 작업과 checkasm 검증을 통해 아키텍처별 최적화를 빠르고 안전하게 진행함

dav2d의 목적과 배경

  • dav2d는 VideoLAN 커뮤니티 구성원들이 개발하는 새로운 AV2 코덱용 고속 디코더임
  • 저장소는 몇 주 전 공개됐고, AV2가 첫 공식 사양 릴리스를 낸 시점에 맞춰 프로젝트의 목적과 상태가 공개됨
  • dav2d는 AV1 디코더인 dav1d의 연장선에 있음
  • 목표는 실제 애플리케이션, 미디어 플레이어, 브라우저, 테스트 도구, 운영체제에서 쓸 수 있는 작고 빠르며 이식 가능하고 정확한 디코더를 제공하는 것임
  • “코덱은 모두가 디코딩할 수 있기 전까지는 실제로 존재하지 않는다”는 관점에서, 사양뿐 아니라 빌드·테스트·벤치마크·통합 가능한 구현이 중요해짐

AV2와 디코딩 난이도

  • AV2Alliance for Open Media의 최신 로열티 없는 비디오 코덱이며 AV1의 후속임
  • AV2 사양은 공개되어 있음
  • AV1은 2018년에 확정됐고, 브라우저, 모바일 기기, 운영체제, TV, 스트리밍 서비스, 비디오 애플리케이션에 널리 배포된 비디오 코덱이 됨
  • AV2는 예측, 변환, 엔트로피 코딩, 필터링, 크로마 처리 전반에 새 코딩 도구를 도입해 압축 효율 개선을 이어감
  • 테스트 조건에 따라 차이는 있지만 AV1 대비 약 25% 개선이 흔히 관측되며, 일부 평가에서는 더 큰 개선도 나옴
  • AV2 디코딩은 AV1보다 대략 5배 복잡해, 현재 하드웨어에서 소프트웨어만으로 실시간 디코딩하려면 아키텍처별 최적화가 필요함
  • 이런 복잡성 때문에 dav2d 개발은 사양 안정화를 기다리지 않고 일찍 시작됨

dav1d에서 dav2d로 이어진 흐름

  • dav2d의 출발점은 dav1d 초기 경험에 있음
  • AV1 확정 당시 전용 하드웨어 디코딩이 충분히 빠르게, 충분히 많은 기기에 보급되지 않을 가능성이 커 고속 소프트웨어 디코더가 필요했음
  • 당시 AOM 커뮤니티 일부는 하드웨어 구현과 참조 디코더로 충분하다고 봤지만, 브라우저·미디어 플레이어·운영체제·모바일 기기는 전용 하드웨어 보급 전부터 프로덕션 품질 디코더가 필요했음
  • 이후 AOM 자체가 초기 개발 일부를 지원했고, Alliance 구성원 일부도 작업에 합류하면서 dav1d가 만들어짐
  • 고속 소프트웨어 디코더의 필요성은 예상보다 컸고, dav1d는 현재 가장 널리 배포된 AV1 소프트웨어 디코더가 됨
  • dav1d는 VLC, FFmpeg, mpv, Firefox, Chrome, Safari, Android, Windows, Linux 및 여러 애플리케이션과 플랫폼에서 사용됨
  • dav1d는 AV1 배포, 테스트, 최적화를 하는 많은 개발자에게 참조 AV1 디코더 구현으로도 쓰임
  • dav1d의 이력은 Introducing dav1d, the road to the first release, First release, dav1d 1.2, 1.5 “Sonic”에 정리돼 있음
  • AV2에서는 같은 역할을 더 이른 시점부터 준비하고 있음

현재 구현 상태

  • 현재 dav2d 트리는 AVM v15 디코더를 기능적으로 완성했으며 8비트와 10비트 디코딩을 모두 지원함
  • 주요 코덱 구성요소 대부분이 구현됐고 최적화 단계로 들어감
    • 비트스트림 파싱
    • 프레임 및 시퀀스 헤더
    • 엔트로피 디코딩과 CDF 처리
    • 인트라 예측
    • 인터 예측과 참조 모션 벡터
    • 변환
    • CCTX와 CfL
    • 디블로킹
    • CDEF
    • Wiener 필터링
    • 필름 그레인 합성
  • AV2 생태계는 아직 초기 단계지만, dav2d는 이미 동작하는 디코더이며 빈 발표용 저장소 수준을 넘어섬
  • 현재 작업의 상당 부분은 정확성, 적합성, 최적화, 플랫폼 지원에 집중돼 있음
  • dav2d가 빠르게 진전된 배경에는 dav1d에서 축적된 스레딩, SIMD 구성, 테스트, 이식성, API 설계 경험이 있음
  • AV2에는 상당한 신규 디코더 코드가 필요하지만, dav1d 개발 과정에서 얻은 경험 상당수가 dav2d에 직접 적용됨

성능 최적화와 검증

  • x86에서는 여러 역변환 크기에 대한 AVX2 코드가 들어갔고, CCTX, deblock, intra prediction, CfL 관련 경로 작업도 진행 중임
  • ARM에서는 AArch64 NEON 작업이 엔트로피 디코딩, SAD, 인트라 예측, 팔레트 예측, DC 예측기, smooth 예측기, 모션 관련 함수에 적용되고 있음
  • arm32 작업도 일부 시작됨
  • RISC-V 작업은 초기 단계이며, 기존 인트라 예측과 모션 보상 어셈블리를 다시 활성화하고 조정하는 방향으로 진행 중임
  • 최적화 흐름은 dav1d와 유사함
    • 먼저 깔끔한 C 구현을 만듦
    • 검증 인프라를 구축함
    • 중요한 핫패스에 아키텍처별 최적화 코드를 추가함
  • dav1d 개발 중 만들어진 checkasm은 최적화 구현을 C 구현과 비교해 검증하고 벤치마크하는 프레임워크임
  • dav2d는 이 인프라를 첫날부터 활용해 dav1d의 비슷한 단계보다 더 빠르게 진전됨
  • 현재 트리는 역변환, 모션 보상, 필름 그레인, CfL, 참조 모션 벡터 코드에 대한 checkasm 커버리지를 포함함

오픈소스 개발 방식과 다음 단계

  • dav2d는 dav1d와 마찬가지로 오픈소스 프로젝트로 개발됨
  • 디코더는 dav1d와 같은 BSD 스타일 라이선스로 배포되어 오픈소스 및 독점 애플리케이션 모두에 통합하기 쉬움
  • VideoLAN 프로젝트 대부분처럼 개발은 첫날부터 공개적으로 진행됨
  • 공개 구현은 상호운용성, 사양의 독립적 검증, 더 쉬운 실험, 생태계를 위한 공통 기반을 제공함
  • 앞으로도 AV2 사양 추적, 적합성 개선, 테스트 커버리지 확장, x86과 ARM 추가 최적화, RISC-V 작업이 필요함
  • 높은 비트 심도 성능 개선, 스레딩 개선, 메모리 사용량 감소, 향후 릴리스 준비도 남아 있음
  • dav1d가 하드웨어 지원이 보편화되기 전 AV1을 실용적으로 만든 것처럼, dav2d도 AV2에서 같은 역할을 목표로 함

댓글과 토론

Hacker News 의견들
  • Too Many Requests
    보관본은 여기서 볼 수 있음:
    https://web.archive.org/web/20260531130034/https://jbkempf.com/blog/2026/dav2d/
    https://archive.md/ln5UE

    • HN에서 트래픽이 너무 많이 간 듯함
      Too Many Requests가 뜨고, 파일 소유자가 단기 대역폭 한도를 초과했다는 메시지와 함께 하루 160000회 작업 제한을 넘는다고 나옴
  • AV1 소프트웨어 디코딩도 이미 매우 무거운데, AV2 디코딩 벤치마크가 다음으로 정말 흥미롭거나 무서운 볼거리가 될 것 같음

    • Intel의 Arc dGPU는 전용 AV1 인코딩·디코딩용으로 꽤 매력적이었고, 특히 일부 카드의 작은 폼팩터가 좋았음
      OBS 녹화와 인코딩 작업용 PC에 보조 카드로 꽂아 쓰는 것도 가능했음
      AV2를 지원하는 차세대 제품군에서도 비슷한 선택지가 나오면 좋겠고, 요즘 영상 제작과 스트리밍이 워낙 대중적이라 더 필요해 보임
    • 널리 보급되고 저렴한 하드웨어가 2018년 코덱을 따라잡기 전까지는, AV 계열 신형 코덱은 틈새 이상에 머물 것 같음
    • 이건 지켜보는 재미가 있을 듯함
  • 코덱 명세는 현장에서 개발된 디코더가 최소 하나는 있어야 끝난 것으로 볼 수 있음. 즉 참조 구현 + 1개 구현이 필요하고, 현장 구현이 사실상의 명세가 되는 경우가 많음
    90년대에 어릴 때 MPEG1 명세를 읽으며 복잡한 시스템을 정의하는 법에 눈을 떴음
    미디어 코딩 표준에서는 대부분의 시간을 인코딩된 바이트를 어떻게 해석할지에 쓰는데, 그게 천재적이라고 느꼈음
    디코딩은 서술적으로 정의하면 되고, 인코딩은 규정적으로 묶을 필요가 없음
    창의성은 인코딩 쪽에서 발휘할 수 있지만, 인코딩된 바이트를 함께 이해할 방법은 반드시 제공해야 함

  • HN 허그 오브 데스가 난 듯함

  • 크기를 25% 줄이는 것이 AV1 하드웨어 디코더를 가진 모든 기기를 사실상 구식으로 만들 만큼 가치 있는지는 잘 모르겠음. AV2 디코딩은 그 기기들에 버거울 테니까

    • 현대 영상 서비스는 여러 코덱, 비트레이트, 화면 크기로 각각 인코딩해 두고, 클라이언트 기기가 디코딩할 수 있는 가장 적절한 형식을 내려줌
      YouTube에는 수백 가지 형식 변형이 있음:
      https://gist.github.com/MartinEesmaa/2f4b261cb90a47e9c41ba115a011a4aa
      AV1 하드웨어 디코딩 기기는 드물긴 해도 오래 구식이 되지 않을 것임
    • 조회수가 거의 170억 회인 영상을 호스팅한다면 가능한 한 적은 비트로 스트리밍하고 싶어질 것임:
      https://www.youtube.com/watch?v=XqZsoesa55w
      그 추가 25%가 가치 있어짐
      아무것도 구식이 되지는 않음. AV1은 오래 남을 것이고, YouTube는 여전히 오래된 기기를 지원하려고 H.264 인코딩도 제공함
  • HN 허그 오브 데스가 온 것 같고, 429 오류가 뜸

  • Dave2D 이야기인 줄 알았음

    • dav1d에서 이름을 따온 것 같지만, 그래도 꽤 불운한 이름 충돌로 보임
  • 블로그가 HN 허그 오브 데스에 당한 것 같음
    Actioning this file would cause "jbkempf.com//blog/2026/dav2d/" to exceed the per-day file actions limit of 160000 actions, try again later가 뜨는데, 어디 복사본 없을까?

  • AV1 대비 약 25% 개선이라는 말과, AV2 디코딩이 AV1보다 대략 5배 더 복잡하다는 말이 각각 무슨 뜻인지, 서로 비교 가능한 것인지 잘 모르겠음

    • 압축이 25% 더 좋다는 뜻으로 이해했음
      AV1에서 10Mbps로 얻는 품질을 AV2에서는 8Mbps로 얻을 수 있다는 의미임
      다만 그 25% 이득을 위해 계산 능력이 5배 더 필요함
    • AV2는 디코딩 복잡도가 5배 늘어나는 대가로 대역폭 25% 를 절약함
    • 파일은 더 작지만 디코딩은 더 어려움
  • 관련 글: The AV2 Video Standard Has Released (Final v1.0 Specification)
    https://news.ycombinator.com/item?id=48340910