YUV

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
ファイル:YUV UV plane.svg
RGBの色域内で表されるU-V色平面で Y' の値 = 0.5の例
ファイル:Barn-yuv.png
画像とそのY',U,Vコンポーネント

YUVYCbCrYPbPrとは、輝度信号Yと、2つの色差信号を使って表現される色空間

概要

ソニーのベータカムVTRで使用されて以来、高画質アナログ映像信号の伝送や、デジタルビデオの記録方式として使用されている。

U, Cb, Pb はB信号(青)から輝度Yを差し引いた(B - Y)に特定の定数を掛けた値であり、同じくV, Cr, Pr はR信号(赤)から輝度Yを差し引いた(R - Y)に特定の定数を掛けた値である。

Adobe社のPhotoshopではこれと似た形式をL*a*b* (Luminescence alpha beta) カラーとして扱っている。

YUVおよびYCbCrの表記

YCbCrをYUVと表記される例を見かけるが、YUVはPAL信号やSECAM信号を得るためのコンポーネント信号であり、YCbCr や YPbPr とは似ていながらも異なるため、DVDやHD映像の記録に使われるデータ表記として、YUVを用いるのは誤りである。ただし、U, Vの値域を-0.5〜0.5に変換するとCb, Crになる。

YCbCrとYPbPrの使い分け

YCbCr と YPbPr の使い分けについて、

  1. アナログ信号にCb, Crを用い、デジタル化された数値にはPb, Prを使う。
  2. アナログ、デジタルを問わず、SD映像用の色差コンポーネント成分にはCb, Crを、HD映像用の色差コンポーネント成分にはPb, Prを使う。

の2説があり、明確には統一されていない。 規格によっても用法が異なりARIB(日本)ではPb,Prを、SMPTE(米国)ではアナログにPb, Pr、デジタルにCb, Crを使用している[1]。デジタル伝送のHDMIではCb,Crを使用している。 一般的なビデオ機器には後者が採用されているようである。GBR成分からのカラーマトリックスがSD用とHD用で異なることを考慮すると、後者の使い方が望ましいと考えられる。

ケーブル

YCbCr信号の伝送には、業務用ビデオ機器のアナログ伝送の場合は、BNC端子(ケーブル)で接続された3本の信号線を用いる。デジタル伝送ではBNC端子で接続される1本のケーブルを用いるSDIか、パラレルインターフェースを用いる。 家庭用ビデオ機器では、アナログ信号の場合、RCA端子(ケーブル)で接続された3本の信号線を用いるか、ケーブルをまとめたD端子ケーブルを用いる。デジタル伝送では、IEEE-1394やHDMIを用いる。 なお、コンポジット端子やS端子から伝送されるNTSC信号は、輝度,色相,彩度の成分を持っており、色差コンポーネント信号とは根本的に異なる。

色差成分を間引く方法

YCbCrで帯域を減らす際に、色差成分を間引く方法も併せて使用される。人間の目は色の変化よりも明るさの変化に敏感なので、色差成分を減らしても不自然だと感じにくいためである。ビデオフォーマットとして採用されているものには、以下の種類がある。

4:4:4
Y,Cb(Pb),Cr(Pr)の各成分を水平画素に関して各成分4:4:4の割合で記録する。つまり以下で説明する4:2:2や4:1:1等と違い、信号を間引かず全て記録するので最も高画質のフォーマットである。
4:2:2
一般的な業務用ビデオに採用されている方式で、Y,Cb(Pb),Cr(Pr)の各成分を、水平に4:2:2の画素割合で記録する。すなわち、水平に並んだ画素に1,2,3,4,5,6,7、…の番号を振った場合、Y信号は1,2,3,4,5,6,7…の各画素について情報を記録するが、Cb(Pb)とCr(Pr)については1,3,5,7、…の画素のみの情報を記録し、再生時には画素1の色差情報を画素1,2に適用し、画素3の色差情報を画素3,4に適用し・・・という具合に補完する。ソニーのデジタルベータカム、ベータカムSX、HDCAM、HDCAM-SR(YPbPr記録)、PanasonicのD-5、DVCPRO50、HD-D5(YPbPr記録)、AVC-Intra(100Mbps記録)で採用されている。
4:1:1
525/60圏で使用する家庭用DVフォーマットと業務用DVCAM、DVCPRO(25Mbps記録)フォーマットに採用されている方式で、Y,Cb(Pb),Cr(Pr)の各成分を水平に4:1:1の画素割合(輝度4画素に対して色差1画素)で記録する。
4:2:0
DVDを始めとする一般的なMPEG圧縮フォーマット(デジタル放送、D-VHS、BD)やHDV、AVCHDなどの家庭用カメラフォーマットで使用するほか、ソニーのXDCAM-HD、XDCAM-EX、AVC-Intra(50Mbps記録)、625/50圏のDV、DVCAMフォーマットなど、業務用のビデオフォーマットでも使用されている。4:2:2方式と同様に、色差信号を輝度信号の2画素ごとに記録する方式であるが、1フレーム目の奇数番目の走査線ではCb(Pb)信号のみを記録して、偶数番目の走査線ではCr(Pr)信号のみを記録、2フレーム目の奇数番目の走査線では逆にCr(Pr)信号のみを記録して、偶数番目の走査線ではCb(Pb)信号のみを記録し、以下のフレームではこれを繰り返すという具合に、Cb(Pb)とCr(Pr)信号を走査線ごとに間引いて記録する。再生時、記録されていない色差信号のデータは、1本上の走査線のデータで補完する。情報量は4:1:1方式と同じになるものの、色信号の水平解像度と垂直解像度のバランスがよく、家庭用デジタルビデオの主流方式となっている。

