VP8

VP8는 2008년 On2 Technologies가 발표한 오픈 및 로열티 프리 영상 코딩 포맷이다.

초기에는 On2의 이전 VP7 포맷을 잇는 독점 후속작으로 출시되었으나, 구글이 On2 Technologies를 인수한 후 2010년 5월에 오픈 및 로열티 프리 포맷으로 공개되었다. 구글은 VP8 포맷 구현을 위한 자사의 특허에 대해 취소 불가능한 특허 약속을 제공했으며, 크리에이티브 커먼즈 저작자표시 3.0 라이선스 하에 포맷 사양을 공개했다. 같은 해 구글은 VP8의 참조 구현인 libvpx를 수정된 BSD 허가서 하에 출시했다.

오페라, 파이어폭스, 크롬, 페일 문, 크로미엄은 HTML 비디오 태그에서 VP8 영상 재생을 지원한다. 인터넷 익스플로러는 사용자가 다렉이트쇼 필터를 설치한 경우 공식적으로 VP8을 지원한다.Dean Hachamovitch (Microsoft) on March 16, 2011 on IEBlog: HTML5 Video Update—WebM for IE9
구글에 따르면 VP8은 주로 WebRTC와 연결되어 사용되거나, GIF를 대체하기 위한 짧은 반복 애니메이션 포맷으로 사용된다.Alex Converse (Google), September 19, 2015: New video compression techniques under consideration for VP10 – presentation at the VideoLAN Dev Days 2015 in Paris

VP8은 Vorbis 및 오푸스 오디오와 함께 Matroska 기반 컨테이너 포맷인 WebM으로 멀티플렉싱될 수 있다. 이미지 포맷인 WebP는 VP8의 인트라 프레임 코딩을 기반으로 한다. VP8의 직접적인 후속작인 VP9과 AOMedia의 로열티 프리 AV1 코덱은 VP8을 기반으로 한다.

 특징 
VP8은 4:2:0 크로마 서브샘플링과 샘플당 8비트를 사용하는 순차 주사 방식 영상 신호만을 지원한다.
첫 공개 버전에서 On2의 VP8 구현은 최대 64개 코어의 멀티 코어 프로세서를 동시에 지원했다. 적어도 2011년 8월 당시의 구현에서는 VP8이 고해상도(HD)에 비교적 서투르게 적응되어 있었다.
단 3개의 참조 프레임 버퍼만 필요로 하므로, VP8은 상대적으로 적은 메모리 점유율로 디코더 구현이 가능하다.
이 포맷은 순수 인트라 모드(즉, 시간적 예측 없이 독립적으로 코딩된 프레임만 사용)를 특징으로 하여 영상 편집과 같은 애플리케이션에서 임의 접근을 가능하게 한다.

 기술 
VP8은 전통적인 블록 기반 변환 부호화 포맷이다. 일부 예측 모드 등 H.264와 공통점이 많다. VP8의 첫 발표 당시 On2에 따르면 인 루프 필터(in-loop filter)와 골든 프레임(Golden Frames)이 이 버전의 참신한 기능 중 하나였다. 그러나 이러한 필터의 첫 번째 정의는 이미 H.263 표준에서 찾아볼 수 있으며, 골든 프레임은 이미 VP5description of VP5 on MultimediaWiki와 VP7에서 사용되고 있었다.

