Skip to main content
QUICK REVIEW

[논문 리뷰] OpenVVC: a Lightweight Software Decoder for the Versatile Video Coding Standard

Thomas Amestoy, Pierre-loup Cabarat|arXiv (Cornell University)|2022. 05. 24.
Video Coding and Compression Technologies인용 수 7
한 줄 요약

OpenVVC는 Versatile Video Coding(VVC) 표준을 위한 오픈소스이자 경량 소프트웨어 디코더로, 멀티코어 프로세서에서 데이터 수준 병렬 처리(SIMD)와 프레임 수준 병렬 처리를 조합하여 UHD 영상의 실시간 디코딩을 달성한다. Full HD에서 Random Access 모드에서 75MB 미만의 놀라운 낮은 메모리 사용량을 기록하며 높은 성능을 제공하여 임베디드 시스템과 라이브 디코딩 응용 분야에 적합하다.

ABSTRACT

In the recent years, users requirements for higher resolution, coupled with the apparition of new multimedia applications, have created the need for a new video coding standard. The new generation video coding standard, called Versatile Video Coding (VVC), has been developed by the Joint Video Experts Team, and offers coding capability beyond the previous generation High Efficiency Video Coding (HEVC) standard. Due to the incorporation of more advanced and complex tools, the decoding complexity of VVC standard compared to HEVC has approximately doubled. This complexity increase raises new research challenges to achieve live software decoding. In this context, we developed OpenVVC, an open-source software decoder that supports a broad range of VVC functionalities. This paper presents the OpenVVC software architecture, its parallelism strategy as well as a detailed set of experimental results. By combining extensive data level parallelism with frame level parallelism, OpenVVC achieves real-time decoding of UHD video content. Moreover, the memory required by OpenVVC is remarkably low, which presents a great advantage for its integration on embedded platforms with low memory resources. The code of the OpenVVC decoder is publicly available at https://github.com/OpenVVC/OpenVVC

연구 동기 및 목표

  • VVC 표준의 디코딩 복잡도가 HEVC 대비 두 배로 증가하여 임베디드 플랫폼에서 실시간 소프트웨어 디코딩을 제한하는 문제를 해결한다.
  • VTM과 VVdeC와 같은 기존 오픈소스 VVC 디코더가 높은 메모리 소비와 낮은 디코딩 프레임 레이트로 인해 한계를 겪는 문제를 극복한다.
  • 자원 제약 환경에 적합한 배포를 위해 일반 목적 프로세서에서 최소한의 메모리 프로필을 갖춘 효율적이고 실시간으로 UHD 영상 디코딩을 가능하게 한다.
  • All Intra, Random Access, Low-Delay P, Low-Delay B를 포함한 VVC 코딩 설정의 광범위한 범위를 지원하여 표준 인증 영상과의 호환성을 확보한다.
  • 다양한 플랫폼 간 유연성과 통합을 보장하며, 하드웨어 재구성 없이도 향후 표준 발전에도 대응 가능한 크로스플랫폼 소프트웨어 솔루션을 제공한다.

제안 방법

  • Linux, Windows, macOS, Android와의 호환성을 확보하기 위해 C로 구현된 모듈식 소프트웨어 아키텍처를 구축하고, 크로스플랫폼 라이브러리로 컴파일한다.
  • 변환, 인라인 필터링, 인트라 예측과 같은 계산이 집중적인 단계를 가속화하기 위해 Single Instruction, Multiple Data(SIMD) 최적화를 활용한다.
  • 멀티코어 x86 프로세서에서 여러 프레임을 동시에 처리함으로써 프레임 수준 병렬 처리를 적용하여 처리량을 향상시키고 실시간 디코딩을 달성한다.
  • 신중한 버퍼 관리와 전역 버퍼 차원의 감소를 통해 메모리 사용량을 최소화하여 All Intra 모드에서 FHD에 대해 25MB 미만, Random Access 모드에서 75MB 미만을 달성한다.
  • 표준 영상 픲레이어(예: FFplay, VLC, GPAC)와 통합하고, AI, RA, LDP, LDB를 포함한 JVET의 네 가지 주요 코딩 구성 설정을 모두 지원한다.
  • 지침 수준 프로파일링을 통해 버블넥을 규명하고, 특히 인라인 필터링과 인터 예측과 같은 고복잡도 디코딩 단계에 집중적으로 최적화한다.

실험 결과

연구 질문

  • RQ1어떻게 경량 소프트웨어 디코더가 최소한의 메모리 사용량으로 UHD VVC 콘텐츠의 실시간 디코딩을 달성할 수 있는가?
  • RQ2일반 목적 프로세서에서 높은 디코딩 성능을 달성하기 위해 데이터 수준 병렬 처리와 프레임 수준 병렬 처리 전략의 조합은 어떻게 이루어져야 하는가?
  • RQ3SIMD 최적화는 변환, 인라인 필터링, 인트라 예측와 같은 핵심 VVC 디코딩 단계에서 계산 부담을 얼마나 줄일 수 있는가?
  • RQ4All Intra 및 Random Access 구성에서 기존 VVC 디코더인 VTM과 VVdeC에 비해 OpenVVC의 메모리 프로필은 어떻게 비교되는가?
  • RQ5VVC의 주요 디코딩 복잡도 원천은 무엇이며, 소프트웨어 디코더에서 효과적으로 최적화하기 위해 어떻게 접근할 수 있는가?

주요 결과

  • 고성능 x86 프로세서에서 Full HD 콘텐츠에 대해 290 fps 이상의 디코딩 속도를 기록하고 UHD 콘텐츠에 대해 90 fps를 달성하여 UHD 영상의 실시간 재생을 가능하게 한다.
  • All Intra 구성에서 Full HD 콘텐츠에 대해 25MB 미만의 메모리 사용량을 기록하고 Random Access 구성에서 75MB 이하를 유지하여 VTM 및 VVdeC보다 현저히 낮은 수준이다.
  • All Intra 모드에서 인라인 필터링(알고리즘 기반 필터링(ALF) 및 디블러링 필터(DBF))이 총 디코딩 복잡도의 50% 이상을 차지하며, ALF는 QP에 따라 29~39%의 기여도를 보인다.
  • Random Access 모드에서 인터 예측 도구—MC 보간, DMVR, BDOF, PROF—가 총 디코딩 복잡도의 60% 이상을 차지하며, 그 중 MC 보간만으로도 24% 이상의 기여도를 기록한다.
  • CABAC 단계는 QP27에서는 총 복잡도의 13.2%를 차지하지만, QP37에서는 비트스트림 크기가 감소함에 따라 6%로 감소하여 비트스트림 밀도에 강하게 의존함을 보여준다.
  • All Intra 구성에서는 VTM 및 VVdeC를 초월한 디코딩 속도를 기록하고 Random Access 모드에서는 VVdeC와 유사한 성능을 보이며, 타일 수준 또는 웨이브프론트 병렬 처리를 통해 향후 성능 향상 가능성이 있다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.