動画フォーマット

尚、同様の概念がPCやネットで使用する動画フォーマットにも見られる。

YUV444 (YUV)
水平4ピクセルにつき、輝度成分と2つの色差成分を各4ピクセルずつサンプルする方式。各成分を8bitで量子化すると、1ピクセルあたりの情報量は24bitとなる。
YUV12
各ピクセルを表現するのに必要なビット数が12ビットのYUV。YUV420とYUV411の総称。
YUV422
水平2ピクセルから色差信号を1ピクセル分だけとる形式。輝度信号は1ピクセルごとにとる。1ピクセルは16bitの情報量となる。主に業務用ビデオのフォーマットとして採用されている。
YUV420
水平・垂直2×2ピクセルのうち、Cb信号を上2ピクセルから1ピクセル取り、Cr信号を下2ピクセルから1ピクセル取る方式。フレームごとにCbとCrの位置を反転させる。輝度信号は1ピクセルごとにとる。原理的に幅・高さは2の倍数でないといけない。デジタル放送ではこれが採用されている。
YUV420のうち、ピクセル単位ではなく、フレーム単位でY→U→Vの順番に並べたものをI420IYUV、Y→V→Uの順番に並べたものをYV12と呼ぶ。このどちらかが、動画圧縮ではよく使われている。
YUV411
水平4ピクセルのうち、Cb,Cr信号を各色1ピクセルずつ取る形式。輝度信号は1ピクセルごとにとる。
YUV9
4×4ピクセルで1つの色差信号しかとらない方式。輝度信号は1ピクセルごとにとる。1ピクセルは9ビット。

RGBからの変換

以下、R, G, B, Y の値域は 0〜1。Cb, Cr の値域は -0.5〜0.5。U = 0.872 × Cb, V = 1.23 × Cr。

RGBからの変換式は

YUV (PAL, SECAM)
  • Y = 0.299 × R + 0.587 × G + 0.114 × B
  • U = -0.14713 × R - 0.28886 × G + 0.436 × B
  • V = 0.615 × R - 0.51499 × G - 0.10001 × B
ITU-R BT.601 / ITU-R BT.709 (1250/50/2:1)
  • Y = 0.299 × R + 0.587 × G + 0.114 × B
  • Cb = -0.168736 × R - 0.331264 × G + 0.5 × B
  • Cr = 0.5 × R - 0.418688 × G - 0.081312 × B
ITU-R BT.709 (1125/60/2:1)
  • Y = 0.2126 × R + 0.7152 × G + 0.0722 × B
  • Cb = -0.114572 × R - 0.385428 × G + 0.5 × B
  • Cr = 0.5 × R - 0.454153 × G - 0.045847 × B

逆にRGBに変換するときは

YUV (PAL, SECAM)
  • R = Y + 1.13983 × V
  • G = Y - 0.39465 × U - 0.58060 × V
  • B = Y + 2.03211 × U
ITU-R BT.601 / ITU-R BT.709 (1250/50/2:1)
  • R = Y + 1.402 × Cr
  • G = Y - 0.344136 × Cb - 0.714136 × Cr
  • B = Y + 1.772 × Cb
ITU-R BT.709 (1125/60/2:1)
  • R = Y + 1.5748 × Cr
  • G = Y - 0.187324 × Cb - 0.468124 × Cr
  • B = Y + 1.8556 × Cb

MPEG の場合

MPEG 用の整数演算は以下の方法で行う。RGBの値域は0〜255の8ビット。YCbCr に基づいているが、8ビット整数に変換する際、Y の値域として 16〜235、U や V の値域としては 16〜239 を使用する。Y の値域の中心は128になっていない。また、値域として0〜255を使ってないことから証明できるように、RGB → YUV → RGBの変換を行うと、元の色に戻らない場合がある。

1. 基本的な変形

<math>\begin{bmatrix}Y' \\ U \\ V \end{bmatrix} =

\begin{bmatrix}

 66 & 129 & 25  \\
-38 & -74 & 112 \\
112 & -94 & -18

\end{bmatrix} \begin{bmatrix} R \\ G \\ B \end{bmatrix} </math>

2. 8ビットへ丸め処理を行う(四捨五入

<math>

\begin{array}{rcl} Y' &=& (Y' + 128) \gg 8\\ U &=& (U + 128) \gg 8\\ V &=& (V + 128) \gg 8 \end{array} </math>

3. 値域をずらす

<math>

\begin{array}{rcl} Y' &=& Y' + 16\\ U &=& U + 128\\ V &=& V + 128 \end{array} </math>

コンピュータでは YUV と RGB の相互変換は、かつては整数演算で行われることが多かったが、現在は SIMD を使い内積計算するのが一般的。

参照

  1. テンプレート:Cite

外部リンク

テンプレート:Sister

テンプレート:Color topics