Libvpx

libvpx
원저자On2 테크놀로지스 / 구글
개발자AOMedia
발표일2010년 5월 19일(16년 전)(2010-05-19)
안정화 버전
1.17.0 위키데이터에서 편집하기 / 2026년 8월 21일(2개월 전)(2026년 8월 21일)
저장소
프로그래밍 언어C, 어셈블리어
운영 체제유닉스 계열 (리눅스, FreeBSD, 맥 OS X 포함), 윈도우
종류영상 인코더 및 디코더
라이선스뉴 BSD 라이선스
웹사이트www.webmproject.org/tools/

libvpx는 구글과 AOMedia가 제공하는 자유 소프트웨어 영상 코덱 라이브러리이다. 이 라이브러리는 VP8 및 VP9 영상 코딩 형식을 위한 참조 소프트웨어 구현 역할을 하며, AV1의 경우 하위 호환성을 제거한 libaom이라는 특수 포크가 사용된다.

자유 소프트웨어로서 개정된 BSD 라이선스 조항에 따라 소스 코드 형태로도 공개된다. libvpx는 그 기능을 기반으로 구축된 명령줄 도구인 vpxenc/aomenc 및 vpxdec/aomdec와 함께 배포된다.

역사

libvpx는 90년대 중반에 첫 소프트웨어 코덱을 판매했던 영상 코덱 기업 On2 테크놀로지스에서 시작되었다.

libvpx는 On2 테크놀로지스를 약 1억 2천만 달러 이상의 추정 금액으로 인수한 후, 2010년 5월 19일 구글에 의해 자유 소프트웨어로 공개되었다.

2010년 6월, 구글은 기존 라이선스가 실제로 오픈 소스인지에 대한 논란이 있은 후 VP8 코덱 소프트웨어 라이선스를 3-조항 BSD 라이선스로 개정하였다.

구글은 libvpx의 초기 릴리스 당시 정돈되지 않은 코드와 열악한 문서화, 그리고 과정에 커뮤니티를 참여시키지 않은 채 비공개로 개발한 점에 대해 비판받았다. 개발 과정은 VP9 릴리스 이후 공개되었다.

VP9에 대한 예비 지원은 2013년 6월 17일 libvpx에 추가되었다. 이는 비손실 압축을 지원하는 12월 2일 버전 1.3의 릴리스와 함께 공식적으로 도입되었다.

2015년 4월, 구글은 libvpx 라이브러리에 대한 중요한 업데이트를 릴리스했으며, 1.4.0 버전에서는 10비트 및 12비트 비트 깊이, 4:2:2 및 4:4:4 크로마 서브샘플링(VP9 프로파일 1, 2, 3), 그리고 VP9 멀티스레드 디코딩/인코딩에 대한 지원을 추가하였다.

1.5 버전(2015년 11월), 1.6 버전(2016년 7월), 1.7 버전 (2018년 1월), 1.8 버전 (2019년 2월)은 인코딩과 디코딩 모두에서 상당한 속도 향상을 가져왔다.

기능

libvpx는 비트레이트 또는 품질 목표 설정과 함께 단일 패스 및 이중 패스 인코딩 모드를 구현한다.

libvpx는 인코딩이 디코딩보다 훨씬 오래 걸리는 비대칭 코덱을 제공하며, 디코딩 복잡성과 독립적으로 인코딩 비용을 구성할 수 있는 옵션을 제공한다. 최대 25프레임의 룩어헤드(Lookahead)를 구성할 수 있는데, 이는 압축 효율을 향상시키지만 지연 시간을 발생시켜 실시간 성능을 저하시킨다.

libvpx는 인코딩 속도를 재생 속도(실시간)와 거의 동일하게 유지하면서 지연 없이 품질을 최대한 높게 유지하기 위해 가능한 최대 CPU 자원을 사용하는 모드를 포함하고 있다.

libvpx는 Rec. 601, Rec. 709, Rec. 2020, SMPTE-170, SMPTE-240, 그리고 SRGB 색 공간을 지원한다.

성능

고해상도(예: UHD)에서 VOD 애플리케이션을 위해 libvpx로 인코딩된 VP9는 X264로 인코딩된 H.264보다 상당한 개선을 제공한다. X265로 인코딩된 HEVC는 더 나은 품질을 달성할 수 있지만, VP9의 로열티 프리 특성은 지원되는 플랫폼에서 고해상도 영상을 제공하기 위한 매력적인 선택지가 된다.

디코딩 성능은 코드 기반을 유지 관리하기 쉽게 유지하기 위해 부분적으로 다소 느린 편이다. libvpx의 초기 릴리스와 비교했을 때, FFmpeg 프로젝트의 ffvp8은 성능을 22%에서 66% 이상 향상시켰다. 2016년 기준, 대체 VP9 디코더들은 여전히 25~50% 더 빠른 디코딩 성능을 달성했다.

기술

libvpx는 C와 어셈블리어로 작성되었다. 2015년 기준 완전한 SIMD 커버리지를 갖추지는 못했다.

활용

