YUVとYCbCrの完全ガイド:BT.601/709/2020とクロマサブサンプリングの実務解説

YUVとは — 概要

YUV(ワイ・ユー・ブイ)は、映像・画像処理で広く使われる色表現の一つで、明るさ成分(輝度)と色成分(色差、色度)を分離して扱う方式です。一般に「Y」が輝度(luma または luminance に相当)、「U」「V」は色差(chrominance)を表します。映像伝送や圧縮の効率化、あるいは人間の視覚特性を利用したデータ削減(クロマサブサンプリング)などのために用いられます。

起源と用語の整理

YUVという名称はアナログテレビ時代(NTSC/PAL)に由来します。アナログ系では輝度信号Yと、色差信号U/V(またはI/Qなど)を搬送して色を表現していました。デジタル化以後、「YUV」という語は日常的に使われ続けていますが、実際の規格では次のような関連用語が存在します。

  • YPbPr:アナログの色差表現(主にコンポーネント映像)
  • YCbCr:デジタル成分表現。Y(輝度)、Cb・Cr(青差・赤差)を表す。JPEGやMPEG等で使われる。
  • YUV:歴史的・業界慣用的呼称。しばしばYCbCrやYPbPrと混同される。

重要な点は、Y(正確にはY')はしばしばガンマ補正(非線形伝達特性)済みのR'G'B'から算出される「luma(輝度成分)」であり、物理学的な線形輝度(luminance、記号L)とは異なる点です。

基本的な変換式(代表例)

RGB ↔ Y'CbCr の変換係数は色域(色度標準)によって異なります。代表的な規格はITU-R BT.601(SD)、BT.709(HD)、BT.2020(UHD)です。ここではわかりやすい小数係数の式を示します(Y'はガンマ補正済みのR,G,Bから計算されることを前提)。

BT.601(SD)

Y' = 0.299 R + 0.587 G + 0.114 B

Cb = (B − Y') / 1.772

Cr = (R − Y') / 1.402

逆変換:

R = Y' + 1.402 Cr

B = Y' + 1.772 Cb

G = Y' − 0.344136 Cb − 0.714136 Cr

BT.709(HD)

Y' = 0.2126 R + 0.7152 G + 0.0722 B

Cb = (B − Y') / 1.8556

Cr = (R − Y') / 1.5748

逆変換:

R = Y' + 1.5748 Cr

B = Y' + 1.8556 Cb

G = Y' − 0.187324 Cr − 0.468124 Cb

一般式としては、Cb = (B − Y') / (2*(1 − Kb)), Cr = (R − Y') / (2*(1 − Kr)) であり、Kr, Kb は規格ごとの係数(例:BT.601では Kr=0.299, Kb=0.114)です。

デジタル表現:レンジとビット深度

デジタル動画では「スタジオレンジ(映像レベル)」と「フルレンジ」が使い分けられます(8-bit の場合)。

  • スタジオレンジ(テレビ標準、法定伝送): Y = 16〜235, Cb/Cr = 16〜240(8-bit)
  • フルレンジ(コンピュータ画像など): 0〜255

ビット深度は8bitのほか、10bit/12bit等があり、HDRや広色域(BT.2020)では高ビット深度が一般的です。レンジの扱い(スケーリング)を間違えると、黒つぶれ・白飛び・色ズレの原因になります。

クロマサブサンプリング(色差の間引き)

YUV系の強みは人間の視覚特性(解像度に対する明度の感度は高く、色差への感度は低い)を活かして色差成分を間引けることです。主な表記は「水平:垂直:サンプルレート(相対)」の形式で、典型的なものは:

  • 4:4:4 — 輝度・色差ともにフル解像度(無劣化)
  • 4:2:2 — 色差が水平方向で半分。放送や一部のプロ向け映像で多用。
  • 4:2:0 — 水平方向と垂直方向で色差が1/2ずつ(実質1/4)。ストリーミングや多くのビデオコーデックで標準。

4:2:0 の具体例:2x2画素ブロックに対してYが4サンプル、Cb/Crが各1サンプルというイメージです(ただし実装によりクロマのサイティング位置が異なる)。

主なピクセルフォーマット(実装例)

  • I420(YUV420p): 平面形式。Y面、U面、V面の順。U/Vは各々幅・高さが1/2。
  • YV12: I420と似ているがUとVの順序が逆。
  • NV12: Y平面の後にUVが交互にパックされた平面(UとVがインタリーブ)。多くのハードウェアで利用。
  • YUY2(YUYV): パック形式(Y0 U0 Y1 V0 ...)。主にPCビデオ等で見られる。
  • UYVY: YUY2と似るがバイト順が異なる。

実用上の注意点とアーティファクト

  • クロマ補間(アップサンプリング)の品質: 低品質な補間は色の縞(モアレ)や色滲みの原因になる。
  • 色域・ガンマの不一致: BT.601 と BT.709 を混ぜると色相や明度が変わる。変換行列・ガンマ(転送特性)を正しく扱う必要あり。
  • レンジの誤扱い: フルレンジとスタジオレンジを誤ると、黒が潰れたり灰色っぽくなったりする。
  • クロマサイティング(chroma siting): クロマサンプルの位置(ピクセル中心に対するオフセット)が規格やコーデックごとに異なる。これを無視すると、特にスケーリング時に色ずれが生じる。

用途と利点

  • 映像圧縮(MPEG, H.264/HEVC等): クロマサブサンプリングによりビットレートを削減しつつ視覚品質を維持。
  • 放送・伝送: 輝度と色差を分離することで互換性と効率を確保。
  • 映像編集・合成: 輝度成分を分離して処理することでノイズリダクションやシャープ化等の制御が容易。
  • JPEG等の画像圧縮: RGB を YCbCr に変換してからクロマサブサンプリングすることが一般的。

HDR・広色域時代の注意点

HDR(例: PQ/ST 2084、HLG)や広色域(BT.2020)では、伝送のための色空間・転送関数・ビット深度が異なります。Y'CbCrの係数や取り扱う「Y'」の意味(どのOETFが用いられるか)も変わるため、単純に従来の係数を流用すると色や階調が大きく変わる可能性があります。HDRでは特に10bit以上のビット深度と正確な色域管理が重要です。

まとめ

YUV(と呼ばれるYCbCr/YPbPr含む)は、輝度と色差を分離して扱うための非常に有用な表現で、放送・圧縮・伝送・画像処理の基盤になっています。一方で、色域(BT.601/709/2020)、ガンマ(転送特性)、ビット深度、レンジ、クロマサイティングなど多くの要素が絡み合い、取り扱いを誤ると色ズレや階調の劣化が生じます。正しい変換行列とレンジ、フォーマットの理解が品質維持の鍵です。

参考文献