4×4 블록에 대한 이산 코사인 변환(DCT)과 월시-아다마르 변환(WHT)이 기본 주파수 변환 역할을 한다.
시간적 예측을 위해 최대 3개의 프레임을 참조할 수 있다: 마지막 골든 프레임(인트라 프레임일 수 있음), 대체 참조 프레임(alternate reference frame), 그리고 직전 프레임이다. 이른바 대체 참조 프레임(altref)은 표시를 비활성화할 수 있어 참조 전용 프레임으로 기능할 수 있다. 이 경우 인코더는 미래 프레임에서 가져온 데이터를 포함하여 임의의 유용한 이미지 데이터로 이를 채울 수 있으며, 이를 통해 MPEG 포맷의 B 프레임과 동일한 목적을 수행한다.Yaowu Xu, 27. Mai 2010: Inside WebM Technology: The VP8 Alternate Reference Frame
유사한 매크로블록은 최대 4개의(공간적으로 분리된 경우 포함) 세그먼트 중 하나에 할당될 수 있으며, 이를 통해 사용된 참조 프레임, 양자화기 단계 크기 또는 필터 설정과 같은 매개변수를 공유할 수 있다.
VP8은 코덱 루프에 통합된 두 가지 다른 조정 가능한 디블로킹 필터를 제공한다(인 루프 필터링).
많은 코딩 도구는 각 인트라 프레임에서 시작하여 최근 문맥에서 지속적으로 계산되는 확률을 사용한다.
매크로블록은 4×4, 8×8 또는 16×16 샘플로 구성될 수 있다.
움직임 벡터는 1/4 픽셀 정밀도를 갖는다.

 역사 
VP8은 2008년 9월 13일 On2 Technologies에 의해 On2 TrueMotion VP8로 처음 출시되어 이전 버전인 VP7을 대체했다.

2010년 2월 구글이 On2를 인수한 후, 구글이 VP8 소스 코드를 공개해야 한다는 요구가 이어졌다. 특히 자유 소프트웨어 재단은 2010년 3월 12일 유튜브에서 어도비 플래시 플레이어와 H.264 사용을 점진적으로 중단하고 HTML5와 자유로운 VP8의 혼합으로 대체할 것을 요청하는 공개 서한을 발표했다.

2010년 4월 12일, 임박한 오픈 소스 출시 발표 소식이 알려졌다. 5월 19일 구글 I/O 컨퍼런스에서 구글은 BSD 허가서와 유사한 라이선스로 VP8 코덱 소프트웨어를, 취소 불가능한 무료 특허 라이선스로 VP8 비트스트림 포맷 사양을 공개했다. 이로써 VP8은 2002년 Xiph.Org 재단에 VP3 코덱을 기증(여기서 테오라 코덱이 파생됨)한 이후 On2 Technologies의 두 번째 공개 제품이 되었다.The Free Library (2002-08-01) On2 Signs Pact With Xiph.org to Develop/Support VP3, Retrieved on 2009-08-16

2011년 2월, MPEG LA는 공동 VP8 특허 풀을 형성하기 위해 VP8에 필수적일 수 있는 특허를 식별하도록 특허 보유자들을 초대했다. 그 결과 3월에 미국 법무부(DoJ)는 경쟁을 억제하려 시도했을 가능성이 있는 MPEG LA의 역할에 대해 조사를 시작했다.
2011년 July, MPEG LA는 해당 특허를 공개하지 않은 채 12명의 특허 보유자가 VP8 특허 풀 형성에 응했다고 발표했으며, On2가 그러한 특허를 피하기 위해 많은 노력을 기울였음에도 불구하고 그러했다.

2011년 11월, 국제 인터넷 표준화 기구는 정보 제공용 RFC 6386, VP8 데이터 포맷 및 디코딩 가이드를 발표했다.

2013년 3월, MPEG LA는 VP8 구현에 "필수적일 수 있다"고 주장하는 특허를 라이선스하기로 구글과 합의한 후 VP8 특허 풀 형성 노력을 중단한다고 발표했으며, 구글에 이러한 특허를 VP8 또는 VP9의 제3자 사용자에게 서브라이선스할 수 있는 권한을 부여했다. 구글이 2013년 1월 MPEG 위원회에 VP8을 제출함에 따라, 이 거래는 로열티 프리 인터넷 비디오 코덱으로서 가능한 MPEG 표준화의 길을 열어주었다.

2013년 3월, 노키아는 독일 법원에서 안드로이드의 VP8 사용에 대해 HTC와 구글을 상대로 특허 침해 소송을 제기했다. 그러나 2013년 8월 5일 WebM 프로젝트는 독일 법원이 VP8이 노키아의 특허를 침해하지 않는다는 판결을 내렸다고 발표했다.

노키아는 VP8 데이터 포맷 및 디코딩 가이드와 관련하여 64개의 승인된 특허와 22개의 계류 중인 특허 출원을 나열하며 IETF에 공식적인 지적 재산권(IPR) 선언을 했다.

 구현 
 libvpx 

