連鎖のひとつの段 — 何が入り、何が出て、後段で何が壊れるか
この段はエンコード処理のどこに位置するか
動画エンコーダは単一のアルゴリズムではなく、順序の決まった 8 つの段です。その順序は恣意的ではありません。どの段も、直前の段が仕事を可能にしてくれたからこそ存在します。このツールはそのうちの 1 つを扱います。下の連鎖から残りの 7 つに移動できます。
クロマサブサンプリング・ラボ — 明るさをそのままに保ちながら、色の解像度の大部分を捨てる
- 入ってくるもの
- フル解像度の輝度と色差 — 画素ごとに 1 つの色標本で、4:4:4 と書きます。
- 出ていくもの
- 輝度はフル解像度、色差は 4:2:0 で標本数が 4 分の 1。
- 次の段が前提とすること
- 以降のすべては 4 分の 1 の色差データを扱い、デコーダが捨てられた標本を補間して戻します。
- ここで壊れるもの
- 彩度の高い輪郭 — 黒地の赤文字が定番の例 — は色がブロック全体に滲みます。その輪郭は標本を取り除いた色差の側にあるからです。輝度は無傷で残るので、絵は鮮明に見えて色だけがおかしく見えます。
全プロセスの詳細解説
-
サンプル数から求めた4:4:4、4:2:2、4:2:0のピクセルあたりのバイト数 6 ステップ
サンプル数から4:4:4、4:2:2、および4:2:0のピクセルあたりのバイト数を導出し、4:2:0が実際にどれだけの帯域幅を削減しているかを求めよ。
-
2×2ブロック内のサンプル数を数える。この表記は、上行および下行において4つの輝度サンプルに伴うクロマサンプルの数を示しているため、その比率はカウント(個数)であり分数ではない。
-
他の2つのモードでは、クロマを水平方向に間引き、さらに垂直方向にも間引く。半減させるごとに、ブロック内の12個のサンプルのうち2個が取り除かれる。
-
フレームサイズに応じたピクセル数を乗じ、削減率の比率を求める。4:2:0は測定結果としてではなく、構造上正確に4:4:4の半分となる。
-
サンプルがどこに割り当てられているかを確認する。どのモードでも輝度は維持されており、間引かれているのは色差チャンネルのみである。人間の目は色差に対する解像度が概ね半分の視力しかない。
-
同じピクセルあたり1.5バイトという値を、実際のフレームサイズとフレームレートに拡大適用する。
-
それゆえに失敗モードは全般的なものではなく特定領域に限られる。損失は輝度の詳細情報を保持しない2つのチャンネルのみにおいて発生するからである。
解答
半分であり、それでも非圧縮の1080p30では746 Mbit/sに達する。この数値こそがこの演習の核心である。クロマサブサンプリングは存在する中で最も低コストな圧縮である。変換も、エントロピー符号化器も、判断処理も必要としない。そしてデータを半減させた後であっても、ストリームは家庭用ネットワークにはあまりにも巨大であり、だからこそ製品化されているすべてのコーデックはこのステップに代わるものではなく、このステップの後に処理を開始するのである。視覚的な影響がこれほど少ない理由はYの式にある。輝度はすべてのピクセルでサンプルされ、間引かれるのはCbとCrのみであるため、エッジ、テクスチャ、および詳細は影響を受けない。破綻するのは情報が色のみに存在する箇所(灰色の背景に赤い文字、高彩度のロゴ、クロマキーのエッジなど)であり、これが4:2:0が樹木の映像では判別不能でありながら、プレゼンスライドでは致命的となる理由である。
-
参考文献 (1)
- Insight block 1 says codecs discard colour before anything else. This is the measurement that licenses it: K. T. Mullen, "The contrast sensitivity of human colour vision to red–green and blue–yellow chromatic gratings." The Journal of Physiology 359, 381–400, 1985 — chromatic acuity falls away at far coarser detail than luminance acuity.