VP8
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
VP8은 2008년 On2 Technologies에서 출시된 비디오 코덱으로, 4:2:0 색상 하위 표본 추출 및 8비트 샘플링을 사용하는 프로그레시브 스캔 비디오 신호를 지원한다. 멀티 코어 프로세서에 최적화되어 인코딩 및 디코딩 속도가 빠르며, 메모리 사용량이 적고, 비디오 편집에 유용한 인트라 모드를 제공한다. VP8은 H.264와 유사한 블록 기반 변환 코딩 방식을 사용하며, 시간적 예측을 위해 최대 세 개의 프레임을 참조할 수 있다. 2010년 구글이 On2를 인수하고 VP8을 로열티 없이 사용할 수 있도록 공개하면서 웹 기술 표준을 지향하게 되었다. H.264와의 품질 비교 연구 결과는 일관되지 않지만, 낮은 비트 전송률에서는 유사하거나 더 나은 품질을 제공하며, 인코딩 복잡도가 높다. 다양한 운영체제와 하드웨어에서 지원되며, WebM 및 WebP와 같은 관련 형식을 가진다.
더 읽어볼만한 페이지
- 코덱 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. - 코덱 - H.261
H.261은 1988년 ITU-T에 의해 표준으로 승인된 최초의 실질적인 디지털 영상 부호화 표준으로, DCT 압축, 움직임 보상 등의 기술을 사용하며 이후 주요 영상 부호화 표준들의 설계 기반이 되었다. - 오픈 소스 - 클램윈
클램윈은 ClamAV 엔진 기반의 오픈 소스 백신 소프트웨어로, 트로이 목마, 바이러스, 멀웨어 등 다양한 악성 위협 분석 자료를 제공하며 예약 검사, 수동 검사, 컨텍스트 메뉴 통합 등의 기능을 지원하지만 실시간 감시 기능은 제공하지 않는다. - 오픈 소스 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. - 영상 코덱 - VP9
VP9는 구글이 개발한 오픈 소스 비디오 코덱으로, VP8보다 압축 효율을 높이고 HEVC보다 나은 성능을 목표로 개발되었으며, WebM 형식으로 사용되고 주요 웹 브라우저와 넷플릭스, 유튜브 등에서 지원했으나 AV1의 등장으로 개발이 중단되었다. - 영상 코덱 - H.262/MPEG-2 파트 2
H.262/MPEG-2 파트 2는 디지털 TV 및 DVD 등에 사용되는 영상 압축 표준으로, HDTV 카메라의 비압축 영상 스트림을 효율적으로 압축하기 위해 다양한 화면 샘플링 기술을 활용하며, DVD-Video, HDV, XDCAM 등에서 활용된다.
VP8 - [IT 관련 정보]에 관한 문서 | |
---|---|
일반 정보 | |
종류 | 비디오 코딩 포맷 |
개발 | 온2 테크놀로지스, 구글 |
발표일 | 2008년 9월 13일 |
확장 | .webm, .avi |
MIME 형식 | 해당 없음 |
컨테이너 | Matroska, WebM, AVI |
기반 | VP7 |
파생 | VP9 |
표준 | https://datatracker.ietf.org/doc/html/rfc6386 |
웹사이트 | https://www.webmproject.org/ |
라이브러리 정보 | |
이름 | libvpx (VP8 코덱 라이브러리) |
개발자 | 구글 |
발표일 | 2010년 5월 18일 |
최신 버전 | 1.8.1 |
최신 버전 발표일 | 2019년 7월 15일 |
프로그래밍 언어 | C 언어 |
운영 체제 | Windows, macOS, Unix 계열 |
라이선스 | 수정 BSD 라이선스 |
2. 특징
VP8은 2010년 5월 19일 구글 I/O에서 BSD 라이선스 형식의 특허 대응을 위해 수정 라이선스로 오픈 소스 소프트웨어화되었으며, 마트료시카 기반의 자체 포맷 WebM과 함께 공개되었다.[6] 이 라이선스는 GPL과의 호환성 문제가 제기되었으나, 이후 라이선스 변경으로 특허 조항이 삭제되어 문제가 해결되었다.[9] 개발에는 Xiph.Org가 협력하였다.[10]
구글은 유튜브의 모든 동영상을 WebM으로 변환할 것이라고 발표했다.[11] 모질라와 오페라는 자사 웹 브라우저에서 WebM을 지원할 것이라고 발표했다.[11] 어도비 시스템즈는 차기 어도비 플래시 플레이어에서 VP8을 지원할 계획을 발표했으나,[12] 실제로는 지원하지 않았다.[13]
구글은 VP8 기술을 기반으로 한 정지 영상 포맷 WebP를 개발하여 공개하였다.[14]
2. 1. 기술적 사양
VP8은 4:2:0 색상 하위 표본 추출 및 샘플당 8 비트의 샘플링(신호 처리)를 사용하는 프로그레시브 스캔 비디오 신호만 지원한다.[1]최초 공개 버전에서 On2의 VP8 구현은 최대 64개의 코어를 동시에 사용하는 멀티 코어 프로세서를 지원한다.[1] (2011년 8월 기준) 구현에서 VP8은 고해상도 (HD)에 비교적 덜 적합하다.[1]
VP8은 세 개의 참조 프레임 버퍼만 필요하므로 비교적 작은 메모리 사용 공간으로 디코더를 구현할 수 있다.[1]
이 형식은 비디오 편집과 같은 응용 프로그램에서 임의 접근을 가능하게 하기 위해 시간적 예측 없이 독립적으로 코딩된 프레임만 사용하는 순수 인트라 모드를 특징으로 한다.[1]
2. 2. 멀티 코어 프로세서 지원
VP8은 최초 공개 버전에서 최대 64개의 코어를 동시에 사용하는 멀티 코어 프로세서를 지원한다.[1]2. 3. 메모리 사용 공간
VP8은 참조 프레임 버퍼를 세 개만 사용하기 때문에 디코더 구현에 필요한 메모리 사용 공간이 비교적 적다는 장점이 있다.2. 4. 인트라 모드
VP8은 비디오 편집과 같은 응용 프로그램에서 임의 접근을 가능하게 하기 위해 시간적 예측 없이 독립적으로 코딩된 프레임만 사용하는 순수 인트라 모드를 특징으로 한다.3. 기술
VP8은 4:2:0 색상 하위 표본 추출 및 샘플당 8 비트의 샘플링(신호 처리)를 사용하는 프로그레시브 스캔 비디오 신호만 지원한다. 최초 공개 버전에서 On2의 VP8 구현은 최대 64개의 코어를 동시에 사용하는 멀티 코어 프로세서를 지원한다. (2011년 8월 기준) 구현에서 VP8은 고해상도(HD)에 비교적 덜 적합하다.
VP8은 세 개의 참조 프레임 버퍼만 필요하므로 비교적 작은 메모리 사용 공간으로 디코더를 구현할 수 있다. 이 형식은 비디오 편집과 같은 응용 프로그램에서 임의 접근을 가능하게 하기 위해 시간적 예측 없이 독립적으로 코딩된 프레임만 사용하는 순수 인트라 모드를 특징으로 한다.
VP8은 전통적인 블록 기반의 변환 코딩 형식으로, H.264와 많은 공통점을 가진다. VP8이 처음 발표되었을 당시, On2에 따르면 루프 내 필터와 골든 프레임이 이 버전의 새로운 기능 중 하나였다. 하지만 이러한 필터의 첫 번째 정의는 이미 H.263 표준에서 찾아볼 수 있으며, 골든 프레임은 이미 VP5와 VP7에서 사용되었다.
3. 1. 블록 기반 변환 코딩
VP8은 전통적인 블록 기반의 변환 코딩 형식이다. 이는 H.264와 많은 공통점을 가지고 있으며, 예를 들어 일부 예측 모드가 있다. 기본적인 주파수 변환으로 4×4 블록의 이산 코사인 변환(DCT)과 왈시-아다마르 변환(WHT)이 사용된다.3. 2. 이산 코사인 변환 및 Hadamard 변환
4×4 블록의 이산 코사인 변환(DCT)과 왈시-아다마르 변환(WHT)이 기본적인 주파수 변환으로 사용된다.3. 3. 프레임 참조
VP8은 시간적 예측을 위해 최대 세 개의 프레임을 참조할 수 있다. 참조 가능한 프레임은 마지막 골든 프레임(인트라 프레임일 수 있음), 대체 참조 프레임, 그리고 바로 이전 프레임이다. 대체 참조 프레임(altref)은 표시를 비활성화하여 참조 전용 프레임으로 사용될 수 있다. 이 경우, 인코더는 미래 프레임에서 가져온 임의의 유용한 이미지 데이터로 채울 수 있으며, 이는 MPEG 형식의 b-프레임과 동일한 역할을 한다.3. 4. 세그먼트 할당
유사한 매크로블록은 최대 4개(공간적으로 분리된 경우도 포함)의 세그먼트에 할당될 수 있으며, 사용된 참조 프레임, 양자화 단계 크기 또는 필터 설정과 같은 매개변수를 공유한다.3. 5. 디블로킹 필터
VP8은 코덱 루프에 통합된 두 개의 서로 다른 조절 가능한 디블로킹 필터를 제공한다(루프 내 필터링).3. 6. 확률 기반 코딩
VP8의 많은 코딩 도구는 각 인트라 프레임에서 시작하여 최근 컨텍스트에서 지속적으로 계산되는 확률을 사용한다.3. 7. 매크로 블록 구조
VP8에서 매크로 블록은 4×4, 8×8 또는 16×16 샘플로 구성될 수 있다.3. 8. 모션 벡터
VP8의 모션 벡터는 쿼터 픽셀 정밀도를 갖는다.4. 역사
VP8은 2008년 9월 13일 On2 Technologies에 의해 On2 TrueMotion VP8로 처음 출시되었으며, 이전 버전인 VP7을 대체했다. 2010년 2월, 구글이 On2를 인수하면서 VP8 소스 코드를 공개해야 한다는 요구가 높아졌다.
2010년 5월 19일, 구글 I/O에서 VP8 코덱 소프트웨어가 BSD와 유사한 라이선스 및 VP8 비트스트림 형식 사양의 취소 불가능한 자유 특허 라이선스 하에 공개되었다. 같은 날, BSD 라이선스 방식의 특허 대응을 고려한 수정 라이선스로 오픈 소스 소프트웨어가 될 것이 발표되었고, 마트료시카 기반의 자체 포맷 WebM과 함께 오픈 소스화되었다. 개발에는 Xiph.Org가 협력하고 있다.[10]
MPEG LA는 VP8에 필수적일 수 있는 특허를 가진 특허 보유자들에게 VP8 특허 풀 형성을 위해 특허를 식별하도록 요청했다. 2013년 3월 7일, 구글은 MPEG LA에 참여하는 11개 회사가 보유한 특허에 대해 라이선스를 체결하기로 합의했다.
MPEG LA에 가입하지 않은 노키아는 VP8의 특허 침해를 주장하며 소송을 제기했으나, 2013년 8월 5일, 독일 법원은 VP8이 노키아의 특허를 침해하지 않았다는 판결을 내렸다.
구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.
4. 1. On2 Technologies의 VP8 출시
VP8은 2008년 9월 13일 On2 Technologies에 의해 On2 TrueMotion VP8로 처음 출시되었으며, 이전 버전인 VP7을 대체했다.구글이 2010년 2월 On2를 인수하면서, 구글이 VP8 소스 코드를 공개해야 한다는 요구가 높아졌다. 특히 자유 소프트웨어 재단은 2010년 3월 12일 공개 서한을 통해 구글에 어도비 플래시 플레이어와 H.264의 유튜브 사용을 HTML5와 자유 VP8의 혼합으로 점진적으로 대체할 것을 요청했다.
2010년 4월 12일, 오픈 소스 출시가 임박했다는 소문이 퍼졌다.[2] 2010년 5월 19일, 구글 I/O 컨퍼런스에서 구글은 VP8 코덱 소프트웨어를 BSD와 유사한 라이선스로 공개하고, VP8 비트스트림 형식 사양을 취소 불가능한 자유 특허 라이선스로 공개했다. 이는 On2 Technologies가 2002년 VP3 코덱을 Xiph.Org 재단에 기증하여 Theora 코덱이 파생된 것에 이어 두 번째 오픈 소스 제품이 된 것이다.
4. 2. 구글의 On2 인수 및 VP8 오픈 소스화
2010년 2월, 구글(Google)은 On2를 인수했다. 인수 후, 구글은 VP8 소스 코드를 공개해야 한다는 요구를 받았다. 특히 자유 소프트웨어 재단(Free Software Foundation)은 2010년 3월 12일 공개 서한을 발표하여 구글에게 유튜브(YouTube)에서 사용되는 어도비 플래시 플레이어(Adobe Flash Player)와 H.264를 HTML5와 자유 VP8을 혼합하여 점진적으로 대체할 것을 요청했다.2010년 5월 19일, 구글 I/O에서 VP8 코덱 소프트웨어를 BSD와 유사한 라이선스로 공개하고, VP8 비트스트림 형식(bitstream format) 사양을 취소 불가능한 자유 특허 라이선스로 공개했다. 이는 2002년 On2 Technologies가 VP3 코덱을 Xiph.Org 재단(Xiph.Org Foundation)에 기증하여 Theora 코덱이 파생된 것에 이어 두 번째 오픈 소스 제품이 되었다.
같은 날, BSD 라이선스 스타일의 특허 대응을 고려한 수정 라이선스로 오픈 소스 소프트웨어가 될 것이 발표되었고, 마트료시카 기반의 자체 포맷 WebM과 함께 오픈 소스로 공개되었다. 이 라이선스는 GPL과의 호환성 문제가 지적되었지만, 이후 라이선스 변경으로 특허 조항이 삭제되어 문제가 해결되었다.[6][7][8][9] 개발에는 Xiph.Org가 협력하고 있다.[10]
구글은 유튜브에서 모든 동영상을 WebM으로 변환할 것을 발표했다.[11] 모질라는 파이어폭스에서 WebM을 지원한다고 발표했으며, 어도비 시스템즈는 차기 어도비 플래시 출시판에서 VP8에 대응한다고 발표하였다.[12]
4. 3. MPEG LA의 특허 풀 논란
MPEG LA는 2011년 2월, VP8에 필수적일 수 있는 특허를 가진 특허 보유자들에게 VP8 특허 풀을 형성하기 위해 특허를 식별하도록 요청했다. 2011년 3월, 미국 법무부(United States Department of Justice, DoJ)는 경쟁을 저해하려는 시도에 대한 MPEG LA의 역할을 조사하기 시작했다. 2011년 7월, MPEG LA는 12명의 특허 보유자가 VP8 특허 풀을 형성하라는 요청에 응답했다고 발표했지만, 문제의 특허는 공개하지 않았다.2013년 3월 7일, 구글은 MPEG LA에 참여하는 11개 회사가 보유한 특허에 대해 라이선스를 체결하기로 합의했다고 발표했다. 이에 따라 구글은 사용자에게 W3C의 로열티 프리 라이선스(Royalty Free License)로 라이선스를 무상으로 제공하게 되어 소송 위험이 일단락되었다.[18] 같은 해 3월, MPEG LA는 VP8 구현에 "필수적일 수 있는" 특허 사용에 대한 라이선스를 구글과 합의하고, 구글에게 VP8 또는 VP9을 사용하는 모든 제3자에게 이러한 특허를 재라이선스할 권한을 부여하는 계약을 체결한 후 VP8 특허 풀 형성을 중단했다고 발표했다.
4. 4. 구글과 MPEG LA의 합의
구글(Google)은 2013년 3월 7일에 MPEG LA에 참여하는 11개 회사가 보유한 VP8 관련 특허에 대해 라이선스 계약을 체결했다고 발표했다. 이에 따라 구글은 사용자에게 W3C의 로열티 프리 라이선스(Royalty Free License)를 무상으로 제공할 수 있게 되어, VP8 관련 특허 소송 위험이 일단락되었다.[18]MPEG LA는 2011년 2월부터 VP8에 필수적일 수 있는 특허를 가진 특허 보유자들에게 VP8 특허 풀 형성을 위한 특허 제출을 요청했었다.[17] 2011년 3월에는 미국 법무부(United States Department of Justice, DoJ)가 MPEG LA의 이러한 움직임이 경쟁을 저해하려는 시도인지 조사하기 시작했다. 결국, MPEG LA는 2013년 3월, 구글과의 합의를 통해 VP8 특허 풀 형성을 중단한다고 발표했다.
한편, MPEG LA에 가입하지 않은 Nokia는 2013년 3월 21일에 VP8이 자사의 특허를 침해했다고 주장하며 소송을 제기했다.[19] 그러나 2013년 8월 5일, 독일 법원은 VP8이 노키아의 특허를 침해하지 않았다는 판결을 내렸다.[20]
4. 5. 노키아의 특허 침해 소송
2013년 3월 21일, MPEG LA에 가입하지 않은 노키아는 VP8의 특허 침해를 주장하며 소송을 제기했다.[19] 노키아는 HTC와 구글을 상대로 안드로이드에서 VP8 사용에 대한 특허 침해 소송을 독일 법원에 제기했다. 그러나 2013년 8월 5일, 독일 법원은 VP8이 노키아의 특허를 침해하지 않았다고 판결했다.[20]5. 구현체
2010년 5월 19일, 구글 I/O에서 VP8이 BSD 라이선스 형식의 수정 라이선스로 오픈 소스 소프트웨어화되어 공개되었다. 마트료시카(Matroska) 기반의 자체 포맷 WebM과 함께 공개되었으며, GPL과의 호환성 문제가 제기되었으나 이후 라이선스 수정으로 특허 조항이 삭제되어 문제가 해결되었다.
구글은 유튜브의 모든 동영상을 WebM으로 변환할 것이라고 발표했다. 모질라는 파이어폭스에서 WebM을 지원한다고 발표했으며, 어도비 시스템즈는 차기 어도비 플래시 출시판에서 VP8을 지원할 것이라고 발표했다.
구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.
5. 1. libvpx
VP8 (및 VP9) 코덱의 참조 구현은 자유 소프트웨어로 출시된 프로그래밍 라이브러리 libvpx에서 찾을 수 있다. 이 라이브러리는 1패스 및 2패스 인코딩 모드를 가지고 있으며, 1패스 모드는 손상되어 대상 비트 전송률을 효과적으로 제어하지 못하는 것으로 알려져 있다.현재 libvpx는 VP8 비디오 스트림을 인코딩할 수 있는 주요 소프트웨어 라이브러리이다. 하지만 최소한 하나의 독립적인 구현이 [https://multimedia.cx/eggs/giving-thanks-for-vp8/ ffvp8enc]에 존재한다.
5. 2. 인코딩
VP8 (및 VP9) 코덱의 참조 구현은 자유 소프트웨어로 출시된 프로그래밍 라이브러리 libvpx에서 찾을 수 있다. 이 라이브러리는 1패스 및 2패스 인코딩 모드를 가지고 있으며, 1패스 모드는 손상되어 대상 비트 전송률을 효과적으로 제어하지 못하는 것으로 알려져 있다.현재 libvpx는 VP8 비디오 스트림을 인코딩할 수 있는 주요 소프트웨어 라이브러리이다. VP8 코덱의 비디오 포 윈도우즈 래퍼는 구글 VP8 라이브러리를 기반으로 제공된다. (FourCC: VP80)
핀란드의 WebM 프로젝트 하드웨어 팀은 반도체 제조업체에서 무료로 사용할 수 있는 VP8용 RTL 하드웨어 인코더를 출시했다.
Nvidia의 테그라 모바일 칩셋은 VP8 하드웨어 인코딩 및 디코딩을 완벽하게 지원한다.(테그라 4부터)
넥서스 5는 하드웨어 인코딩을 사용할 수 있다.
5. 3. 디코딩
VP8 (및 VP9) 코덱의 참조 구현은 자유 소프트웨어로 출시된 프로그래밍 라이브러리 libvpx에서 찾을 수 있다.2010년 7월 23일, FFmpeg 팀의 피오나 글레이저, 로널드 불트제, 데이비드 콘래드는 ffvp8 디코더를 발표했다. 테스트를 통해 그들은 ffvp8이 구글의 libvpx 디코더보다 빠르다는 것을 확인했다. WebM 프로젝트 하드웨어 팀은 VP8용 RTL 하드웨어 디코더를 출시했으며, 이는 반도체 회사에 무상으로 배포될 수 있다. TATVIK Technologies는 ARM Cortex-A8 프로세서에 최적화된 VP8 디코더를 발표했다. 마벨의 ARMADA 1500-mini 칩셋은 VP8 SD 및 HD 하드웨어 디코딩을 지원한다 (Chromecast에서 사용). 인텔은 Bay Trail 칩셋에 VP8 디코딩을 완벽하게 지원한다. 인텔 브로드웰 또한 VP8 하드웨어 디코딩 지원을 추가했다.
6. 운영 체제 지원
VP8 코덱은 마이크로소프트 윈도우, macOS, BSD/리눅스, 안드로이드 OS, iOS 등 다양한 운영 체제에서 지원된다.[3]
마이크로소프트 윈도우 | macOS | BSD / 리눅스 | 안드로이드 OS | iOS |
---|---|---|---|---|
윈도우 10에서 제한적 지원 | macOS 11.3에서 WebM 지원 | WebM, Matroska 지원 | 안드로이드 2.3.3 이상 버전에서 지원, 4.0 이상 버전에서 스트리밍 가능, WebM, Matroska 지원 | iOS 17.4에서 WebM 지원 |
6. 1. 마이크로소프트 윈도우
VP8 코덱은 마이크로소프트 윈도우에서 지원된다.[3]'''윈도우 10'''에서:
- 1주년 업데이트(1607)에서는 Microsoft Edge(MSE를 통해서만) 및 유니버설 윈도우 플랫폼 앱에서 제한적인 지원이 제공된다.
- 2018년 4월 업데이트(1803)에 [https://www.microsoft.com/store/productId/9N5TDP8VCMHS 웹 미디어 확장]이 미리 설치되어 있으면, Microsoft Edge (EdgeHTML 17)는 <video> 태그에 포함된 VP8 비디오를 지원한다.
- 2018년 10월 업데이트(1809)에서는 [https://www.microsoft.com/store/productId/9n4d0msmp0pt VP9 비디오 확장]이 미리 설치된다. 이는 하드웨어 기반 비디오 인코더가 없는 장치에서 VP8 및 VP9 콘텐츠의 인코딩을 활성화한다.
'''컨테이너 지원'''
- '''윈도우 10 1주년 업데이트 (1607)''': WebM(.webm은 인식되지 않음; 가짜 확장자 필요) Matroska(.mkv)
- '''윈도우 10 2018년 10월 업데이트 (1809)''': WebM(.webm이 공식적으로 인식됨)
6. 2. macOS
macOS 11.3에 WebM (.webm) 컨테이너 지원이 도입되었다.[3]6. 3. BSD / 리눅스
BSD와 리눅스 운영 체제는 VP8 코덱과 WebM (.webm), Matroska (.mkv) 컨테이너를 지원한다.[3]6. 4. 안드로이드 OS
VP8영어 코덱은 안드로이드 OS 2.3.3 버전 이상에서 지원되며, 안드로이드 4.0 버전 이상에서는 스트리밍이 가능하다.[3] WebM (.webm), Matroska (.mkv) 컨테이너를 지원한다.6. 5. iOS
iOS는 17.4 버전부터 WebM (.webm) 컨테이너 형식을 지원한다.7. 관련 형식
WebM은 구글이 유튜브에서 모든 동영상을 변환시키겠다고 발표한 형식이다. 모질라는 파이어폭스에서, 오페라도 WebM을 지원한다고 발표했으며, 어도비 시스템즈는 차기 어도비 플래시 출시판에서 VP8에 대응한다고 발표하였다. 구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.
7. 1. WebM
2010년 5월 19일, 구글 I/O에서 BSD 라이선스 형식의 특허 대응을 위해 수정 라이선스로 오픈 소스 소프트웨어화한 후, 마트료시카 기반의 자체 포맷 WebM과 함께 오픈 소스로 공개하였다. 이 라이선스는 GPL과의 호환성 문제가 지적되었지만, 이후 라이선스를 바꿔 특허 조항을 삭제했기 때문에 문제가 해소되었다. 개발에는 Xiph.Org가 협력하고 있다.구글은 유튜브에서 모든 동영상을 WebM으로 변환시킬 것을 표명했다. 또한, 모질라는 파이어폭스에서, 오페라도 WebM에 지원한다고 표명했으며, 어도비 시스템즈는 차기 어도비 플래시 출시판에서 VP8에 대응한다고 발표하였다.
같은 날, "모질라, 오페라, 구글과 40개 이상의 다른 출판사, 소프트웨어 및 하드웨어 공급업체"가 HTML5의 비디오 형식으로 VP8을 사용하기 위한 주요 노력의 일환으로 기여한 WebM 프로젝트가 시작되었다. WebM 컨테이너 형식에서 VP8 비디오는 Vorbis 또는 Opus 오디오와 함께 사용된다. 인터넷 익스플로러 9은 적절한 코덱이 설치된 경우 VP8 비디오 재생을 지원한다. 안드로이드는 버전 2.3 (진저브레드)부터 WebM을 지원한다. 안드로이드 4.0부터 VP8은 mkv 내부에서 읽을 수 있으며 WebM은 스트리밍할 수 있다.
구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.
7. 2. WebP
구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.2010년 9월 30일, 구글은 크로미움 블로그를 통해 새로운 이미지 형식인 WebP를 발표했다. WebP는 VP8의 프레임 내 코딩을 기반으로 하며 RIFF 기반의 컨테이너를 사용한다.
8. H.264와의 비교
H.264/MPEG-4 AVC는 특허 기술을 포함하고 있어 특허 보유자로부터 라이선스가 필요하며 하드웨어에 대한 제한적인 로열티를 요구하는 반면, 구글은 자신이 소유한 VP8 특허를 로열티가 없는 공개 라이선스로 철회 불가능하게 공개했다. 2010년 5월 19일, 구글 I/O에서 BSD 라이선스 형식의 특허 대응을 위해, 수정 라이선스로 오픈 소스 소프트웨어화한 다음 마트료시카(Matroska) 기반의 자체 포맷 WebM과 함께 오픈 소스로 공개하였다. 개발에는 Xiph.Org가 협력하고 있다.
구글은 유튜브에서 모든 동영상을 WebM으로 변환할 것을 표명했다. 또한, 모질라는 파이어폭스에서 WebM에 지원한다고 표명을 했으며, 어도비 시스템즈는 차기 어도비 플래시 출시판에서 VP8에 대응한다고 발표하였다. 구글은 VP8 기술을 이용한 정지 영상 포맷 WebP도 개발하여 공개하였다.
2010년, WebM 오디오/비디오 형식이 Matroska 컨테이너 형식의 프로필을 기반으로 VP8 비디오 및 Vorbis 오디오와 함께 사용될 것이라고 발표되었다.
8. 1. 라이선스
H.264/MPEG-4 AVC는 특허 기술을 포함하고 있어 특허 보유자로부터 라이선스가 필요하며 하드웨어에 대한 제한적인 로열티를 요구하는 반면, 구글은 자신이 소유한 VP8 특허를 로열티가 없는 공개 라이선스로 철회 불가능하게 공개했다.2010년 5월 19일, Google I/O에서 BSD 라이선스 스타일의 특허 대응을 고려한 수정 라이선스로 오픈 소스 소프트웨어가 될 것이 발표되었고,[6] 이후 Matroska 기반의 독자적인 포맷인 WebM과 함께 오픈 소스화되었다. 이 라이선스는 GPL과의 호환성 문제가 지적되었지만,[7][8] 이후 라이선스 변경으로 특허 조항이 삭제되어 문제가 해결되었다.[9]
8. 2. 품질
StreamingMedia는 VP8(초기 릴리스된 libvpx로 인코딩)과 H.264를 비교한 결과 "H.264가 약간의 품질 우위를 가질 수 있지만 상업적으로는 관련이 없다"고 결론 내렸으며, "나란히 비교해서 봐도(어떤 시청자도 그렇게 하지 않지만) 차이를 알아차릴 수 있는 시청자는 거의 없다"고 밝혔다. 또한 "H.264는 기술적 우위가 아닌 구현상의 우위를 가지고 있다"고 언급했다.구글은 VP8이 "최고 품질의 실시간 비디오 전송"을 제공한다고 주장하며, Libvpx는 인코딩 속도를 재생 속도와 거의 동일하게 유지하면서(실시간) 가능한 최대 CPU 리소스를 사용하여 지연 없이 최대한 높은 품질을 유지하는 모드를 포함한다. 반면, streamingmedia.com에서 2010년 5월에 실시한 리뷰에서는 H.264가 VP8보다 약간 더 나은 품질을 제공한다고 결론 내렸다.
2010년 9월, x264 인코더 개발자인 피오나 글레이저는 VP8에 대한 몇 가지 비판점을 제시하며, VP8의 사양이 불완전하고 인코더의 디블로킹 필터 성능이 일부 영역에서 x264보다 열등하다고 주장했다. VP8은 사양상 H.264 Baseline Profile 및 마이크로소프트의 VC-1보다 약간 더 나은 성능을 보여야 한다. 인코딩은 Xvid와 VC-1 사이의 성능을 보이며, 디코딩은 FFmpeg의 H.264보다 느리지만, H.264와의 유사성 때문에 이 부분은 개선하기 어렵다. 압축 측면에서 VP8은 Theora 및 Dirac보다 더 나은 성능을 제공한다. 글레이저에 따르면 VP8 인터페이스는 기능이 부족하고 버그가 많으며 사양이 완전히 정의되지 않아 불완전하다고 간주될 수 있다고 한다.
8. 3. 성능
StreamingMedia는 초기 릴리스된 libvpx로 인코딩한 VP8과 H.264를 비교하면서 "H.264가 약간의 품질 우위를 가질 수 있지만 상업적으로는 관련이 없다"고 결론 내렸다. 또한 "나란히 비교해서 봐도(어떤 시청자도 그렇게 하지 않지만) 차이를 알아차릴 수 있는 시청자는 거의 없다"고 언급하며, "H.264는 기술적 우위가 아닌 구현상의 우위를 가지고 있다"고 덧붙였다.구글은 VP8이 "최고 품질의 실시간 비디오 전송"을 제공한다고 주장한다. Libvpx는 인코딩 속도를 재생 속도와 거의 동일하게 유지하면서(실시간) 가능한 최대 CPU 리소스를 사용하여 지연 없이 최대한 높은 품질을 유지하는 모드를 포함한다. 반면, 2010년 5월 streamingmedia.com의 리뷰에서는 H.264가 VP8보다 약간 더 나은 품질을 제공한다고 결론 내렸다.
2010년 9월, x264 인코더 개발자 피오나 글레이저는 VP8의 사양이 불완전하고 인코더의 디블로킹 필터 성능이 일부 영역에서 x264보다 열등하다고 비판했다. VP8은 사양상 H.264 Baseline Profile 및 마이크로소프트의 VC-1보다 약간 더 나은 성능을 보여야 한다. 인코딩은 Xvid와 VC-1 사이의 성능을 보이며, 디코딩은 FFmpeg의 H.264보다 느리지만, H.264와의 유사성 때문에 개선이 어렵다. 압축 측면에서 VP8은 Theora 및 Dirac보다 더 나은 성능을 제공한다.
2017년 현재, 동등한 품질을 가진 H.264가 널리 보급되었고, 구글도 후속 버전인 VP9으로 이행했기 때문에 VP8로 새롭게 인코딩하는 이점은 적다.
9. 인코더 파라미터
VP8 인코더는 품질 조정을 위한 다양한 매개변수를 제공한다.[21] 다음은 libvpx에 포함된 vpxenc의 매개변수이며, FFmpeg 등을 사용할 때는 다른 매개변수를 이용해야 한다.
- CPU 부하: 화질과 반비례 관계를 가지며, `--best`, `--good`, `--rt` 옵션을 통해 조절할 수 있다.
- 비트 전송률: CBR (고정 비트 전송률), VBR (가변 비트 전송률), CQ (제한된 품질) 방식을 지원한다.
- 패스: 원 패스, 투 패스 방식을 선택할 수 있으며, 실시간 압축에는 원 패스 방식이 적합하다.
- 키 프레임 간격: 장면 전환 시 자동으로 키 프레임이 삽입되지만, 간격의 최솟값과 최댓값을 지정할 수 있다.
- 스레드 수: `--threads` 및 `--token-parts` 옵션을 통해 스레드 수를 조절하고 병렬 처리를 활성화할 수 있다.
- 리샘플링: 시간축 (프레임 드롭) 및 해상도 리샘플링을 통해 품질을 조절할 수 있다.
- 화상 회의용: 패킷 손실 내성, 이미지 변화 감지 임계값 등을 설정할 수 있다.
- 프로파일: 디코딩 부하를 낮추는 프로파일을 지정할 수 있다.
9. 1. 프레임 레이트
VP8 인코더는 다양한 매개변수를 통해 품질을 조정할 수 있다. 다음은 libvpx에 포함된 vpxenc의 프레임 레이트 관련 매개변수이다.[21] FFmpeg 등을 사용할 때는 다른 매개변수를 이용해야 한다.CPU 부하는 화질과 반비례 관계에 있으며, 다음과 같은 두 가지 방법으로 설정할 수 있다.
- `--best` 또는 `--good`을 사용하여 CPU 부하를 고정하는 방법:
- `--best`: CPU 부하 1단계.
- `--good`: `--cpu-used`로 지정하며 6단계.
- 총 7단계가 있으며, CPU 부하를 1단계 올리면 계산량이 약 50% 증가한다.
- `--rt`를 사용하여 실제 CPU 사용률을 기반으로 CPU 부하를 결정하는 방법: CPU 사용률은 `--cpu-used`로 지정한다.
9. 2. CPU 부하
VP8 인코더는 CPU 부하를 조절하여 인코딩 속도와 화질 사이의 균형을 맞출 수 있다. CPU 부하를 조절하는 방법은 다음과 같다.[21]- `--best` 또는 `--good` 옵션을 사용하여 CPU 부하를 고정하는 방법:
- `--best`: 가장 높은 품질, CPU 부하 1단계.
- `--good`: `--cpu-used` 옵션으로 CPU 부하를 6단계로 지정 가능 (총 7단계).
- CPU 부하를 1단계 높이면 계산량이 약 50% 증가한다.
- `--rt` 옵션을 사용하여 실제 CPU 사용률에 따라 CPU 부하를 결정하는 방법:
- `--cpu-used` 옵션으로 CPU 사용률을 지정한다.
FFmpeg 등을 사용할 때는 다른 매개변수를 이용해야 한다.
9. 3. 비트 전송률
VP8 인코더는 다양한 비트 전송률 제어 방식을 지원한다.[21]- CBR(고정 비트 전송률): 목표 비트 전송률을 정하고, 그에 맞춰 화질을 조정한다. 패킷 크기가 완전히 고정되지는 않는다.
- VBR(가변 비트 전송률): CBR과 마찬가지로 목표 비트 전송률을 정하고 화질을 조정하는 방식이다.
- CQ(제한된 품질): 화질을 고정하고 비트 전송률을 가변으로 한다. CQ에서도 상한 비트 전송률을 지정할 수 있다.
9. 4. 패스
VP8 인코더는 원 패스(one-pass) 또는 투 패스(two-pass) 방식으로 비디오를 변환할 수 있다.[21] 실시간 압축이 필요한 경우에는 원 패스 방식을 사용해야 한다. 투 패스 방식은 변환 처리를 두 번 반복하여 더 효율적인 압축을 가능하게 하지만, 실시간 처리에는 적합하지 않다.9. 5. 키 프레임 간격
VP8 인코더는 장면 전환 시 자동으로 키 프레임을 삽입하지만, 필요한 경우 키 프레임 간격의 최솟값과 최댓값을 지정할 수 있다.[21]9. 6. 스레드 수
인코딩에 사용되는 스레드 수는 `--threads
`로 지정할 수 있다. `--token-parts
`를 지정하지 않고 스레드 수를 지정하면 엔트로피 인코딩 부분에서 1개의 스레드가 된다. 하지만 `--token-parts
`를 사용하면 화면을 분할하여 병렬 처리를 할 수 있게 된다.[21]9. 7. 리샘플링
VP8 인코더는 리샘플링을 통해 비디오 품질을 조절할 수 있다.[21]- 시간축 리샘플링: 프레임 드롭을 통해 이루어지며, 고정 비트 전송률(CBR)에서만 사용된다.
- 해상도 리샘플링: 해상도를 자동으로 변경하여 조절하며, 키 프레임에서만 사용된다.
9. 8. 화상 회의용 파라미터
VP8 인코더는 화상 회의에 유용한 여러 파라미터를 제공한다.- 패킷 손실 내성: 패킷 손실이 발생하는 환경에서 영상 품질 저하를 최소화하기 위해 내성을 부여할 수 있다.
- 이미지 변화 감지 임계값: 이미지에 변화가 없을 때 이를 감지하는 임계값을 조정하여 불필요한 데이터 전송을 줄일 수 있다.[21]
9. 9. 프로파일
VP8 인코더는 디코딩 부하를 낮추는 프로파일을 지정할 수 있다.[21]10. 하드웨어 가속
VHDL 및 Verilog로 작성된 하드웨어 인코딩 및 디코딩 소스 코드가 공개되어 있다. 65nm 공정 규칙에서 1080p 동영상 디코딩은 25mW, 720p 동영상 인코딩은 80mW로 수행할 수 있다.[22]
VP8 하드웨어 인코더 및 디코더는 다양한 SoC에 채용되고 있다. (자세한 내용은 하위 섹션 참조)
10. 1. 하드웨어 인코더
핀란드의 WebM 프로젝트 하드웨어 팀은 반도체 제조업체에서 무료로 사용할 수 있는 VP8용 RTL 하드웨어 인코더를 출시했다.Nvidia의 테그라 모바일 칩셋은 VP8 하드웨어 인코딩 및 디코딩을 완벽하게 지원한다.(테그라 4부터)
넥서스 5는 하드웨어 인코딩을 사용할 수 있다. 하드웨어에서 인코딩 및 디코딩을 위한 VHDL 및 Verilog로 작성된 소스 코드가 공개되어 있다. 공정 규칙 65nm에서 1080p 동영상 디코딩은 25mW, 720p 동영상 인코딩은 80mW로 수행할 수 있다.[22]
하드웨어 인코더는 다음 SoC 등에서 채용되고 있다.
SoC 제품군 | 제조사 |
---|---|
NVIDIA Tegra 4, K1, X1 | 엔비디아 |
Rockchip RK3066, RK3188 | 락칩 |
10. 2. 하드웨어 디코더
SoC | 제조사 | 비고 |
---|---|---|
Allwinner A10, A13 | 올위너 | |
BCM28150 | Broadcom | |
i.MX 6 | 프리스케일 | |
K3V2 | HiSilicon | |
아마다 1500 | 마벨 | |
NS115 | Nufront | |
NVIDIA Tegra 3, 4, K1, X1 | NVIDIA | |
RK2918, RK3066, RK3188 | Rockchip | |
Exynos 5 | 삼성 | |
NovaThor L9540 | ST-Ericsson | |
Texas Instruments OMAP 5 | TI | |
ZMS40 | Ziilabs |
11. IVF 파일
WebM 외에, WebM과 관련 없는 단순한 구조를 가진 독자적인 형식인 IVF가 명령 줄 도구 및 샘플 코드 형태로 사용되고 있다. IVF는 Indeo Video Format와는 관련이 없다.
11. 1. 파일 헤더
IVF 파일은 헤더 선두에 4바이트 시그니처(매직 넘버) "DKIF"를 갖는다. 수치는 리틀 엔디안을 채용하고 있다. 헤더는 다음과 같다.[1]바이트 수 | 값 | 설명 |
---|---|---|
4 | D K I 'F' | 시그니처 |
2 | 00 00 | 버전 |
2 | 20 00 | 헤더 크기 (32바이트) |
4 | V P 8 '0' | FourCC |
2 | 너비 | |
2 | 높이 | |
4 | 프레임 레이트 (분모) | |
4 | 프레임 레이트 (분자) | |
4 | 프레임 수 | |
4 | 00 00 00 00 | 미사용 |
11. 2. 프레임 헤더
IVF 파일의 프레임 헤더는 다음과 같은 구조를 갖는다.바이트 수 | 값 | 설명 |
---|---|---|
4 | 프레임 크기(헤더 포함 안 함) | |
8 | 프레젠테이션 타임 스탬프(Presentation Time Stamp, PTS) |
참조
[1]
웹사이트
Microsoft: Internet Explorer 9 To Support VP8 – OSnews
https://www.osnews.c[...]
2022-10-22
[2]
웹사이트
Google to Open-source VP8 for HTML5 Video
http://newteevee.com[...]
2010-04-12
[3]
웹사이트
HTML5 +
[4]
문서
libvpx/CHANGELOG at master · webmproject/libvpx
https://github.com/w[...]
[5]
뉴스
GoogleがOn2の買収を完了、FSFが「VP8」フリー化を求める書簡を発表
https://www.itmedia.[...]
[6]
블로그
Introducing WebM, an open web media project
http://webmproject.b[...]
[7]
블로그
Re: vlc-commits commit: Contrib: support for vpx with HACKS (Jean-Baptiste Kempf )
http://comments.gman[...]
[8]
패치
FFmpeg-devel PATCH VP8 de/encode via libvpx
http://lists.mplayer[...]
[9]
블로그
Changes to the WebM Open Source License
http://webmproject.b[...]
[10]
뉴스
Xiph.Org Announces Support for WebM Open Media Project
http://www.osnews.co[...]
[11]
블로그
Firefox, YouTube and WebM
http://hacks.mozilla[...]
[12]
블로그
Flash Player Will Support VP8
http://blogs.adobe.c[...]
[13]
문서
Supported codecs | Flash Player
https://helpx.adobe.[...]
[14]
뉴스
Google、Web高速化を目指し新画像フォーマット「WebP」を発表 - ITmedia
https://www.itmedia.[...]
[15]
분석
The first in-depth technical analysis of VP8
http://x264dev.multi[...]
[16]
뉴스
Google’s “Royalty-Free” WebM Video May Not Be Royalty-Free for Long
http://digitaldaily.[...]
[17]
뉴스
MPEG LA、WebMの基盤技術「VP8」の特許を募集 - ITmedia
https://www.itmedia.[...]
[18]
뉴스
GoogleとMPEG LA、VP8で和解 パテントプール形成は終了 - ITmedia ニュース
https://www.itmedia.[...]
[19]
웹사이트
Nokia、GoogleのビデオコーデックVP8の特許侵害容疑リストを提示
http://yro.slashdot.[...]
スラッシュドット・ジャパン
2013-04-30
[20]
블로그
The WebM Open Media Project Blog: Good News from Germany
http://blog.webmproj[...]
[21]
문서
The WebM Project | VP8 Encode Parameter Guide
http://www.webmproje[...]
[22]
문서
WebM Video Hardware RTLs
http://www.webmproje[...]
[23]
웹인용
VP8 Bitstream Specification License
https://www.webmproj[...]
WebM Project
2012-01-30
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com