VP8(및 VP9) 코덱의 참조 구현은 자유 소프트웨어로 출시된 프로그래밍 라이브러리인 libvpx에서 찾을 수 있다.
각각 1패스 및 2패스 인코딩 모드가 있지만, 1패스 모드는 고장난 것으로 알려져 목표 비트레이트에 대한 효과적인 제어를 제공하지 못한다.Jan Ozer, June 2016: VP9 Finally Comes of Age, But Is it Right for Everyone?

현재 libvpx는 VP8 비디오 스트림을 인코딩할 수 있는 주요 소프트웨어 라이브러리이지만, ffvp8enc에 적어도 하나 이상의 독립적인 구현이 존재한다.

 인코딩 
구글 VP8 라이브러리(FourCC: VP80)를 기반으로 한 VP8 코덱의 비디오 포 윈도우 래퍼를 사용할 수 있다.

핀란드의 WebM 프로젝트 하드웨어 팀은 반도체 제조업체가 무료로 사용할 수 있는 VP8용 RTL 하드웨어 인코더를 출시했다.

엔비디아 테그라 모바일 칩셋은 테그라 4부터 완전한 VP8 하드웨어 인코딩 및 디코딩을 지원한다.

넥서스 5는 하드웨어 인코딩을 사용할 수 있다.

 디코딩 
libvpx는 VP8 비디오 스트림을 디코딩할 수 있다.

2010년 7월 23일, FFmpeg 팀의 피오나 글레이저, 로날드 불체, 데이비드 콘래드는 ffvp8 디코더를 발표했다. 테스트를 통해 그들은 ffvp8이 구글의 자체 libvpx 디코더보다 빠르다는 것을 확인했다. WebM 프로젝트 하드웨어 팀은 반도체 회사에 무료로 제공 가능한 VP8용 RTL 하드웨어 디코더를 출시했다. TATVIK Technologies는 ARM Cortex-A8 프로세서에 최적화된 VP8 디코더를 발표했다. 마벨의 ARMADA 1500-mini 칩셋은 VP8 SD 및 HD 하드웨어 디코딩을 지원한다(크롬캐스트에서 사용됨). 인텔은 자사의 베이트레일 칩셋에 완전한 VP8 디코딩 지원을 내장했다.
인텔 브로드웰 또한 VP8 하드웨어 디코딩 지원을 추가했다.

 운영체제 지원 
+ 다양한 운영체제의 VP8 지원 마이크로소프트 윈도우 MacOS BSD / 리눅스 안드로이드 OS iOS 코덱 지원      컨테이너 지원 윈도우 10 1주년 업데이트 (1607):  WebM (.webm은 인식되지 않으며 유사 확장자 필요)  Matroska (.mkv)  윈도우 10 2018년 10월 업데이트 (1809):  WebM (.webm 공식 인식) WebM (.webm)  - macOS 11.3에서 도입 WebM (.webm)  Matroska (.mkv) WebM (.webm)  Matroska (.mkv) WebM (.webm)  - iOS 17.4에서 도입 비고 윈도우 10:  - 1주년 업데이트(1607)에서 마이크로소프트 엣지(MSE를 통해서만) 및 유니버설 윈도우 플랫폼 앱에서 제한적인 지원이 가능하다.  - Web Media Extensions가 사전 설치된 2018년 4월 업데이트(1803)에서 마이크로소프트 엣지(EdgeHTML 17)는 <video> 태그에 내장된 VP8 영상을 지원한다.  - 2018년 10월 업데이트(1809)에서 VP9 비디오 확장이 사전 설치되어 있다. 이는 하드웨어 기반 비디오 인코더가 없는 장치에서 VP8 및 VP9 콘텐츠의 인코딩을 가능하게 한다. - - 안드로이드 2.3.3+부터 지원 도입  - 안드로이드 4.0+에서 스트리밍 가능

 관련 포맷 
 WebM 