libvpx는 유튜브, 넷플릭스, 프라임 비디오, JW 플레이어, 브라이트코브, 텔레스트림을 포함한 주요 OTT 서비스에서 사용된다. 이 중 넷플릭스는 2017년 기준 미국 전체 인터넷 트래픽의 거의 3분의 1을 차지할 정도로 큰 비중을 차지한다.

VP8과 VP9 디코딩을 위한 대안은 상용, 클로즈드 소스, 그리고 오픈 소스 모두 존재한다. 인코딩의 경우 2016년 기준 상용 대안과 xvp8을 포함한 몇 가지 미완성 실험적 소프트웨어만이 존재한다.

각주

  1. ↑ “CHANGELOG - webm/libvpx - Git at Google”. 《chromium.googlesource.com》. 2016년 10월 26일에 원본 문서에서 보존된 문서. 2019년 3월 14일에 확인함.
  2. 1 2 “Introducing WebM, an open web media project”. 《blog.webmproject.org》. 2010년 5월 19일. 2019년 3월 21일에 원본 문서에서 보존된 문서. 2019년 3월 14일에 확인함.
  3. ↑ “refs/tags/v1.17.0 - webm/libvpx - Git at Google”. 2026년 8월 26일에 확인함.
  4. ↑ “Google Closes On2 Technologies Acquisition”. 《investor.google.com》. 2010년 6월 5일에 원본 문서에서 보존된 문서. 2017년 7월 24일에 확인함.
  5. ↑ “Changes to the WebM Open Source License”. 2010년 10월 4일에 원본 문서에서 보존된 문서. 2010년 6월 4일에 확인함.
  6. ↑ “Software License”. 2010년 6월 11일에 원본 문서에서 보존된 문서. 2010년 6월 4일에 확인함.
  7. ↑ Koleszar, John (2010년 6월 4일). “LICENSE: update with latest text”. 《WebM VCS repository》. 2012년 6월 29일에 원본 문서에서 보존된 문서. 2020년 10월 1일에 확인함.
  8. ↑ Kerner, Sean Michael (2010년 5월 25일), 《Is VP8 open source?》, InternetNews, 2010년 5월 28일에 원본 문서에서 보존된 문서, 2016년 8월 11일에 확인함
  9. ↑ Metz, Cade (2010년 5월 24일), 《Google open codec 'not open,' says OSI man》, The Register, 2017년 7월 7일에 원본 문서에서 보존된 문서, 2017년 8월 10일에 확인함
  10. ↑ Phipps, Simon (2010년 5월 24일), 《WebM: Missing The Assurances Open Source Needs?》, ComputerworldUK[깨진 링크]
  11. 1 2 Fiona Glaser, July 23, 2010: Announcing the world's fastest VP8 decoder: ffvp8
  12. ↑ Michael Larabel (Phoronix), 28. November 2013: Libvpx 1.3.0 "Forest" Supports VP9. New Enhancements
  13. ↑ Michael Larabel (2015년 4월 3일). “libvpx 1.4.0 Brings Faster VP9 Encode/Decode”. Phoronix. 2015년 4월 7일에 원본 문서에서 보존된 문서. 2015년 4월 3일에 확인함.
  14. ↑ “V1.7.0 - webm/Libvpx - Git at Google”. 2020년 6월 29일에 원본 문서에서 보존된 문서. 2020년 6월 29일에 확인함.
  15. ↑ “Refs/Tags/V1.8.0 - webm/Libvpx - Git at Google”. 2020년 6월 30일에 원본 문서에서 보존된 문서. 2020년 6월 29일에 확인함.
  16. 1 2 Cock, Jan De; Mavlankar, Aditya; Moorthy, Anush; Aaron, Anne (2016년 9월 27일). Tescher, Andrew G (편집). “A large-scale video codec comparison of x264, x265 and libvpx for practical VOD applications”. 《SPIE Digital Library》. Applications of Digital Image Processing XXXIX (International Society for Optics and Photonics) 9971: 997116. Bibcode:2016SPIE.9971E..16D. doi:10.1117/12.2238495. S2CID 63431190. 2017년 12월 22일에 원본 문서에서 보존된 문서. 2017년 12월 20일에 확인함.
  17. 1 2 Ronald Bultje (FFmpeg): VP9 encoding/decoding performance vs. H.264/HEVC 보관됨 6월 7, 2016 - 웨이백 머신, presentation from the 비디오랜 Dev Days 2015 in Paris, France
  18. ↑ Jan Ozer, Juni 2016: VP9 Finally Comes of Age, But Is it Right for Everyone? 보관됨 8월 11, 2016 - 웨이백 머신
  19. ↑ “The world's fastest VP9 decoder: ffvp9 - Ronald S. Bultje”. 《blogs.gnome.org》. 2014년 2월 22일. 2016년 10월 26일에 원본 문서에서 보존된 문서. 2016년 8월 11일에 확인함.
  20. ↑ Jan Ozer (May 24, 2016): Netflix Discusses VP9-Related Development Efforts 보관됨 10월 1, 2020 - 웨이백 머신
  21. ↑ Spangler, Todd (2016년 6월 22일). “Netflix Chews Up Less Bandwidth, as Amazon Video Streaming Surges” (미국 영어). 《Variety》. 2017년 12월 22일에 원본 문서에서 보존된 문서. 2017년 12월 20일에 확인함.

외부 링크