VP8
| 拡張子 | .webm .avi |
|---|---|
| 開発者 | Google/On2テクノロジー |
| 種別 | 動画圧縮コーデック |
| 包含先 | WebM, AVI |
| 国際標準 | RFC 6386 |
| 公式サイト | www.webmproject.org |
| 開発元 | |
|---|---|
| 初版 | 2010年05月18日 |
| 最新版 | 1.2.0[1] / 2012年12月21日 |
| プログラミング言語 | 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]。
エンコーダ・パラメータ [編集]
エンコーダの品質調整のためのパラメータが多数ある。
- CPU - 以下の2通りある
--bestまたは--goodを使い、画質を元に CPU 負荷を指定する方法。CPU負荷は--cpu-usedで指定。--rtを使い、実際の CPU 使用率を元に CPU 負荷を決める方法。CPU 使用率は--cpu-usedで指定。
- ビットレート
- CBR (constant bitrate), VBR (variable bitrate) - 目標ビットレートを決め、それにあわせて画質を調整。ただし、CBRでもパケットサイズは完全に固定になるわけではない。
- CQ (constrained quality) - 画質を固定にし、ビットレートを可変にする。CQ でも上限ビットレートを指定できる。
- ワンパス, ツーパス - 変換処理を1回で終えるか、2周させるかどうか。リアルタイム圧縮が必要な場合は、ワンパスにしないといけない。
- キーフレームの間隔 - シーンカットで自動的にキーフレームが入るが、その間隔の最小値と最大値を指定できる。(ただし、バージョン1.1現在、最小値はまだ未実装)
- スレッド数の指定 および
--token-partsの指定。--token-partsを指定せずにスレッド数を--threadsで指定した場合、エントロピーエンコーディングのところで1スレッドになってしまうが、--token-partsを使うと、画面を分割して並列処理できるようになる。 - 再サンプリング
- 時間軸 - フレームのドロップ。CBR でのみ使用。
- 解像度 - 解像度を自動的に変更して調整できる。キーフレームのみで使用。
- ビデオカンファレンス用
- パケットロスが発生するケースで、それに対して耐性を付けるかどうか
- 画像に変化がないことを検出する閾値
ハードウェア・デコーダ・エンコーダ [編集]
ハードウェアでエンコード・デコードするための VHDL および Verilog で書かれたソースコードが公開されている。プロセスルール65nmで1080pの動画デコードが25mW、720pの動画エンコードが80mWで行える[15]。
ハードウェアエンコーダは以下の SoC などで採用されている。
- NVIDIA Tegra 4
- Rockchip RK3066, RK3188
ハードウェアデコーダは以下の SoC などで採用されている。
- Allwinner A10, A13
- Broadcom BCM28150
- Freescale i.MX 6
- HiSilicon K3V2
- Marvell Armada 1500
- Nufront NS115
- NVIDIA Tegra 3, 4
- Rockchip RK2918, RK3066, RK3188
- Samsung Exynos 5
- ST-Ericsson NovaThor L9540
- Texas Instruments OMAP 5
- Ziilabs ZMS40
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]
- ^ 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
- ^ 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 ニュース
- ^ WebM Video Hardware RTLs
関連項目 [編集]
外部リンク [編集]
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||