VP8

VP8とは



VP8(ブイピーエイト)は、On2テクノロジー社によって開発されたビデオコーデックであり、後にGoogleに買収されました。2010年5月19日、Google I/OにてBSD[[ライセンス]]を基にした修正ライセンスでオープンソースソフトウェアとして公開され、MatroskaベースのWebMフォーマットと共に広く利用されるようになりました。

オープンソース化とライセンス



当初、VP8のライセンスはGPLとの互換性に関して問題が指摘されていましたが、その後のライセンス変更によって特許条項が削除され、問題は解消されました。開発にはXiph.Orgが協力しています。

GoogleYouTubeにおいて全ての動画をWebMに変換すると発表しました。また、MozillaのFirefoxやOperaなどのブラウザもWebMに対応しました。一方、AdobeはFlash PlayerでのVP8コーデックの再生計画を発表しましたが、その後、対応は見送られました。

現在では、同等の品質を持つH.264が広く普及し、Googleも後継のVP9に移行しているため、VP8で新たにエンコードするメリットは少なくなっています。

WebPとの関連



GoogleはVP8の技術を応用して、静止画フォーマットであるWebPも開発しています。

特許問題



VP8のオープンソース化直後には、特許に関する懸念が浮上しました。x264の開発者であるJason Garrett-Glaserは、VP8の技術的な評価と共に特許係争の可能性を指摘しました。さらに、H.264関連の特許を管理するMPEG LAが、VP8に関するパテントプールの作成とライセンス料の徴収を検討していると発表しました。

2011年には、MPEG LAが必須特許の募集を開始しました。しかし、2013年3月7日GoogleがMPEG LAに参加する11社が保有する特許についてライセンス契約を結んだと発表しました。これにより、Googleが利用者に対してW3CのRoyalty Free Licenseとして無償でライセンスを提供することになり、訴訟リスクは解消されました。

しかし、2013年3月21日には、MPEG LAに加入していないNokiaがVP8の特許侵害を申し立てました。しかし、同年8月5日、ドイツの裁判所はVP8がNokiaの特許を侵害していないという判決を下しました。

エンコーダパラメータ



VP8エンコーダには、画質調整のための様々なパラメータが用意されています。以下はlibvpx付属のvpxencのパラメータであり、FFmpegなどを使用する際は異なるパラメータを利用する必要があります。

CPU負荷



`best` または `good` を使用し、固定のCPU負荷を設定する方法。`best` が最も高く、`good` では `--cpu-used` で6段階の調整が可能。
`rt` を使用し、実際のCPU使用率を元に負荷を調整する方法。`cpu-used` で使用率を指定。

ビットレート



CBR(固定ビットレート):目標ビットレートに合わせて画質を調整。
VBR(可変ビットレート):目標ビットレートに合わせて画質を調整。
CQ(制約付き品質):画質を固定し、ビットレートを可変にする。上限ビットレートも設定可能。

その他



ワンパスまたはツーパス:変換処理の回数を指定。リアルタイム圧縮にはワンパスが必要。
キーフレームの間隔:シーンカットで自動的にキーフレームが入るが、その間隔の最小値と最大値を指定。
スレッド数と `token-parts`:`token-parts` を指定すると、画面を分割して並列処理が可能。
再サンプリング:時間軸でのフレームドロップや解像度の自動調整が可能。
ビデオカンファレンス用:パケットロス耐性や画像変化の閾値、デコード負荷を下げるプロファイル指定が可能。

ハードウェアデコーダ・エンコーダ



VP8のエンコード・デコードをハードウェアで行うためのVHDLおよびVerilogによるソースコードが公開されています。65nmプロセスルールでは、1080pの動画デコードが25mW、720pの動画エンコードが80mWで実行可能です。

ハードウェアエンコーダ採用SoC



NVIDIA Tegra 4, K1, X1
Rockchip RK3066, RK3188

ハードウェアデコーダ採用SoC



Allwinner A10, A13
Broadcom BCM28150
Freescale i.MX 6
HiSilicon K3V2
Marvell Armada 1500
Nufront NS115
NVIDIA Tegra 3, 4, K1, X1
Rockchip RK2918, RK3066, RK3188
Samsung Exynos 5
ST-Ericsson NovaThor L9540
Texas Instruments OMAP 5
Ziilabs ZMS40

IVFファイルフォーマット



コマンドラインツールおよびサンプルコードでは、WebMに加えて、シンプルな構造の独自フォーマットであるIVFも使用されます。IVFはIndeo Video Formatとは異なるものです。

ファイルヘッダ



IVFファイルは、ヘッダの先頭に4バイトのシグネチャ(マジックナンバー)である`DKIF`を持ちます。数値はリトルエンディアンを採用しています。ヘッダーの構造は以下の通りです。

シグネチャ(4バイト):`DKIF`
バージョン(2バイト)
幅(2バイト)
高さ(2バイト)
タイムベース分母(4バイト)
タイムベース分子(4バイト)
フレーム数(4バイト)
未使用(4バイト)

フレームヘッダ



フレームデータの前には以下のフレームヘッダが続きます。

フレームサイズ(4バイト)
タイムスタンプ(8バイト)

参照



VP3
VP6
VP7
VP9
HTML5
WebM
WebP

外部リンク



公式ウェブサイト

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。