【レポート】

VP8技術インサイド、VP8を特徴づける2つの圧縮技術を知る

    後藤大地  [2010/07/27]

    The WebM project is dedicated to developing a high-quality, open video format for the web that is freely available to everyone.

    Googleがオープンソースソフトウェアとして公開したビデオコーデックVP8で利用されている動画圧縮技術の紹介がThe WebM Open Media Project Blog: inside webmに掲載されている。VP8がどういった仕組みを使うことで品質を保ったまま高い圧縮率を実現しているのか知ることができ参考になる。

    VP8はブロックベースのコーデック。フレームをより小さなマクロブロックと呼ばれるブロックに分解して、マクロブロックごとに圧縮を実施する。VP8では4x4 luma、16x16 luma、8x8 chromaのマクロブロックが採用されている。ここでの「圧縮」は、周辺のデータやいくつか前のフレームからそのブロックのデータを予測する作業になるため、圧縮という言葉ではなく「予測」という言葉が使われる。VP8では古典的な次の2つの予測を採用しているという。

    • イントラ予測 - 単一フレーム内のデータのみを使用
    • インター予測 - 以前のエンコード済みデータも使用

    それ以外のデータについてはトランスフォームコーディングなどそのほかのテクニックを使ってエンコードを実施していると説明がある。

    1. イントラ予測

    イントラ予測はキーフレームに対して適用される。周辺ブロックのデータから対象ブロックのデータを推測する方法で、基本的に次の4つの方法が使われているという。

    1. 水平予測: 左のデータをコピー
    2. 垂直予測: 上のデータをコピー
    3. DC予測: 上と左のデータの平均値を使う
    4. トゥルーモーション予測: 上と左と左上のデータを使う

    VP8 Intra and Inter Predictionに掲載されている次の図をみるとどういった予測をおこなうものか理解しやすい。

    トゥルーモーション予測の例 - Inside WebM Technology: VP8 Intra and Inter Prediction - The WebM Open Media Project Blogより抜粋

    トゥルーモーション予測で予測されるデータは次の計算式で求められる。

    Xij = Li + Aj - C (i, j=0, 1, 2, 3)
    

    VP8のイントラ予測でもっとも多く使われているのは4のトゥルーモーション予測で、一般的なビデオシーケンスにおけるイントラ予測のうち、20%から40%がこの方法で圧縮されているという。VP8を特徴つけている機能のひとつとなっている。

    2. インター予測

    インター予測はノンキーフレームに対して適用される。3つのフレームからノンキーフレームのデータを推測する方法で、3つのフレームのどれかひとつからブロックをコピーすることを示すモーションベクタで構成される。ベクタは周辺のブロックから再利用することで圧縮率を上げている。またVP8では代替参照フレームという技術を使うことでこの予測元対象となるフレームをすべて保存せず、エンコード時に生成して使っている。これも高い圧縮率に一役かっている。

    VP8のインター予測で特徴的なのはSPLTMVと呼ばれる技術。マクロブロックをさらに細かいサブブロックへ分割する仕組みで、マクロブロックの内部が異なるモーション特性を持っている場合などに適用される。これもVP8 Intra and Inter Predictionに掲載されている次の図をみるとわかりやすい。

    インター予測SPLTMV技術 - Inside WebM Technology: VP8 Intra and Inter Prediction - The WebM Open Media Project Blogより抜粋

    インター予測SPLTMV技術 - Inside WebM Technology: VP8 Intra and Inter Prediction - The WebM Open Media Project Blogより抜粋

    左図は16x16のマクロブロックを、4x4のサブブロック16個へ分割し、それそれベクタを算出したもの。マクロブロックの周辺でベクタの再利用が実施されるように、サブブロックでも周辺のサブブロックのデータを再利用している。Newをベースにベクタを整理すると、右図のように3つの領域へ分解できることがわかる。

    関連記事

    関連サイト

    関連したタグ

    新着記事

    特設サイトの情報

      求人情報

      人気記事

      一覧

      イチオシ記事

      新着記事

      特別企画

      転職ノウハウ

      あなたの仕事適性診断

      4つの診断で、自分の適性を見つめなおそう!

      Heroes File ~挑戦者たち~

      働くこと・挑戦し続けることへの思いを綴ったインタビュー

      はじめての転職診断

      あなたにピッタリのアドバイスを読むことができます。

      転職Q&A

      転職に必要な情報が収集できます

      スカウト転職する

      企業からアプローチのメッセージが届きます。

      マイナビニュースマガジン