Chapter 2: Format Overview / 2章:フォーマット概要

VP8 works exclusively with an 8-bit YUV 4:2:0 image format. In this format, each 8-bit pixel in the two chroma planes (U and V) corresponds positionally to a 2x2 block of 8-bit luma pixels in the Y plane; coordinates of the upper left corner of the Y block are of course exactly twice the coordinates of the corresponding chroma pixels. When we refer to pixels or pixel distances without specifying a plane, we are implicitly referring to the Y plane or to the complete image, both of which have the same (full) resolution.

  VP8は8bit YUV 4:2:0形式の画像のみで動く.この形式において,二つの色差画像(UとV)に含まれているそれぞれ8bitの画素は,輝度画像(Y)に含まれる2x2ブロックの8bit画素に対応している.輝度ブロックの左上のコーナー座標値は色差画素の座標値のちょうど2倍になっている.もしどの画像か限定することなく画素群もしくは画素距離について言及する場合,輝度画像もしくは完全なカラー画像を暗に言及している.両者の画像は同じ(フル)解像度を有している.


As is usually the case, the pixels are simply a large array of bytes stored in rows from top to bottom, each row being stored from left to right. This “left to right” then “top to bottom” raster-scan order is reflected in the layout of the compressed data as well.

  たいていの場合,画素群は行方向に上から下へ,それぞれの行は左から右に,格納された単純に巨大なバイト配列である.この「左から右へ」,そして「上から下へ」というラスタスキャン順は圧縮されたデータにも同様に反映されている.

Provision has been made for the support of two different YUV color formats in the VP8 bitstream header, however only one format is supported in the first release of VP8.

  ProvisionはVP8ビットストリームのヘッダにおいて二つの異なるYUVカラー画像形式をサポートするために作られている.しかしながら,VP8の初期リリースではひとつの形式のみがサポートされている.

The YUV formats differ in terms of their conversion to and from RGB color space. The first corresponds to the traditional YUV color space similar to the YCrCb color space defined in ITU-R BT.601. The second (currently unsupported) format corresponds to a new YUV color space whose digital conversion to and from RGB can be implemented without multiplications and divides. The VP8 Decoder should decode and pass the information on to the processes that convert the YUV output to RGB color space.

  YUV形式はRGB色空間との変換という観点から本質的に異なる.第一は,ITU-R BT.601で定義されているYCbCr色空間に似て,古くからあるYUV色空間に対応していることである.第二に(現状サポートされていないが),乗算と除算を使わずにRGB空間との完全なディジタル変換が実装可能な新しいYUV色空間に対応していることである.VP8デコーダはYUV出力をRGB色空間に変換する処理へこれらの情報を復号し,かつ使えなければならない.
  
Occasionally, at very low datarates, a compression system may decide to reduce the resolution of the input signal to facilitate efficient compression. The VP8 data format supports this via optional upscaling of its internal reconstruction buffer prior to output (this is completely distinct from the optional postprocessing discussed earlier, which has nothing to do with decoding per se). This upsampling restores the video frames to their original resolution. In other words, the compression/decompression system can be viewed as a “black box”, where the input and output is always at a given resolution. The compressor might decide to “cheat” and process the signal at a lower resolution. In that case, the decompressor needs the ability to restore the signal to its original resolution.

  ごくまれに,非常に低ビットレートのとき,圧縮システムは効果的な圧縮を即するために入力信号の解像度を削減決定をするかもしれない.VP8データフォーマットは出力の前に内部再構成バッファの中でオプションのアップスケーリングを用いてこの機能をサポートしている(これは先に述べたオプションの事後処理とは完全に異なる物である.事後処理は復号処理に何ら影響を与えない).このアップサンプリングは動画像フレームを原画像解像度に復元する.言い換えると,符号化/復号システムはブラックボックスのように見える.ここで,入力と出力ははつねに与えられた解像度である.圧縮器はチートすることを決定し低解像度で信号を処理するかもしれない.この場合,復号器はその信号を元解像度に復元する機能が必要となる.


Internally, VP8 decomposes each output frame into an array of macroblocks. A macroblock is a square array of pixels whose Y dimensions are 16x16 and whose U and V dimensions are 8x8. Macroblock-level data in a compressed frame occurs (and must be processed) in a raster order similar to that of the pixels comprising the frame.

  内部的に,VP8はそれぞれの出力フレームをマクロブロック行列に分割する.マクロブロックは画素の正方行列であり,輝度画像は16x16で色差画像は8x8である.圧縮されたフレーム内のマクロブロックデータは,フレームを構成する画素の並びと同様に,ラスタスキャン順に生じる(かつ,処理される).

Macroblocks are further decomposed into 4x4 subblocks. Every macroblock has 16 Y subblocks, 4 U subblocks, and 4 V subblocks. Any subblock-level data (and processing of such data) again occurs in raster order, this time in raster order within the containing macroblock. As discussed in further detail below, data can be specified at the levels of both macroblocks and their subblocks.

  マクロブロック群はさらに4x4のサブブロック群に分割される.すべてのマクロブロックは16個の輝度サブブロック,4個の色差Uサブブロック,4個の色差Vサブブロックを所有している.任意のサブブロックデータ(およびこれらの処理)もまたラスタスキャン順に発生する.この時,ラスタスキャン順はマクロブロック内である.以下でより詳しく述べるように,データはマクロブロックとサブブロックのレベルで言及される.

Pixels are always treated, at a minimum, at the level of subblocks, which may be thought of as the “atoms” of the VP8 algorithm. In particular, the 2x2 chroma blocks corresponding to 4x4 Y subblocks are never treated explicitly in the data format or in the algorithm specification.

  画素群は常に,少なくとも,サブブロックレベルで処理される.このサブブロックはVP8アルゴリズムのアトムとして考えられるだろう.特に,4x4輝度サブブロックに対応する2x2色差ブロックは決してデータフォーマットやアルゴリズム規定文で陽に扱われることはない.

The DCT and WHT always operate at a 4x4 resolution. The DCT is used for the 16Y, 4U and 4V subblocks. The WHT is used (with some but not all prediction modes) to encode a 4x4 array comprising the average intensities of the 16 Y subblocks of a macroblock. These average intensities are, up to a constant normalization factor, nothing more that the zeroth DCT coefficients of the Y subblocks. This “higher-level” WHT is a substitute for the explicit specification of those coefficients, in exactly the same way as the DCT of a subblock substitutes for the specification of the pixel values comprising the subblock. We consider this 4x4 array as a second-order subblock called Y2, and think of a macroblock as containing 24 “real” subblocks and, sometimes, a 25th “virtual” subblock. This is dealt with further in Chapter 13.

  DCTとWHTは常に4x4解像度で扱われる.DCTは16個の輝度,4個のUV色差サブブロックで使われる.WHTはマクロブロックの16個輝度サブブロックの平均濃度を構成する4x4行列を符号化するために使われる(全てではないがいくつかの予測モードにおいても使われる).これら平均濃度は,定数である正規化係数に至るまで,輝度サブブロックのゼロ番目のDCT係数以上のものではない.この高レベルWHTは,これら係数の陽な定義の代わりとなる.サブブロックのDCTがサブブロックから構成される画素値の定義の代わりとなるのと正に同じ道筋である.この4x4行列を2次サブブロックY2として考え,マクロブロックは24個の実サブブロックを含んでおり,時々25番目の仮想サブブロックを含んでいると考える.これは13章で取り扱う.

The frame layout used by the reference decoder may be found in the file yv12config.h

  参照復号器に使われているフレームレイアウトはyv12config.hの中で見いだされる.