| この記事には独自研究が含まれているおそれがあります。 問題箇所を検証し出典を追加して、記事の改善にご協力ください。議論はノートを参照してください。(2010年9月) |
VP8(ブイピーエイト)はGoogleに買収されたOn2テクノロジー社が開発した、ビデオコーデックの一つである[2]。
概要
2010年5月19日、Google I/OにてBSDライセンススタイルの、特許対応を計った修正ライセンスでオープンソースソフトウェアとなることが発表され[3]、その後Matroskaベースの独自フォーマットWebMと共にオープンソース化された。このライセンスはGPLとの互換性の問題が指摘されていたが[4][5]、その後のライセンス変更によって特許条項を削除したために問題は解消している[6]。開発においてはXiph.Orgが協力している[7]。
GoogleはYouTubeにおいて、全ての動画をWebMに変換すると表明した[8]。また、ブラウザを開発するMozillaはFirefoxをWebMに対応させ[8]、Operaもまた同様の対応をとった。Adobeは将来Adobe Flash PlayerでVP8コーデックを再生できるようにするという計画を2010年に出したが[9]、結局、その後も対応させることはなかった[10]。同等の品質を持つH.264が広く普及したこと、またGoogleも後継のVP9に移行しているため、2017年現在VP8で新たにエンコードする利点は少ない。
GoogleはVP8の技術を利用した静止画フォーマットWebPも開発している[11]。
特許
オープンソース化された初日に、x264の開発者の一人Jason Garrett-Glaserは、自身のブログにおいてVP8の技術的評価とともに特許係争への懸念を記して[12]おり、また、その翌日、H.264関連の特許を管理するライセンス管理会社MPEG LAが、VP8に関してパテントプールを作成しライセンス料の徴収を考えている旨の発言をした[13]。2011年2月10日〜3月18日にMPEG LAは必須特許の募集を行った[14]。
2013年3月7日に、特許問題に関してGoogleがMPEG LAに参加する11社が保有する特許についてライセンスを結ぶことで合意したと発表され、今後はGoogleが利用者に対してW3CのRoyalty Free Licenseとしてライセンスを無償で供与することとなり、訴訟リスクについて一区切り付くことになった[15]。
2013年3月21日に、MPEG LAに加入していないNokiaがVP8の特許侵害を申し立てた[16]。2013年8月5日、ドイツの裁判所はVP8がノキアの特許を侵害していないという判断をくだした[17]。
エンコーダ・パラメータ
エンコーダの品質調整のためのパラメータが多数ある。以下は、libvpx 付属の vpxenc のパラメータ[18]。FFmpegなどを使う際は、違うパラメータを利用する必要がある。
- フレームレート
- CPU負荷 - 以下の2通りある。画質とのトレードオフになる。
--best
または --good
を使い、CPU負荷を固定にする方法。CPU負荷は --best
が1段階、--good
は --cpu-used
で指定し6段階、合計7段階ある。CPU負荷を1段階上げると計算量が約50%増える。
--rt
を使い、実際のCPU使用率を元にCPU負荷を決める方法。CPU使用率は --cpu-used
で指定。
- ビットレート
- CBR (constant bitrate), VBR (variable bitrate) - 目標ビットレートを決め、それにあわせて画質を調整。ただし、CBRでもパケットサイズは完全に固定になるわけではない。
- CQ (constrained quality) - 画質を固定にし、ビットレートを可変にする。CQでも上限ビットレートを指定できる。
- ワンパス, ツーパス - 変換処理を1回で終えるか、2周させるかどうか。リアルタイム圧縮が必要な場合は、ワンパスにしないといけない。
- キーフレームの間隔 - シーンカットで自動的にキーフレームが入るが、その間隔の最小値と最大値を指定できる。
- スレッド数の指定 および
--token-parts
の指定。--token-parts
を指定せずにスレッド数を --threads
で指定した場合、エントロピーエンコーディングのところで1スレッドになってしまうが、--token-parts
を使うと、画面を分割して並列処理できるようになる。
- 再サンプリング
- 時間軸 - フレームのドロップ。CBRでのみ使用。
- 解像度 - 解像度を自動的に変更して調整できる。キーフレームのみで使用。
- ビデオカンファレンス用
- パケットロスが発生するケースで、それに対して耐性を付けるかどうか
- 画像に変化がないことを検出する閾値
- プロファイル - デコード負荷を下げるようなプロファイルを指定できる
ハードウェア・デコーダ・エンコーダ
ハードウェアでエンコード・デコードするためのVHDLおよびVerilogで書かれたソースコードが公開されている。プロセスルール65nmで1080pの動画デコードが25mW、720pの動画エンコードが80mWで行える[19]。
ハードウェアエンコーダは以下のSoCなどで採用されている。
ハードウェアデコーダは以下のSoCなどで採用されている。
IVFファイル
コマンドラインツールおよびサンプルコードのフォーマットとして、WebMに加えて、WebMとは関係の無いシンプルな構造の独自フォーマットIVFが使われている。これは、Indeo Video Formatとも別物である。
ファイルヘッダ
IVFファイルはヘッダの先頭に4バイトのシグネチャ(マジックナンバー)"DKIF"を持つ。数値はリトルエンディアンを採用している。ヘッダーは次の通り。
バイト数
|
値
|
説明
|
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
|
未使用
|
フレームヘッダ
バイト数
|
値
|
説明
|
4
|
|
フレームサイズ(ヘッダを含めず)
|
8
|
|
Presentation Time Stamp (PTS)
|
参照
- ^ libvpx/CHANGELOG at master · webmproject/libvpx
- ^ GoogleがOn2の買収を完了、FSFが「VP8」フリー化を求める書簡を発表
- ^ Introducing WebM, an open web media project
- ^ Re: vlc-commits commit: Contrib: support for vpx with HACKS (Jean-Baptiste Kempf )
- ^ FFmpeg-devel PATCH VP8 de/encode via libvpx
- ^ Changes to the WebM Open Source License
- ^ Xiph.Org Announces Support for WebM Open Media Project
- ^ a b Firefox, YouTube and WebM
- ^ Flash Player Will Support VP8
- ^ Supported codecs | Flash Player
- ^ Google、Web高速化を目指し新画像フォーマット「WebP」を発表 - ITmedia
- ^ The first in-depth technical analysis of VP8
- ^ Google’s “Royalty-Free” WebM Video May Not Be Royalty-Free for Long
- ^ MPEG LA、WebMの基盤技術「VP8」の特許を募集 - ITmedia
- ^ GoogleとMPEG LA、VP8で和解 パテントプール形成は終了 - ITmedia ニュース
- ^ “Nokia、GoogleのビデオコーデックVP8の特許侵害容疑リストを提示”. スラッシュドット・ジャパン (2013年3月27日). 2013年4月30日閲覧。
- ^ The WebM Open Media Project Blog: Good News from Germany
- ^ The WebM Project | VP8 Encode Parameter Guide
- ^ WebM Video Hardware RTLs
関連項目
外部リンク