또한 2010년 5월 19일, HTML5의 비디오 포맷으로 VP8을 사용하기 위한 주요 노력의 일환으로 "모질라, 오페라, 구글 및 40개 이상의 기타 퍼블리셔, 소프트웨어 및 하드웨어 벤더"의 기여로 WebM 프로젝트가 시작되었다. WebM 컨테이너 포맷에서 VP8 비디오는 Vorbis 또는 오푸스 오디오와 함께 사용된다. 인터넷 익스플로러 9는 적절한 코덱이 설치된 경우 VP8 영상 재생을 지원한다. 안드로이드는 버전 2.3 진저브레드부터 WebM을 지원한다. 안드로이드 4.0부터 VP8은 mkv 내부에서 읽을 수 있으며 WebM 스트리밍이 가능하다. 어도비 또한 플래시 플레이어가 향후 릴리스에서 VP8 재생을 지원할 것이라고 발표했다.

 WebP 

2010년 9월 30일, 구글은 크로미엄 블로그를 통해 새로운 이미지 포맷인 WebP를 발표했다.
WebP는 VP8의 인트라 프레임 코딩을 기반으로 하며 자원 교환 파일 포맷(RIFF) 기반의 컨테이너를 사용한다.

 H.264와의 비교 
H.264/MPEG-4 AVC는 특허 기술을 포함하고 있어 특허 보유자의 라이선스와 하드웨어에 대한 제한된 로열티가 필요한 반면, 구글은 자사가 소유한 VP8 특허를 로열티 프리 공개 라이선스로 취소 불가능하게 공개했다.

StreamingMedia가 실시한 VP8(초기 libvpx로 인코딩)과 H.264의 비교에 따르면, "H.264가 약간의 품질 우위를 가질 수 있으나 상업적으로 유의미하지 않다"며 "나란히 놓고 보아도(어떤 시청자도 그렇게 하지 않지만) 차이를 구별할 수 있는 시청자는 거의 없을 것"이라는 결론을 내렸다. 또한 그들은 "H.264는 기술적 우위가 아닌 구현상의 우위를 점하고 있다"고 밝혔다.

구글은 VP8이 "최고 품질의 실시간 비디오 전달"을 제공한다고 주장하며, libvpx에는 인코딩 속도를 재생 속도(실시간)와 거의 동일하게 유지하면서 가능한 최대 CPU 자원을 사용하여 지연 없이 품질을 최대한 높게 유지하는 모드가 포함되어 있다.
반면 2010년 5월 streamingmedia.com이 실시한 리뷰에서는 H.264가 VP8보다 약간 더 나은 품질을 제공한다는 결론을 내렸다.

2010년 9월, X264 인코더 개발자인 피오나 글레이저는 VP8 사양이 불완전하며 인코더의 디블로킹 필터 성능이 일부 영역에서 x264보다 열등하다고 주장하며 VP8에 대해 몇 가지 비판을 제기했다. 사양상 VP8은 H.264 베이스라인 프로파일 및 마이크로소프트의 VC-1보다 약간 나아야 한다.
인코딩 성능은 Xvid와 VC-1 사이 어딘가에 있다. 디코딩은 FFmpeg의 H.264보다 느리지만, H.264와의 유사성 때문에 이 측면은 거의 개선되기 어렵다. 압축 효율 면에서 VP8은 테오라 및 디랙보다 더 나은 성능을 제공한다. 글레이저에 따르면 VP8 인터페이스는 기능이 부족하고 버그가 있으며, 사양이 완전히 정의되지 않아 불완전한 것으로 간주될 수 있다. VP8 코드의 상당 부분은 복사해서 붙여넣은 이며, 소스 코드가 실제 사양을 구성하므로 모든 버그 또한 호환성을 위해 구현해야 하는 것으로 정의될 것이다.

2010년, WebM 오디오/영상 포맷이 VP8 영상 및 Vorbis 오디오와 함께 Matroska 컨테이너 포맷의 프로파일을 기반으로 할 것이라고 발표되었다.

 같이 보기 
 HTML5
 WebP
 WebM

 각주 

 외부 링크 
 공식 사이트

분류:코덱
분류:영상 코덱
분류:오픈 소스
분류:구글의 소프트웨어