MPEG-LA에서 WebM에 대응되는 특허를 모으기 시작했습니다.

얼마 전 구글에서는 라이센스가 필요하다는 이유로 chrome 브라우져에서 h.264/AVC에 대한 지원을 그만두겠다는 이야기를 전했습니다.

하지만 예전 글에서 써놨듯이 WebM의 비디오 코덱인 VP8은 h.264/AVC와 유사한 부분이 굉장히 많기 때문에 특허에서 자유로울 수 없다고 생각하고 있었는데요. 드디어 MPEG-LA에서 VP8에 대한 대응을 시작한 것으로 보입니다.

2월 10일 MPEG-LA에서는 Call for patents를 발표했고, 3월 18일까지 제출된 특허들을 바탕으로 VP8에 해당 특허가 꼭 필요한 부분인지를 판단한 후 그런 특허들이 있다면 특허풀을 구성할 예정입니다.

그리고 특허풀이 만들어지게 되면, 관련 특허를 가진 회사들의 의견을 바탕으로 라이센스 방식을 결정하게 될 것이라고 하는데요. 이렇게 될 경우 구글에서 원했던 license free 정책은 쉽지 않을 것으로 예상됩니다.

결국 VP8이 가질 수 있는 장점이 거의 없을 것 같네요. H.264/AVC 같은 경우는 이미 많은 하드웨어 가속 칩들이 생산되어 있고, 또한 소프트웨어 인코더/디코더도 다양한 언어/라이센스로 배포되고 있기 때문에 사용하는 입장에서도 VP8보다는 H.264/AVC가 더 편리할 것이라는 거죠.

물론 특허풀이 형성되지 못할 가능성이 없는건 아닙니다. 이렇게 된다면 html5의 video 태그라거나 혹은 라이센스 비용을 감당할 수 없는 작은 단체들에게 VP8은 좋은 대안이 될 수 있을거라 생각합니다만 이렇게 될 가능성은 많지 않을 것으로 보이네요.

관심 있으신 분은 아랫 글도 읽어보시면 재밌을 것 같아요.

http://arstechnica.com/web/news/2011/02/mpeg-la-starts-the-search-for-vp8-patents.ars

덧: MPEG에서는 h.264/AVC의 baseline profile과 비슷한 성능을 낼 수 있는 license free 코덱을 표준화하려고 계획하고 있습니다. 아마도 중국에서 만든 AVS를 기반으로 시작할 것으로 예상되는데, MPEG-LA에서 VP8을 괴롭히는 것은 이 코덱과도 연관이 없진 않을 것 같네요.

WebM 조금 이르지 않을까?

Table of Contents

Introduction

Google I/O 2010에서 구글은 WebM이란 프로젝트를 발표했다.

WebM이란 HTML Video 등에 사용될 수 있도록 오픈소스/스펙으로 배포되는 동영상(비디오+오디오+컨테이너) 프로젝트로 다음과 같이 구성되어 있으며, 라이센스를 낼 필요가 없다는 점을 굉장히 강조하고 있다.

Table 1. WebM의 구성 요소
구분 기반
컨테이너 Matroska
비디오 On2 VP8
오디오 Ogg Vorbis

어쨌든 구글이 WebM을 내놓게 되면서 Firefox, Opera, IE, Safari 등의 브라우져에서 WebM을 지원하겠다라고 선언했고 (Safari를 제외한 메이져 브라우져는 전부인 듯) 구글 같은 경우 유튜브에서 WebM도 지원하도록 하겠다는 말을 남겼다.

그런데 정말 WebM의 라이센스가 Free인 것을 보장받을 수 있을까? 그리고 정말 On2의 주장에서처럼 VP8은 H.264/AVC보다 더 좋은 성능을 보이는 것일까? 라는 의문이 들었다.

H.264/AVC vs VP8

사실 최근 굉장히 많은 비디오 코덱들이 사용되고 있지만 실제 비디오 코딩에 사용되는 알고리즘은 다 다음과 같은 스킴을 사용하고 있다.

