dav2d: AV2 비디오 코덱을 위한 격차 메우기
새로운 비디오 코덱 사양의 발표는 중요한 이정표이지만, VideoLAN의 Jean-Baptiste Kempf가 말했듯이 “모두가 디코딩할 수 있기 전까지 코덱은 실제로 존재하지 않는다.” Alliance for Open Media(AOM)가 공식적으로 AV2 사양을 발표했지만, 이론적인 표준을 실용적인 도구로 전환하려면 프로덕션 수준의 디코더가 필요합니다.
이 분야에 등장한 것은 VideoLAN 커뮤니티가 개발한 빠르고 휴대 가능하며 오픈 소스 디코더인 dav2d입니다. 매우 성공적인 dav1d(AV1 디코더)의 후속으로 설계된 dav2d는 전용 하드웨어 디코더가 보편화되기 훨씬 전에 기존 하드웨어에서 AV2를 실현할 수 있는 필수 소프트웨어 인프라를 제공하는 것을 목표로 합니다.
AV2의 도전 과제
AV2는 AV1의 최신 로열티 프리 후속 버전으로, 예측, 변환, 엔트로피 코딩 및 색도 처리 전반에 걸친 고급 코딩 도구를 도입합니다. 주요 목표는 압축 효율성을 높이는 것으로, 많은 테스트 조건에서 AV1 대비 약 25%의 향상이 보고되었습니다.
하지만 이러한 효율성은 상당한 계산 비용을 수반합니다. AV2 디코딩은 AV1 디코딩보다 대략 다섯 배 더 복잡합니다. 복잡성의 급증은 현재 세대 하드웨어에서 실행되는 소프트웨어가 공격적이고 아키텍처 특화된 최적화 없이는 실시간으로 AV2를 디코딩하기 어려워짐을 의미합니다. 이 성능 격차가 dav2d를 조기에 개발하게 만든 주요 동기이며, 사양이 완전히 안정화될 때까지 디코더 개발을 미루면 코덱을 배포할 수 있는 생태계에 중요한 공백이 생겼을 것입니다.
dav1d에서 얻은 교훈
dav2d 전략은 dav1d의 역사에서 크게 영감을 받았습니다. AV1이 처음 완성될 때, AOM 커뮤니티 내에서는 하드웨어 구현과 레퍼런스 디코더만으로 충분할지에 대한 논쟁이 있었습니다. VideoLAN은 브라우저, 미디어 플레이어 및 모바일 기기가 채택을 지연시키지 않기 위해 즉시 프로덕션 품질의 소프트웨어 디코더가 필요하다고 주장했습니다.
역사는 그들이 옳았음을 증명했습니다. dav1d는 가장 널리 배포된 AV1 소프트웨어 디코더가 되었으며, VLC, FFmpeg, Chrome, Firefox, Safari, Android 및 Windows에 통합되었습니다. dav2d를 조기에 시작함으로써 VideoLAN은 AV2에도 동일한 논리를 적용하고 있습니다: 개발자들이 즉시 코덱을 구축, 벤치마크 및 애플리케이션에 통합할 수 있는 도구를 제공하는 것입니다.
기술 구현 및 현재 상태
새로 시작하기보다는 dav2d는 dav1d의 아키텍처 기반을 활용합니다. 스레딩, SIMD 조직 및 API 설계와 관련된 많은 경험이 새로운 프로젝트에 직접 이전되었습니다.
현재 dav2d는 8비트와 10비트 디코딩을 모두 지원하는 기능적인 AVM v15 디코더를 갖추고 있습니다. 이미 구현된 주요 구성 요소는 다음과 같습니다:
- 비트스트림 파싱 및 헤더 처리
- 엔트로피 디코딩 및 CDF 처리
- 인트라 및 인터 예측
- 변환 및 Wiener 필터링
- 디블로킹, CDEF, 그리고 필름 그레인 합성
성능 최적화
복잡성 5배 증가에 대응하기 위해 팀은 아키텍처 특화 어셈블리 코드에 집중하고 있습니다:
- x86: 역변환, CCTX 및 디블로킹을 위한 AVX2 코드 구현.
- ARM: 엔트로피 디코딩, SAD 및 움직임 관련 함수에 대한 AArch64 NEON 최적화.
- RISC-V: 기존 인트라 예측 및 움직임 보정 어셈블리를 적용하기 위한 초기 작업.
dav2d가 dav1d 초기 단계에 비해 가장 큰 장점 중 하나는 checkasm을 사용하는 것입니다. 이 프레임워크를 통해 팀은 최적화된 어셈블리 구현을 실시간으로 C 대응 코드와 비교 검증 및 벤치마킹할 수 있어 최적화 과정을 더 빠르고 안전하게 만들 수 있습니다.
커뮤니티 관점 및 핵심 질문
dav2d 발표는 개발자와 애호가들 사이에서 코덱 복잡성 증가에 따른 트레이드오프에 대한 기술적 논쟁을 촉발했습니다.
“복잡성 vs. 이득” 트레이드오프
일부 관찰자들은 파일 크기를 25% 줄이는 것이 오래된 하드웨어를 구식으로 만들 비용을 정당화하는지 의문을 제기했습니다. 한 댓글자는 AV1 소프트웨어 디코딩이 이미 부담스러웠다면, AV2 복잡성의 5배 증가는 오래된 기기에서 성능 벤치마크에 “충격적”일 수 있다고 지적했습니다.
인간 설계 코덱의 미래
전통적인 인간 설계 코덱이 한계에 다다르고 있는지에 대한 더 넓은 논의도 있습니다. 일부는 디코딩이 하드웨어가 감당하기에 너무 비싸진다면, 업계가 결국 “완전 신경망” 디코딩으로 전환할 수 있다고 제안합니다—잠재 변수를 전송하고 텐서 코어에서 디코딩 과정을 수행하는 방식—하지만 이는 현재 대부분의 하드웨어에겐 아직 먼 미래의 전망입니다.
특허 및 라이선스 문제
AOM의 로열티 프리 목표에도 불구하고, 일부 사용자는 AV1을 괴롭힌 특허 풀 문제에 대해 우려를 표명하며, AV2가 Sisvel이나 Dolby/Snap과 같은 기관으로부터 유사한 법적 도전에 어떻게 대응할지 의문을 제기하고 있습니다.
결론
VideoLAN은 dav2d를 BSD 스타일 라이선스로 공개하고 오픈 방식으로 개발함으로써 AV2 생태계가 투명하고 상호 운용 가능한 기반을 갖추도록 보장하고 있습니다. 완전한 최적화까지의 길은 멀지만, 고성능 소프트웨어 디코더의 존재는 로열티 프리 코덱이 현대 컴퓨팅 장치의 다양한 환경에 실제로 배포될 수 있도록 하는 유일한 방법입니다.
Sources
- HNDav2d