VP9(비디오 코덱)
1. 개요
2012년 구글이 개발한 오픈소스 비디오 코덱으로, VP8을 계승하였다.
2. 상세
해당 문서와 영문 위키백과를 보면 알겠지만, 원래 On2 테크롤러지가 독자적으로 개발하던 TrueMotion 시리즈 코덱을 VP8 때 회사 통째로 인수해서 무료화한 후, 아예 H.265급 오픈 소스 코덱을 목표로 개발한 것이 VP9이다.
MKV, WebM 컨테이너에서 지원되는 코덱이다.
3. 장점
- 64x64 매크로 블럭을 지원하여 압축률이 높아졌다.
- 모션 예상 알고리즘의 개선을 통해 CG 영상(게임 영상, 애니메이션 등)의 화질 개선이 큰 편이다.
- H.265처럼 동일한 대역폭에서 H.264 대비 PSNR 기준으로 35%의 화질 향상과 동일 해상도에서 H.264 대비 50%의 비트레이트를 절약할 수 있다.
- 오픈 소스이며, 특허 관련 로열티가 없는 무료 코덱이다. 덕분에 VP9 코덱은 여러 웹 사이트와 리듬 게임 등에서 가장 선호하는 코덱이기도 하다.
- 디코딩에 필요한 연산량은 H.265보다 적다. 데스크탑용 CPU 기준으로 인텔 샌디브릿지 기반의 셀러론(G530~G555) 성능 정도면 유튜브에 업로드된 일반적인 사양의 1080p 60fps 동영상도 그럭저럭 재생하며, 모바일의 경우 LG G Pad 10.1(2014년형) 기준 VP9 720p 30fps는 잘 재생하지만 H.265 720p 30fps는 제대로 재생하지 못한다.
4. 단점
- H.265와 화질이 비슷하거나 소폭 떨어진다. 반면에 레퍼런스 인코더 기준으로 VP9 코덱의 인코딩 시간은 H.265보다 훨씬 오래 걸린다. 한국방송공학회에 제출된 논문에 따르면, CBR일 때 H.265와 VP9을 비교하면 1dB의 노이즈율 차이가 난다고 한다. 이를 선형화하면 12%의 화질 차이가 있음을 알 수 있다.
- 디코딩 연산 요구량이 H.265보다 상대적으로 낮지만 H.264보다 여전히 무거운 편인건 마찬가지인 데다가, 그래픽 카드와 브라우저가 함께 하드웨어 가속을 지원하지 않으면 소프트웨어 디코딩을 해야 하므로 저사양에서 문제를 일으키는 것. 그래픽 카드가 가속을 지원하면 재생이 훨씬 가벼워지지만 그러지 않는 컴퓨터에서는 여전히 문제가 되고 있다.
- 이 문제는 브라우저나 코덱 자체의 결점이라기보단 아직 VP9이 최신 코덱이다 보니 겪게 되는 불편함이라[1] , 앞으로 VP9 지원 환경이 차차 정착되면 자연스레 해결될 것이다. 구글의 유튜브 이외에도 넷플릭스, 아마존닷컴 등의 웹 사이트들이 VP9 코덱을 채택하기 시작하면서 VP9 코덱도 또한 하드웨어 디코딩을 지원하는 기기들이 늘어났다.
5. 사양
5.1. Profile
- Profile 0 : 8비트 컬러, 4:2:0 크로마 서브샘플링
- Profile 1 : 8비트 컬러, 4:2:0, 4:2:2, 4:4:4 크로마 서브샘플링
- Profile 2 : 10, 12비트 컬러, 4:2:0 크로마 서브샘플링
- Profile 3 : 10, 12비트 컬러, 4:2:0, 4:2:2, 4:4:4 크로마 서브샘플링
5.2. Level
6. 적용
6.1. 하드웨어 가속 지원
- NVIDIA - 7세대 퓨어비디오 엔진 버전부터 VP9 디코딩 가속을 지원한다. (지포스 GTX 960, 950, 후기형 750) 단, GTX 970 이상의 동세대 상위 글카들은 GTX 750 시리즈와 같은 6세대 퓨어비디오라서 지원하지 않는다.
- AMD - VCN 1.0이 적용된 1세대 라이젠 APU부터 디코딩 가속을 제대로 지원하지만, 인코딩 가속은 아직 지원하지 않는다. 단, 동세대 그래픽 카드인 라데온 RX Vega 시리즈는 VCN이 아닌 UVD 7.0에 VCE 4.0이라서 VP9 디코딩조차 지원하지 않고, 7nm 공정으로 미세화된 라데온 VII도 UVD 7.2에 VCE 4.1이라서 이 역시 VP9 디코딩을 지원하지 않는다. RX 5000 시리즈에 들어서야 VCN 2.0으로 건너뛰면서 VP9 디코딩을 지원하게 되었다.
- 삼성전자 - 삼성 엑시노스 7 Octa 7420[2] 부터 디코딩 가속을 지원하고, 삼성 엑시노스 9 Octa 8895[3] 부터는 인코딩 가속도 지원한다.
- 인텔 - 인텔 7세대 카비레이크 GPU부터 8-bit, 10-bit 디코딩 가속과 8-bit 인코딩 가속을 지원하고, 인텔 10세대 아이스레이크 GPU부터 10-bit 인코딩 가속도 지원한다.
- Imagination Technologies - PowerVR 시리즈 6 XT 계열부터 디코딩 가속을 지원한다.
- 퀄컴 - 스냅드래곤 820[4] 부터 디코딩 가속을 지원하고, 835[5] 부터는 인코딩 가속도 지원한다.
- 미디어텍 - 미디어텍 Helio X10부터 디코딩 가속을 지원한다.
6.2. 소프트웨어 호환
- 2019년 기준 대부분의 동영상 플레이어에서 재생할 수 있다.
- 웹 브라우저
- 엣지(Microsoft Edge)
레드스톤 1 업데이트(1주년 업데이트) 이후로 MSE[=] 와 함께 정식 지원된다. 오히려 크롬보다도 더 잘 지원한다는 평이 많다.(같은 사양에서 같은 영상 재생 시 CPU 점유율 확인[6] 등을 비교해보면 크롬 < 파폭 < 엣지 정도의 평이 많이 나온다. 이는 19년 2월 현재에도 유효한 편) VP9 디코딩 하드웨어 가속 역시 브라우저 중 가장 먼저 지원하였다.
기본 설정에서는 VP9 DXVA 하드웨어 가속을 할 수 있는 환경인지를 확인하여 할 수 있으면 VP9으로, 못 하면 H.264로 재생된다. about:flags로 들어가면 그래픽 카드의 가속 지원 여부와 관계없이 VP9에 대한 MSE[=] 사용을 강제하거나 차단할 수도 있다.
기본 설정에서는 VP9 DXVA 하드웨어 가속을 할 수 있는 환경인지를 확인하여 할 수 있으면 VP9으로, 못 하면 H.264로 재생된다. about:flags로 들어가면 그래픽 카드의 가속 지원 여부와 관계없이 VP9에 대한 MSE[=] 사용을 강제하거나 차단할 수도 있다.
- 파이어폭스(Firefox)
- 크롬(Chrome) : WebM의 개발을 담당하는 구글이 만든 브라우저. VP9 코덱이 지원되지 않는 그래픽 카드를 통해 유튜브를 시청하는 경우, 그래픽카드의 CUDA 프로세서를 사용하여 CPU + GPU 하이브리드 디코딩을 한다. CPU가 그래픽 카드와 함께 일을 하므로 CPU 점유율이 30% 정도 줄어드는 이점이 있다. 다만 크롬 설정에서 "가능한 경우 하드웨어 가속 사용"에 체크한 경우에만 적용된다. 하지만 게임을 하면서 유튜브를 보는 경우 렉을 유발한다. 이런 경우에는 h264ify 같은 확장 프로그램으로 VP9 코덱 대신 H.264 코덱으로 유튜브를 틀어놔야 한다.[7]
- 오페라(Opera) : 크롬의 변종판
- Safari: 14.0부터
6.3. 웹 사이트
6.4. 리듬 게임
DJMAX TECHNIKA Q에 사용된 적이 있으며, 이론적으로 게임 엔진에서 VP9 동영상을 재생하도록 수정하면 EZ2AC를 비롯한 동영상 BGA 지원 리듬 게임에서도 사용 가능하다.
7. 이후
나온 후 몇 년 동안은 크롬만 지원하는 수준이었고, 지금도 지원하는 프로그램이 적다는 것은 큰 단점. 이런 점을 두고 MS는 WebM 전체를 싸잡아 실패한 포맷이라고 비웃었다. 마이크로소프트, 구글 WebM을 실패한 에스페란토 언어로 비유해.
그러나, 구글은 포기하지 않고 더 발전한 VP10도 개발하고 있었고, 유튜브에서 쓰기 시작한 이래로 하드웨어 가속 지원 제품들도 나오고 조금씩 점유율이 높아지고 있다. 한 때(14~15년도 초) VP10은 VP9에 10비트 지원만 추가한 것이라는 낭설도 돌았으나, 실상은 15년도 8월에 막 소스 퍼블리싱이 시작된 신작이다.
다만 H.265뿐만 아니라, 모질라 재단의 Daala project도 있고, 시스코도 이들에 자극받았는지 Thor라는 이름[8] 의 독자 무료 코덱 개발을 발표한 상황이었다. 2015년 9월 1일부터 무료 코덱을 개발하고 있는 구글, 모질라, 시스코 외에 마이크로소프트, 아마존, 인텔, 넷플렉스가 H.265의 특허권을 가지고 있는 MPEG LA에 대항하기 위해 The Alliance for Open Media라는 이름으로 연합을 맺었다. 홈페이지 그리고 이 단체에서 개발하는 코덱인 AV1에다가 VP10을 통합시키기로 결정했다. 기존 VP10의 기능들은 모두 통합된다.
이 연합을 맺은 덕분인지 5년 간 이어진 구글과 마이크로소프트의 특허분쟁을 끝내고 협력하기로 합의했다.
크롬에서 h264ify 같은 확장 프로그램을 써서 VP9을 쓰지 못하게 하면 WQHD 이상의 화질을 선택할 수 없다.
이건 확장 프로그램 문제가 아니고 유튜브 측에서 H.264 코덱으로 고화질 영상을 못 보내게 금지한 것이다.
[1] 좀 부족하지만 H.265와 경쟁하는 코덱이다. 앞 세대인 H.264보다는 당연히 좋다. 따지고 보면 H.265는 물론 H.264도 처음 나온 당시에 하드웨어와 웹 브라우저로는 같은 문제가 있었다고 할 수 있다. 그때는 최신 코덱을 적용한 서비스가 별로 없어서 겪을 일이 없었을 뿐.[2] 갤럭시 S6, 노트5 [3] 갤럭시 S8, 노트8 [4] LG V20, LG G5 [5] LG V30 (이후 스냅845 LG G7, LG V35, LG V40) [=] A B Media Source Extensions[6] 당연히 낮을수록 좋다.[7] 이것도 만능은 아닌데, 1440P 이상 화질이 선택 불가능해지고, 유튜브의 비트레이트가 넉넉한 편이 아니라 깍두기 현상이 다소 거슬릴 수 있다.[8] 우리가 아는 그 토르가 맞다.