Encoder: Prediction(Inter, Intra)Inter는 현재 프레임 만을 이용해서 예측하는 것이 아니라 이미 복원된 프레임을 이용해서 예측한다는 것을 의미하며, Intra는 현재 프레임(그것도 이미 인코딩/디코딩되어있는 현재 프레임) 만을 이용해서 예측을 진행한다는 것을 의미한다. – Transform – Quantization – Entropy Coding – (In-loop filtering)
Decoder: Inverse entropy coding – Inverse Quantization – Inverse Transform – Prediction – (In-loop filtering)

물론 위 프로세스를 프레임 단위로 하는 것은 아니고 특정 사이즈의 block 단위로 위 프로세스를 거치게 된다.

하여튼 위의 내용을 바탕으로 x264 진영에 올라온 ‘The first in-depth technical analysis of VP8‘를 살펴보자.

H.264/AVC에서 각 파트를 위해 사용하는 기술과 VP8에서 사용하는 기술을 비교해보면 다음과 같다.

Table 2. H.264/AVC와 VP8의 파트별 기술 비교
구분 H.264/AVC On2 VP8
Intra prediction 9 방향의 4×4, 9 방향의 8×8, 4방향의 16×16 H.264/AVC의 4×4 모드, 16×16 모드의 동일하며, 8×8 모드는 없음
Ref frame 개수 up to 16 up to 3 (이전 프레임, 골든 프레임, alt ref 프레임)
양방향 예측 (B-frame) 가능 불가능
파티션 타입 16×16, 16×8, 8×16, 8×8, 8×4, 4×8, 4×4 16×16, 16×8, 8×16, 8×8, 4×4
Sub-pel 모션 탐색 1/2 및 1/4 픽셀 단위 1/2 및 1/4 픽셀 단위
Transform 단순화 된 DCT 단순화 된 DCT (H.264/AVC보단 덜 단순화)
Entropy Coding 바이너리에 대한 적응적 Arithmetic coding or VLC 기반의 엔트로피 코더 바이너리에 대한 Arithmetic coding으로 비트에 대한 확률 정보는 전송 필요
In-loop filter 적응적 Deblocking filter H.264/AVC의 그것과 비슷하지만 적응적이지는 않은 Deblocking filter

얼핏 봐도 H.264/AVC에 적용된 기술들에 비해 VP8에 새롭게 적용된 기술이 없음을 알 수 있다. 있다면 골든 프레임과 Alt ref(?) 프레임 정도? 그 외엔 H.264/AVC에 사용된 기술의 minor modification 정도라고 얘기할 수 있을 듯. 그리고 양방향 예측시간 축 상에서 봤을 때 앞에 위치한 프레임과 뒤에 위치한 프레임 모두에서 예측하는 방식으로 양방향 예측으로 인한 압축 효율 이득은 평균 10~20% 정도이다.이 빠졌기 때문에 압축 효율 상의 불이익이 있을 수 밖에 없다.

그리고 H.264/AVC Baseline Profile에는 CABAC(Context adaptive Arithmetic Coder) 대신 CAVLC가 사용되었으므로, 엔트로피 코더 면에선 VP8이 H.264/AVC BP보다 더 좋은 성능을 보일 수도 있겠다는 생각이 든다.

어쨌든 VP8은 성능 면에서 H.264/AVC와 대적할 수 없을 것으로 보이며, 실제 x264의 분석에서도 동일한 내용이 보고되고 있다.

WebM은 정말 License free를 보장해줄 수 있을까?

지난 며칠건 WebM과 관련된 글들이 올라올 때마다 드는 의문이 있다. 과연 WebM이 특허 문제에서 자유로울수 있을까 하는 것이 바로 그것이다.

사실 특허 문제를 검색해보면, H.264/AVC에 적용된 특허들 중 대다수가 VC-1에도 적용되어 있다. 그럴 수밖에 없는게 앞에서 얘기했다시피 다 기술 조합 방식의 차이이고, 어떤 기술에 대한 minor modification 들이기 때문에 원천 특허가 있을 경우 이를 피해가기가 거의 불가능하다.

