VP8

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索
VP8
拡張子 .webm .avi
開発者 Google/On2テクノロジー
種別 動画圧縮コーデック
包含先 WebM, AVI
国際標準 RFC 6386
公式サイト www.webmproject.org
テンプレートを表示
libvpx (VP8 コーデックライブラリー)
開発元 Google
初版 2010年5月18日 (2010-5-18)
最新版 1.3.0[1] / 2013年11月15日(11か月前) (2013-11-15
プログラミング言語 C言語
対応OS Windows, OS X, Unix系
種別 動画圧縮コーデック
ライセンス 修正BSDライセンス
公式サイト www.webmproject.org/docs/vp8-sdk/
テンプレートを表示

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コーデックを再生できるようにするとしている[9]

GoogleはVP8の技術を利用した静止画フォーマット WebP も開発している[10]

特許[編集]

オープンソース化された初日に、x264の開発者の一人Jason Garrett-Glaserは、自身のブログにおいてVP8の技術的評価とともに特許係争への懸念を記して[11]おり、また、その翌日、H.264関連の特許を管理するライセンス管理会社MPEG LAが、VP8に関してパテントプールを作成しライセンス料の徴収を考えている旨の発言をした[12]。2011年2月10日〜3月18日にMPEG LAは必須特許の募集を行った[13]

2013年3月7日に、特許問題に関して Google が MPEG LA に参加する11社が保有する特許についてライセンスを結ぶことで合意したと発表され、今後はGoogle が利用者に対して W3C の Royalty Free License としてライセンスを無償で供与することとなり、訴訟リスクについてひと段落が付くことになった。[14]

2013年3月21日に、MPEG LA に加入していない Nokia が VP8 の特許侵害を申し立てた[15]

エンコーダ・パラメータ[編集]

エンコーダの品質調整のためのパラメータが多数ある。以下は、libvpx 付属の vpxenc のパラメータ[16]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で行える[17]

ハードウェアエンコーダは以下の SoC などで採用されている。

ハードウェアデコーダは以下の SoC などで採用されている。

IVFファイル[編集]

IVF
拡張子 .ivf
開発者 Google/On2テクノロジー
種別 ビデオコーデック
テンプレートを表示

コマンドラインツールおよびサンプルコードのフォーマットとして、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)

参照[編集]

  1. ^ webm/libvpx - Git at Google
  2. ^ GoogleがOn2の買収を完了、FSFが「VP8」フリー化を求める書簡を発表
  3. ^ Introducing WebM, an open web media project
  4. ^ Re: vlc-commits commit: Contrib: support for vpx with HACKS (Jean-Baptiste Kempf )
  5. ^ FFmpeg-devel PATCH VP8 de/encode via libvpx
  6. ^ Changes to the WebM Open Source License
  7. ^ Xiph.Org Announces Support for WebM Open Media Project
  8. ^ a b Firefox, YouTube and WebM
  9. ^ Flash Player Will Support VP8
  10. ^ Google、Web高速化を目指し新画像フォーマット「WebP」を発表 - ITmedia
  11. ^ The first in-depth technical analysis of VP8
  12. ^ Google’s “Royalty-Free” WebM Video May Not Be Royalty-Free for Long
  13. ^ MPEG LA、WebMの基盤技術「VP8」の特許を募集 - ITmedia
  14. ^ GoogleとMPEG LA、VP8で和解 パテントプール形成は終了 - ITmedia ニュース
  15. ^ Nokia、GoogleのビデオコーデックVP8の特許侵害容疑リストを提示”. スラッシュドット・ジャパン (2013年3月27日). 2013年4月30日閲覧。
  16. ^ The WebM Project | VP8 Encode Parameter Guide
  17. ^ WebM Video Hardware RTLs

関連項目[編集]

外部リンク[編集]