살펴봤듯이 VP8의 Intra predictio은 H.264/AVC의 그것과 동일하다. H.264/AVC에 적용된 특허가 그대로 적용될 수 있다는 것이다. In-loop filter 같은 경우도 마찬가지로 H.264/AVC에 적용된 특허를 피해갈 수 없을 것으로 생각되며 그 외의 다른 부분들에 대해서도 아직 노출되지 않은 수많은 특허들을 침해하고 있을 지도 모른다.

JPEG과 특허 괴물의 사례

얼마 전 JPEG을 위기에 몰아넣었던 사례가 있다. 원래 JPEG 계열은 라이센스 프리를 목적으로 표준화된 포멧이지만, 어느 날 갑자기 어떤 회사가 혜성처럼 나타나 JPEG이 자신들의 특허를 침해하고 있다며 큰 회사들을 상대로 특허권 침해 소송을 한 사건이 바로 그것이다.

그 결과 MS, S-, … 등 많은 회사에서 거액의 특허권료를 지불해야했던 사건이 있었으며, 이로 인해 JPEG에 대한 특허 재심사 요구까지 생겨났고, 무료 표준으로써의 JPEG이 존폐 위기를 맞을뻔 했었다.

VP8은 아직 위험하다.

VP8은 아직 위험하다. 침해하는 특허 등에 대한 제대로된 분석 없이 구글의 언론 플레이에 휩싸여 VP8을 지원하는 것은 정말 위험할 수 있다.

H.264/AVC, VC-1 등은 MPEG-LA를 통해 특허를 침해하지 않으면서 안전하게 사용할 수 있는 합리적 라이센스료를 보장하고 있다. 하지만 VP8은 다르다. 라이센스 프리라고 주장하고 있지만 이면을 살펴보면 특허 침해로 인해 라이센스료를 내는 것보다 더 많은 금액을 들여야할 지도 모른다.

Web에 사용되는 기술이라면 굉장히 파급효과가 큰 만큼 특허를 침해하는 기술을 사용했을 때 오는 반동이 그만큼 더 커질 수 있으며, 이런 상황을 봤을 때 신중할 필요가 있다고 생각한다.

오픈소스는 라이센스 프리를 의미하지 않는다. 구글이 이걸 모르지 않을거라 생각하는데, 무슨 생각인 건지 난 잘 모르겠다.

학생분들은 이제 MS 개발툴을 무료로 사용할 수 있습니다.

컴퓨터 공학을 전공하다보면 실습을 해야할 일이 잦은데, 무료로 나와있는 편리한 개발툴이 많지 않다보니 불법 소프트웨어를 사용하는 일이 잦은 형편입니다. 아무래도 Visual Studio 등의 비싼 가격도 이런 현실에 한 몫해온 것이 사실이죠.

물론 Visual Studio Express Edition 이란 이름으로 MFC 등이 빠진 버젼을 학생들에게 무료 배포하곤 했지만, OpenGL 이라거나 MFC 등을 실습해야 하는 경우에는 이것으로 커버하기가 쉽지 않았던 것이 사실입니다.

하지만 대학생들에 한해서는 더 이상 불법 소프트웨어로 실습할 필요가 없어졌습니다.. Microsoft 에서 개발 툴들을 대학생들에 한해 무료 배포하기 시작했거든요.

http://www.microsoft.com/korea/msdn/dreamspark/index.aspx

위 URL 을 참고해보시면 알겠지만, Visual Studio 2005/2008 Professional Edition 에 국한되는 것이 아니라 Expression Studio 라거나 Windows Server 2008 Standard Edition, SQL Server 2008 Developer/Express Edition 까지 포함하고 있습니다. 용도에는 맞지는 않더라도 Windows Server 2008 를 사용하면 OS 마저 무료로 사용할 수 있겠습니다.

물론 우분투에서 gcc 와 eclipse, mysql 등을 사용하는 것도 좋은 선택일 수 있겠지만, 라이센스나 추가 비용을 걱정하지 않고 실습 할 수 있는 또 하나의 적법한 환경이 생겼다는 점은 상당히 고무적이네요.